:root{--font-family-base:"Inter", "Segoe UI", Roboto, Arial, sans-serif;--font-family-heading:"Poppins", "Inter", "Segoe UI", sans-serif;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--line-height-tight:1.2;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-none:0;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-pill:999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #1018281a, 0 1px 2px #1018280f;--shadow-md:0 4px 8px -2px #1018281a, 0 2px 4px -2px #1018280f;--shadow-lg:0 12px 16px -4px #10182814, 0 4px 6px -2px #10182808;--shadow-xl:0 20px 24px -4px #10182814, 0 8px 8px -4px #10182808;--shadow-2xl:0 24px 48px -12px #1018282e;--container-max-width:1120px;--navbar-height:64px;--bottom-nav-height:72px;--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-secondary-50:#f0fdfa;--color-secondary-100:#ccfbf1;--color-secondary-200:#99f6e4;--color-secondary-300:#5eead4;--color-secondary-400:#2dd4bf;--color-secondary-500:#14b8a6;--color-secondary-600:#0d9488;--color-secondary-700:#0f766e;--color-secondary-800:#115e59;--color-secondary-900:#134e4a;--color-neutral-50:#f9fafb;--color-neutral-100:#f3f4f6;--color-neutral-200:#e5e7eb;--color-neutral-300:#d1d5db;--color-neutral-400:#9ca3af;--color-neutral-500:#6b7280;--color-neutral-600:#4b5563;--color-neutral-700:#374151;--color-neutral-800:#1f2937;--color-neutral-900:#111827;--color-success-50:#ecfdf5;--color-success-100:#d1fae5;--color-success-200:#a7f3d0;--color-success-300:#6ee7b7;--color-success-400:#34d399;--color-success-500:#10b981;--color-success-600:#059669;--color-success-700:#047857;--color-success-800:#065f46;--color-success-900:#064e3b;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-300:#fcd34d;--color-warning-400:#fbbf24;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-warning-700:#b45309;--color-warning-800:#92400e;--color-warning-900:#78350f;--color-error-50:#fef2f2;--color-error-100:#fee2e2;--color-error-200:#fecaca;--color-error-300:#fca5a5;--color-error-400:#f87171;--color-error-500:#ef4444;--color-error-600:#dc2626;--color-error-700:#b91c1c;--color-error-800:#991b1b;--color-error-900:#7f1d1d;--color-info-50:#eef2ff;--color-info-100:#e0e7ff;--color-info-200:#c7d2fe;--color-info-300:#a5b4fc;--color-info-400:#818cf8;--color-info-500:#6366f1;--color-info-600:#4f46e5;--color-info-700:#4338ca;--color-info-800:#3730a3;--color-info-900:#312e81;--color-accent-50:#fff7ed;--color-accent-100:#ffedd5;--color-accent-200:#fed7aa;--color-accent-300:#fdba74;--color-accent-400:#fb923c;--color-accent-500:#f97316;--color-accent-600:#ea580c;--color-accent-700:#c2410c;--color-accent-800:#9a3412;--color-accent-900:#7c2d12;--color-sky-50:#f0f9ff;--color-sky-100:#e0f2fe;--color-sky-200:#bae6fd;--color-sky-300:#7dd3fc;--color-sky-400:#38bdf8;--color-sky-500:#0ea5e9;--color-sky-600:#0284c7;--color-sky-700:#0369a1;--color-sky-800:#075985;--color-sky-900:#0c4a6e;--color-bg:var(--color-neutral-50);--color-surface:#fff;--color-surface-alt:var(--color-neutral-100);--color-surface-raised:#fff;--color-border:var(--color-neutral-200);--color-border-strong:var(--color-neutral-300);--color-border-focus:var(--color-primary-500);--color-text:var(--color-neutral-900);--color-text-sub:var(--color-neutral-700);--color-text-muted:var(--color-neutral-500);--color-text-placeholder:var(--color-neutral-400);--color-text-disabled:var(--color-neutral-400);--color-text-inverse:#fff;--color-text-link:var(--color-primary-600);--color-text-link-hover:var(--color-primary-800);--color-brand:var(--color-primary-600);--color-brand-hover:var(--color-primary-700);--color-brand-active:var(--color-primary-800);--color-brand-subtle:var(--color-primary-50);--color-success-bg:var(--color-success-50);--color-success-text:var(--color-success-700);--color-success-icon:var(--color-success-600);--color-warning-bg:var(--color-warning-50);--color-warning-text:var(--color-warning-700);--color-warning-icon:var(--color-warning-600);--color-error-bg:var(--color-error-50);--color-error-text:var(--color-error-700);--color-error-icon:var(--color-error-600);--color-info-bg:var(--color-info-50);--color-info-text:var(--color-info-700);--color-info-icon:var(--color-info-600);--color-disabled-bg:var(--color-neutral-100);--color-disabled-text:var(--color-neutral-400);--color-disabled-border:var(--color-neutral-200);--color-backdrop:#11182780;--color-overlay:#111827b3;--color-input-bg:#fff;--color-input-border:var(--color-neutral-300);--color-input-focus-ring:#2563eb40;--color-toggle-off:var(--color-neutral-300);--color-toggle-on:var(--color-primary-600);--color-divider:var(--color-neutral-200);--color-bottom-nav-active:var(--color-primary-600);--color-bottom-nav-inactive:var(--color-neutral-400)}:root[data-theme=dark]{--color-bg:var(--color-neutral-900);--color-surface:var(--color-neutral-800);--color-surface-alt:var(--color-neutral-700);--color-surface-raised:#111b2a;--color-border:var(--color-neutral-700);--color-border-strong:var(--color-neutral-600);--color-border-focus:var(--color-primary-400);--color-text:var(--color-neutral-50);--color-text-sub:var(--color-neutral-200);--color-text-muted:var(--color-neutral-400);--color-text-placeholder:var(--color-neutral-500);--color-text-disabled:var(--color-neutral-500);--color-text-inverse:var(--color-neutral-900);--color-text-link:var(--color-primary-300);--color-text-link-hover:var(--color-primary-200);--color-brand:var(--color-primary-500);--color-brand-hover:var(--color-primary-400);--color-brand-active:var(--color-primary-300);--color-brand-subtle:#3b82f629;--color-success-bg:#10b98129;--color-success-text:var(--color-success-200);--color-success-icon:var(--color-success-300);--color-warning-bg:#f59e0b29;--color-warning-text:var(--color-warning-200);--color-warning-icon:var(--color-warning-300);--color-error-bg:#ef444429;--color-error-text:var(--color-error-200);--color-error-icon:var(--color-error-300);--color-info-bg:#6366f129;--color-info-text:var(--color-info-200);--color-info-icon:var(--color-info-300);--color-disabled-bg:var(--color-neutral-700);--color-disabled-text:var(--color-neutral-500);--color-disabled-border:var(--color-neutral-600);--color-backdrop:#0000008c;--color-overlay:#000000b8;--color-input-bg:var(--color-neutral-800);--color-input-border:var(--color-neutral-600);--color-input-focus-ring:#60a5fa59;--color-toggle-off:var(--color-neutral-600);--color-toggle-on:var(--color-primary-400);--color-divider:var(--color-neutral-700);--color-bottom-nav-active:var(--color-primary-300);--color-bottom-nav-inactive:var(--color-neutral-500)}*{box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg);margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}h1,h2,h3,h4,p{margin:0}.button{border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;white-space:nowrap;border:1px solid #0000;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.button:disabled{cursor:not-allowed}.button--primary{background:var(--color-brand);border-color:var(--color-brand);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-brand-hover);border-color:var(--color-brand-hover)}.button--primary:active:not(:disabled){background:var(--color-brand-active);border-color:var(--color-brand-active)}.button--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.button--secondary:hover:not(:disabled){background:var(--color-surface-alt)}.button--ghost{color:var(--color-brand);background:0 0;border-color:#0000}.button--ghost:hover:not(:disabled){background:var(--color-brand-subtle)}.button--danger{background:var(--color-error-600);border-color:var(--color-error-600);color:#fff}.button--danger:hover:not(:disabled){background:var(--color-error-700);border-color:var(--color-error-700)}.button--disabled,.button--primary:disabled,.button--secondary:disabled,.button--ghost:disabled,.button--danger:disabled{background:var(--color-disabled-bg);border-color:var(--color-disabled-border);color:var(--color-disabled-text)}.button--full{width:100%}.button--sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.button--lg{padding:var(--space-4) var(--space-6);font-size:var(--font-size-md)}.input-field{gap:var(--space-2);display:grid}.input-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.input-field__control{border:1px solid var(--color-input-border);border-radius:var(--radius-md);background:var(--color-input-bg);width:100%;color:var(--color-text);padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--font-size-base);transition:border-color .15s,box-shadow .15s}.input-field__control::placeholder{color:var(--color-text-placeholder)}.input-field__control:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-input-focus-ring);outline:none}.input-field__control:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.input-field__control--error{border-color:var(--color-error-500)}.input-field__control--error:focus{box-shadow:0 0 0 3px #ef444433}.input-field__hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.input-field__error{color:var(--color-error-text);font-size:var(--font-size-xs)}.modal{z-index:100;place-items:center;display:grid;position:fixed;inset:0}.modal--bottom-sheet{align-items:end}.modal__backdrop{background:var(--color-backdrop);border:0;position:absolute;inset:0}.modal__content{background:var(--color-surface);border-radius:var(--radius-xl);width:min(480px,100% - 2rem);max-height:calc(100dvh - 4rem);box-shadow:var(--shadow-2xl);padding:var(--space-6);gap:var(--space-5);display:grid;position:relative;overflow-y:auto}.modal__content--bottom-sheet{border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:min(720px,100%);max-height:min(84dvh,100dvh - 1rem);padding:var(--space-5) var(--space-6) var(--space-6)}.modal__header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal__close{cursor:pointer;padding:var(--space-2);color:var(--color-text-muted);border-radius:var(--radius-md);line-height:1;font:inherit;background:0 0;border:none}.modal__close:hover{background:var(--color-surface-alt);color:var(--color-text)}.login-modal{gap:var(--space-4);flex-direction:column;display:flex}.login-modal__intro{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.login-modal__actions{gap:var(--space-3);justify-content:flex-end;display:flex}.login-modal__note{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;line-height:1.5}.login-modal__error{font-size:var(--text-xs);color:var(--color-error,#e53e3e);margin:0}.login-modal__toggle{font-size:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.top-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:20;position:sticky;top:0}.top-nav__content{max-width:var(--container-max-width);padding:0 var(--space-4);height:var(--navbar-height);justify-content:space-between;align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.top-nav--with-back .top-nav__content{grid-template-columns:auto 1fr auto}.top-nav__back{cursor:pointer;align-items:center;gap:var(--space-2);color:var(--color-text-sub);font:inherit;font-weight:var(--font-weight-medium);font-size:var(--font-size-base);padding:var(--space-2) 0;background:0 0;border:none;display:flex}.top-nav__back:hover{color:var(--color-text)}.top-nav__brand{font-family:var(--font-family-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text)}.top-nav__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.top-nav__title-group{flex-direction:column;display:flex}.top-nav__actions{align-items:center;gap:var(--space-3);display:flex}.toggle{align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.toggle--disabled{opacity:.5;cursor:not-allowed}.toggle__input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.toggle__track{border-radius:var(--radius-pill);background:var(--color-toggle-off);flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.toggle--on .toggle__track{background:var(--color-toggle-on)}.toggle__thumb{width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle--on .toggle__thumb{transform:translate(20px)}.toggle__label{font-size:var(--font-size-base);color:var(--color-text)}.toggle__label--sm{font-size:var(--font-size-sm)}.address-autocomplete{gap:var(--space-2);display:grid;position:relative}.address-autocomplete__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.address-autocomplete__input-wrap{align-items:center;display:flex;position:relative}.address-autocomplete__icon{left:var(--space-4);color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute}.address-autocomplete__input{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) calc(var(--space-4) + 20px + var(--space-2));border:1px solid var(--color-input-border);border-radius:var(--radius-md);background:var(--color-input-bg);color:var(--color-text);font:inherit;transition:border-color .15s,box-shadow .15s}.address-autocomplete__input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-input-focus-ring);outline:none}.address-autocomplete__input--error{border-color:var(--color-error-500)}.address-autocomplete__list{z-index:220;margin-top:var(--space-1);padding:var(--space-1) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-height:280px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #1018281f}.address-autocomplete__item{gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;display:flex}.address-autocomplete__item:hover,.address-autocomplete__item--focused{background:var(--color-surface-alt)}.address-autocomplete__item-icon{color:var(--color-text-muted);margin-top:2px}.address-autocomplete__item-text{flex-direction:column;min-width:0;display:flex}.address-autocomplete__item-main{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.address-autocomplete__item-secondary{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.address-autocomplete__status{font-size:var(--font-size-xs);color:var(--color-text-muted)}.address-autocomplete__error{font-size:var(--font-size-xs);color:var(--color-error-text)}.profile-page{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}.profile-page__main{padding:var(--space-4);flex:1;overflow-y:auto}.profile-page__section{margin-bottom:var(--space-6)}.profile-page__section-title{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-2);padding:0 var(--space-1);font-weight:600}.profile-page__card{gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid}.profile-page__avatar-row{align-items:center;gap:var(--space-3);display:flex}.profile-page__avatar{object-fit:cover;border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:50%;width:56px;height:56px}.profile-page__avatar--fallback{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);justify-content:center;align-items:center;display:inline-flex}.profile-page__upload-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);justify-content:center;align-items:center;display:inline-flex}.profile-page__upload-input{display:none}.profile-page__avatar-presets{gap:var(--space-2);flex-wrap:wrap;display:flex}.profile-page__avatar-choice{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:50%;width:32px;height:32px;padding:0;overflow:hidden}.profile-page__avatar-choice img{object-fit:cover;width:100%;height:100%}.profile-page__avatar-choice--active{box-shadow:0 0 0 2px var(--color-brand-subtle);border-color:var(--color-brand)}.profile-page__address-saved{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.profile-page__address-pin{color:var(--color-brand);flex-shrink:0;align-items:center;display:flex}.profile-page__address-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);flex:1;min-width:0}.profile-page__address-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.profile-page__maps-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-brand);color:#fff;font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;text-decoration:none;transition:background .15s;display:inline-flex}.profile-page__maps-btn:hover{background:var(--color-brand-hover)}.profile-page__address-edit-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;display:inline-flex}.profile-page__address-edit-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.profile-page__prefs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-page__prefs-grid>:first-child{grid-column:1/-1}.profile-page__setting-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-2);display:flex}.profile-page__save-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.profile-page__sync-status{font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (width<=640px){.profile-page__prefs-grid{grid-template-columns:1fr}}.profile-page__setting-row:last-child{margin-bottom:0}.profile-page__setting-info{align-items:center;gap:var(--space-3);min-width:0;display:flex}.profile-page__setting-icon{color:var(--color-text-muted);flex-shrink:0}.profile-page__setting-text{min-width:0}.profile-page__setting-label{font-size:var(--text-sm);color:var(--color-text);font-weight:500;line-height:1.3;display:block}.profile-page__setting-desc{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px;display:block}.profile-page__account-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.profile-page__account-info{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-page__account-name{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.profile-page__account-id{font-size:var(--text-xs);color:var(--color-text-muted);font-family:monospace}.profile-page__account-guest{gap:var(--space-3);flex-direction:column;display:flex}.profile-page__account-guest-label{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.profile-page__account-guest-actions{gap:var(--space-2);flex-direction:column;display:flex}.alert{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);font-size:var(--font-size-base);border:1px solid #0000;display:flex}.alert__icon{flex-shrink:0;margin-top:1px}.alert__body{flex:1;min-width:0}.alert__title{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.alert__message{line-height:var(--line-height-normal)}.alert__close{cursor:pointer;padding:var(--space-1);color:inherit;opacity:.6;font:inherit;background:0 0;border:none;flex-shrink:0;line-height:1}.alert__close:hover{opacity:1}.alert--info{background:var(--color-info-bg);border-color:var(--color-info-200);color:var(--color-info-text)}.alert--success{background:var(--color-success-bg);border-color:var(--color-success-200);color:var(--color-success-text)}.alert--warning{background:var(--color-warning-bg);border-color:var(--color-warning-200);color:var(--color-warning-text)}.alert--error{background:var(--color-error-bg);border-color:var(--color-error-200);color:var(--color-error-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5)}.card--interactive{cursor:pointer;transition:transform .15s,box-shadow .15s}.card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--elevated{box-shadow:var(--shadow-md)}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);padding:2px var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;display:inline-flex}.badge--info{background:var(--color-info-bg);color:var(--color-info-text)}.badge--success{background:var(--color-success-bg);color:var(--color-success-text)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge--error{background:var(--color-error-bg);color:var(--color-error-text)}.badge--neutral{background:var(--color-neutral-100);color:var(--color-neutral-700)}.badge--primary{background:var(--color-brand-subtle);color:var(--color-brand)}.maps-activity-card{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.maps-activity-card__info{gap:var(--space-1);min-width:0;display:grid}.maps-activity-card__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.maps-activity-card__header>strong{min-width:0}.maps-activity-card__meta{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.maps-activity-card__map-link{align-items:center;gap:var(--space-1);color:var(--color-text-link);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;display:inline-flex}.maps-route-preview{margin-top:var(--space-2);gap:var(--space-2);display:grid}.maps-route-preview__stops,.maps-route-preview__legs{gap:2px;margin:0;padding-left:1.125rem;display:grid}.maps-route-preview__stop,.maps-route-preview__leg,.maps-route-preview__summary{color:var(--color-text-muted);font-size:var(--font-size-sm)}.maps-route-preview__stop{align-items:center;gap:var(--space-2);display:flex}.maps-route-preview__index{background:var(--color-primary-100);width:18px;height:18px;color:var(--color-brand);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.maps-route-preview__summary{font-weight:var(--font-weight-medium);margin:0}.meal-block{gap:var(--space-1);display:grid}.meal-block__title{color:var(--color-text)}.meal-block__meta{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.trip-detail__map-pins{gap:var(--space-2);padding:var(--space-3);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.trip-detail__map-pin{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);padding:2px var(--space-2);background:#ffffffe0;max-width:140px;display:flex;box-shadow:0 1px 4px #0000001f}.trip-detail__map-pin-number{background:var(--color-brand);color:#fff;width:18px;height:18px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.trip-detail__map-pin-label{font-size:var(--font-size-xs);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.act-detail{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.act-detail__hero{flex-shrink:0;height:300px;position:relative;overflow:hidden}.act-detail__hero-img{object-fit:cover;width:100%;height:100%;display:block}.act-detail__hero-placeholder{background-color:#e8ead0;background-image:linear-gradient(#b4b6a099 1px,#0000 1px),linear-gradient(90deg,#b4b6a099 1px,#0000 1px),linear-gradient(#c8cab94d 1px,#0000 1px),linear-gradient(90deg,#c8cab94d 1px,#0000 1px);background-size:40px 40px,40px 40px,8px 8px,8px 8px;width:100%;height:100%}.act-detail__back{top:var(--space-4);left:var(--space-4);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(6px);width:40px;height:40px;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--color-text);z-index:10;background:#ffffffeb;border:none;justify-content:center;align-items:center;transition:background .15s;display:flex;position:absolute}.act-detail__back:hover{background:#fff}.act-detail__panel{background:var(--color-surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;z-index:2;padding:0 var(--space-4) var(--space-12);gap:var(--space-4);flex-direction:column;flex:1;margin-top:-28px;display:flex;position:relative;overflow-y:auto;box-shadow:0 -4px 20px #10182814}.act-detail__drag-handle{background:var(--color-neutral-300);border-radius:var(--radius-pill);width:36px;height:4px;margin:var(--space-3) auto var(--space-1);flex-shrink:0;align-self:center}.act-detail__meta{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.act-detail__category{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.act-detail__stars{align-items:center;gap:2px;display:flex}.act-detail__title{font-family:var(--font-family-heading);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--line-height-snug);margin:0}.act-detail__location{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;display:flex}.act-detail__map-section{gap:var(--space-3);flex-direction:column;display:flex}.act-detail__map-tile{border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:#e8ead0;background-image:linear-gradient(#b4b6a099 1px,#0000 1px),linear-gradient(90deg,#b4b6a099 1px,#0000 1px),linear-gradient(#c8cab94d 1px,#0000 1px),linear-gradient(90deg,#c8cab94d 1px,#0000 1px);background-size:40px 40px,40px 40px,8px 8px,8px 8px;height:160px;position:relative;overflow:hidden}.act-detail__map-pin{filter:drop-shadow(0 2px 4px #0000004d);position:absolute;top:50%;left:50%;transform:translate(-50%,-100%)}.act-detail__address-row{align-items:flex-start;gap:var(--space-3);display:flex}.act-detail__address-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.act-detail__address-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.act-detail__address-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.act-detail__maps-btn{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-brand);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1.5px solid var(--color-brand);white-space:nowrap;flex-shrink:0;text-decoration:none;transition:background .15s,color .15s}.act-detail__maps-btn:hover{background:var(--color-brand);color:#fff}.act-detail__details{gap:var(--space-2);background:var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-4);flex-direction:column;display:flex}.act-detail__detail-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.act-detail__detail-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.act-detail__detail-value{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-semibold);text-align:right}.act-detail__notes{gap:var(--space-2);flex-direction:column;display:flex}.act-detail__notes-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0}.act-detail__notes-body{font-size:var(--font-size-base);color:var(--color-text);line-height:var(--line-height-relaxed);margin:0}.act-detail__gallery{gap:var(--space-3);flex-direction:column;display:flex}.act-detail__gallery-header{justify-content:space-between;align-items:center;display:flex}.act-detail__gallery-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text)}.act-detail__gallery-more{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-brand);text-decoration:none}.act-detail__gallery-more:hover{text-decoration:underline}.act-detail__gallery-grid{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.act-detail__gallery-tile{aspect-ratio:1;border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:#e8ead0;background-image:linear-gradient(#b4b6a080 1px,#0000 1px),linear-gradient(90deg,#b4b6a080 1px,#0000 1px);background-size:24px 24px,24px 24px;overflow:hidden}.act-detail__gallery-tile--photo{object-fit:cover;background:0 0;border:none;width:100%;height:100%;display:block}@media (width<=600px){.act-detail__hero{height:240px}.act-detail__title{font-size:var(--font-size-xl)}}.bottom-nav{height:var(--bottom-nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #1018280f}.bottom-nav__item{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);cursor:pointer;font:inherit;color:var(--color-bottom-nav-inactive);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:0 0;border:none;flex-direction:column;flex:1;transition:color .15s;display:flex}.bottom-nav__item:hover{color:var(--color-text-sub)}.bottom-nav__item--active{color:var(--color-bottom-nav-active)}.bottom-nav__label{font-size:var(--font-size-xs);line-height:1}.dropdown{display:inline-block;position:relative}.dropdown__trigger{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-input-border);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;justify-content:space-between;width:100%;transition:border-color .15s,box-shadow .15s;display:inline-flex}.dropdown__trigger:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-input-focus-ring);outline:none}.dropdown__trigger--open{border-color:var(--color-border-focus)}.dropdown__trigger-chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform .15s}.dropdown__trigger-chevron--open{transform:rotate(180deg)}.dropdown__menu{top:calc(100% + var(--space-1));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;padding:var(--space-1);position:absolute;left:0;right:0;overflow:hidden}.dropdown__option{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;border-radius:var(--radius-md);text-align:left;background:0 0;border:none;transition:background .12s;display:flex}.dropdown__option:hover{background:var(--color-surface-alt)}.dropdown__option--selected{background:var(--color-brand-subtle);color:var(--color-brand);font-weight:var(--font-weight-medium)}.flight-ticket{padding:var(--space-4) var(--space-5);color:#fff;background:#111827;border-radius:14px;position:relative;overflow:hidden}.flight-ticket__menu{top:var(--space-3);right:var(--space-3);position:absolute}.flight-ticket__menu-btn{border-radius:var(--radius-sm,4px);padding:2px var(--space-2);color:#ffffffb3;cursor:pointer;letter-spacing:.1em;background:#ffffff1a;border:none;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:color .15s,background .15s;display:inline-flex}.flight-ticket__menu-btn:hover,.flight-ticket__menu-btn:focus-visible{color:#fff;background:#ffffff2e;outline:none}.flight-ticket__menu-dropdown{border-radius:var(--radius-md,8px);z-index:50;background:#1f2937;border:1px solid #ffffff1f;min-width:120px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.flight-ticket__menu-item{text-align:left;width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:#ffffffd9;cursor:pointer;background:0 0;border:none;transition:background .12s;display:block}.flight-ticket__menu-item:hover,.flight-ticket__menu-item:focus-visible{background:#ffffff14;outline:none}.flight-ticket__menu-item--danger{color:#f87171}.flight-ticket__menu-item--danger:hover,.flight-ticket__menu-item--danger:focus-visible{background:#f871711f}.flight-ticket__route{align-items:center;gap:var(--space-2);grid-template-columns:1fr auto 1fr;display:grid}.flight-ticket__airport{gap:2px;display:grid}.flight-ticket__airport--right{text-align:right}.flight-ticket__city{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:#ffffff80}.flight-ticket__code-row{align-items:baseline;gap:var(--space-2);display:flex}.flight-ticket__code-row--right{justify-content:flex-end}.flight-ticket__code{font-family:Courier New,Courier,monospace;font-size:var(--font-size-3xl);letter-spacing:.02em;font-weight:700;line-height:1}.flight-ticket__time{font-size:var(--font-size-sm);color:#ffffffa6;font-weight:500}.flight-ticket__track{gap:var(--space-1);align-items:center;min-width:90px;display:grid}.flight-ticket__track-line{color:#ffffffb3;align-items:center;gap:2px;display:flex}.flight-ticket__dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.flight-ticket__dash-line{background-image:repeating-linear-gradient(90deg,currentColor 0 4px,#0000 4px 8px);flex:1;height:1px}.flight-ticket__track-info{font-size:var(--font-size-xs);color:#ffffff73;letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;display:flex}.flight-ticket__track-label{text-align:center;flex:1}.flight-ticket__track-date{flex-shrink:0}.flight-ticket__divider{height:1px;margin:var(--space-3) 0;background:#ffffff1a}.flight-ticket__details{gap:var(--space-5);flex-wrap:wrap;display:flex}.flight-ticket__detail{gap:1px;display:grid}.flight-ticket__detail-label{font-size:var(--font-size-xs);color:#fff6;letter-spacing:.08em;text-transform:uppercase}.flight-ticket__detail-value{font-family:Courier New,Courier,monospace;font-size:var(--font-size-base);letter-spacing:.04em;font-weight:600}.lodging-card{gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);background:var(--color-surface);grid-template-columns:76px 1fr;display:grid;position:relative}.lodging-card__media{width:76px;height:76px}.lodging-card__image{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;height:100%}.lodging-card__image--fallback{color:var(--color-text-muted);background:var(--color-surface-alt);justify-content:center;align-items:center;display:inline-flex}.lodging-card__body{gap:4px;min-width:0;display:grid}.lodging-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.lodging-card__title{font-size:var(--font-size-md);color:var(--color-text);line-height:1.25}.lodging-card__actions{position:relative}.lodging-card__menu-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.lodging-card__menu-btn:hover{color:var(--color-text)}.lodging-card__menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:108px;box-shadow:var(--shadow-md);z-index:10;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.lodging-card__menu-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none}.lodging-card__menu-item:hover{background:var(--color-surface-alt)}.lodging-card__menu-item--danger{color:var(--color-danger-600,#b42318)}.lodging-card__line{color:var(--color-text-muted);font-size:var(--font-size-sm);align-items:center;gap:6px;min-width:0;margin:0;display:flex}.lodging-card__line svg{flex-shrink:0}.lodging-card__meta{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:2px 0 0}.place-picker{gap:var(--space-2);display:grid;position:relative}.place-picker__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.place-picker__input-wrap{align-items:center;display:flex;position:relative}.place-picker__icon{left:var(--space-4);color:var(--color-text-muted);pointer-events:none;align-items:center;display:flex;position:absolute}.place-picker__input{width:100%;padding:var(--space-3) var(--space-10) var(--space-3) calc(var(--space-4) + 18px + var(--space-2));border:1px solid var(--color-input-border);border-radius:var(--radius-md);background:var(--color-input-bg);color:var(--color-text);font:inherit;font-size:var(--font-size-base);transition:border-color .15s,box-shadow .15s}.place-picker__input::placeholder{color:var(--color-text-placeholder)}.place-picker__input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-input-focus-ring);outline:none}.place-picker__input:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.place-picker__clear{right:var(--space-3);cursor:pointer;padding:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-sm);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;line-height:1;display:flex;position:absolute}.place-picker__clear:hover{color:var(--color-text);background:var(--color-surface-alt)}.place-picker__status{font-size:var(--font-size-xs);color:var(--color-text-muted);padding:0 var(--space-1)}.place-picker__list{z-index:200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:var(--space-1);padding:var(--space-1) 0;max-height:280px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #1018281f}.place-picker__item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background .1s;display:flex}.place-picker__item:hover,.place-picker__item--focused{background:var(--color-surface-alt)}.place-picker__item-icon{color:var(--color-text-muted);flex-shrink:0;margin-top:2px}.place-picker__item-text{flex-direction:column;min-width:0;display:flex}.place-picker__item-main{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.place-picker__item-secondary{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.place-picker__selected{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-brand-subtle);border:1px solid var(--color-border-focus);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex}.place-picker__selected-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:var(--font-weight-medium);color:var(--color-text);flex:1;overflow:hidden}.place-picker__selected-change{cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-link);font:inherit;background:0 0;border:none;flex-shrink:0;padding:0}.place-picker__selected-change:hover{color:var(--color-text-link-hover);text-decoration:underline}.trip-detail{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.trip-detail__map{background-color:var(--color-surface-alt);background-image:radial-gradient(circle at 20% 10%, #ffffff40, transparent 42%), linear-gradient(145deg, var(--color-primary-700), var(--color-primary-900));background-position:50%;background-repeat:no-repeat;background-size:cover;flex-shrink:0;justify-content:center;align-items:center;height:240px;display:flex;position:relative}.trip-detail__map--photo{background-position:50%;background-repeat:no-repeat;background-size:cover}.trip-detail__map-hint{font-size:var(--font-size-sm);color:#ffffffd1;letter-spacing:.05em;text-transform:uppercase;font-weight:var(--font-weight-medium);pointer-events:none;-webkit-user-select:none;user-select:none}.trip-detail__panel{background:var(--color-surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;z-index:2;padding-bottom:var(--bottom-nav-height);flex-direction:column;flex:1;margin-top:-24px;display:flex;position:relative;overflow:hidden;box-shadow:0 -4px 20px #10182814}.trip-detail__drag-handle{background:var(--color-neutral-300);border-radius:var(--radius-pill);width:36px;height:4px;margin:var(--space-3) auto var(--space-2);flex-shrink:0}.trip-detail__tabs{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4) var(--space-3);scrollbar-width:none;flex-shrink:0;display:flex;overflow-x:auto}.trip-detail__tabs::-webkit-scrollbar{display:none}.trip-detail__tab{cursor:pointer;font:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-muted);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:6px;transition:background .15s,color .15s;display:inline-flex}.trip-detail__tab-warning{color:var(--color-warning-500,#f59e0b);font-weight:var(--font-weight-bold);line-height:1}.trip-detail__tab:hover{color:var(--color-text);background:var(--color-surface-alt)}.trip-detail__tab--active{background:var(--color-primary-100);color:var(--color-brand);font-weight:var(--font-weight-semibold)}.trip-detail__tab--add{border:1.5px solid var(--color-border);border-radius:var(--radius-pill);width:36px;height:36px;font-size:var(--font-size-lg);color:var(--color-text-muted);justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.trip-detail__tab--add:hover{background:var(--color-surface-alt);color:var(--color-text)}.trip-detail__content{flex:1;overflow-y:auto}.trip-detail__section{padding:var(--space-2) var(--space-4) var(--space-8);gap:var(--space-4);display:grid}.trip-detail__section-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.trip-detail__nav-actions{align-items:center;gap:var(--space-2);display:flex}.trip-detail__profile-pill{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-pill);align-items:center;gap:var(--space-2);padding:4px var(--space-2) 4px 4px;cursor:pointer;color:var(--color-text);display:inline-flex}.trip-detail__profile-avatar{object-fit:cover;border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:50%;width:24px;height:24px}.trip-detail__profile-avatar--fallback{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}.trip-detail__profile-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:88px;overflow:hidden}.trip-detail__section-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.trip-detail__section-add{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-brand);color:#fff;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;border:none;transition:background .15s;display:inline-flex}.trip-detail__section-add:hover{background:var(--color-brand-hover)}.trip-detail__form-card{gap:var(--space-4);display:grid}.trip-detail__form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.trip-detail__stack{gap:var(--space-3);display:grid}.trip-detail__activity-library-toolbar{justify-content:space-between;align-items:end;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.trip-detail__activity-row{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.trip-detail__activity-info{gap:var(--space-1);min-width:0;display:grid}.trip-detail__muted{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.trip-detail__map-link{align-items:center;gap:var(--space-1);color:var(--color-text-link);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;flex-shrink:0;display:inline-flex}.trip-detail__settings-actions{justify-content:flex-end;gap:var(--space-3);display:flex}.trip-detail__settings-utility{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.trip-detail__settings-utility-toggle{width:100%;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:var(--space-3) var(--space-4);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.trip-detail__settings-utility-panel{border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);gap:var(--space-2);display:grid}.trip-detail__settings-utility-actions{justify-content:flex-start;display:flex}.trip-detail__advanced-transfer{border-top:1px solid var(--color-border);padding-top:var(--space-3);gap:var(--space-2);display:grid}.trip-detail__advanced-transfer:first-child{border-top:none;padding-top:0}.trip-detail__settings-utility-actions--wrap{gap:var(--space-3);flex-wrap:wrap;display:flex}.trip-detail__file-input{display:none}.trip-detail__day-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding-top:var(--space-1);display:flex}.trip-detail__day-meta{gap:var(--space-1);display:grid}.trip-detail__day-date{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.trip-detail__day-header-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex;position:relative}.trip-detail__day-menu-btn{min-width:34px;height:34px;padding:0 var(--space-2);border-radius:var(--radius-md);cursor:pointer;color:#ffffffc7;letter-spacing:.1em;background:#ffffff0f;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .15s,color .15s;display:flex}.trip-detail__day-menu-btn:hover{color:#fff;background:#ffffff24}.trip-detail__day-menu-dropdown{border-radius:var(--radius-md);z-index:15;background:#1f2937;border:1px solid #ffffff29;min-width:130px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #00000059}.trip-detail__day-menu-item{color:#ffffffe0;text-align:left;width:100%;font:inherit;font-size:var(--font-size-sm);padding:var(--space-3) var(--space-4);cursor:pointer;background:0 0;border:none}.trip-detail__day-menu-item:hover{background:#ffffff14}.trip-detail__day-menu-item--danger{color:#fca5a5}.trip-detail__day-menu-item--danger:hover{background:#f8717124}.trip-detail__timeline{margin:0;padding:0;list-style:none}.trip-detail__tl-item{gap:var(--space-3);align-items:stretch;display:flex}.trip-detail__tl-rail{flex-direction:column;flex-shrink:0;align-items:center;width:12px;display:flex}.trip-detail__tl-dot{background:var(--color-brand);width:12px;height:12px;margin-top:var(--space-4);z-index:1;border-radius:50%;flex-shrink:0}.trip-detail__tl-line{background:var(--color-neutral-200);width:2px;margin-top:var(--space-1);flex:1}.trip-detail__tl-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-1);gap:var(--space-1);flex:1;display:grid}.trip-detail__tl-category{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.trip-detail__tl-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.trip-detail__tl-time{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);margin:0}.trip-detail__tl-notes{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-snug);margin:0}.trip-detail__tl-actions-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.trip-detail__tl-map-link{min-height:36px;padding:0 var(--space-3);color:#93c5fd;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:#3b82f61f;border:1px solid #60a5fa47;border-radius:999px;align-items:center;gap:6px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.trip-detail__tl-map-link:hover,.trip-detail__tl-map-link:focus-visible{color:#dbeafe;background:#3b82f633;border-color:#93c5fd7a}.trip-detail__tl-travel{gap:var(--space-3);align-items:center;display:flex}.trip-detail__tl-travel .trip-detail__tl-rail{flex-direction:column;align-items:center}.trip-detail__tl-travel-line{background:repeating-linear-gradient(to bottom, var(--color-neutral-300) 0px, var(--color-neutral-300) 4px, transparent 4px, transparent 8px);width:2px;height:32px}.trip-detail__tl-travel-body{justify-content:space-between;align-items:center;gap:var(--space-3);flex:1;display:flex}.trip-detail__tl-travel-text{font-size:var(--font-size-sm);color:var(--color-text-muted)}.trip-detail__tl-travel-edit{font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-brand);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;transition:background .15s}.trip-detail__tl-travel-edit--danger{color:var(--color-error-500)}.trip-detail__tl-travel-edit--danger:hover{background:#f8717126}.trip-detail__cruise-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);background:var(--color-surface);gap:var(--space-2);display:grid}.trip-detail__cruise-card--day{background:color-mix(in srgb, var(--color-surface) 80%, var(--color-primary-100))}.trip-detail__cruise-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.trip-detail__cruise-head-main{gap:2px;min-width:0;display:grid}.trip-detail__cruise-head-actions{align-items:center;gap:var(--space-1);display:inline-flex}.trip-detail__cruise-title{font-size:var(--font-size-base);color:var(--color-text);line-height:1.3}.trip-detail__cruise-port-days{gap:var(--space-3);display:grid}.trip-detail__cruise-port-day{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);background:var(--color-surface-alt);display:grid}.trip-detail__cruise-port-date{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.trip-detail__checkbox-row{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text);display:inline-flex}.trip-detail__tl-travel-edit:hover{background:var(--color-brand-subtle)}.trip-detail__modal-form{gap:var(--space-4);display:grid}.trip-detail__modal-actions{justify-content:flex-end;gap:var(--space-3);display:flex}@media (width<=600px){.trip-detail__form-grid{grid-template-columns:1fr}.trip-detail__map{height:180px}}.trip-detail__summary-header{gap:var(--space-1);display:grid}.trip-detail__summary-heading{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-2)}.trip-detail__summary-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;padding:var(--space-4);cursor:pointer;font:inherit;text-align:left;flex-direction:column;gap:2px;transition:background .15s,border-color .15s;display:flex}.trip-detail__summary-day:hover{background:var(--color-surface-alt);border-color:var(--color-brand)}.trip-detail__summary-day-header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.trip-detail__summary-day-info{flex:1;gap:2px;min-width:0;display:grid}.trip-detail__summary-day-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);align-items:center;gap:6px;display:inline-flex}.trip-detail__summary-day-warning{color:var(--color-warning-500,#f59e0b);font-weight:var(--font-weight-bold)}.trip-detail__summary-day-description{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-snug);margin:0}.trip-detail__field-group{flex-direction:column;gap:4px;display:flex}.trip-detail__field-group--full{grid-column:1/-1}.trip-detail__field-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.trip-detail__textarea{box-sizing:border-box;background:var(--color-surface-elevated,var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md,8px);width:100%;color:var(--color-text);font-size:var(--font-size-base);font-family:inherit;line-height:var(--line-height-snug);resize:vertical;outline:none;padding:10px 12px;transition:border-color .15s}.trip-detail__textarea:focus{border-color:var(--color-primary)}.trip-detail__textarea::placeholder{color:var(--color-text-muted)}.trip-detail__read-more{cursor:pointer;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:500}.trip-detail__summary-day-chips{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right;flex-shrink:0;margin:0}.trip-detail__summary-day-badges{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.trip-detail__summary-day-badge{border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.02em;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.trip-detail__summary-day-badge--flight{color:#bfdbfe;background:#3b82f62e;border:1px solid #93c5fd73}.trip-detail__summary-day-badge--cruise{color:#bbf7d0;background:#10b9812e;border:1px solid #6ee7b773}.trip-detail__summary-flight{align-items:flex-start;gap:var(--space-2);display:flex}.trip-detail__summary-flight>:first-child{flex:1;min-width:0}.trip-detail__journey-group{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.trip-detail__journey-header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-1);display:flex}.trip-detail__journey-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.trip-detail__journey-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.trip-detail__journey-segment{gap:var(--space-2);display:grid}.trip-detail__layover-row{align-items:center;gap:var(--space-1);color:var(--color-brand);background:var(--color-primary-50,#eff6ff);border:1px dashed var(--color-primary-300,#93c5fd);border-radius:var(--radius-pill);padding:4px var(--space-2);font-size:var(--font-size-xs);width:fit-content;margin:0 auto;display:inline-flex}.trip-detail__day-flights{gap:var(--space-2);background:var(--color-primary-50,#eff6ff);border:1px solid var(--color-primary-200,#bfdbfe);border-radius:var(--radius-lg);padding:var(--space-3);display:grid}.trip-detail__day-flights-label{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-brand);margin:0;display:flex}.trip-detail__schedule{gap:var(--space-3);display:grid}.trip-detail__view-toggle{border-radius:var(--radius-pill);background:var(--color-surface-alt);border:1px solid var(--color-border);align-items:center;gap:2px;padding:2px;display:inline-flex}.trip-detail__view-toggle-btn{color:var(--color-text-muted);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:none;padding:7px 10px;line-height:1;transition:background .12s,color .12s}.trip-detail__view-toggle-btn:hover{color:var(--color-text)}.trip-detail__view-toggle-btn--active{background:var(--color-brand);color:#fff}.trip-detail__schedule-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#0e1118;grid-template-columns:56px minmax(0,1fr);display:grid;overflow:hidden}.trip-detail__schedule-hours{background:#111624;border-right:1px solid #ffffff14}.trip-detail__schedule-hour-label{color:#f5f7ffc2;font-size:11px;font-weight:var(--font-weight-medium);letter-spacing:.03em;justify-content:flex-end;align-items:flex-start;padding:6px 8px 0 0;display:flex}.trip-detail__schedule-canvas{cursor:copy;background:#0b0f18;position:relative}.trip-detail__schedule-canvas:focus-visible{outline-offset:-2px;outline:2px solid #60a5fae6}.trip-detail__schedule-hour-line{pointer-events:none;background:#ffffff17;height:1px;position:absolute;left:0;right:0}.trip-detail__schedule-block{z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid #ffffff29;border-radius:12px;gap:4px;padding:8px 10px;display:grid;position:absolute;overflow:hidden;box-shadow:0 10px 24px #02081775}.trip-detail__schedule-block:after{content:"";pointer-events:none;background:linear-gradient(145deg,#ffffff2e,#0000 42%);position:absolute;inset:0}.trip-detail__schedule-block-kind{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:var(--font-weight-semibold);color:#0d17309e;z-index:1;position:relative}.trip-detail__schedule-block-title{color:#0b1632;font-size:12px;font-weight:var(--font-weight-semibold);z-index:1;line-height:1.2;position:relative}.trip-detail__schedule-block-time,.trip-detail__schedule-block-meta{color:#091329d1;z-index:1;font-size:11px;line-height:1.2;position:relative}.trip-detail__schedule-block--flight{background:linear-gradient(165deg,#111d39 0%,#0c1630 55%,#0a1429 100%);border-color:#a4baff4d}.trip-detail__schedule-block--flight:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#8fa7e01f,#8fa7e08c,#8fa7e01f);height:1px;position:absolute;top:34px;left:10px;right:10px}.trip-detail__schedule-block--flight .trip-detail__schedule-block-kind{color:#b6cdffb3}.trip-detail__schedule-block--flight .trip-detail__schedule-block-title{color:#f8fbff;font-family:var(--font-family-heading)}.trip-detail__schedule-block--flight .trip-detail__schedule-block-time,.trip-detail__schedule-block--flight .trip-detail__schedule-block-meta{color:#ddeaffe6}.trip-detail__schedule-block--preflightDrive{background:linear-gradient(160deg,#ffc777,#eea85d);border-color:#5f360840}.trip-detail__schedule-block--airportBuffer{background:linear-gradient(160deg,#f8e88d,#e4cb67);border-color:#6a560f40}.trip-detail__schedule-block--airportProcessing{background:linear-gradient(160deg,#99e2f5,#69b9d7);border-color:#13495f3d}.trip-detail__schedule-block--airportTransfer{background:linear-gradient(160deg,#b8edd8,#8dceb4);border-color:#114e3e3d}.trip-detail__schedule-block--hotelCheckIn{background:linear-gradient(160deg,#e7d8ff,#cdb7f6);border-color:#38236738}.trip-detail__schedule-block--activity{background:linear-gradient(160deg,#a9deff,#7ec4f0);border-color:#0d477b38}.trip-detail__schedule-block--cruiseEmbark{background:linear-gradient(160deg,#fddfb5,#f2bb77);border-color:#5c34093d}.trip-detail__schedule-block--cruisePort{background:linear-gradient(160deg,#b0e8ff,#7bcdf2);border-color:#0745723d}.trip-detail__schedule-block--cruiseAllAboard{background:linear-gradient(160deg,#f9c1d1,#ee91ad);border-color:#7518373d}.trip-detail__schedule-block--cruiseAtSea{background:linear-gradient(160deg,#b8d8ff,#90baf0);border-color:#14366c3d}.trip-detail__schedule-block--cruiseDisembark{background:linear-gradient(160deg,#d5f3c4,#abdfa2);border-color:#1f54163d}.trip-detail__schedule-block--auto{border-style:dashed}.trip-detail__schedule-block--compact{gap:2px;padding-top:6px}.trip-detail__schedule-block--activity{cursor:pointer}.trip-detail__schedule-block--compact .trip-detail__schedule-block-kind{font-size:9px}.trip-detail__schedule-block--compact .trip-detail__schedule-block-meta{display:none}@media (width<=600px){.trip-detail__schedule-grid{grid-template-columns:48px minmax(0,1fr)}.trip-detail__schedule-block{border-radius:10px;padding:6px 7px}.trip-detail__schedule-block-time,.trip-detail__schedule-block-meta{font-size:10px}}.trip-detail__readonly-badge{font-size:var(--text-xs);background:var(--color-warning-surface,#fff3cd);color:var(--color-warning-text,#856404);border:1px solid var(--color-warning-border,#ffc107);white-space:nowrap;border-radius:99px;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.status-badge{border-radius:var(--radius-pill);padding:4px var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;line-height:1;display:inline-flex}.status-badge--planning{color:var(--color-neutral-700);background:#ffffffdb}.status-badge--ready{background:var(--color-success-bg);color:var(--color-success-text)}.status-badge--completed{background:var(--color-info-bg);color:var(--color-info-text)}.trip-card{padding:0;position:relative;overflow:hidden}.trip-card__open{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:grid}.trip-card__media{aspect-ratio:16/10;position:relative;overflow:hidden}.trip-card__image{object-fit:cover;width:100%;height:100%;display:block}.trip-card__image--placeholder{background:radial-gradient(circle at 20% 20%, #ffffff42, transparent 45%), linear-gradient(140deg, var(--color-primary-300), var(--color-primary-700))}.trip-card__status{top:var(--space-3);left:var(--space-3);position:absolute}.trip-card__content{gap:var(--space-1);padding:var(--space-5);display:grid}.trip-card__title{color:var(--color-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.trip-card__subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-snug);margin:0}.trip-card__duration{color:var(--color-text-muted);font-size:var(--font-size-xl);margin:0}.trip-card__summary{color:var(--color-brand);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.trip-card__menu{top:var(--space-3);right:var(--space-3);z-index:10;position:absolute}.trip-card__menu-trigger{border-radius:var(--radius-pill);color:#fff;cursor:pointer;background:#00000080;border:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s;display:inline-flex}.trip-card__menu-trigger:hover{background:#000000a6}.trip-card__menu-popover{top:calc(100% + var(--space-1));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:20;padding:var(--space-1);min-width:144px;position:absolute;right:0;overflow:hidden}.trip-card__menu-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;border-radius:var(--radius-md);text-align:left;background:0 0;border:none;transition:background .12s;display:flex}.trip-card__menu-item:hover{background:var(--color-surface-alt)}.trip-card__menu-item--danger{color:var(--color-error-600)}.trip-card__menu-item--danger:hover{background:var(--color-error-50)}.trips-page{min-height:100vh;padding-bottom:calc(var(--bottom-nav-height) + 72px);flex-direction:column;display:flex}.trips-page__main{padding:var(--space-5) var(--space-4);max-width:var(--container-max-width);flex:1;width:100%;margin:0 auto}.trips-page__nav-actions{align-items:center;gap:var(--space-2);display:flex}.trips-page__profile-pill{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-pill);align-items:center;gap:var(--space-2);padding:4px var(--space-2) 4px 4px;cursor:pointer;color:var(--color-text);display:inline-flex}.trips-page__profile-avatar{object-fit:cover;border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:50%;width:24px;height:24px}.trips-page__profile-avatar--fallback{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}.trips-page__profile-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:88px;overflow:hidden}.trips-page__empty{text-align:center;padding:var(--space-16) var(--space-4);justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.trips-page__empty-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.trips-page__empty-sub{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0}.trips-page__nav-spacer{width:32px;height:32px}.trips-page__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));display:grid}.trips-page__cta{bottom:var(--bottom-nav-height);padding:var(--space-4) var(--space-4) var(--space-3);background:linear-gradient(to top, var(--color-bg) 70%, transparent);z-index:10;position:fixed;left:0;right:0}.trips-page__modal-form{gap:var(--space-4);display:grid}.trips-page__modal-actions{justify-content:flex-end;gap:var(--space-3);display:flex}
