:root{--font: "Nunito", ui-rounded, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--bg: #0c0a12;--bg-tint: #120f1a;--surface: #17141f;--surface-2: #201c2b;--surface-3: #2a2538;--glass: rgb(23 20 31 / .82);--text: #f6f2fb;--text-2: #cdc5da;--muted: #9b92ad;--border: #2a2538;--border-strong: #3a3449;--amber: #ffb347;--coral: #ff6b5a;--pink: #ff4d8d;--grad: linear-gradient(120deg, var(--amber), var(--coral) 50%, var(--pink));--brand: #ff7a59;--brand-2: #ff4d8d;--brand-ink: #1a0b0b;--brand-soft: rgb(255 122 89 / .14);--accent: #ffb347;--warn-bg: rgb(255 179 71 / .14);--warn-text: #ffc670;--danger: #ff5c7a;--ok: #4ade80;--ok-bg: rgb(74 222 128 / .13);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow: 0 2px 4px rgb(0 0 0 / .3), 0 12px 32px -12px rgb(0 0 0 / .7);--shadow-lg: 0 30px 60px -20px rgb(0 0 0 / .8);--glow: 0 0 0 1px rgb(255 122 89 / .35), 0 8px 30px -6px rgb(255 77 141 / .45);--radius-sm: 12px;--radius: 18px;--radius-lg: 24px;--topbar: 60px;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.15;margin:0 0 .4em;letter-spacing:-.02em}h1{font-size:2rem;font-weight:800}h2{font-size:1.3rem;font-weight:750}h3{font-size:1.05rem;font-weight:700}p{margin:0 0 .75em}button{font:inherit;color:inherit}.icon{flex:none}.muted{color:var(--muted)}.small{font-size:.84rem}.nowrap{white-space:nowrap}.error{color:var(--danger)}.danger{color:var(--danger)!important}.center{display:grid;place-items:center;text-align:center;min-height:50vh;padding:24px 16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}::selection{background:var(--brand-soft)}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.app{min-height:100%;display:flex;flex-direction:column}.app-full{height:100%;overflow:hidden}.topbar{height:var(--topbar);flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.12rem;color:var(--text);letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2) 60%,var(--accent));box-shadow:var(--shadow-sm)}.topnav{display:flex;align-items:center;gap:6px}.main{flex:1;min-height:0}.page{max-width:1120px;margin:0 auto;padding:36px 20px 80px;animation:fade-up .35s var(--ease)}.page.narrow{max-width:680px}.section{margin-bottom:40px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.btn{font-family:var(--font);display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:650;font-size:.92rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .08s,box-shadow .15s,filter .15s}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--text);border-color:var(--text);color:var(--bg)}.btn-primary:hover{background:var(--text);filter:brightness(.92)}.btn-brand{background:var(--grad);border:0;color:var(--brand-ink);font-weight:800;box-shadow:0 8px 22px -8px #ff4d8d99}.btn-brand:hover{background:var(--grad);filter:brightness(1.08)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-soft{background:var(--surface-2);border-color:transparent}.btn-soft:hover{background:var(--surface-3)}.btn-sm{height:32px;padding:0 12px;font-size:.84rem}.btn-lg{height:52px;padding:0 26px;font-size:1.02rem}.btn-icon{width:34px;height:34px;padding:0;border-radius:50%}.btn-icon.btn-sm{width:28px;height:28px}.link{background:none;border:0;padding:0;color:var(--brand);cursor:pointer;font-weight:600}input,select,textarea{width:100%;height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;transition:border-color .15s,box-shadow .15s}textarea{height:auto;padding:10px 14px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}.btn:focus-visible,.chip:focus-visible,.tab:focus-visible,.stop:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input:disabled{opacity:.55}.inline-input{height:auto;border-color:transparent;background:transparent;padding:2px 8px;margin-left:-8px;border-radius:8px}.inline-input:hover{background:var(--surface-2)}.inline-input:focus{background:var(--surface)}.avatar{width:34px;height:34px;border-radius:50%;border:2px solid var(--surface);background:var(--brand-soft);color:var(--brand);display:inline-grid;place-items:center;overflow:hidden;font-weight:800;font-size:.85rem;cursor:pointer;padding:0;flex:none;box-shadow:var(--shadow-sm)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.small{width:26px;height:26px;font-size:.7rem;cursor:default}.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:.86rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s var(--ease)}.chip:hover{border-color:var(--text-2)}.chip.on{background:var(--grad);border-color:transparent;color:var(--brand-ink);font-weight:800}.chip .dot{width:8px;height:8px;border-radius:50%}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:650;background:var(--surface-2);color:var(--text-2)}.alert{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:var(--warn-text);font-size:.9rem}.hint{padding:12px 14px;border-radius:12px;background:var(--brand-soft);font-size:.9rem}.skeleton{border-radius:12px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.landing{position:relative;overflow:hidden}.landing:before{content:"";position:absolute;inset:-20% -10% auto;height:720px;z-index:-1;filter:blur(60px);opacity:.55;background:radial-gradient(40% 50% at 20% 30%,color-mix(in srgb,var(--brand-2) 55%,transparent),transparent),radial-gradient(35% 45% at 80% 20%,color-mix(in srgb,var(--accent) 45%,transparent),transparent),radial-gradient(30% 40% at 60% 70%,color-mix(in srgb,#8b5cf6 30%,transparent),transparent)}.hero{max-width:760px;margin:0 auto;padding:88px 20px 40px;text-align:center;animation:fade-up .5s var(--ease)}.hero h1{font-size:clamp(2.4rem,7vw,4.2rem);line-height:1.02;letter-spacing:-.04em}.hero h1 em{font-style:normal;background:linear-gradient(120deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.lead{font-size:1.15rem;color:var(--text-2);max-width:560px;margin:18px auto 30px}.signin-box{display:grid;gap:14px;justify-items:center}.btn-google{height:54px;padding:0 28px;font-size:1.02rem}.dev-login{display:flex;gap:8px;width:100%;max-width:420px}.features{max-width:1040px;margin:40px auto 80px;padding:0 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.feature{padding:22px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.feature-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);margin-bottom:14px}.feature p{color:var(--text-2);margin:0;font-size:.93rem}.home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}.home-head h1{margin:0}.trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.trip-card{display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);color:var(--text);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.trip-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);text-decoration:none}.cover{position:relative;height:128px;display:flex;align-items:flex-end;padding:14px 16px;color:#fff;overflow:hidden}.cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 30%,rgb(0 0 0 / .35))}.cover-emoji{position:absolute;right:12px;top:6px;font-size:3.4rem;opacity:.9;filter:drop-shadow(0 4px 8px rgb(0 0 0 / .2))}.cover-dest{position:relative;z-index:1;font-weight:800;font-size:1.15rem;letter-spacing:-.02em;text-shadow:0 1px 8px rgb(0 0 0 / .25)}.trip-card-body{padding:14px 16px 16px;display:grid;gap:6px}.trip-card-title{font-weight:700}.trip-card-meta{display:flex;gap:6px;flex-wrap:wrap}.new-card{display:grid;place-items:center;min-height:230px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--muted);font-weight:700;gap:8px;transition:all .2s}.new-card:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);text-decoration:none}.empty{text-align:center;padding:72px 20px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.empty-emoji{font-size:3rem;margin-bottom:8px}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px;display:grid;gap:22px;margin-top:22px}.field{display:grid;gap:8px}.field-label{font-weight:700;font-size:.9rem;display:flex;justify-content:space-between;gap:8px}.field-label .muted{font-weight:500}.big-input{height:58px;font-size:1.12rem;font-weight:600;padding-left:46px}.input-wrap{position:relative}.input-wrap .icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stepper{display:flex;align-items:center;height:46px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}.stepper button{width:44px;height:100%;border:0;background:none;font-size:1.2rem;cursor:pointer;color:var(--text-2)}.stepper button:hover{color:var(--text)}.stepper button:disabled{opacity:.3}.stepper output{flex:1;text-align:center;font-weight:700}.segmented{display:flex;padding:4px;gap:4px;border-radius:12px;background:var(--surface-2);height:46px}.segmented button{flex:1;border:0;border-radius:9px;background:none;cursor:pointer;font-weight:650;font-size:.86rem;color:var(--text-2)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.toggle{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface-2);cursor:pointer;font-weight:600}.toggle input{width:20px;height:20px;accent-color:var(--brand)}.chips{display:flex;flex-wrap:wrap;gap:8px}.city-row{display:grid;grid-template-columns:1fr 130px 34px;gap:8px;align-items:center}.planning{display:grid;place-items:center;min-height:calc(100vh - var(--topbar));padding:24px}.planning-card{width:100%;max-width:440px;text-align:center;animation:fade-up .4s var(--ease)}.globe{font-size:3.4rem;display:inline-block;animation:spin 6s linear infinite;margin-bottom:10px}.steps{list-style:none;padding:0;margin:24px 0 0;text-align:left;display:grid;gap:10px}.steps li{display:flex;gap:10px;align-items:center;color:var(--muted);transition:color .3s}.steps li.done{color:var(--text-2)}.steps li.now{color:var(--text);font-weight:700}.step-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);flex:none}.steps li.done .step-dot{background:var(--brand);color:var(--brand-ink)}.steps li.now .step-dot{background:var(--text);color:var(--bg)}.trip{position:relative;height:calc(100vh - var(--topbar));height:calc(100dvh - var(--topbar));overflow:hidden}.trip-map{position:absolute;top:0;right:0;bottom:0;left:0;background:#0e0c14}.trip-map .map{position:absolute;top:0;right:0;bottom:0;left:0}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted)}.maplibregl-ctrl-group{background:var(--glass)!important;border-radius:14px!important;box-shadow:var(--shadow)!important}.maplibregl-ctrl-group button+button{border-top-color:var(--border)!important}.maplibregl-ctrl-icon{filter:invert(1) opacity(.85)}.maplibregl-ctrl-attrib{background:#0c0a1299!important;color:var(--muted)!important}.maplibregl-ctrl-attrib a{color:var(--muted)!important}.day-filter{position:absolute;z-index:3;top:16px;left:476px;right:64px;display:flex;gap:6px;overflow-x:auto;padding:2px;scrollbar-width:none}.day-filter .chip{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:transparent;box-shadow:var(--shadow)}.day-filter .chip.on{background:var(--grad)}.panel{position:absolute;z-index:4;top:16px;bottom:16px;left:16px;width:444px;display:flex;flex-direction:column;background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border:1px solid rgb(255 255 255 / .06);border-radius:28px;box-shadow:var(--shadow-lg);overflow:hidden}.sheet-handle{display:none}.panel-head{padding:18px 20px 14px}.eyebrow{font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.trip-title{font-size:1.55rem;font-weight:900;letter-spacing:-.02em;width:100%;color:var(--text);margin:2px 0 8px;line-height:1.15}input.trip-title{height:auto;padding:2px 8px;margin-left:-8px}.trip-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.save-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}.save-dot.saving,.save-dot.unsaved{background:var(--amber)}.trip-summary{margin:10px 0 0;font-size:.88rem;color:var(--text-2)}.trip-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px 12px;border-bottom:1px solid var(--border)}.tabs{display:flex;gap:2px;padding:4px;border-radius:999px;background:var(--surface-2);min-width:0;overflow-x:auto;scrollbar-width:none}.tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:0;border-radius:999px;background:none;font:inherit;font-weight:800;font-size:.85rem;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .15s}.tab:hover{color:var(--text)}.tab.on{background:var(--grad);color:var(--brand-ink)}.tools{display:flex;gap:0;margin:-8px -8px -8px 0}.head-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.trip-bar .tabs{flex:1;justify-content:space-between}.panel-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}.trip-content{padding:14px 14px 40px;animation:fade-up .25s var(--ease)}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.tile{background:var(--surface-2);border-radius:14px;padding:8px 10px;min-width:0}.tile small{display:block;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.tile b{display:block;font-size:1.12rem;font-weight:900;letter-spacing:-.01em;white-space:nowrap;background:var(--g, var(--grad));-webkit-background-clip:text;background-clip:text;color:transparent}.map-pin{width:32px;height:38px;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:start center}.map-pin i{width:30px;height:30px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);border:2.5px solid #0c0a12;color:#0c0a12;box-shadow:0 0 0 1px #ffffff26,0 0 18px var(--pin-glow, rgb(255 122 89 / .6));display:grid;place-items:center;transition:transform .15s var(--ease)}.map-pin span{transform:rotate(45deg);font-weight:900;font-size:.8rem;font-style:normal}.map-pin:hover i,.map-pin.focus i{transform:rotate(-45deg) scale(1.25)}.map-pin.focus{z-index:5}.map-bk{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;font-size:17px;background:var(--surface);border:2px solid var(--amber);box-shadow:0 0 18px #ffb34780;cursor:default}.days{display:grid;gap:14px}.city-head{display:flex;align-items:center;gap:10px;margin:8px 4px 0}.city-head h2{margin:0;font-size:1.15rem;font-weight:900}.transfer{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border-strong)}.transfer-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--amber);flex:none}.transfer-body{flex:1;min-width:0}.day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px}.day-head{display:flex;align-items:flex-start;gap:12px}.day-badge{width:44px;height:44px;border-radius:14px;color:#0c0a12;display:grid;place-items:center;flex:none;font-weight:900;line-height:1;text-align:center;box-shadow:0 0 20px -4px var(--dc)}.day-badge small{display:block;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;opacity:.75;margin-bottom:2px}.day-title{flex:1;min-width:0}.day-date{font-size:.78rem;color:var(--muted);font-weight:800}.day-name{font-weight:900;font-size:1.02rem}.day-title .inline-input{font-weight:900;font-size:1.02rem;width:100%}.day-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.weather{font-size:.86rem;font-weight:900;white-space:nowrap}.day-stats{font-size:.76rem;color:var(--muted);font-weight:700}.events{display:grid;gap:6px;margin-top:10px}.event{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface-2);font-size:.84rem;font-weight:700;color:var(--text-2)}.event .ic{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:#ffb34726;flex:none}.event.warn{background:var(--warn-bg);color:var(--warn-text)}.optimize-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0 0;padding:8px 8px 8px 12px;border-radius:14px;background:var(--brand-soft);font-size:.85rem;font-weight:800;color:var(--text)}.stops{list-style:none;margin:12px 0 0;padding:0;min-height:30px;position:relative}.empty-day{padding:18px;border:1.5px dashed var(--border-strong);border-radius:14px;text-align:center}.leg{display:flex;align-items:center;gap:6px;padding:6px 0 6px 16px;margin-left:13px;border-left:2px dotted var(--border-strong);font-size:.76rem;color:var(--muted);font-weight:700}.leg.from-base{margin-top:0}.stop{display:flex;gap:12px;padding:10px;margin:0 -4px;border-radius:16px;cursor:pointer;touch-action:manipulation;transition:background .15s;position:relative}.stop:hover{background:var(--surface-2)}.stop.focused{background:var(--brand-soft);box-shadow:inset 0 0 0 1px #ff7a5959}.stop.dragging{background:var(--surface-2);box-shadow:var(--shadow-lg);font-weight:800;cursor:grabbing}.stop-num{width:28px;height:28px;border-radius:10px;color:#0c0a12;display:grid;place-items:center;font-weight:900;font-size:.8rem;flex:none;cursor:grab;touch-action:none}.stop-body{flex:1;min-width:0}.stop-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.stop-name{font-weight:800}.stop-time{font-size:.8rem;color:var(--amber);font-weight:900;white-space:nowrap;font-variant-numeric:tabular-nums}.stop-desc{font-size:.85rem;color:var(--text-2);margin:3px 0 0}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:800;padding:3px 9px;border-radius:8px;background:var(--surface-3);color:var(--text-2)}.badge-warn{background:var(--warn-bg);color:var(--warn-text)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-bad{background:#ff5c7a26;color:var(--danger)}.exception{font-size:.8rem;color:var(--warn-text);margin-top:5px;display:flex;gap:5px}.note{margin-top:8px;padding:8px 10px;border-radius:12px;background:#ffb34714;border-left:3px solid var(--amber);font-size:.84rem;color:var(--text-2);white-space:pre-wrap}.note-edit{width:100%;min-height:64px;font-size:.86rem;border-radius:12px;margin-top:8px}.stop-actions{display:flex;gap:2px;align-items:center;margin-top:6px;flex-wrap:wrap}.stop-actions select{width:auto;height:28px;padding:0 8px;font-size:.78rem;border-radius:999px;background:var(--surface-2);border-color:transparent}.stop-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;padding:12px;border-radius:14px;background:var(--surface-2);font-size:.8rem;font-weight:800}.stop-edit label{display:grid;gap:4px}.stop-edit .wide{grid-column:1 / -1}.stop-edit input{height:36px}.day-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.add-stop{margin-top:10px;display:grid;gap:8px}.results{list-style:none;margin:0;padding:4px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow)}.results:empty{display:none}.results button{display:flex;gap:8px;align-items:center;width:100%;text-align:left;padding:9px 10px;border-radius:10px;background:none;border:0;font-size:.88rem;cursor:pointer;color:var(--text)}.results button:hover{background:var(--surface-3)}.suggestions{margin-top:10px;padding:12px;border-radius:16px;background:linear-gradient(135deg,#ffb3471f,#ff4d8d1f);display:grid;gap:10px}.suggestion{display:flex;justify-content:space-between;align-items:center;gap:10px}.social{display:flex;gap:4px;align-items:center}.vote{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 9px;border-radius:999px;border:0;background:var(--surface-2);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;color:var(--text-2)}.vote:hover{background:var(--surface-3)}.vote.on.up{background:var(--ok-bg);color:var(--ok)}.vote.on.down{background:#ff5c7a26;color:var(--danger)}.comments{margin-top:8px;display:grid;gap:8px}.comment{display:flex;gap:8px;font-size:.84rem}.comment-body{background:var(--surface-2);padding:7px 11px;border-radius:4px 14px 14px;flex:1;min-width:0}.comment-who{font-weight:800;font-size:.76rem;display:flex;justify-content:space-between;gap:8px}.comment-form{display:flex;gap:6px}.comment-form input{height:34px;border-radius:999px;font-size:.85rem}.today-top{display:flex;gap:16px;align-items:center}.ring{position:relative;width:112px;height:112px;flex:none}.ring b{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;font-size:1.6rem;font-weight:900;line-height:1}.ring b small{display:block;font-size:.66rem;color:var(--muted);font-weight:800;margin-top:4px}.now-card{padding:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);display:grid;gap:8px}.now-card.next{border:0;padding:2px;background:var(--grad)}.now-card.next>.inner{background:#15121d;border-radius:22px;padding:16px;display:grid;gap:10px}.now-label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.now-name{font-size:1.3rem;font-weight:900;letter-spacing:-.01em}.eta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.eta div{background:var(--surface-2);border-radius:14px;padding:10px;text-align:center}.eta b{display:block;font-size:1.2rem;font-weight:900}.eta small{color:var(--muted);font-weight:900;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.eta .soon{color:var(--amber)}.today-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.today-list li{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--border);cursor:pointer}.today-list.done li{background:transparent;color:var(--muted);text-decoration:line-through;cursor:default}.bk-add{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bk-add button{display:grid;gap:4px;justify-items:center;padding:12px 6px;border-radius:16px;border:1px solid var(--border);background:var(--surface);font:inherit;font-weight:800;font-size:.82rem;color:var(--text);cursor:pointer}.bk-add button:hover{border-color:var(--brand)}.bk-add button span{font-size:1.4rem}.import{padding:14px;border-radius:var(--radius-lg);border:0;background:linear-gradient(135deg,#ffb34729,#ff4d8d29);display:grid;gap:4px;text-align:left;font:inherit;color:var(--text);cursor:pointer}.import b{font-weight:900}.import small{color:var(--text-2);font-size:.82rem}.bk{display:flex;gap:12px;padding:14px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.bk-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem;background:var(--surface-2);flex:none}.bk-body{flex:1;min-width:0;display:grid;gap:3px}.bk-title{font-weight:900}.bk-when{font-size:.85rem;color:var(--text-2);font-weight:700}.bk-route{display:flex;align-items:center;gap:10px;margin:4px 0}.bk-route b{font-size:1.35rem;font-weight:900;letter-spacing:.02em}.bk-route small{display:block;color:var(--muted);font-size:.72rem;font-weight:800}.bk-route .line{flex:1;height:2px;background:var(--grad);border-radius:2px;position:relative}.code{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:700;padding:3px 8px;border-radius:8px;background:var(--surface-3);color:var(--amber);cursor:pointer;border:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid label{display:grid;gap:4px;font-size:.8rem;font-weight:800;color:var(--text-2)}.form-grid .wide{grid-column:1 / -1}.form-grid input,.form-grid textarea{height:40px;font-size:.9rem}.form-grid textarea{height:auto;min-height:70px}.drop{border:1.5px dashed var(--border-strong);border-radius:16px;padding:16px;text-align:center;color:var(--muted);font-weight:700;cursor:pointer}.drop.has{border-color:var(--brand);color:var(--text)}.panel-body{display:grid;gap:14px}.card{padding:18px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.card.subtle{background:var(--surface-2)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.card-title{display:flex;align-items:center;gap:10px;font-weight:900;font-size:1.02rem}.card-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:none}.price{font-weight:900;white-space:nowrap;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.big-price{font-size:1.6rem;font-weight:900;letter-spacing:-.02em}.stay-area{display:flex;align-items:center;gap:6px;font-weight:800;margin-bottom:6px;color:var(--text-2)}.tips{margin:6px 0 12px;padding-left:20px;font-size:.9rem;color:var(--text-2)}.tips li{margin-bottom:4px}.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.section-title{margin:10px 0 0;font-size:1.05rem;font-weight:900}.share-rows{display:grid;gap:10px}.share-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border-radius:14px;background:var(--surface-2)}.share-actions{display:flex;gap:6px}.people{list-style:none;padding:0;margin:0;display:grid;gap:12px}.person{display:flex;align-items:center;gap:10px}.person-name{flex:1;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;z-index:50;animation:fade-up .2s}.modal{width:100%;max-width:520px;max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-lg);display:grid;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}@media(max-width:860px){.day-filter{left:12px;right:56px;top:12px}.panel{top:auto;left:0;right:0;bottom:0;width:auto;height:var(--sheet-h, 46%);border-radius:26px 26px 0 0;border-bottom:0;transition:height .28s var(--ease)}.panel.dragging{transition:none}.sheet-handle{display:block;padding:10px 0 4px;cursor:grab;touch-action:none}.sheet-handle:before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:var(--border-strong);margin:0 auto}.panel-head{padding:6px 16px 12px}.trip-title{font-size:1.3rem}.tiles{gap:5px}.tab:not(.on)>span{display:none}.tab{padding:0 10px}.topbar{padding:0 14px}.topnav .label{display:none}.hero{padding-top:56px}.grid-3{grid-template-columns:1fr 1fr}.grid-3>:last-child{grid-column:1 / -1}.form-card{padding:20px}}@media(max-width:420px){.grid-2,.form-grid{grid-template-columns:1fr}}@media print{:root{--text: #000;--text-2: #222;--muted: #555;--surface: #fff;--surface-2: #f3f3f3;--border: #ccc}body{background:#fff;color:#000}.topbar,.trip-map,.day-filter,.trip-bar,.sheet-handle,.stop-actions,.day-actions,.optimize-banner,.suggestions,.stop-edit,.social,.comment-form{display:none!important}.trip,.panel,.panel-scroll,.trip-content{position:static!important;height:auto!important;overflow:visible!important;display:block!important;width:auto!important;background:#fff!important;box-shadow:none!important;border:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.day{break-inside:avoid-page;margin-bottom:12px}.stop{break-inside:avoid}.tile b,.price,.grad-text{color:#000!important;-webkit-text-fill-color:#000}.stop-num,.day-badge{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
