:root{--hero: #2f2360;--hero-text: #cfc4ff;--ring: #b7a5ff;--bg: #fbfaf7;--card: #ffffff;--ink: #1e1b2e;--muted: #6b6778;--line: #ece9e4;--primary: #5b3fd0;--purple-text: #4b32b8;--soft: #eeeafb;--current: #f1edfd;--current-line: #e2dbfa;--stay-line: var(--primary);--done-dot: #c9c4d6;--chip: #efece7;--chip-text: #5e5a6b;--coral-text: #a83c18;--coral: #e2683c;--coral-soft: #fceee8;--coral-track: #f6e1d8;--chevron: #878394;--backdrop: #3a3550;--sans: "Outfit", -apple-system, system-ui, sans-serif;--gutter: 22px;--max: 1040px;--ease-sheet: cubic-bezier(.32, .72, 0, 1);--ease-spring: cubic-bezier(.34, 1.36, .5, 1);--top: max(env(safe-area-inset-top, 0px), 20px);--bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html{background:var(--hero)}html,body{margin:0;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button,input,select{font-family:inherit;color:inherit}button{cursor:pointer}.trim{text-box:trim-both cap alphabetic}.app{position:relative;min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column}.content>section,.content>div{break-inside:avoid}.empty-actions{display:flex;flex-direction:column;gap:12px}.nav .brand{display:none}.hero{background:var(--hero);color:#fff;padding:calc(var(--top) + 38px) var(--gutter) 24px}.hero-top{display:flex;justify-content:space-between;align-items:center}.hero-date{font-size:17px;line-height:22px;color:var(--hero-text)}.round{width:44px;height:44px;border-radius:999px;border:0;background:#ffffff1a;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.hero-main{display:flex;align-items:center;gap:20px;padding-top:18px;color:#fff;background:none;border:0;padding-left:0;padding-right:0;text-align:left;width:100%}.disc{position:relative;width:112px;height:112px;flex-shrink:0;border-radius:999px;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center}.disc svg{position:absolute;top:0;right:0;bottom:0;left:0}.disc .n{font-weight:600;letter-spacing:-.02em;font-size:34px;line-height:1;text-box:trim-both cap alphabetic;position:relative}.disc .u{font-size:13px;line-height:18px;color:var(--hero-text);padding-top:10px;text-box:trim-both cap alphabetic;position:relative}.stack{display:flex;flex-direction:column;gap:12px;min-width:0}.stack .l{font-size:17px;line-height:22px;color:var(--hero-text);text-box:trim-both cap alphabetic}.stack .a{font-weight:600;letter-spacing:-.02em;font-size:34px;line-height:1;text-box:trim-both cap alphabetic}.chips{display:flex;flex-wrap:wrap;gap:8px;padding-top:18px}.chips span{font-size:13px;padding:6px 12px;border-radius:999px;background:#ffffff1a}.hero-title{margin:0;font-weight:600;font-size:34px;line-height:1;letter-spacing:-.02em;text-box:trim-both cap alphabetic}.content{flex-grow:1;padding:0 var(--gutter) calc(var(--bottom) + 160px)}.sec{font-size:17px;font-weight:600;color:var(--ink);padding:22px 0 8px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.card.current{background:var(--current);border-color:var(--current-line)}.row{position:relative;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:0 16px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink);text-decoration:none}.row:last-child{border-bottom:0}.row .k{font-size:17px;color:var(--muted)}.row .v{font-size:17px;font-weight:400;display:flex;align-items:center;gap:6px;white-space:nowrap}.row .t{font-size:17px;font-weight:600}.row .s{font-size:17px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}.row.small{min-height:44px}.row.small .v{font-size:17px}.row.two{padding-top:12px;padding-bottom:12px}.row .col{flex-grow:1;display:flex;flex-direction:column;gap:2px;min-width:0}.row .sub{font-size:13px;color:var(--muted)}.row .sub.bad{font-size:13px;color:var(--coral-text)}.row select,.row input.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;font-size:17px}.row input.num::placeholder{color:var(--muted);font-weight:400}.row input.num{width:90px;padding:0;border:0;outline:none;text-align:right;font-size:17px;font-weight:600;background:transparent}.d-only{display:none}.trip-row .cell{font-size:17px}.trip-row .end{display:flex;align-items:center;justify-content:flex-end;gap:8px}.link-row{color:var(--purple-text);font-size:17px;font-weight:600;justify-content:flex-start;gap:8px;min-height:48px}.pill{font-size:13px;font-weight:400;padding:4px 10px;border-radius:999px;white-space:nowrap}.pill.now{color:#fff;background:var(--primary)}.pill.grey{color:var(--chip-text);background:var(--chip);font-weight:400}.pill.coral{color:var(--coral-text);background:var(--coral-soft)}.bar{height:6px;border-radius:999px;background:var(--soft);margin-top:10px;overflow:hidden}.bar>div{height:6px;border-radius:999px;background:var(--primary)}.bar.coral{background:var(--coral-track)}.bar.coral>div{background:var(--coral)}.note{font-size:13px;color:var(--muted);line-height:1.5;padding:10px 4px 0}.muted{color:var(--muted)}.placeholder{color:var(--muted);font-weight:400}.btn{min-height:54px;width:100%;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;font-size:17px;font-weight:600}.btn.primary{background:var(--primary);color:#fff}.btn.soft{background:var(--soft);color:var(--purple-text)}.btn:disabled{opacity:.45;cursor:default}.text-btn{border:0;background:none;font-family:inherit;font-size:17px;line-height:22px;font-weight:600;color:var(--coral-text);padding:11px 16px;min-height:44px;border-radius:12px}.del-wrap{display:flex;flex-direction:column;align-items:center;margin-top:24px}.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:3px;background:var(--line);border-radius:999px}.seg button{min-height:38px;border:0;background:transparent;border-radius:999px;font-size:17px;color:var(--muted)}.seg button.on{background:#fff;font-weight:600;color:var(--purple-text);box-shadow:0 1px 2px #1e1b2e1a}.tabs{display:flex;gap:24px;padding:0 var(--gutter);border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:14px 0 12px;font-size:17px;color:var(--muted)}.tabs button.on{font-weight:600;color:var(--purple-text);box-shadow:inset 0 -2px 0 var(--primary)}.warn{display:flex;gap:12px;margin-top:16px;padding:14px 16px;background:var(--coral-soft);border-radius:16px;font-size:17px;line-height:1.5}.alert-chip{display:inline-flex;align-self:flex-start;gap:6px;align-items:center;margin-top:12px;padding:6px 12px;border-radius:999px;background:var(--coral-soft);color:var(--coral-text);font-size:13px;font-weight:400}.row.rule-bad{display:block;padding-top:12px;padding-bottom:12px}.rule-bad .top{display:flex;justify-content:space-between;align-items:center;gap:12px}.rule-bad .v{font-size:17px;font-weight:600}.rule-bad .why{padding-top:4px;font-size:13px;color:var(--coral-text)}.warn b{font-weight:600;color:var(--coral-text)}.tl{width:10px;display:flex;flex-direction:column;align-items:center;flex-shrink:0;align-self:stretch}.tl i{width:2px;background:var(--stay-line)}.tl i:first-child{height:22px}.tl i:last-child{flex-grow:1}.tl i.off{background:transparent}.tl b{width:10px;height:10px;border-radius:999px;background:var(--primary);flex-shrink:0}.stay-row{width:100%;display:flex;align-items:stretch;gap:14px;min-height:54px;padding:0;border:0;background:transparent;text-align:left;color:var(--ink)}.stay-row .in{flex-grow:1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.stay-row:last-child .in{border-bottom:0}.sec-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.sec-aside{font-weight:400;font-size:13px;color:var(--muted)}.timeline{padding:0}.timeline .stay-row{padding:0 16px}.timeline .tl{width:14px}.timeline .tl i:first-child{height:24px}.timeline .in{padding:10px 0}.timeline .what{display:flex;flex-direction:column;gap:2px}.timeline .t{font-size:17px;font-weight:600;display:flex;align-items:center;gap:6px}.timeline .state{font-size:13px;color:var(--muted)}.timeline .s{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}.tl i.dash{background:none;border-left:2px dashed var(--stay-line);width:0}.timeline .past .tl i:not(.off),.timeline .now .tl i:first-child:not(.off){background:var(--done-dot, #c9c4d6)}.timeline .in{border-bottom:1px solid var(--line)!important}.timeline .stay-row:last-of-type .in,.timeline .stay-row:has(+.trip-foot) .in,.timeline .now .in,.timeline .stay-row:has(+.now) .in{border-bottom:0!important}.trip-foot{border-top:1px solid var(--line)}.timeline .booked .tl b{background:var(--primary)}.timeline .booked .state{color:var(--purple-text)}.alert-small{flex-shrink:0}.timeline .sub.bad{font-size:13px;color:var(--coral-text)}.timeline .past .t{color:var(--muted)}.timeline .past .tl b{background:var(--done-dot, #c9c4d6)}.timeline .now{background:var(--current)}.timeline .now .state{color:var(--purple-text)}.timeline .now .tl b{width:14px;height:14px;box-shadow:0 0 0 4px var(--current-line)}.timeline .open .tl b{background:#fff;border:2px solid var(--primary);box-sizing:border-box}.nav{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;padding:9px 0 calc(var(--bottom) + 12px);background:var(--bg);z-index:5}.nav button{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;font-size:13px;font-weight:400;color:var(--muted)}.nav button.on{color:var(--purple-text)}.fab{position:fixed;bottom:calc(var(--bottom) + 82px);right:var(--gutter);width:56px;height:56px;border-radius:999px;border:0;background:var(--primary);display:flex;align-items:center;justify-content:center;z-index:6}.empty{flex-grow:1;display:flex;flex-direction:column;padding:0 var(--gutter) calc(var(--bottom) + 90px)}.empty .mid{flex-grow:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:72px 0 32px}.empty .icon{width:64px;height:64px;border-radius:18px;background:var(--soft);display:flex;align-items:center;justify-content:center}.empty h2{font-weight:600;letter-spacing:-.02em;font-size:34px;margin:0;padding-top:20px}.empty p{font-size:17px;color:var(--muted);line-height:1.5;margin:0;padding-top:6px}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--backdrop);display:flex;justify-content:center;padding-top:calc(var(--top) + 32px);animation:fade-bg .3s ease-out}.sheet{position:relative;overflow:hidden;width:100%;max-width:480px;background:var(--bg);border-radius:18px 18px 0 0;display:flex;flex-direction:column;min-height:0;animation:up .5s var(--ease-sheet);transition:transform .3s var(--ease-sheet)}@media (min-width: 560px){.sheet-wrap{background:#3a3550b8;padding:40px 0;align-items:flex-start}.sheet{border-radius:18px;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px)}}.sheet-head{height:60px;padding:12px 16px 0;display:grid;grid-template-columns:64px 1fr 64px;align-items:center;font-size:17px;font-weight:600;flex-shrink:0}.sheet-title{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-btn{width:36px;height:36px;border-radius:999px;border:0;background:var(--line);color:var(--ink);display:flex;align-items:center;justify-content:center}.head-action{justify-self:end;border:0;background:none;padding:8px 0;font-size:17px;font-weight:600;color:var(--purple-text)}.sheet-body{flex-grow:1;overflow-y:auto;padding:0 var(--gutter) 16px;display:flex;flex-direction:column}.sheet-body>*{flex-shrink:0}.sheet-foot{padding:12px var(--gutter) calc(var(--bottom) + 24px);flex-shrink:0}.big{font-weight:600;font-size:34px;letter-spacing:-.02em;line-height:1.1;padding-top:16px}.done-note{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--chip);color:var(--chip-text);font-size:13px;line-height:1.5}.big-sub{font-size:17px;color:var(--muted);padding-top:6px}@keyframes fade{0%{opacity:0}}@keyframes fade-bg{0%{background-color:transparent}}@keyframes up{0%{transform:translateY(100%)}}.welcome{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.welcome .hero{padding-top:calc(var(--top) + 72px);padding-bottom:30px}.w-gap{flex-grow:1;min-height:24px}.eyebrow{font-size:13px;font-weight:600;color:var(--hero-text)}.welcome h1{margin:0;padding-top:10px;font-weight:600;font-size:34px;line-height:1.1;letter-spacing:-.02em}.welcome .chips{padding-top:22px}.welcome .content{padding-top:26px;padding-bottom:calc(var(--bottom) + 34px);display:flex;flex-direction:column}.field{display:flex;flex-direction:column;gap:1px;flex-grow:1}.field .k{font-size:13px}.ds h3{font-size:13px;font-weight:600;color:var(--muted);margin:24px 0 8px}.sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.sw div{border-radius:12px;border:1px solid var(--line);overflow:hidden;font-size:13px;background:#fff}.sw div span{display:block;height:48px}.sw div p{margin:0;padding:6px 8px;line-height:1.35}.hero,.content,.tabs,.empty,.nav{padding-left:max(var(--gutter),calc((100% - var(--max)) / 2 + var(--gutter)));padding-right:max(var(--gutter),calc((100% - var(--max)) / 2 + var(--gutter)))}@media (min-width: 900px){.nav{position:sticky;top:0;order:-1;display:flex;align-items:center;gap:28px;padding-top:0;padding-bottom:0;height:64px;background:var(--hero);border-top:0;border-bottom:1px solid rgba(255,255,255,.08)}.nav .brand:hover{color:#fff}.nav .brand{display:block;margin-right:auto;height:64px;padding:0;border:0;background:none;cursor:pointer;font-size:17px;font-weight:600;color:var(--hero-text)}.nav button{flex-direction:row;height:64px;font-size:17px;font-weight:400;color:var(--hero-text)}.nav button svg{display:none}.nav button.on{color:#fff;box-shadow:inset 0 -2px 0 var(--ring)}.hero{padding-top:40px;padding-bottom:36px}.hero-main{gap:28px;padding-top:28px}.stack .a{font-size:44px}.disc .n{font-size:34px}.hero-title{font-size:44px}.content{columns:2;column-gap:32px;padding-top:12px;padding-bottom:120px}.content>section{display:inline-block;width:100%}.content.today{columns:auto;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;align-items:start;align-content:start}.content.today>section{grid-column:1}.content.today>section.past{grid-column:2;grid-row:1 / span 4}.content.trips{columns:auto}.trip-row{display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1.2fr 150px;gap:16px;min-height:54px;padding-top:0;padding-bottom:0}.m-only{display:none!important}.d-only{display:block}.empty{flex-grow:0}.empty .mid{flex-grow:0;padding:72px 0 32px}.fab{bottom:40px;right:max(var(--gutter),calc((100% - var(--max)) / 2 + var(--gutter)))}.empty{padding-bottom:80px}.empty-actions{flex-direction:row;justify-content:center}.empty-actions .btn{width:240px}.welcome{background:var(--hero);flex-direction:row;align-items:center;justify-content:center;gap:80px;padding:64px var(--gutter)}.welcome .hero,.welcome .content{padding:0}.welcome .w-intro{flex:1;max-width:520px}.welcome h1{font-size:44px}.welcome .chips{padding-top:32px}.welcome .w-form{flex:0 0 420px;columns:auto;display:flex;flex-direction:column;background:var(--bg);border-radius:20px;padding:28px}.welcome .w-gap{flex-grow:0;min-height:24px}}.trip-foot .body-text{font-size:17px}.trip-foot .s{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}.bad-note{font-size:13px;color:var(--coral-text)}.switch-row{min-height:56px}.switch{position:relative;width:51px;height:31px;border-radius:999px;background:#e6e2dc;flex-shrink:0;transition:background .15s}.switch i{position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:999px;background:#fff;box-shadow:0 2px 4px #00000029,0 0 0 .5px #0000000a;transition:transform .15s}.switch.on{background:var(--primary)}.switch.on i{transform:translate(20px)}.switch-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.row input.num:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:4px}@media (hover: hover){.round:hover{background:#ffffff29}button.row:hover,label.row:hover{background:#fbfaf8}.card.current button.row:hover{background:#ebe5fc}.btn.primary:hover{background:#4f35bf}.btn.soft:hover{background:#e4def8}.timeline button.stay-row:hover{background:#fbfaf8}.timeline button.stay-row.now:hover{background:#ebe5fc}.fab:hover{background:#4f35bf}.nav-btn:hover{background:#e2ded8}}.sec{font-size:20px;line-height:26px;padding:32px 0 12px}.round svg{width:20px;height:20px}.round svg *{stroke-width:2}@media (max-width: 899px){.nav{left:calc(50% - 175px);right:auto;bottom:calc(var(--bottom) + 16px);display:flex;gap:6px;padding:6px;border:1px solid rgba(0,0,0,.04);border-radius:999px;background:#ffffffb8;-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);box-shadow:0 4px 24px #1c211e1a,inset 0 1px #fffc}.nav button{padding:6px 22px;border-radius:999px}.nav button.on{background:#eeeafbe6}.fab{bottom:calc(var(--bottom) + 20px);right:max(var(--gutter),calc(50% - 175px));width:62px;height:62px;box-shadow:0 4px 24px #1c211e29}}.page{display:flex;flex-direction:column;flex-grow:1;transition:transform .45s var(--ease-sheet),filter .45s var(--ease-sheet)}.sheet-page{display:flex;flex-direction:column;flex-grow:1;min-height:0;background:var(--bg)}.sheet-grab{flex-shrink:0}.grabber{display:block;width:36px;height:5px;border-radius:999px;background:#d9d5ce;margin:7px auto 0}.sheet.dragging{transition:none}.sheet-ghost{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sheet-page.in-fwd,.sheet-page.in-back{position:relative}.sheet-page.in-fwd{z-index:1;box-shadow:-10px 0 30px #1e1b2e1f;animation:in-fwd .45s var(--ease-sheet)}.sheet-ghost.out-fwd{z-index:0;animation:out-fwd .45s var(--ease-sheet) forwards}.sheet-page.in-back{z-index:0;animation:in-back .45s var(--ease-sheet)}.sheet-ghost.out-back{z-index:2;box-shadow:-10px 0 30px #1e1b2e1f;animation:out-back .45s var(--ease-sheet) forwards}@keyframes in-fwd{0%{transform:translate(100%)}}@keyframes out-fwd{to{transform:translate(-30%);opacity:.4}}@keyframes in-back{0%{transform:translate(-30%);opacity:.4}}@keyframes out-back{to{transform:translate(100%)}}.sheet-wrap.swap,.sheet-wrap.swap .sheet{animation:none}.layer.closing .sheet-wrap,.sheet-wrap.leaving{animation:fade-out .3s ease-in forwards;pointer-events:none}.layer.closing .sheet{animation:down .3s cubic-bezier(.4,0,1,1) forwards}@keyframes down{to{transform:translateY(105%)}}@keyframes fade-out{to{background-color:transparent}}@media (max-width: 559px){.sheet-wrap{background:#0e0c1847}.sheet-grab{touch-action:none}html.sheet-open,html.sheet-open .app{background:#0e0c18}.page.behind{position:fixed;left:0;right:0;top:calc(-1 * var(--sy));bottom:0;overflow:hidden;transform-origin:50% var(--sy);transform:translateY(calc(var(--top) - 8px)) scale(.92);clip-path:inset(var(--sy) 0 0 0 round 18px);filter:brightness(.72)}}@media (min-width: 560px){.grabber{display:none}.sheet{animation:pop .28s var(--ease-sheet)}.layer.closing .sheet{animation:pop-out .2s ease-in forwards}@keyframes pop{0%{transform:translateY(16px);opacity:0}}@keyframes pop-out{to{transform:translateY(16px);opacity:0}}}.nav-pill{display:none}@media (max-width: 899px){.nav{touch-action:none;user-select:none;-webkit-user-select:none}.nav-pill{display:block;position:absolute;left:0;top:6px;bottom:6px;border-radius:999px;background:#eeeafbe6;pointer-events:none;transition:transform .5s var(--ease-spring),width .5s var(--ease-spring),scale .2s ease-out}.nav-pill.dragging{transition:scale .2s ease-out;scale:1.08}.nav button{position:relative;z-index:1;transition:color .2s}.nav button.on{background:none}.nav button.hover{color:var(--purple-text)}}
