@import url("https://fonts.googleapis.com/css2?family=Bungee&family=Inter:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap");:root{--primary-blue:#3498db;--primary-blue-dark:#2980b9;--accent-orange:#f39c12;--accent-orange-dark:#e67e22;--warm-sand:#fdfaf5;--cream:#f8f4eb;--white:#fff;--dark-ink:#2c3e50;--text-secondary:#5d6d7e;--text-muted:#95a5a6;--success:#27ae60;--warning:#f1c40f;--danger:#e74c3c;--info:#3498db;--flight-color:#3498db;--stay-color:#9b59b6;--transit-color:#1abc9c;--activity-color:#e67e22;--priority-must:#e74c3c;--priority-nice:#3498db;--priority-optional:#95a5a6;--badge-departure:#27ae60;--badge-return:#e67e22;--badge-internal:#3498db;--border-width:3px;--border-color:var(--dark-ink);--shadow-retro:6px 6px 0px 0px var(--dark-ink);--shadow-retro-sm:3px 3px 0px 0px var(--dark-ink);--shadow-retro-hover:4px 4px 0px 0px var(--dark-ink);--radius-retro:12px;--radius-sm:6px;--radius-pill:50px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--font-display:"Bungee",cursive;--font-heading:"Outfit",sans-serif;--font-body:"Inter",sans-serif;--transition-fast:150ms ease;--transition-normal:250ms ease;--footer-h:28px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background-color:var(--warm-sand);font-family:var(--font-body);line-height:1.6;min-height:100vh;overflow-y:auto}.brand,body{color:var(--dark-ink)}.brand{font-family:var(--font-heading);font-weight:800;font-size:2.25rem;letter-spacing:-1px;text-decoration:none;gap:8px}.brand-logo-img{height:56px;width:auto;margin-right:0;display:block}.brand-text-main{color:var(--dark-ink)}.brand-text-suffix{color:var(--accent-orange)}.brand-header-container{display:flex;align-items:center;justify-content:flex-start;font-family:var(--font-heading);font-weight:800;font-size:2.5rem;gap:12px;line-height:1}.login-brand{justify-content:center}.brand-logo-responsive{height:1em;width:auto;display:block}.brand-icon{display:none}@media (max-width:480px){.brand-header-container{font-size:1.75rem;gap:8px}.trips-header .header-top{flex-direction:column;align-items:flex-start!important;gap:12px}.trips-header .auth-controls{width:100%;justify-content:space-between}.user-name-full{display:none}.user-name-short{display:inline-block!important}}.user-name-short{display:none}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:1.75rem}h3{font-size:1.25rem}h4{font-size:1.125rem}.brand-title{font-family:var(--font-display);font-size:2rem;letter-spacing:1px}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-small{font-size:.875rem}.text-xs{font-size:.75rem}.app-container{flex-direction:column}#auth-view,.app-container{min-height:100vh;display:flex}#auth-view{align-items:center;justify-content:center;padding:var(--space-lg);background:linear-gradient(135deg,var(--warm-sand) 0,var(--cream) 100%)}.auth-card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro);padding:var(--space-2xl);max-width:420px;width:100%;text-align:center}.auth-card .brand-title{margin-bottom:var(--space-sm)}.auth-card p{color:var(--text-secondary);margin-bottom:var(--space-lg)}.auth-card form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-card input[type=email]{padding:var(--space-md);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1rem;transition:var(--transition-fast)}.auth-card input[type=email]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(52,152,219,.2)}.divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--text-muted)}.divider:after,.divider:before{content:"";flex:1 1;height:2px;background:var(--cream)}.auth-card .small{font-size:.75rem;color:var(--text-muted);margin-top:var(--space-xs)}.btn-primary{background:var(--accent-orange);color:var(--white);border:var(--border-width) solid var(--border-color);padding:14px 28px;font-family:var(--font-display);font-size:.875rem;letter-spacing:.5px;cursor:pointer;border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);transition:var(--transition-fast)}.btn-primary:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--dark-ink)}.btn-primary:active{transform:translate(3px,3px);box-shadow:none}.btn-primary-compact{background:var(--accent-orange);color:var(--white);border:var(--border-width) solid var(--border-color);width:42px;height:42px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.25rem;line-height:1;cursor:pointer;box-shadow:var(--shadow-retro-sm);transition:var(--transition-fast)}.btn-primary-compact:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--dark-ink)}.btn-primary-compact:active{transform:translate(3px,3px);box-shadow:none}.btn-secondary{background:var(--white);color:var(--dark-ink);border:var(--border-width) solid var(--border-color);padding:14px 28px;font-family:var(--font-heading);font-weight:600;font-size:.875rem;cursor:pointer;border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);transition:var(--transition-fast)}.btn-secondary:hover{background:var(--cream);transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--dark-ink)}.btn-danger{background:#dc2626;color:var(--white);border:var(--border-width) solid var(--border-color);padding:14px 28px;font-family:var(--font-heading);font-weight:600;font-size:.875rem;cursor:pointer;border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);transition:var(--transition-fast)}.btn-danger:hover{background:#b91c1c;transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--dark-ink)}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed;transform:none;box-shadow:var(--shadow-retro-sm)}.btn-text{background:none;border:none;color:var(--text-secondary);font-family:var(--font-body);font-size:.875rem;cursor:pointer;padding:var(--space-sm) var(--space-md);transition:var(--transition-fast)}.btn-text:hover{color:var(--dark-ink)}.btn-icon{background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--space-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.btn-icon:hover{background:var(--cream)}.main-header{background:var(--white);border-bottom:var(--border-width) solid var(--border-color);flex-shrink:0;z-index:1000;position:relative;padding:0}.header-content{padding:var(--space-md);height:70px}.header-left{display:flex;align-items:center;gap:var(--space-md)}.main-nav{display:flex;overflow-x:auto;padding:0 var(--space-md);border-top:var(--border-width) solid var(--border-color);background:var(--white);-ms-overflow-style:none;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.nav-tab{padding:var(--space-md);white-space:nowrap;background:none;font-family:var(--font-heading);font-weight:600;color:var(--text-secondary);cursor:pointer;border:none;border-bottom:3px solid transparent;transition:all .2s}.nav-tab.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue)}@media (min-width:1024px){.main-header{display:flex;align-items:center;justify-content:space-between;height:70px;padding:0 var(--space-lg)}.header-content,.header-left{display:contents}.hamburger-btn{display:none}.brand{order:1;margin-right:var(--space-lg)}#trip-switcher-container{order:2;margin-right:var(--space-lg)}.main-nav{order:3;flex:1 1;border-top:none;padding:0;justify-content:center;height:100%}.nav-tab{height:100%;padding:0 var(--space-md);display:flex;align-items:center}.header-right{order:4;margin-left:var(--space-lg)}}.nav-tab.active{background:var(--accent-orange);color:var(--white);border-color:var(--border-color)}.app-content{flex:1 1;max-width:1800px;margin:0 auto;padding:var(--space-xl);width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.view{display:flex;flex-direction:column;width:100%}#dashboard-view{height:100dvh;position:fixed;top:0;left:0;right:0;bottom:0}#trips-view{overflow:visible;height:auto}.map-view-container{width:100%;height:100%;overflow:hidden;background:#e5e7eb}#dashboard-view:has(#tab-map.active){display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;overflow:hidden}.app-content:has(#tab-map.active){max-width:none;padding:0;margin:0;overflow:hidden;height:100%;min-height:0}#tab-map.active{width:100%;height:100%;flex-direction:column}#tab-map.active .map-view-container{margin:0;height:100%;width:100%}.app-content:has(#tab-plan.active){padding:0;max-width:none}#tab-plan.active{height:100%;overflow:hidden}#dashboard-view:has(#tab-calendar.active){display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;overflow:hidden}.app-content:has(#tab-calendar.active){max-width:none;padding:0;margin:0;overflow:hidden;height:100%;min-height:0}#tab-calendar.active{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.app-content{position:relative}.map-detail-card{position:absolute;bottom:0;left:0;right:0;background:var(--white);border-radius:20px 20px 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.15);z-index:1000;transform:translateY(110%);transition:transform .3s cubic-bezier(.2,.8,.2,1);max-height:50vh;max-height:50dvh;overflow-y:auto;border-top:1px solid var(--border-color);padding:24px 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.map-detail-card .drag-handle{width:40px;height:4px;background:#e0e0e0;border-radius:2px;margin:0 auto 16px;flex-shrink:0}.map-detail-card .close-btn{position:absolute;top:16px;right:16px;background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:#999;padding:8px;z-index:2}.mini-card-preview{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.mini-card-preview:active{opacity:.7}.mini-icon{font-size:1.5rem;background:var(--cream);min-width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:2px solid var(--border-color);flex-shrink:0;margin-top:2px}.mini-info{flex:1 1;min-width:0}.mini-title{margin:0;font-size:1.1rem;line-height:1.3;font-weight:700;font-family:var(--font-heading)}.mini-meta-badge{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--text-secondary);background:#f3f4f6;padding:2px 8px;border-radius:4px}.mini-location{font-size:.85rem;color:var(--text-muted);margin-top:6px;display:flex;align-items:flex-start;gap:4px;line-height:1.4}.mini-arrow{font-size:1.2rem;color:var(--white);background:var(--primary-blue);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0;box-shadow:0 2px 4px rgba(0,0,0,.1)}#trips-view{overflow-y:auto;-webkit-overflow-scrolling:touch}.view.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-pane.active{animation:fadeIn .3s ease}.card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro);overflow:hidden}.card-header{padding:var(--space-md) var(--space-lg);border-bottom:2px solid var(--cream);display:flex;align-items:center;justify-content:space-between}.card-body{padding:var(--space-lg)}.card-footer{padding:var(--space-md) var(--space-lg);border-top:2px solid var(--cream);background:var(--cream)}.entity-card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);margin-bottom:var(--space-lg);overflow:hidden;transition:var(--transition-fast)}.entity-card:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-retro)}.entity-card-header{padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-md);border-bottom:2px dashed var(--cream)}.entity-card-body{padding:var(--space-lg)}.entity-card-footer{padding:var(--space-md) var(--space-lg);background:var(--cream);border-top:2px dashed var(--cream)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-weight:600;font-size:.625rem;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-sm);border:2px solid var(--border-color)}.badge-departure{background:var(--badge-departure);color:var(--white)}.badge-return{background:var(--badge-return);color:var(--white)}.badge-internal{background:var(--badge-internal);color:var(--white)}.badge-must-do{background:var(--priority-must);color:var(--white)}.badge-nice-to-have{background:var(--priority-nice);color:var(--white)}.badge-optional{background:var(--priority-optional);color:var(--white)}.badge-type{background:var(--cream);color:var(--dark-ink)}.avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:700;font-size:.75rem;color:var(--white);flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:.625rem}.avatar-lg{width:56px;height:56px;font-size:1rem}.avatar-group{display:flex;align-items:center}.avatar-group .avatar{margin-left:-8px}.avatar-group .avatar:first-child{margin-left:0}.avatar-organizer:after{content:"👑";position:absolute;bottom:-4px;right:-4px;font-size:.75rem}.avatar-organizer{position:relative}.traveler-list{flex-wrap:wrap}.traveler-chip,.traveler-list{display:flex;gap:var(--space-sm)}.traveler-chip{align-items:center;padding:var(--space-xs) var(--space-sm);background:var(--cream);border:2px solid var(--border-color);border-radius:var(--radius-pill);font-size:.75rem;font-weight:500}.traveler-chip .avatar{width:24px;height:24px;font-size:.5rem}.summary-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-lg);gap:var(--space-lg)}@media (min-width:768px){.summary-grid{grid-template-columns:1fr 1fr}}@media (min-width:1200px){.summary-grid{grid-template-columns:2fr 1fr}}.trip-header{grid-column:1/-1;text-align:center;padding:var(--space-xl)}.trip-title{font-family:var(--font-display);font-size:2.5rem;margin-bottom:var(--space-sm)}.trip-dates{font-size:1.25rem;color:var(--text-secondary)}.trip-destination{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--cream);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);margin-top:var(--space-md);font-weight:500}.map-container{grid-column:1/-1;height:300px;border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);overflow:hidden;box-shadow:var(--shadow-retro-sm)}#trip-map{width:100%;height:100%}.flight-summary-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md)}@media (min-width:768px){.flight-summary-grid{grid-template-columns:1fr 1fr}}.flight-summary-card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);padding:var(--space-lg);box-shadow:var(--shadow-retro-sm)}.flight-summary-card h4{margin-bottom:var(--space-md);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.flight-route,.flight-summary-card h4{display:flex;align-items:center;gap:var(--space-sm)}.flight-route{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-sm)}.flight-route .arrow{color:var(--text-muted)}.flight-meta{font-size:.875rem;color:var(--text-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.stat-item{text-align:center;padding:var(--space-md);background:var(--cream);border-radius:var(--radius-sm)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--dark-ink)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.calendar-container{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro);overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);background:var(--cream);border-bottom:var(--border-width) solid var(--border-color)}.calendar-title{font-family:var(--font-heading);font-weight:700;font-size:1.25rem}.calendar-nav{display:flex;gap:var(--space-sm)}.calendar-nav button{background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;font-weight:600;transition:var(--transition-fast)}.calendar-nav button:hover{background:var(--accent-orange);color:var(--white)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--dark-ink);color:var(--white)}.calendar-weekday{padding:var(--space-sm);text-align:center;font-family:var(--font-heading);font-weight:600;font-size:.75rem;text-transform:uppercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:100px;border-right:1px solid var(--cream);border-bottom:1px solid var(--cream);padding:var(--space-sm);cursor:pointer;transition:var(--transition-fast);position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:var(--cream)}.calendar-day.outside-month{background:#f9f9f9;color:var(--text-muted)}.calendar-day.in-trip{background:rgba(52,152,219,.08)}.calendar-day.today{background:rgba(243,156,18,.15)}.calendar-day.today:before{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--accent-orange);border-radius:50%}.day-number{font-weight:600;font-size:.875rem;margin-bottom:var(--space-xs)}.day-events{display:flex;flex-wrap:wrap;gap:2px}.day-event-dot{width:8px;height:8px;border-radius:50%}.day-event-dot.flight{background:var(--flight-color)}.day-event-dot.stay{background:var(--stay-color)}.day-event-dot.transit{background:var(--transit-color)}.day-event-dot.activity{background:var(--activity-color)}.day-detail-header{margin-bottom:var(--space-lg)}.day-detail-date{font-weight:700}.day-detail-meta{color:var(--text-secondary);font-size:.875rem}.timeline{position:relative;padding-left:var(--space-xl)}.timeline:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--cream)}.timeline-item{position:relative;padding-bottom:var(--space-lg)}.timeline-item:before{content:"";position:absolute;left:calc(-1 * var(--space-xl) + 6px);top:4px;width:10px;height:10px;border-radius:50%;border:2px solid var(--border-color);background:var(--white)}.timeline-item.flight:before{background:var(--flight-color)}.timeline-item.stay:before{background:var(--stay-color)}.timeline-item.transit:before{background:var(--transit-color)}.timeline-item.activity:before{background:var(--activity-color)}.timeline-time{font-weight:600;font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-xs)}.timeline-content{background:var(--cream);padding:var(--space-md);border-radius:var(--radius-sm);border-left:4px solid var(--dark-ink)}.timeline-content.flight{border-left-color:var(--flight-color)}.timeline-content.stay{border-left-color:var(--stay-color)}.timeline-content.transit{border-left-color:var(--transit-color)}.timeline-content.activity{border-left-color:var(--activity-color)}.timeline-title{font-weight:600;margin-bottom:var(--space-xs)}.timeline-subtitle{color:var(--text-secondary)}.tab-header{justify-content:space-between;margin-bottom:var(--space-xl)}.tab-header,.tab-title{display:flex;align-items:center}.tab-title{gap:var(--space-sm)}.tab-title h2{font-family:var(--font-heading)}.flight-card{margin-bottom:var(--space-lg)}.flight-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--cream);border-bottom:2px dashed var(--border-color)}.flight-card-body{padding:var(--space-lg)}.flight-route-display{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.flight-endpoint,.flight-endpoint.arrival{text-align:center}.airport-code{font-family:var(--font-display);font-size:2rem;letter-spacing:2px}.airport-city{font-size:.875rem;color:var(--text-secondary)}.flight-time-group{display:flex;align-items:baseline;justify-content:center;gap:4px}.flight-time{font-weight:600;margin-top:var(--space-xs)}.flight-offset{font-size:.7rem;color:var(--text-muted);font-weight:400}.flight-date{font-size:.75rem;color:var(--text-muted)}.flight-path{flex:1 1;justify-content:center;padding:0 var(--space-lg)}.flight-path,.flight-path-line{display:flex;align-items:center}.flight-path-line{gap:var(--space-sm);width:100%;max-width:300px}.flight-path-line .line{flex:1 1;height:2px;background:linear-gradient(90deg,var(--dark-ink) 50%,transparent 50%);background-size:8px 2px}.flight-path-line .plane{font-size:1.5rem;transform:rotate(0deg)}.flight-details{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px dashed var(--cream)}.flight-detail-item{display:flex;flex-direction:column;gap:var(--space-xs)}.flight-detail-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.flight-detail-value{font-weight:600}.stay-card{margin-bottom:var(--space-lg)}.stay-card-content{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--space-lg);gap:var(--space-lg)}.stay-thumbnail{width:120px;height:120px;background:var(--cream);border:2px solid var(--border-color);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:2.5rem}.stay-info h3{margin-bottom:var(--space-xs)}.stay-type{display:inline-block;margin-bottom:var(--space-sm)}.stay-dates{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-md)}.stay-date-item{display:flex;flex-direction:column}.stay-date-label{font-size:.625rem;text-transform:uppercase;color:var(--text-muted)}.stay-date-value{font-weight:600}.stay-address{align-items:flex-start;font-size:.875rem;color:var(--text-secondary)}.amenities-list,.stay-address{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.amenities-list{flex-wrap:wrap}.amenity-pill{background:var(--cream);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-size:.75rem;font-weight:500}.stay-cost{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:rgba(39,174,96,.1);border-radius:var(--radius-sm);font-size:.875rem}.stay-cost-total{font-weight:700}.transit-card{margin-bottom:var(--space-lg)}.transit-type-badge{display:flex;align-items:center;gap:var(--space-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.transit-route-display{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.transit-station{flex:1 1}.transit-station-name{font-weight:600;font-size:1rem}.transit-station-time{font-size:.875rem;color:var(--text-secondary)}.transit-arrow{font-size:1.5rem;color:var(--transit-color)}.transit-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);font-size:.875rem}.transit-meta-item{display:flex;align-items:center;gap:var(--space-xs)}.jr-pass-badge{background:linear-gradient(135deg,#27ae60,#2ecc71);color:var(--white);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.625rem;font-weight:700;text-transform:uppercase}.activities-filters{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xl)}.filter-btn{background:var(--white);border:2px solid var(--border-color);padding:var(--space-sm) var(--space-md);font-family:var(--font-heading);font-weight:600;font-size:.75rem;cursor:pointer;border-radius:var(--radius-pill);transition:var(--transition-fast)}.filter-btn:hover{background:var(--cream)}.filter-btn.active{background:var(--dark-ink);color:var(--white)}.activity-day-group{margin-bottom:var(--space-xl)}.activity-day-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--dark-ink)}.activity-day-date{font-family:var(--font-heading);font-weight:700;font-size:1rem}.activity-day-location{color:var(--text-secondary);font-size:.875rem}.activity-card{margin-bottom:var(--space-md)}.activity-card-header{display:flex;align-items:center;justify-content:space-between}.activity-title-row{display:flex;align-items:center;gap:var(--space-md)}.activity-icon{font-size:1.25rem}.activity-time-location{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin:var(--space-md) 0;font-size:.875rem}.activity-notes{background:var(--cream);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:var(--space-md);display:flex;align-items:flex-start;gap:var(--space-sm)}.modal-overlay{right:0;bottom:0;background:rgba(44,62,80,.7);padding:var(--space-lg);z-index:9999}.modal-content{max-height:80vh;animation:modalIn .3s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close{top:var(--space-md);right:var(--space-md);background:var(--white);border:2px solid var(--border-color);width:36px;height:36px;border-radius:50%;font-size:1.25rem;display:flex;align-items:center;justify-content:center;z-index:2000;transition:var(--transition-fast)}.modal-close:hover{background:var(--danger);color:var(--white);border-color:var(--danger)}#modal-body{padding:var(--space-xl)}.toast{position:fixed;bottom:var(--space-xl);right:var(--space-xl);background:var(--dark-ink);color:var(--white);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);box-shadow:var(--shadow-retro-sm);font-weight:500;animation:toastIn .3s ease;z-index:2000}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hamburger-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px}.hamburger-btn span{display:block;width:24px;height:3px;background:var(--accent-orange);border-radius:2px;transition:var(--transition-fast)}.mobile-drawer{position:fixed;top:0;left:0;width:280px;height:100vh;background:var(--dark-ink);z-index:10000;transform:translateX(-100%);transition:transform .3s ease;overflow-y:auto;padding:0}.mobile-drawer.open{transform:translateX(0)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;opacity:0;visibility:hidden;transition:opacity .3s ease}.drawer-overlay.open{opacity:1;visibility:visible}.drawer-header{padding:24px 20px;border-bottom:1px solid hsla(0,0%,100%,.1)}.drawer-user{gap:12px;margin-bottom:12px}.drawer-avatar,.drawer-user{display:flex;align-items:center}.drawer-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent-orange);justify-content:center;font-size:1.25rem}.drawer-user-info{color:#fff}.drawer-user-name{font-weight:600;font-size:1rem}.drawer-user-email{font-size:.75rem;color:hsla(0,0%,100%,.6)}.drawer-nav{padding:16px 0}.drawer-nav-item{display:flex;align-items:center;gap:12px;padding:14px 20px;color:hsla(0,0%,100%,.85);font-weight:500;cursor:pointer;transition:background .2s;border:none;background:none;width:100%;text-align:left;font-size:1rem;font-family:var(--font-body)}.drawer-nav-item:hover{background:hsla(0,0%,100%,.1)}.drawer-nav-item.active{background:var(--accent-orange);color:#fff}.drawer-nav-item .icon{font-size:1.25rem}.drawer-divider{height:1px;background:hsla(0,0%,100%,.1);margin:8px 0}.drawer-footer{padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.1);margin-top:auto}.drawer-footer-item{display:flex;align-items:center;gap:12px;padding:12px 0;color:hsla(0,0%,100%,.6);font-size:.875rem;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--font-body)}.drawer-footer-item:hover{color:#fff}.drawer-legal{padding:12px 20px}.drawer-legal-link{display:flex;align-items:center;gap:12px;padding:10px 0;color:hsla(0,0%,100%,.5);font-size:.8rem;text-decoration:none}.drawer-legal-link:hover{color:hsla(0,0%,100%,.8)}.drawer-disclosure{padding:8px 20px;font-size:.7rem;color:hsla(0,0%,100%,.35);font-style:italic}.drawer-logout-btn{color:hsla(0,100%,79%,.7)}.drawer-logout-btn:hover{color:#ff6b6b}.app-desktop-footer{display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:8px;padding:6px 24px;font-size:.7rem;color:hsla(0,0%,100%,.35);background:rgba(44,62,80,.95)}.app-desktop-footer a{color:hsla(0,0%,100%,.45);text-decoration:none;transition:color .2s}.app-desktop-footer a:hover{color:hsla(0,0%,100%,.8)}.app-desktop-footer .dot{color:hsla(0,0%,100%,.2)}.app-desktop-footer .disclosure{margin-left:12px;font-style:italic;color:hsla(0,0%,100%,.25)}.app-desktop-footer .copyright{margin-left:12px;color:hsla(0,0%,100%,.2)}@media (max-width:768px){.app-desktop-footer{display:none}}@media (max-width:1024px) and (min-width:769px){.main-header{padding:var(--space-sm) var(--space-md)}.header-content{gap:var(--space-sm)}.brand{font-size:1rem}.nav-tab{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.trip-switcher-name{max-width:100px}}@media (max-width:768px){.main-header{padding:10px 12px}.header-content{flex-direction:row;gap:var(--space-xs)}.brand{font-size:.85rem}.main-nav{display:none}.hamburger-btn{display:flex}.header-right{display:none}.trip-switcher-btn{padding:4px 8px;font-size:.75rem;border:none;background:transparent}.trip-switcher-icon{display:none}.trip-switcher-arrow{font-size:.5rem}.header-left{gap:var(--space-xs)}.app-content{padding:var(--space-md)}.trip-title{font-size:1.5rem}.modal-overlay{padding:0}.modal-content{width:100%;height:100%;max-height:100vh;border-radius:0;border:none}.modal-close{top:12px;right:12px}.flight-route-display{flex-direction:column;gap:var(--space-lg)}.flight-path{transform:rotate(90deg);padding:var(--space-md) 0}.flight-endpoint{width:100%}.stay-card-content{grid-template-columns:1fr}.stay-thumbnail{width:100%;height:160px}.calendar-day{min-height:60px;padding:var(--space-xs)}.day-number{font-size:.75rem}}@media (max-width:480px){.main-header{padding:10px 12px}.brand{font-size:.9rem}}.leaflet-container{font-family:var(--font-body)}.leaflet-popup-content-wrapper{border-radius:var(--radius-sm);border:2px solid var(--border-color)}.leaflet-popup-content{margin:var(--space-sm);font-size:.875rem}#trips-view{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-lg);background:linear-gradient(135deg,var(--warm-sand) 0,var(--cream) 100%)}.trips-container{max-width:600px;width:100%}.trips-header{text-align:center;margin-bottom:var(--space-2xl)}.trips-subtitle{color:var(--text-secondary);margin-top:var(--space-sm)}.trips-section-title{font-family:var(--font-heading);font-size:1rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:var(--space-md)}.trips-list{display:flex;flex-direction:column;gap:var(--space-md)}.trips-empty{text-align:center;padding:var(--space-xl);color:var(--text-muted)}.trip-card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);padding:var(--space-lg);display:flex;align-items:center;gap:var(--space-lg);cursor:pointer;transition:var(--transition-fast)}.trip-card:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-retro)}.trip-card:active{transform:translate(2px,2px);box-shadow:none}.trip-card-icon{font-size:2.5rem;flex-shrink:0}.trip-card-info{flex:1 1;min-width:0}.trip-card-name{font-family:var(--font-heading);font-weight:700;font-size:1.125rem;margin-bottom:var(--space-xs)}.trip-card-dates{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.trip-card-travelers{font-size:.75rem;color:var(--text-muted)}.trip-card-arrow{font-size:1.5rem;color:var(--text-muted);flex-shrink:0}.trip-card-new{background:var(--cream);border-style:dashed}.trip-card-new:hover{background:var(--white)}.password-modal{text-align:center}.password-modal h2{margin-bottom:var(--space-sm)}.password-modal p{margin-bottom:var(--space-lg)}.trip-setup-form h2{margin-bottom:var(--space-sm)}.trip-setup-form>p{margin-bottom:var(--space-lg)}.form-group{margin-bottom:var(--space-md);text-align:left}.form-group label{display:block;font-family:var(--font-heading);font-weight:600;font-size:.875rem;margin-bottom:var(--space-xs);color:var(--dark-ink)}.form-group input[type=date],.form-group input[type=password],.form-group input[type=text]{width:100%;padding:var(--space-md);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1rem;transition:var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(52,152,219,.2)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-md);gap:var(--space-md)}.form-error{background:rgba(231,76,60,.1);color:var(--danger);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:var(--space-md)}.form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.form-actions .btn-secondary{flex:1 1}.form-actions .btn-primary{flex:2 1}.trip-switcher{position:relative;z-index:10000}.trip-switcher-btn{display:flex;align-items:center;gap:var(--space-sm);background:transparent;border:1px solid rgba(44,62,80,.2);border-radius:var(--radius-pill);padding:6px 12px;font-family:var(--font-heading);font-weight:600;font-size:.875rem;cursor:pointer;transition:var(--transition-fast)}.trip-switcher-btn:hover{background:var(--cream);border-color:var(--border-color)}.trip-switcher-icon{font-size:1rem}.trip-switcher-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-switcher-arrow{font-size:.625rem;color:var(--text-muted)}.trip-switcher-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:200px;background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-retro-sm);z-index:10000;overflow:hidden}.trip-switcher-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;font-family:var(--font-body);font-size:.875rem;cursor:pointer;text-align:left;transition:var(--transition-fast)}.trip-switcher-option:hover{background:var(--cream)}.trip-switcher-option.active{background:rgba(52,152,219,.1);font-weight:600}.trip-switcher-divider{height:1px;background:var(--cream);margin:var(--space-xs) 0}.current-trip-name{font-family:var(--font-heading);font-weight:600;font-size:.875rem;padding:var(--space-sm) var(--space-md);background:var(--cream);border-radius:var(--radius-sm)}.header-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}@media (min-width:769px){.header-left{flex:1 1}.header-right{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--text-secondary)}.header-right .user-email{font-weight:500;color:var(--dark-ink)}.header-right .btn-secondary,.header-right .btn-text{font-size:.75rem;padding:var(--space-xs) var(--space-sm)}}#tab-map{height:100%;flex-direction:column}#tab-map.active{display:flex}.map-view-container{flex:1 1;position:relative;margin:calc(var(--space-xl) * -1);width:calc(100% + (var(--space-xl) * 2));height:calc(100% + (var(--space-xl) * 2))}@media (max-width:768px){.map-view-container{margin:calc(var(--space-md) * -1);width:calc(100% + (var(--space-md) * 2));height:calc(100% + (var(--space-md) * 2))}}#trip-switcher-container{display:none}@media (min-width:1280px){#trip-switcher-container{display:block}}.brand{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;transition:var(--transition-fast)}.brand-icon{font-size:1.5rem}.brand-text{font-family:var(--font-display);font-size:1.25rem;color:var(--dark-ink)}.brand:hover{transform:scale(1.02);filter:brightness(1.1)}.trip-switcher-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.trip-switcher-dates{font-size:.75rem;color:var(--text-secondary);font-weight:500}.map-info-bar{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:50;padding:0;display:flex;align-items:center;justify-content:center}@media (min-width:1280px){.map-info-bar{display:none}}.map-info-bar .trip-switcher-btn{background:hsla(0,0%,100%,.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.1);padding:8px 16px;border-radius:20px}.map-info-bar strong{color:var(--primary-blue);font-family:var(--font-heading)}#dashboard-view{height:100vh;display:flex;flex-direction:column;overflow:hidden}@media (max-width:768px){.trip-switcher-name{max-width:100px}.form-row{grid-template-columns:1fr}}.import-zone{border:2px dashed var(--border-color);background-color:var(--warm-sand);border-radius:var(--radius-retro);padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-bottom:var(--space-lg);cursor:pointer;transition:var(--transition-fast);position:relative}.import-zone.drag-active,.import-zone:hover{background-color:var(--white);border-color:var(--primary-blue);box-shadow:0 0 0 4px rgba(52,152,219,.1)}.import-icon{font-size:2rem;margin-bottom:var(--space-sm);color:var(--text-muted)}.import-text{font-family:var(--font-heading);font-weight:500;color:var(--dark-ink)}.import-text .cmd-shortcut{background:var(--white);border:1px solid var(--border-color);border-radius:4px;padding:2px 6px;font-size:.75rem;font-family:monospace;color:var(--text-secondary)}.form-divider{display:flex;align-items:center;text-align:center;color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:1px;margin:var(--space-lg) 0}.form-divider:after,.form-divider:before{content:"";flex:1 1;border-bottom:1px solid var(--border-color);opacity:.3}.form-divider span{padding:0 var(--space-md)}.login-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);min-height:50vh}.login-prompt h2{font-family:var(--font-display);font-size:2rem;margin-bottom:var(--space-md)}.login-prompt p{color:var(--text-secondary);font-size:1.125rem;margin-bottom:var(--space-lg)}.role-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-weight:600;font-size:.625rem;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-sm);border:2px solid var(--border-color)}.role-badge.organizer{background:var(--accent-orange);color:var(--white)}.role-badge.contributor{background:var(--primary-blue);color:var(--white)}.ledger-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-xl);gap:var(--space-xl);margin-top:var(--space-lg)}@media (min-width:992px){.ledger-grid{grid-template-columns:1.5fr 1fr}}.ledger-total-card{background:var(--dark-ink);color:var(--white);padding:var(--space-xl);margin-bottom:var(--space-xl)}.ledger-total-card .stat-label{color:var(--text-muted)}.ledger-total-card .stat-value{color:var(--accent-orange);font-size:3rem}.ledger-section h3{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border-color)}.balance-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.balance-amount{font-weight:700;font-size:1.1rem}.debt-list{display:flex;flex-direction:column;gap:var(--space-md)}.debt-card{justify-content:space-between;background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-retro-sm)}.debt-card,.debt-from,.debt-to{display:flex;align-items:center}.debt-from,.debt-to{flex-direction:column;gap:var(--space-xs);min-width:80px}.debt-arrow{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.debt-amount{background:var(--cream);padding:4px 12px;border-radius:var(--radius-pill);border:2px solid var(--border-color);font-weight:700;font-size:.875rem;margin-bottom:4px}.debt-arrow .arrow{font-size:1.5rem;color:var(--text-muted)}.ledger-balance-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.ledger-balance-item .traveler-info{display:flex;align-items:center;gap:var(--space-md)}.ledger-balance-item .traveler-name{font-weight:600}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.header-right{gap:var(--space-md)}.account-btn,.header-right{display:flex;align-items:center}.account-btn{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-retro);padding:6px 12px;color:var(--dark-ink);font-family:var(--font-heading);font-weight:600;font-size:.875rem;cursor:pointer;gap:8px;box-shadow:var(--shadow-retro-sm);transition:var(--transition-fast);white-space:nowrap}.account-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-retro)}.account-btn:active{transform:translate(0);box-shadow:var(--shadow-retro-sm)}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:hsla(0,0%,100%,.9);z-index:20000;display:flex;flex-direction:column;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .3s ease}.spinner{width:50px;height:50px;border-top:5px solid var(--cream);border:5px solid var(--cream);border-top-color:var(--accent-orange);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-md)}.loading-text{font-family:var(--font-heading);font-weight:700;font-size:1.25rem;color:var(--dark-ink);animation:pulse 1.5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.day-details-container{margin-top:24px;padding:24px;background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-retro);box-shadow:var(--shadow-retro-sm);animation:fadeIn .3s ease}.day-detail-header{border-bottom:2px dashed var(--border-color);padding-bottom:16px;margin-bottom:16px}.day-detail-date{font-family:var(--font-heading);font-size:1.5rem;color:var(--primary-color)}.timeline{display:flex;flex-direction:column;gap:16px}.timeline-item{display:flex;align-items:flex-start;gap:16px;padding:16px;background:var(--cream);border-radius:var(--radius-sm);border-left:4px solid var(--text-color)}.timeline-item.flight{border-left-color:var(--badge-departure)}.timeline-item.stay{border-left-color:var(--badge-internal)}.timeline-item.activity{border-left-color:var(--priority-must)}.timeline-item.transit{border-left-color:var(--badge-return)}.timeline-time{font-family:var(--font-mono);font-weight:700;white-space:nowrap;min-width:80px}.timeline-content{flex:1 1}.timeline-title{font-weight:700;font-size:1.1rem;margin-bottom:4px}.timeline-subtitle{font-size:.875rem;color:var(--text-muted)}.calendar-day.selected{border-color:var(--primary-color)!important;background-color:var(--cream)!important;transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:2}.unified-card{display:flex;background:var(--white);border-radius:12px;padding:12px;gap:12px;align-items:flex-start;box-shadow:0 1px 2px rgba(0,0,0,.04);border:1px solid #e5e7eb;margin-bottom:12px;position:relative;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden}.unified-card:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.unified-card.booked{border-color:#d1fae5;background:linear-gradient(to bottom right,#f0fdf4,#fff 40%)}.unified-card .card-left{flex-shrink:0}.unified-card .card-icon{width:36px;height:36px;background:#f3f4f6;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px}.unified-card .card-right{flex:1 1;min-width:0}.unified-card .eyebrow-row{margin-bottom:3px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1}.unified-card .status-text.text-green{color:#059669}.unified-card .status-text.text-gray{color:#9ca3af}.unified-card .card-title{margin:0;font-size:15px;font-weight:700;color:#111827;line-height:1.35;word-wrap:break-word;font-family:var(--font-body)}.unified-card .card-subtitle{font-size:13px;color:#6b7280;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-card .meta-grid{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px}.unified-card .meta-item{font-size:11px;color:#4b5563;background:#f9fafb;padding:2px 6px;border-radius:4px;font-weight:500;white-space:normal;word-break:break-word}.unified-card .card-actions{display:flex;flex-direction:column;gap:8px;margin-top:-2px;margin-left:4px}.unified-card .btn-action{border:none;background:#f3f4f6;cursor:pointer;padding:6px;border-radius:8px;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;text-decoration:none;width:32px;height:32px}.unified-card .btn-action:hover{background:#e5e7eb}.unified-card .map-btn{background:#eff6ff;color:#1d4ed8}.unified-card .map-btn:hover{background:#dbeafe}.unified-card .edit-btn{opacity:.6}.unified-card .edit-btn:hover{opacity:1}@media (max-width:480px){.unified-card{padding:10px;gap:10px}.unified-card .card-title{font-size:14px}}.details-view{display:flex;flex-direction:column;height:100%;max-height:80vh}.details-header{border-bottom:1px solid var(--border-color);position:relative;background:#fff;padding:24px 60px 16px 24px}.details-header .status-badge{display:inline-block;font-size:10px;font-weight:800;padding:4px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.details-header .status-badge.booked{background:#dcfce7;color:#166534}.details-header .status-badge.planned{background:#f3f4f6;color:#6b7280}.details-header .header-content{display:flex;gap:16px;align-items:flex-start}.details-header .header-icon{font-size:32px;background:#f8fafc;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:16px;flex-shrink:0}.details-header .header-text{flex:1 1}.details-header .type-label{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;margin-bottom:4px;display:flex;align-items:center;gap:8px}.details-header .title{font-size:18px;font-weight:800;color:var(--text-color);margin:0;line-height:1.3}.details-header .subtitle{font-size:14px;font-weight:500;color:var(--text-muted);margin-top:4px}.details-body{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:24px;flex:1 1;background:#fff}.details-body .section-row{display:flex;gap:12px}.details-body .icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.details-body .section-content{flex:1 1;font-size:14px;color:var(--text-color)}.details-body .time-row{margin-bottom:4px;line-height:1.4}.details-body .sub-text{font-size:12px;color:var(--text-muted);margin-top:2px}.details-body .location-block{margin-bottom:12px}.details-body .location-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:2px}.details-body .location-text{font-weight:500;margin-bottom:4px;line-height:1.4}.details-body .map-link{font-size:12px;color:var(--primary-blue);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#eff6ff;border-radius:6px;margin-top:2px}.details-body .map-link:hover{background:#dbeafe}.details-body .section-header{font-size:12px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.details-body .notes-box{background:#fffbeb;color:#92400e;padding:12px;border-radius:8px;font-size:14px;line-height:1.5}.details-body .cost-amount{font-size:16px;font-weight:700;color:var(--text-color)}.details-footer{padding:16px 24px;border-top:1px solid var(--border-color);background:#f8fafc;display:flex;gap:12px;border-radius:0 0 12px 12px}@media (max-width:600px){.details-view{max-height:100vh}.details-body{padding:16px}}.timeline-calendar{height:calc(100vh - 150px);min-height:600px;background:var(--warm-sand,#fdfaf5)}.timeline-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--cream,#f8f4eb);flex-wrap:wrap;gap:12px}.timeline-title h2{margin:0;font-family:var(--font-display);font-size:1.3rem}.week-range{font-size:.9rem;color:var(--text-secondary,#5d6d7e);margin-left:12px}.timeline-nav{display:flex;gap:8px}.btn-nav{padding:8px 16px;background:#fff;border:2px solid var(--border-color,#2c3e50);border-radius:6px;font-weight:600;cursor:pointer;font-size:.85rem;transition:transform .1s,box-shadow .1s;box-shadow:2px 2px 0 var(--border-color)}.btn-nav:hover{transform:translateY(-1px);box-shadow:3px 3px 0 var(--border-color)}.btn-nav:active{transform:translateY(1px);box-shadow:1px 1px 0 var(--border-color)}.timeline-instructions{padding:8px 16px;background:#fff;border-left:3px solid var(--border-color,#2c3e50);border-right:3px solid var(--border-color,#2c3e50);font-size:.8rem;color:var(--text-secondary,#5d6d7e);text-align:center}.timeline-wrapper{min-height:0;background:#fff}.hour-sidebar{flex:0 0 60px;background:var(--cream,#f8f4eb);border-right:2px solid var(--border-color,#2c3e50);display:flex;flex-direction:column}.hours-header-spacer{height:52px;background:var(--cream);border-bottom:2px solid var(--border-color);flex-shrink:0;position:relative;z-index:20}.hour-label{padding:0 8px;font-size:.7rem;color:var(--text-secondary);text-align:right;display:flex;justify-content:flex-end;align-items:flex-start;line-height:1;box-sizing:border-box}.timeline-container{display:flex;flex-direction:column;overflow-x:auto;-webkit-overflow-scrolling:touch}.timeline-grid{display:flex;min-width:100%;height:auto;max-height:1456px}.day-column{flex:1 1;border-right:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;min-width:65px}.day-column:last-child{border-right:none}.day-column.out-of-trip{background-color:rgba(0,0,0,.03)}.day-header{border-bottom:2px solid var(--border-color);text-align:center;padding:4px;position:-webkit-sticky;position:sticky;top:0;z-index:20;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.day-header.today{background:var(--primary-blue)}.day-header-dow{font-size:.75rem;line-height:1.2}.day-header-date{font-size:1.1rem;line-height:1.2}.day-slots{cursor:crosshair;touch-action:pan-y;overscroll-behavior-y:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.timeline-item{left:3px;right:3px;cursor:pointer;border:2px solid var(--border-color);z-index:5}.timeline-item:hover{z-index:15}.item-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:0 2px}.item-time{font-size:.65rem;opacity:.9;text-align:center}@media (max-width:480px){.item-title{font-size:.75rem}.item-time{font-size:.6rem}.timeline-item{padding:0 1px}}.selection-box{left:2px;right:2px;background:rgba(52,152,219,.15);border:2px solid var(--primary-blue);z-index:5;pointer-events:none}.resize-handle,.selection-box{position:absolute;border-radius:6px}.resize-handle{width:24px;height:12px;background:var(--primary-blue);left:50%;transform:translateX(-50%);cursor:ns-resize;pointer-events:auto;touch-action:none;z-index:20;display:flex;justify-content:center;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}.resize-handle:after{content:"";width:12px;height:2px;background:hsla(0,0%,100%,.7);border-radius:1px}.resize-handle.top{top:-6px}.resize-handle.bottom{bottom:-6px}.fab-add{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--accent-orange);color:#fff;border:3px solid var(--border-color);box-shadow:4px 4px 0 var(--border-color);font-size:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;transition:transform .2s}.fab-add:hover{transform:scale(1.1)}.fab-add:active{transform:scale(.95)}@media (max-width:600px){#tab-calendar{padding:0!important}.timeline-calendar{min-height:calc(100vh - 120px);border:none;background:#fff}.timeline-header{padding:8px 12px}.hour-sidebar{flex:0 0 32px}.hour-label{font-size:.5rem;padding:2px}.day-column{min-width:42px}.day-header-dow{font-size:.6rem}.day-header-date{font-size:.9rem}}.modal-content:has(.item-details-modal){display:flex;flex-direction:column;max-height:90vh;overflow:hidden}@media (min-width:768px){.modal-content:has(.item-details-modal){height:calc(100vh - 40px);max-height:calc(100vh - 40px)}}.modal-content:has(.item-details-modal) #modal-body{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden;padding:0}.item-details-modal{font-family:Inter,sans-serif;color:var(--text-primary);display:flex;flex-direction:column;height:100%;flex:1 1;min-height:0;background:#fff}.item-details-header{background:linear-gradient(135deg,#f8fafc,#eef2ff);padding:8px 12px;border-bottom:1px solid var(--border-color);position:relative;flex-shrink:0}.item-details-close-btn{position:absolute;top:16px;right:16px;background:#fff;border:1px solid var(--border-color);border-radius:50%;width:32px;height:32px;cursor:pointer;color:var(--text-secondary);font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.item-details-close-btn:hover{background:#f9fafb;color:var(--text-primary)}.header-main{gap:10px;margin-top:0}.header-icon-box,.header-main{display:flex;align-items:center}.header-icon-box{font-size:20px;background:#fff;width:36px;height:36px;border-radius:10px;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,.05);flex-shrink:0}.eyebrow-badge{display:inline-flex;align-items:center;gap:4px;background:#fff;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700;color:var(--primary-color);text-transform:uppercase;letter-spacing:.05em;box-shadow:0 1px 2px rgba(0,0,0,.05);border:1px solid #eef2ff;margin-bottom:4px}.status-dot{width:6px;height:6px;border-radius:50%;background:#22c55e}.status-dot.planned{background:#9ca3af}.title-area h2{margin:0;font-size:16px;font-weight:800;line-height:1.2;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.title-area .sub{margin-top:2px;font-size:12px;color:var(--text-secondary);font-weight:500}.added-by-text{margin-top:2px;font-size:11px;color:var(--text-muted,#9ca3af);font-weight:500;font-style:italic}.item-details-body{padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1 1;min-height:0}.info-grid{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#fff;border-bottom:1px solid var(--border-color)}.info-cell{display:flex;flex-direction:column}.info-cell label{font-size:10px;text-transform:uppercase;color:var(--text-muted);font-weight:700;margin-bottom:4px}.info-cell .val{font-size:15px;font-weight:700;color:var(--text-primary)}.info-cell .sub-val{font-size:13px;color:var(--text-secondary)}.info-cell .sub-val .tz-offset{font-size:11px;color:var(--text-muted);font-weight:500}.grid-arrow{color:#d1d5db;font-size:16px;margin:0 8px}.detail-section{padding:8px 12px;display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;gap:12px}.detail-icon-col{font-size:18px;width:24px;text-align:center;color:var(--text-muted);padding-top:2px}.detail-content-col{flex:1 1;min-width:0}.detail-text{font-size:14px;color:var(--text-primary);line-height:1.5;font-weight:500;word-break:break-word}.map-chip{display:inline-flex;margin-top:6px;font-size:12px;font-weight:600;color:var(--primary-color);text-decoration:none;background:#eff6ff;padding:4px 8px;border-radius:6px}.map-chip:hover{background:#dbeafe}details.notes-box{background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:0;margin-top:4px;overflow:hidden;transition:all .2s}summary.notes-summary{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}summary.notes-summary::-webkit-details-marker{display:none}.notes-label{font-size:11px;font-weight:700;color:#b45309;text-transform:uppercase}.notes-toggle-icon{font-size:10px;color:#b45309;transition:transform .2s}.notes-box[data-collapsed=true] .notes-toggle-icon{transform:rotate(0deg)}.notes-box[data-collapsed=false] .notes-toggle-icon{transform:rotate(180deg)}.notes-preview{padding:0 12px 8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.notes-full,.notes-preview{font-size:14px;color:#92400e;line-height:1.5;white-space:pre-wrap}.notes-full{padding:0 12px 12px}.notes-box[data-collapsed=false] .notes-preview{display:-webkit-box}.notes-box[data-collapsed=false] .notes-full,.notes-box[data-collapsed=true] .notes-preview{display:none}.notes-box[data-collapsed=true] .notes-full{display:block}.airport-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px}.map-link-sm{font-size:12px;color:var(--primary-color);text-decoration:none;font-weight:600;background:#eff6ff;padding:2px 8px;border-radius:4px}.travelers-list{display:flex;flex-wrap:wrap;gap:6px}.traveler-chip{background:#f3f4f6;color:var(--text-secondary);padding:4px 10px;border-radius:16px;font-size:12px;font-weight:600}.payer-badge{font-size:12px;color:#15803d;background:#dcfce7;padding:2px 8px;border-radius:4px;display:inline-block;width:-moz-fit-content;width:fit-content;font-weight:500;margin-top:4px}.item-details-footer{background:#fff;border-top:1px solid #f3f4f6;display:flex;gap:10px;flex-shrink:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}@media (max-width:480px){.header-icon-box{width:48px;height:48px;font-size:24px}.title-area h2{font-size:18px}}.item-details-footer .btn{flex:1 1;padding:12px;border-radius:12px;font-weight:700;cursor:pointer;border:none;font-size:15px}.item-details-footer .btn-edit{background:#f3f4f6;color:#374151}.item-details-footer .btn-done{background:#f59e0b;color:#fff;box-shadow:0 2px 4px rgba(245,158,11,.3)}.booking-cta-row{padding:0 12px 8px;flex-shrink:0}.booking-cta-btn{display:block;width:100%;padding:12px;background:#003580;color:#fff;text-align:center;border-radius:8px;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s}.booking-cta-btn:hover{background:#00224f}.item-details-comments{border-top:1px solid var(--border-color);padding:8px 12px;background:#fafafa;display:flex;flex-direction:column;gap:6px;flex:1 1;min-height:80px;overflow:visible}.item-details-comments .comments-header h4{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.item-details-comments .comments-list{overflow-y:auto;flex:1 1;min-height:0;display:flex;flex-direction:column;gap:8px;max-height:none}.item-details-comments .comment-item{display:flex;gap:10px;align-items:flex-start}.item-details-comments .comment-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.item-details-comments .comment-avatar-spacer{width:28px;flex-shrink:0}.item-details-comments .comment-item.continuation{padding-top:2px}.item-details-comments .comment-item.continuation .comment-content{font-size:13px}.item-details-comments .btn-inline{background:none;border:none;padding:0 4px;cursor:pointer;opacity:.5;font-size:12px}.item-details-comments .btn-inline:hover{opacity:1}.item-details-comments .comment-body{flex:1 1;min-width:0}.item-details-comments .comment-header{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.item-details-comments .comment-author{font-weight:600;font-size:12px;color:var(--text-primary)}.item-details-comments .comment-time{font-size:11px;color:var(--text-muted)}.item-details-comments .comment-content{font-size:13px;color:var(--text-secondary);line-height:1.4}.item-details-comments .comments-error,.item-details-comments .comments-loading,.item-details-comments .no-comments{font-size:13px;color:var(--text-muted);font-style:italic;text-align:center;padding:12px 0}.item-details-comments .comment-input-row{display:flex;gap:8px}.item-details-comments .comment-input{flex:1 1;padding:8px 12px;border:1px solid var(--border-color);border-radius:20px;font-size:13px;outline:none}.item-details-comments .comment-input:focus{border-color:var(--primary-color)}.item-details-comments .btn-send{background:#f97316;color:#fff;border:2px solid #c2410c;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:2px 2px 0 #c2410c}.item-details-comments .btn-send:hover{opacity:.9}.item-details-comments .btn-send:disabled{opacity:.5;cursor:not-allowed}.item-details-comments .comment-actions{display:flex;gap:4px;margin-left:auto;opacity:.5}.item-details-comments .comment-item:hover .comment-actions{opacity:1}.item-details-comments .comment-actions button{background:transparent;border:none;padding:2px 6px;cursor:pointer;font-size:12px;opacity:.6;border-radius:4px;transition:all .15s}.item-details-comments .comment-actions button:hover{opacity:1;background:rgba(0,0,0,.05)}.item-details-comments .comment-edit-row{display:flex;gap:6px;align-items:center;margin-top:4px}.item-details-comments .comment-edit-input{flex:1 1;padding:6px 10px;border:1px solid var(--primary-color);border-radius:8px;font-size:13px;outline:none}.item-details-comments .btn-cancel-edit,.item-details-comments .btn-save-comment{padding:4px 10px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.item-details-comments .btn-save-comment{background:var(--primary-color);color:#fff}.item-details-comments .btn-cancel-edit{background:#e5e7eb;color:#374151}.idea-comments-section .comment-actions{display:inline-flex;gap:4px;margin-left:8px;opacity:1}.idea-comments-section .comment-actions button{background:transparent;border:none;padding:2px 6px;cursor:pointer;font-size:14px;opacity:.7;border-radius:4px;transition:all .15s}.idea-comments-section .comment-actions button:hover{opacity:1;background:rgba(0,0,0,.05)}.form-input{width:100%;padding:12px 16px;font-size:15px;font-family:Inter,sans-serif;color:var(--text-primary);background:#fff;border:1px solid var(--border-color);border-radius:8px;transition:all .2s ease;outline:none;box-shadow:0 1px 2px rgba(0,0,0,.05)}.form-input:focus{border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.form-input::placeholder{color:var(--text-muted)}.flatpickr-calendar{font-family:Inter,sans-serif!important;border-radius:12px!important;box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)!important;border:none!important}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:var(--primary-color,#2563eb)!important;border-color:var(--primary-color,#2563eb)!important}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:10000!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-md);opacity:1;transition:opacity .2s}.modal-overlay.hidden{display:none!important;opacity:0;pointer-events:none}.modal-content{background:var(--white);padding:var(--space-xl);border-radius:var(--radius-retro);border:var(--border-width) solid var(--border-color);box-shadow:var(--shadow-retro);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideIn .3s forwards}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-muted);transition:color .2s}.modal-close:hover{color:var(--danger)}@media (max-width:600px){.modal-content{padding:16px!important;max-width:95vw!important;width:95vw!important;margin:0 auto}.add-item-picker{padding:0!important;width:100%}.add-item-picker .picker-options{gap:12px!important}.modal-overlay:has(.item-details-modal){padding:0!important;align-items:stretch!important}.modal-content:has(.item-details-modal){padding:0!important;border-radius:0;overflow:hidden!important;display:flex!important;flex-direction:column!important;height:100vh!important;height:100dvh!important;max-height:100vh!important;max-height:100dvh!important;width:100%!important;max-width:100%!important;border:none!important}.modal-content:has(.item-details-modal) #modal-body{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden}.item-details-modal{display:flex;flex-direction:column;height:100%;max-height:none!important;flex:1 1;min-height:0;overflow:hidden}.item-details-modal .item-details-header{padding:10px 12px;flex-shrink:0}.item-details-modal .item-details-close-btn{top:6px;right:6px;width:24px;height:24px;font-size:14px}.item-details-modal .header-main{gap:8px;margin-top:0}.item-details-modal .header-icon-box{width:32px;height:32px;font-size:16px;border-radius:8px}.item-details-modal .title-area h2{font-size:15px;line-height:1.2;margin-bottom:2px}.item-details-modal .title-area .sub{font-size:11px;margin-top:0}.item-details-modal .eyebrow-badge{font-size:9px;padding:1px 6px;margin-bottom:2px;height:18px}.item-details-modal .info-grid{padding:6px 12px}.item-details-modal .info-cell label{font-size:9px;margin-bottom:2px}.item-details-modal .info-cell .val{font-size:13px}.item-details-modal .info-cell .sub-val{font-size:11px}.item-details-modal .detail-section{padding:10px 12px;gap:8px}.item-details-modal .detail-row{gap:8px}.item-details-modal .detail-icon-col{font-size:14px;width:16px;padding-top:0}.item-details-modal .detail-text{font-size:12px;line-height:1.3}.item-details-modal .map-chip{font-size:10px;padding:2px 6px;margin-top:4px}.item-details-modal .item-details-footer{padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;border-top:1px solid #e5e7eb;flex-shrink:0;background:#fff}.item-details-modal .item-details-comments{flex:1 1;display:flex;flex-direction:column;min-height:0}.item-details-modal .item-details-comments .comments-list{flex:1 1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.item-details-modal .item-details-footer .btn{padding:8px;font-size:13px;border-radius:8px;height:36px;display:flex;align-items:center;justify-content:center}.modal-content:has(.idea-details-modal){padding:0!important;border-radius:0;overflow:hidden!important;display:flex!important;flex-direction:column!important;height:100vh!important;height:100dvh!important;max-height:100vh!important;max-height:100dvh!important;width:100%!important;max-width:100%!important;border:none!important}.modal-content:has(.idea-details-modal) #modal-body{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden;padding:0}}.modal-content:has(.idea-details-modal)>.modal-close{display:none}#notification-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--dark-ink);color:var(--white);padding:12px 24px;border-radius:var(--radius-pill);font-weight:600;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:20000!important;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);opacity:1;pointer-events:none}#notification-toast.hidden{opacity:0;transform:translate(-50%,20px)}.day-column.drag-target{background:rgba(59,130,246,.1);outline:2px dashed var(--primary-blue);outline-offset:-2px}.drag-ghost{border-radius:var(--radius-md);background:var(--white)!important;border:2px solid var(--primary-blue)!important}.timeline-item{transition:opacity .15s ease}.timeline-item:active{cursor:-webkit-grabbing;cursor:grabbing}.app-footer{padding:12px 20px;background:#f9fafb;border-top:1px solid #e5e7eb;text-align:center;font-size:.75rem;color:#6b7280;margin-top:auto;width:100%;position:relative;z-index:1}.user-menu-container{z-index:9999}.user-dropdown{top:calc(100% + 10px);width:200px;background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-retro);z-index:9999;overflow:hidden;animation:slideDown .2s ease-out}.user-dropdown-header{padding:12px 16px;background:var(--cream);border-bottom:1px solid var(--border-color);display:flex;flex-direction:column}.user-dropdown-header strong{font-size:.95rem;color:var(--dark-ink)}.user-dropdown-header small{color:var(--text-secondary);font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.user-dropdown-items{padding:8px 0}.user-dropdown-items button{display:block;width:100%;text-align:left;padding:10px 16px;background:none;border:none;font-size:.9rem;color:var(--dark-ink);cursor:pointer;transition:background .15s;font-family:var(--font-body)}.user-dropdown-items button:hover{background:#f3f4f6;color:var(--primary-blue)}.user-avatar-small{width:36px;height:36px;background:var(--primary-blue);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-heading);border:2px solid var(--dark-ink)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tab-pane{display:none;height:100%;width:100%}.tab-pane.active{display:block}.timeline-calendar{display:flex;flex-direction:column;height:calc(100vh - 140px);width:100%;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-retro-sm);overflow:hidden;position:relative;border:var(--border-width) solid var(--border-color)}.timeline-header{flex-shrink:0;z-index:30}.timeline-wrapper{display:flex;flex:1 1;overflow:hidden;position:relative;height:100%}.hour-sidebar{width:60px;background:var(--cream);border-right:2px solid var(--border-color);overflow:hidden;flex-shrink:0}.timeline-container{flex:1 1;overflow-y:auto;position:relative;background:var(--white);height:100%}.timeline-grid{display:grid}.day-column,.timeline-grid{position:relative;min-height:100%}.day-column{border-right:1px solid var(--border-color);background-image:repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(0,0,0,.03) 60px)}.day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cream);color:var(--dark-ink);font-family:var(--font-heading);height:52px;min-height:52px;flex-shrink:0;box-sizing:border-box}.day-header.today{background:var(--accent-orange);color:#fff}.day-header-dow{font-size:.8rem;text-transform:uppercase;font-weight:700}.day-header-date{font-size:1.2rem;font-weight:800}.day-slots{position:relative;width:100%}.slot-line{pointer-events:none}.timeline-item{position:absolute;left:4px;right:4px;padding:4px 6px;border-radius:6px;background:#fff;border:2px solid rgba(0,0,0,.1);overflow:hidden;font-size:.75rem;box-shadow:2px 2px 0 rgba(0,0,0,.1);transition:transform .1s}.timeline-item:hover{z-index:50!important;transform:scale(1.02);box-shadow:3px 3px 0 rgba(0,0,0,.15)}.timeline-item .item-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.timeline-item .item-time{font-size:.7rem;opacity:.9}.timeline-item.flight{background:var(--flight-color);color:#fff;border-color:#2980b9}.timeline-item.stay{background:var(--stay-color);color:#fff;border-color:#8e44ad}.timeline-item.activity{background:var(--activity-color);color:#fff;border-color:#d35400}.timeline-item.transit{background:var(--transit-color);color:#fff;border-color:#16a085}.timeline-item.food{background:#e74c3c;color:#fff;border-color:#c0392b}.calendar-fab{transition:transform .2s}.calendar-fab:hover{transform:scale(1.1)}.calendar-fab:active{transform:scale(.95)}.all-day-lane{flex-shrink:0;position:relative;background:var(--white);border-bottom:1px solid var(--border-color)}.lane-content{position:relative;height:100%}.multi-day-bar{position:absolute;height:22px;border-radius:4px;font-size:.7rem;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#fff;display:flex;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.1);cursor:pointer;z-index:10}.multi-day-bar:hover{filter:brightness(.95);z-index:20}.calendar-popover{position:fixed;z-index:1000;background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);width:280px;padding:12px;font-family:inherit;animation:popoverFade .15s ease-out}@keyframes popoverFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.popover-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.popover-type{font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:4px;background:#f5f5f5;color:var(--text-secondary)}.popover-type.flight{background:#e3f2fd;color:var(--flight-color)}.popover-type.stay{background:#f3e5f5;color:var(--stay-color)}.popover-type.activity{background:#fff3e0;color:var(--activity-color)}.popover-type.transit{background:#e0f2f1;color:var(--transit-color)}.popover-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-secondary);line-height:1;padding:0 4px}.popover-title{font-weight:600;font-size:1rem;margin-bottom:4px;color:var(--dark-ink);line-height:1.2}.popover-time{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px}.popover-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--border-color);padding-top:8px}.popover-btn{padding:6px 12px;border-radius:6px;border:none;font-size:.85rem;font-weight:500;cursor:pointer;background:var(--dark-ink);color:#fff}.popover-btn:hover{opacity:.9}.user-menu-container{position:relative;z-index:1100}.user-dropdown{position:absolute;top:100%;right:0;background:#fff;border:2px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);min-width:200px;z-index:1101}.transit-route-selector{padding:16px}.transit-selector-header{text-align:center;margin-bottom:20px}.transit-selector-header h3{margin:0 0 8px;font-size:1.3rem}.transit-journey{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:.95rem;flex-wrap:wrap}.transit-arrow{color:var(--accent-orange);font-weight:700}.transit-route-list{display:flex;flex-direction:column;gap:12px;max-height:60vh;overflow-y:auto}.transit-route-card{background:var(--white);border:2px solid var(--border-color);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s ease}.transit-route-card:hover{border-color:var(--accent-blue);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.transit-route-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.transit-route-name{font-weight:600;font-size:1.05rem;color:var(--dark-ink)}.transit-route-duration{background:var(--primary-blue);color:#fff;padding:4px 10px;border-radius:16px;font-size:.85rem;font-weight:500;white-space:nowrap}.transit-route-times{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:.9rem;color:var(--text-secondary);flex-wrap:wrap}.transit-time-arrow{color:var(--text-muted)}.transit-route-steps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:.85rem}.transit-step-chip{background:var(--cream);padding:4px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:4px}.transit-step-chip.heavy_rail,.transit-step-chip.rail,.transit-step-chip.train{background:#e3f2fd;color:#1565c0}.transit-step-chip.subway{background:#f3e5f5;color:#7b1fa2}.transit-step-chip.bus{background:#e8f5e9;color:#2e7d32}.transit-step-chip.ferry{background:#e0f7fa;color:#00838f}.transit-select-btn{width:100%;margin-top:8px}.transit-selector-footer{text-align:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.transit-cancel-btn{color:var(--text-muted)}body.blueprint-view #chat-fab-container,body.blueprint-view .add-item-btn-container,body.blueprint-view .hamburger-btn,body.blueprint-view .header-left,body.blueprint-view .nav-tab[data-tab=plan],body.blueprint-view .nav-tab[data-tab=settings],body.blueprint-view .trip-switcher-button{display:none!important}body.blueprint-view .main-header{height:auto!important;display:flex;flex-direction:column;padding:0;background:var(--surface-card);border-bottom:1px solid var(--border-color)}.blueprint-header-content{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1200px;margin:0 auto;padding:16px 20px;background:var(--surface-card)}.blueprint-brand{display:flex;align-items:center;gap:12px}.blueprint-logo{height:40px;width:auto;object-fit:contain}.blueprint-label{background:var(--primary-blue);color:#fff;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.blueprint-info{display:flex;flex-direction:column;gap:4px;flex:1 1;margin-left:24px}.blueprint-title{font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700;margin:0;color:var(--text-primary)}.blueprint-meta{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.blueprint-dot{opacity:.5}.blueprint-cta{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;background:var(--primary-blue);color:#fff;border-radius:8px;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:transform .1s,background .2s;white-space:nowrap}.blueprint-cta:hover{transform:translateY(-1px);background:#2563eb}body.blueprint-view .main-nav{width:100%;max-width:1200px;margin:0 auto;justify-content:flex-start;padding:0 20px;border-top:1px solid var(--border-subtle)}body.blueprint-view .nav-tab{padding:12px 16px;background:transparent;border-bottom:2px solid transparent}body.blueprint-view .nav-tab.active{background:transparent;border-bottom:2px solid var(--primary-blue);color:var(--primary-blue)}@media (max-width:768px){.blueprint-header-content{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.blueprint-info{margin-left:0;width:100%}.blueprint-brand{width:100%;justify-content:space-between}.blueprint-cta{width:100%;justify-content:center}}body.blueprint-view .edit-btn,body.blueprint-view .idea-modal-footer button:not(.close-btn),body.blueprint-view .modal-footer .btn-primary:not(.clone-modal .btn-primary),body.blueprint-view .save-btn,body.blueprint-view button[type=submit]:not(.clone-modal button[type=submit]){display:none!important}body.blueprint-view .idea-modal-footer .close-btn{display:block!important}body.blueprint-view .clone-modal .btn-primary,body.blueprint-view .clone-modal button[type=submit]{display:inline-block!important}body.blueprint-view.blueprint-editable #delete-btn,body.blueprint-view.blueprint-editable .add-item-btn-container,body.blueprint-view.blueprint-editable .edit-btn,body.blueprint-view.blueprint-editable .idea-modal-footer button,body.blueprint-view.blueprint-editable .modal-footer .btn-primary,body.blueprint-view.blueprint-editable .save-btn,body.blueprint-view.blueprint-editable button[type=submit]:not(.clone-modal button[type=submit]){display:inline-flex!important}