:root{color-scheme:light;--paper:#f7f5ef;--white:#fffdf8;--ink:#202d26;--muted:#5b655d;--line:#e8e4d9;--forest:#15382c;--deep:#102b22;--gold:#d8bb83;--serif:Georgia,'Times New Roman',serif;--sans:Inter,'Aptos','Helvetica Neue',Arial,sans-serif;--radius:13px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans)}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.6}
a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #9b7538;outline-offset:3px}
h1,h2,h3,p{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.08}
h1{font-size:clamp(42px,5vw,60px);letter-spacing:-.06em}
h2{font-size:26px;letter-spacing:-.045em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.eyebrow{font-size:10px;font-weight:750;letter-spacing:.19em;color:#657464}
.layout{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--deep);color:#e9e6d9;padding:26px 17px 17px;min-height:100vh;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;overflow:auto}
.brand{display:flex;align-items:center;gap:11px;font:23px/1 var(--serif);letter-spacing:-.045em;white-space:nowrap;color:#fdf5df}
.brand img{flex:none;border-radius:9px}
.brand-accent{color:var(--gold)}
.brand small{font:8px/1 var(--sans);display:block;letter-spacing:.24em;margin-top:6px;color:#c3c2ac}
.sidebar>.brand{margin:0 7px 32px}
.workspace-chip{padding:10px;border:1px solid #365044;background:#1a352c;border-radius:9px;display:flex;gap:10px;align-items:center;margin:0 1px 20px;min-width:0}
.initials{background:#e8d6ad;color:#304437;border-radius:6px;width:31px;height:31px;display:grid;place-items:center;flex:none;font-size:11px;font-weight:750}
.workspace-chip>span:last-child{min-width:0}
.workspace-chip strong,.workspace-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-chip strong{font-size:12px;color:#f0eee1}
.workspace-chip small{font-size:10px;color:#b7c0b4;margin-top:1px}
.sidebar nav p{font-size:9px;letter-spacing:.16em;color:#aab7ab;margin:16px 11px 8px;font-weight:700}
.nav-item{position:relative;width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:#cad3c7;text-align:left;border-radius:7px;padding:10px 11px;margin:1px 0;font-weight:550;font-size:13px}
.nav-item:hover{background:#28483a;color:#fff}
.nav-item.selected{background:#2a4739;color:#f8e9c5}
.nav-item.selected::after{content:"";width:5px;height:5px;border-radius:50%;background:#d8bb83;position:absolute;right:12px}
.side-foot{margin-top:auto;padding:14px 9px 0;border-top:1px solid #365044;color:#bfcbbe;font-size:11px;display:flex;align-items:center;gap:8px}
.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#d6ba84;flex:none}
.work-area{min-width:0}
.topbar{height:64px;padding:0 clamp(20px,3.1vw,48px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#fbf9f3}
.crumb,.top-right{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:12px}
.crumb strong{color:var(--ink)}
.crumb b{color:#a4a899;font-weight:400}
.currency{font-size:10px;font-weight:800;letter-spacing:.09em;border:1px solid var(--line);border-radius:5px;padding:4px 8px;color:#425246;background:#fffdf8}
.icon-button{border:0;background:transparent;color:inherit;border-radius:6px;display:inline-grid;place-items:center;padding:6px;line-height:1}
.icon-button:hover{background:#e8e9df}
.mobile-menu{display:none}
main{max-width:1510px;margin:auto;padding:30px clamp(20px,3.1vw,48px) 0;min-height:70vh}
main:focus{outline:0}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:24px}
.page-head h1{margin:4px 0 8px}
.lede{color:var(--muted);font-size:13px}
.head-actions,.form-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.button{display:inline-flex;gap:8px;align-items:center;justify-content:center;white-space:nowrap;min-height:39px;padding:8px 12px;border-radius:7px;text-decoration:none;border:1px solid transparent;font-size:12px;font-weight:700}
.button.primary{background:var(--forest);color:#fffaf0;border-color:#15382c}
.button.primary:hover{background:#235342}
.button.light{background:var(--white);border-color:#deddd0;color:#354439}
.button.light:hover{background:#f1ede1}
.text-button{border:0;background:transparent;color:#375944;font-size:12px;font-weight:750;padding:6px 2px;display:inline-flex;align-items:center;gap:7px}
.text-button:hover{text-decoration:underline}
.balance-banner{position:relative;isolation:isolate;overflow:hidden;min-height:164px;background:#163b2e;color:#fff4d8;border-radius:var(--radius);padding:23px 29px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.balance-banner::before,.auth-art::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,#14372b 14%,transparent 77%),repeating-linear-gradient(136deg,transparent 0 11px,#dfc69117 12px,#dfc69117 13px,transparent 14px 23px);mask-image:linear-gradient(90deg,transparent 27%,black 77%);pointer-events:none}
.balance-banner::after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;border:1px solid #e1c5945c;right:70px;top:-205px;box-shadow:0 0 0 22px #dec49814,0 0 0 44px #dec49810,0 0 0 66px #dec4980c;z-index:-1;pointer-events:none}
.balance-banner .eyebrow{color:#dfc697;display:flex;gap:8px;align-items:center}
.hero-amount{font:clamp(37px,5.6vw,62px)/1.05 var(--serif);letter-spacing:-.063em;margin:10px 0 8px;font-variant-numeric:lining-nums tabular-nums}
.hero-amount small{font:700 12px var(--sans);letter-spacing:.15em;color:#dec59a}
.balance-banner p:not(.eyebrow){color:#d3dbc9;font-size:11px}
.hero-aside{min-width:170px;border-left:1px solid #e6d4a759;padding-left:19px;display:grid;gap:4px}
.hero-aside span{font-size:9px;color:#e7cfa0;letter-spacing:.12em;font-weight:650}
.hero-aside strong{font-weight:600;font-size:14px}
.hero-aside strong:first-of-type{margin-bottom:7px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.metric,.panel{border:1px solid var(--line);background:var(--white);border-radius:var(--radius);min-width:0}
.metric{padding:12px 13px 13px}
.metric-top{display:flex;justify-content:space-between;align-items:center;gap:3px;color:#4f5e53;font-size:12px;font-weight:650}
.metric-top i,.record-link i{display:inline-grid;place-items:center;flex:none;width:29px;height:29px;border-radius:7px;background:#eef1e8;color:#40634d}
.metric-value{font:clamp(19px,2.5vw,32px)/1.12 var(--serif);letter-spacing:-.05em;margin:6px 0 4px;overflow-wrap:anywhere;font-variant-numeric:lining-nums tabular-nums}
.metric-value small{font:750 9px var(--sans);letter-spacing:.08em;color:#607164}
.metric-detail{font-size:10px;color:var(--muted)}
.panels{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:13px}
.panels.equal{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel-head{padding:16px 17px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.panel-head p{color:var(--muted);font-size:11px;margin-top:4px}
.panel-head>svg{color:#627760}
.legend{display:flex;gap:12px;align-items:center;white-space:nowrap;font-size:10px;color:var(--muted)}
.legend span{display:flex;gap:5px;align-items:center}
.legend i{background:#315944;width:7px;height:7px;border-radius:2px}
.legend span:nth-child(2) i{background:#b89151}
.activity-chart{width:100%;display:block;margin:3px 0 6px;max-height:205px}
.activity-chart text{fill:#5d685e;font:11px var(--sans)}
.activity-chart .income{fill:#315944}
.activity-chart .expense{fill:#b89151}
.open-list{padding:0 17px 5px}
.open-list button{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:7px 0;color:var(--ink);font-size:12px}
.open-list button:hover strong,.record-link:hover strong{text-decoration:underline}
.open-list strong,.open-list small,.record-link strong,.record-link small{display:block}
.open-list small,.record-link small{color:var(--muted);font-size:10px;margin-top:1px}
.open-list b{white-space:nowrap;font-variant-numeric:tabular-nums}
.activity-panel,.section-gap{margin-top:14px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:12px}
thead{background:#f4f3ec;color:#526156}
th,td{padding:10px 15px;border-bottom:1px solid var(--line)}
th{font-size:10px;font-weight:750;letter-spacing:.045em}
tr:last-child td{border-bottom:0}
.right{text-align:right}
.amount{font-weight:700;font-variant-numeric:tabular-nums}
.record-link{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;color:inherit;text-align:left}
.record-link strong{font-size:12px}
.record-arrow{width:42px;color:#5a6c5b}
.date-cell{color:var(--muted)}
.badge{display:inline-flex;align-items:center;border-radius:99px;background:#eaf0e6;color:#3a5a43;font-size:10px;font-weight:700;padding:3px 8px}
.badge.outstanding{background:#f4ebd7;color:#79571e}
.badge.reversed,.badge.reversal{background:#f2e7e3;color:#83443d}
.empty,.loading{text-align:center;padding:29px 18px;color:var(--muted)}
.empty>svg{color:#6c826b;margin-bottom:7px}
.empty .button{margin-top:10px}
.filters{justify-content:flex-start;align-items:end}
.filters .search{min-width:min(270px,65%)}
.summary{margin:0 17px 14px;font-size:13px}
.summary>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:9px 0}
.summary dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700}
.summary>div:last-child{color:#224d35}
footer{display:flex;gap:8px;justify-content:space-between;margin:28px clamp(20px,3.1vw,48px) 0;border-top:1px solid var(--line);padding:11px 0 17px;font-size:9px;font-weight:700;color:#69786b;letter-spacing:.13em}
dialog{background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:0;width:min(510px,calc(100% - 26px));max-height:92dvh;box-shadow:0 20px 70px #132a2360}
dialog::backdrop{background:#101f1ab0}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:19px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--white);z-index:1}
dialog form,.detail{padding:16px 20px 20px}
form,.form-conditional{display:grid;gap:11px}
form label,.filters label{display:grid;gap:4px;font-size:12px;color:#374a3d;font-weight:650;min-width:0}
input,select{width:100%;min-width:0;border:1px solid #d6dbd0;border-radius:6px;min-height:40px;background:#fff;color:var(--ink);padding:7px 9px}
input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:var(--forest);margin:0}
label.check{display:flex;align-items:center;gap:7px;font-weight:500}
input[type=file]{padding:7px}
.form-actions{justify-content:flex-end}
.form-error{min-height:0;color:#9c3028;font-size:12px}
.form-error:empty{display:none}
.journal-lines{display:grid;gap:8px}
.journal-line{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(64px,.6fr) minmax(58px,.5fr) auto;align-items:end;gap:5px}
.journal-line .icon-button{margin-bottom:7px}
.detail .summary{margin:14px 0}
.detail-memo{font:22px/1.2 var(--serif);margin:6px 0}
.detail-note{color:var(--muted);font-size:12px}
.detail h3{font-size:14px;margin:5px 0}
.detail .form-actions{margin-top:14px}
.panel-form{padding:0 17px 16px}
.settings-panel{align-self:start}
#toast{position:fixed;z-index:4;right:15px;bottom:16px;border-radius:8px;background:#1d4233;color:#fff;padding:9px 14px;opacity:0;pointer-events:none;transition:opacity .16s}
#toast.visible{opacity:1}
.auth-layout{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth-art{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:26px;background:var(--deep);color:#f9efd3;padding:clamp(26px,6vw,90px)}
.auth-art::before{mask-image:linear-gradient(45deg,transparent,black)}
.auth-art .eyebrow,.auth-art>span{color:#e0c795;letter-spacing:.19em;font-size:10px}
.auth-art h1{font-size:clamp(50px,6vw,94px);margin:8px 0 13px}
.auth-art div>p:last-child{color:#d7e0d4}
.auth-panel{display:grid;place-items:center;padding:30px}
.auth-box{max-width:390px;width:100%}
.auth-box h2{font-size:44px;margin:4px 0 8px}
.auth-box>p:not(.eyebrow){color:var(--muted);margin-bottom:24px}
.auth-brand{display:none}
.boot{min-height:65vh;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--muted)}
.boot img{width:52px}
@media(max-width:1100px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.sidebar>.brand{margin-left:2px}.brand{font-size:21px}.hero-amount{font-size:48px}.panels{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}
@media(max-width:850px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.panels{grid-template-columns:minmax(0,1fr)}.panel-head h2{font-size:24px}.page-head{flex-wrap:wrap}.balance-banner{padding:19px}.hero-aside{min-width:145px;padding-left:13px}}
@media(max-width:650px){.layout{display:block}.sidebar{display:none;position:fixed;z-index:3;left:0;top:54px;width:min(265px,80vw);height:calc(100dvh - 54px);min-height:0;box-shadow:8px 0 30px #182b2350;padding:18px 13px}.sidebar.expanded{display:flex}.sidebar>.brand{margin-bottom:14px}.topbar{height:54px;position:sticky;top:0;z-index:2;padding:0 13px}.mobile-menu{display:inline-grid}.crumb{gap:8px}.crumb>span,.crumb>b{display:none}main{padding:20px 12px 0}.page-head{margin-bottom:15px}.lede{font-size:12px}.button{min-height:42px}.metric{padding:10px}.metric-value{font-size:24px}.metric-detail{font-size:10px}.hero-amount{font-size:39px}.hero-aside{min-width:0}.hero-aside strong{font-size:12px}.hero-aside span{font-size:8px}.panels.equal{grid-template-columns:minmax(0,1fr)}.panel-head{padding:13px 12px}.open-list{padding-inline:12px}.date-cell,.activity-panel th:nth-child(2),.activity-panel th:last-child,.activity-panel .record-arrow{display:none}.table-wrap:not(.activity-panel .table-wrap) .date-cell{display:table-cell}th,td{padding:8px}.record-link i{display:none}.record-link strong{max-width:41vw;overflow:hidden;text-overflow:ellipsis}.activity-panel .text-button{font-size:10px}.auth-layout{display:block}.auth-art{display:none}.auth-panel{min-height:100dvh;padding:20px}.auth-brand{display:block;margin-bottom:24px}.auth-brand .brand{color:var(--forest)}.auth-brand .brand-accent{color:#775820}.auth-brand .brand small{color:#526a57}input,select{font-size:16px}}
@media(max-width:370px){.hero-amount{font-size:32px}.balance-banner{padding:12px;gap:7px}.hero-aside{padding-left:6px}.metric-value{font-size:20px}}
@media print{body:has(dialog[open]) #app,body:has(dialog[open]) #toast,dialog .form-actions,dialog .icon-button{display:none}dialog[open]{display:block;position:static;margin:0;border:0;box-shadow:none;max-height:none;width:100%}dialog::backdrop{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
.sidebar>.brand{font-size:19px;gap:8px;margin-left:5px}
.sidebar>.brand img{width:35px;height:35px}
@media(max-width:1100px) and (min-width:651px){.sidebar>.brand{font-size:17px;gap:6px;margin-left:1px}.sidebar>.brand img{width:30px;height:30px}}
@media(max-width:650px){
  .balance-banner{align-items:stretch;flex-direction:column;gap:11px}
  .hero-amount{font-size:45px;margin-top:8px}
  .hero-aside{border-left:0;border-top:1px solid #e6d4a759;padding:9px 0 0;grid-template-rows:auto auto;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px 10px}
  .hero-aside strong:first-of-type{margin-bottom:0}
  .hero-aside strong{overflow-wrap:anywhere}
  .activity-chart text{font-size:16px}
}
@media(max-width:370px){.hero-amount{font-size:38px}}
