:root{--bg:#f5f7fb;--surface:#fff;--soft:#f8fafc;--text:#17243c;--muted:#7d8a9f;--border:#e7edf5;--blue:#4669ed;--navy:#111f36;--green:#2a9d86;--amber:#c38b34;--radius:14px;color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}[data-theme=dark]{--bg:#111a29;--surface:#19263b;--soft:#202f45;--text:#e5edf9;--muted:#9aabc1;--border:#2c3b53;color-scheme:dark}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.3;font-weight:650}h2{font-size:15px;font-weight:650}h3{font-size:13px}p{color:var(--muted)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #8ba5ff;outline-offset:3px}#sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:var(--navy);color:#8d9fba;display:flex;flex-direction:column;z-index:20;padding:28px 18px 0}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;color:#fff;font-size:21px;font-weight:650;letter-spacing:-.6px}.brand-mark{width:39px;height:39px;background:#5578f3;color:#fff;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-size:23px;font-weight:750;letter-spacing:-3px;padding-right:3px}.brand small{display:block;font-size:7px;letter-spacing:1.8px;color:#8ca0bf;margin-top:3px}.space-picker{border:1px solid #ffffff13;border-radius:10px;padding:13px;margin:27px 2px 18px}.space-picker label{display:block;font-size:8px;letter-spacing:1.6px;color:#7e92b3;margin-bottom:8px}.space-picker select{background:none;color:#e5edf8;border:0;padding:0;font-size:12px;width:100%}.space-picker option{background:#182a45}.space-picker span{display:block;font-size:9px;margin-top:9px}.space-picker i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#4ab79b;margin-right:4px}nav{overflow-y:auto;min-height:0;padding-right:2px;scrollbar-width:thin}nav .group{display:block;font-size:8px;font-weight:600;letter-spacing:1.4px;margin:17px 13px 8px;color:#6f84a5}.nav-item{display:flex;gap:12px;align-items:center;padding:9px 13px;border-radius:7px;margin:3px 0;font-size:11px}.nav-item:hover{background:#ffffff08;color:#fff}.nav-item.active{background:#5074f2;color:white}.nav-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:400}.nav-badge{margin-left:auto;font-size:8px;color:#a2b8d7;background:#ffffff08;border-radius:4px;padding:1px 5px}.sidebar-bottom{margin-top:auto}.local-note{font-size:9px;line-height:1.7;border:1px solid #ffffff11;padding:12px;border-radius:9px;margin:17px 2px;color:#bbcadf}.local-note small{display:block;font-size:8px;color:#7188ab}.profile{border-top:1px solid #ffffff13;display:flex;align-items:center;gap:10px;padding:16px 4px;color:#e1eafa;font-size:11px}.profile small{display:block;color:#7b92b3;font-size:8px;margin-top:2px}.avatar{display:inline-flex;width:32px;height:32px;border-radius:50%;align-items:center;justify-content:center;background:#e6ecff;color:#5074ed;font-size:10px;font-weight:650;flex-shrink:0}.app-shell{margin-left:252px}header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 35px;background:var(--surface);border-bottom:1px solid var(--border)}.crumb{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--muted)}.crumb strong{color:var(--text);font-weight:500}.header-right{display:flex;align-items:center;gap:18px}.header-right>span:first-child{font-size:10px;color:var(--muted)}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;color:var(--muted);width:30px;height:30px;font-size:18px}#menu{display:none}.preview-notice{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:9px 35px;background:#eef2ff;border-bottom:1px solid #e0e7fc;color:#7184b4;font-size:9px}.preview-notice strong{font-size:8px;letter-spacing:.8px}.preview-notice button{border:0;background:none;font-size:10px;color:#5072cf;padding:0}main{max-width:1600px;margin:auto;padding:32px 35px 20px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.page-heading p{margin-top:9px;font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.8px;font-weight:600;color:#8493ac;display:block;margin-bottom:9px}.star{color:#d9a551;margin-left:8px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:7px;font-size:11px;font-weight:550;white-space:nowrap;background:var(--surface);color:var(--text)}.button:hover{filter:brightness(.97)}.primary{background:var(--blue);color:#fff}.secondary{border-color:var(--border)}.danger{background:#c3435b;color:white}.danger-text{background:none;color:#c45b6e}.subtle{border:0;background:none;color:var(--blue);font-size:11px;padding:0;cursor:pointer}.period{border:1px solid var(--border);background:var(--surface);color:var(--muted);padding:9px 13px;border-radius:7px;font-size:10px}.overview-banner{background:linear-gradient(100deg,#edf2fc,#f2f8f6);border:1px solid #e1e8f7;padding:15px 19px;border-radius:10px;display:flex;gap:13px;align-items:center;margin-bottom:23px}.banner-symbol{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #dce5f8;border-radius:9px;background:#ffffff90;color:#6f87c3;font-size:19px}.overview-banner strong{display:block;font-size:11px}.overview-banner small{display:block;font-size:10px;color:#8191a9;margin-top:3px}.live-badge{margin-left:auto;background:#ffffff9c;border:1px solid #dfebe7;color:#46977f;font-size:8px;white-space:nowrap;padding:4px 9px;border-radius:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.stat{background:var(--surface);border:1px solid var(--border);padding:20px 18px;border-radius:12px;overflow:hidden}.stat-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);gap:9px}.stat-symbol{width:28px;height:28px;border-radius:8px;background:#eef2ff;color:#6481cf;display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.stat-value{font-size:27px;line-height:1.2;font-weight:650;letter-spacing:-.8px;margin:15px 0 12px;font-variant-numeric:tabular-nums;white-space:nowrap}.stat small{display:block;font-size:9px;color:var(--muted)}.stat.accent{background:var(--blue);border-color:var(--blue);color:#fff;background-image:radial-gradient(circle at 110% 130%,#ffffff16,transparent 70%)}.stat.accent .stat-top,.stat.accent small{color:#d9e2ff}.stat.accent .stat-symbol{background:#ffffff20;color:white}.columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:22px;margin-bottom:23px}.columns.equal{grid-template-columns:1fr 1fr}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel-head{padding:22px 23px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-head h2{font-size:14px}.panel-head p{font-size:10px;margin-top:5px}.panel-body{padding:0 23px 23px}.legend{display:flex;align-items:center;gap:8px;padding:0 23px;font-size:9px;color:var(--muted)}.legend i{width:7px;height:7px;background:var(--blue);border-radius:2px}.legend span{margin-left:auto}.chart{height:225px;display:flex;gap:12px;padding:18px 23px 0;background:repeating-linear-gradient(to top,transparent,transparent 45px,var(--border) 46px,transparent 47px);margin:0 12px 0 8px}.bar-column{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}.bar-track{height:177px;width:100%;display:flex;align-items:flex-end;justify-content:center}.bar{position:relative;width:100%;max-width:25px;height:var(--height);min-height:2px;border-radius:4px 4px 0 0;background:linear-gradient(#7e97f7,#496fee)}.bar-tooltip{position:absolute;display:none;left:50%;bottom:100%;transform:translateX(-50%);white-space:nowrap;background:#19273e;padding:6px 9px;color:white;font-size:9px;border-radius:5px;z-index:2}.bar:hover .bar-tooltip,.bar:focus .bar-tooltip{display:block}.bar-column>small{font-size:9px;color:var(--muted);padding-top:12px}.chart-note{padding:10px 23px 18px;font-size:9px;color:var(--muted)}.category-total{font-size:26px;font-weight:650;letter-spacing:-.6px;padding:0 23px 16px}.category-total small{display:block;font-size:9px;color:var(--muted);font-weight:400;letter-spacing:0}.category-row{margin-bottom:13px}.category-row>div:first-child{font-size:11px;display:flex;align-items:center;gap:8px}.category-row strong{margin-left:auto;font-size:10px;font-weight:550}.dot{display:inline-block;width:7px;height:7px;background:var(--color);border-radius:2px;flex-shrink:0}.progress{height:5px;background:var(--soft);border-radius:4px;margin-top:7px;overflow:hidden}.progress span{display:block;height:100%;width:var(--width);background:var(--color);border-radius:4px}.list-row{padding:14px 23px;display:flex;align-items:center;gap:12px;border-top:1px solid var(--border)}.list-row strong{display:block;font-size:11px;font-weight:550}.list-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.list-row .amount{margin-left:auto;font-size:12px;white-space:nowrap}.row-symbol{border-radius:8px;background:#fff5e7;color:#b68a48;height:33px;width:33px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.date-box{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid var(--border);border-radius:7px;min-width:37px;height:40px;font-size:8px;color:var(--muted);line-height:1.2}.date-box b{font-size:15px;color:var(--text)}.count{border:1px solid var(--border);border-radius:5px;padding:2px 7px;background:var(--soft);color:var(--muted);font-size:9px}.quick-start{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;background:linear-gradient(100deg,#edf2fc,#f1f8f7);border:1px solid #e0e8f7;border-radius:11px}.quick-start h2{font-size:17px;margin-bottom:7px}.quick-start p{font-size:11px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%}th{background:var(--soft);padding:13px 18px;border-bottom:1px solid var(--border);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:500;white-space:nowrap}td{padding:16px 18px;border-bottom:1px solid var(--border);font-size:11px}td strong{display:block;font-size:12px;font-weight:550}td small{display:block;font-size:10px;color:var(--muted);margin-top:4px}td:last-child{white-space:nowrap}tbody tr:last-child td{border:0}tbody tr:hover{background:var(--soft)}.tag{display:inline-block;background:var(--soft);color:var(--muted);font-size:9px;padding:4px 8px;border-radius:5px;white-space:nowrap}.tag.green{background:#e9f7f0;color:#3f9677}.tag.amber{background:#fff4e4;color:#b68a48}.tag.red{background:#fff0f2;color:#c15a6a}.filter-bar{padding:17px 21px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.filter-bar input{flex:1}.filter-bar select{width:auto;max-width:180px}.table-footer{font-size:10px;color:var(--muted);padding:14px 21px;border-top:1px solid var(--border)}input,select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:10px 12px;border-radius:6px;font-size:12px;width:100%;min-width:0}input::placeholder,textarea::placeholder{color:#9ba9bc}input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue)}.section-gap{margin-top:24px}.empty{padding:38px 22px;text-align:center;color:var(--muted);font-size:12px}.hint{font-size:11px;color:var(--muted);padding:14px 18px;background:var(--soft);border:1px solid var(--border);border-radius:8px;line-height:1.8;margin:0 0 20px}.tab-bar{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 20px}.tab{border:1px solid var(--border);padding:8px 13px;border-radius:7px;background:var(--surface);color:var(--muted);font-size:11px}.tab.active{background:var(--blue);border-color:var(--blue);color:white}.task-check{border:1px solid var(--border);width:21px;height:21px;border-radius:6px;background:var(--surface);color:#fff;padding:0;flex-shrink:0}.task-check.done{background:var(--green);border-color:var(--green)}.task-done{text-decoration:line-through;color:var(--muted)}.calendar-tools{display:flex;align-items:center;gap:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{padding:13px 8px;text-align:center;font-size:10px;color:var(--muted);background:var(--soft);border-bottom:1px solid var(--border)}.day{padding:10px 8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:118px;font-size:11px;overflow:hidden}.day.blank{background:var(--soft)}.day-number{display:inline-flex;height:24px;width:24px;align-items:center;justify-content:center;margin-bottom:5px}.day.current .day-number{background:var(--blue);color:white;border-radius:50%}.calendar-event{display:block;font-size:9px;padding:3px 5px;border-radius:4px;background:#edf2ff;color:#617fca;margin:3px 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.budget-card{padding:22px;border-top:1px solid var(--border)}.budget-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.budget-header h3{font-size:12px}.budget-card p{font-size:11px;margin:9px 0}.budget-card .progress{height:7px}.overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.entity-card{padding:23px}.entity-card h2{margin-top:14px;font-size:17px}.entity-card p{font-size:11px;margin:7px 0 20px}.entity-card .entity-value{font-size:26px;font-weight:650;letter-spacing:-.8px}.entity-card .entity-label{font-size:10px;color:var(--muted);margin:4px 0 16px}.entity-card .subtle{margin-top:17px}.settings-card{padding:25px}.settings-card h2{font-size:16px}.settings-card p{font-size:12px;line-height:1.8;margin:12px 0 20px}.settings-card input{margin-bottom:10px}.document-icon{width:35px;height:39px;background:#f0f3fc;color:#6e86bd;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:11px;font-weight:600}footer{display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#98a7bb;padding:8px 35px 23px}.loading{padding:40px;text-align:center;color:var(--muted)}dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:0;width:760px;max-width:calc(100% - 32px);max-height:90vh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#0a183a80;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:27px 28px 22px;border-bottom:1px solid var(--border)}.dialog-head h2{font-size:22px;letter-spacing:-.6px}.dialog-head p{font-size:11px;margin-top:8px;line-height:1.7}.close-button{border:0;background:none;color:var(--muted);font-size:25px;line-height:1;padding:0 3px}.form-grid{padding:25px 28px;display:grid;grid-template-columns:1fr 1fr;gap:21px}.field label{font-size:11px;font-weight:550;display:block;margin-bottom:7px}.field small{font-size:10px;color:var(--muted);display:block;margin-top:6px}.field.full{grid-column:1/-1}.field.checkbox{display:flex;align-items:center;gap:12px}.field.checkbox label{margin:0}.dialog-actions{display:flex;gap:9px;align-items:center;border-top:1px solid var(--border);padding:20px 28px}.dialog-actions>span{flex:1}.form-error{padding:0 28px 10px;color:#bd4d63;font-size:12px}.info-body{padding:25px 28px}.info-body p{font-size:13px;line-height:1.9;margin-bottom:18px}#toast{position:fixed;bottom:25px;left:calc(50% + 126px);transform:translateX(-50%);padding:13px 20px;border-radius:9px;background:#1c3d3b;color:#d7f5eb;font-size:12px;z-index:99;box-shadow:0 5px 25px #0002;display:none;max-width:calc(100vw - 30px)}#toast.error{background:#743448;color:#fff}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[data-theme=dark] .preview-notice{background:#203252;border-color:#2b4065;color:#afbee0}[data-theme=dark] .overview-banner,[data-theme=dark] .quick-start{background:#1c3049;border-color:#304464}[data-theme=dark] .tag.green{background:#1e3d36;color:#9accbb}[data-theme=dark] .tag.amber{background:#41382a;color:#d2b37f}[data-theme=dark] .tag.red{background:#422c39;color:#dc9eaf}[data-theme=dark] .calendar-event{background:#2b3e61;color:#bccbf4}
@media(min-width:1500px){main{padding:38px 45px}.stat{padding:23px}.stat-value{font-size:31px}.chart{height:255px}.bar-track{height:207px}}
@media(max-width:1200px){#sidebar{width:224px;padding-left:13px;padding-right:13px}.app-shell{margin-left:224px}.brand{font-size:18px;gap:9px}.brand small{font-size:6px}header{padding:0 24px}main{padding:26px 24px}.preview-notice{padding-left:24px;padding-right:24px}.stats{gap:12px}.stat{padding:17px 13px}.stat-value{font-size:24px}.columns{gap:17px}.overview-cards{grid-template-columns:1fr 1fr}.header-right>span:first-child{display:none}#toast{left:calc(50% + 112px)}}
@media(max-width:980px){.stats{grid-template-columns:1fr 1fr}.stat-value{font-size:29px}.columns,.columns.equal{grid-template-columns:1fr}.page-heading{align-items:flex-start}.page-heading .actions{justify-content:flex-end}.period{display:none}.stat-top{font-size:11px}.stat small{font-size:10px}.overview-cards{grid-template-columns:1fr 1fr}.live-badge{display:none}.day{min-height:95px}.calendar-event{font-size:8px}}
@media(max-width:700px){#sidebar{transform:translateX(-100%);width:252px;transition:transform .15s}.menu-open #sidebar{transform:translateX(0);box-shadow:20px 0 70px #0003}.app-shell{margin:0}header{height:62px;padding:0 17px;position:relative;z-index:25}.crumb{font-size:10px;gap:9px}.header-right{gap:9px}.header-right .icon-button{width:25px}#menu{display:inline-flex}.preview-notice{padding:10px 17px;font-size:9px;align-items:flex-start}.preview-notice strong{font-size:8px}.preview-notice button{padding-top:2px}main{padding:24px 17px}.page-heading{flex-wrap:wrap;gap:17px}.page-heading h1{font-size:28px}.page-heading p{font-size:11px;line-height:1.8}.page-heading .actions{justify-content:flex-start}.eyebrow{font-size:7px}.overview-banner{padding:13px;gap:10px}.overview-banner small{font-size:9px}.stats{gap:10px;margin-bottom:18px}.stat{padding:17px 12px}.stat-top{font-size:10px;min-height:30px}.stat-symbol{width:24px;height:24px}.stat-value{font-size:24px;margin-top:12px}.stat small{font-size:9px;min-height:25px}.columns{gap:18px;margin-bottom:18px}.panel-head{padding:18px 16px}.panel-head h2{font-size:13px}.panel-head p{font-size:9px}.panel-body{padding:0 16px 18px}.chart{padding:16px 10px 0;gap:7px;height:205px;margin-right:7px}.bar-track{height:160px}.bar-column>small{font-size:7px}.chart-note{font-size:8px;padding:12px 16px 17px}.category-total{padding-left:16px}.list-row{padding:14px 16px}.quick-start{align-items:flex-start;flex-direction:column;padding:20px}.quick-start p{line-height:1.8}.overview-cards{grid-template-columns:1fr}.filter-bar{padding:14px 16px;flex-wrap:wrap;gap:9px}.filter-bar input{flex-basis:100%}.filter-bar select{flex:1;max-width:none}.table-footer{font-size:9px}.form-grid{grid-template-columns:1fr;padding:23px;gap:19px}.field.full{grid-column:auto}.field input,.field select,.field textarea{font-size:16px}.dialog-head{padding:23px}.dialog-actions{padding:17px;flex-wrap:wrap}.dialog-actions .button{font-size:10px;padding:10px 12px}.dialog-actions .danger-text{padding-left:0}.calendar-grid{min-width:560px}.calendar-scroll{overflow:auto}.calendar-tools{gap:5px}.calendar-tools .button{padding:8px;font-size:10px}.header-right .avatar{width:27px;height:27px}footer{padding:0 17px 20px;flex-direction:column;gap:6px}#toast{left:50%}.info-body{padding:23px}.info-body p{font-size:12px}.hint{font-size:10px}.settings-card{padding:22px}}
@media print{#sidebar,header,.preview-notice,.actions,.filter-bar,.subtle,footer,.button{display:none!important}.app-shell{margin:0}main{padding:10px}.panel,.stat{break-inside:avoid;box-shadow:none}.stats{grid-template-columns:repeat(4,1fr)}:root{--bg:#fff;--text:#000;--surface:#fff;--muted:#555;--border:#ddd}.stat.accent{background:#fff;color:#000;border-color:#ddd}.stat.accent .stat-top,.stat.accent small{color:#555}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
