:root{--ink-950: #0a0f1c;--ink-900: #111827;--ink-800: #1b2437;--ink-700: #2a3549;--ink-600: #414d66;--ink-500: #5c6880;--ink-400: #8590a5;--ink-300: #b3bbca;--ink-200: #d8dde6;--ink-100: #eceff4;--ink-50: #f6f8fb;--canvas: #f4f6fa;--surface: #ffffff;--surface-sunken: #eef1f7;--text: var(--ink-900);--text-soft: var(--ink-500);--text-faint: var(--ink-400);--brass-700: #8a6414;--brass-600: #a87c1c;--brass-500: #c69626;--brass-400: #ddb254;--brass-200: #f0dca8;--brass-100: #f9f0d8;--success-700: #16624a;--success-500: #1f8a63;--success-100: #dcf2e9;--danger-700: #92291f;--danger-500: #c33d30;--danger-100: #fce8e5;--warn-700: #8a5a10;--warn-500: #c98a1e;--warn-100: #fbf0da;--info-700: #1c4c85;--info-500: #2d6cb5;--info-100: #e4eefb;--border: #e2e7ef;--border-strong: #cbd3e0;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--shadow-xs: 0 1px 2px rgba(10, 15, 28, .04);--shadow-sm: 0 1px 2px rgba(10, 15, 28, .05), 0 2px 6px rgba(10, 15, 28, .04);--shadow-md: 0 2px 4px rgba(10, 15, 28, .05), 0 8px 20px rgba(10, 15, 28, .07);--shadow-lg: 0 8px 16px rgba(10, 15, 28, .08), 0 24px 48px rgba(10, 15, 28, .12);--sidebar-w: 246px;--navy-950: var(--ink-950);--navy-900: var(--ink-900);--navy-800: var(--ink-800);--navy-700: var(--ink-700);--paper: var(--canvas);--paper-card: var(--surface);--ink: var(--text);--ink-soft: var(--text-soft);--line: var(--border);--gold: var(--brass-500);--gold-soft: var(--brass-200);--green: var(--success-500);--green-soft: var(--success-100);--red: var(--danger-500);--red-soft: var(--danger-100);--blue: var(--info-500);--blue-soft: var(--info-100);--radius: var(--r-md);--shadow-card: var(--shadow-sm)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);font-size:14.5px;line-height:1.6;background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}h1{font-size:27px}h2{font-size:20px}h3{font-size:16.5px}a{color:inherit}button{font-family:inherit}::selection{background:var(--brass-200);color:var(--ink-900)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-flush{border-radius:var(--r-lg);overflow:hidden}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.ledger-row{display:grid;align-items:center;gap:12px;border-left:3px solid transparent;padding:13px 18px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;transition:background .13s ease,border-color .13s ease}.ledger-row:last-child{border-bottom:none}.ledger-row:hover{background:var(--ink-50)}.ledger-head{font-size:11.5px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;background:var(--surface-sunken);border-bottom:1px solid var(--border)}.ledger-head:hover{background:var(--surface-sunken)}.ledger-row.status-active,.ledger-row.status-paid,.ledger-row.status-present,.ledger-row.status-solved{border-left-color:var(--success-500)}.ledger-row.status-warning,.ledger-row.status-partial,.ledger-row.status-late,.ledger-row.status-pending{border-left-color:var(--brass-500)}.ledger-row.status-danger,.ledger-row.status-overdue,.ledger-row.status-absent,.ledger-row.status-infeasible,.ledger-row.status-failed{border-left-color:var(--danger-500)}.mono-chip{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:-.01em;background:var(--ink-900);color:var(--brass-200);padding:3px 9px;border-radius:var(--r-sm);white-space:nowrap;display:inline-block}.mono-chip.subtle{background:var(--surface-sunken);color:var(--ink-600);border:1px solid var(--border)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:var(--r-full);text-transform:capitalize;letter-spacing:.01em;white-space:nowrap}.badge.green{background:var(--success-100);color:var(--success-700)}.badge.gold{background:var(--brass-100);color:var(--brass-700)}.badge.red{background:var(--danger-100);color:var(--danger-700)}.badge.blue{background:var(--info-100);color:var(--info-700)}.badge.gray{background:var(--ink-100);color:var(--ink-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:13.5px;line-height:1;padding:10px 16px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:background .13s ease,border-color .13s ease,transform .08s ease;white-space:nowrap}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px}.btn-primary{background:var(--ink-900);color:#fff}.btn-primary:hover:not(:disabled){background:var(--ink-800)}.btn-brass{background:var(--brass-500);color:#fff}.btn-brass:hover:not(:disabled){background:var(--brass-600)}.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-400)}.btn-ghost{background:transparent;color:var(--text-soft)}.btn-ghost:hover:not(:disabled){background:var(--ink-100);color:var(--text)}.btn-danger{background:var(--danger-500);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-700)}.btn-sm{padding:7px 12px;font-size:12.5px}input,select,textarea{font-family:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);width:100%;transition:border-color .13s ease,box-shadow .13s ease}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:hover,select:hover,textarea:hover{border-color:var(--ink-400)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass-500);box-shadow:0 0 0 3px #c6962629}input:disabled,select:disabled,textarea:disabled{background:var(--surface-sunken);color:var(--text-faint);cursor:not-allowed}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c6880' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-soft);cursor:pointer;font-size:13px;transition:background .13s ease,color .13s ease,border-color .13s ease}.icon-btn:hover{background:var(--ink-100);color:var(--text);border-color:var(--border-strong)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:22px;flex-wrap:wrap}.tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:11px 15px;font-size:13.5px;font-weight:500;color:var(--text-soft);cursor:pointer;transition:color .13s ease,border-color .13s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--text);font-weight:700;border-bottom-color:var(--brass-500)}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.32);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .6s linear infinite}.spinner.dark{border-color:#11182729;border-top-color:var(--ink-700)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:44px 24px;text-align:center}.empty-state-title{font-weight:600;font-size:15px;margin-bottom:5px}.empty-state-body{color:var(--text-soft);font-size:13.5px;margin-bottom:18px}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:var(--r-full);border:3px solid var(--canvas)}::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;margin:0!important;padding:24px!important;border:none!important;box-shadow:none!important;background:#fff!important}body{background:#fff!important}a[href]:after{content:none!important}.ledger-row{break-inside:avoid}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
