html,body{margin:0;padding:0}.no-copy,.no-copy *{-webkit-user-select:none;user-select:none}.no-copy input,.no-copy textarea{-webkit-user-select:text;user-select:text}.auth-box{align-items:center;gap:8px;display:flex}.auth-box input{font-family:var(--font-body);border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:7px;width:140px;padding:6px 9px;font-size:13px}.auth-box button{font-family:var(--font-body);background:var(--surface-2);color:var(--ink);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:6px 11px;font-size:12.5px;font-weight:600}.auth-box button:hover{background:var(--accent-soft)}.auth-box .error{color:var(--expense);font-size:12px}.editor-badge{font-size:12px;font-family:var(--font-mono);color:var(--income);border:1px solid var(--income);white-space:nowrap;background:var(--income-soft);border-radius:99px;align-items:center;gap:6px;padding:5px 12px;display:flex}:root{--bg:#f3f5f1;--surface:#fff;--surface-2:#eaefe8;--ink:#16241c;--ink-soft:#5b6c60;--ink-faint:#8a988e;--accent:#c98a2e;--accent-deep:#9c6a1e;--accent-soft:#f3e1be;--income:#2f7d57;--income-soft:#deeee3;--expense:#a6432e;--expense-soft:#f3e1da;--border:#dce3d8;--shadow:0 1px 2px #16241c0a, 0 8px 24px #16241c0f;--radius:10px;--font-display:"PT Serif", "Times New Roman", serif;--font-body:"PT Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101c16;--surface:#16251d;--surface-2:#1d3025;--ink:#eaf1eb;--ink-soft:#a9bdad;--ink-faint:#748a7b;--accent:#e7b45c;--accent-deep:#f0c374;--accent-soft:#3b3120;--income:#5fcb92;--income-soft:#1c3327;--expense:#e38a6c;--expense-soft:#3a251f;--border:#2a4234;--shadow:0 1px 2px #0003, 0 12px 28px #00000059}}:root[data-theme=dark]{--bg:#101c16;--surface:#16251d;--surface-2:#1d3025;--ink:#eaf1eb;--ink-soft:#a9bdad;--ink-faint:#748a7b;--accent:#e7b45c;--accent-deep:#f0c374;--accent-soft:#3b3120;--income:#5fcb92;--income-soft:#1c3327;--expense:#e38a6c;--expense-soft:#3a251f;--border:#2a4234;--shadow:0 1px 2px #0003, 0 12px 28px #00000059}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}.wrap{max-width:1180px;margin:0 auto;padding:28px 20px 80px}header.top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:22px;display:flex}header.top h1{font-family:var(--font-display);text-wrap:balance;letter-spacing:-.01em;margin:0;font-size:clamp(28px,4vw,38px);font-weight:600}header.top .tagline{color:var(--ink-soft);margin-top:4px;font-size:14px}.status-pill{font-size:12px;font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--border);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:5px 12px;display:flex}.status-dot{background:var(--ink-faint);border-radius:50%;width:7px;height:7px}.status-pill.live .status-dot{background:var(--income);box-shadow:0 0 0 3px var(--income-soft)}.status-pill.warn{color:var(--expense);border-color:var(--expense)}nav.months{border-bottom:1px solid var(--border);gap:6px;margin-bottom:22px;padding-bottom:2px;display:flex;overflow-x:auto}nav.months button{font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px 8px 0 0;padding:10px 14px;font-size:14px;font-weight:600;position:relative}nav.months button:hover{color:var(--ink);background:var(--surface-2)}nav.months button.active{color:var(--ink)}nav.months button.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.tile .label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.tile .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:6px;font-size:22px;font-weight:600}.tile.income .value{color:var(--income)}.tile.expense .value{color:var(--expense)}.tile.balance .value{color:var(--accent-deep)}.tile.opening input{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:none;width:100%;padding:0;font-size:22px;font-weight:600}.tile.opening input:focus{border-bottom:2px solid var(--accent);outline:none}.tile .hint{color:var(--ink-faint);margin-top:4px;font-size:11px}.ledgers{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}@media (max-width:820px){.ledgers{grid-template-columns:1fr}.summary{grid-template-columns:repeat(2,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card h2{font-family:var(--font-display);justify-content:space-between;align-items:center;margin:0;padding:16px 18px 12px;font-size:19px;font-weight:600;display:flex}.card h2 .dot{border-radius:50%;width:9px;height:9px;margin-right:8px;display:inline-block}.card.income h2 .dot{background:var(--income)}.card.expense h2 .dot{background:var(--expense)}.card h2 .total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px}.card.income h2 .total{color:var(--income)}.card.expense h2 .total{color:var(--expense)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);border-bottom:1px solid var(--border);padding:0 12px 8px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}td.date{white-space:nowrap;color:var(--ink-soft);font-family:var(--font-mono);padding-top:11px;font-size:12.5px}td.who{font-weight:500}td.note{color:var(--ink-soft);font-size:12.5px}td.amt{font-family:var(--font-mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:11px}.card.income td.amt{color:var(--income)}.card.expense td.amt{color:var(--expense)}td.actions{text-align:right;white-space:nowrap;background:var(--surface);z-index:1;width:56px;position:sticky;right:0}.icon-btn{cursor:pointer;color:var(--ink-faint);background:0 0;border:none;border-radius:5px;padding:3px 5px;font-size:13px;line-height:1}.icon-btn:hover{color:var(--ink);background:var(--surface-2)}.icon-btn.danger:hover{color:var(--expense)}tbody.empty td{color:var(--ink-faint);text-align:center;padding:22px 12px;font-style:italic}.row-edit input{width:100%;font-family:var(--font-body);border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:6px;padding:5px 7px;font-size:13.5px}.row-edit input.amt-input{font-family:var(--font-mono);text-align:right}.row-edit td{padding:6px 8px}.add-form{border-top:1px solid var(--border);background:var(--surface-2);grid-template-columns:124px 1fr 104px auto;grid-template-areas:"date from amount submit""note note note submit""team team team submit";align-items:start;gap:8px 10px;padding:14px 18px 18px;display:grid}.add-form .f-team{color:var(--ink-soft);cursor:pointer;grid-area:team;align-items:center;gap:6px;font-size:12.5px;display:flex}.add-form .f-team input{width:auto}.add-form.expense{grid-template-columns:124px 1fr 104px auto;grid-template-areas:"date where amount submit"}.add-form input{font-family:var(--font-body);border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;width:100%;padding:8px 9px;font-size:13.5px}.add-form input.amt-input{font-family:var(--font-mono);text-align:right}.add-form .f-date{grid-area:date}.add-form .f-from{grid-area:from}.add-form .f-where{grid-area:where}.add-form .f-note{grid-area:note}.add-form .f-amount{grid-area:amount}.add-form button{font-family:var(--font-body);background:var(--accent);color:#241705;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;grid-area:submit;align-self:start;height:36px;padding:8px 16px;font-size:13.5px;font-weight:600}.add-form button:hover{background:var(--accent-deep)}@media (max-width:520px){.add-form{grid-template-columns:1fr 1fr;grid-template-areas:"date amount""from from""note note""team team""submit submit"}.add-form.expense{grid-template-columns:1fr 1fr;grid-template-areas:"date amount""where where""submit submit"}.add-form button{height:auto}}footer.note{color:var(--ink-faint);max-width:60ch;margin-top:26px;font-size:12.5px;line-height:1.5}
