:root{--bg: #f5f6fa;--surface: #ffffff;--surface-2: #f0f2f7;--surface-3: #e6e9f0;--ink: #101828;--ink-2: #475467;--ink-3: #8792a8;--line: #e3e7ef;--brand: #5b4bd6;--brand-ink: #ffffff;--brand-soft: #eeecfb;--sun: #f97316;--rose: #e5407a;--violet: #7c3aed;--ok: #0f9b6c;--ok-soft: #e3f6ee;--warn: #b45309;--warn-soft: #fdf1de;--bad: #d92d20;--bad-soft: #fdeceb;--r-sm: 10px;--r: 16px;--r-lg: 22px;--r-xl: 28px;--sh-1: 0 1px 2px rgba(16, 24, 40, .05);--sh-2: 0 4px 16px rgba(16, 24, 40, .07);--sh-3: 0 18px 50px rgba(16, 24, 40, .18);--tap: 44px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--tabbar: 62px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #0a0d16;--surface: #141926;--surface-2: #1c2231;--surface-3: #262d3d;--ink: #f2f4f9;--ink-2: #a9b3c6;--ink-3: #75809a;--line: #262d3d;--brand: #8b7cf6;--brand-ink: #0a0d16;--brand-soft: #1e1f42;--ok: #34d3a0;--ok-soft: #102b22;--warn: #f0b357;--warn-soft: #2e2411;--bad: #f97066;--bad-soft: #33191a;--sh-1: 0 1px 2px rgba(0, 0, 0, .4);--sh-2: 0 4px 16px rgba(0, 0, 0, .5);--sh-3: 0 18px 50px rgba(0, 0, 0, .65)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.2}h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}p{margin:0}small{font-size:13px}button,input,select,textarea{font:inherit;font-size:16px;color:inherit;touch-action:manipulation}button{cursor:pointer;border:0;background:none}.shell{min-height:100%;display:flex;flex-direction:column;padding-bottom:calc(var(--tabbar) + var(--safe-b))}.topbar{position:sticky;top:0;z-index:30;padding:calc(var(--safe-t) + 10px) 16px 10px;display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}.topbar.scrolled{border-bottom-color:var(--line)}.trippick{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 12px;border-radius:999px;background:var(--surface);box-shadow:var(--sh-1);border:1px solid var(--line);text-align:left}.trippick b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trippick small{color:var(--ink-3);display:block;line-height:1.2}.trippick .caret{color:var(--ink-3);flex:none}.iconbtn{flex:none;width:var(--tap);height:var(--tap);display:grid;place-items:center;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:18px}.iconbtn:active{transform:scale(.94)}.screen{flex:1;padding:14px 16px 24px;display:flex;flex-direction:column;gap:14px;max-width:720px;width:100%;margin:0 auto;animation:rise .26s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.screen{animation:none}}.screen>header h1{margin-bottom:2px}.screen>header p{color:var(--ink-2);font-size:14px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px 6px calc(var(--safe-b) + 6px);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line)}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:12px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.01em}.tabbar button .ic{font-size:21px;line-height:1;transition:transform .2s}.tabbar button[aria-current=page]{color:var(--brand)}.tabbar button[aria-current=page] .ic{transform:translateY(-2px) scale(1.08)}.tabbar button:active .ic{transform:scale(.9)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh-1)}.card>h2,.card>h3{margin-bottom:8px}.card.flush{padding:0;overflow:hidden}.cardhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.cardhead h2{margin:0}.hero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:20px;color:#fff;background:radial-gradient(120% 140% at 8% 0%,rgba(255,255,255,.3),transparent 55%),linear-gradient(135deg,var(--sun),var(--rose) 48%,var(--violet));box-shadow:var(--sh-2)}.hero .eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.9}.hero h1{font-size:25px;margin:6px 0 4px}.hero .sub{font-size:14px;opacity:.92}.hero .bigcount{display:flex;align-items:baseline;gap:8px;margin-top:14px}.hero .bigcount strong{font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1}.hero .bigcount span{font-size:14px;opacity:.92}.herobar{margin-top:14px;height:6px;border-radius:999px;background:#ffffff4d;overflow:hidden}.herobar i{display:block;height:100%;border-radius:999px;background:#fff;transition:width .5s cubic-bezier(.2,.8,.2,1)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stats.three{grid-template-columns:repeat(3,1fr)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--sh-1)}.stat small{color:var(--ink-3);font-weight:600;font-size:12px}.stat strong{display:block;font-size:20px;letter-spacing:-.02em;margin-top:2px}.stat.pos strong{color:var(--ok)}.stat.neg strong{color:var(--bad)}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);background:none}.rows .row:last-child{border-bottom:0}.row:active{background:var(--surface-2)}.row .lead{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--surface-2);font-size:18px}.row .body{flex:1;min-width:0}.row .body b{display:block;font-size:15px;font-weight:600}.row .body small{color:var(--ink-3);display:block}.row .tail{flex:none;color:var(--ink-3);font-size:14px;text-align:right}.row .tail b{display:block;color:var(--ink);font-size:15px}.check{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:9px 0;text-align:left;background:none;font-size:15px}.check .box{flex:none;width:24px;height:24px;border-radius:8px;border:2px solid var(--surface-3);display:grid;place-items:center;color:transparent;font-size:14px;transition:all .16s}.check[data-on=true] .box{background:var(--ok);border-color:var(--ok);color:#fff}.check[data-on=true] .lbl{color:var(--ink-3);text-decoration:line-through}.check .lbl{flex:1}.check:active .box{transform:scale(.88)}.tl{display:flex;flex-direction:column;gap:10px}.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.day.now{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft),var(--sh-1)}.day.past{opacity:.62}.dayhead{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;text-align:left;background:none}.daydate{flex:none;width:46px;border-radius:12px;background:var(--surface-2);padding:6px 0;text-align:center}.day.now .daydate{background:var(--brand);color:var(--brand-ink)}.daydate span{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.daydate strong{display:block;font-size:19px;line-height:1.1;letter-spacing:-.02em}.dayhead .body{flex:1;min-width:0}.dayhead .body b{display:block;font-size:15px}.dayhead .body small{color:var(--ink-3)}.dayhead .chev{color:var(--ink-3);transition:transform .2s}.dayhead[aria-expanded=true] .chev{transform:rotate(90deg)}.daybody{padding:10px 16px 14px;border-top:1px solid var(--line)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:600;white-space:nowrap}.chip.brand{background:var(--brand-soft);color:var(--brand)}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--tap);padding:0 16px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);font-size:15px;font-weight:600}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.ghost{background:none;border-color:transparent;color:var(--brand)}.btn.danger{background:var(--bad-soft);border-color:transparent;color:var(--bad)}.btn.wide{width:100%}.btn.sm{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}.btnrow{display:flex;gap:8px}.btnrow>.btn{flex:1}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:11px;font-weight:600;color:var(--ink-2)}.quick button .ic{font-size:20px}.quick button:active{transform:scale(.95)}.fab{position:fixed;right:16px;bottom:calc(var(--tabbar) + var(--safe-b) + 14px);z-index:35;height:52px;padding:0 20px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-weight:700;box-shadow:var(--sh-2);display:inline-flex;align-items:center;gap:8px}.fab:active{transform:scale(.95)}.backdrop{position:fixed;inset:0;z-index:50;background:#080b1480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s}@keyframes fade{0%{opacity:0}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;max-height:92vh;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px 16px calc(var(--safe-b) + 18px);box-shadow:var(--sh-3);animation:slideup .3s cubic-bezier(.2,.9,.2,1)}@keyframes slideup{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){.sheet,.backdrop{animation:none}}@media(min-width:640px){.sheet{left:calc(50% - 260px);right:auto;bottom:24px;width:520px;border-radius:var(--r-xl)}}.grabzone{display:grid;place-items:center;padding:6px 0 10px;margin:-8px 0 0;touch-action:none;cursor:grab}.grabzone:active{cursor:grabbing}.grab{width:40px;height:4px;border-radius:999px;background:var(--surface-3);margin:4px auto 12px}.sheet h2{margin-bottom:4px}.sheet>p{color:var(--ink-2);font-size:14px;margin-bottom:14px}.form{display:flex;flex-direction:column;gap:12px;margin-top:6px}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-size:13px;font-weight:600;color:var(--ink-2)}.field input,.field select,.field textarea{width:100%;min-height:var(--tap);padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);outline:none}.field textarea{min-height:84px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field .hint{font-size:12px;color:var(--ink-3)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.seg button{min-height:36px;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-2)}.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.ring{--p: 0;position:relative;width:62px;height:62px;flex:none}.ring svg{transform:rotate(-90deg);display:block}.ring circle{fill:none;stroke-width:7;stroke-linecap:round}.ring .track{stroke:var(--surface-3)}.ring .fill{stroke:var(--brand);transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1)}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;letter-spacing:-.02em}.thread{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.bubble{max-width:86%;padding:11px 14px;border-radius:18px;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.them{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px}.bubble.me{align-self:flex-end;background:var(--brand);color:var(--brand-ink);border-bottom-right-radius:6px}.bubble .who{display:block;font-size:11px;font-weight:700;opacity:.7;margin-bottom:3px}.composer{position:sticky;bottom:0;display:flex;gap:8px;padding:10px 0 0;background:linear-gradient(to top,var(--bg) 68%,transparent)}.composer input{flex:1;min-height:var(--tap);padding:0 15px;border-radius:999px;border:1px solid var(--line);background:var(--surface);outline:none}.composer input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.composer .btn{border-radius:999px;padding:0 18px}.typing{display:inline-flex;gap:4px;align-items:center}.typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-3);animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.empty{text-align:center;padding:28px 16px;color:var(--ink-3)}.empty .ic{font-size:34px;display:block;margin-bottom:8px}.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:3px}.empty p{font-size:14px;margin-bottom:14px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--surface-2);display:block}.shot{position:relative}.shotdel{position:absolute;top:5px;right:5px;width:26px;height:26px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#080b148c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shotdel:active{transform:scale(.9)}.shotdel svg{display:block}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar) + var(--safe-b) + 74px);z-index:60;max-width:calc(100% - 32px);padding:11px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:14px;font-weight:600;box-shadow:var(--sh-2);animation:pop .24s cubic-bezier(.2,.9,.2,1)}@keyframes pop{0%{opacity:0;transform:translate(-50%,10px)}}.divide{height:1px;background:var(--line);margin:2px 0}.gate{min-height:100%;display:grid;place-items:center;padding:24px}.gate .box{width:100%;max-width:380px;text-align:center}.gate .mark{width:76px;height:76px;margin:0 auto 18px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,var(--sun),var(--rose) 50%,var(--violet));box-shadow:var(--sh-2);color:#fff}.gate .mark svg{width:34px;height:34px}.gate h1{margin-bottom:6px}.gate>.box>p{color:var(--ink-2);font-size:15px;margin-bottom:22px}.gate .or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12px;font-weight:600;margin:16px 0}.gate .or:before,.gate .or:after{content:"";flex:1;height:1px;background:var(--line)}.gate .fine{font-size:12px;color:var(--ink-3);margin-top:18px}.gate .fine+.fine{margin-top:10px}.gate .fine a{color:var(--brand);text-decoration:none;font-weight:600}.gate .fine a:hover{text-decoration:underline}.gbtn{width:100%;min-height:50px;border-radius:13px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:600}.gbtn:active{transform:scale(.98)}.gbtn svg{flex:none}.moneybar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.moneybar i{display:block;height:100%}.legend{display:flex;flex-direction:column;gap:9px}.legend .li{display:flex;align-items:center;gap:9px;font-size:14px}.legend .li span{flex:1;color:var(--ink-2)}.legend .li .dot{width:9px;height:9px;border-radius:50%;flex:none}.legend .li b{font-variant-numeric:tabular-nums}.kv{display:flex;flex-direction:column;gap:0}.kv .li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.kv .li:last-child{border-bottom:0}.kv .li span{color:var(--ink-3)}.kv .li b{text-align:right;overflow-wrap:anywhere}.note{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r);background:var(--warn-soft);color:var(--warn);font-size:13px;line-height:1.45}.note.info{background:var(--brand-soft);color:var(--brand)}.note .ic{flex:none}.sronly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tabbar button .ic svg,.quick button .ic svg,.row .lead svg,.empty .ic svg,.note .ic svg,.check .box svg,.iconbtn svg,.caret svg,.mark svg{display:block}.tabbar button .ic,.quick button .ic,.iconbtn,.caret{display:grid;place-items:center}h3:has(svg){display:inline-flex;align-items:center;gap:7px}h3 svg,.btn svg{flex:none}@property --aura-1{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --aura-2{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --aura-3{syntax: "<color>"; inherits: true; initial-value: transparent;}.shell,.gate{--aura-1: color-mix(in srgb, var(--brand) 26%, transparent);--aura-2: color-mix(in srgb, var(--violet) 20%, transparent);--aura-3: color-mix(in srgb, var(--brand) 14%, transparent)}.shell[data-phase=active]{--aura-1: color-mix(in srgb, var(--sun) 26%, transparent);--aura-2: color-mix(in srgb, var(--ok) 20%, transparent);--aura-3: color-mix(in srgb, var(--sun) 15%, transparent)}.shell[data-phase=after]{--aura-1: color-mix(in srgb, var(--rose) 22%, transparent);--aura-2: color-mix(in srgb, var(--violet) 20%, transparent);--aura-3: color-mix(in srgb, var(--rose) 12%, transparent)}.shell:before,.gate:before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(34% 30% at 20% 14%,var(--aura-1),transparent 68%),radial-gradient(30% 26% at 82% 6%,var(--aura-2),transparent 70%),radial-gradient(44% 34% at 52% 98%,var(--aura-3),transparent 74%);animation:drift 40s ease-in-out infinite alternate;transition:--aura-1 1.4s ease,--aura-2 1.4s ease,--aura-3 1.4s ease}@keyframes drift{0%{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.08)}}.screen{view-transition-name:screen}@media(prefers-reduced-motion:no-preference){::view-transition-old(screen){animation:screen-out .16s cubic-bezier(.4,0,1,1) both}::view-transition-new(screen){animation:screen-in .24s cubic-bezier(0,0,.2,1) both}}@keyframes screen-out{to{opacity:0;transform:translateY(-6px)}}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}}@media(prefers-reduced-motion:reduce){.shell:before,.gate:before{animation:none}}
