:root{--color-primary:#7c3aed;--color-primary-light:#f5f3ff;--color-primary-border:#ddd6fe;--color-primary-bg:#fdf4ff;--color-primary-badge:#f3e8ff;--color-accent:#a855f7;--color-text:#1f2937;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-text-light:#d1d5db;--color-text-dark:#374151;--color-text-darkest:#111827;--color-border:#e5e7eb;--color-bg:#fafafa;--color-bg-subtle:#f3f4f6;--color-bg-card:#f9fafb;--color-success-bg:#d1fae5;--color-success-text:#065f46;--color-success-accent:#16a34a;--color-error-bg:#fee2e2;--color-error-text:#991b1b;--color-error-accent:#dc2626;--color-warning-bg:#fef3c7;--color-warning-text:#92400e;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--shadow-sm:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 2px 12px rgba(0,0,0,.07);--shadow-lg:0 2px 12px rgba(0,0,0,.08);--shadow-xl:0 4px 24px rgba(0,0,0,.1);--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:16px;--radius-3xl:20px;--radius-full:999px}*,:after,:before{box-sizing:border-box}.page{min-height:100vh;background:linear-gradient(135deg,#fdf2f8,#ede9fe);font-family:var(--font-family);padding:24px 16px;overflow-x:hidden}.page--padded{padding:32px 16px}.page--centered{display:flex;align-items:center;justify-content:center;padding:0}.container{max-width:960px;margin:0 auto}.container--narrow{max-width:760px}.container--slim{max-width:540px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap;gap:12px}.page-header--dashboard{margin-bottom:28px}.page-header--centered{text-align:center;margin-bottom:24px;display:block}.page-title{font-size:26px;font-weight:700;color:var(--color-text);margin:0}.page-title--lg{font-size:28px;font-weight:800}.page-title--xl{font-size:32px}.page-subtitle{font-size:14px;color:var(--color-text-secondary);margin-top:4px}.page-subtitle--centered{margin:4px 0 0}.page-subtitle--spaced{margin-bottom:24px}.meta-text{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.text-link{color:var(--color-primary)}.text-muted{color:var(--color-text-tertiary)}.btn{font-family:var(--font-family);font-size:13px;font-weight:600;border-radius:var(--radius-md);padding:8px 16px;cursor:pointer;white-space:nowrap;flex-shrink:0;text-decoration:none;display:inline-block;border:none;line-height:normal}.btn--primary{color:#fff;background:var(--color-primary)}.btn--outlined{color:var(--color-primary);background:#fff;border:1.5px solid var(--color-primary)}.btn--sm{padding:7px 14px}.btn--sm-narrow{padding:7px 12px}.btn--lg{padding:14px;font-size:15px}.btn--full{width:100%}.btn--bold,.btn--new-trip{font-weight:700}.btn--new-trip{color:#fff;background:var(--color-primary);padding:8px 14px}.btn--add{background:none;border:1.5px dashed #c4b5fd;padding:8px 16px;width:100%;margin-top:4px}.btn--add,.btn--import{color:var(--color-primary)}.btn--import{background:#faf5ff;border:1px solid var(--color-primary-border);padding:6px 14px;white-space:nowrap}.btn--generate{color:#fff;background:var(--color-primary);padding:8px 16px}.btn--cancel{background:none}.btn--cancel,.btn--cancel-white{padding:10px 16px;color:var(--color-text-secondary);border:1px solid var(--color-border);font-size:14px}.btn--cancel-white{background:#fff}.btn--import-parse{flex:1 1;padding:10px 16px;background:var(--color-primary);color:#fff;font-size:14px}.btn--disabled{opacity:.5}.btn--sent{color:var(--color-success-accent);border-color:var(--color-success-accent);opacity:.8;cursor:default}.btn-delete{font-size:11px;border:none;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-delete,.btn-remove{color:var(--color-error-accent);background:none;cursor:pointer}.btn-remove{font-size:12px;border:1px solid #fca5a5;border-radius:var(--radius-sm);padding:3px 8px}.form-input{padding:9px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text);background:var(--color-bg);width:100%;box-sizing:border-box;outline:none;font-family:inherit}.form-input--login{padding:12px 14px;font-size:15px;border-radius:var(--radius-lg);margin-bottom:10px}.form-input--brief{padding:10px 12px;margin-bottom:10px}.form-select{width:100%;padding:8px 10px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);background:var(--color-bg);box-sizing:border-box;font-family:inherit;cursor:pointer}.form-label{font-size:12px;font-weight:600;color:var(--color-text-dark);margin-bottom:5px;letter-spacing:.02em}.form-label--upper{font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.form-hint,.form-label--upper{font-size:11px;color:var(--color-text-tertiary)}.form-hint{margin-top:4px}.form-error{color:var(--color-error-accent);font-size:13px;margin-bottom:8px}.form-textarea{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);background:var(--color-bg);font-family:inherit;resize:vertical;box-sizing:border-box;outline:none;line-height:1.5}.section{background:#fff;border-radius:var(--radius-2xl);padding:20px 24px;box-shadow:var(--shadow-md);margin-bottom:16px}.section--padded{padding:20px}.section--card{padding:24px 20px;text-align:center;box-shadow:var(--shadow-lg)}.section-title{font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 16px}.status-box{padding:12px 16px;border-radius:var(--radius-lg);font-size:14px;margin-bottom:16px;line-height:1.5}.status-box--success{background:var(--color-success-bg);color:var(--color-success-text)}.status-box--error{background:var(--color-error-bg);color:var(--color-error-text)}.result-box{padding:12px 16px;border-radius:var(--radius-lg);font-size:14px;margin-bottom:16px;line-height:1.4}.result-box--success{background:var(--color-success-bg);color:var(--color-success-text)}.result-box--error{background:var(--color-error-bg);color:var(--color-error-text)}.result-box--inline{margin-top:-4px;margin-bottom:8px}.result-box--tight{margin-top:4px}.empty-state{text-align:center;color:var(--color-text-secondary);padding:60px;font-size:15px}.nav-bar{display:flex;justify-content:space-between;margin-bottom:16px}.nav-bar--lg{margin-bottom:20px}.nav-link{font-size:13px;color:var(--color-primary);text-decoration:none}.trip-grid{display:flex;flex-direction:column;gap:12px}.trip-card{background:#fff;border-radius:var(--radius-2xl);padding:16px 20px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.trip-card__left{display:flex;gap:14px;align-items:flex-start;flex:1 1}.trip-card__left-inner{min-width:0}.trip-card__right{display:flex;align-items:center;gap:8px;flex-shrink:0}.trip-emoji{font-size:28px;line-height:1;flex-shrink:0}.trip-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}.trip-name{font-size:16px;font-weight:700;color:var(--color-text)}.badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full);white-space:nowrap}.trip-today-theme{background:var(--color-primary-bg);padding:4px 8px;border-radius:var(--radius-sm);display:inline-block}.trip-countdown,.trip-today-theme{font-size:12px;color:var(--color-primary);margin-top:4px}.trip-countdown{font-weight:700;white-space:nowrap}.trip-actions{display:flex;gap:8px}.trip-email-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.countdown-box{background:#fff;border-radius:var(--radius-2xl);padding:28px 20px;text-align:center;box-shadow:var(--shadow-lg);margin-bottom:16px}.count-num{font-size:72px;font-weight:800;color:var(--color-primary);line-height:1}.count-label{font-size:18px;color:var(--color-text-dark);margin-top:4px;font-weight:500}.count-date{font-size:13px;margin-top:6px}.card-label,.count-date{color:var(--color-text-tertiary)}.card-label{font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}.theme-emoji{font-size:40px;margin-bottom:8px}.theme-title{font-size:22px;font-weight:700;color:var(--color-text);margin:0 0 8px}.theme-focus{font-size:14px;color:var(--color-text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.day-badge{display:inline-block;margin-top:12px;background:var(--color-primary-badge);color:var(--color-primary);border-radius:var(--radius-3xl);padding:4px 12px;font-size:12px;font-weight:600}.action-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--color-bg-subtle);gap:12px}.action-row--no-border{border-bottom:none}.action-info{flex:1 1}.action-label{font-size:14px;font-weight:600;color:var(--color-text)}.action-desc{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.action-note{color:var(--color-text-tertiary);font-style:italic}.generating-label{font-size:12px;color:var(--color-primary);font-weight:600;white-space:nowrap}.brief-date-range{display:flex;gap:10px;margin-bottom:10px}.brief-date-range__col{flex:1 1}.brief-form-actions{display:flex;gap:8px}.brief-form-body{padding:4px 0 8px}.itin-row{display:grid;grid-template-columns:22px 140px 1fr;grid-column-gap:10px;column-gap:10px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--color-bg-subtle);align-items:start}.itin-icon{font-size:14px;padding-top:2px}.itin-date{font-size:12px;color:var(--color-text-tertiary);padding-top:2px}.itin-name{font-size:14px;font-weight:600;color:var(--color-text)}.itin-meta{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.theme-row{display:grid;grid-template-columns:68px 110px 1fr;grid-column-gap:10px;column-gap:10px;padding:8px 8px 8px 10px;border-radius:var(--radius-md);margin-bottom:4px;align-items:center;border-left:3px solid transparent}.theme-row--current{background:var(--color-primary-bg);border-left-color:var(--color-accent)}.theme-row-days{font-size:12px;color:var(--color-text-dark)}.theme-row-date{font-size:12px;color:var(--color-text-tertiary)}.theme-row-topic{font-size:14px;font-weight:500;color:var(--color-text-darkest)}.theme-row--past .theme-row-days{color:var(--color-text-tertiary)}.theme-row--past .theme-row-date{color:var(--color-text-light)}.theme-row--past .theme-row-topic{color:var(--color-text-tertiary)}.dest-header{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;border-bottom:1px solid var(--color-border);padding:9px 2px;cursor:pointer;text-align:left}.dest-header__name{font-size:14px;font-weight:600;color:var(--color-text-dark);flex:1 1}.dest-header__count{font-size:12px;color:var(--color-text-tertiary);font-weight:500;white-space:nowrap}.dest-chevron{font-size:11px;color:var(--color-text-tertiary)}.recs-list{padding-top:10px;padding-bottom:6px}.rec-row{display:grid;grid-template-columns:90px 1fr;grid-column-gap:10px;column-gap:10px;padding-bottom:10px;margin-bottom:10px;align-items:start}.rec-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.rec-row:not(:last-child){border-bottom:1px solid var(--color-bg-subtle)}.rec-text{font-size:14px;color:var(--color-text-dark);line-height:1.45}.no-recs{color:var(--color-text-tertiary);font-size:14px;margin:0}.admin-section__header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:4px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-section__count{font-size:13px;font-weight:500;color:var(--color-text-tertiary)}.admin-section__chevron{font-size:11px;color:var(--color-text-secondary);transition:transform .2s;display:inline-block}.admin-section__body{margin-top:16px}.admin-frow{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.admin-ffield{display:flex;flex-direction:column;flex:1 1;min-width:130px}.admin-ffield--wide{flex:2 1}.admin-list-item{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:14px 16px;margin-bottom:12px}.admin-list-item__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.admin-list-item__num{font-size:13px;font-weight:700;color:var(--color-text-secondary)}.admin-flight-block{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:14px 16px;margin-bottom:12px}.admin-flight-block__label{font-size:13px;font-weight:700;color:var(--color-text-secondary);margin-bottom:10px}.admin-flight-preview{font-size:13px;color:var(--color-text-dark);background:#f0edf6;padding:8px 12px;border-radius:var(--radius-md);margin-top:8px;line-height:1.4}.admin-import-box{background:#fff;border-radius:var(--radius-2xl);padding:20px 24px;box-shadow:var(--shadow-md);margin-bottom:16px;border:2px solid var(--color-primary-border)}.admin-import-box__title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:8px}.admin-import-box__desc{font-size:12px;color:var(--color-text-secondary);margin:0 0 10px}.admin-import-actions{display:flex;gap:8px;margin-top:10px}.admin-theme-card{display:flex;align-items:center;gap:14px;background:#faf5ff;border-radius:var(--radius-lg);padding:12px 16px;border:1px solid #e9d5ff}.admin-theme-card__emoji{font-size:28px;line-height:1;flex-shrink:0}.admin-theme-card__name{font-size:15px;font-weight:600;color:var(--color-text)}.admin-theme-card__detail{font-size:13px;color:var(--color-primary);margin-top:2px}.admin-themes-generate{display:flex;gap:12px;align-items:center}.admin-themes-list{display:flex;flex-direction:column;gap:10px}.admin-themes-count{font-size:13px;color:var(--color-text-secondary)}.admin-footer{font-size:12px;color:var(--color-text-tertiary);text-align:center}.admin-delete-zone{text-align:center;padding:24px 0 8px;border-top:1px solid var(--color-border);margin-top:16px}.btn-delete-trip{font-size:12px;color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:4px 8px;text-decoration:underline;text-underline-offset:2px;font-family:var(--font-family)}.btn-delete-trip:hover{color:var(--color-error-accent)}.login-box{background:#fff;border-radius:var(--radius-2xl);padding:40px 36px;width:100%;max-width:380px;box-shadow:var(--shadow-xl);text-align:center}.login-emoji{font-size:40px;margin-bottom:8px}.login-title{font-size:26px;font-weight:700;color:var(--color-text);margin:0 0 6px}.login-subtitle{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px}.login-btn{width:100%;padding:13px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font-family)}.badge--restaurant{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge--activity{background:#dbeafe;color:#1e40af}.badge--shopping{background:#fce7f3;color:#9d174d}.badge--tip{background:var(--color-success-bg);color:var(--color-success-text)}.badge--stay{background:#ede9fe;color:#5b21b6}.badge--transport{background:var(--color-bg-subtle);color:var(--color-text-dark)}.badge--confirmed{background:var(--color-success-bg);color:var(--color-success-text)}.badge--needed{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge--walkin{background:var(--color-bg-subtle);color:var(--color-text-dark)}.badge-cat{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.badge--upcoming{background:#dbeafe;color:#1e40af}.badge--active{background:#f0fdf4;color:#15803d}.badge--completed{background:var(--color-bg-card);color:var(--color-text-tertiary)}.flex-row{display:flex;gap:8px}.flex-row--wide{display:flex;gap:12px}.flex-1{flex:1 1}@media (max-width:600px){.trip-card{flex-direction:column;align-items:stretch}.trip-card__right{flex-direction:row;align-items:center;gap:8px}.trip-actions{width:100%;justify-content:space-between}.trip-meta-stats{display:flex;flex-wrap:wrap;gap:4px 10px}.section{padding:16px 14px}.admin-frow{flex-direction:column;gap:8px}.admin-ffield{min-width:0;max-width:100%}.page-header{flex-direction:column;align-items:stretch}.form-input{font-size:13px;padding:8px;width:100%;max-width:300px}.form-input[type=date]{max-width:200px}.form-textarea{font-size:13px;padding:8px}.form-select{font-size:12px;padding:7px 8px;width:100%;max-width:300px}.admin-list-item{padding:12px}.admin-import-box{padding:16px 14px}}@media (max-width:480px){.brief-date-range{flex-direction:column;gap:6px}.itin-row{grid-template-columns:20px 58px 1fr;column-gap:6px;font-size:13px}.count-num{font-size:56px}}