:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f3ee;--surface:#fffef9;--text:#191917;--muted:#72716b;--line:#deddd5;--accent:#191917;--radius:20px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#11110f;--surface:#1b1b18;--text:#f5f5f1;--muted:#a5a59e;--line:#30302b;--accent:#f5f5f1}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f3ee;--surface:#fffef9;--text:#191917;--muted:#72716b;--line:#deddd5;--accent:#191917}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#11110f;--surface:#1b1b18;--text:#f5f5f1;--muted:#a5a59e;--line:#30302b;--accent:#f5f5f1}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,input,select{font:inherit}button{min-height:44px}.app-shell{width:min(100%,480px);min-height:100dvh;padding:max(22px, env(safe-area-inset-top)) 20px max(88px, calc(68px + env(safe-area-inset-bottom)));margin:0 auto}.app-header{padding-top:10px}.app-header h1{letter-spacing:-.06em;margin:0;font-size:clamp(2.4rem,12vw,3.6rem);line-height:.95}.eyebrow{color:var(--muted);letter-spacing:.16em;margin:0 0 8px;font-size:.84rem}.page-placeholder{min-height:54dvh;color:var(--muted);text-align:center;place-items:center;display:grid}.loading-state{background:var(--bg);min-height:100dvh;color:var(--muted);text-align:center;place-items:center;padding:24px;display:grid}.error-state{color:#a33b32}.tab-bar{z-index:10;width:min(100%,480px);padding:8px 16px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:50%;translate:-50%}.tab-bar button{color:var(--muted);background:0 0;border:0}.tab-bar button[aria-current=page]{color:var(--text);font-weight:650}h2,h3,p{margin-top:0}h2{letter-spacing:-.025em;margin-bottom:0;font-size:1.45rem}.page-stack{gap:28px;padding-top:30px;display:grid}.section-block{gap:14px;display:grid}.section-heading,.page-action-row,.sheet-header,.inline-actions,.sheet-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-kicker{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:700}.empty-copy,.list-card p,.route-card p,.trip-card p,.empty-card p,.page-placeholder p{color:var(--muted);margin:4px 0 0;font-size:.9rem;line-height:1.45}.item-list,.trip-list{gap:10px;display:grid}.list-card,.route-card,.trip-card,.empty-card,.compact-settings{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.list-card{justify-content:space-between;align-items:center;gap:14px;padding:15px 16px;display:flex}.route-card,.trip-card,.empty-card,.compact-settings{padding:18px}.route-row{text-align:center;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:center;gap:8px;display:grid}.route-row strong:first-child{text-align:right}.route-row strong:last-child{text-align:left}.route-card>p{text-align:center;margin-top:10px}.primary-button,.secondary-button,.text-button,.quiet-danger,.swap-button{cursor:pointer;border:0}.primary-button,.secondary-button{border-radius:13px;padding:0 16px;font-weight:700}.primary-button{background:var(--accent);min-height:50px;color:var(--bg)}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.compact-button{min-height:44px}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.42}.text-button,.quiet-danger{min-height:44px;color:var(--text);background:0 0;padding:0 4px}.quiet-danger{color:#a33b32}.swap-button{background:color-mix(in srgb, var(--text) 8%, transparent);width:44px;height:44px;color:var(--text);border-radius:50%;font-size:1.4rem}.save-error,.form-status{background:color-mix(in srgb, #a33b32 12%, var(--surface));color:#a33b32;border-radius:12px}.save-error{margin:18px 0 0;padding:10px 12px}.bottom-sheet{width:min(100%,480px);max-height:90dvh;padding:20px 20px max(20px, env(safe-area-inset-bottom));background:var(--surface);color:var(--text);border:0;border-radius:26px 26px 0 0;margin:auto auto 0}.bottom-sheet::backdrop{background:#0000005c}.sheet-header{margin-bottom:20px}.sheet-header h2{margin:0}.sheet-close-button{appearance:none;background:color-mix(in srgb, var(--text) 7%, var(--surface));width:38px;height:38px;min-height:38px;color:var(--text);cursor:pointer;border:0;border-radius:50%;outline:0;flex:0 0 38px;place-items:center;padding:0 0 2px;font:400 30px/1 Arial,sans-serif;display:grid}.sheet-close-button:focus-visible{box-shadow:0 0 0 2px var(--text)}.sheet-body,.form-stack{gap:16px;display:grid}.field-label{min-width:0;color:var(--muted);gap:7px;font-size:.82rem;font-weight:650;display:grid}.field-label input,.field-label select{border:1px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--text);border-radius:12px;outline:none;padding:0 12px;font-size:1rem}.field-label input:focus,.field-label select:focus{border-color:var(--text)}.trip-time-field{gap:12px;display:grid}.trip-time-mode{border:1px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--muted);font:inherit;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:18px;padding:4px 12px;display:flex}.trip-time-mode span{font-size:1rem;font-weight:650;line-height:1;display:inline-block}.trip-time-mode span.active{color:var(--text);transform-origin:50%;font-weight:780;transform:scale(1.25)}.trip-time-mode .trip-time-separator{color:var(--muted);font-size:1rem;font-weight:500}.trip-time-input{border:1px solid var(--line);background:var(--bg);border-radius:12px;min-height:48px;position:relative}.trip-time-display{color:var(--muted);white-space:nowrap;pointer-events:none;font-size:1rem;position:absolute;top:50%;left:12px;right:48px;overflow:hidden;transform:translateY(-50%)}.trip-time-input.has-value .trip-time-display{color:var(--text)}.trip-time-calendar-icon{fill:none;width:20px;height:20px;stroke:var(--text);stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.trip-time-input input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.trip-time-input:focus-within{border-color:var(--text)}.search-row,.route-form-row{align-items:end;gap:10px;display:flex}.grow{flex:1}.choice-list{gap:8px;max-height:180px;display:grid;overflow:auto}.choice{border:1px solid var(--line);background:var(--bg);min-height:48px;color:var(--text);text-align:left;border-radius:12px;padding:10px 12px}.choice.selected{border-color:var(--text)}.choice-checkmark{color:var(--text);margin-left:6px}.choice-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.choice-title>span,.choice-address{color:var(--muted);font-size:.78rem}.choice-address{margin-top:4px;display:block}.search-proximity{color:var(--muted);margin:-2px 0 0;font-size:.78rem}.sheet-actions>*{flex:1}.form-status{margin:0;padding:10px 12px;font-size:.88rem}.form-swap{flex:0 0 44px;margin-bottom:2px}.two-columns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.empty-card{text-align:center;align-content:center;min-height:150px;display:grid}.empty-card-link{border:1px solid var(--line);width:100%;font:inherit;color:inherit;cursor:pointer;text-decoration:none}.quick-place-field{gap:8px;display:grid}.selected-place-hint,.field-status,.field-helper{color:var(--muted);margin:0;font-size:.78rem;line-height:1.4}.duration-input{display:block;position:relative}.duration-input input{padding-right:54px}.duration-input>span{color:var(--muted);font-weight:500;position:absolute;top:50%;right:14px;translate:0 -50%}.route-options{gap:10px;padding-top:2px;display:grid}.route-options-heading,.route-detail-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.route-options-heading h3,.route-detail-heading h4{color:var(--text);margin:0;font-size:.9rem}.route-options-heading span,.route-detail-heading span,.route-options-status{color:var(--muted);margin:0;font-size:.75rem}.route-option-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.route-option-card{border:1px solid var(--line);background:var(--bg);min-width:0;min-height:92px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;justify-items:center;gap:3px;padding:8px 2px;display:grid}.route-option-card.selected{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text);background:color-mix(in srgb, var(--text) 4%, var(--bg))}.route-option-card:disabled{cursor:default;opacity:.45}.route-option-icon{font-size:1.25rem;line-height:1}.route-option-card strong{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.7rem;overflow:hidden}.route-option-card>span:not(.route-option-icon),.route-option-card small{white-space:nowrap;font-size:.65rem;line-height:1.2}.route-option-card small{color:var(--muted)}.route-detail{border:1px solid var(--line);background:var(--bg);border-radius:14px;gap:10px;padding:12px;display:grid}.route-step-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.route-step-list li{grid-template-columns:26px minmax(0,1fr);gap:10px;min-height:52px;padding-bottom:10px;display:grid;position:relative}.route-step-list li:not(:last-child):after{background:var(--line);content:"";width:2px;position:absolute;top:24px;bottom:0;left:11px}.route-step-badge{z-index:1;box-sizing:border-box;background:var(--text);width:24px;height:24px;color:var(--surface);border-radius:50%;place-items:center;padding:0;font-size:.68rem;font-weight:750;line-height:1;display:grid;position:relative}.route-step-copy{align-content:start;gap:3px;min-width:0;display:grid}.route-step-copy strong{color:var(--text);font-size:.84rem}.route-step-copy span{color:var(--muted);font-size:.72rem}.auto-duration-hint{color:var(--text)}.trip-card h3{margin:18px 0 6px;font-size:1.28rem}.trip-time{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:.84rem;display:flex}.trip-time strong{color:var(--text)}.trip-place-row{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:center;gap:7px;display:grid}.trip-place-box{border:1px solid var(--line);background:var(--bg);min-width:0;min-height:68px;color:var(--text);text-align:left;cursor:pointer;border-radius:14px;gap:5px;padding:10px;display:grid}.trip-place-box small{color:var(--muted);font-size:.7rem}.trip-place-box strong{overflow-wrap:anywhere;line-height:1.25}.trip-place-picker{background:var(--surface);border-radius:16px;gap:10px;padding:12px;display:grid}.trip-common-places{gap:8px;display:grid}.subdued-list{opacity:.75}.swipe-row{border-radius:var(--radius);outline:none;position:relative;overflow:hidden}.swipe-row:focus-visible{box-shadow:0 0 0 2px var(--text)}.swipe-row-content{z-index:1;touch-action:pan-y;transition:transform .16s ease-out;position:relative}.swipe-row.dragging .swipe-row-content{-webkit-user-select:none;user-select:none;transition:none}.swipe-delete-action{z-index:0;color:#fff;background:#b94942;border:0;width:88px;font-weight:750;position:absolute;top:0;bottom:0;right:0}@media (prefers-reduced-motion:no-preference){.bottom-sheet[open]{animation:.16s ease-out sheet-in}}@keyframes sheet-in{0%{opacity:0;translate:0 18px}}@media (width<=360px){.app-shell{padding-inline:15px}.route-form-row{gap:5px}}.hidden-tab-bar{display:none}.now-page{gap:16px;padding-top:22px;display:grid}.now-overview{justify-content:space-between;align-items:end;min-height:54px;display:flex}.now-overview strong{font-size:1.18rem}.now-overview p{color:var(--muted);margin:3px 0 0;font-size:.82rem}.overview-weather{text-align:right}.departure-card{color:#f8f7f2;background:#1b1b18;border-radius:26px;padding:24px;overflow:hidden}.departure-label{letter-spacing:.12em;color:#b7b6af;margin-bottom:4px;font-size:.78rem;font-weight:700}.departure-card time{font-variant-numeric:tabular-nums;letter-spacing:-.045em;margin-left:-.02em;font-size:clamp(4.3rem,23vw,6.6rem);font-weight:720;line-height:.95;display:block}.countdown{margin:10px 0 0;font-size:.95rem;font-weight:650}.countdown.late{color:#ffb6a7}.now-route-line{grid-template-columns:1fr minmax(40px,.65fr) 1fr;align-items:center;margin-top:28px;font-size:1.08rem;font-weight:700;display:grid}.now-route-line span:last-child{text-align:right}.route-rule{text-align:center;opacity:.55}.arrival-meta{opacity:.65;color:#b7b6af;margin:8px 0 0;font-size:.82rem}.departure-action{color:#191917;background:#f4f3ee;border:0;border-radius:15px;width:100%;min-height:52px;margin-top:22px;font-weight:750}.weather-actions,.packing-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:11px;padding:17px;display:grid}.weather-actions{--muted:#667369;--line:#cbd8ca;color:#191917;background:#e7efe6;border-color:#0000}.block-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.block-heading p{margin:0}.block-heading>span{color:var(--muted);font-size:.72rem}.weather-status{color:var(--muted);margin:0;font-size:.86rem}.advice-list{gap:8px;display:grid}.advice-list article{border-top:1px solid var(--line);grid-template-columns:82px 1fr;align-items:baseline;gap:10px;padding-top:10px;display:grid}.advice-list p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.4}.environment-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.environment-grid article{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:1fr auto;align-items:end;padding:14px;display:grid}.environment-grid p{color:var(--muted);grid-column:1/-1;margin:0 0 12px;font-size:.78rem}.environment-grid strong{font-size:2rem;line-height:1}.environment-grid span{color:var(--muted);font-size:.68rem}.packing-chips{flex-wrap:wrap;gap:8px;display:flex}.packing-chips span{background:var(--bg);border-radius:999px;padding:8px 11px;font-size:.8rem}.now-empty .primary-button{margin-top:20px}.push-invite,.push-settings{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:14px;padding:18px;display:grid}.push-invite>div,.push-invite>div>p,.push-recovery{color:var(--muted);margin:0;font-size:1rem;line-height:1.6}.push-invite>div{gap:12px;display:grid}.push-status-row{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.push-status-row>strong{color:var(--muted)}.push-schedule{background:var(--bg);border-radius:13px;gap:5px;padding:12px 13px;display:grid}.push-schedule p,.push-schedule strong{margin:0;font-size:.8rem;line-height:1.45}.push-schedule p{color:var(--muted)}.push-toggle-list{gap:12px;display:grid}.push-toggle-list label{align-items:center;gap:10px;min-height:44px;font-size:1rem;line-height:1.6;display:flex}.push-toggle-list input{width:20px;height:20px;accent-color:var(--text)}.prepare-page{flex-direction:column;min-height:calc(100dvh - 130px);padding-top:18px;display:flex}.prepare-back{align-self:start;margin-bottom:24px}.prepare-page h2{margin:0;font-size:2.5rem}.prepare-route{color:var(--muted);margin:7px 0 8px}.prepare-countdown{margin:0 0 26px;font-weight:700}.prepare-countdown.late{color:#a33b32}.check-list{gap:9px;display:grid}.check-item{border:1px solid var(--line);background:var(--surface);border-radius:16px;grid-template-columns:26px 1fr;align-items:center;gap:12px;min-height:66px;padding:10px 14px;display:grid}.check-item input{width:22px;height:22px;accent-color:var(--text)}.check-item span{gap:3px;display:grid}.check-item small{color:var(--muted)}.check-item.checked{opacity:.55}.check-item.checked strong{text-decoration:line-through}.depart-button{width:100%;margin-top:auto}.settings-action-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.file-button{cursor:pointer;place-items:center;min-height:44px;display:grid}.file-button input{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.import-preview{border-top:1px solid var(--line);gap:10px;padding-top:12px;display:grid}.import-preview p{color:var(--muted);margin:0;font-size:.84rem}.restore-button{justify-self:start}.theme-options{background:var(--bg);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;display:grid}.theme-options button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:11px}.theme-options button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:700;box-shadow:0 1px 4px #00000014}.packing-settings-list{-webkit-user-select:none;user-select:none;gap:8px;display:grid}.packing-help{color:var(--muted);margin:-4px 0 0;font-size:.78rem}.packing-setting-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:48px;display:flex}.packing-setting-item.dragging{z-index:1;background:var(--surface);border-radius:12px;padding-inline:8px;position:relative;box-shadow:0 8px 22px #0000001f}.packing-drag-placeholder{visibility:hidden}.packing-setting-item>label{align-items:center;gap:10px;display:flex}.packing-setting-item input{width:20px;height:20px;accent-color:var(--text)}.packing-item-actions{align-items:center;display:flex}.packing-setting-item button{min-width:38px;min-height:40px;color:var(--muted);background:0 0;border:0}.packing-setting-item button:disabled{opacity:.25}.packing-setting-item .packing-delete svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:21px;height:21px}.packing-setting-item .packing-drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.packing-drag-preview{z-index:30;pointer-events:none;background:var(--surface);will-change:transform;-webkit-user-select:none;user-select:none;border-radius:12px;margin:0;padding-inline:8px;position:fixed;box-shadow:0 10px 28px #00000029}.packing-drag-handle>span{gap:3px;width:22px;display:grid}.packing-drag-handle i{background:currentColor;border-radius:2px;height:2px;display:block}.update-prompt{z-index:20;left:50%;bottom:max(84px, calc(68px + env(safe-area-inset-bottom)));border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;width:min(100% - 28px,452px);padding:12px;display:grid;position:fixed;translate:-50%;box-shadow:0 12px 34px #0000002e}.update-prompt p{color:var(--muted);margin:3px 0 0;font-size:.72rem}.update-prompt .primary-button{min-height:44px}
