@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");:root,[data-theme=dark]{--bg:#0c1116;--panel:#161c23;--border:#2a323c;--text:#eaf0f4;--muted:#93a1ad;--accent:#4fd1c5;--accent-dim:#38a89d;--warm:#f2b760;--error:#ff6b6b;--skeleton-base:#1d242c;--skeleton-shine:#2a323c}[data-theme=light]{--bg:#f4f7f8;--panel:#fff;--border:#dde3e7;--text:#1a2128;--muted:#6b7680;--accent:#1f9e93;--accent-dim:#17786f;--warm:#c9852b;--error:#d6473f;--skeleton-base:#e8ecee;--skeleton-shine:#f4f7f8}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}.wrap{max-width:880px;margin:0 auto;padding:48px 24px 80px}.top-row{justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.top-actions,.top-row{display:flex;align-items:center}.top-actions{gap:10px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0}.badge,.eyebrow{font-family:JetBrains Mono,monospace}.badge{font-size:11px;letter-spacing:.05em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 12px;white-space:nowrap}.badge-pro{color:var(--bg);background:var(--accent);border-color:var(--accent);font-weight:600}.theme-toggle{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.05em;background:transparent;border:1px solid var(--border);color:var(--muted);padding:5px 12px;border-radius:999px;cursor:pointer;transition:border-color .15s ease,color .15s ease;white-space:nowrap}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}h1{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:clamp(32px,5vw,48px);line-height:1.1;margin:0 0 12px;letter-spacing:-.01em}h1 span{color:var(--accent)}.sub{color:var(--muted);font-size:16px;line-height:1.6;margin:0 0 40px;max-width:600px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;margin-bottom:20px}label{display:flex;align-items:flex-end;font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;min-height:30px;line-height:1.4}input[type=number],input[type=text],select,textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:Inter,sans-serif;font-size:15px;padding:12px 14px;resize:vertical;transition:border-color .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.field-error{border-color:var(--error)!important}.field-error-text{margin:6px 0 0;font-size:12px;color:var(--error)}.field{margin-bottom:0}.field+.field,.row{margin-top:18px}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:600px){.row{grid-template-columns:1fr}}.budget-row{display:flex;gap:8px}.budget-row input{flex:1 1;min-width:0}.currency-toggle{display:flex;gap:6px;flex-shrink:0}.chip-sm{padding:8px 12px;font-size:12px}.seasonal-note{margin-top:18px;padding:14px 16px;background:var(--bg);border:1px solid var(--warm);border-radius:8px}.seasonal-note p{margin:0;font-size:13px;line-height:1.6;color:var(--text)}.seasonal-note p+p{margin-top:8px}.chip-group{display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:Inter,sans-serif;font-size:13px;background:var(--bg);border:1px solid var(--border);color:var(--muted);padding:8px 14px;border-radius:999px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip:hover{color:var(--text)}.chip.active,.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:var(--bg);font-weight:600}@media (max-width:480px){.chip{font-size:12px;padding:7px 12px}}button.generate{margin-top:24px;width:100%;background:var(--accent);color:var(--bg);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:16px;border:none;border-radius:8px;padding:16px 24px;cursor:pointer;transition:background .15s ease}button.generate:hover:not(:disabled){background:var(--accent-dim)}button.generate:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}@media (max-width:640px){button.generate{position:-webkit-sticky;position:sticky;bottom:12px;box-shadow:0 4px 20px rgba(0,0,0,.35);z-index:5}}.result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}.result-head h2{font-family:Space Grotesk,sans-serif;font-size:18px;margin:0}.result-actions{display:flex;gap:8px;flex-wrap:wrap}.map-embed{margin-bottom:20px;border-radius:10px;overflow:hidden;border:1px solid var(--border);height:260px}.map-embed iframe{width:100%;height:100%;border:0;display:block;filter:var(--map-filter,none)}[data-theme=dark] .map-embed iframe{filter:grayscale(.2) brightness(.85) contrast(1.05)}.disclaimer{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);line-height:1.6}.faq-panel{margin-top:0}.faq-title{font-family:Space Grotesk,sans-serif;font-size:18px;margin:0 0 16px}.faq-item{border-top:1px solid var(--border)}.faq-item:last-child{border-bottom:1px solid var(--border)}.faq-question{width:100%;background:transparent;border:none;color:var(--text);font-family:Inter,sans-serif;font-size:15px;font-weight:500;text-align:left;padding:16px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px}.faq-icon,.faq-question:hover{color:var(--accent)}.faq-icon{font-family:JetBrains Mono,monospace;font-size:18px;flex-shrink:0}.faq-answer{margin:0 0 16px;font-size:14px;line-height:1.6;color:var(--muted)}.saved-trips-list{display:flex;flex-direction:column;gap:8px}.saved-trip-item{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.saved-trip-info{flex:1 1;display:flex;justify-content:space-between;align-items:center;gap:12px;background:transparent;border:none;color:var(--text);font-family:Inter,sans-serif;text-align:left;padding:12px 14px;cursor:pointer}.saved-trip-info:hover{background:var(--bg)}.saved-trip-title{font-size:14px;font-weight:500}.saved-trip-date{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted);white-space:nowrap}.saved-trip-delete{background:transparent;border:none;border-left:1px solid var(--border);color:var(--muted);font-size:18px;line-height:1;width:40px;height:100%;align-self:stretch;cursor:pointer;transition:color .15s ease,background .15s ease}.saved-trip-delete:hover{color:var(--error);background:var(--bg)}.skeleton-line{height:14px;border-radius:6px;margin-bottom:12px;background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-title{height:18px;width:40%;margin-top:8px}.skeleton-short{width:60%;margin-bottom:24px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}.wrap{max-width:100%;padding:0}.panel{background:#fff;border:none;padding:0}.itinerary-text,.itinerary-text strong{color:#000}.disclaimer{color:#555}}.copy-btn{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.05em;background:transparent;border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:6px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.copy-btn:hover{border-color:var(--accent);color:var(--accent)}.itinerary-text{font-size:15px;line-height:1.7;white-space:pre-wrap;color:var(--text)}.itinerary-text strong{color:var(--accent)}.cta-box{margin-top:24px;padding:20px;background:var(--bg);border:1px solid var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.cta-box p{margin:0;font-size:14px;color:var(--text);line-height:1.5}.cta-box strong{color:var(--warm)}.cta-btn{display:inline-block;background:var(--warm);color:var(--bg);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;text-decoration:none;border-radius:8px;padding:10px 18px;white-space:nowrap;transition:opacity .15s ease}[data-theme=light] .cta-btn{color:#fff}.cta-btn:hover{opacity:.85}.error{color:var(--error);font-size:14px}.error,.error-box{margin-top:12px}.upgrade-btn{display:inline-block;margin-top:10px;background:var(--accent);color:var(--bg);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;text-decoration:none;border-radius:8px;padding:10px 18px;transition:background .15s ease}.upgrade-btn:hover{background:var(--accent-dim)}.license-toggle{margin-top:16px}.link-btn{background:transparent;border:none;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.05em;text-decoration:underline;cursor:pointer;padding:0}.link-btn:hover{color:var(--accent)}.license-row{display:flex;gap:10px;align-items:stretch}.license-row input{flex:1 1}.license-row .link-btn{flex-shrink:0;text-decoration:none;border:1px solid var(--border);border-radius:8px;padding:0 16px;display:flex;align-items:center}.license-row .link-btn:hover{border-color:var(--accent)}.footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--border);color:var(--muted);font-size:13px;font-family:JetBrains Mono,monospace}.footer a{color:var(--accent);text-decoration:none}.footer a:hover{text-decoration:underline}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--bg);border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:8px}@keyframes spin{to{transform:rotate(1turn)}}