@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{--ink:#151711;--muted:#696b61;--paper:#f1f0e9;--card:#faf9f3;--line:#cecec4;--acid:#d9ff43;--red:#b83225}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Manrope,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}.dashboard-shell{max-width:1440px;margin:auto;padding:0 32px}.topbar{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;min-height:78px;display:flex}.brand{color:var(--ink);letter-spacing:-.08em;background:0 0;border:0;padding:0;font-size:25px;font-weight:800;text-decoration:none}.brand span{background:var(--ink);color:var(--acid);margin-right:2px;padding:3px 5px}.header-tools{align-items:center;gap:12px;display:flex}.month-control{letter-spacing:.1em;align-items:center;gap:10px;font:500 11px DM Mono,monospace;display:flex}.month-control input{border:1px solid var(--ink);color:var(--ink);background:0 0;padding:9px}.text-button{background:0 0;border:0;padding:10px;text-decoration:underline}.nav-button{background:var(--card);gap:7px;min-height:42px;padding:9px 13px;font-size:12px}.nav-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.nav-button.danger-outline{color:var(--red);border-color:var(--red)}.hero{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;min-height:355px;padding:72px 0 56px;display:flex}.hero h1{letter-spacing:-.07em;margin:16px 0 0;font-size:clamp(48px,7vw,104px);font-weight:700;line-height:.91}.hero-note{border-left:4px solid var(--acid);max-width:330px;padding-left:26px;line-height:1.7}.eyebrow,.step-mark{letter-spacing:.13em;font:500 11px DM Mono,monospace}.summary-grid{border-bottom:1px solid var(--ink);grid-template-columns:1fr 1fr 1.2fr;display:grid}.metric{border-right:1px solid var(--ink);flex-direction:column;min-height:200px;padding:28px;display:flex}.metric:last-child{border:0}.metric span,.metric small{letter-spacing:.08em;font:500 11px DM Mono,monospace}.metric strong{letter-spacing:-.06em;margin:auto 0 8px;font-size:clamp(26px,3.5vw,50px)}.metric.accent{background:var(--acid)}.metric.dark{background:var(--ink);color:var(--paper);padding-left:45px}.work-grid{border-bottom:1px solid var(--ink);grid-template-columns:1.7fr 1fr;display:grid}.panel{background:var(--card);padding:36px}.work-grid>.panel:first-child{border-right:1px solid var(--ink)}.section-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px;display:flex}.section-head h2{letter-spacing:-.05em;margin:8px 0 0;font-size:clamp(25px,3vw,39px);line-height:1}.section-head>span{color:var(--muted);font:12px DM Mono,monospace}.segmented{border:1px solid var(--ink);margin-bottom:24px;display:inline-flex}.segmented button{background:0 0;border:0;padding:10px 22px}.segmented button.active{color:var(--acid);background:var(--ink)}.transaction-form{grid-template-columns:1fr 1fr;gap:18px;display:grid}label{font-size:12px;font-weight:700}label input,label select,.inline-form input{width:100%;margin-top:7px}input,select,textarea{color:var(--ink);background:0 0;border:1px solid #aaa99f;border-radius:0;outline:none;padding:13px 14px}input:focus,select:focus,textarea:focus{border-color:var(--ink);box-shadow:inset 0 -2px var(--acid)}.wide{grid-column:1/-1}.form-actions{gap:10px;display:flex}.button{border:1px solid var(--ink);color:var(--ink);background:0 0;justify-content:center;align-items:center;padding:12px 18px;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{box-shadow:3px 3px var(--ink);transform:translate(-2px,-2px)}.button:disabled{opacity:.5;cursor:wait;box-shadow:none;transform:none}.button.primary{color:var(--acid);background:var(--ink)}.button.ghost{background:var(--card)}.button.square{width:47px;color:var(--acid);background:var(--ink);padding:0;font-size:22px}.button.light{background:var(--acid)}.wallet-list{border-top:1px solid var(--ink)}.wallet-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 24px;align-items:center;gap:12px;padding:17px 0;display:grid}.wallet-row strong{font-size:18px}.wallet-row button{color:var(--muted);background:0 0;border:0;font-size:22px}.inline-form{margin-top:28px;display:flex}.inline-form input{border-right:0;margin:0}.chart-panel{border-bottom:1px solid var(--ink);padding-top:52px}.legend{align-items:center;gap:8px;display:flex}.legend i{background:var(--acid);border:1px solid var(--ink);width:10px;height:10px}.cartesian-chart{border-bottom:1px solid var(--ink);width:100%}.cartesian-chart svg{width:100%;height:auto;min-height:260px;display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-axis{stroke:var(--ink);stroke-width:1.5px}.chart-line{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-point{fill:var(--acid);stroke:var(--ink);stroke-width:2px;vector-effect:non-scaling-stroke;transition:r .2s}.chart-point-hit{fill:#0000}.chart-point-group:focus{outline:none}.chart-point-group:hover .chart-point,.chart-point-group:focus .chart-point{r:8px}.chart-y-label,.chart-x-label,.chart-unit{fill:var(--muted);font:10px DM Mono,monospace}.chart-y-label{text-anchor:end}.chart-x-label{text-anchor:middle}.chart-empty{border-bottom:1px solid var(--ink);align-items:flex-end;min-height:260px;padding:24px 10px;display:flex}.insight-grid{border-bottom:1px solid var(--ink);grid-template-columns:1fr 1fr;display:grid}.insight-grid .panel:first-child{border-right:1px solid var(--ink)}.rank-list{margin:0;padding:0;list-style:none}.rank-list li{border-top:1px solid var(--line);grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:18px 0;display:grid}.rank-list b{font:500 15px DM Mono,monospace}.rank-list span,.repeat-list span{text-transform:capitalize}.rank-list small,.repeat-list small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.repeat-list>div{border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding:18px 0;display:flex}.ai-panel{background:var(--ink);color:var(--paper);border-bottom:1px solid var(--ink);grid-template-columns:.9fr 1.1fr;gap:70px;padding:65px;display:grid}.ai-copy h2{color:var(--acid);letter-spacing:-.06em;font-size:clamp(32px,4vw,58px);line-height:.98}.ai-copy p{color:#b8baaf;max-width:470px;line-height:1.7}.ai-form textarea{resize:vertical;color:#fff;border-color:#707268;width:100%;min-height:130px;margin-bottom:10px}.preview-card{background:var(--paper);color:var(--ink);margin-top:18px;padding:24px}.preview-card>span{color:var(--red);font:500 10px DM Mono,monospace}.preview-card h3{margin:10px 0 18px;font-size:28px}.preview-card dl{grid-template-columns:1fr 1fr;gap:8px;display:grid}.preview-card dl div{border-top:1px solid var(--line);padding-top:8px}.preview-card dt{color:var(--muted);font-size:10px}.preview-card dd{margin:3px 0;font-weight:700}.table-panel{border-bottom:1px solid var(--ink);background:0 0;padding:52px 0 0}.table-panel>.section-head{padding:0 12px}.history-tools{align-items:center;gap:16px;display:flex}.history-tools>span{color:var(--muted);white-space:nowrap;font:11px DM Mono,monospace}.history-tools label{text-transform:uppercase;align-items:center;gap:8px;font:10px DM Mono,monospace;display:flex}.history-limit{border-color:var(--ink);min-width:72px;padding:9px 10px}.table-wrap{overflow-x:auto}.transaction-cards{display:none}table{border-collapse:collapse;background:var(--card);width:100%;min-width:1080px}th{background:var(--ink);color:var(--paper);text-align:left;letter-spacing:.08em;padding:14px;font:500 10px DM Mono,monospace}td{border-bottom:1px solid var(--line);padding:16px 14px;font-size:13px}.amount-cell{font-weight:800}.type-pill{text-transform:uppercase;border:1px solid;padding:4px 8px;font:10px DM Mono,monospace;display:inline-block}.type-pill.kredit{background:var(--acid)}.type-pill.debit{color:var(--red)}.type-pill.transfer{color:var(--ink);background:#dfe8ff}.transfer-label{color:var(--muted);margin-left:7px;font:9px DM Mono,monospace;display:inline-block}.row-actions{gap:7px;display:flex}.row-actions button{background:0 0;border:0;border-bottom:1px solid;padding:3px 0;font-size:11px}.empty{color:var(--muted);font-size:13px}.table-empty{text-align:center;background:var(--card);margin:0;padding:35px}.flash{z-index:5;border:1px solid var(--ink);box-shadow:4px 4px var(--ink);justify-content:space-between;margin:12px 0;padding:13px 16px;display:flex;position:sticky;top:8px}.flash.error{background:#ffbdb3}.flash.success{background:var(--acid)}.flash button{background:0 0;border:0;text-decoration:underline}.modal-backdrop{z-index:100;background:#151711a8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-modal{background:var(--card);border:1px solid var(--ink);width:min(480px,100%);box-shadow:8px 8px var(--acid);padding:32px}.confirm-modal h2{letter-spacing:-.05em;margin:12px 0;font-size:34px}.confirm-modal p{color:var(--muted);line-height:1.6}.confirm-modal .form-actions{justify-content:flex-end;margin-top:28px}.button.danger{background:var(--red);color:#fff;border-color:var(--red)}footer{letter-spacing:.12em;color:var(--muted);padding:35px 0 50px;font:10px DM Mono,monospace}.login-shell{background:var(--ink);grid-template-columns:1.3fr .7fr;min-height:100vh;display:grid}.login-intro{color:var(--paper);background-image:linear-gradient(90deg,#292c22 1px,#0000 1px),linear-gradient(#292c22 1px,#0000 1px);background-size:45px 45px;flex-direction:column;justify-content:center;padding:clamp(35px,7vw,110px);display:flex}.login-intro .eyebrow{color:var(--acid)}.login-intro h1{letter-spacing:-.07em;margin:25px 0;font-size:clamp(48px,7vw,100px);line-height:.92}.login-intro p{color:#b8baaf;max-width:500px;line-height:1.8}.login-card{background:var(--acid);flex-direction:column;justify-content:center;padding:clamp(32px,6vw,85px);display:flex}.login-card h2{letter-spacing:-.06em;margin:12px 0 45px;font-size:55px}.login-card .button{margin-top:12px}.form-error{border-left:3px solid var(--red);padding:10px;font-size:13px}.account-shell,.admin-shell{min-height:100vh;padding:clamp(24px,6vw,80px)}.account-shell{place-items:center;display:grid}.account-card{background:var(--card);border:1px solid var(--ink);width:min(560px,100%);box-shadow:8px 8px var(--acid);gap:18px;padding:clamp(28px,5vw,56px);display:grid}.account-card h1,.admin-header h1{letter-spacing:-.07em;margin:8px 0;font-size:clamp(40px,6vw,76px)}.admin-header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-end;padding-bottom:28px;display:flex}.admin-header nav{align-items:center;gap:10px;display:flex}.admin-grid{border-bottom:1px solid var(--ink);grid-template-columns:minmax(300px,.65fr) 1.35fr;display:grid}.admin-create{border-right:1px solid var(--ink);align-content:start;gap:18px;display:grid}.admin-create h2{margin:8px 0 16px;font-size:38px}.user-list{border-top:1px solid var(--ink)}.user-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:20px;padding:20px 0;display:grid}.user-row small{color:var(--muted);margin-top:4px;display:block}.status{border:1px solid var(--red);color:var(--red);text-transform:uppercase;padding:5px 9px;font:10px DM Mono,monospace}.status.active{color:var(--ink);border-color:var(--ink);background:var(--acid)}@media (max-width:900px){.dashboard-shell{padding:0 18px}.topbar{align-items:flex-start;padding:18px 0}.header-tools{flex-wrap:wrap;justify-content:flex-end}.month-control{order:3;justify-content:flex-end;width:100%}.hero{flex-direction:column;align-items:flex-start;min-height:320px}.hero-note{margin-top:35px}.summary-grid{grid-template-columns:1fr}.metric{border-right:0;border-bottom:1px solid var(--ink);min-height:150px}.work-grid,.insight-grid,.ai-panel{grid-template-columns:1fr}.work-grid>.panel:first-child,.insight-grid .panel:first-child{border-right:0;border-bottom:1px solid var(--ink)}.ai-panel{gap:25px;padding:40px 28px}.login-shell{grid-template-columns:1fr}.login-intro{min-height:55vh}.login-card{min-height:45vh}.table-wrap{display:none}.transaction-cards{border-top:1px solid var(--ink);padding-bottom:12px;display:grid}.ledger-row{background:var(--card);border-bottom:1px solid var(--line);padding:15px 12px 8px}.ledger-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ledger-description{gap:10px;min-width:0;display:flex}.ledger-description>div{min-width:0}.ledger-description strong{overflow-wrap:anywhere;font-size:14px;line-height:1.35;display:block}.ledger-description small{color:var(--muted);text-transform:uppercase;margin-top:3px;font:9px DM Mono,monospace;display:block}.ledger-mark{background:var(--red);flex:none;width:4px;height:31px}.ledger-mark.kredit{background:var(--acid);border:1px solid var(--ink)}.ledger-mark.transfer{border:1px solid var(--ink);background:#8eacff}.ledger-main>b{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:14px}.ledger-main>b.debit{color:var(--red)}.ledger-meta{justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-left:14px;display:flex}.ledger-meta>span{color:var(--muted);font:9px DM Mono,monospace}.ledger-row .row-actions{flex:none;gap:4px}.ledger-row .row-actions button{border-bottom:0;min-height:40px;padding:7px 8px;text-decoration:underline}.admin-grid{grid-template-columns:1fr}.admin-create{border-right:0;border-bottom:1px solid var(--ink)}.user-row{grid-template-columns:1fr auto}.user-row .row-actions{grid-column:1/-1}}@media (max-width:560px){.dashboard-shell{padding:0 12px}.topbar{grid-template-columns:auto 1fr;gap:14px;display:grid}.brand{align-self:start;margin-top:4px}.header-tools{grid-template-columns:1fr auto;gap:8px;width:100%;display:grid}.month-control{order:initial;grid-area:1/1/auto/-1;justify-content:stretch;width:100%}.month-control input{flex:1;min-width:0;min-height:44px;margin:0}.header-tools .button,.text-button{min-height:44px;padding:9px 12px;font-size:11px}.text-button{border:1px solid var(--ink);text-decoration:none}.button:hover{box-shadow:none;transform:none}.hero{min-height:310px;padding-top:48px}.hero h1{font-size:clamp(42px,13vw,58px)}.panel{padding:28px 20px}.transaction-form{grid-template-columns:1fr}.transaction-form .wide{grid-column:auto}.metric.dark{padding-left:28px}.section-head{flex-direction:column}.preview-card dl{grid-template-columns:1fr}input,select,textarea{min-height:44px;font-size:16px}.button,.segmented button,.row-actions button,.wallet-row button{min-height:44px}.wallet-row{grid-template-columns:minmax(0,1fr) auto 44px}.wallet-row strong{font-size:15px}.chart-panel{padding-left:10px;padding-right:10px}.cartesian-chart{overflow:hidden}.cartesian-chart svg{min-height:220px}.history-head{gap:18px}.history-tools{justify-content:space-between;width:100%}.history-tools label{flex-direction:row}.history-limit{width:74px;min-height:44px;margin:0;font-size:16px}.confirm-modal{box-shadow:5px 5px var(--acid);padding:24px}.confirm-modal h2{font-size:28px}.flash{align-items:center;gap:12px}.admin-shell,.account-shell{padding:16px 12px}.admin-header{flex-direction:column;align-items:flex-start;gap:20px}.admin-header nav{justify-content:space-between;width:100%}.user-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.user-row .row-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
