:root{--bg:#faf9f7;--surface:#fff;--surface-muted:#f6f5f2;--border:#e8e6e1;--border-strong:#d8d5ce;--text:#1b2430;--text-muted:#5d6673;--text-faint:#8d94a0;--primary:#1d3a5f;--primary-strong:#14263d;--primary-soft:#eceff4;--focus:#2f6fd0;--ok:#0e7569;--ok-bg:#e9f3f1;--green:#2e7d4f;--green-bg:#eaf3ed;--warn:#8f6508;--warn-bg:#faf3dd;--danger:#b23a32;--danger-bg:#faedeb;--info:#2a5fb0;--info-bg:#ebf1fa;--neutral:#5d6673;--neutral-bg:#efeeeb;--radius:8px;--radius-sm:6px;--shadow:0 1px 2px #171f2e0d;--shadow-md:0 2px 6px #171f2e0f;--sidebar-w:236px;--topbar-h:56px;--ease:.14s ease;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0}h1,h2,h3,h4,p{margin:0}button{font:inherit}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-radius:var(--radius-sm)}.section-label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);font-size:10.5px;font-weight:700}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--primary-strong);color:#cfd9e6;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;padding:16px 16px 15px;display:flex}.brand-mark{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#2c527e,#1d3a5f);border-radius:7px;flex:none;place-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:grid}.brand-text{color:#fff;letter-spacing:.2px;font-size:14px;font-weight:650;line-height:1.25}.brand-text small{color:#92a4bb;margin-top:1px;font-size:11px;font-weight:400;display:block}.sidebar .nav-section{padding:14px 18px 6px}.sidebar .nav-section .section-label{color:#6f8097}.sidebar nav{flex-direction:column;gap:1px;padding:0 10px 10px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius-sm);color:#aebdcf;transition:background var(--ease), color var(--ease);border-left:2px solid #0000;align-items:center;gap:10px;padding:7.5px 10px 7.5px 12px;font-size:13.5px;display:flex}.nav-item .icon{opacity:.75;flex:none;width:16px;height:16px}.nav-item:hover{color:#fff;background:#ffffff0f;text-decoration:none}.nav-item:hover .icon{opacity:1}.nav-item.active{color:#fff;background:#ffffff1a;border-left-color:#6ea8d8;font-weight:600}.nav-item.active .icon{opacity:1}.sidebar-foot{color:#76889d;border-top:1px solid #ffffff1a;margin-top:auto;padding:12px 18px;font-size:11px;line-height:1.5}.main{flex-direction:column;min-width:0;display:flex}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:14px;padding:0 24px;display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.topbar .divider{background:var(--border);width:1px;height:24px}.topbar label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-right:6px;font-size:11px;font-weight:600}.topbar select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font:inherit;color:var(--text);transition:border-color var(--ease);padding:5.5px 8px;font-size:13px}.topbar select:hover{border-color:var(--text-faint)}.user-chip{align-items:center;gap:9px;font-size:13px;line-height:1.3;display:flex}.user-chip .avatar{background:var(--primary-soft);width:30px;height:30px;color:var(--primary);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.user-chip .role{color:var(--text-faint);letter-spacing:.03em;font-size:11px;display:block}.page{width:100%;max-width:1320px;margin:0 auto;padding:24px 28px 48px}.breadcrumbs{color:var(--text-faint);margin-bottom:6px;font-size:12px}.breadcrumbs a{color:var(--text-faint)}.page-header{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.page-header h1{letter-spacing:-.01em;font-size:20px;font-weight:650}.page-header .subtitle{color:var(--text-muted);margin-top:4px;font-size:13px}.page-header .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:13px 18px;display:flex}.card-head h2{letter-spacing:.01em;font-size:13px;font-weight:700}.card-head .actions{gap:8px;margin-left:auto;display:flex}.card-body{padding:18px}.card-body.flush{padding:0}.grid{gap:16px;display:grid}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow var(--ease);padding:15px 18px 14px}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card .label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:7px;font-size:10.5px;font-weight:700;display:flex}.stat-card .label:before{content:"";background:var(--border-strong);border-radius:50%;flex:none;width:7px;height:7px}.stat-card.ok .label:before{background:var(--ok)}.stat-card.warn .label:before{background:#cf9b1d}.stat-card.danger .label:before{background:var(--danger)}.stat-card.info .label:before{background:var(--info)}.stat-card .value{letter-spacing:-.015em;font-variant-numeric:tabular-nums;margin-top:7px;font-size:26px;font-weight:700;line-height:1.15}.stat-card .sub{color:var(--text-muted);margin-top:5px;font-size:12px}.badge{letter-spacing:.04em;white-space:nowrap;text-transform:uppercase;border-radius:4px;align-items:center;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.neutral{background:var(--neutral-bg);color:var(--neutral)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 16px;font-size:10.5px;font-weight:700}table.data td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 16px}table.data tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--ease)}table.data tbody tr:hover{background:var(--surface-muted)}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover,table.data tr.selected{background:var(--primary-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.total,tr.total td{background:var(--surface-muted);font-weight:700}tr.grand td{background:var(--primary-soft);border-top:1px solid var(--border-strong);font-weight:700}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--ease), border-color var(--ease), box-shadow var(--ease);justify-content:center;align-items:center;gap:6px;padding:6.5px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-muted);border-color:var(--text-faint)}.btn:active{background:var(--primary-soft)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:#26486f;border-color:#26486f}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.subtle{color:var(--info);background:0 0;border-color:#0000}.btn.subtle:hover{background:var(--info-bg);border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:4px 10px;font-size:12px}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text-muted);letter-spacing:.01em;font-size:11.5px;font-weight:650}.field input,.field select,.field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--surface);transition:border-color var(--ease);padding:7px 10px;font-size:13px}.field input:hover,.field select:hover{border-color:var(--text-faint)}.field input:disabled,.field select:disabled{background:var(--surface-muted);color:var(--text-muted)}.field .hint{color:var(--text-faint);font-size:11.5px}.field .error{color:var(--danger);font-size:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;display:grid}.form-grid .wide{grid-column:1/-1}.notice{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);border-left-width:3px;border-left-color:var(--border-strong);padding:10px 14px;font-size:13px}.notice.info{background:var(--info-bg);border-color:#d2def0;border-left-color:var(--info);color:#1d4584}.notice.warn{background:var(--warn-bg);color:#6b4b05;border-color:#eedfb4 #eedfb4 #eedfb4 #cf9b1d}.notice.danger{background:var(--danger-bg);border-color:#f0d2cf;border-left-color:var(--danger);color:#86291f}.notice.ok{background:var(--ok-bg);border-color:#cbe3df;border-left-color:var(--ok);color:#0b5a51}.empty-state{text-align:center;color:var(--text-muted);padding:40px 16px;font-size:13px}.loading-state{color:var(--text-muted);text-align:center;padding:32px 16px;font-size:13px}.date-chip{text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);flex:none;width:46px;padding:4px 0 5px;line-height:1.1}.date-chip .d{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;display:block}.date-chip .m{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-top:2px;font-size:9.5px;font-weight:700;display:block}.row-list{margin:0;padding:0;list-style:none}.row-list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 2px;display:flex}.row-list li:last-child{border-bottom:none;padding-bottom:2px}.row-list li:first-child{padding-top:2px}.row-list .row-main{flex:1;min-width:0}.row-list .row-title{font-size:13px;font-weight:600}.row-list .row-detail{color:var(--text-muted);margin-top:1px;font-size:12px}.row-list .row-end{flex:none;align-items:center;gap:10px;display:flex}.pri{border-radius:50%;flex:none;width:8px;height:8px}.pri.high{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.pri.med{box-shadow:0 0 0 3px var(--warn-bg);background:#cf9b1d}.pri.low{background:var(--text-faint);box-shadow:0 0 0 3px var(--neutral-bg)}.filing-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.filing-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);border-top:2px solid var(--border-strong);padding:11px 14px 10px}.filing-card.ok{border-top-color:var(--ok)}.filing-card.warn{border-top-color:#cf9b1d}.filing-card.danger{border-top-color:var(--danger)}.filing-card .ret{justify-content:space-between;align-items:baseline;gap:8px;font-size:13.5px;font-weight:700;display:flex}.filing-card .when{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:12px}.filing-card .detail{color:var(--text-faint);margin-top:2px;font-size:11.5px}.kv{grid-template-columns:auto 1fr;gap:7px 18px;font-size:13px;display:grid}.kv dt{color:var(--text-muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:650}.list-plain{margin:0;padding:0;list-style:none}.list-plain li{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:9px 2px;display:flex}.list-plain li:last-child{border-bottom:none}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:12px}.mono{font-variant-numeric:tabular-nums}.mt{margin-top:16px}.mb{margin-bottom:16px}@media (width<=1024px){.cols-4,.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{flex-flow:wrap}.cols-2,.cols-3,.cols-4,.form-grid{grid-template-columns:1fr}.page{padding:14px}}.login-page{background:var(--bg);place-items:center;min-height:100vh;padding:28px;display:grid}.login-split{background:var(--surface);border:1px solid var(--border);width:100%;max-width:880px;box-shadow:var(--shadow-md);border-radius:10px;grid-template-columns:5fr 6fr;display:grid;overflow:hidden}.login-side{background:var(--primary-strong);color:#c6d2e1;flex-direction:column;gap:26px;padding:36px 32px 28px;display:flex}.login-side .login-brand{align-items:center;gap:12px;display:flex}.login-side .login-brand .brand-mark{width:38px;height:38px;font-size:16px}.login-side h1{color:#fff;letter-spacing:.1px;font-size:17px;font-weight:650;line-height:1.3}.login-side .tagline{color:#91a3ba;margin-top:2px;font-size:12px}.login-points{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.login-points li{align-items:flex-start;gap:11px;font-size:13px;line-height:1.5;display:flex}.login-points .pt{background:#6ea8d8;border-radius:50%;flex:none;width:6px;height:6px;margin-top:7px}.login-points b{color:#e8eef5;font-weight:600;display:block}.login-side-foot{color:#76889d;margin-top:auto;font-size:11px;line-height:1.6}.login-form-zone{flex-direction:column;padding:36px 36px 28px;display:flex}.login-form-zone h2{font-size:17px;font-weight:650}.login-form-zone .lead{color:var(--text-muted);margin-top:3px;font-size:13px}.login-form{flex-direction:column;gap:14px;margin-top:22px;display:flex}.login-form .btn.primary{margin-top:2px;padding-top:8.5px;padding-bottom:8.5px}.dev-users{border-top:1px solid var(--border);margin-top:26px;padding-top:16px}.dev-users-head{align-items:baseline;gap:10px;display:flex}.dev-users-head .pw{color:var(--text-faint);margin-left:auto;font-size:11.5px}.dev-users-head .pw code{background:var(--surface-muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:11px}.dev-user-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.dev-user-btn{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;transition:background var(--ease), border-color var(--ease);align-items:center;gap:11px;padding:8px 12px;display:flex}.dev-user-btn:hover{background:var(--surface-muted);border-color:var(--border-strong)}.dev-user-btn .avatar{background:var(--primary-soft);width:28px;height:28px;color:var(--primary);border-radius:50%;flex:none;place-items:center;font-size:11.5px;font-weight:700;display:grid}.dev-user-btn .who{flex:1;min-width:0;line-height:1.3}.dev-user-btn .who b{color:var(--text);font-size:13px;font-weight:650;display:block}.dev-user-btn .who span{color:var(--text-muted);font-size:11.5px}.dev-user-btn code{color:var(--text-faint);flex:none;font-size:11px}.dev-users-foot{color:var(--text-faint);margin-top:10px;font-size:11px}@media (width<=860px){.login-split{grid-template-columns:1fr;max-width:480px}.login-side{gap:18px;padding:24px 24px 20px}.login-points{display:none}.login-form-zone{padding:24px}}.seg-bar{background:var(--surface);border-radius:4px;gap:2px;height:16px;display:flex;overflow:hidden}.seg-bar .seg{min-width:6px}.seg-bar .seg.filed{background:var(--ok)}.seg-bar .seg.due{background:#cf9b1d}.seg-bar .seg.late{background:var(--danger)}.seg-legend{flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12.5px;display:flex}.seg-legend .item{color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.seg-legend .swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.seg-legend .swatch.filed{background:var(--ok)}.seg-legend .swatch.due{background:#cf9b1d}.seg-legend .swatch.late{background:var(--danger)}.seg-legend strong{color:var(--text);font-variant-numeric:tabular-nums}.hbar-chart{flex-direction:column;gap:10px;display:flex}.hbar-row{grid-template-columns:96px minmax(0,1fr) 56px;align-items:center;gap:10px;display:grid}.hbar-label{color:var(--text-muted);text-align:right;font-size:12.5px}.hbar-track{border-left:1px solid var(--border-strong);padding:1px 0;display:block}.hbar-fill{background:var(--primary);border-radius:0 4px 4px 0;min-width:2px;height:14px;display:block}.hbar-row:hover .hbar-fill{background:var(--primary-strong)}.hbar-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:12.5px;font-weight:600}.hbar-axis-note{color:var(--text-faint);margin-top:10px;font-size:11.5px}.side-stack{align-content:start}.report-filters{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.report-filters .field{min-width:180px}.report-col{flex-direction:column;gap:8px;display:flex}.report-col .card{flex:1}.report-item{display:block}.report-item+.report-item{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.report-item .name{font-size:13px;font-weight:650}.report-item .desc{color:var(--text-muted);margin:2px 0 7px;font-size:12px}.report-item .actions{flex-wrap:wrap;gap:6px;display:flex}.report-foot{margin-top:12px}.toast{z-index:50;max-width:380px;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 14px #1018282e}.masters-controls{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.masters-controls .field.grow{flex:1;min-width:220px}.tab-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;margin-bottom:18px;display:flex}.tab-bar .tab{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--ease), background var(--ease), border-color var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px 9px;font-size:13px;font-weight:600}.tab-bar .tab:hover{color:var(--text);background:var(--surface-muted)}.tab-bar .tab.active{color:var(--primary);border-bottom-color:var(--primary)}.mb-card{margin-bottom:16px}.checkbox-field{justify-content:flex-end}.checkbox-field label{color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.checkbox-field input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary)}.suggestion-line{color:var(--info);background:var(--info-bg);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px;padding:4px 8px;font-size:12px;display:flex}.split-main-side{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.stack{flex-direction:column;gap:14px;min-width:0;display:flex}.section-label.step-head{margin:16px 0 8px;display:block}table.data.editable td{vertical-align:top;padding:6px 10px}table.data.editable input,table.data.editable select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;min-width:70px;font:inherit;color:var(--text);background:var(--surface);padding:5px 8px;font-size:13px}table.data.editable input:disabled,table.data.editable select:disabled{background:var(--surface-muted);color:var(--text-muted)}table.data.editable input.num{text-align:right;font-variant-numeric:tabular-nums}table.data.editable input.invalid{border-color:var(--danger);background:var(--danger-bg)}.cell-error{color:var(--danger);margin-top:2px;font-size:11px}.line-amount{text-align:right;font-variant-numeric:tabular-nums;padding:6px 0;font-weight:600;display:block}.actions-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-stack{flex-direction:column;align-items:stretch;gap:8px;display:flex}.btn-stack .btn{justify-content:space-between}.auto-panel .kv{grid-template-columns:minmax(0,auto) 1fr}.auto-panel dd{font-weight:600}.feeds-forms{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.kv dt.grand,.kv dd.grand{color:var(--primary-strong);border-top:1px solid var(--border-strong);margin-top:2px;padding-top:8px;font-weight:700}.kv dd.grand{font-size:15px}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-muted);text-align:center;color:var(--text-muted);cursor:pointer;width:100%;padding:36px 18px;font-size:13px;display:block}.dropzone:hover,.dropzone.dragover{border-color:var(--focus);background:var(--info-bg);color:var(--text)}.dropzone .dz-title{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:600}.file-chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-variant-numeric:tabular-nums;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:inline-flex}.file-chip .dot{color:var(--text-faint)}.template-card .card-body{flex-direction:column;gap:8px;min-height:108px;display:flex}.template-card .tpl-name{font-size:13.5px;font-weight:650}.template-card .tpl-desc{color:var(--text-muted);flex:1;font-size:12.5px}table.data tr.deduction td{color:var(--text-muted)}.regime-card{position:relative}.regime-card .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:20px;font-weight:700}.footnote{color:var(--text-faint);font-size:12px}.inline-badges{vertical-align:middle;flex-wrap:wrap;gap:6px;display:inline-flex}.panel-note{margin-bottom:10px}.chip-note{margin-top:8px}.panel-note-text{font-size:13px}.card-body.flush-top{padding-top:0}@media (width<=1024px){.split-main-side{grid-template-columns:1fr}}
