@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--color-primary:#ff5a0a;--color-primary-hover:#e64e00;--color-primary-dark:#c43d00;--color-primary-soft:#ffe4d1;--color-accent:#1c1917;--color-accent-soft:#f1f0ec;--color-bg:#f8f7f4;--color-surface:#fff;--color-surface-muted:#f1f0ec;--color-border:#e5e2db;--color-border-strong:#d4d0c8;--color-text:#1c1917;--color-text-secondary:#57534e;--color-text-muted:#78716c;--color-danger:#dc2626;--color-danger-soft:#fee2e2;--color-success:#16a34a;--color-success-soft:#dcfce7;--color-warning:#d97706;--color-warning-soft:#fef3c7;--font-sans:"Plus Jakarta Sans", system-ui, sans-serif;--font-display:"Fraunces", Georgia, serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #1c19170d;--shadow-md:0 4px 12px #1c191714;--shadow-lg:0 12px 32px #1c19171a;--container:1120px;--header-height:72px;--transition:.16s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-text);font-weight:600;line-height:1.2}h1{font-size:clamp(2rem, 4vw, var(--text-5xl))}h2{font-size:clamp(1.5rem, 3vw, var(--text-3xl))}h3{font-size:var(--text-xl)}p{color:var(--color-text-secondary)}.container{width:min(100% - 2rem, var(--container));margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{font-size:var(--text-sm);padding:.45rem .85rem}.btn-md{font-size:var(--text-sm);padding:.7rem 1.15rem}.btn-lg{font-size:var(--text-base);padding:.9rem 1.4rem}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-ghost-light{color:#fff;background:#ffffff1f;border-color:#ffffff59}.btn-ghost-light:hover:not(:disabled){background:#ffffff38}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.w-full{width:100%}.mt-4{margin-top:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.field{flex-direction:column;gap:.4rem;display:flex}.field-label{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.field-control{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;transition:border-color var(--transition), box-shadow var(--transition);padding:.7rem .85rem}textarea.field-control{resize:vertical;min-height:96px}.field-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.field-control.has-error{border-color:var(--color-danger)}.field-error{color:var(--color-danger);font-size:var(--text-xs)}.field-hint{color:var(--color-text-muted);font-size:var(--text-xs)}.form-stack{gap:var(--space-4);flex-direction:column;display:flex}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.form-error{color:var(--color-danger);font-size:var(--text-sm)}.photo-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:180px;display:block}.photo-preview p{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.photo-preview-placeholder{justify-content:center;align-items:center;gap:var(--space-2);height:100px;color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.spinner-sm{border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.navbar{z-index:40;height:var(--header-height);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);background:#f8f7f4e6;position:sticky;top:0}.navbar-app{background:#ffffffeb}.navbar-inner{justify-content:space-between;align-items:center;gap:var(--space-4);height:100%;display:flex}.brand{align-items:center;gap:.65rem;font-size:1.1rem;font-weight:700;display:inline-flex}.brand-logo{width:auto;height:40px}.nav-links{align-items:center;gap:var(--space-5);display:flex}.nav-links a{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.nav-links a:hover,.nav-links a.active{color:var(--color-primary-dark)}.nav-actions{align-items:center;gap:var(--space-3);margin-left:var(--space-2);display:flex}.nav-user{font-size:var(--text-sm);color:var(--color-text-secondary)}.lang-switcher select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;padding:.3rem .5rem}.demo-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-full);padding:.25rem .55rem;font-size:.7rem;font-weight:700}.nav-toggle{cursor:pointer;color:var(--color-text);background:0 0;border:none;display:none}.hero{min-height:calc(100vh - var(--header-height));color:#fff;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-bg,.hero-overlay{position:absolute;inset:0}.hero-bg{background-position:50%;background-size:cover;transform:scale(1.02)}.hero-overlay{background:linear-gradient(#0f171640 0%,#0f17168c 45%,#0f1716d1 100%)}.hero-content{z-index:1;padding:var(--space-16) 0 var(--space-20);max-width:720px;position:relative}.hero-brand-logo{width:auto;height:48px;margin-bottom:var(--space-4);border-radius:var(--radius-md,10px);background:#fff;padding:.4rem .75rem}.hero h1{color:#fff;margin-bottom:var(--space-4)}.hero-sub{color:#ffffffe0;font-size:var(--text-lg);max-width:34rem;margin-bottom:var(--space-8)}.hero-cta{gap:var(--space-3);flex-wrap:wrap;display:flex}.section{padding:var(--space-20) 0}.section-muted{background:var(--color-surface-muted)}.section-header{max-width:560px;margin-bottom:var(--space-10)}.section-header h2{margin:var(--space-2) 0 var(--space-3)}.eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.steps-grid{gap:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.step-card{position:relative}.step-num{top:var(--space-4);right:var(--space-4);font-family:var(--font-display);color:var(--color-border-strong);font-size:var(--text-2xl);position:absolute}.step-icon{background:var(--color-primary-soft);width:44px;height:44px;color:var(--color-primary-dark);margin-bottom:var(--space-4);border-radius:12px;place-items:center;display:grid}.step-card h3{margin-bottom:var(--space-2)}.dest-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:180px;grid-auto-flow:dense;gap:var(--space-5);display:grid}.dest-card{border-radius:var(--radius-lg);min-height:240px;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.dest-card-rich{min-height:320px}.dest-card-portrait{grid-row:span 2}.dest-card-landscape{grid-row:span 1;min-height:180px}.dest-card img{object-fit:cover;width:100%;height:100%;min-height:240px;transition:transform .28s}.dest-card-rich img{min-height:320px}.dest-card-landscape img{min-height:180px}.dest-card:hover img{transform:scale(1.04)}.dest-overlay{padding:var(--space-5);color:#fff;background:linear-gradient(#0000,#000000b3);position:absolute;inset:auto 0 0}.dest-overlay-rich{background:linear-gradient(#0000,#000000d1)}.dest-overlay h3{color:#fff}.dest-overlay p{color:#ffffffd9;font-size:var(--text-sm)}.dest-famous{margin-top:var(--space-3);flex-wrap:wrap;gap:.4rem;display:flex}.dest-famous li{color:#fff;border-radius:var(--radius-full);background:#ffffff2e;border:1px solid #ffffff40;padding:.2rem .55rem;font-size:.7rem;font-weight:600}.cta-band{padding-top:0}.cta-band-inner{background:var(--color-primary-dark);color:#fff;border-radius:var(--radius-xl);padding:var(--space-10);justify-content:space-between;align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.cta-band-inner h2,.cta-band-inner p{color:#fff}.cta-band-inner p{opacity:.85;margin-top:var(--space-2)}.site-footer{border-top:1px solid var(--color-border);padding:var(--space-8) 0}.footer-inner{justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;display:flex}.footer-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.auth-page{min-height:calc(100vh - var(--header-height) - 120px);padding:var(--space-10) var(--space-4);place-items:center;display:grid}.auth-card{width:min(100%,440px)}.auth-card h1{margin-bottom:var(--space-2)}.auth-sub{margin-bottom:var(--space-6)}.auth-footer{margin-top:var(--space-6);text-align:center;font-size:var(--text-sm)}.auth-footer a,.text-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.info-banner{background:var(--color-primary-soft);color:var(--color-primary-dark);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-5)}.page{padding:var(--space-8) 0 var(--space-16)}.page.narrow{max-width:760px}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-header p{margin-top:var(--space-2)}.page-center{min-height:50vh;padding:var(--space-10);place-items:center;display:grid}.stats-grid{gap:var(--space-5);margin-bottom:var(--space-10);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat-card .stat-icon{background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary-dark);margin-bottom:var(--space-4);border-radius:10px;place-items:center;display:grid}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-value{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);font-weight:600}.section-block{margin-top:var(--space-8)}.section-row{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.section-row.wrap{flex-wrap:wrap}.section-row p{margin-top:.25rem}.trips-grid{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.trip-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.trip-card-media{height:160px;position:relative;overflow:hidden}.trip-card-media img{object-fit:cover;width:100%;height:100%;display:block}.trip-card-flag{border-radius:var(--radius-full);background:#ffffffeb;padding:.25rem .55rem;font-size:1rem;position:absolute;top:12px;left:12px}.trip-card-body{padding:var(--space-5);gap:var(--space-3);flex-direction:column;flex:1;display:flex}.trip-meta{font-size:var(--text-sm);color:var(--color-text-secondary);align-items:center;gap:.4rem;display:flex}.budget-mini-row{font-size:var(--text-sm);color:var(--color-text-secondary);justify-content:space-between;margin-bottom:.35rem;display:flex}.progress-bar{background:var(--color-surface-muted);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress-lg{height:12px}.progress-fill{background:var(--color-primary);border-radius:inherit;height:100%;transition:width .3s}.progress-danger{background:var(--color-danger)}.budget-card .budget-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.muted{color:var(--color-text-muted)}.trip-hero{color:#fff;background-position:50%;background-size:cover;min-height:280px;position:relative}.trip-hero-overlay{background:linear-gradient(#00000040,#000000b3);position:absolute;inset:0}.trip-hero-content{z-index:1;padding:var(--space-8) 0 var(--space-10);position:relative}.back-link{color:#ffffffd9;font-size:var(--text-sm);margin-bottom:var(--space-4);align-items:center;gap:.35rem;display:inline-flex}.trip-flag{color:#ffffffe6;margin-bottom:var(--space-2)}.trip-hero h1{color:#fff;margin-bottom:var(--space-3)}.trip-hero-meta{gap:var(--space-5);color:#ffffffe6;font-size:var(--text-sm);flex-wrap:wrap;display:flex}.trip-hero-meta span{align-items:center;gap:.4rem;display:inline-flex}.trip-body{z-index:2;margin-top:-2rem;position:relative}.tabs{gap:var(--space-2);margin:var(--space-6) 0;border-bottom:1px solid var(--color-border);padding-bottom:2px;display:flex;overflow-x:auto}.tab{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem 1rem;font-weight:600}.tab.active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.tab-panel{animation:.18s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.overview-grid{gap:var(--space-5);grid-template-columns:1.2fr 1fr;display:grid}.snapshot-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.snapshot-list li{justify-content:space-between;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);display:flex}.snapshot-list span{color:var(--color-text-muted)}.next-up h4{margin:var(--space-2) 0}.danger-zone{margin-top:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);background:#fff7f7;border-color:#fecaca;flex-wrap:wrap;display:flex}.weather-card{margin-top:var(--space-5)}.weather-card h3{align-items:center;gap:.5rem;display:flex}.weather-header{margin-bottom:var(--space-4)}.weather-header .muted{margin-top:var(--space-1);font-size:var(--text-sm)}.weather-scroll{gap:var(--space-3);padding-bottom:var(--space-2);display:flex;overflow-x:auto}.weather-day{align-items:center;gap:var(--space-2);width:92px;padding:var(--space-3) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);text-align:center;flex-direction:column;flex:none;display:flex}.weather-day.in-trip{border-color:var(--color-primary);background:var(--color-primary-soft)}.weather-date{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:600}.weather-icon{font-size:1.5rem;line-height:1}.weather-temp{font-size:var(--text-sm);align-items:baseline;gap:.3rem;display:flex}.weather-temp-min{color:var(--color-text-muted)}.weather-precip{font-size:var(--text-xs);color:var(--color-text-muted);align-items:center;gap:.2rem;display:inline-flex}.flights-card{margin-top:var(--space-5)}.flights-card h3{align-items:center;gap:.5rem;display:flex}.flights-card>.muted{margin-top:var(--space-1);margin-bottom:var(--space-4);font-size:var(--text-sm)}.flights-origin-field{max-width:320px;margin-bottom:var(--space-4)}.flights-links{gap:var(--space-3);flex-wrap:wrap;display:flex}.flights-hint{font-size:var(--text-sm)}.transport-card{margin-top:var(--space-5)}.transport-card h3{align-items:center;gap:.5rem;display:flex}.transport-card>.muted{margin-top:var(--space-1);margin-bottom:var(--space-4);font-size:var(--text-sm)}.transport-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.transport-link{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);transition:border-color var(--transition), background var(--transition);text-decoration:none;display:flex}.transport-link:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.transport-link strong{font-size:var(--text-sm);display:block}.transport-icon{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary-dark);flex:none;place-items:center;display:grid}.transport-desc{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.15rem;display:block}.flights-tab{gap:var(--space-5);flex-direction:column;display:flex}.flight-search-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.flight-search-submit{margin-top:var(--space-4);justify-content:flex-end;display:flex}.airport-autocomplete{position:relative}.airport-suggestions{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:260px;padding:var(--space-2);list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.airport-suggestions li button{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-sm);text-align:left;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;background:0 0;border:none;display:flex}.airport-suggestions li button:hover{background:var(--color-bg)}.airport-suggestion-loading{padding:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.flight-filters{align-items:flex-end;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.flight-filter-field{min-width:160px}.flight-filter-checkbox{font-size:var(--text-sm);align-items:center;gap:.4rem;padding-bottom:.6rem;display:flex}.flight-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.flight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5)}.flight-card-main{align-items:center;gap:var(--space-4);grid-template-columns:140px 1fr auto;display:grid}.flight-airline{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;display:flex}.flight-airline-logo{object-fit:contain;background:var(--color-bg);border-radius:50%;width:24px;height:24px}.flight-leg{min-width:0}.flight-leg-times{align-items:center;gap:var(--space-3);text-align:center;grid-template-columns:auto 1fr auto;display:grid}.flight-leg-times>div:first-child,.flight-leg-times>div:last-child{flex-direction:column;display:flex}.flight-leg-times strong{font-size:var(--text-lg)}.flight-leg-times span{font-size:var(--text-xs);color:var(--color-text-muted)}.flight-leg-path{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:.2rem;display:flex}.flight-leg-line{border-top:1px dashed var(--color-border-strong);width:100%;min-width:60px;color:var(--color-primary);justify-content:center;align-items:center;display:flex;position:relative}.flight-duration,.flight-stops{font-size:var(--text-xs)}.flight-price{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.flight-price strong{font-size:var(--text-xl);color:var(--color-primary-dark)}.flight-seats-left{font-size:var(--text-xs);color:var(--color-danger)}.flight-expand-toggle{margin-top:var(--space-3);color:var(--color-primary-dark);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.flight-card-actions{margin-top:var(--space-4);justify-content:flex-end;gap:var(--space-2);display:flex}.flight-card-skeleton{gap:var(--space-3);flex-direction:column;display:flex}.flight-skeleton-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface-muted) 25%, var(--color-border) 50%, var(--color-surface-muted) 75%);background-size:200% 100%;height:14px;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-w-40{width:40%}.skeleton-w-60{width:60%}.skeleton-w-full{width:100%;height:40px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cheap-flights-origin{max-width:360px;margin:0 auto var(--space-8)}.cheap-flights-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.cheap-flight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.cheap-flight-media{height:160px;position:relative}.cheap-flight-media img{object-fit:cover;width:100%;height:100%}.cheap-flight-price-badge{top:var(--space-3);right:var(--space-3);background:var(--color-primary);color:#fff;font-weight:700;font-size:var(--text-sm);border-radius:var(--radius-full);padding:.3rem .7rem;position:absolute}.cheap-flight-body{padding:var(--space-4);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.cheap-flight-route{font-size:var(--text-sm);color:var(--color-text-muted)}.cheap-flight-dates{font-size:var(--text-sm);color:var(--color-text-secondary)}.day-list{gap:var(--space-5);flex-direction:column;display:flex}.day-block h3{margin-bottom:var(--space-4)}.day-items{gap:var(--space-3);flex-direction:column;display:flex}.itinerary-item{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);grid-template-columns:64px 1fr auto;display:grid}.itinerary-time{font-weight:700;font-size:var(--text-sm);color:var(--color-primary-dark)}.itinerary-top{align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:.25rem;display:flex}.itinerary-loc,.itinerary-notes,.itinerary-cost{font-size:var(--text-sm);color:var(--color-text-secondary);align-items:center;gap:.3rem;display:flex}.itinerary-actions{gap:.25rem;display:flex}.tag{border-radius:var(--radius-full);padding:.2rem .5rem;font-size:.7rem;font-weight:700}.tag-food{color:#c2410c;background:#ffedd5}.tag-activity{color:#0f766e;background:#ccfbf1}.tag-hotel{color:#4338ca;background:#e0e7ff}.tag-transport{color:#0369a1;background:#e0f2fe}.tag-shopping{color:#be185d;background:#fce7f3}.tag-other{color:#57534e;background:#f5f5f4}.icon-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:34px;height:34px;color:var(--color-text-secondary);border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.icon-btn.danger:hover{background:var(--color-danger-soft);color:var(--color-danger);border-color:#fecaca}.chip-row{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-full);font-size:var(--text-sm);cursor:pointer;color:var(--color-text-secondary);padding:.4rem .85rem;font-weight:600}.chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.places-grid{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.place-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.place-media{height:150px;position:relative;overflow:hidden}.place-media img{object-fit:cover;width:100%;height:100%;display:block}.place-cat{border-radius:var(--radius-full);background:#ffffffeb;padding:.25rem .55rem;font-size:.7rem;font-weight:700;position:absolute;top:10px;left:10px}.place-body{padding:var(--space-4);flex-direction:column;gap:.45rem;display:flex}.place-body h3{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.must-visit{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-full);padding:.2rem .45rem;font-size:.65rem;font-weight:700}.place-loc{font-size:var(--text-sm)}.place-blurb{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.45}.famous-panel{margin-bottom:var(--space-8);background:linear-gradient(#fff 0%,#f3faf8 100%)}.famous-panel-header{margin-bottom:var(--space-4)}.famous-panel-header h2{margin:var(--space-2) 0 var(--space-2)}.famous-chip-list{margin-bottom:var(--space-5);flex-wrap:wrap;gap:.5rem;display:flex}.famous-chip-list li{font-size:var(--text-sm);color:var(--color-primary-dark);background:var(--color-primary-soft);border-radius:var(--radius-full);padding:.35rem .75rem;font-weight:600}.famous-grid{margin-top:var(--space-2)}.place-meta{gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.place-meta span{align-items:center;gap:.25rem;display:inline-flex}.place-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.ticket-link{width:100%;margin-top:var(--space-3);justify-content:center;align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.search-field{min-width:min(100%,260px)}.budget-layout{gap:var(--space-5);grid-template-columns:1fr 1.2fr;display:grid}.category-bars{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.expense-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.expense-row{justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);align-items:center;display:flex}.expense-row p{font-size:var(--text-sm)}.expense-right{align-items:center;gap:var(--space-2);display:flex}.expense-amount{white-space:nowrap;font-weight:700}.modal-backdrop{z-index:100;padding:var(--space-4);background:#1c191773;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);width:min(100%,560px);max-height:90vh;box-shadow:var(--shadow-lg);overflow:auto}.modal-sm{width:min(100%,420px)}.modal-header,.modal-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5);display:flex}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end}.modal-body{padding:0 var(--space-5) var(--space-5)}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-icon{width:56px;height:56px;margin:0 auto var(--space-4);background:var(--color-primary-soft);color:var(--color-primary-dark);border-radius:16px;place-items:center;display:grid}.empty-state h3{margin-bottom:var(--space-2)}.spinner-wrap{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);flex-direction:column;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:120;background:var(--color-text);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);max-width:min(90vw,360px);padding:.85rem 1.1rem;font-weight:600;position:fixed;bottom:24px;right:24px}.toast-error{background:var(--color-danger)}.toast-info{background:#334155}.not-found{text-align:center;max-width:420px}.not-found h1{margin:var(--space-3) 0}.not-found p{margin-bottom:var(--space-6)}.form-card{padding:var(--space-8)}@media (width<=960px){.steps-grid,.dest-grid,.trips-grid,.places-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.budget-layout{grid-template-columns:1fr}}@media (width<=768px){.nav-toggle{display:inline-flex}.nav-links{inset:var(--header-height) 0 auto;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4);align-items:stretch;gap:var(--space-3);box-shadow:var(--shadow-md);flex-direction:column;display:none;position:fixed}.nav-links.is-open{display:flex}.nav-actions{flex-direction:column;align-items:stretch;margin-left:0}.form-grid,.budget-card .budget-grid,.itinerary-item{grid-template-columns:1fr}.hero-content{padding-bottom:var(--space-12)}.flight-card-main{gap:var(--space-3);grid-template-columns:1fr}.flight-airline,.flight-price{text-align:left;justify-content:flex-start;align-items:flex-start}.flight-filters{flex-direction:column;align-items:stretch}.flight-filter-field{min-width:0}}@media (width<=560px){.steps-grid,.dest-grid,.trips-grid,.places-grid,.stats-grid{grid-template-columns:1fr}.page-header{flex-direction:column}.toast{bottom:16px;left:16px;right:16px}}
