:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80}}body{margin:0}h1,h2,h3{color:var(--text-h);font-weight:500}h1{letter-spacing:-.5px;margin:0 0 8px;font-size:36px}.app{max-width:1100px;margin:0 auto;padding:40px 20px}.subtitle{color:var(--text);margin-bottom:24px}.app-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.header-links{flex-wrap:wrap;justify-content:flex-end;gap:12px 20px;margin-bottom:28px;font-size:14px;display:flex}.header-links a,.caveats-back{color:var(--accent);font-weight:600;text-decoration:none}.header-links a:hover,.caveats-back:hover{text-decoration:underline}.auth-strip{color:var(--text);align-items:center;gap:12px;margin-bottom:24px;font-size:14px;display:flex}.auth-notice{color:#8a5a00;background:#fff7e8;border:1px solid #f3d08f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:12px 14px;font-size:14px;display:flex}.auth-link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.auth-link-button:hover{text-decoration:underline}.login-panel{justify-content:center;display:flex}.login-card{border:1px solid var(--border);background:var(--bg);border-radius:14px;width:min(420px,100%);padding:24px}.login-card h2{margin:0 0 8px}.login-copy{color:var(--text);margin:0 0 18px}.login-form{gap:14px;display:grid}.login-field{color:var(--text-h);gap:6px;font-size:14px;display:grid}.login-field input{border:1px solid var(--border);font:inherit;color:var(--text-h);background:var(--bg);border-radius:10px;padding:10px 12px}.login-button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:11px 14px;font-weight:600}.login-button:disabled{opacity:.65;cursor:wait}.login-error{color:#b42318;margin:0;font-size:14px}.caveats-page{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 96%, var(--accent) 4%);border-radius:14px;padding:24px}.caveats-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.caveats-header h2{margin:0}.caveats-content{white-space:pre-wrap;font:inherit;color:var(--text);margin:0;line-height:1.7}.error-banner{background:#fff1f1;border:1px solid #f3b3b3;border-radius:12px;margin-bottom:24px;padding:16px 18px}.error-banner-header{color:#8f1d1d;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.error-banner-dismiss{color:#8f1d1d;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:underline}.error-list{color:#7b2020;margin:0;padding-left:20px}.upload-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px;display:grid}@media (width<=640px){.app-header{flex-direction:column}.header-links{justify-content:flex-start}.upload-row{grid-template-columns:1fr}.caveats-header{flex-direction:column;align-items:flex-start}}.file-upload{margin-bottom:0}.drop-zone{border:2px dashed var(--border);cursor:pointer;border-radius:12px;padding:48px 24px;transition:border-color .2s,background .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-bg)}.drop-zone.loading{cursor:wait;border-color:var(--accent)}.spinner-container{flex-direction:column;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.results section{margin-top:16px}.results h2{margin-bottom:16px}.payslip-card,.comparison-card{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}.payslip-header,.comparison-header{cursor:pointer;justify-content:space-between;align-items:center;padding:16px 20px;transition:background .15s;display:flex}.payslip-header:hover,.comparison-header:hover{background:var(--accent-bg)}.payslip-summary,.comparison-summary{text-align:left}.payslip-summary h3,.comparison-summary h3{color:var(--text-h);margin:0 0 6px;font-size:18px}.payslip-meta,.comparison-meta{flex-wrap:wrap;gap:16px;font-size:14px;display:flex}.payslip-meta .pages{color:var(--text);opacity:.7}.expand-icon{color:var(--text);font-size:14px}.payslip-details{border-top:1px solid var(--border);padding:0 20px 20px}.comparison-details{border-top:1px solid var(--border);overflow-x:auto}.diff-positive{color:#22c55e}.diff-negative{color:#ef4444}.diff-zero{color:var(--text)}.comp-table{border-collapse:collapse;width:100%;margin:0;font-size:13px}.comp-table th,.comp-table td{border-bottom:1px solid var(--border);padding:7px 10px}.comp-table .comp-th-label{text-align:left;color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.comp-table .comp-th-group{text-align:center;color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);font-size:12px;font-weight:600}.comp-table .comp-subhead th{color:var(--text);text-align:right;padding:4px 10px;font-size:11px;font-weight:500}.comp-table .comp-subhead th:first-child{text-align:left}.comp-table .comp-th-group{text-align:center}.comp-table .num{text-align:center;font-variant-numeric:tabular-nums}.comp-table .comp-subhead th{text-align:center}.comp-table tbody tr:hover{background:var(--accent-bg)}.comp-table tfoot td{border-bottom:none;border-top:2px solid var(--text-h);padding-top:10px}.comp-table tr.comp-excluded td{color:var(--text-h);opacity:.55;font-style:italic}.error-badge{color:#fff;vertical-align:middle;cursor:help;background:#d32f2f;border-radius:999px;margin-left:8px;padding:2px 6px;font-size:.65em;font-weight:700;line-height:1.4;display:inline-block}.duplicate-badge{color:#fff;vertical-align:middle;cursor:help;background:#d48b17;border-radius:999px;margin-left:8px;padding:2px 6px;font-size:.65em;font-weight:700;line-height:1.4;display:inline-block}.tooltip-trigger{position:relative}.tooltip-trigger:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;z-index:10;background:#1a1a1a;border-radius:6px;padding:5px 10px;font-size:12px;font-style:normal;font-weight:400;transition:opacity .1s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-trigger:hover:after{opacity:1}.detail-panel-header{justify-content:space-between;align-items:center;padding:8px 10px 4px;display:flex}.detail-panel-title{color:var(--text);font-size:13px;font-weight:700}.diagnostic-button{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:600}.diagnostic-button:hover{background:#f3f4f6;border-color:#9ca3af}.diagnostic-button-container{justify-content:center;padding:10px 0 4px;display:flex}.modal-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:14px;flex-direction:column;width:95vw;max-width:1200px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.modal-header{justify-content:space-between;align-items:center;padding:18px 24px 0;display:flex}.modal-header h2{margin:0;font-size:18px}.modal-close{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.modal-close:hover{color:#111}.modal-meta{color:#6b7280;border-bottom:1px solid #e5e7eb;gap:20px;padding:10px 24px 14px;font-size:12px;display:flex}.timeline-shell{flex:1;padding:16px;overflow:auto}.remove-btn{color:#d32f2f;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;font-size:18px;font-weight:700;line-height:1}.remove-btn:hover{background:#fce4e4}.summary-table{border-collapse:collapse;width:100%;font-size:14px}.summary-table>thead th{text-align:left;color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);padding:10px 12px;font-size:13px;font-weight:600}.summary-table>thead th:nth-child(2),.summary-table>thead th:nth-child(3),.summary-table>thead th:nth-child(4){text-align:center}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--accent)}.sort-arrow{vertical-align:middle;flex-direction:column;justify-content:center;align-items:center;width:12px;margin-left:4px;font-size:8px;line-height:1;display:inline-flex;position:relative;top:-1px}.sort-arrow.sort-inactive{opacity:.3;gap:1px;top:0}.summary-row{cursor:pointer;transition:background .15s}.summary-row:hover{background:var(--accent-bg)}.summary-row td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px}.summary-row-expanded{background:var(--accent-bg)}.col-date{white-space:nowrap;font-weight:500}.col-date .expand-icon{margin-right:8px;font-size:11px}.col-amount{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.missing{opacity:.35}.detail-row>td{border-bottom:2px solid var(--accent);padding:0!important}.detail-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.detail-panel{border-right:1px solid var(--border)}.detail-panel:last-child{border-right:none}.detail-row .comp-table{border-radius:0;margin:0}.payslip-table{border-collapse:collapse;width:100%;margin-top:12px;font-size:14px}.payslip-table th,.payslip-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.payslip-table th{color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.payslip-table td:nth-child(n+2),.payslip-table th:nth-child(n+2){text-align:right}.payslip-table tfoot td{border-bottom:none;border-top:2px solid var(--text-h);padding-top:12px}.no-data{color:var(--text);padding:12px 0;font-style:italic}
