:root{--ink: #222222;--muted: #6a6a6a;--disabled: #767676;--line: #dddddd;--line-soft: #f0f0f0;--cloud: #f7f7f7;--page: #ffffff;--accent-surface: #ff385c;--accent-wash: #fff0f3;--accent-text: #e00b41;--accent-press: #c40036;--s-4: 4px;--s-8: 8px;--s-9: 9px;--s-12: 12px;--s-16: 16px;--s-18: 18px;--s-20: 20px;--s-24: 24px;--s-32: 32px;--fs-11: 11px;--fs-13: 13px;--fs-15: 15px;--fs-17: 17px;--fs-19: 19px;--fs-28: 28px;--fs-32: 32px;--r-12: 12px;--r-16: 16px;--r-999: 999px;--ease: cubic-bezier(.22,1,.36,1);--dur-hover: .14s}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--page)}body{color:var(--ink);font:400 var(--fs-15)/1.5 "Hanken Grotesk",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.screen{max-width:390px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.hd{padding:calc(var(--s-16) + var(--safe-top, 0px)) var(--s-20) var(--s-12);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:var(--s-12);flex:0 0 auto}.back{width:44px;height:44px;min-width:44px;border:1px solid var(--line);border-radius:var(--r-999);background:var(--page);display:grid;place-items:center;color:var(--ink);cursor:pointer;font:inherit;transition:background var(--dur-hover) var(--ease)}.back:hover{background:var(--cloud)}.hd h2{font-size:var(--fs-17);font-weight:600;letter-spacing:-.01em}.hero{padding:var(--s-20) var(--s-20) 0}.kick{font-size:var(--fs-11);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}h1{font-size:var(--fs-32);font-weight:800;line-height:1.07;letter-spacing:-.03em;margin-top:var(--s-8)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-9);padding:0 var(--s-20);margin-top:var(--s-18)}.tile{border:1px solid var(--line);border-radius:var(--r-16);padding:var(--s-12) 0;text-align:center;min-height:62px;background:var(--page);cursor:pointer;color:inherit;font:400 var(--fs-15)/1.5 "Hanken Grotesk",system-ui,sans-serif;transition:border-color var(--dur-hover) var(--ease),background var(--dur-hover) var(--ease)}.tile:hover:not([disabled]){border-color:var(--ink)}.tile b{display:block;font-size:var(--fs-19);font-weight:800;letter-spacing:-.02em}.tile i{display:block;font-style:normal;font-size:var(--fs-11);color:var(--muted);margin-top:var(--s-4)}.tile[aria-pressed=true]{border-color:var(--accent-surface);background:var(--accent-wash)}.tile[aria-pressed=true] b{color:var(--accent-text)}.tile[aria-pressed=true] i{color:var(--accent-press)}.tile[disabled]{border-color:var(--line-soft);cursor:default}.tile[disabled] b,.tile[disabled] i{color:var(--disabled)}.lab{font-size:var(--fs-11);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:var(--s-18) 0 0;padding:0 var(--s-20)}.route{margin:var(--s-8) 0 0;padding:0 var(--s-20)}.leg{display:flex;gap:var(--s-12);align-items:center;padding:var(--s-12) 0;border-bottom:1px solid var(--line-soft)}.leg:last-child{border-bottom:0}.leg .badge{width:24px;height:24px;min-width:24px;border-radius:var(--r-999);display:grid;place-items:center;font-size:var(--fs-11);font-weight:800;color:var(--page)}.leg.from .badge{background:var(--ink)}.leg.to .badge{background:var(--accent-text)}.leg .nm{flex:1;font-size:var(--fs-17);font-weight:700}.leg .nm i{display:block;font-style:normal;font-size:var(--fs-13);font-weight:400;color:var(--muted);margin-top:0}.leg .tm{font-size:var(--fs-17);font-weight:800;font-variant-numeric:tabular-nums}.money{margin:var(--s-16) 0 0;border-top:1px solid var(--line);padding:var(--s-12) var(--s-20) 0}.mrow{display:flex;justify-content:space-between;font-size:var(--fs-15);color:var(--muted);padding:var(--s-4) 0}.mrow b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.mtot{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--s-9)}.mtot span{font-size:var(--fs-15);font-weight:700}.mtot b{font-size:var(--fs-28);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.grow{flex:1}.bar{border-top:1px solid var(--line);flex:0 0 auto;padding:var(--s-12) var(--s-20) max(calc(var(--s-20) + env(safe-area-inset-bottom)),calc(var(--s-20) + var(--safe-bottom, 0px)))}.cta{width:100%;min-height:48px;background:var(--accent-text);color:var(--page);border:0;border-radius:var(--r-12);cursor:pointer;font:600 var(--fs-17) "Hanken Grotesk",system-ui,sans-serif;transition:background var(--dur-hover) var(--ease)}.cta:hover{background:var(--accent-press)}.cta:active{transform:translateY(1px)}.cta[disabled]{background:var(--disabled);cursor:default}.note{padding:var(--s-20);color:var(--muted);font-size:var(--fs-15)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.hd .views{margin-left:auto;display:flex;gap:0;background:var(--cloud);border-radius:var(--r-999);padding:var(--s-4)}.vbtn{min-height:44px;padding:0 var(--s-12);border:0;background:transparent;border-radius:var(--r-999);color:var(--ink);cursor:pointer;font:600 var(--fs-13) "Hanken Grotesk",system-ui,sans-serif;transition:background var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease)}.vbtn[aria-pressed=true]{background:var(--page);color:var(--ink)}.next{padding:var(--s-20) var(--s-20) 0}.next h1{font-size:var(--fs-32);font-weight:800;letter-spacing:-.03em;margin-top:var(--s-4)}.stop{display:flex;gap:var(--s-12);align-items:center;padding:var(--s-12) 0;border-bottom:1px solid var(--line-soft)}.stop .badge{width:24px;height:24px;min-width:24px;border-radius:var(--r-999);background:var(--ink);color:var(--page);display:grid;place-items:center;font-size:var(--fs-11);font-weight:800}.stop .nm{flex:1;font-size:var(--fs-17);font-weight:700}.stop .nm i{display:block;font-style:normal;font-size:var(--fs-13);font-weight:400;color:var(--muted)}.stop .nm i.note{color:var(--ink);font-weight:600;margin-top:var(--s-4)}.tglink{min-height:44px;display:grid;place-items:center;padding:0 var(--s-12);color:var(--accent-text);font-size:var(--fs-13);font-weight:700;text-decoration:none}.acts{margin-top:var(--s-16);display:flex;flex-direction:column;gap:var(--s-8)}.route-line{padding:0 var(--s-20);margin-top:var(--s-12)}.ghost.aslink{display:grid;place-items:center;width:100%;text-decoration:none;color:var(--accent-press)}.acts2,.delays{display:flex;gap:var(--s-8)}.acts2 .ghost,.delays .ghost{flex:1}.ghost{min-height:48px;border:1px solid var(--line);background:var(--page);color:var(--ink);border-radius:var(--r-12);cursor:pointer;padding:0 var(--s-16);font:600 var(--fs-15) "Hanken Grotesk",system-ui,sans-serif;transition:border-color var(--dur-hover) var(--ease)}.ghost:hover{border-color:var(--ink)}.cta.done{background:var(--ink)}.cta.done:hover{background:var(--accent-press)}.paid{border:0;background:var(--cloud);color:var(--muted);border-radius:var(--r-999);min-height:44px;padding:0 var(--s-12);cursor:pointer;font:600 var(--fs-13) "Hanken Grotesk",system-ui,sans-serif;font-variant-numeric:tabular-nums;transition:background var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease);flex:0 0 auto;white-space:nowrap}.mrow>span:first-child{flex:1;min-width:0}.paid.on{background:var(--ink);color:var(--page)}.rrow{display:flex;gap:var(--s-12);align-items:center;padding:var(--s-12) var(--s-20);border-bottom:1px solid var(--line-soft)}.rrow.compact{padding-top:var(--s-8);padding-bottom:var(--s-8)}.rtime{font-size:var(--fs-17);font-weight:800;font-variant-numeric:tabular-nums;min-width:56px}.rwho{flex:1;font-size:var(--fs-15);font-weight:600}.rwho i{display:block;font-style:normal;font-size:var(--fs-13);font-weight:400;color:var(--muted)}.rstate{font-size:var(--fs-13);color:var(--muted)}.warn{margin:var(--s-12) var(--s-20) 0;padding:var(--s-12);border-radius:var(--r-12);background:var(--accent-wash);color:var(--accent-press);font-size:var(--fs-13);font-weight:600}.asks{padding:var(--s-12) var(--s-20) 0}.ask{display:flex;flex-direction:column;gap:var(--s-8);padding:var(--s-12);margin-top:var(--s-8);background:var(--accent-wash);border-radius:var(--r-12)}.ask .rwho{font-size:var(--fs-15);font-weight:700}.ask-acts{display:flex;gap:var(--s-8)}.ask-acts .ghost{flex:1}.ask .ghost{background:var(--page)}.cal{padding:var(--s-12) var(--s-20) 0}.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-4)}.cal-head span{text-align:center;font-size:var(--fs-11);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:var(--s-4)}.cal-day{min-height:44px;border:1px solid var(--line);border-radius:var(--r-12);background:var(--page);color:var(--ink);cursor:pointer;font:600 var(--fs-15) "Hanken Grotesk",system-ui,sans-serif;font-variant-numeric:tabular-nums;transition:border-color var(--dur-hover) var(--ease),background var(--dur-hover) var(--ease)}.cal-day:hover:not([disabled]){border-color:var(--ink)}.cal-day[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--page)}.cal-day[disabled]{border-color:var(--line-soft);color:var(--disabled);cursor:default}.daybar{display:flex;align-items:baseline;gap:var(--s-8);width:100%;min-height:44px;padding:var(--s-12) var(--s-20);border:0;border-bottom:1px solid var(--line-soft);background:transparent;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.daybar-v{flex:1;font-size:var(--fs-15);font-weight:700}.daybar .act{color:var(--accent-text);font-size:var(--fs-13);font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:var(--s-8);padding:var(--s-8) var(--s-20) 0}.chip{min-height:44px;padding:0 var(--s-16);border:0;border-radius:var(--r-999);background:var(--cloud);color:var(--ink);cursor:pointer;font:600 var(--fs-15) "Hanken Grotesk",system-ui,sans-serif;transition:border-color var(--dur-hover) var(--ease),background var(--dur-hover) var(--ease)}.chip:hover{background:var(--line-soft)}.chip[aria-pressed=true]{background:var(--ink);color:var(--page)}.hint.pad{padding:var(--s-8) var(--s-20) 0}.note.nopad{padding:0;margin-top:var(--s-4)}.acts.pad{padding:0 var(--s-20)}.rcard{margin-top:var(--s-8);border:1px solid var(--line);border-radius:var(--r-12);padding:var(--s-12)}.rtop{display:flex;justify-content:space-between;align-items:baseline}.rwho2{font-size:var(--fs-15);font-weight:700}.rwhen{font-size:var(--fs-15);font-weight:800;font-variant-numeric:tabular-nums}.rbot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-8) var(--s-12);margin-top:var(--s-4)}.rbot .rst{flex:1 1 100%}.rst{font-size:var(--fs-13);color:var(--muted);flex:1}.rsum{font-size:var(--fs-13);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.rx{border:0;background:transparent;color:var(--accent-press);cursor:pointer;min-height:44px;padding:0 var(--s-8);white-space:nowrap;font:600 var(--fs-13) "Hanken Grotesk",system-ui,sans-serif}.rx[disabled]{color:var(--disabled);cursor:default}.debt{margin:var(--s-12) var(--s-20) 0;padding:var(--s-12);border-radius:var(--r-12);background:var(--accent-wash);color:var(--accent-press);font-size:var(--fs-13);font-weight:600}.rsum.owed{color:var(--accent-press)}.tabswrap{padding:var(--s-12) var(--s-20) 0}.tabswrap>.tabs{margin:0}.tabs{display:flex;gap:var(--s-4);margin:var(--s-12) var(--s-20) 0;padding:var(--s-4);background:var(--cloud);border-radius:var(--r-999)}.tabs .vbtn{padding:0 var(--s-8);font-size:var(--fs-11);flex:1 1 auto;white-space:nowrap;border-radius:var(--r-999)}.tabs .vbtn[aria-pressed=true]{background:var(--page);color:var(--ink)}.pad{padding:0 var(--s-20)}.hint{color:var(--muted);font-size:var(--fs-13);padding:var(--s-8) 0 var(--s-12)}.big{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s-12) 0;border-bottom:1px solid var(--line-soft)}.big span{color:var(--muted);font-size:var(--fs-15)}.big b{font-size:var(--fs-28);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.frow{display:flex;justify-content:space-between;align-items:center;gap:var(--s-12);padding:var(--s-12) 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-15)}.fval{color:var(--muted);font-variant-numeric:tabular-nums}.fin{width:120px;min-height:44px;text-align:right;border:1px solid var(--line);border-radius:var(--r-12);padding:0 var(--s-12);background:var(--page);color:var(--ink);font:600 var(--fs-15) "Hanken Grotesk",system-ui,sans-serif;font-variant-numeric:tabular-nums}.fin:focus{outline:2px solid var(--ink);outline-offset:1px}.ghost.danger{color:var(--accent-press);margin-top:var(--s-16);width:100%}.rrow.asrow{width:100%;text-align:left;background:transparent;cursor:pointer;border-left:0;border-right:0;border-top:0;font:inherit;color:var(--ink)}.hpair{display:flex;gap:var(--s-8)}.fin.small{width:104px}.xday{min-height:44px;min-width:44px;padding:0 var(--s-8);border:0;border-radius:var(--r-999);background:var(--cloud);color:var(--muted);cursor:pointer;font:600 var(--fs-13) "Hanken Grotesk",system-ui,sans-serif;transition:background var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease)}.xday:hover:not([disabled]){background:var(--accent-wash);color:var(--accent-press)}.xday[disabled]{background:transparent;color:var(--disabled);cursor:default}.fin.text{flex:1;width:auto;text-align:left}.sub{display:block;font-style:normal;font-size:var(--fs-13);color:var(--muted);font-weight:400}.ghost.inrow{min-height:44px;padding:0 var(--s-16)}.app-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}body:has(.tabs-bar){display:flex;flex-direction:column;height:100vh;overflow:hidden}#root{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.tabs-bar{flex:0 0 auto;display:grid;grid-template-columns:repeat(var(--tabs, 4),1fr);border-top:1px solid var(--line);background:var(--page);padding-bottom:max(env(safe-area-inset-bottom),var(--safe-bottom, 0px))}.tab{border:0;background:transparent;padding:var(--s-8) 0 var(--s-8);cursor:pointer;display:grid;justify-items:center;gap:var(--s-4);min-height:56px;color:var(--muted);font:600 var(--fs-11) "Hanken Grotesk",system-ui,sans-serif;transition:color var(--dur-hover) var(--ease)}.tab[aria-current=page]{color:var(--accent-text)}.tab-ico{position:relative;display:grid;place-items:center}.tab-dot{position:absolute;top:-4px;left:12px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-999);background:var(--accent-surface);color:var(--page);font:800 10px/16px Hanken Grotesk,system-ui,sans-serif;font-style:normal;text-align:center}.tabs-bar~.app-body .screen,.app-body .screen{min-height:0}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--page);display:flex;flex-direction:column;height:100dvh;max-height:100dvh}.msearch{display:flex;gap:var(--s-8);padding:0 var(--s-20) var(--s-12)}.mfound{max-height:40vh;overflow-y:auto;border-bottom:1px solid var(--line)}.mwrap{position:relative;flex:1 1 auto;min-height:0}.mbox{position:absolute;top:0;right:0;bottom:0;left:0}.mpin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);color:var(--accent-text);pointer-events:none;z-index:1000;filter:drop-shadow(0 1px 3px rgb(0 0 0 / .45))}.mhere{z-index:1000}.mhere{position:absolute;right:var(--s-16);bottom:var(--s-16);min-width:44px;min-height:44px;border-radius:var(--r-999);border:1px solid var(--line);background:var(--page);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 4px #00000029}.mhere[disabled]{color:var(--disabled);cursor:default}.mbar{display:grid;gap:var(--s-8)}.maddr{margin:0;font-size:var(--fs-13);color:var(--muted);min-height:calc(var(--fs-13) * 1.4)}.frow.pad{padding:var(--s-12) var(--s-20)}.app-body .bar{position:sticky;bottom:0;z-index:2;background:var(--page);padding-bottom:var(--s-12)}.sheet{z-index:30}.sheet .bar{position:static}.sheet>.hd{padding-top:calc(var(--s-16) + var(--safe-top, 0px))}.kbdone{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:flex-end;padding:var(--s-8) var(--s-20) max(var(--s-8),env(safe-area-inset-bottom));background:var(--page);border-top:1px solid var(--line)}html,body{touch-action:pan-x pan-y}.mwrap,.mbox{touch-action:none}.cardhd{display:flex;align-items:center;gap:var(--s-12);padding:var(--s-16) 0 var(--s-12)}.cardname{font-size:var(--fs-22);font-weight:800;letter-spacing:-.02em}.acts .ghost.danger{margin-top:0}.rrow.asrow>.rst{flex:0 0 auto;text-align:right}.calhd{display:flex;align-items:center;justify-content:space-between;padding:var(--s-8) 0 var(--s-12);font-size:var(--fs-17)}.calhd b{font-weight:700}.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-4)}.calw{text-align:center;font-size:var(--fs-11);color:var(--muted);padding-bottom:var(--s-4)}.cal-day{position:relative;min-height:44px;border:1px solid var(--line);border-radius:var(--r-12);background:var(--page);color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:0;font:600 var(--fs-15) "Hanken Grotesk",system-ui,sans-serif;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:border-color var(--dur-hover) var(--ease),background var(--dur-hover) var(--ease)}.cal-day i{display:block;font-style:normal;font-size:var(--fs-11);font-weight:400;color:var(--muted)}.cal-day.off{background:var(--accent-wash);color:var(--accent-press);border-color:transparent}.cal-day.picked{border-color:var(--ink)}.calbusy{position:absolute;top:2px;right:4px;font-style:normal;font:800 var(--fs-11)/1 "Hanken Grotesk",system-ui,sans-serif;color:var(--accent-press)}.addplace{display:grid;gap:var(--s-8);padding-top:var(--s-12);padding-bottom:var(--s-12)}.fin.text.wide{width:100%}.fin.text.flush{flex:1;border-color:transparent;background:transparent;padding-left:0}.fin.text.flush:focus{border-color:var(--line);background:var(--page);padding-left:var(--s-12)}.spin{display:inline-block;width:18px;height:18px;vertical-align:-3px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation-duration:2s}}.screen,.sheet{animation:rise var(--dur-screen) var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.screen,.sheet{animation:none}}.miss{border-radius:var(--r-12);background:var(--accent-wash);padding:var(--s-12) var(--s-20)}.miss b{color:var(--accent-press)}.miss.ok{background:var(--cloud);color:var(--muted)}
