:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#203539;background:#f3f7f6;font-synthesis:none;--bg:#f3f7f6;--surface:#fff;--text:#203539;--muted:#6b8081;--line:#dce7e4;--primary:#123d43;--accent:#14926d;--danger:#cb5e61;--amber:#c4872c;--shadow:0 12px 30px #133e4210}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:1.72rem;letter-spacing:-.04em;line-height:1.12}h2{font-size:1.1rem;letter-spacing:-.025em}h3{font-size:1rem}small,.muted{color:var(--muted)}.app-shell{max-width:940px;margin:auto;padding:28px 22px calc(120px + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.date-label{font-size:.84rem;color:var(--muted);margin-top:7px}.top-action{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--primary);font-size:1.25rem}.stack{display:grid;gap:14px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:28px 0 12px}.section-head:first-child{margin-top:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:19px;box-shadow:var(--shadow)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric{min-height:152px;display:flex;flex-direction:column;justify-content:space-between}.metric.primary{background:linear-gradient(135deg,#123d43,#1a5d61);color:white;border:0}.metric.primary small{color:#c9e4e0}.metric-value{font-size:1.7rem;font-weight:800;letter-spacing:-.045em}.metric-label{font-size:.84rem;font-weight:650}.metric-foot{font-size:.75rem;color:var(--muted)}.primary .metric-foot{color:#d2e5e2}.button{border:0;border-radius:13px;background:var(--primary);color:white;padding:11px 16px;font-weight:700;min-height:42px}.button.secondary{background:#e9f2f0;color:var(--primary)}.button.ghost{background:transparent;color:var(--primary);border:1px solid var(--line)}.button.danger{background:#fce8e8;color:#a84249}.button.small{min-height:34px;padding:7px 10px;font-size:.78rem}.button-row{display:flex;gap:8px;flex-wrap:wrap}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick button{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:14px 8px;color:var(--primary);font-weight:700}.quick span{display:block;font-size:1.2rem;margin-bottom:6px}.list{display:grid;gap:9px}.list-item{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.list-item .left{min-width:0}.list-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item small{display:block;margin-top:4px}.list-item .right{text-align:right;flex:none}.amount{font-weight:800;font-size:1rem}.badge{display:inline-block;border-radius:100px;padding:4px 8px;font-size:.69rem;font-weight:800;margin-top:4px;background:#e4f4ed;color:#16805b}.badge.red{background:#fae9e8;color:#a64249}.badge.amber{background:#fff3dd;color:#95651a}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.filters>*{flex:1;min-width:125px}.field{display:grid;gap:6px;margin:10px 0}.field label{font-size:.8rem;color:var(--muted);font-weight:700}.field input,.field select,.field textarea,.filters input,.filters select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);color:var(--text);outline:none}.field textarea{min-height:76px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #14926d22}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tabs{display:flex;background:#e8f0ee;border-radius:14px;padding:4px;gap:4px}.tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:9px;border-radius:11px;font-weight:700}.tabs button.active{background:var(--surface);color:var(--primary);box-shadow:0 2px 8px #123d4314}.month-nav{display:flex;align-items:center;justify-content:space-between;margin:12px 0 18px}.month-nav button{width:36px;height:36px;border-radius:11px;border:1px solid var(--line);background:var(--surface);font-size:1.3rem;color:var(--primary)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;color:var(--muted);font-size:.73rem;font-weight:750;padding:5px}.day{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:5px;min-height:75px;display:flex;flex-direction:column;align-items:stretch;gap:4px;color:var(--text);position:relative}.day.today{border:2px solid var(--primary)}.day.selected{box-shadow:0 0 0 2px var(--accent)}.day .num{text-align:left;font-weight:800;font-size:.78rem}.day .marks{position:absolute;top:5px;right:5px;font-size:.58rem;color:var(--primary)}.bands{display:grid;gap:2px;flex:1;min-height:42px}.band{background:#d77a7d;color:white;border-radius:3px;text-align:center;font-size:.6rem;font-weight:800;line-height:12px}.band.on{background:#19986e}.legend{display:flex;gap:14px;color:var(--muted);font-size:.75rem;margin-top:11px}.dot{display:inline-block;width:9px;height:9px;border-radius:100%;background:#19986e;margin-right:4px}.dot.red{background:#d77a7d}.rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkrow{display:flex;gap:9px;align-items:center;padding:8px 0}.checkrow input{width:18px;height:18px;accent-color:var(--accent)}.settings-list{display:grid;gap:12px}.settings-list .card h2{margin-bottom:12px}.bottom-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fffffff2;backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px max(12px,calc((100vw - 940px)/2)) calc(8px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:none;color:#7d9292;display:grid;justify-items:center;gap:3px;min-width:60px;padding:6px 4px;font-size:.68rem;font-weight:700}.bottom-nav button.active{color:var(--accent)}.bottom-nav svg{width:22px;height:22px}.footer{margin-top:36px;text-align:center;font-size:.78rem;color:var(--muted)}.footer button{background:none;border:0;color:var(--primary);text-decoration:underline;font-weight:700}dialog{border:0;padding:0;border-radius:24px;background:var(--surface);color:var(--text);width:min(100%,520px);max-height:90dvh;overflow:auto;box-shadow:0 25px 75px #092a2d55}dialog::backdrop{background:#0b2d3299}#sheet-content{padding:22px}#sheet-content h2{margin-bottom:12px}#sheet-content .sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}#sheet-content .close{background:var(--bg);border:0;border-radius:10px;width:34px;height:34px;font-size:1.2rem;color:var(--text)}#toast{position:fixed;z-index:100;bottom:calc(85px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#143e43;color:#fff;border-radius:12px;padding:11px 16px;max-width:90%;box-shadow:var(--shadow);display:none;text-align:center}.auth{min-height:100dvh;display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,390px)}.logo{width:52px;height:52px;border-radius:16px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:800;margin-bottom:22px}.empty{text-align:center;padding:35px 16px;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:5px}.notice{padding:12px;border-radius:12px;background:#fff1da;color:#885e1b;font-size:.83rem;margin:10px 0}.offline{background:#fce8e8;color:#a84249;padding:10px;text-align:center;font-size:.82rem}.loading{padding:50px;text-align:center;color:var(--muted)}@media(max-width:680px){.app-shell{padding:20px 14px calc(115px + env(safe-area-inset-bottom))}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid .metric:last-child{grid-column:span 2;min-height:110px}.metric{min-height:125px}.metric-value{font-size:1.45rem}.card{padding:16px}dialog{position:fixed;bottom:0;margin:0;width:100%;max-width:none;max-height:90dvh;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom)}.day{min-height:70px;padding:3px}.day .num{font-size:.7rem}.band{font-size:.55rem}.calendar{gap:3px}}@media(max-width:390px){.day{min-height:64px}.bands{min-height:38px}.band{line-height:11px}.bottom-nav button{min-width:52px}}@media(prefers-reduced-motion:no-preference){.card,.list-item,.day{animation:rise .2s ease-out}@keyframes rise{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:none}}}body.dark{--bg:#10292d;--surface:#17373b;--text:#eaf5f2;--muted:#a4bfbb;--line:#32565a;--primary:#bce5dd;--shadow:0 12px 30px #0002}.dark .metric.primary{background:linear-gradient(135deg,#1c5557,#26786d)}.dark .bottom-nav{background:#17373bf2}.dark .button{background:#2b766e;color:#fff}.dark .button.secondary{background:#285451;color:#eaf5f2}.dark .quick button{color:var(--text)}.dark .tabs{background:#244549}.dark .notice{background:#554323;color:#f8dc9b}
