:root{--bg: #fafaf9;--bg-outer: #f0efed;--surface: #fff;--surface-2: #f5f5f4;--ink: #1c1917;--ink-2: #57534e;--ink-3: #6b6560;--line: #e7e5e4;--line-strong: #d6d3d1;--line-input: #948e89;--accent: #1d4ed8;--accent-hover: #1e40af;--accent-soft: #ebf0fd;--on-accent: #fff;--danger: #b91c1c;--danger-hover: #991b1b;--danger-soft: #fdecec;--ok-bg: #ecf6ef;--ok-ink: #166534;--warn-bg: #fef3e2;--warn-ink: #92400e;--err-bg: #fdecec;--err-ink: #991b1b;--scrim: rgb(28 25 23 / .32);--font: system-ui, -apple-system, "Sukhumvit Set", "Noto Sans Thai", "Thonburi", "Leelawadee UI", sans-serif;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 24px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--lh-body: 1.5;--lh-tight: 1.3;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--radius: 10px;--radius-sm: 8px;--radius-sheet: 16px;--radius-pill: 999px;--tap: 44px;--gutter: 16px;--app-max-w: 640px;--sheet-max-w: 640px;--nav-h: 60px;--fab-h: 44px;--safe-bottom: env(safe-area-inset-bottom);--shell-inset: max(0px, (100vw - var(--app-max-w)) / 2);--tablet-main-max-w: 520px;--sidebar-w: 232px;--content-max-w: 640px;--wish-panel-w: 288px;--map-panel-min-w: 280px;--shell-max-w: 1680px;--dialog-w: 560px;--drop-line: 2px;--toolbar-h: 0px;--rail-w: 56px;--edge-w: 44px;--shadow-float: 0 2px 8px rgb(28 25 23 / .12);--shadow-sheet: 0 -2px 12px rgb(28 25 23 / .08);--shadow-drag: 0 6px 20px rgb(28 25 23 / .16);--radius-card: 16px;--shadow-card: 0 2px 4px rgb(28 25 23 / .05), 0 12px 26px rgb(20 40 100 / .13);--shadow-card-float: 0 4px 8px rgb(28 25 23 / .06), 0 18px 36px rgb(20 40 100 / .2);--shadow-btn: 0 10px 22px rgb(29 78 216 / .42);--shadow-tab: 0 -8px 24px rgb(28 25 23 / .1);--shadow-sheet-up: 0 -6px 24px rgb(8 20 70 / .22);--shadow-chip: 0 1px 3px rgb(28 25 23 / .08);--shadow-chip-on: 0 6px 12px rgb(29 78 216 / .35);--dur: .16s;--z-nav: 10;--z-fab: 15;--z-offline: 20;--z-dim: 30;--z-sheet: 31;--z-toast: 40;--z-drag: 60;--blue: var(--accent);--chip-warn-ink: var(--warn-ink)}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:var(--fw-regular) var(--fs-md) / var(--lh-body) var(--font);overflow-x:hidden;-webkit-tap-highlight-color:transparent;accent-color:var(--accent)}h1,h2,h3{line-height:var(--lh-tight);font-weight:var(--fw-semibold);color:var(--ink)}h1{font-size:var(--fs-xl);margin:var(--s-1) 0 var(--s-3)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}p{margin:0}a{color:var(--accent);text-underline-offset:2px}button,a,select,summary,[role=tab],[role=radio],label.check{cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sheet:focus,.sheet:focus-visible{outline:none}a,button,.input{transition:background-color var(--dur),color var(--dur),border-color var(--dur),opacity var(--dur)}.tap{min-width:var(--tap);min-height:var(--tap)}.muted{color:var(--ink-2);font-size:var(--fs-sm);margin:2px 0}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--s-3)}.row{display:flex;gap:var(--s-2)}.row .input{flex:1;min-width:0}.attribution{font-size:var(--fs-xs);color:var(--ink-3)}.app{min-height:100%;display:flex;flex-direction:column;width:100%;max-width:var(--app-max-w);margin-inline:auto;background:var(--bg)}.page{flex:1;padding:var(--s-4) var(--gutter) calc(var(--nav-h) + var(--s-6) + var(--safe-bottom))}.page.overview,.page.wishlist{padding-bottom:calc(var(--nav-h) + var(--fab-h) + var(--s-8) + var(--safe-bottom))}@media (min-width: 641px){body{background:var(--bg-outer)}.app{border-inline:1px solid var(--line)}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;max-width:var(--app-max-w);margin-inline:auto;display:flex;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--line);z-index:var(--z-nav)}.bottom-nav a{position:relative;flex:1 1 0;display:flex;align-items:center;justify-content:center;color:var(--ink-2);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.bottom-nav a:hover{color:var(--ink)}.bottom-nav a[aria-current=page]{color:var(--accent);font-weight:var(--fw-semibold)}.bottom-nav a[aria-current=page]:before{content:"";position:absolute;top:-1px;left:50%;width:32px;height:2px;margin-left:-16px;border-radius:0 0 2px 2px;background:var(--accent)}.bottom-nav a:focus-visible{outline-offset:-4px}.nav-label{position:relative}.nav-badge{position:absolute;top:-8px;left:calc(100% + 2px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:18px;text-align:center}.fab.btn{position:fixed;right:calc(var(--shell-inset) + var(--gutter));bottom:calc(var(--nav-h) + var(--s-3) + var(--safe-bottom));z-index:var(--z-fab);height:var(--fab-h);padding:0 var(--s-4);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);box-shadow:var(--shadow-float)}.fab.btn:hover{background:var(--surface-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-4);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:var(--lh-tight);text-align:center;text-decoration:none;cursor:pointer}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.block{width:100%}.btn[aria-disabled=true],.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink);font-weight:var(--fw-medium)}.btn.ghost:hover{background:var(--surface-2);border-color:var(--line-strong)}.btn.ghost[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.overview-head .btn,.wishlist-card .btn,.day-card .btn,.wish-main .btn,.wishlist-head .btn,.add-head-row .btn,.member>.btn,.place-head .btn,.note .btn.ghost,.sheet>header .btn,.day-head .btn,.day-actions .btn,.slot .btn,.chosen .btn,.capture-page>.btn.ghost:last-child,.capture-draft .btn.ghost,.capture-delete .btn.ghost{background:transparent;border-color:transparent;color:var(--accent);font-weight:var(--fw-medium);padding:0 var(--s-2)}.overview-head .btn:hover,.wishlist-card .btn:hover,.day-card .btn:hover,.wish-main .btn:hover,.wishlist-head .btn:hover,.add-head-row .btn:hover,.member>.btn:hover,.place-head .btn:hover,.note .btn.ghost:hover,.sheet>header .btn:hover,.day-head .btn:hover,.day-actions .btn:hover,.slot .btn:hover,.chosen .btn:hover{background:var(--surface-2);border-color:transparent}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.btn.danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn.ghost.danger,.note .btn.ghost.danger{background:transparent;border-color:transparent;color:var(--danger)}.btn.ghost.danger:hover{background:var(--danger-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-3) var(--s-4)}.chip{display:inline-flex;align-items:center;font-size:var(--fs-xs);line-height:1.5;padding:1px var(--s-2);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok-ink)}.chip.warn{background:var(--warn-bg);color:var(--warn-ink);white-space:normal}.chip.pin{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong)}.chip.tap{justify-content:center;min-height:var(--tap);padding:0 var(--s-3);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-decoration:none;cursor:pointer}.chip.tap:hover{background:var(--surface-2)}.chip.tap[aria-pressed=true],.chip.tap[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:var(--fw-semibold)}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.status-chip{display:inline-block;font-size:var(--fs-xs);line-height:1.5;padding:1px var(--s-2);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.status-chip.warn{background:var(--warn-bg);color:var(--warn-ink)}.status-chip.ok{background:var(--ok-bg);color:var(--ok-ink)}.status-chip.failed{background:var(--err-bg);color:var(--err-ink);font-weight:var(--fw-semibold)}.tabs,.cat-picker,.source-pick{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--radius);background:var(--surface-2)}.tabs{flex-wrap:nowrap;margin-bottom:var(--s-3)}.tab,.cat-picker button,.source-pick .btn{flex:1 1 auto;min-height:var(--tap);padding:0 var(--s-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.tab{flex:1 1 0;padding:0 var(--s-1)}.source-pick .btn{flex:1 1 0}.tab:hover,.cat-picker button:hover,.source-pick .btn:hover{background:#1c19170a;color:var(--ink)}.tab[aria-selected=true],.cat-picker button[aria-checked=true],.cat-picker button[aria-pressed=true],.source-pick .btn[aria-pressed=true]{background:var(--surface);color:var(--accent);font-weight:var(--fw-semibold);box-shadow:0 0 0 1px var(--line-strong)}.cat-picker button:disabled{opacity:.5;cursor:default}.cat-picker:not(.filter){display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.cat-picker:not(.filter) button{padding:0 2px;white-space:nowrap}.cat-picker.filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.cat-picker.filter button{padding:0 var(--s-1)}.composer-actions.source-pick{gap:2px}.field{display:flex;flex-direction:column;gap:var(--s-1)}.label,.paste-invite label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink)}.input{width:100%;min-height:var(--tap);border:1px solid var(--line-input);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:var(--fs-md);padding:0 var(--s-3)}.input::placeholder{color:var(--ink-3)}.input:hover{border-color:var(--ink-2)}.input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.input[aria-invalid=true]{border-color:var(--danger)}.input[readonly]{background:var(--surface-2)}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2357534e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center}input[type=date].input,input[type=time].input{min-height:var(--tap)}textarea.input{padding:10px var(--s-3);line-height:var(--lh-body)}.field-error{margin:0;font-size:var(--fs-sm);color:var(--danger)}.field-hint{margin:0}.duration-field{display:flex;flex-direction:column;gap:var(--s-2)}.duration-chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-2)}.duration-chips .chip.tap{padding:0;font-variant-numeric:tabular-nums}.duration-chips .chip.tap:disabled{opacity:.5;cursor:default}.check{display:flex;align-items:center;gap:var(--s-2)}.check input{width:22px;height:22px}.home>.btn{margin-bottom:var(--s-6)}.paste-invite{display:flex;flex-direction:column;gap:var(--s-1);margin-top:var(--s-2)}.join-hint{display:flex;flex-direction:column;gap:var(--s-2)}.home-lead{color:var(--ink-2);margin:0 0 var(--s-6)}.results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.result,.btn.result{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-2) var(--s-3);color:var(--ink);font-weight:var(--fw-medium);cursor:pointer}.result:hover,.btn.result:hover{background:var(--surface-2);border-color:var(--line)}.result .muted{font-size:var(--fs-sm);font-weight:var(--fw-regular)}.chosen{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.offline-bar{position:sticky;top:0;z-index:var(--z-offline);background:var(--warn-bg);color:var(--warn-ink);text-align:center;padding:6px var(--gutter);font-size:var(--fs-sm)}.toasts{position:fixed;left:calc(var(--shell-inset) + var(--gutter));right:calc(var(--shell-inset) + var(--gutter));bottom:calc(var(--nav-h) + var(--s-3) + var(--safe-bottom));display:flex;flex-direction:column;gap:var(--s-2);z-index:var(--z-toast);pointer-events:none}.toast{background:var(--ink);color:#fff;border-radius:var(--radius);padding:10px 14px;font-size:var(--fs-sm);box-shadow:var(--shadow-float)}.sheet-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:var(--z-dim)}.sheet{position:fixed;left:0;right:0;bottom:0;max-width:var(--sheet-max-w);margin-inline:auto;max-height:85%;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-top:1px solid var(--line);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet);padding:var(--s-2) var(--gutter) calc(var(--s-4) + var(--safe-bottom));z-index:var(--z-sheet)}.sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:0 auto var(--s-2)}.sheet>header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2)}.sheet h2{margin:0;font-size:var(--fs-lg)}.sheet>header .btn{margin-right:calc(-1 * var(--s-2))}.sheet-actions{margin:var(--s-3) 0}.share-body{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.not-found{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);padding-top:var(--s-8)}.not-found h1{margin:0}.not-found p{color:var(--ink-2)}.settings h2{font-size:var(--fs-lg);margin:var(--s-8) 0 var(--s-3)}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.account-id{overflow-wrap:anywhere}.or-divider{display:flex;align-items:center;gap:var(--s-3);color:var(--ink-3);font-size:var(--fs-sm)}.or-divider:before,.or-divider:after{content:"";flex:1;border-top:1px solid var(--line)}.members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.member.card{border-radius:0;border-width:0 0 1px;background:transparent;padding:var(--s-1) 0}.members .member.card:first-child{border-top-width:1px}.member{display:flex;align-items:center;gap:var(--s-2)}.member>.grow{font-weight:var(--fw-medium)}.settings form:has(.check) .btn:not(.ghost){background:var(--surface);border-color:var(--line-strong);color:var(--ink);font-weight:var(--fw-medium)}.settings form:has(.check) .btn:not(.ghost):hover{background:var(--surface-2)}.overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-4)}.overview-head h1{margin-bottom:var(--s-1)}.overview-head .btn{margin-right:calc(-1 * var(--s-2))}.wishlist-card{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-3);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4)}.wishlist-card .muted{margin:2px 0 0}.page.overview>.btn.block{margin-bottom:var(--s-6)}.day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.day-card{display:flex;flex-direction:column;gap:0;padding:var(--s-1) var(--s-3)}.day-link{display:flex;align-items:center;gap:var(--s-3);color:inherit;text-decoration:none;padding:var(--s-2) 0}.day-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-xs);line-height:1.15}.day-badge strong{font-size:17px;color:var(--ink);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.day-title{display:block;font-weight:var(--fw-semibold)}.day-summary{display:block;margin:0;font-variant-numeric:tabular-nums}.day-card>.btn.block{width:auto;align-self:flex-start;margin:calc(-1 * var(--s-2)) 0 0 calc(44px + var(--s-3) - var(--s-2))}.open-imports{display:flex;flex-direction:column;gap:var(--s-1);margin-bottom:var(--s-3)}.open-import-list{list-style:none;margin:0;padding:0}.open-import-link{display:flex;align-items:center;color:var(--accent);font-weight:var(--fw-medium);text-decoration:none}.day-links{flex-wrap:wrap;list-style:none;margin:0;padding:0}.wishlist .filter{margin-bottom:var(--s-4)}.wish-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.wish-card{padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4)}.wish-main{display:flex;align-items:center;gap:var(--s-3)}.wish-cover{flex:none;width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--line)}.wish-body{flex:1;min-width:0;display:block;color:inherit;text-decoration:none;padding:var(--s-1) 0}.wish-body h3{margin:0 0 var(--s-1);font-size:var(--fs-md);overflow-wrap:anywhere}.wish-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}.wish-meta .muted{margin:0}.wish-source{display:inline-flex;align-items:center;margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--accent);overflow-wrap:anywhere}.wish-actions{flex:none;display:flex;flex-direction:column;align-items:flex-end}.wish-card.picked{border-color:var(--accent)}.wishlist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.wishlist-head .btn{flex:none;margin:var(--s-1) calc(-1 * var(--s-2)) 0 0}.select-hint{margin:0 0 var(--s-3)}.wish-main>.wish-body:not(a){cursor:pointer}.pick-box{flex:none;display:inline-flex;align-items:center;justify-content:center;padding:0;margin-left:calc(-1 * var(--s-2));border:0;border-radius:var(--radius-pill);background:transparent}.pick-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line-input);background:var(--surface);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--on-accent);font-variant-numeric:tabular-nums}.pick-box[aria-checked=true] .pick-dot{background:var(--accent);border-color:var(--accent)}.pick-box[aria-disabled=true]{opacity:.5;cursor:default}.select-bar{position:sticky;bottom:calc(var(--nav-h) + var(--safe-bottom));z-index:var(--z-nav);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-3);padding:var(--s-3) 0;background:var(--bg);border-top:1px solid var(--line)}.select-bar>.grow{font-weight:var(--fw-semibold)}.sheet .select-bar{bottom:0;background:var(--surface)}.select-bar .plan-partial{flex-basis:100%}.day-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}.day-option{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-height:52px;padding:var(--s-1) var(--s-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.day-option .muted{margin:0;font-size:var(--fs-xs);font-weight:var(--fw-regular)}.day-option:hover{background:var(--surface-2)}.day-option[aria-checked=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:var(--fw-semibold)}.day-option:disabled{opacity:.5;cursor:default}.plan-order{margin:0;padding-left:1.5em;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.plan-summary{margin:0;font-weight:var(--fw-semibold)}.plan-partial{margin:0;padding:var(--s-2) var(--s-3);border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm)}.day-head{display:flex;align-items:center;gap:var(--s-1);margin:0 calc(-1 * var(--s-2))}.day-head h1{margin:0;text-align:center;font-size:var(--fs-lg)}.day-head .muted{text-align:center}.day-head .btn{font-size:var(--fs-xl);font-weight:var(--fw-regular);color:var(--ink-2);padding:0}.day-head .btn:hover{color:var(--ink)}.day-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin:var(--s-1) 0 var(--s-4)}.day-actions .btn{font-size:var(--fs-sm)}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.timeline .edge{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-2);padding:var(--s-2) 0;overflow-wrap:anywhere}.timeline .leg{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--s-2);margin-left:22px;padding:var(--s-2) 0 var(--s-2) var(--s-4);border-left:2px solid var(--line);font-size:var(--fs-xs);color:var(--ink-2)}.timeline .leg .chip,.route-leg .chip{background:none;padding:0;color:var(--ink-3);font-size:var(--fs-xs)}.timeline .leg .chip:before,.route-leg .chip:before{content:"· "}.timeline .stop-card{margin:var(--s-1) 0}.slot .btn{width:100%;justify-content:flex-start;margin-left:0;padding:0 var(--s-2) 0 calc(22px + var(--s-4));color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-regular);border-radius:var(--radius-sm);background-image:linear-gradient(var(--line),var(--line));background-size:2px 100%;background-position:22px 0;background-origin:border-box;background-repeat:no-repeat}.slot .btn:hover,.slot .btn:focus-visible{color:var(--accent);background-color:var(--surface-2)}.slot.tail{margin-top:var(--s-3)}.slot.tail .btn{justify-content:center;padding:0 var(--s-4);background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-size:var(--fs-md);font-weight:var(--fw-semibold);border-radius:var(--radius)}.slot.tail .btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.slot.tail+.leg{margin-top:var(--s-3)}.stop-card{padding:0;display:flex;align-items:stretch;position:relative}.stop-card .stop-body{flex:1;min-width:0;width:auto}.stop-card.dragging{z-index:5;box-shadow:var(--shadow-float)}.drag-handle{flex:none;width:var(--tap);min-height:var(--tap);padding:0;display:flex;align-items:center;justify-content:center;background:none;border:0;border-radius:0 var(--radius) var(--radius) 0;font-size:18px;line-height:1;color:var(--ink-3);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.drag-handle:hover{color:var(--ink);background:var(--surface-2)}.drag-handle[aria-disabled=true]{opacity:.5;cursor:default}.stop-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);width:100%;padding:var(--s-3) var(--s-2) var(--s-3) var(--s-3);text-align:left;background:none;border:0;color:inherit;cursor:pointer;border-radius:var(--radius) 0 0 var(--radius)}.stop-body:hover{background:var(--surface-2)}.stop-head{display:flex;align-items:baseline;gap:var(--s-2)}.stop-time{flex:none;min-width:52px;color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.stop-label{overflow-wrap:anywhere;font-weight:var(--fw-semibold)}.stop-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}.stop-meta .muted{margin:0}.stop-card .stop-meta,.stop-card .stop-body>.chip{margin-left:calc(52px + var(--s-2))}.add-place [hidden]{display:none!important}.add-place{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-2)}.add-head{margin:var(--s-1) 0 0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink-2)}.add-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.add-head-row .add-head{margin:0}.add-head-row .btn{margin-right:calc(-1 * var(--s-2));font-size:var(--fs-sm)}.add-picked{margin:0;font-size:var(--fs-md)}.add-row{display:flex;align-items:center;gap:var(--s-2);background:var(--surface);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:var(--s-2) 0}.results .add-row:last-child{border-bottom:0}.results:has(.add-row){gap:0}.add-row .grow{display:flex;flex-direction:column;gap:2px}.add-row .muted{font-size:var(--fs-sm);margin:0}.add-plus.btn{flex:none;width:var(--tap);padding:0;font-size:22px;font-weight:var(--fw-regular);line-height:1;background:var(--surface);border-color:var(--line-strong);color:var(--accent);border-radius:var(--radius-pill)}.add-plus.btn:hover{background:var(--accent-soft);border-color:var(--accent)}.place-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.place-head h1{margin:0;overflow-wrap:anywhere}.place-head .btn{margin-right:calc(-1 * var(--s-2));flex:none}.place-names{margin:0;color:var(--ink-2);overflow-wrap:anywhere}.place-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);margin:0;font-size:var(--fs-sm)}.place-meta a{display:inline-flex;align-items:center;color:var(--accent);overflow-wrap:anywhere}.place-page h2{font-size:var(--fs-md);margin:var(--s-3) 0 var(--s-2)}.used-list,.note-list,.reviews,.hours{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.used-list a{display:inline-flex;align-items:center;color:var(--accent);font-weight:var(--fw-medium);text-decoration:none;font-variant-numeric:tabular-nums}.hours{gap:2px;font-size:var(--fs-sm);color:var(--ink-2)}.note-body,.review-text{margin:0 0 var(--s-1);white-space:pre-wrap;overflow-wrap:anywhere}.notes{display:flex;flex-direction:column;gap:var(--s-2)}.notes h2{margin-bottom:0}.note .row{margin-top:var(--s-1);align-items:center}.note .row .grow{align-self:center}.note .row .btn.ghost{padding:0 var(--s-2)}.note-box{min-height:120px;padding:10px var(--s-3);resize:vertical}.review-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);margin:0 0 var(--s-1)}.review-head a{display:inline-flex;align-items:center;color:var(--accent);font-weight:var(--fw-semibold)}.google-rating{margin:0;font-weight:var(--fw-semibold)}.composer-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.composer-actions .btn{flex:1 1 0;white-space:nowrap;padding:0 var(--s-2)}.capture-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.inbox .composer+.muted{margin:var(--s-2) 0 0;padding:var(--s-6) var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:center}.capture-delete{justify-content:flex-end}.capture-draft{display:flex;flex-direction:column;gap:var(--s-3)}.capture-draft-what{margin:0;overflow-wrap:anywhere}.capture-draft-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.capture-link{display:flex;align-items:center;gap:var(--s-3);color:inherit;text-decoration:none}.capture-thumb{flex:none;width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--line)}.capture-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.capture-meta{display:flex;align-items:center;gap:var(--s-2);margin:0}.capture-author{font-size:var(--fs-sm);overflow-wrap:anywhere}.capture-body .muted{margin:0}.capture-processing{display:flex;align-items:center;gap:var(--s-2);margin:0}.spinner{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cand-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.cand{display:flex;flex-direction:column;gap:var(--s-2)}.cand-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cand-body{display:flex;align-items:flex-start;gap:var(--s-3);width:100%;background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer}.cand-thumb{flex:none;width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--line)}.cand-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.cand-text .muted{font-size:var(--fs-sm);margin:0}.cand-price{align-self:flex-start;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink-2)}.cand-pick{align-self:stretch}.cand .cand-pick.btn:not(.ghost){background:var(--surface);border-color:var(--line-strong);color:var(--accent)}.cand .cand-pick.btn:not(.ghost):hover{background:var(--accent-soft);border-color:var(--accent)}.import-bar{height:6px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden}.import-bar>span{display:block;height:100%;background:var(--accent);transition:width .3s}.draft-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.draft-item-head{display:flex;align-items:flex-start;gap:var(--s-2)}.draft-time{flex:none;font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold)}.draft-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.draft-name .muted{font-size:var(--fs-sm);margin:0}.draft-item-head .status-chip{flex:none}.draft-item.flagged{border:2px solid var(--danger)}.commit-bar{position:sticky;bottom:calc(var(--nav-h) + var(--safe-bottom));z-index:var(--z-nav);padding:var(--s-3) 0;background:var(--bg);border-top:1px solid var(--line)}.route-days{display:flex;gap:var(--s-2);overflow-x:auto;padding:var(--s-1) 0 var(--s-2);margin-bottom:var(--s-1);scrollbar-width:none}.route-days .chip.tap{flex:none}.app:has(.route-page){height:100vh;height:100dvh}.page.route-page{display:flex;flex-direction:column;min-height:0;padding-bottom:calc(var(--nav-h) + var(--s-2) + var(--safe-bottom))}.route-page>h1{font-size:var(--fs-lg);margin-bottom:var(--s-2)}.route-page>h1,.route-page>.route-days,.route-page>.detour-banner{flex:none}.detour-banner{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-2)}.detour-banner p{margin:0}.detour-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.detour-actions .btn{flex:1 1 140px}.route-stage{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--s-2)}.route-map{flex:1;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);display:flex;align-items:center;justify-content:center}.route-status{flex:none;margin:0}.svg-map{width:100%;height:100%;display:block}.svg-map-empty{padding:var(--s-3);text-align:center}.svg-map-line{stroke:var(--accent)}.svg-map-compare{stroke:var(--warn-ink)}.svg-map-pin circle{fill:var(--accent);stroke:#fff;stroke-width:2}.svg-map-pin text{fill:#fff;font-weight:700}.svg-map-pin.start circle,.svg-map-pin.end circle{fill:var(--surface);stroke:var(--accent)}.osm-map{position:relative;width:100%;height:100%}.osm-map .osm-map-canvas,.osm-map .osm-map-standin{position:absolute;top:0;right:0;bottom:0;left:0}.osm-map-standin{display:flex;align-items:center;justify-content:center;background:var(--surface-2)}.route-sheet{flex:none;min-height:76px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet);padding:0 var(--s-3);overflow:hidden}@media (prefers-reduced-motion: no-preference){.route-sheet{transition:height .2s ease-out}}.route-sheet-head{flex:none;display:flex;align-items:center;gap:var(--s-3)}.route-grab{flex:1;display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0;cursor:grab;touch-action:none}.route-grab .grab{width:36px;height:4px;border-radius:2px;background:var(--line-strong)}.route-grab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.route-sheet-body{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--s-3);overscroll-behavior:contain}.route-sheet-body[hidden]{display:none}.route-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.route-list .edge{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-2);padding:var(--s-1) 0;overflow-wrap:anywhere}.route-leg{margin-left:13px;padding-left:var(--s-4);border-left:2px solid var(--line)}.route-stop-head{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-2)}.route-stop-head .stop-label{flex:1;min-width:0;overflow-wrap:anywhere}.route-no{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.route-no.none{background:var(--line)}.route-stop .nav-actions{flex-direction:row;flex-wrap:wrap;gap:var(--s-2)}.route-stop .nav-actions .btn.block{width:auto;flex:1 1 auto}.leg-options{display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}.leg-opt-list,.dest-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.leg-opt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) 6px}.leg-opt-label{font-weight:var(--fw-semibold);color:var(--ink)}.less-walk{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2)}.dest-notes li{overflow-wrap:anywhere}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.svg-map-pin.place circle{fill:var(--surface);stroke:var(--accent);stroke-width:2}.svg-map-pin.highlight circle{fill:var(--accent)}.svg-map-pin circle.svg-map-halo{fill:var(--accent);fill-opacity:.22;stroke:none}@media (min-width: 768px){.app:has(>.shell){max-width:var(--shell-max-w);border-inline:0}.app:has(>.shell) .bottom-nav{max-width:none}.app:has(>.shell) .toasts{left:var(--s-4);right:auto;width:min(440px,calc(100vw - 2 * var(--s-4)))}.shell{display:grid;grid-template-rows:auto 1fr;align-items:start;min-height:100vh;min-height:100dvh}.shell-tablet{grid-template-columns:minmax(0,min(var(--tablet-main-max-w),58%)) minmax(0,1fr)}.shell.no-panel{grid-template-columns:minmax(0,1fr)}.shell-main{min-width:0;display:flex;flex-direction:column}.shell-main>.page{width:100%;max-width:var(--content-max-w);margin-inline:auto}.shell-panel,.shell-wish{position:sticky;top:var(--toolbar-h);height:calc(100vh - var(--toolbar-h));height:calc(100dvh - var(--toolbar-h));min-width:0;display:flex;flex-direction:column;padding:var(--s-4);border-left:1px solid var(--line);background:var(--bg)}.shell-tablet .shell-panel{padding-bottom:calc(var(--nav-h) + var(--s-4) + var(--safe-bottom))}.shell .fab.btn{position:sticky;right:auto;display:flex;width:max-content;margin:var(--s-6) 0 0 auto}.shell .page.overview,.shell .page.wishlist{padding-bottom:calc(var(--nav-h) + var(--s-6) + var(--safe-bottom))}.shell:has(.route-page){height:100vh;height:100dvh}.shell:has(.route-page) .shell-main{height:100%;min-height:0}.shell-main>.page.route-page{flex:1;max-width:none}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2)}.panel-head h2{margin:0;font-size:var(--fs-md)}.panel-head .btn{background:transparent;border-color:transparent;color:var(--accent);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:0 var(--s-2);margin-right:calc(-1 * var(--s-2))}.panel-head .btn:hover{background:var(--surface-2)}.map-panel{flex:1;min-height:0;display:flex;flex-direction:column}.panel-map{flex:1;min-height:200px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}}@media (min-width: 1024px){.shell-desktop{grid-template-columns:var(--sidebar-w) minmax(0,1fr) minmax(var(--map-panel-min-w),.6fr)}.shell-desktop.with-wish{grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--wish-panel-w) minmax(var(--map-panel-min-w),.6fr)}.shell-desktop.no-panel{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.shell-desktop .page{padding:var(--s-6) var(--s-6) var(--s-8)}.shell-desktop .page.overview,.shell-desktop .page.wishlist{padding-bottom:var(--s-8)}.shell-desktop .page.route-page{padding-bottom:var(--s-4)}.shell-desktop .fab.btn{bottom:var(--s-4)}.shell-desktop .commit-bar,.shell-desktop .page .select-bar{bottom:0}.shell-desktop .shell-panel{padding-bottom:var(--s-4)}.app:has(>.shell-desktop) .toasts{bottom:var(--s-4);left:calc(var(--sidebar-w) + var(--s-6))}.sidebar{position:sticky;top:var(--toolbar-h);height:calc(100vh - var(--toolbar-h));height:calc(100dvh - var(--toolbar-h));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4) var(--s-3);background:var(--surface);border-right:1px solid var(--line)}.sidebar-head{padding:0 var(--s-2) var(--s-2)}.sidebar-trip{display:block;font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight);overflow-wrap:anywhere}.sidebar-head .muted{margin-top:var(--s-1)}.side-nav,.side-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.side-link{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);border-radius:var(--radius-sm);color:var(--ink-2);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.side-link:hover{background:var(--surface-2);color:var(--ink)}.side-link[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:var(--fw-semibold)}.nav-count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:20px;text-align:center}.side-title{margin:var(--s-3) var(--s-3) 0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--ink-3)}.side-day{border:1px solid transparent;border-radius:var(--radius);transition:border-color var(--dur),background-color var(--dur),opacity var(--dur)}.side-day-link{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-1) var(--s-2);border-radius:var(--radius);color:inherit;text-decoration:none}.side-day-link:hover{background:var(--surface-2)}.side-day .day-badge{width:40px;height:40px}.side-day-title{display:block;font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.side-day-meta{display:block;font-size:var(--fs-xs);color:var(--ink-2);font-variant-numeric:tabular-nums}.side-day-link[aria-current=page]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.side-day-link[aria-current=page] .day-badge{background:var(--surface)}.side-day-link[aria-current=page] .day-badge strong,.side-day-link[aria-current=page] .side-day-title{color:var(--accent)}.side-day.lit{border-color:var(--accent);border-style:dashed}.side-day.over{border-style:solid;background:var(--accent-soft)}.side-day.dim{opacity:.45}.right-panel{flex:1;min-height:0;display:flex;flex-direction:column}.right-panel>.tabs{flex:none}.right-tabpanel{flex:1;min-height:0;display:flex;flex-direction:column}.right-tabpanel[hidden]{display:none}.wish-panel{flex:1;min-height:0;display:flex;flex-direction:column;margin:calc(-1 * var(--s-2));padding:var(--s-2);border:1px solid transparent;border-radius:var(--radius);transition:border-color var(--dur),background-color var(--dur),opacity var(--dur)}.wish-panel.lit{border-color:var(--accent);border-style:dashed}.wish-panel.over{border-style:solid;background:var(--accent-soft)}.wish-panel.dim{opacity:.45}.panel-hint{min-height:calc(2 * var(--lh-body) * var(--fs-sm));margin:0 0 var(--s-2)}.wish-panel-list{flex:1;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:0 0 var(--s-2);display:flex;flex-direction:column;gap:var(--s-2)}.panel-wish{display:flex;align-items:stretch;padding:0}.panel-wish-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-2) var(--s-1) var(--s-2) var(--s-3);color:inherit;text-decoration:none;border-radius:var(--radius) 0 0 var(--radius);-webkit-user-drag:none}.panel-wish-body:hover{background:var(--surface-2)}.panel-wish .stop-label{font-size:var(--fs-sm)}.overview-members{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0}.overview-members .chips{list-style:none;margin:0;padding:0}.shell-desktop .page.overview>.muted:last-of-type{margin-top:var(--s-2)}.sheet{top:50%;bottom:auto;left:50%;right:auto;width:min(var(--dialog-w),calc(100vw - 2 * var(--s-8)));max-height:min(85vh,760px);transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:var(--radius-sheet);padding:var(--s-4) var(--s-6) var(--s-6)}.sheet .grab{display:none}.grabbable,.grabbable .stop-body{cursor:grab}.grabbable{touch-action:manipulation}.drag-source{opacity:.4}:root:has(.drag-ghost),:root:has(.drag-ghost) *{cursor:grabbing!important}.drag-ghost{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-drag);cursor:grabbing}.drag-ghost .stop-meta{margin:0}.drop-gap{position:relative;height:0;list-style:none}.timeline-drop.dragging .drop-gap.lit:before{content:"";position:absolute;left:calc(22px + var(--s-4));right:0;top:-1px;border-top:1px dashed var(--line-strong)}.drop-line{position:absolute;left:0;right:0;top:calc(var(--drop-line) / -2);height:var(--drop-line);background:var(--accent);border-radius:1px;z-index:4;pointer-events:none}.drop-line:before{content:"";position:absolute;left:16px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}.drop-label{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:2px var(--s-2);border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1.5;font-variant-numeric:tabular-nums;white-space:nowrap}.drop-label.warn,.drop-label:has(.drop-hint){background:var(--warn-bg);color:var(--warn-ink);box-shadow:inset 0 0 0 1px var(--warn-ink)}}.toast.has-action{display:flex;align-items:center;gap:var(--s-3);padding-block:var(--s-1);pointer-events:auto}.toast-action{flex:none;min-height:var(--tap);padding:0 var(--s-3);background:transparent;border:0;border-radius:var(--radius-sm);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-decoration:underline;text-underline-offset:3px}.toast-action:hover{background:#ffffff1f}.toast-action:focus-visible{outline-color:#fff}.card:not(.member){border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.card.dragging{box-shadow:var(--shadow-card-float)}.card.cand-selected{box-shadow:0 0 0 1px var(--accent),var(--shadow-card)}.stop-card .stop-body{border-radius:var(--radius-card) 0 0 var(--radius-card)}.stop-card .stop-body:last-child{border-radius:var(--radius-card)}.stop-card .drag-handle{border-radius:0 var(--radius-card) var(--radius-card) 0}.btn:where(:not(.ghost,.danger,.fab,.result,.add-plus,.cand-pick,:disabled,[aria-disabled=true])){box-shadow:var(--shadow-btn)}:is(.overview-head,.wishlist-card,.day-card,.wish-main,.member,.place-head,.note,.sheet>header,.day-head,.day-actions,.slot,.chosen,.panel-head,.source-pick,.hero) .btn,.settings form:has(.check) .btn:not(.ghost){box-shadow:none}.slot.tail .btn:not([aria-disabled=true]){box-shadow:var(--shadow-btn)}.bottom-nav{box-shadow:var(--shadow-tab)}.sheet{box-shadow:var(--shadow-sheet-up)}.timeline .leg{position:relative;margin:0;padding:var(--s-1) 0 var(--s-1) calc(22px + var(--s-3));border-left:0}.timeline .leg:before{content:"";position:absolute;left:22px;top:calc(-1 * var(--s-1));bottom:calc(-1 * var(--s-1));border-left:2px dotted var(--line-strong)}.leg-pill{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px var(--s-2);padding:2px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-chip);font-size:var(--fs-xs);line-height:1.5;color:var(--ink-2)}@media (min-width: 1024px){.sheet{box-shadow:var(--shadow-card-float)}.panel-wish-body{border-radius:var(--radius-card) 0 0 var(--radius-card)}}.hero,.hero.hero-dusk{--hero-s1: #0b1a45;--hero-s2: #1d4ed8;--hero-s3: #a9c4f7;--hero-orb: #eef4ff;--hero-halo: rgb(238 244 255 / .2);--hero-stars: .9;--hero-cloud: 0;--hero-bld: #081539;--hero-win: .9;--hero-winc: #ffe6a8;--hero-r1: #5b86f0;--hero-r2: #173fbd;--hero-tx: #fff;--hero-sh: 0 2px 8px rgb(5 12 40 / .6);--hero-navbg: rgb(255 255 255 / .16);--hero-navhov: rgb(255 255 255 / .22);--hero-navbd: rgb(255 255 255 / .4);--hero-scrim: none}.hero.hero-dawn{--hero-s1: #ffe9c2;--hero-s2: #ffcb8f;--hero-s3: #ffa65c;--hero-orb: #fff6d6;--hero-halo: rgb(255 246 214 / .55);--hero-stars: 0;--hero-cloud: .85;--hero-bld: #c9692b;--hero-win: 0;--hero-winc: #ffe6a8;--hero-r1: #ffcf94;--hero-r2: #f59a52;--hero-tx: #5a2a0e;--hero-sh: 0 1px 5px rgb(255 255 255 / .6);--hero-navbg: rgb(255 255 255 / .5);--hero-navhov: rgb(255 255 255 / .7);--hero-navbd: rgb(255 255 255 / .75);--hero-scrim: none}.hero.hero-day{--hero-s1: #3f86ff;--hero-s2: #86b6ff;--hero-s3: #d4e6ff;--hero-orb: #fffbe3;--hero-halo: rgb(255 255 255 / .4);--hero-stars: 0;--hero-cloud: .95;--hero-bld: #2f55b8;--hero-win: 0;--hero-winc: #ffe6a8;--hero-r1: #86b6ff;--hero-r2: #3f86ff;--hero-tx: #fff;--hero-sh: 0 2px 8px rgb(8 30 80 / .6);--hero-navbg: rgb(10 42 120 / .22);--hero-navhov: rgb(10 42 120 / .32);--hero-navbd: rgb(255 255 255 / .45);--hero-scrim: linear-gradient(180deg, rgb(10 42 120 / .3), rgb(10 42 120 / .5) calc(100% - 74px) , rgb(10 42 120 / 0) calc(100% - 44px) )}.hero.hero-night{--hero-s1: #050b24;--hero-s2: #0b1a45;--hero-s3: #1d3fa8;--hero-orb: #f1f6ff;--hero-halo: rgb(241 246 255 / .16);--hero-stars: 1;--hero-cloud: 0;--hero-bld: #040a20;--hero-win: 1;--hero-winc: #ffe6a8;--hero-r1: #1d3fa8;--hero-r2: #0b1a45;--hero-tx: #fff;--hero-sh: 0 2px 8px rgb(2 6 23 / .6);--hero-navbg: rgb(255 255 255 / .14);--hero-navhov: rgb(255 255 255 / .22);--hero-navbd: rgb(255 255 255 / .35);--hero-scrim: none}.hero{--hero-city-h: 52px;--hero-lip: 22px;position:relative;z-index:0;isolation:isolate;overflow:hidden;display:flex;align-items:flex-start;gap:var(--s-1);min-height:128px;margin:calc(-1 * var(--s-4)) calc(-1 * var(--gutter)) 0;padding:var(--s-2) var(--s-2) calc(var(--hero-city-h) + var(--hero-lip)) var(--gutter);background:var(--hero-scrim),linear-gradient(180deg,var(--hero-s1),var(--hero-s2) 62%,var(--hero-s3))}.hero-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.hero-sky{position:absolute;left:0;bottom:var(--hero-lip);width:100%;height:var(--hero-city-h);overflow:visible}.hero-city{position:absolute;right:14%;bottom:var(--hero-lip);height:var(--hero-city-h)}.hero-river{position:absolute;left:0;right:0;bottom:0;height:calc(var(--hero-lip) + 5px);background:linear-gradient(180deg,var(--hero-r1),var(--hero-r2) 30%)}.hero-lip{position:absolute;left:0;right:0;bottom:0;height:var(--hero-lip);border-radius:24px 24px 0 0;background:var(--bg);box-shadow:var(--shadow-sheet-up)}.hero-bld{fill:var(--hero-bld)}.hero-far{fill:var(--hero-bld);opacity:.7}.hero-win{opacity:var(--hero-win)}.hero-winc{fill:var(--hero-winc)}.hero-orb{fill:var(--hero-orb)}.hero-halo{fill:var(--hero-halo)}.hero-stars{opacity:var(--hero-stars)}.hero-star{fill:#fff}.hero-clouds{fill:#fff;opacity:var(--hero-cloud)}.hero-text{flex:1;min-width:0}.hero h1{margin:0;font-size:var(--fs-lg);line-height:var(--lh-tight);color:var(--hero-tx);text-shadow:var(--hero-sh);overflow-wrap:anywhere}.hero-sub{margin:0;font-size:var(--fs-xs);line-height:1.5;color:var(--hero-tx);text-shadow:var(--hero-sh);overflow-wrap:anywhere}.hero-controls{flex:none;display:flex;gap:var(--s-1)}.hero .btn{background:var(--hero-navbg);border:1px solid var(--hero-navbd);color:var(--hero-tx);font-weight:var(--fw-medium);padding:0 var(--s-3)}.hero .btn:hover{background:var(--hero-navhov);border-color:var(--hero-navbd);color:var(--hero-tx)}.hero .btn.hero-arrow{padding:0;font-size:var(--fs-xl);font-weight:var(--fw-regular);line-height:1}.hero :focus-visible{outline-color:var(--hero-tx)}.hero.hero-photo{--hero-tx: #fff;--hero-sh: 0 1px 6px rgb(6 14 38 / .7);--hero-navbg: rgb(6 14 38 / .3);--hero-navhov: rgb(6 14 38 / .42);--hero-navbd: rgb(255 255 255 / .45);--hero-scrim: none;--hero-cover-scrim: linear-gradient(180deg, rgb(6 14 38 / .7), rgb(6 14 38 / .62) calc(100% - var(--hero-city-h) - var(--hero-lip)), rgb(6 14 38 / .2) calc(100% - var(--hero-lip)))}.hero-cover{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0}.hero.hero-photo .hero-cover{opacity:1}.hero-cover-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--hero-cover-scrim, none)}.overview-meta{margin:0 0 var(--s-3)}.page>.hero+:not(.day-chips){margin-top:var(--s-2)}.day-chips{margin:0 calc(-1 * var(--gutter))}.day-chips ol{list-style:none;margin:0;padding:var(--s-2) var(--gutter) var(--s-3);display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.day-chips ol::-webkit-scrollbar{display:none}.day-chips li{flex:1 0 auto;display:flex}.day-chip{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:60px;min-height:var(--tap);padding:var(--s-1) var(--s-2);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-chip);color:var(--ink-2);font-size:var(--fs-xs);line-height:1.3;white-space:nowrap;text-decoration:none}.day-chip strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink)}.day-chip:hover{background:var(--surface-2)}.day-chip[aria-current=page]{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-chip-on)}.day-chip[aria-current=page] strong{color:var(--on-accent)}.cat-chips{margin:0 calc(-1 * var(--gutter)) var(--s-1);padding:var(--s-2) var(--gutter) var(--s-3);display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.cat-chips::-webkit-scrollbar{display:none}.cat-chip{flex:none;display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 var(--s-4);border:0;border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-chip);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap}.cat-chip:hover{background:var(--surface-2);color:var(--ink)}.cat-chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:var(--fw-semibold)}.card.picked{box-shadow:0 0 0 1px var(--accent),var(--shadow-card)}.app:has(.page .select-bar) .toasts{bottom:calc(var(--nav-h) + var(--tap) + 3 * var(--s-3) + var(--safe-bottom))}@media (min-width: 1024px){.shell-desktop .hero{margin:calc(-1 * var(--s-6)) calc(-1 * var(--s-6)) 0;padding-left:var(--s-6);padding-right:var(--s-4)}.shell-desktop .cat-chips{margin-inline:calc(-1 * var(--s-6));padding-inline:var(--s-6)}.app:has(>.shell-desktop .page .select-bar) .toasts{bottom:calc(var(--tap) + 2 * var(--s-3) + var(--s-4))}}.cover-frame{position:relative;overflow:hidden;aspect-ratio:16 / 7;width:100%;border-radius:var(--radius-card);background:var(--surface-2)}.cover-frame>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero.cover-frame{display:block;min-height:0;margin:0;padding:0}.hero.cover-frame .hero-lip{display:none}.cover-crop{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.cover-crop:active{cursor:grabbing}.cover-crop>img{pointer-events:none}.cover-crop .muted{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;padding:var(--s-3);text-align:center}.cover-range{display:block;width:100%;min-height:var(--tap);margin:0;accent-color:var(--accent)}@media (min-width: 768px){:root{--toolbar-h: 52px}.shell-main[hidden]{display:none}.shell-toolbar{grid-column:1 / -1;position:sticky;top:0;z-index:18;height:var(--toolbar-h);display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-chip)}.toolbar-title{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-presets,.toolbar-toggles{flex:none;display:flex;gap:var(--s-1)}.toolbar-toggles{padding:3px;border-radius:var(--radius);background:var(--surface-2)}.tb-preset,.tb-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 var(--s-3);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap}.tb-preset{border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}.tb-preset:hover{background:var(--surface-2);color:var(--ink)}.tb-preset[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:var(--fw-semibold)}.tb-toggle{min-height:30px;border:0;background:transparent;color:var(--ink-2)}.tb-toggle:hover{color:var(--ink)}.tb-toggle[aria-pressed=true]{background:var(--surface);color:var(--accent);font-weight:var(--fw-semibold);box-shadow:var(--shadow-chip)}.tb-toggle[aria-disabled=true]{opacity:.45;cursor:not-allowed}.tb-ico{width:10px;height:10px;border-radius:2px;box-shadow:inset 0 0 0 1.5px currentColor}.tb-toggle[aria-pressed=true] .tb-ico{background:currentColor}.split-col{position:sticky;top:var(--toolbar-h);z-index:5;width:0;height:calc(100vh - var(--toolbar-h));height:calc(100dvh - var(--toolbar-h))}.splitter{position:absolute;top:0;bottom:0;left:-6px;width:12px;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.splitter:before{content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;background:transparent;transition:background-color var(--dur)}.splitter:hover:before,.splitter:focus-visible:before,.splitter.dragging:before{background:var(--accent)}.splitter:focus-visible{outline:none}.splitter-grip{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:36px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-float);color:var(--ink-3);font-size:var(--fs-xs);line-height:1;opacity:0;transition:opacity var(--dur)}.splitter:hover .splitter-grip,.splitter.dragging .splitter-grip{opacity:1}.splitter:focus-visible .splitter-grip{opacity:1;box-shadow:0 0 0 2px var(--accent),var(--shadow-float)}:root:has(.splitter.dragging),:root:has(.splitter.dragging) *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.shell-edge{position:sticky;top:var(--toolbar-h);height:calc(100vh - var(--toolbar-h));height:calc(100dvh - var(--toolbar-h));display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line)}.edge-tabs{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2)}.edge-tab{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);width:calc(var(--edge-w) - var(--s-1));min-height:96px;padding:var(--s-2) 0;border:0;border-radius:12px 0 0 12px;background:var(--surface);box-shadow:var(--shadow-float);color:var(--ink-2);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.edge-tab:hover{background:var(--accent-soft);color:var(--accent)}.edge-tab-label{writing-mode:vertical-rl;white-space:nowrap}.panel-map{position:relative}.plan-card{position:absolute;top:var(--s-3);left:var(--s-3);z-index:3;width:min(260px,calc(100% - 2 * var(--s-3)));max-height:calc(100% - 2 * var(--s-3));overflow-y:auto;overscroll-behavior:contain;padding:var(--s-3);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card-float)}.plan-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2);font-size:var(--fs-sm)}.plan-card-hide,.plan-card-show{min-height:32px;padding:0 var(--s-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-3);font-size:var(--fs-xs)}.plan-card-hide:hover{background:var(--surface-2);color:var(--ink)}.plan-card-show{position:absolute;top:var(--s-3);left:var(--s-3);z-index:3;min-height:36px;padding:0 var(--s-3);background:var(--surface);color:var(--ink-2);font-weight:var(--fw-medium);box-shadow:var(--shadow-card-float);border-radius:var(--radius-pill)}.plan-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.plan-card-list li{display:flex;align-items:center;gap:var(--s-2);padding:6px var(--s-2);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-sm);line-height:var(--lh-tight)}.plan-card-no{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.plan-card-no[aria-hidden=true]{background:var(--line);color:var(--ink-3)}.plan-card-time{flex:none;color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.panel-actions{display:flex;align-items:center;gap:var(--s-1)}.shell.full-map .shell-panel{border-left:0}@media (pointer: coarse){:root{--toolbar-h: 60px}.tb-preset,.tb-toggle,.plan-card-hide,.plan-card-show{min-height:var(--tap)}.edge-tab{width:var(--edge-w)}.splitter{left:-12px;width:24px}.splitter:before{left:11px}.splitter-grip{opacity:1;width:20px;height:var(--tap)}}}@media (min-width: 1024px){.side-rail{position:sticky;top:var(--toolbar-h);height:calc(100vh - var(--toolbar-h));height:calc(100dvh - var(--toolbar-h));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-3) 0;background:var(--surface);border-right:1px solid var(--line)}.rail-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.rail-day{border:1px solid transparent;border-radius:var(--radius);transition:border-color var(--dur),background-color var(--dur),opacity var(--dur)}.rail-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-decoration:none;font-variant-numeric:tabular-nums}.rail-btn:hover{background:var(--accent-soft);color:var(--accent)}.rail-expand{background:transparent;color:var(--ink-3);font-size:var(--fs-lg)}.rail-btn[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}.rail-btn{position:relative}.rail-day.today .rail-btn:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--ok-ink)}.rail-day.lit{border-color:var(--accent);border-style:dashed}.rail-day.over{border-style:solid;background:var(--accent-soft)}.rail-day.dim{opacity:.45}.app:has(>.shell-desktop.has-rail) .toasts{left:calc(var(--rail-w) + var(--s-6))}@media (pointer: coarse){.rail-btn{width:var(--tap);height:var(--tap)}}}
