:root,[data-theme=light]{color-scheme:light;--bg: #f7f6f1;--panel: #ffffff;--ink: #20201c;--muted: #54544a;--line: #c9c6b9;--accent: #3f4d34;--accent-ink: #ffffff;--accent-soft: #e3e8db;--accent-soft-ink: #2f3b26;--danger: #9a2f14;--danger-soft: #f6e2db;--danger-soft-ink: #7c250e;--warn: #7a520a;--warn-soft: #f3e7cd;--warn-soft-ink: #63430a;--stripe: #f1efe8;--focus: #1d4ed8;--shadow: rgba(32, 32, 28, .45)}[data-theme=dark]{color-scheme:dark;--bg: #191a17;--panel: #23251f;--ink: #f1f0ea;--muted: #b8b7ab;--line: #4a4c42;--accent: #b5c9a0;--accent-ink: #1c1e18;--accent-soft: #39422e;--accent-soft-ink: #cfdec0;--danger: #f0a58e;--danger-soft: #4d2417;--danger-soft-ink: #f3c1b3;--warn: #e3c073;--warn-soft: #4a3a14;--warn-soft-ink: #ecd3a2;--stripe: #292b24;--focus: #9db9ff;--shadow: rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--bg);color:var(--ink);font-family:Jost,system-ui,sans-serif;font-weight:400;font-size:17px;line-height:1.5}h1,h2,h3{font-weight:500;letter-spacing:.03em}h1{font-size:26px;text-transform:uppercase;letter-spacing:.12em;margin:0}h2{font-size:20px;margin:0 0 14px}a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--panel);color:var(--ink);padding:12px 18px;border:2px solid var(--focus)}.skip-link:focus{left:12px;top:12px}.appbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--panel);border-bottom:2px solid var(--line);position:sticky;top:0;z-index:40;flex-wrap:wrap}.appbar .brand{font-size:19px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}.appbar .brand small{display:block;font-size:12px;letter-spacing:.18em;color:var(--muted);font-weight:400}.appbar .controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.segmented{display:inline-flex;border:2px solid var(--accent);border-radius:10px;overflow:hidden}.segmented button{border:none;border-radius:0;margin:0;min-height:42px;padding:6px 16px;background:var(--panel);color:var(--accent);font-size:15px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.body{display:flex;min-height:calc(100vh - 70px)}.sidebar{width:220px;flex-shrink:0;padding:18px 0;border-right:2px solid var(--line);background:var(--panel)}.sidebar nav a{display:block;padding:13px 26px;color:var(--ink);text-decoration:none;font-size:16px;letter-spacing:.05em;font-weight:400}.sidebar nav a:hover{background:var(--stripe)}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-soft-ink);border-right:4px solid var(--accent);font-weight:500}.main{flex:1;padding:28px 34px 70px;max-width:1240px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:26px}.card{background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:18px 20px}.card .label{font-size:13.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.card .value{font-size:30px;margin-top:6px;font-weight:500}.card .sub{font-size:14px;color:var(--muted);margin-top:4px}.panel{background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:22px 24px;margin-bottom:22px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:16px}th{text-align:left;font-size:13.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:2px solid var(--line);white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:nth-child(2n) td{background:var(--stripe)}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.clickable{cursor:pointer}tr.clickable:hover td,tr.clickable:focus-within td{background:var(--accent-soft);color:var(--accent-soft-ink)}.badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:500;letter-spacing:.03em;white-space:nowrap;background:var(--accent-soft);color:var(--accent-soft-ink)}.badge.danger{background:var(--danger-soft);color:var(--danger-soft-ink)}.badge.warn{background:var(--warn-soft);color:var(--warn-soft-ink)}.badge.muted{background:var(--stripe);color:var(--muted);border:1px solid var(--line)}button,.btn{font-family:inherit;font-weight:500;font-size:16px;letter-spacing:.03em;min-height:44px;padding:9px 22px;border-radius:10px;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer}button.secondary,.btn.secondary{background:var(--panel);color:var(--accent)}button.ghost{background:transparent;border-color:var(--line);color:var(--muted);min-height:40px;padding:5px 14px;font-size:18px}button.danger{background:var(--panel);border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.55;cursor:default}button.link{background:none;border:none;color:var(--accent);padding:4px 6px;min-height:0;text-decoration:underline;text-underline-offset:3px}input,select,textarea{font-family:inherit;font-weight:400;font-size:16px;color:var(--ink);min-height:44px;padding:9px 12px;border:2px solid var(--line);border-radius:8px;background:var(--panel);width:100%}input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--accent)}input[type=checkbox]{min-height:0;width:22px;height:22px;accent-color:var(--accent)}label,.label-text{display:block;font-size:14px;letter-spacing:.04em;color:var(--ink);font-weight:500;margin-bottom:5px}.field{margin-bottom:16px}.grid{display:grid;gap:14px}.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:1fr 1fr 1fr}.grid.c4{grid-template-columns:repeat(4,1fr)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--shadow);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}.modal{background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:26px 28px;width:100%;max-width:680px}.modal.wide{max-width:980px}.modal h2{margin-top:0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative}.login{width:380px;text-align:center}.login h1{letter-spacing:.26em}.login .panel{text-align:left}.login-controls{position:absolute;top:16px;right:20px;display:flex;gap:12px}.error{color:var(--danger);font-size:15px;font-weight:500;margin-top:8px}.hint{color:var(--muted);font-size:14.5px}.pnl-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:16.5px}.pnl-line.total{border-bottom:none;border-top:2px solid var(--ink);margin-top:4px;padding-top:12px;font-weight:600}.pnl-line .neg{color:var(--danger)}.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.toolbar .field{margin-bottom:0;min-width:150px}@media (max-width: 900px){.body{flex-direction:column}.sidebar{width:100%;padding:0;border-right:none;border-bottom:2px solid var(--line)}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav a{white-space:nowrap;padding:13px 16px}.sidebar nav a.active{border-right:none;border-bottom:4px solid var(--accent)}.main{padding:20px 16px 60px}.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
