:root{--sidebar-bg:#101828;--sidebar-fg:#cbd5e1;--bg:#f3f5f9;--surface:#fff;--border:#e4e8f0;--text:#1a2333;--muted:#64748b;--accent:#2f6fed;--accent-soft:#e8effd;--green:#14833b;--green-bg:#e2f5e9;--amber:#b45309;--amber-bg:#fdf1dc;--red:#c02626;--red-bg:#fbe5e5;--blue:#1d6fb8;--blue-bg:#e1effb;--purple:#7635d4;--purple-bg:#efe6fc;--radius:12px;--shadow:0 1px 2px #1018280d, 0 1px 6px #1018280f;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0;font-size:14px}h1,h2,h3{margin:0}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:232px;color:var(--sidebar-fg);flex-direction:column;flex-shrink:0;gap:18px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 6px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#3b82f6,#22c55e);border-radius:9px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:700;display:grid}.brand-name{color:#fff;font-size:15px;font-weight:600}.brand-sub{color:#8ea0b8;letter-spacing:.04em;text-transform:uppercase;font-size:11px}.project-chip{background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;padding:10px 12px}.project-chip-name{color:#fff;margin-bottom:2px;font-weight:600}.project-chip-sub{color:#8ea0b8;font-size:12px;line-height:1.5}.project-select{color:#fff;cursor:pointer;background:0 0;border:none;width:100%;padding:2px 0;font-size:13.5px;font-weight:600}.project-select:focus{outline:none}.project-select option{color:var(--text);background:#fff}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:14px 12px 4px;font-size:10.5px;font-weight:700}.nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-link{color:var(--sidebar-fg);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{background:var(--accent);color:#fff}.nav-icon{text-align:center;opacity:.85;width:18px}.nav-badge{color:#fff;background:#ef4444;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.sidebar-foot{flex-direction:column;gap:4px;display:flex}.content{flex:1;max-width:1280px;padding:26px 30px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-title{letter-spacing:-.01em;font-size:21px;font-weight:700}.page-sub{color:var(--muted);margin-top:4px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}.mono{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px 20px}.card-title{margin-bottom:12px;font-size:14px;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:22px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stat-label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:500}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:21px;font-weight:700}.stat-sub{color:var(--muted);margin-top:5px;font-size:12px}.stat-good .stat-value{color:var(--green)}.stat-bad .stat-value{color:var(--red)}.stat-warn .stat-value{color:var(--amber)}.stat-accent{background:var(--accent-soft);border-color:#c4d5f8}.stat-accent .stat-value{color:var(--accent)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}table.data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}table.data tbody tr:last-child td{border-bottom:none}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:#f7f9fd}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data tr.total-row td{border-top:2px solid var(--text);background:#fafbfe;font-weight:700}.neg{color:var(--red);font-weight:600}.pos{color:var(--green)}.pill{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600;display:inline-block}.pill-coded,.pill-approved,.pill-complete,.pill-paid{background:var(--green-bg);color:var(--green)}.pill-needs-coding,.pill-pending{background:var(--amber-bg);color:var(--amber)}.pill-queried{background:var(--purple-bg);color:var(--purple)}.pill-excluded,.pill-rejected,.pill-descoped{color:var(--muted);background:#eceef2}.pill-variation{background:var(--blue-bg);color:var(--blue)}.pill-unpaid{background:var(--red-bg);color:var(--red)}.pill-active{background:var(--accent-soft);color:var(--accent)}.pill-not-started{color:var(--muted);background:#eceef2}.flag{align-items:center;gap:6px;display:inline-flex}.flag-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.flag-green .flag-dot{background:#22c55e}.flag-amber .flag-dot{background:#f59e0b}.flag-red .flag-dot{background:#ef4444}.flag-blue .flag-dot{background:#3b82f6}.flag-purple .flag-dot{background:#a855f7}.flag-label{font-size:12px;font-weight:600}.flag-green .flag-label{color:var(--green)}.flag-amber .flag-label{color:var(--amber)}.flag-red .flag-label{color:var(--red)}.flag-blue .flag-label{color:var(--blue)}.flag-purple .flag-label{color:var(--purple)}.progress{background:#e9edf4;border-radius:999px;min-width:90px;height:6px;overflow:hidden}.progress-fill{border-radius:999px;height:100%}.progress-green{background:#22c55e}.progress-amber{background:#f59e0b}.progress-red{background:#ef4444}.progress-blue{background:#3b82f6}.progress-purple{background:#a855f7}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 14px;font-weight:600}.btn:hover{background:#f2f5fa}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#245cd4}.btn-sm{padding:4px 10px;font-size:12.5px}.btn-ghost{color:var(--sidebar-fg);background:0 0;border-color:#ffffff26}.btn-ghost:hover{color:#fff;background:#ffffff14}.input,select.input,textarea.input{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:7px 10px}.input:focus{border-color:var(--accent);outline:2px solid #bcd0f7}.input-inline{text-align:right;font-variant-numeric:tabular-nums;width:120px}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--muted);font-size:12px;font-weight:600}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.filters .input{width:auto}.filters .search{min-width:220px}.section{margin-bottom:26px}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=1100px){.grid-2{grid-template-columns:1fr}}.li-cols,.li-head{grid-template-columns:26px 1.7fr repeat(6,minmax(90px,1fr)) 120px;align-items:center;gap:8px;display:grid}.li-cols{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 14px;font-size:11px;font-weight:600}.li-row{border-bottom:1px solid var(--border)}.li-row:last-child{border-bottom:none}.li-head{cursor:pointer;padding:11px 14px}.li-head:hover{background:#f7f9fd}.li-name{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.li-detail{border-top:1px dashed var(--border);background:#f8fafd;padding:14px 18px 18px 48px}.chev{color:var(--muted);font-size:11px;transition:transform .15s;display:inline-block}.chev.open{transform:rotate(90deg)}.num-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.claim-sheet{max-width:860px;margin:0 auto;padding:38px 44px}.claim-head{border-bottom:3px solid var(--text);justify-content:space-between;margin-bottom:22px;padding-bottom:16px;display:flex}.claim-title{letter-spacing:-.01em;font-size:22px;font-weight:800}.claim-sub{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.6}.claim-section-title{text-transform:uppercase;letter-spacing:.06em;margin:22px 0 8px;font-size:13px;font-weight:700}table.claim{border-collapse:collapse;width:100%;font-size:13px}table.claim th{text-align:left;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--text);padding:7px 8px;font-size:11px}table.claim td{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:6px 8px}table.claim td.num,table.claim th.num{text-align:right}table.claim tr.total td{border-top:2px solid var(--text);font-weight:700}table.claim.claim-summary{max-width:520px}table.claim.claim-summary tr.total td{border-bottom:3px double var(--text);font-size:14.5px}.claim-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:34px;padding-top:12px;display:flex}@media print{@page{size:A4 portrait;margin:14mm 12mm}.sidebar,.no-print,.warn-banner{display:none!important}.shell{display:block}.content{max-width:none;padding:0}.card{box-shadow:none;border:none;border-radius:0}.claim-sheet{max-width:none;padding:0}body{background:#fff;font-size:11px}table.claim{font-size:10.5px}table.claim thead{display:table-header-group}table.claim tr{break-inside:avoid;page-break-inside:avoid}.claim-section-title{break-after:avoid;page-break-after:avoid}.claim-head{break-inside:avoid}.claim-foot{background:#fff;position:fixed;bottom:0;left:0;right:0}}.login-wrap{background:var(--sidebar-bg);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--surface);border-radius:16px;width:380px;padding:36px;box-shadow:0 20px 60px #00000059}.login-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.login-error{color:var(--red);margin-top:10px;font-size:13px}.notes-input{width:100%;color:var(--muted);background:0 0;border:1px dashed #0000;border-radius:6px;padding:3px 6px;font-size:12.5px}.notes-input:hover{border-color:var(--border);background:#fff}.notes-input:focus{border-color:var(--accent);color:var(--text);background:#fff;outline:none}.legend{flex-wrap:wrap;gap:18px;padding:10px 0 0;display:flex}.warn-banner{background:var(--red-bg);color:var(--red);border:1px solid #f3c1c1;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:13px;font-weight:600}
