:root{--bg:#f6f8fb;--surface:#fff;--surface-alt:#f1f4f9;--border:#e2e7f0;--border-strong:#cbd5e3;--text:#47536b;--text-muted:#7c879c;--text-h:#101a33;--accent:#2454b3;--accent-hover:#1d4494;--accent-bg:#2454b314;--accent-contrast:#fff;--danger:#c0362c;--danger-bg:#c0362c17;--warn:#a15c00;--warn-bg:#a15c001a;--low:#1c7a4c;--low-bg:#1c7a4c17;--shadow-sm:0 1px 2px #101a330f;--shadow-md:0 6px 20px #101a3314;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;font:15px/1.55 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e1420;--surface:#161e2e;--surface-alt:#1c2536;--border:#283248;--border-strong:#384259;--text:#b7c0d2;--text-muted:#8894aa;--text-h:#f1f4fa;--accent:#6d9eef;--accent-hover:#8ab2f5;--accent-bg:#6d9eef24;--accent-contrast:#0b1220;--danger:#f2897e;--danger-bg:#f2897e24;--warn:#f2c34c;--warn-bg:#f2c34c24;--low:#6fd79a;--low-bg:#6fd79a24;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,h4{font-family:var(--sans);color:var(--text-h);letter-spacing:-.01em;font-weight:600}button,input,select,table{font:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:14px 24px;display:flex}.app-brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.app-brand-mark{border-radius:7px;display:block}.app-header-actions{align-items:center;gap:8px;display:flex}.app-brand-name{color:var(--text-h);letter-spacing:-.01em;font-size:15px;font-weight:600}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1}.upload-page,.audit-page{max-width:1100px;margin:0 auto;padding:40px 24px 80px}.legal-page{max-width:760px;margin:0 auto;padding:40px 24px 80px;line-height:1.6}.legal-page h2{font-size:16px}.legal-page p,.legal-page ul,.legal-page ol{color:var(--text);margin:0 0 14px}.legal-page ul,.legal-page ol{padding-left:20px}.legal-page li{margin-bottom:6px}.legal-meta{color:var(--text-muted);margin-bottom:28px;font-size:13px}.legal-draft-banner{background:color-mix(in srgb, #b45309 12%, var(--surface));border:1px solid color-mix(in srgb, #b45309 35%, var(--border));border-radius:var(--radius-md);color:var(--text);margin-bottom:20px;padding:14px 16px;font-size:13.5px}.legal-placeholder{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text-h);border-radius:4px;padding:0 4px;font-size:.95em;font-weight:600}.app-footer{max-width:1100px;color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0 auto;padding:24px 24px 40px;font-size:12.5px;display:flex}.app-footer a{color:var(--text-muted)}.app-footer a:hover{color:var(--text-h)}.page-eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:6px;font-size:12px;font-weight:600}.back-link{color:var(--text-muted);margin-bottom:20px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.audit-page-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.upload-page h1,.audit-page h1{margin:0 0 6px;font-size:26px}.subtitle{color:var(--text-muted);margin-top:0;margin-bottom:28px;font-size:15px}h2{margin:36px 0 12px;font-size:17px}.field-row{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:20px;display:flex}.field-row label{color:var(--text);font-size:13px;font-weight:500}.field-row select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;padding:9px 12px;transition:border-color .15s}.field-row select:hover{border-color:var(--accent)}.ignore-utbms-toggle{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:13.5px;font-weight:500;display:inline-flex}.ignore-utbms-toggle input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--accent)}.field-hint{color:var(--text-muted);flex-basis:100%;font-size:12.5px}.link-button{box-shadow:none;color:var(--accent);background:0 0;border:none;padding:0;font-size:13.5px;font-weight:500}.link-button:hover:not(:disabled){background:0 0;text-decoration:underline}.add-carrier-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt);flex-basis:100%;margin-top:12px;padding:16px}.add-carrier-panel .field-row{margin-bottom:14px}.add-carrier-panel input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;min-width:260px;padding:9px 12px}.add-carrier-actions{justify-content:flex-end;gap:10px;display:flex}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--surface-alt);box-shadow:none}.rates-table{width:auto;min-width:320px;box-shadow:none;margin-bottom:12px}.rates-table th,.rates-table td{padding:6px 10px}.rates-table input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;width:180px;padding:7px 10px}.rate-input-wrap{color:var(--text-muted);align-items:center;gap:5px;font-size:13px;display:flex}.rate-input-wrap input[type=number]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;width:90px;padding:7px 8px}.rate-remove{color:var(--text-muted);font-size:18px;line-height:1}.rate-remove:hover:not(:disabled){color:var(--danger)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--surface);padding:52px 24px;transition:border-color .15s,background .15s,box-shadow .15s}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow-sm)}.dropzone-disabled{cursor:not-allowed;opacity:.6}.dropzone-disabled:hover{border-color:var(--border-strong);background:var(--surface);box-shadow:none}.dropzone-icon{color:var(--accent);margin-bottom:12px}.dropzone p{color:var(--text);margin:0;font-size:14.5px}.dropzone-hint{color:var(--text-muted);font-size:13px;margin-top:4px!important}.settings-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:18px 20px 4px}.settings-panel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 14px;font-size:11.5px;font-weight:600}.settings-panel-divider{border:none;border-top:1px solid var(--border);margin:0 0 16px}.settings-panel>.field-row{margin-bottom:16px}.mode-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-sm);gap:3px;margin-bottom:20px;padding:3px;display:inline-flex}.mode-toggle-tab{color:var(--text-muted);box-shadow:none;border-radius:calc(var(--radius-sm) - 2px);background:0 0;border:none;padding:7px 16px;font-size:13.5px;font-weight:500}.mode-toggle-tab:hover:not(.mode-toggle-tab-active){background:var(--surface-alt);box-shadow:none}.mode-toggle-tab-active{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.timesheet-builder{margin-top:8px}.timesheet-meta .field-row{margin-bottom:16px}.timesheet-meta input[type=text],.timesheet-meta input[type=date]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;width:150px;padding:8px 10px;font-size:13.5px}.timesheet-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.timesheet-table{border-collapse:collapse;width:100%;box-shadow:none;border:none;border-radius:0}.timesheet-table th{white-space:nowrap}.timesheet-table td{vertical-align:middle;padding:6px}.timesheet-table input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:90px;color:var(--text-h);font:inherit;padding:6px 8px;font-size:13px}.timesheet-table input:focus{border-color:var(--accent);outline:none}.ts-code-input{font-family:var(--mono);min-width:60px!important}.ts-description-wrap{align-items:center;gap:4px;display:flex}.ts-description-input{flex:1;min-width:260px!important}.ts-mic-button{background:var(--surface);width:28px;height:28px;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ts-mic-button:hover:not(:disabled){background:var(--surface-alt);color:var(--text-h);box-shadow:none}.ts-mic-active{background:var(--danger-bg);color:var(--danger);border-color:var(--danger);animation:1.2s ease-in-out infinite ts-mic-pulse}@keyframes ts-mic-pulse{0%,to{opacity:1}50%{opacity:.55}}.ts-number-input{text-align:right;min-width:70px!important}.ts-amount-cell{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;padding:6px 10px!important}.timesheet-footer{justify-content:space-between;align-items:center;margin-top:10px;margin-bottom:20px;display:flex}.timesheet-total{color:var(--text-h);font-size:14.5px;font-weight:600}.ts-suggest-menu{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:180px;box-shadow:var(--shadow-md);padding:4px;position:fixed;overflow-y:auto}.ts-suggest-item{text-align:left;width:100%;color:var(--text-h);box-shadow:none;font:inherit;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:7px 9px;font-size:13px;display:block}.ts-suggest-item:hover{background:var(--accent-bg);box-shadow:none}.error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);margin:16px 0;padding:11px 14px;font-size:14px}.error-dismissible{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.error-dismiss{color:inherit;box-shadow:none;opacity:.75;background:0 0;border:none;flex:none;margin:-2px -2px 0 0;padding:0;font-size:17px;line-height:1}.error-dismiss:hover{opacity:1;box-shadow:none;background:0 0}.muted{color:var(--text-muted)}.muted-sm{color:var(--text-muted);font-size:12px}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:11px 14px;font-size:13.5px}th{background:var(--surface-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}tbody tr:last-child td{border-bottom:none}.history-table{margin-top:14px}.clickable-row{cursor:pointer;transition:background .1s}.clickable-row:hover{background:var(--accent-bg)}.invoice-meta{color:var(--text-muted);flex-wrap:wrap;gap:8px 14px;margin:4px 0 24px;font-size:13.5px;display:flex}.invoice-meta>span:not(:last-child):after{content:"·";color:var(--border-strong);margin-left:14px}.audit-cta{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}button{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);border:none;padding:10px 18px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s,transform 50ms}button:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.button-link{background:var(--surface);color:var(--text-h);border:1px solid var(--border-strong);border-radius:var(--radius-sm);align-items:center;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.button-link:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.summary-cards{grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px 20px}.card-wide,.card-full{grid-column:span 3}.card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:11.5px;font-weight:600}.card-value{letter-spacing:-.02em;color:var(--text-h);font-variant-numeric:tabular-nums;font-size:27px;font-weight:700}.card-value.negative{color:var(--danger)}.card-full p{margin:0 0 4px;font-size:14px;line-height:1.6}.card-full .card-label{margin-top:14px}.card-full .card-label:first-child{margin-top:0}.violation-counts{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--low-bg);color:var(--low);text-transform:capitalize;border-radius:999px;align-items:center;margin:2px 4px 2px 0;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-vague,.badge-block_billing,.badge-code_mismatch{background:var(--warn-bg);color:var(--warn)}.badge-duplicative,.badge-excessive,.badge-administrative,.badge-unauthorized{background:var(--danger-bg);color:var(--danger)}.badge-rule-id{font-family:var(--mono);opacity:.85;margin-right:5px;font-size:10px;font-weight:600}.rule-id-tag{font-family:var(--mono);background:var(--accent-bg);color:var(--accent);border-radius:4px;margin-right:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.rewrite-list{margin:6px 0 0;padding-left:18px}.rewrite-list li{margin-bottom:4px;font-size:12.5px;line-height:1.5}.line-item-table{margin:20px 0}.line-item-table table{border-spacing:0}.line-item-table tbody tr{border-left:3px solid #0000}.row-severity-high{background:var(--danger-bg);border-left-color:var(--danger)!important}.row-severity-medium{background:var(--warn-bg);border-left-color:var(--warn)!important}.row-severity-low{background:var(--low-bg);border-left-color:var(--low)!important}.finding-detail-row td{background:var(--surface)}.finding-detail{flex-direction:column;gap:6px;padding:10px 6px;font-size:13px;display:flex}.invoice-level-findings{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:16px;padding:14px 16px}.invoice-level-findings h4{margin:0 0 10px;font-size:14px}.chat-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);margin-top:36px;padding:20px}.chat-panel h3{margin:0 0 4px;font-size:15px}.chat-messages{flex-direction:column;gap:10px;max-height:420px;margin:14px 0;display:flex;overflow-y:auto}.chat-message{border-radius:var(--radius-md);max-width:80%;padding:10px 14px;font-size:14px;line-height:1.5}.chat-user{background:var(--accent);color:var(--accent-contrast);align-self:flex-end}.chat-user .chat-role{color:var(--accent-contrast);opacity:.75}.chat-assistant{background:var(--surface-alt);border:1px solid var(--border);align-self:flex-start}.chat-pending{opacity:.6}.chat-role{text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-bottom:3px;font-size:10.5px;font-weight:600}.chat-input{gap:8px;display:flex}.chat-input input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--bg);color:var(--text-h);flex:1;padding:10px 14px;transition:border-color .15s}.chat-input input:focus{border-color:var(--accent)}.history-dropdown{position:relative}.dropdown-trigger{color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:none;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:7px 12px;font-size:13.5px;font-weight:500;display:inline-flex}.dropdown-trigger:hover{background:var(--surface-alt);color:var(--text-h);box-shadow:none}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20;padding:6px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.history-menu{width:380px;max-height:520px}.history-section+.history-section{margin-top:10px}.history-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);padding:6px 10px 4px;font-size:11px;font-weight:700}.history-group-header{width:100%;color:var(--text);box-shadow:none;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:7px 10px;font-size:12.5px;font-weight:600;display:flex}.history-group-header:hover{background:var(--surface-alt);box-shadow:none}.history-group-chevron{color:var(--text-muted);flex:none;transition:transform .12s;transform:rotate(-90deg)}.history-group-chevron-open{transform:rotate(0)}.history-group-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;overflow:hidden}.history-group-items{border-left:1px solid var(--border);margin:0 0 4px 15px;padding-left:15px}.history-empty{color:var(--text-muted);text-align:center;padding:16px 12px;font-size:13.5px}.history-menu-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 10px 8px;display:flex}.history-clear-all{font-size:12.5px}.history-item-row{align-items:stretch;gap:2px;display:flex}.history-item{text-align:left;width:100%;color:var(--text-h);border-radius:var(--radius-sm);font:inherit;box-shadow:none;cursor:pointer;background:0 0;border:none;padding:9px 10px;display:block}.history-item:hover{background:var(--accent-bg);box-shadow:none}.history-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.draft-badge{text-transform:uppercase;letter-spacing:.03em;background:var(--warn-bg);color:var(--warn);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:600;display:inline-block}.history-item-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.history-item-delete{color:var(--text-muted);border-radius:var(--radius-sm);box-shadow:none;background:0 0;border:none;flex:none;padding:0 10px;font-size:17px;line-height:1}.history-item-delete:hover:not(:disabled){background:var(--danger-bg);color:var(--danger);box-shadow:none}.rules-glossary{flex:none;position:relative}.rules-glossary-menu{width:400px;max-height:480px;padding:10px 12px}.rules-glossary-header{border-bottom:1px solid var(--border);color:var(--text-h);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;padding-bottom:8px;font-size:13.5px;font-weight:600;display:flex}.rules-glossary-item{border-bottom:1px solid var(--border);padding:8px 2px}.rules-glossary-item:last-child{border-bottom:none}.rules-glossary-item-head{flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:3px;display:flex}.rules-glossary-item-name{color:var(--text-h);font-size:13px;font-weight:600}.rules-glossary-item-desc{color:var(--text);margin-bottom:3px;font-size:12.5px;line-height:1.5}.account-menu{width:300px;padding:10px}.account-menu-header{border-bottom:1px solid var(--border);margin-bottom:8px;padding:6px 10px 12px}.account-menu-name{color:var(--text-h);font-size:14px;font-weight:600}.account-menu-email{color:var(--text-muted);margin-top:1px;font-size:12.5px}.account-menu-firm{color:var(--text);margin-top:6px;font-size:12.5px}.account-menu-code{border-bottom:1px solid var(--border);margin-bottom:8px;padding:8px 10px 12px}.join-code-row{align-items:center;gap:8px;margin-top:4px;display:flex}.join-code-row .button-link{padding:6px 12px;font-size:12.5px}.join-code-small{padding:5px 10px;font-size:13px}.account-logout{color:var(--danger);font-weight:500}.auth-loading{text-align:center;color:var(--text-muted);padding:80px 24px}.auth-page{justify-content:center;max-width:1100px;margin:0 auto;padding:64px 24px 80px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-md);padding:32px}.auth-card h1{margin:0 0 6px;font-size:22px}.auth-card .subtitle{margin-bottom:22px}.auth-back{box-shadow:none;font:inherit;background:0 0;border:none;padding:0}.auth-form{flex-direction:column;gap:16px;margin-top:8px;display:flex}.auth-form label{color:var(--text);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.auth-form input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font:inherit;padding:10px 12px;transition:border-color .15s}.auth-form input:focus{border-color:var(--accent)}.auth-form button{margin-top:6px}.auth-switch{color:var(--text-muted);text-align:center;margin:22px 0 0;font-size:13.5px}.account-kind-options{flex-direction:column;gap:10px;margin-top:8px;display:flex}.account-kind-option{text-align:left;background:var(--surface);width:100%;color:var(--text-h);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:none;padding:16px;transition:border-color .15s,background .15s;display:block}.account-kind-option:hover{border-color:var(--accent);background:var(--accent-bg);box-shadow:none}.account-kind-title{margin-bottom:4px;font-size:14.5px;font-weight:600}.account-kind-desc{color:var(--text-muted);font-size:13px;line-height:1.5}.join-code-display{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);background:var(--accent-bg);border-radius:var(--radius-sm);text-align:center;margin:16px 0;padding:14px 16px;font-size:22px;font-weight:600}@media (width<=720px){.summary-cards{grid-template-columns:1fr}.card-wide,.card-full{grid-column:span 1}}
