:root{--ink: #16202b;--ink-2: #1e2b3a;--canvas: #f1f3f6;--surface: #ffffff;--border: #dde3ea;--border-strong: #c3ccd6;--muted: #6b7686;--text: #1b2530;--accent: #a9781f;--accent-ink: #7c5510;--accent-soft: #f3e9d6;--pos: #1f7a4d;--neg: #b23a2e;--radius: 8px;--font-display: "Space Grotesk", system-ui, sans-serif;--font-ui: "Inter", system-ui, sans-serif;--font-mono: "Spline Sans Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);color:var(--text);background:var(--canvas);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent-ink);text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}h1{font-size:22px}h2{font-size:17px}.mono,td.num,th.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:232px 1fr;height:100%}.sidebar{background:var(--ink);color:#cdd6e0;display:flex;flex-direction:column;padding:20px 14px;gap:4px}.brand{font-family:var(--font-display);font-weight:700;font-size:18px;color:#fff;letter-spacing:.02em;padding:0 8px 4px}.brand small{display:block;font-family:var(--font-mono);font-weight:400;font-size:11px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase}.nav-group{margin-top:16px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#6d7b8b;padding:0 8px 4px}.nav-item{display:block;padding:8px 10px;border-radius:6px;color:#c3cdd8;font-size:13.5px;cursor:pointer;border-left:2px solid transparent}.nav-item:hover{background:var(--ink-2);color:#fff}.nav-item.active{background:var(--ink-2);color:#fff;border-left-color:var(--accent)}.sidebar-foot{margin-top:auto;border-top:1px solid #263243;padding-top:12px;font-size:12px;color:#8b98a8}.sidebar-foot b{color:#dfe6ee;font-weight:500}.main{overflow:auto}.topbar{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:5}.topbar .tenant-pick{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.content{padding:28px;max-width:1180px}.page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px}.page-head p{color:var(--muted);margin:4px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px}.card h2{margin-bottom:14px}.grid{display:grid;gap:16px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stat .value{font-family:var(--font-mono);font-size:26px;font-weight:500;margin-top:6px}label.field{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}input,select{font-family:var(--font-ui);font-size:14px;padding:8px 10px;width:100%;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text)}input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>div{min-width:130px}button{font-family:var(--font-ui);font-weight:500;font-size:13.5px;cursor:pointer;padding:9px 16px;border-radius:6px;border:1px solid var(--ink);background:var(--ink);color:#fff}button:hover{background:var(--ink-2)}button.secondary{background:#fff;color:var(--ink);border-color:var(--border-strong)}button.secondary:hover{background:var(--canvas)}button.accent{background:var(--accent);border-color:var(--accent)}button.accent:hover{background:var(--accent-ink)}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:#fbfcfd;position:sticky;top:0}td.num,th.num{text-align:right}tr:hover td{background:#fafbfc}.debit{color:var(--neg)}.credit{color:var(--pos)}tr.total td{font-weight:600;border-top:2px solid var(--ink);background:#f7f4ec}.table-wrap{max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.badge.gray{background:#eceff2;color:var(--muted)}.pill-perm{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;margin:3px;font-family:var(--font-mono)}.msg{padding:10px 14px;border-radius:6px;font-size:13px;margin:12px 0}.msg.ok{background:#e7f4ec;color:var(--pos);border:1px solid #bfe0cc}.msg.err{background:#fbebe9;color:var(--neg);border:1px solid #f0c8c2}.empty{text-align:center;color:var(--muted);padding:40px;font-size:14px}.login-wrap{display:grid;place-items:center;height:100%;background:radial-gradient(1200px 500px at 70% -10%,#1e2b3a 0%,var(--ink) 60%)}.login-card{width:380px;background:var(--surface);border-radius:12px;padding:34px;box-shadow:0 24px 60px #0a101859}.login-card .brand{color:var(--ink);padding:0 0 18px}.login-card .brand small{color:var(--accent-ink)}.login-card label.field{margin-top:14px}.login-card button{width:100%;margin-top:20px}.hint{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.6}.hint code{font-family:var(--font-mono);background:var(--canvas);padding:1px 5px;border-radius:4px}
