:root{color-scheme:light;--bg: #f4f7fb;--bg-alt: #eef2ff;--surface: rgba(255, 255, 255, .88);--surface-strong: #ffffff;--surface-dark: #0f172a;--text: #0f172a;--text-soft: #5b6475;--muted: #6b7280;--border: rgba(15, 23, 42, .1);--primary: #4f46e5;--primary-strong: #4338ca;--accent: #7c3aed;--accent-soft: rgba(124, 58, 237, .14);--shadow-lg: 0 28px 70px rgba(15, 23, 42, .1);--shadow-md: 0 18px 40px rgba(15, 23, 42, .08);--shadow-sm: 0 10px 24px rgba(15, 23, 42, .06);--radius-xl: 24px;--radius-lg: 18px;--radius-md: 14px;--radius-sm: 12px;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Manrope", "Aptos", "Segoe UI", sans-serif;--type-landmark: #4f46e5;--type-food: #c2410c;--type-nature: #0f766e;--type-museum: #7c3aed;--type-shopping: #b45309;font-family:var(--font-body)}[data-theme=dark]{color-scheme:dark;--bg: #07111f;--bg-alt: #0f172a;--surface: rgba(15, 23, 42, .82);--surface-strong: #111c31;--surface-dark: #0b1020;--text: #f8fafc;--text-soft: #c7d2fe;--muted: #94a3b8;--border: rgba(148, 163, 184, .16);--primary: #818cf8;--primary-strong: #6366f1;--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .16);--shadow-lg: 0 30px 72px rgba(0, 0, 0, .45);--shadow-md: 0 18px 42px rgba(0, 0, 0, .28);--shadow-sm: 0 10px 24px rgba(0, 0, 0, .2);--type-landmark: #818cf8;--type-food: #fb7185;--type-nature: #34d399;--type-museum: #c084fc;--type-shopping: #f59e0b}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(79,70,229,.16),transparent 34%),radial-gradient(circle at bottom right,rgba(124,58,237,.12),transparent 28%),linear-gradient(180deg,var(--bg),var(--bg-alt));color:var(--text);transition:background-color .2s ease,color .2s ease}*{box-sizing:border-box}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}::selection{background:#4f46e538}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{min-height:100vh}.app-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-strong) 82%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 1px #ffffff0f inset}.header-content,.app-main{width:min(1180px,calc(100% - 32px));margin:0 auto}.header-content{display:flex;align-items:center;gap:16px;padding:16px 0;flex-wrap:wrap}.logo{display:flex;align-items:center;gap:10px;min-width:fit-content;font-family:var(--font-heading);font-weight:800;letter-spacing:-.03em}.logo-icon{color:var(--primary);filter:drop-shadow(0 8px 16px rgba(79,70,229,.2))}.logo-text{font-size:1.08rem}.theme-toggle{border:1px solid var(--border);border-radius:999px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:var(--shadow-md)}.app-main{padding:28px 0 64px}.app-main>*{animation:fadeInUp .35s ease both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.status-panel,.itinerary,.empty-state,.welcome-screen,.day-block,.modal-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.status-panel{display:grid;place-items:center;text-align:center;gap:12px;padding:48px 20px;border-radius:var(--radius-xl)}.status-panel--error{color:var(--text)}.status-panel__title{font-size:1.1rem;font-weight:800;margin:0}.status-panel--error button{margin-top:10px;border:0;border-radius:999px;padding:10px 16px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:700;box-shadow:var(--shadow-sm)}.spinner{width:32px;height:32px;border:3px solid color-mix(in srgb,var(--primary) 18%,transparent);border-top-color:var(--primary);border-radius:50%;margin:0 auto 12px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.trip-form{display:flex;flex-direction:column;gap:12px}.trip-form textarea,.trip-form input,.basics-form input[type=text],.basics-form input[type=number],.basics-form textarea,.refine-form input{width:100%;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface-strong) 94%,transparent);color:var(--text);padding:12px 14px;box-shadow:inset 0 1px #ffffff80;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.trip-form textarea:focus,.trip-form input:focus,.basics-form input[type=text]:focus,.basics-form input[type=number]:focus,.basics-form textarea:focus,.refine-form input:focus{outline:none;border-color:color-mix(in srgb,var(--primary) 55%,var(--border));box-shadow:0 0 0 4px #4f46e51f}.trip-form button,.basics-submit,.welcome-screen button,.refine-form button,.modal-allow{border:0;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:700;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.trip-form button:hover,.basics-submit:hover,.welcome-screen button:hover,.refine-form button:hover,.modal-allow:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);filter:saturate(1.05)}.trip-form--compact{flex:1;flex-direction:row;min-width:260px}.trip-form--compact input{background:#ffffff1a;border-color:#fff3;color:#fff}[data-theme=light] .trip-form--compact input{background:#4f46e514;border-color:#4f46e529;color:var(--text)}.trip-form--compact input::placeholder{color:#ffffffb3}[data-theme=light] .trip-form--compact input::placeholder{color:#0f172a6b}.trip-form--compact button{padding-inline:14px}.intro-viewport{overflow:hidden;width:100vw;position:relative;left:50%;margin-left:-50vw}.intro-slider{display:flex;width:200%;transition:transform .5s ease}.intro-slider--advanced{transform:translate(-50%)}.intro-slide{width:50%;flex-shrink:0}.welcome-screen{position:relative;overflow:hidden;min-height:72vh;min-height:72dvh;padding:72px 20px;border-radius:0;border-left:0;border-right:0;text-align:center;display:flex;align-items:center;justify-content:center}.welcome-screen__content{position:relative;z-index:2;width:min(1100px,100%);display:grid;gap:28px;justify-items:center}.welcome-screen__icon{width:92px;height:92px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);box-shadow:var(--shadow-md)}.welcome-screen__hero{width:min(760px,100%);display:grid;justify-items:center;text-align:center}.welcome-screen__eyebrow{display:inline-flex;align-items:center;padding:6px 12px;margin:0 0 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--surface-strong));color:var(--primary);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.welcome-screen h1,.empty-state h1,.itinerary__title{font-family:var(--font-heading);letter-spacing:-.04em}.welcome-screen h1{font-size:clamp(2.3rem,6vw,4.4rem);line-height:.98;margin:0 0 16px;max-width:14ch}.welcome-screen__lede{margin:0 0 28px;color:var(--text-soft);font-size:1.05rem;line-height:1.65;max-width:62ch}.welcome-cta{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;box-shadow:0 18px 44px #4f46e547}.welcome-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,rgba(255,255,255,.34),transparent 42%,rgba(255,255,255,.08));opacity:0;transition:opacity .2s ease}.welcome-cta:hover:before{opacity:1}.welcome-cta:hover .welcome-cta__icon{transform:translate(3px)}.welcome-cta__icon{transition:transform .18s ease}.welcome-screen__features{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feature-card{position:relative;padding:20px;border-radius:22px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));background:color-mix(in srgb,var(--surface-strong) 66%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-sm);text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 36%,var(--border))}.feature-card__icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;margin-bottom:14px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 12px 24px #4f46e53d}.feature-card h2{margin:0 0 8px;font-size:1rem;font-weight:800}.feature-card p{margin:0;color:var(--text-soft);font-size:.95rem;line-height:1.6}.welcome-screen__blob{position:absolute;z-index:1;border-radius:50%;filter:blur(110px);pointer-events:none;will-change:transform}.welcome-screen__blob--navy{top:-80px;left:-70px;width:360px;height:300px;background:#4f46e53d;animation:blobFloat1 12s ease-in-out infinite}.welcome-screen__blob--amber{right:-40px;bottom:-90px;width:340px;height:280px;background:#7c3aed38;animation:blobFloat2 14s ease-in-out infinite}@keyframes blobFloat1{0%,to{transform:translate(0) scale(1)}35%{transform:translate(80px,40px) scale(1.06)}70%{transform:translate(40px,70px) scale(.96)}}@keyframes blobFloat2{0%,to{transform:translate(0) scale(1)}30%{transform:translate(-48px,-34px) scale(1.05)}75%{transform:translate(-88px,20px) scale(.95)}}.topo-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.topo-background path{stroke:color-mix(in srgb,var(--primary) 28%,transparent)}.empty-state{max-width:860px;margin:0 auto;padding:40px 28px;border-radius:var(--radius-xl)}.empty-state h1{margin:0 0 10px;font-size:clamp(1.9rem,3vw,2.6rem)}.empty-state__sub{margin:0 0 26px;color:var(--text-soft)}.basics-form{display:flex;flex-direction:column;gap:18px;text-align:left}.basics-form label{display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:700;color:var(--text)}.field-with-button{display:flex;gap:10px;align-items:center}.field-with-button--with-mic input,.field-with-button--textarea textarea{flex:1}.field-with-button--textarea{align-items:flex-start}.field-with-button input{flex:1}.locate-btn{width:46px;height:46px;flex:0 0 auto;border-radius:14px;border:1px solid var(--border);background:var(--surface-strong);color:var(--primary);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}.locate-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.mic-btn{width:46px;height:46px;flex:0 0 auto;border-radius:14px;border:1px solid var(--border);background:var(--surface-strong);color:var(--primary);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.mic-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 36%,var(--border))}.mic-btn--textarea{align-self:flex-start}.mic-btn--active{background:color-mix(in srgb,var(--primary) 14%,var(--surface-strong));border-color:color-mix(in srgb,var(--primary) 46%,var(--border));animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #4f46e53d,var(--shadow-sm)}50%{box-shadow:0 0 0 8px #4f46e500,var(--shadow-md)}}.template-pills{display:flex;flex-direction:column;gap:10px;padding-top:2px}.template-pills__label{font-size:.88rem;font-weight:700;color:var(--text-soft)}.template-pills__list{display:flex;flex-wrap:wrap;gap:10px}.template-pill{border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-radius:999px;padding:10px 14px;background:color-mix(in srgb,var(--primary) 8%,var(--surface-strong));color:var(--text);box-shadow:var(--shadow-sm)}.template-pill:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 44%,var(--border));box-shadow:var(--shadow-md)}.field-warning{margin:-8px 0 0;color:#b45309;font-size:.88rem;font-weight:600}.optional-tag,.duration-input span,.empty-state__sub,.status-panel p,.status-panel--error{color:var(--text-soft)}.transport-options{display:flex;flex-wrap:wrap;gap:10px}.transport-chip{border:1px solid var(--border);border-radius:999px;padding:10px 14px;background:color-mix(in srgb,var(--surface-strong) 92%,transparent);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.transport-chip:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}.transport-chip--selected{border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}.duration-input{display:flex;align-items:center;gap:10px}.duration-input input{width:92px}.basics-submit{align-self:flex-start;padding:12px 18px}.itinerary{border-radius:var(--radius-xl);padding:24px}.itinerary__header{display:flex;justify-content:flex-start;margin-bottom:14px}.back-button{border:1px solid var(--border);border-radius:999px;padding:10px 14px;background:var(--surface-strong);color:var(--text);font-weight:700;box-shadow:var(--shadow-sm);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.back-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow-md)}.fallback-banner{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-strong));color:var(--text);padding:12px 14px;margin-bottom:16px}.itinerary__title{font-size:clamp(1.9rem,3vw,2.6rem);margin:0 0 20px}.weather-caveat,.origin-chip,.travel-chip{color:var(--text-soft)}.origin-chip{display:inline-flex;align-items:center;gap:8px;margin:8px 0 14px;font-size:.92rem}.origin-chip__icon{color:var(--primary)}.day-block{border-radius:var(--radius-xl);padding:18px;margin-bottom:22px}.day-block__header{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}.day-block__header h2{margin:0;font-family:var(--font-heading);letter-spacing:-.03em;font-size:1.22rem}.day-block__links{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.day-block__map{overflow:hidden;border-radius:18px;border:1px solid var(--border);margin-bottom:14px;box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 10px;font-size:.72rem;line-height:1;white-space:nowrap}.badge--verified,.badge--unverified,.badge--warning,.badge--type{border:1px solid transparent}.badge--verified{background:#10b9811f;color:#059669;border-color:#10b98133}.badge--unverified,.badge--warning{background:#f59e0b24;color:#b45309;border-color:#f59e0b33}.badge--type{color:var(--type-color);background:color-mix(in srgb,var(--type-color) 12%,transparent);border-color:color-mix(in srgb,var(--type-color) 24%,transparent);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.link-out{display:inline-flex;align-items:center;gap:6px;color:var(--primary);text-decoration:none;font-weight:700}.link-out:hover{text-decoration:underline}.stop-list{list-style:none;margin:0;padding:0}.stop-card{display:flex;gap:12px;align-items:stretch}.stop-card+.stop-card{margin-top:6px}.stop-card--dragging{background:transparent}.stop-card--visited{opacity:.72}.stop-card__spine{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0}.stop-card__pin{width:26px;height:26px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:.72rem;box-shadow:var(--shadow-sm)}.stop-card__line{flex:1;width:0;min-height:18px;border-left:2px dashed color-mix(in srgb,var(--primary) 70%,transparent);margin-top:4px}.stop-card__content{flex:1;min-width:0;padding-bottom:16px}.stop-card__row{display:flex;align-items:center;gap:8px}.stop-card__handle{display:flex;align-items:center;padding:4px;color:var(--muted);cursor:grab;touch-action:none}.stop-card__handle:active{cursor:grabbing}.stop-card__checkbox{flex-shrink:0;width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.stop-card__main{flex:1;min-width:0;border:1px solid var(--border);border-radius:18px;background:var(--surface-strong);color:var(--text);padding:12px 14px;display:flex;flex-direction:column;gap:4px;text-align:left;box-shadow:var(--shadow-sm);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stop-card__main:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.stop-card__main--expanded{border-color:color-mix(in srgb,var(--primary) 55%,var(--border))}.stop-card__name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stop-card__name{font-weight:700}.stop-card__name--visited{text-decoration:line-through}.stop-card__duration{font-family:var(--mono);font-size:.78rem;color:var(--muted)}.stop-card__actions{display:flex;gap:4px;flex-shrink:0}.stop-card__actions button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface-strong);color:var(--text);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stop-card__actions button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow-sm)}.stop-card__remove{color:#c2410c!important}.stop-card__details{margin-top:8px;padding:12px 14px;border:1px dashed var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface-strong) 96%,transparent);font-size:.95rem}.stop-card__details p{margin-top:0}.stop-card__reason{color:var(--text-soft);font-style:italic;margin-bottom:10px}.stop-card__unverified-note{color:#b45309;font-size:.86rem}.travel-chip{margin:8px 0 0 4px;font-family:var(--mono);font-size:.76rem}.refine-form{display:flex;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.refine-form button{padding:0 18px;white-space:nowrap}.status-panel--loading{gap:16px}.loading-compass{width:88px;height:88px;position:relative}.loading-compass svg{position:absolute;top:0;right:0;bottom:0;left:0}.loading-step-text{margin:0;font-weight:700}.step-dots{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.step-dot{width:10px;height:10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 18%,transparent)}.step-dot--active,.step-dot--done{background:var(--primary)}.step-dashes{display:inline-flex;gap:2px;margin:0 6px}.step-dash{width:8px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--primary) 18%,transparent)}.step-dash--done{background:var(--primary)}.step-progress-track{width:min(320px,100%);height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--primary) 14%,transparent)}.step-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(135deg,var(--primary),var(--accent))}.step-count{margin:0;color:var(--text-soft);font-size:.92rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#0f172a8f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-card{position:relative;width:min(440px,100%);border-radius:24px;padding:28px 24px 24px;text-align:center}.modal-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:1px solid var(--border);border-radius:999px;background:var(--surface-strong);color:var(--text)}.modal-icon{width:68px;height:68px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.modal-card h3{margin:0 0 8px;font-size:1.3rem;font-family:var(--font-heading)}.modal-card p{margin:0 0 18px;color:var(--text-soft)}.modal-actions{display:flex;gap:10px;justify-content:center}.modal-dismiss{border:1px solid var(--border);border-radius:999px;padding:10px 16px;background:var(--surface-strong);color:var(--text);box-shadow:var(--shadow-sm)}.modal-allow{padding:10px 16px}@media(max-width:720px){.header-content,.app-main{width:min(100% - 20px,1180px)}.header-content{gap:12px}.trip-form--compact{order:3;flex-basis:100%}.theme-toggle{order:2;margin-left:auto}.empty-state,.itinerary,.status-panel{border-radius:20px}.day-block__header{align-items:flex-start}.day-block__links{margin-left:0}.stop-card__row{flex-wrap:wrap}.stop-card__name-row{flex-direction:column;align-items:flex-start}.refine-form,.modal-actions,.field-with-button{flex-direction:column}.locate-btn,.basics-submit,.refine-form button{width:100%}.transport-chip{padding-inline:12px}.welcome-screen{min-height:64vh;min-height:64dvh;padding:54px 16px}.welcome-screen__features{grid-template-columns:1fr}.welcome-screen h1{max-width:none}}
