:root{--text:#3c4038;--text-h:#2e332a;--bg:#f7f6f2;--bg-secondary:#efebe4;--border:#e2ddd3;--accent:#7a8b7b;--accent-hover:#69786a;--accent-bg:#efebe4;--danger:#c23b3b;--bg-card:#fff;--surface-low:#f2f5e9;--surface:#ecefe4;--surface-high:#e6e9de;--primary:#506051;--on-primary:#fff;--scrim:#2e322a66;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font:16px/150% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d8ded3;--text-h:#e5ebe1;--bg:#1a1c18;--bg-secondary:#242722;--border:#363b30;--accent:#556356;--accent-hover:#657566;--accent-bg:#2e332a;--danger:#e07a7a;--bg-card:#242722;--surface-low:#2e332a;--surface:#2e332a;--surface-high:#2e332a}}[data-theme=dark]{--text:#d8ded3;--text-h:#e5ebe1;--bg:#1a1c18;--bg-secondary:#242722;--border:#363b30;--accent:#556356;--accent-hover:#657566;--accent-bg:#2e332a;--danger:#e07a7a;--bg-card:#242722;--surface-low:#2e332a;--surface:#2e332a;--surface-high:#2e332a}[data-theme=light]{--text:#3c4038;--text-h:#2e332a;--bg:#f7f6f2;--bg-secondary:#efebe4;--border:#e2ddd3;--accent:#7a8b7b;--accent-hover:#69786a;--accent-bg:#efebe4;--danger:#c23b3b;--bg-card:#fff;--surface-low:#f2f5e9;--surface:#ecefe4;--surface-high:#e6e9de}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1{font-family:var(--sans);color:var(--text-h);margin:0;font-size:22px;font-weight:600}p{margin:0}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--accent);color:#fff;border-radius:8px;min-height:44px;padding:10px 16px}button:hover{opacity:.9}.app-shell{width:100%;max-width:640px;min-height:100svh;padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(16px, env(safe-area-inset-left));flex-direction:column;margin:0 auto;display:flex}.app-shell header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.app-shell main,.app-shell>p{padding:24px 0}.sign-in-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:440px;margin:0 auto;padding:32px 16px;display:flex}.sign-in-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:100%;padding:32px 24px;display:flex}.sign-in-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:4px;font-size:12px;font-weight:600}.sign-in-sub{color:var(--text);margin-bottom:8px;font-size:14px}.sign-in-btn{background:var(--accent);color:#fff;width:100%;max-width:280px;transition:background var(--transition-speed,.2s);border:none;border-radius:12px;font-weight:500}.sign-in-btn:hover{background:var(--accent-hover)}.sign-in-screen [role=alert]{color:var(--danger);font-size:14px}.auth-loading{flex:1;justify-content:center;align-items:center;width:100%;display:flex}.onboarding-chat{flex-direction:column;gap:16px;display:flex}.chat-messages{flex-direction:column;gap:8px;display:flex}.chat-bubble{border-radius:12px;max-width:85%;padding:10px 14px;font-size:15px;line-height:140%}.chat-bubble-assistant{background:var(--accent-bg);color:var(--text-h);align-self:flex-start}.chat-bubble-user{background:var(--accent);color:#fff;align-self:flex-end}.chat-input-row{gap:8px;display:flex}.chat-input-row input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;flex:1;min-height:44px;padding:10px 14px}.chat-loading{color:var(--text);font-size:14px}.skip-link{color:var(--text);background:0 0;border:none;align-self:center;min-height:auto;padding:4px;text-decoration:underline}.onboarding-chat [role=alert]{color:var(--danger);font-size:14px}.preferences-editor{flex-direction:column;gap:16px;display:flex}.preferences-editor label{color:var(--text-h);flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}.preferences-editor input,.preferences-editor textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);resize:vertical;border-radius:8px;min-height:44px;padding:10px 14px;font-weight:400}.preferences-editor [role=alert]{color:var(--danger);font-size:14px}.save-confirmation{color:var(--accent);font-size:14px}.hamburger-btn{color:var(--text-h);background:0 0;border:none;justify-content:center;align-items:center;min-height:auto;padding:4px 8px;font-size:22px;display:inline-flex}.hamburger-btn:hover{color:var(--accent);opacity:1;background:0 0}.drawer-overlay{opacity:0;pointer-events:none;z-index:999;background:#0006;transition:opacity .3s;position:fixed;inset:0}.drawer-overlay.active{opacity:1;pointer-events:all}.drawer-sidebar{background:var(--bg);border-left:1px solid var(--border);z-index:1000;flex-direction:column;width:280px;max-width:85vw;height:100svh;max-height:100svh;transition:transform .3s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-2px 0 8px #0000001a}.drawer-sidebar.active{transform:translate(0)}.drawer-header{padding:max(16px, env(safe-area-inset-top)) 24px 16px;border-bottom:1px solid var(--border);background:var(--bg-secondary);justify-content:space-between;align-items:center;display:flex}.drawer-header h3{color:var(--text-h);margin:0;font-size:16px;font-weight:600}.close-btn{color:var(--text-h);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;min-height:auto;padding:0;font-size:20px;display:flex}.close-btn:hover{color:var(--accent);opacity:1;background:0 0}.drawer-profile{border-bottom:1px solid var(--border);color:var(--text-h);align-items:center;gap:12px;padding:16px 24px;display:flex}.drawer-profile-name{overflow-wrap:anywhere;font-size:15px;font-weight:600}.drawer-menu{flex-direction:column;padding:16px 0;display:flex}.drawer-item{color:var(--text);text-align:left;background:0 0;border:none;border-left:3px solid #0000;border-radius:0;align-items:center;gap:12px;min-height:auto;padding:16px 24px;font-size:15px;font-weight:500;display:flex}.drawer-item:hover{background:var(--bg-secondary);color:var(--accent);border-left-color:var(--accent);opacity:1}.drawer-theme-toggle{border-top:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:12px 24px;font-size:14px;display:flex}.theme-toggle-btn{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);align-items:center;gap:6px;min-height:auto;padding:6px 12px;font-size:13px;display:inline-flex}.theme-toggle-btn:hover{color:var(--accent);opacity:1}.drawer-sign-out{border-top:1px solid var(--border);margin-top:auto;padding:16px 24px}.btn-sign-out{background:var(--bg-secondary);width:100%;color:var(--danger);border:1px solid var(--danger)}.drawer-footer{padding:12px 24px;padding-bottom:max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);color:var(--text);opacity:.7;flex-direction:column;gap:2px;font-size:12px;display:flex}.btn-sign-out:hover{background:var(--danger);color:var(--on-primary);opacity:1}.active-trip-timeline{flex-direction:column;gap:16px;display:flex}.trip-hero{background:linear-gradient(135deg, var(--accent-hover), var(--accent));color:#fff;border-radius:14px;padding:24px}.trip-hero-dest{margin-bottom:8px;font-size:20px;font-weight:700}.trip-hero-dates{opacity:.95;font-size:14px}.trip-hero-status{background:#ffffff4d;border-radius:6px;margin-top:8px;padding:4px 10px;font-size:13px;display:inline-block}.timeline-section-label{color:var(--text);text-transform:uppercase;font-size:13px;font-weight:600}.day-timeline-list{flex-direction:column;gap:12px;display:flex}.timeline-item{border:1px solid var(--border);background:var(--bg);border-radius:10px;gap:12px;padding:12px;display:flex}.timeline-item:hover{border-color:var(--accent)}.day-indicator{background:var(--bg-secondary);min-width:45px;color:var(--text-h);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:8px;font-weight:600;display:flex}.day-number{font-size:18px}.day-label{color:var(--text);text-transform:uppercase;font-size:11px}.day-activities{flex:1}.day-date{color:var(--text);font-size:13px;font-weight:600}.activity-list{margin:6px 0 0;padding:0;font-size:14px;list-style:none}.activity-item{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.activity-checkbox-label{align-items:center;display:flex}.activity-title{color:var(--text-h);font-weight:500}.activity-time{color:var(--text);font-size:13px}.activity-maps-link{color:var(--accent);font-size:13px;text-decoration:underline}.empty-state{color:var(--text);font-size:14px}.trip-card-list{flex-direction:column;gap:12px;display:flex}.trip-card{background:var(--bg);border:1px solid var(--border);color:var(--text-h);text-align:left;border-radius:14px;width:100%;min-height:auto;padding:16px}.trip-card:hover{border-color:var(--accent);opacity:1}.trip-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.trip-card-title{color:var(--text-h);font-size:16px;font-weight:600}.trip-card-badge{white-space:nowrap;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600}.badge-preparing{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border)}.badge-active{background:var(--accent);color:#fff}.badge-past{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);opacity:.8}.trip-card-details{color:var(--text);font-size:13px}.stub-page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:48px 16px;display:flex}.editorial-heading{font-family:Newsreader,Georgia,Times New Roman,serif}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;-webkit-user-select:none;user-select:none;font-variation-settings:"FILL" 0, "wght" 400;direction:ltr;font-family:Material Symbols Outlined;font-style:normal;font-weight:400;line-height:1;display:inline-block}.btn-primary,.btn-surface{border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:15px;font-weight:600;transition:background .2s,transform .1s;display:inline-flex}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 2px 8px #0000000f}.btn-primary:disabled{opacity:.6;cursor:default}.btn-primary:active{transform:scale(.97)}.btn-surface{background:var(--surface);color:var(--text-h)}.btn-pill{border-radius:9999px;padding:8px 16px;font-size:14px}.fab-stack{right:20px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:40;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed}.fab{align-items:center;gap:6px;min-height:48px;padding:12px 20px;display:inline-flex;box-shadow:0 4px 16px #0000002e}.fab-secondary{background:var(--bg-card)}.all-trips-view{padding-bottom:140px}.itineraries-sticky{z-index:30;background:var(--bg);flex-direction:column;gap:16px;margin-bottom:8px;padding:8px 0;display:flex;position:sticky;top:0}.itineraries-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.itineraries-header h1{font-size:26px;line-height:32px}.itineraries-header p{color:var(--accent);font-size:13px}.segmented-tabs{background:var(--surface-high);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented-tab{min-height:36px;color:var(--text);background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.segmented-tab:hover{color:var(--text-h);opacity:1;background:0 0}.segmented-tab.selected{background:var(--bg-card);color:var(--text-h);box-shadow:0 1px 3px #00000014}.segmented-tab-count{background:var(--surface-low);color:var(--accent);border-radius:9999px;padding:1px 6px;font-size:10px}.empty-trips-card{text-align:center;background:var(--bg-card);border-radius:16px;flex-direction:column;align-items:center;padding:36px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000008}.empty-trips-glow{filter:blur(24px);pointer-events:none;border-radius:50%;width:128px;height:128px;position:absolute}.empty-trips-glow-top{background:#b9cbb94d;top:-32px;right:-32px}.empty-trips-glow-bottom{background:#bacbbc33;bottom:-32px;left:-32px}.empty-trips-icon{background:var(--surface-low);width:80px;height:80px;color:var(--primary);border-radius:16px;justify-content:center;align-items:center;margin-bottom:24px;display:flex;position:relative;box-shadow:inset 0 2px 4px #0000000d}.empty-trips-count{background:var(--primary);width:24px;height:24px;color:var(--on-primary);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.empty-trips-title{color:var(--text-h);margin:0 0 4px;font-size:20px;font-weight:600;line-height:26px;position:relative}.empty-trips-copy{max-width:260px;color:var(--accent);margin-bottom:24px;font-size:13px;line-height:18px;position:relative}.empty-trips-card .btn-surface{width:100%;padding:12px 24px;position:relative}.inspiration{flex-direction:column;gap:16px;margin-top:36px;display:flex}.inspiration-header{padding:0 4px}.inspiration-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.inspiration-list{grid-template-columns:1fr;gap:16px;display:grid}.inspiration-card{text-align:left;color:#fff;border:none;border-radius:12px;justify-content:space-between;align-items:flex-end;gap:12px;height:160px;padding:16px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000008}.inspiration-kyoto{background:linear-gradient(#0000,#2e322a33 40%,#2e322acc),linear-gradient(135deg,#5f7a62,#a9bfa4)}.inspiration-provence{background:linear-gradient(#0000,#2e322a33 40%,#2e322acc),linear-gradient(135deg,#7a6a93,#d2a96a)}.inspiration-card-text{flex-direction:column;gap:2px;display:flex}.inspiration-kicker{letter-spacing:.08em;text-transform:uppercase;color:#d5e7d5;font-size:11px;font-weight:600}.inspiration-title{font-size:20px;font-weight:600;line-height:26px}.inspiration-arrow{background:#fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-backdrop{z-index:1100;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-card);border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:500px;max-height:90vh;animation:.3s ease-out sheet-slide-up;display:flex;overflow:hidden;box-shadow:0 -4px 24px #0000001a}.modal-scroll-area{flex-direction:column;flex:auto;gap:16px;min-height:0;padding:16px 24px 24px;display:flex;overflow-y:auto}.modal-footer{padding:16px 24px;padding-bottom:max(16px, env(safe-area-inset-bottom));border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:12px;display:flex}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 24px 16px;display:flex}.modal-header h3{color:var(--text-h);margin:0;font-size:20px;line-height:26px}.modal-header p{color:var(--accent);font-size:13px}.modal-close{width:36px;height:36px;min-height:auto;color:var(--text);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{background:var(--surface-high);opacity:1}.form-field{flex-direction:column;gap:4px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-field label,.form-label{color:var(--text);font-size:12px;font-weight:600}.modal-sheet input,.modal-sheet textarea{width:100%;font:inherit;background:var(--surface-low);color:var(--text-h);border:1px solid #0000;border-radius:12px;min-height:44px;padding:12px 16px}.modal-sheet textarea{resize:none}.modal-sheet input:focus,.modal-sheet textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);outline:none}.modal-sheet input[aria-invalid=true]{border-color:var(--danger)}.status-picker{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.status-option{background:var(--surface-low);color:var(--text);border:none;border-radius:12px;padding:10px 4px;font-size:12px;font-weight:600}.status-option:hover:not(:disabled){background:var(--surface);opacity:1}.status-option.selected{background:var(--primary);color:var(--on-primary)}.status-option:disabled{opacity:.45;cursor:not-allowed}.field-error{color:var(--danger);font-size:12px}.field-hint{color:var(--accent);font-size:12px}.modal-actions{gap:16px;display:flex}.modal-actions .btn-surface,.modal-actions .btn-primary{flex:1}.field-required{color:var(--primary);font-size:11px;font-weight:600}.form-field label{align-items:baseline;gap:6px;display:flex}.form-stack{flex-direction:column;gap:16px;display:flex}.modal-sheet select.modal-select{width:100%;font:inherit;background:var(--surface-low);color:var(--text-h);appearance:none;border:1px solid #0000;border-radius:12px;min-height:44px;padding:12px 16px}.modal-sheet select.modal-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);outline:none}.upload-dropzone{border:1px solid var(--border);background:var(--surface-low);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:32px 16px;display:flex}.upload-icon{background:var(--primary);width:48px;height:48px;color:var(--on-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.upload-title{color:var(--text-h);font-size:15px;font-weight:600}.upload-hint{max-width:280px;color:var(--accent);margin:0;font-size:13px}.upload-browse{align-items:center;gap:6px;width:auto;margin-top:16px;padding:10px 24px;display:inline-flex}.upload-filename{color:var(--accent);margin-top:8px;font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-banner{color:var(--danger);background:#c23b3b1f;border:1px solid #c23b3b4d;border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:13px;display:flex}.error-banner .material-symbols-outlined{color:var(--danger)}.toast{z-index:1200;color:#eff2e6;background:#2e322a;border-radius:9999px;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:600;animation:.3s ease-out toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0003}.toast .material-symbols-outlined{color:#d5e7d5}.toast-error{background:#4a2420}.toast-error .material-symbols-outlined{color:#ff6b5e}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.onboarding-form{flex-direction:column;gap:24px;padding:24px 0;display:flex}.onboarding-header{flex-direction:column;gap:8px;display:flex}.onboarding-header h1{font-size:28px;line-height:1.2}.onboarding-subtitle{color:var(--accent);font-size:16px;line-height:1.5}.profile-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-h);font-size:14px;font-weight:500}.required{color:var(--danger)}.form-group input,.form-group textarea{border:1px solid var(--border);color:var(--text);background:var(--bg-card);border-radius:8px;padding:12px 16px;font-family:inherit;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);outline:none}.form-group input:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.form-hint{color:var(--accent);margin-top:4px;font-size:12px}.form-error{border:1px solid var(--danger);color:var(--danger);background:#c23b3b1a;border-radius:8px;margin:8px 0;padding:12px;font-size:14px}.submit-button{min-height:44px;margin-top:8px;padding:12px 24px;font-size:16px;font-weight:600;transition:background-color .2s}.submit-button:disabled{opacity:.5;cursor:not-allowed}.form-note{text-align:center;color:var(--accent);font-size:13px}
