:root{--ink: #15181c;--paper: #f4f5f3;--panel: #ffffff;--hairline: #e4e5e1;--hairline-strong: #d3d4cf;--muted: #595e5b;--accent: #1c3f5f;--accent-hover: #163450;--pos: #1b7a52;--neg: #b23a2e;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--display: "Fraunces", Georgia, serif;--r: 8px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.pos{color:var(--pos)}.neg{color:var(--neg)}.app{display:grid;grid-template-columns:264px 1fr;height:100%}.sidebar{background:var(--panel);border-right:1px solid var(--hairline);display:flex;flex-direction:column;min-height:0}.brand{padding:22px 20px 16px;border-bottom:1px solid var(--hairline)}.brand h1{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;margin:0}.brand p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}.sidebar-actions{padding:14px 16px 10px}.session-list{flex:1;overflow-y:auto;padding:0 10px 16px;min-height:0}.group-label{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:16px 8px 6px}.session-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r);cursor:pointer;position:relative}.session-row:hover{background:var(--paper)}.session-row.active{background:#eef2f6}.session-row .title{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row .badge{font-size:10.5px;color:var(--muted);border:1px solid var(--hairline-strong);border-radius:999px;padding:1px 7px}.row-menu{display:none;gap:2px}.session-row:hover .row-menu{display:flex}.icon-btn{border:none;background:none;color:var(--muted);cursor:pointer;padding:3px;border-radius:6px;font-size:13px;line-height:1}.icon-btn:hover{background:var(--hairline);color:var(--ink)}.sidebar-foot{border-top:1px solid var(--hairline);padding:12px 16px;display:flex;align-items:center;gap:10px;font-size:13px}.sidebar-foot img{width:26px;height:26px;border-radius:999px}.sidebar-foot .who{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work{overflow-y:auto;min-height:0}.work-head{display:flex;align-items:baseline;gap:14px;padding:24px 36px 12px;position:sticky;top:0;background:var(--paper);z-index:2;border-bottom:1px solid var(--hairline)}.work-head h2{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.01em;margin:0}.save-state{font-size:12.5px;color:var(--muted);margin-left:auto}.columns{display:grid;grid-template-columns:minmax(380px,460px) 1fr;gap:40px;padding:28px 36px 64px;align-items:start}@media (max-width: 1080px){.columns{grid-template-columns:1fr}}.ledger-section{margin-bottom:30px}.ledger-section>h3{font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;padding-bottom:6px;border-bottom:1px solid var(--hairline)}.ledger-section .note{font-size:12.5px;color:var(--muted);margin:6px 0 10px}.field{display:flex;align-items:center;gap:12px;padding:5px 0}.field label{flex:1;font-size:14px}.field .hint{color:var(--muted);font-size:12px}.field-input{width:150px;border:none;border-bottom:1px solid var(--hairline-strong);background:transparent;padding:4px 2px;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-size:14px;color:var(--ink)}.field-input.text{font-family:var(--sans);text-align:left}.field-input:focus{outline:none;border-bottom-color:var(--accent)}.field-input:read-only{color:var(--muted)}.field .affix{width:14px;color:var(--muted);font-size:13px}.field-select{width:230px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:8px}.metric{border-top:2px solid var(--ink);padding-top:10px}.metric .label{font-size:12.5px;color:var(--muted);margin-bottom:6px}.metric .value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:27px;letter-spacing:-.01em}.metric .sub{font-size:12px;color:var(--muted);margin-top:4px}.verdict{margin:22px 0 8px;font-size:14px;padding:12px 14px;border-radius:var(--r);border:1px solid var(--hairline);background:var(--panel)}.table-block{margin-top:30px}.table-block h3{font-size:15px;font-weight:600;margin:0 0 10px}table.fin{width:100%;border-collapse:collapse;font-size:13px}table.fin th,table.fin td{padding:7px 10px;border-bottom:1px solid var(--hairline)}table.fin thead th{font-weight:600;font-size:12px;color:var(--muted);text-align:right;border-bottom:1px solid var(--hairline-strong)}table.fin thead th:first-child,table.fin tbody td:first-child{text-align:left}table.fin td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}table.fin tr.total td{font-weight:600;border-top:1px solid var(--hairline-strong)}details.detail{margin-top:18px;border-top:1px solid var(--hairline);padding-top:12px}details.detail>summary{cursor:pointer;font-size:13.5px;color:var(--accent);list-style:none}details.detail>summary::-webkit-details-marker{display:none}details.detail>summary:before{content:"▸ "}details.detail[open]>summary:before{content:"▾ "}.btn{font-family:var(--sans);font-size:14px;border-radius:var(--r);padding:8px 14px;cursor:pointer;border:1px solid transparent;transition:background .14s ease-out}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.secondary{background:var(--panel);border-color:var(--hairline-strong);color:var(--ink)}.btn.secondary:hover{background:var(--paper)}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}.login{height:100%;display:grid;place-items:center;background:var(--paper)}.login-card{width:380px;text-align:center;padding:8px 16px}.login-card h1{font-family:var(--display);font-weight:600;font-size:34px;letter-spacing:-.015em;margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 26px;line-height:1.6}.gh-btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border:none;border-radius:var(--r);padding:11px 18px;font-size:15px;cursor:pointer;text-decoration:none}.gh-btn:hover{background:#000}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#15181c52;display:grid;place-items:center;z-index:50}.dialog{background:var(--panel);border-radius:12px;width:440px;max-width:calc(100vw - 32px);padding:22px 24px}.dialog h3{font-family:var(--display);font-weight:600;font-size:20px;margin:0 0 4px}.dialog .muted{color:var(--muted);font-size:13px;margin:0 0 16px}.share-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--hairline)}.share-row .login{flex:1}.text-input{font-family:var(--sans);font-size:14px;border:1px solid var(--hairline-strong);border-radius:var(--r);padding:8px 10px}.text-input:focus{outline:none;border-color:var(--accent)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}select.role{font-family:var(--sans);font-size:13px;border:1px solid var(--hairline-strong);border-radius:6px;padding:6px 8px;background:var(--panel)}.empty{display:grid;place-items:center;height:100%;text-align:center;color:var(--muted)}.center-load{display:grid;place-items:center;height:100%;color:var(--muted)}.mode-toggle{display:flex;gap:4px;margin:14px 16px 4px;background:var(--paper);border-radius:var(--r);padding:3px}.seg{flex:1;border:none;background:transparent;font-family:var(--sans);font-size:13px;color:var(--muted);padding:6px 8px;border-radius:6px;cursor:pointer}.seg.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #15181c14}.badge.cap{margin-left:8px;color:var(--neg);border-color:#e7c9c4}.tabs{display:flex;gap:4px;margin-left:18px}.tab{border:none;background:transparent;font-family:var(--sans);font-size:14px;color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer}.tab:hover{background:var(--panel)}.tab.active{background:var(--accent);color:#fff}.fy-select{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.work-body{padding:24px 36px 64px}.report{max-width:760px}.quick-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 16px;background:var(--panel);border:1px solid var(--hairline);border-radius:10px}.qa-date{width:150px}.qa-dir{width:110px}.qa-cat{min-width:220px}.qa-amt{width:130px;font-family:var(--mono);text-align:right}.qa-note{flex:1;min-width:160px}.qa-hint{margin:8px 2px 0}.ledger-list{margin-top:22px}.ledger-list td.row-actions{width:64px;text-align:right;white-space:nowrap}.ledger-list .row-actions .icon-btn{visibility:hidden}.ledger-list tr:hover .row-actions .icon-btn{visibility:visible}.linklike{border:none;background:none;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline}
