@font-face{font-family:Montserrat;src:url('/Montserrat.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#f5f3ef;--surface:#fffdfa;--ink:#121429;--muted:#626575;--line:#e6e2db;--accent:#e3cfaf;--positive:#17654f;--negative:#a73638;--shade:#f0ede6;--shadow:0 15px 50px #1214290a;color-scheme:light}
html[data-theme=dark]{--bg:#101221;--surface:#191c30;--ink:#fffdfa;--muted:#b1b4c6;--line:#30354d;--accent:#e3cfaf;--positive:#88d6b4;--negative:#ffa5a5;--shade:#24283d;color-scheme:dark}
@media(prefers-color-scheme:dark){html[data-theme=auto]{--bg:#101221;--surface:#191c30;--ink:#fffdfa;--muted:#b1b4c6;--line:#30354d;--accent:#e3cfaf;--positive:#88d6b4;--negative:#ffa5a5;--shade:#24283d;color-scheme:dark}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Montserrat,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:10px 15px;min-height:42px}button:hover{border-color:var(--muted)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:#121429;border-color:var(--accent);font-weight:650}.danger{color:var(--negative)}.icon{font-size:23px;border:0;padding:3px 12px}aside{position:fixed;inset:0 auto 0 0;width:220px;background:#121429;color:#fffdfa;padding:32px 22px;display:flex;flex-direction:column}.wordmark{font-size:29px;letter-spacing:-1px;line-height:1.05;font-weight:650}.wordmark span{font-size:15px;letter-spacing:2px;text-transform:uppercase;color:#e3cfaf}.aside-rule{width:38px;height:2px;background:#e3cfaf;margin:27px 0 18px}.aside-caption{font-size:9px;letter-spacing:1.7px;color:#b8b5b3;line-height:1.8}nav{display:grid;gap:5px;margin-top:18px}nav button{text-align:left;background:transparent;border:0;color:#babccb;padding:12px 14px}nav button.active{background:#e3cfaf18;color:#e3cfaf;border-left:2px solid #e3cfaf;border-radius:0 8px 8px 0}nav button:hover{background:#ffffff0c;color:white}.aside-bottom{margin-top:auto;font-size:11px;letter-spacing:1.5px;color:#e3cfaf}.aside-bottom small{display:block;margin-top:7px;color:#999db6;letter-spacing:0;font-size:10px}.workspace{margin-left:220px;padding:35px 38px 15px;max-width:1760px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--muted);margin:0 0 8px}h1{font-size:28px;font-weight:550;letter-spacing:-1px;margin:0}h2{font-size:18px;font-weight:600;margin:0}h3{font-size:14px;margin:0 0 8px}.demo-strip{font-size:11px;border:1px solid var(--line);border-left:3px solid var(--accent);padding:10px 14px;margin-bottom:24px;background:var(--surface);color:var(--muted)}#notice:not(:empty){padding:12px 16px;background:var(--surface);border:1px solid var(--accent);margin-bottom:18px;border-radius:8px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.card{padding:22px}.card .caption{font-size:11px;color:var(--muted);margin:0 0 13px}.card .big{font-size:27px;font-weight:550;letter-spacing:-.8px;white-space:nowrap}.card small{display:block;color:var(--muted);margin-top:9px;font-size:10px}.card.accent{background:#121429;color:#fffdfa;border-color:#121429}.card.accent .caption,.card.accent small{color:#d1c8b9}.panel{padding:24px;margin-bottom:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.muted{color:var(--muted)}.positive{color:var(--positive)}.negative{color:var(--negative)}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:20px}.toolbar label{min-width:130px}.toolbar .grow{flex:1}.toolbar input,.toolbar select{min-height:42px}label{display:grid;gap:7px;font-size:11px;color:var(--muted)}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:10px 12px;border-radius:7px}textarea{resize:vertical;min-height:75px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:550;white-space:nowrap;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:15px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cell-note{display:block;color:var(--muted);font-size:10px;margin-top:4px;max-width:280px;overflow-wrap:anywhere}.badge{display:inline-block;padding:3px 8px;background:var(--shade);border-radius:5px;font-size:10px;white-space:nowrap}.badge.planned{background:#e3cfaf30;color:var(--ink)}.row-actions{display:flex;gap:5px}.row-actions button{padding:5px 8px;min-height:32px;font-size:10px}.empty{text-align:center;padding:42px 12px;color:var(--muted)}.account-item{padding:17px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.account-item:last-child{border:0}.account-item small{display:block;color:var(--muted);font-size:10px}.bar-row{display:grid;grid-template-columns:150px 1fr 105px;align-items:center;gap:12px;margin:17px 0;font-size:11px}.bar-track{height:9px;border-radius:3px;background:var(--shade);overflow:hidden}.bar-fill{height:100%;background:#a3957c;width:var(--bar,0%)}.bars{display:flex;align-items:end;gap:12px;height:160px;border-bottom:1px solid var(--line);padding-top:15px}.bar-pair{flex:1;display:flex;align-items:end;justify-content:center;gap:5px;height:100%;position:relative}.bar-pair i{display:block;width:19px;height:var(--bar,0%);max-height:100%;background:#e3cfaf;border-radius:3px 3px 0 0}.bar-pair i.out{background:#777f9c}.bar-pair small{position:absolute;bottom:-25px;white-space:nowrap;font-size:9px;color:var(--muted)}.chart{padding-bottom:30px}.legend{display:flex;gap:20px;font-size:10px;color:var(--muted);margin-bottom:14px}.dot{display:inline-block;width:7px;height:7px;background:#e3cfaf;margin-right:6px}.dot.out{background:#777f9c}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;padding:12px 0 5px;gap:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}dialog{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);width:min(620px,94vw);max-height:90vh;padding:28px;box-shadow:0 40px 100px #0005}dialog::backdrop{background:#080b1bb3}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#form-error{color:var(--negative);font-size:12px}.hint{font-size:11px;line-height:1.8;color:var(--muted)}.upload{padding:30px;border:1px dashed var(--muted);border-radius:10px;background:var(--bg);margin:20px 0}.upload input{max-width:440px;margin-top:10px}.settings-option{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);gap:20px}.settings-option select{max-width:240px}.settings-option small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.skip{position:fixed;top:-100px;left:20px;z-index:99;background:var(--accent);color:#121429;padding:10px}.skip:focus{top:10px}a{color:inherit;text-underline-offset:3px}.check{width:17px;height:17px;min-height:0;accent-color:#8b744d}.check-label{display:flex;align-items:center;gap:8px;min-height:42px}.calendar-date{font-weight:650;font-size:14px}.ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.error-state{border:1px solid var(--negative);padding:20px;border-radius:10px}.month-total{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between}.mobile-only{display:none}
@media(min-width:1600px){.workspace{padding:42px 50px}.card .big{font-size:34px}}
@media(max-width:1100px){aside{width:180px;padding:25px 15px}.workspace{margin-left:180px;padding:28px 22px}.cards{gap:10px}.card{padding:17px}.card .big{font-size:22px}.split{grid-template-columns:1fr}.bar-row{grid-template-columns:140px 1fr 95px}h1{font-size:25px}}
@media(max-width:760px){aside{position:static;width:auto;padding:18px 18px 0}.wordmark{font-size:22px}.wordmark span{font-size:10px}.aside-rule,.aside-caption,.aside-bottom{display:none}nav{display:flex;overflow:auto;gap:3px;margin-top:18px;padding-bottom:10px}nav button{white-space:nowrap;font-size:12px;padding:10px}nav button.active{border:0;border-bottom:2px solid var(--accent);border-radius:0}.workspace{margin-left:0;padding:22px 15px}header{align-items:start;gap:12px}header .primary{font-size:11px;padding:9px;max-width:130px}h1{font-size:23px}.eyebrow{font-size:8px}.cards{grid-template-columns:1fr}.card{padding:20px}.card .big{font-size:30px}.panel{padding:18px}.panel-heading{flex-wrap:wrap}.ref-grid{grid-template-columns:1fr}.toolbar label{flex:1;min-width:120px}.toolbar .grow{flex-basis:100%}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}dialog{padding:20px}.bar-row{grid-template-columns:110px 1fr 95px}footer span{display:none}.settings-option{align-items:start;flex-direction:column}}

@media(max-width:760px){table.compact th:nth-child(3),table.compact td:nth-child(3),table.compact th:nth-child(4),table.compact td:nth-child(4){display:none}table.compact{font-size:11px}table.compact td{padding:12px 5px}table.compact .cell-note{max-width:120px;font-size:10px}}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top right,#e3cfaf22,transparent 65%),var(--bg)}.auth-card{max-width:440px;width:100%;padding:40px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.auth-intro{color:var(--muted);font-size:13px;margin:14px 0 30px}.auth-card form{display:grid;gap:18px}.auth-card label{font-size:12px}.auth-card button{width:100%}#login-message{font-size:12px;color:var(--negative);margin:0}.auth-card .hint{margin:25px 0 0}.header-buttons{display:flex;gap:8px;align-items:center}button[hidden]{display:none}@media(max-width:760px){.auth-card{padding:27px}.header-buttons{flex-direction:column;align-items:stretch}header .header-buttons .primary{max-width:130px}}
/* Tablet, split-screen and folding-window layouts follow the available width. */
main,.split>*,.cards>*,.ref-grid>*,header>*,.panel-heading>*{min-width:0}
.card .big{font-size:clamp(21px,2.2vw,32px)}
.cell-note,.account-item>div,.bar-row>span{overflow-wrap:anywhere}
button,input,select{min-height:44px}
.row-actions button{min-height:40px}
dialog{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
.table-wrap{overscroll-behavior-x:contain}
@media(max-width:1023px){
 aside{position:static;width:auto;padding:22px max(20px,env(safe-area-inset-left)) 0}
 .wordmark{font-size:24px}.wordmark span{font-size:12px}
 .aside-rule,.aside-caption,.aside-bottom{display:none}
 nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:18px;padding-bottom:14px;overflow:visible}
 nav button{font-size:12px;text-align:center;white-space:normal;padding:10px 6px;min-width:0;min-height:44px}
 nav button.active{border:0;border-bottom:2px solid var(--accent);border-radius:6px 6px 0 0}
 .workspace{margin-left:0;padding:26px max(22px,env(safe-area-inset-right)) 16px max(22px,env(safe-area-inset-left))}
 .split{grid-template-columns:1fr}.ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
 .card{padding:19px}.card .big{font-size:clamp(20px,3vw,29px)}
 .aside-bottom{display:none}
}
@media(max-width:760px){
 .workspace{padding:22px max(15px,env(safe-area-inset-right)) 16px max(15px,env(safe-area-inset-left))}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cards>.card:first-child{grid-column:1/-1}
 .card .big{font-size:clamp(20px,3.8vw,29px)}
 .ref-grid{grid-template-columns:1fr}.toolbar label{min-width:120px}
 .account-item{flex-wrap:wrap}.account-item>div{min-width:0}
 .account-item button{display:block;margin-top:8px;min-height:44px}
 .panel-heading{flex-wrap:wrap}
 table.full-table{display:block;width:100%}
 table.full-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 table.full-table tbody{display:grid;gap:14px}
 table.full-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}
 table.full-table td{display:block;border:0;padding:8px;min-width:0;font-size:13px;overflow-wrap:anywhere}
 table.full-table td::before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.4px;color:var(--muted);margin-bottom:5px}
 table.full-table td:nth-child(1){grid-column:1;grid-row:1}
 table.full-table td:nth-child(5){grid-column:2;grid-row:1;font-size:15px;font-weight:600}
 table.full-table td:nth-child(2),table.full-table td:nth-child(3),table.full-table td:nth-child(6){grid-column:1/-1}
 table.full-table .cell-note{max-width:none;font-size:12px}
 table.full-table .row-actions{flex-wrap:wrap;gap:8px}.row-actions button{min-height:44px;padding:9px 12px;font-size:12px}
 footer{padding-bottom:max(5px,env(safe-area-inset-bottom))}
}
@media(max-width:520px){
 .cards{grid-template-columns:1fr}.cards>.card:first-child{grid-column:auto}
 .card .big{font-size:28px}.ref-grid{grid-template-columns:1fr}
 .toolbar label{min-width:110px}.panel{padding:16px}
 .settings-option select{max-width:none}
}
@media(max-width:380px){
 aside{padding:17px 12px 0}nav{grid-template-columns:repeat(3,minmax(0,1fr))}nav button{font-size:11px}
 h1{font-size:21px}.eyebrow{letter-spacing:1px;font-size:8px}
 .workspace{padding-left:12px;padding-right:12px}
 header .primary{font-size:11px;max-width:115px}
 .bar-row{grid-template-columns:95px 1fr 90px;gap:8px}
 .card .big{font-size:26px}.form-grid{gap:13px}
}
@media(pointer:coarse){input,select,textarea{font-size:16px}button{touch-action:manipulation}}
[hidden]{display:none!important}
