:root{--bg:#f5f2ea;--paper:#fffcf6;--ink:#29352f;--muted:#777d73;--line:#dcded3;--green:#284f3e;--soft:#e2e9d9;--accent:#b75d40;--warm:#f5e3d7;color-scheme:light;font:15px Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}h1,h2,h3,p{margin:0}h1{font:400 clamp(38px,5vw,64px)/1.05 Georgia,serif;letter-spacing:-2px}h2{font-size:21px;font-weight:600;letter-spacing:-.5px}h3{font-size:15px}p{line-height:1.6}small,.muted{color:var(--muted)}svg{width:21px;height:21px;flex-shrink:0}button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid var(--green)}
[data-theme=dark]{--bg:#171e1a;--paper:#222b24;--ink:#f1eddf;--muted:#a8b0a3;--line:#3b463b;--green:#d1e0bb;--soft:#334332;--accent:#e6a184;--warm:#473327;color-scheme:dark}
.shell{max-width:1530px;margin:auto;display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;padding:38px 26px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:44px}.brand{display:flex;align-items:center;gap:11px;font-weight:650}.monogram{display:grid;place-items:center;background:var(--green);color:var(--bg);width:47px;height:47px;border-radius:16px;font:italic 28px Georgia,serif}.brand small{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;margin-top:4px}.nav{display:grid;gap:8px}.nav button,.settings-link{background:none;color:var(--muted);display:flex;align-items:center;gap:13px;text-align:left;padding:15px 17px;border-radius:14px;font-weight:550;min-height:48px}.nav button.active{background:var(--soft);color:var(--green)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:20px}.sidebar-note{font-size:12px;color:var(--muted);padding:0 16px 16px}
.main{min-width:0;padding:30px 46px 60px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:42px;font-size:13px;color:var(--muted)}.top-actions{display:flex;gap:8px;align-items:center}.avatar{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:12px;color:var(--ink)}.icon-button{background:none;color:var(--ink);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.icon-button:hover{background:var(--soft)}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:13px}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:30px}.heading p{color:var(--muted);margin-top:14px;max-width:540px}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{min-height:46px;padding:12px 18px;border-radius:13px;background:var(--green);color:var(--bg);display:inline-flex;gap:9px;align-items:center;justify-content:center;font-weight:600;text-decoration:none}.btn.secondary{background:var(--paper);border:1px solid var(--line);color:var(--ink)}.btn.ghost{background:none;color:var(--muted);border:1px solid var(--line)}.btn.danger{background:var(--warm);color:var(--accent)}.text-button{padding:10px 0;color:var(--green);background:none;text-align:left;font-weight:600}
.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px}.stack{display:grid;gap:24px;align-content:start}.card{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:25px;min-width:0}.card-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}.pill{display:inline-flex;padding:6px 10px;border-radius:100px;background:var(--soft);color:var(--green);font-size:11px;white-space:nowrap}.hero-card{background:var(--green);color:var(--bg);position:relative;overflow:hidden;min-height:228px;border:0;display:flex;flex-direction:column;justify-content:space-between}.hero-card:after{content:"";position:absolute;right:-60px;bottom:-98px;width:255px;height:255px;border-radius:50%;border:1px solid currentColor;opacity:.17;box-shadow:0 0 0 26px #ffffff0b,0 0 0 53px #ffffff09;pointer-events:none}.hero-card .eyebrow,.hero-card small{color:inherit;opacity:.7}.hero-card h2{font:400 33px/1.15 Georgia,serif;max-width:85%;position:relative;z-index:1}.hero-foot{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:16px}.hero-card .btn{background:var(--bg);color:var(--green);position:relative;z-index:1}.badge-circle{width:40px;height:40px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;opacity:.7}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.stat{padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:17px}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:9px}.stat strong{font:400 27px Georgia,serif}.stat.accent{background:var(--warm);border-color:transparent}
.timeline{display:grid}.time-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px}.time-label{font-size:12px;color:var(--muted);padding-top:17px}.time-block{padding:14px 16px;margin:0 0 12px;border-left:3px solid var(--green);background:var(--soft);border-radius:3px 14px 14px 3px;min-width:0}.time-block.fixed{background:var(--warm);border-left-color:var(--accent)}.time-block.travel{background:transparent;border-left:1px dashed var(--line)}.time-block.done{opacity:.6}.time-block.done h3{text-decoration:line-through}.time-block h3{overflow-wrap:anywhere}.time-block p{font-size:12px;color:var(--muted);margin-top:5px}.block-controls{display:flex;gap:8px;margin-top:9px}.mini-button{min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font-size:12px}.task-row,.ledger-row{display:flex;gap:13px;align-items:center;border-bottom:1px solid var(--line);padding:16px 0}.task-row:last-child,.ledger-row:last-child{border:0}.grow{flex:1;min-width:0}.task-row p,.ledger-row p{font-size:12px;color:var(--muted);margin-top:4px}.task-row h3,.ledger-row h3{overflow-wrap:anywhere}.check{width:24px;height:24px;border:1.5px solid var(--line);border-radius:50%;background:transparent;color:var(--green);flex-shrink:0}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.negative{color:var(--accent)}.ledger-icon{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;background:var(--soft);color:var(--green);flex-shrink:0}.ledger-icon.expense{background:var(--warm);color:var(--accent)}.balance{font:400 clamp(34px,4vw,49px) Georgia,serif;letter-spacing:-1px;margin:12px 0}.formula{font-size:12px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:16px}.split-line{display:flex;justify-content:space-between;gap:14px;padding:9px 0;font-size:13px}.split-line span{color:var(--muted)}.empty{padding:27px 10px;text-align:center;color:var(--muted)}.empty svg{width:33px;height:33px;opacity:.6;margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{font-size:13px;max-width:310px;margin:0 auto 15px}.notice{padding:14px 17px;background:var(--warm);color:var(--accent);border-radius:14px;font-size:13px;line-height:1.6;margin-bottom:18px}.notice.neutral{color:var(--green);background:var(--soft)}.rule-row{border-top:1px solid var(--line);padding:14px 0}.rule-row p{font-size:12px;color:var(--muted)}.progress{width:100%;height:7px;accent-color:var(--green);margin:21px 0 13px}.goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.goal-number{font:400 37px Georgia,serif;margin-top:24px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.weekday{padding:10px 0;font-size:11px;color:var(--muted)}.day{background:transparent;color:var(--ink);border-radius:12px;min-height:45px}.day.selected{background:var(--green);color:var(--bg)}.day.today{border:1px solid var(--green)}.month-nav{display:flex;align-items:center;gap:6px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}.filters input,.filters select{width:auto;max-width:100%;min-width:0}.section-space{margin-top:24px}.mobile-nav{display:none}
label{display:grid;gap:8px;font-size:13px;font-weight:550;min-width:0}input,select,textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:11px;padding:12px;background:var(--bg);color:var(--ink);min-width:0;font-size:16px}textarea{min-height:85px;resize:vertical}input[type=checkbox]{width:21px;min-height:21px;accent-color:var(--green)}.checkbox-label{display:flex;align-items:center;gap:10px;font-weight:400}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.full{grid-column:1/-1}.field-help{font-size:12px;color:var(--muted);font-weight:400;line-height:1.5}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.settings-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,1fr);gap:24px}.settings-list{display:grid;gap:12px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:25px;padding:27px;width:min(580px,calc(100% - 28px));max-height:90dvh;overflow:auto;box-shadow:0 24px 90px #0003}dialog::backdrop{background:#16251fc0;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.dialog-head h2{font:400 29px Georgia,serif}.error-text{color:var(--accent);font-size:13px;line-height:1.5;margin-top:12px}.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#284f3e;color:#f5f2ea;padding:clamp(35px,6vw,100px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art h1{font-size:clamp(55px,7vw,100px);z-index:1}.login-art p{opacity:.7;margin-top:25px;max-width:340px}.orbit{width:420px;height:420px;border:1px solid #ffffff30;border-radius:50%;position:absolute;right:-190px;bottom:60px;box-shadow:0 0 0 50px #ffffff07,0 0 0 100px #ffffff04}.login-panel{padding:40px 28px;display:flex;align-items:center;justify-content:center}.login-form{width:100%;max-width:340px}.login-form h2{font:400 39px Georgia,serif;margin:20px 0 12px}.login-form p{color:var(--muted);margin-bottom:28px;font-size:14px}.login-form .btn{width:100%;margin-top:20px}.login-foot{font-size:11px!important;margin-top:28px}.splash{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:18px}.splash p{color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:20;background:var(--ink);color:var(--bg);padding:12px 19px;border-radius:13px;max-width:calc(100% - 30px);display:none;font-size:13px}#toast.visible{display:block}
@media(max-width:1100px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:30px 16px}.main{padding:26px}.heading{align-items:flex-start;flex-direction:column}.grid{grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr)}}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}.main{padding:calc(18px + env(safe-area-inset-top)) 19px calc(100px + env(safe-area-inset-bottom))}.topbar{margin-bottom:30px}.heading{gap:22px;margin-bottom:24px}.heading h1{font-size:45px;letter-spacing:-1.5px}.heading p{font-size:14px;margin-top:10px}.heading .actions{width:100%}.heading .actions .btn{flex:1;padding:12px 10px;font-size:13px}.grid,.settings-grid{grid-template-columns:1fr}.stack{gap:18px}.card{padding:21px;border-radius:21px}.stats{gap:8px}.stat{padding:14px 11px;border-radius:13px}.stat span{font-size:10px}.stat strong{font-size:23px}.hero-card{min-height:215px}.hero-card h2{font-size:31px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:5}.mobile-nav button{background:none;color:var(--muted);display:grid;place-items:center;gap:5px;font-size:10px;min-height:45px;border-radius:12px}.mobile-nav button.active{background:var(--soft);color:var(--green)}.goal-grid{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-art{min-height:290px;padding:35px 28px}.login-art h1{font-size:53px;margin-top:40px;max-width:270px}.login-art p{display:none}.login-panel{padding:34px 25px 50px}.login-form h2{font-size:33px;margin-top:0}.login-form>.eyebrow{display:none}.form-grid{gap:15px}dialog{padding:21px}.form-actions .btn{flex:1}#toast{bottom:calc(90px + env(safe-area-inset-bottom))}.time-row{grid-template-columns:43px minmax(0,1fr);gap:9px}.balance{font-size:38px}.goal-number{font-size:34px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .16s,opacity .16s}.card{animation:appear .3s ease both}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}

.import-rows{max-height:42vh;overflow:auto;margin-top:16px}.import-row{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}.import-row input{width:20px;height:20px;flex-shrink:0;margin-top:3px}.import-row span{min-width:0;overflow-wrap:anywhere}.import-row small{display:block;margin-top:5px;font-size:12px;opacity:.75}#import-preview ul{padding-left:20px;font-size:13px}#import-preview .notice{margin-top:12px}
