:root{--bg: #F5F8F8;--surface: #FFFFFF;--surface-2: #ECF1F1;--sunken: #E3EAEA;--line: #D5DFDF;--line-strong: #B9C7C7;--ink: #0F1616;--ink-2: #3C4A4A;--muted: #5D6C6C;--faint: #8B9A9A;--on-brand: #FFFFFF;--brand: #0B6E6E;--brand-ink: #075252;--brand-soft: #DCEDEC;--attn: #A65A00;--attn-soft: #FBF0E0;--alert: #A62222;--alert-soft: #FBE8E8;--ok: #1B6B3A;--ok-soft: #E2F1E7;--k-transport: #1D5A8A;--k-lodging: #0B6E6E;--k-activity: #6B4A86;--k-meal: #8A5A2B;--k-note: #6B7676;--shadow-1: 0 1px 2px rgba(15,22,22,.06);--shadow-2: 0 1px 3px rgba(15,22,22,.07), 0 8px 20px -12px rgba(15,22,22,.18);--shadow-3: 0 2px 8px rgba(15,22,22,.1), 0 20px 40px -20px rgba(15,22,22,.28);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--t-xs: .72rem;--t-sm: .82rem;--t-md: .93rem;--t-base: 1rem;--t-lg: 1.12rem;--t-xl: 1.35rem;--t-2xl: 1.7rem;--t-3xl: 2.1rem;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--s-8: 44px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--tabbar: 58px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0A1011;--surface: #121A1B;--surface-2: #1A2425;--sunken: #202B2C;--line: #263233;--line-strong: #3A4A4B;--ink: #E8EFEE;--ink-2: #C2CFCE;--muted: #93A3A2;--faint: #6A7A79;--on-brand: #06201F;--brand: #4FC7C0;--brand-ink: #85DDD7;--brand-soft: #102E2E;--attn: #E0A45C;--attn-soft: #2C2216;--alert: #EE8A8A;--alert-soft: #2C1717;--ok: #67C68C;--ok-soft: #12291C;--k-transport: #7FB3DC;--k-lodging: #4FC7C0;--k-activity: #B79AD0;--k-meal: #D2A377;--k-note: #8A9998;--shadow-1: 0 1px 2px rgba(0,0,0,.5);--shadow-2: 0 1px 3px rgba(0,0,0,.5), 0 8px 20px -12px rgba(0,0,0,.7);--shadow-3: 0 2px 8px rgba(0,0,0,.55), 0 20px 40px -20px rgba(0,0,0,.8)}}:root[data-theme=dark]{--bg: #0A1011;--surface: #121A1B;--surface-2: #1A2425;--sunken: #202B2C;--line: #263233;--line-strong: #3A4A4B;--ink: #E8EFEE;--ink-2: #C2CFCE;--muted: #93A3A2;--faint: #6A7A79;--on-brand: #06201F;--brand: #4FC7C0;--brand-ink: #85DDD7;--brand-soft: #102E2E;--attn: #E0A45C;--attn-soft: #2C2216;--alert: #EE8A8A;--alert-soft: #2C1717;--ok: #67C68C;--ok-soft: #12291C;--k-transport: #7FB3DC;--k-lodging: #4FC7C0;--k-activity: #B79AD0;--k-meal: #D2A377;--k-note: #8A9998;--shadow-1: 0 1px 2px rgba(0,0,0,.5);--shadow-2: 0 1px 3px rgba(0,0,0,.5), 0 8px 20px -12px rgba(0,0,0,.7);--shadow-3: 0 2px 8px rgba(0,0,0,.55), 0 20px 40px -20px rgba(0,0,0,.8)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:var(--t-base)/1.5 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,select{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none;font-weight:600}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{min-height:100dvh;display:flex;flex-direction:column}.page{flex:1;width:100%;max-width:760px;margin:0 auto;padding:0 var(--s-4) calc(var(--tabbar) + var(--safe-b) + var(--s-7))}.topbar{position:sticky;top:0;z-index:20;padding:calc(var(--safe-t) + var(--s-3)) var(--s-4) var(--s-3);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:var(--s-3)}.topbar h1{margin:0;font-size:var(--t-lg);font-weight:700;letter-spacing:-.015em}.topbar .sub{margin:0;font-size:var(--t-xs);color:var(--muted)}.topbar .grow{flex:1;min-width:0}.iconbtn{flex:none;width:38px;height:38px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer}.iconbtn:hover{border-color:var(--brand);color:var(--brand)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--tabbar) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--line);display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.tab{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--faint);font-size:var(--t-xs);font-weight:600;padding:0;position:relative}.tab .glyph{font-size:1.05rem;line-height:1}.tab[aria-selected=true]{color:var(--brand)}.tab[aria-selected=true]:before{content:"";position:absolute;top:0;width:26px;height:2px;background:var(--brand);border-radius:0 0 2px 2px}.tab .badge{position:absolute;top:4px;right:50%;translate:16px 0;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-pill);background:var(--attn);color:var(--surface);font-size:10px;font-weight:800;display:grid;place-items:center}.section{margin-top:var(--s-6)}.section>h2{margin:0 0 var(--s-1);font-size:var(--t-lg);font-weight:700;letter-spacing:-.015em}.section>.lead{margin:0 0 var(--s-3);font-size:var(--t-sm);color:var(--muted)}.eyebrow{font-size:var(--t-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin:0 0 var(--s-2)}.stack{display:flex;flex-direction:column;gap:var(--s-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.pad{padding:var(--s-4)}.hero{padding:var(--s-6) 0 var(--s-2)}.hero h1{margin:0 0 var(--s-2);font-size:var(--t-3xl);line-height:1.08;letter-spacing:-.03em;font-weight:800;text-wrap:balance}.hero .meta{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);color:var(--muted);font-size:var(--t-sm)}.hero .meta b{color:var(--ink);font-weight:600}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:var(--s-3)}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);box-shadow:var(--shadow-1)}.tile span{display:block;font-size:var(--t-xs);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:var(--s-1)}.tile b{font-size:var(--t-xl);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile small{display:block;color:var(--muted);font-size:var(--t-xs);margin-top:2px}.tile.attn b{color:var(--attn)}.day-h{position:sticky;top:calc(var(--safe-t) + 54px);z-index:10;display:flex;align-items:baseline;gap:var(--s-2);padding:var(--s-2) 0;margin-bottom:var(--s-2);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.day-h b{font-size:var(--t-md);font-weight:700;letter-spacing:-.01em}.day-h .dow{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:700}.day-h .where{margin-left:auto;font-size:var(--t-xs);color:var(--brand);font-weight:700}.day-h.today b{color:var(--brand)}.day-empty{color:var(--faint);font-size:var(--t-sm);font-style:italic;padding:var(--s-2) 0 var(--s-4)}.ev{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--s-3) var(--s-4) var(--s-3) calc(var(--s-4) + 3px);overflow:hidden}.ev:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--k-note)}.ev.k-transport:before{background:var(--k-transport)}.ev.k-lodging:before{background:var(--k-lodging)}.ev.k-activity:before{background:var(--k-activity)}.ev.k-meal:before{background:var(--k-meal)}.ev.k-admin:before{background:var(--k-note)}.ev.unresolved{background:var(--attn-soft);border-color:color-mix(in srgb,var(--attn) 30%,var(--line))}.ev.unresolved:before{background:var(--attn)}.ev-top{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-1)}.ev-time{font-family:var(--mono);font-size:var(--t-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}.ev-kind{font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.ev h3{margin:0;font-size:var(--t-md);font-weight:650;line-height:1.35;letter-spacing:-.01em}.ev .det{margin:var(--s-1) 0 0;font-size:var(--t-sm);color:var(--muted);line-height:1.5}.ev .det b{color:var(--ink-2);font-weight:600}.ev .ref{font-family:var(--mono);font-size:var(--t-xs)}.ev .row{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center;margin-top:var(--s-2)}.legs{margin:var(--s-2) 0 0;padding:var(--s-2) 0 0;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:var(--s-2)}.leg{display:flex;gap:var(--s-2);font-size:var(--t-sm);align-items:baseline}.leg .t{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);flex:none;font-size:var(--t-xs)}.leg .n{flex:1;min-width:0}.leg .n small{display:block;color:var(--faint);font-size:var(--t-xs)}.pill{font-size:var(--t-xs);font-weight:700;letter-spacing:.02em;padding:2px var(--s-2);border-radius:var(--r-pill);border:1px solid currentColor;white-space:nowrap}.pill.ok{color:var(--ok)}.pill.attn{color:var(--attn)}.pill.muted{color:var(--faint)}.pill.solid{background:var(--attn);border-color:var(--attn);color:var(--surface)}.amount{margin-left:auto;text-align:right;flex:none}.amount b{font-family:var(--mono);font-size:var(--t-sm);font-weight:700;font-variant-numeric:tabular-nums}.amount small{display:block;color:var(--faint);font-size:var(--t-xs)}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.chip{display:inline-flex;align-items:center;gap:5px;min-height:34px;font-size:var(--t-xs);font-weight:600;padding:5px var(--s-3);border-radius:var(--r-sm);border:1px solid transparent;background:var(--brand-soft);color:var(--brand-ink);cursor:pointer}.chip.expected{background:transparent;border:1px dashed var(--line-strong);color:var(--faint);font-weight:500}.chip:disabled{cursor:default}.linkbtn{background:none;border:none;padding:0;color:var(--brand);font-weight:600;font-size:var(--t-sm);cursor:pointer}.block{border-radius:var(--r-md);padding:var(--s-3);margin-top:var(--s-2);background:var(--surface-2);font-size:var(--t-sm)}.block.warning{background:var(--attn-soft)}.block.warning>b{color:var(--attn)}.block>b{display:block;font-size:var(--t-sm);margin-bottom:var(--s-1)}.block p{margin:0;color:var(--muted);line-height:1.5}.block.unknown{border:1px dashed var(--line-strong);background:transparent}.block .tag-unknown{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand);background:var(--brand-soft);padding:2px 6px;border-radius:5px;margin-bottom:var(--s-2)}.block dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px var(--s-3);font-size:var(--t-sm)}.block dt{color:var(--faint);font-family:var(--mono);font-size:var(--t-xs)}.block dd{margin:0}.block table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.block td{padding:4px 0;border-bottom:1px solid var(--line)}.block tr:last-child td{border-bottom:none}.block td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.rows{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1)}.row{display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);align-items:flex-start;text-align:left;background:none;border-left:none;border-right:none;border-top:none;width:100%}.row:last-child{border-bottom:none}.row.tappable{cursor:pointer}.row.tappable:hover{background:var(--surface-2)}.row b{display:block;font-size:var(--t-md);font-weight:600}.row small{display:block;color:var(--muted);font-size:var(--t-sm);margin-top:2px;line-height:1.45}.row .when{flex:none;width:54px;font-family:var(--mono);font-size:var(--t-xs);font-weight:700;color:var(--attn);font-variant-numeric:tabular-nums;padding-top:2px}.row.done{color:var(--faint)}.row.done b{text-decoration:line-through;font-weight:500}.check{flex:none;width:22px;height:22px;border-radius:7px;margin-top:1px;border:1.5px solid var(--line-strong);background:var(--surface);display:grid;place-items:center;font-size:var(--t-xs);color:transparent}.row.done .check{background:var(--ok);border-color:var(--ok);color:#fff}.signin{min-height:100dvh;display:grid;place-items:center;padding:var(--s-6)}.signin-card{width:100%;max-width:380px;text-align:center}.signin-card .logo{width:62px;height:62px;margin:0 auto var(--s-4);display:block}.signin-card h1{margin:0 0 var(--s-2);font-size:var(--t-2xl);letter-spacing:-.025em;font-weight:800}.signin-card p{margin:0 0 var(--s-6);color:var(--muted);font-size:var(--t-sm)}.btn{width:100%;min-height:48px;border-radius:var(--r-md);cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:var(--t-md);font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn:disabled{opacity:.6;cursor:default}.field{width:100%;min-height:46px;border-radius:var(--r-md);padding:0 var(--s-3);border:1px solid var(--line);background:var(--surface)}.or{display:flex;align-items:center;gap:var(--s-3);color:var(--faint);font-size:var(--t-xs);margin:var(--s-4) 0}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}.triplist{display:grid;gap:var(--s-3)}.tripcard{display:block;text-align:left;width:100%;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s-4);box-shadow:var(--shadow-2);color:inherit}.tripcard:hover{border-color:var(--brand)}.tripcard h2{margin:var(--s-1) 0 var(--s-1);font-size:var(--t-xl);letter-spacing:-.02em;font-weight:750}.tripcard .when{color:var(--muted);font-size:var(--t-sm)}.tripcard .status{font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}.empty{text-align:center;color:var(--muted);padding:var(--s-8) var(--s-4)}.empty b{display:block;color:var(--ink);font-size:var(--t-lg);margin-bottom:var(--s-2)}.spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--brand);animation:spin .7s linear infinite;margin:var(--s-8) auto}@keyframes spin{to{rotate:360deg}}.error{background:var(--alert-soft);color:var(--alert);border-radius:var(--r-md);padding:var(--s-3);font-size:var(--t-sm)}.hidden-input{display:none}
