.wechat-login-user{display:flex;align-items:center;gap:6px;font-size:13px}.wechat-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.wechat-nickname{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.wechat-logout-btn{padding:2px 8px;font-size:12px;border:none;background:#f0f0f0;border-radius:4px;color:#666;cursor:pointer}.wechat-login-btn{padding:6px 12px;font-size:13px;border:none;background:#07c160;color:#fff;border-radius:4px;cursor:pointer;font-weight:500}.wechat-login-btn:disabled{opacity:.6;cursor:not-allowed}:root{--brand-900: #020617;--brand-800: #0c4a6e;--brand-700: #075985;--brand-600: #0369a1;--brand-500: #0ea5e9;--brand-400: #38bdf8;--brand-300: #7dd3fc;--brand-200: #bae6fd;--brand-100: #e0f2fe;--brand-50: #f0f9ff;--success: #34d399;--success-bg: rgba(52, 211, 153, .1);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .1);--error: #f87171;--error-bg: rgba(248, 113, 113, .1);--gray-900: #f8fafc;--gray-800: #e2e8f0;--gray-700: #cbd5e1;--gray-600: #94a3b8;--gray-500: #64748b;--gray-400: #475569;--gray-300: #334155;--gray-200: #1e293b;--gray-100: #0f172a;--gray-50: #020617;--surface-page: #0a0e1a;--surface-card: rgba(20, 25, 45, .72);--surface-elevated: rgba(25, 32, 55, .85);--surface-muted: rgba(15, 20, 35, .6);--surface-hover: rgba(30, 40, 65, .5);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f172a;--border-subtle: rgba(148, 163, 184, .12);--border-default: rgba(148, 163, 184, .2);--border-brand: rgba(56, 189, 248, .3);--font-body: 15px;--font-small: 13px;--font-sm: 14px;--font-xs: 12px;--font-h1: 24px;--font-h2: 19px;--font-h3: 16px;--line-body: 1.65;--line-tight: 1.4;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 22px;--radius-pill: 9999px;--radius-bubble-user: 16px 16px 4px 16px;--radius-bubble-ai: 16px 16px 16px 4px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 24px rgba(0, 0, 0, .5), 0 4px 8px rgba(0, 0, 0, .4);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .6), 0 8px 16px rgba(0, 0, 0, .4);--shadow-2xl: 0 32px 64px rgba(0, 0, 0, .7);--shadow-card-hover: 0 20px 40px rgba(0, 0, 0, .6), 0 0 0 1px rgba(56, 189, 248, .1);--shadow-glow: 0 0 0 2px rgba(56, 189, 248, .15);--shadow-glow-strong: 0 0 30px rgba(56, 189, 248, .2), 0 0 60px rgba(56, 189, 248, .08);--shadow-inner-light: inset 0 1px 1px rgba(255, 255, 255, .05);--glass-bg: rgba(20, 25, 45, .55);--glass-bg-strong: rgba(25, 32, 55, .7);--glass-bg-heavy: rgba(30, 38, 65, .8);--glass-bg-max: rgba(35, 45, 75, .9);--glass-bg-aurora: rgba(20, 30, 55, .5);--glass-bg-subtle: rgba(15, 20, 35, .35);--glass-bg-light: rgba(25, 35, 60, .45);--glass-bg-medium: rgba(30, 40, 70, .6);--glass-border: rgba(148, 163, 184, .15);--glass-border-strong: rgba(148, 163, 184, .25);--glass-highlight: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4), inset 0 1px 0 var(--glass-highlight);--glass-blur: blur(24px) saturate(160%);--glass-blur-mobile: blur(20px) saturate(150%);--glass-blur-header: blur(16px) saturate(140%);--glass-blur-card: blur(12px);--glass-blur-subtle: blur(8px);--glass-blur-minimal: blur(4px);--overlay-dark: rgba(0, 0, 0, .6);--overlay-darker: rgba(0, 0, 0, .8);--overlay-subtle: rgba(0, 0, 0, .2);--gradient-header: linear-gradient(135deg, #0c1a3a 0%, #0a1628 50%, #061020 100%);--gradient-cta: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);--gradient-card: linear-gradient(180deg, rgba(20,25,45,.8) 0%, rgba(15,20,35,.6) 100%);--gradient-surface: radial-gradient(ellipse at 50% 0%, rgba(14, 165, 233, .08) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(179, 136, 255, .05) 0%, transparent 40%), linear-gradient(180deg, #0a0e1a 0%, #060a14 100%);--gradient-glass: linear-gradient(135deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 100%);--gradient-glass-aurora: linear-gradient(135deg, rgba(14, 165, 233, .15) 0%, rgba(59, 130, 246, .08) 50%, rgba(179, 136, 255, .05) 100%);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.45, .05, .55, .95);--ease-elastic: cubic-bezier(.175, .885, .32, 1.275);--duration-instant: .1s;--duration-fast: .2s;--duration-base: .35s;--duration-slow: .5s;--duration-slower: .7s;--hover-lift: translateY(-3px);--hover-lift-sm: translateY(-2px);--active-scale: scale(.96);--active-scale-sm: scale(.92);--size-icon: 32px;--size-icon-lg: 40px;--size-thumb: 148px;--size-avatar: 180px;--size-avatar-lg: 220px;--letter-tight: -.3px;--letter-wide: .5px;--letter-wider: .8px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;scroll-behavior:smooth;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--font-body);line-height:var(--line-body);color:var(--text-primary);background:var(--surface-page);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,a,input,textarea,select{transition:all var(--duration-fast) var(--ease-out)}button:active,a:active{transform:var(--active-scale)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:600;cursor:pointer;background:var(--gradient-cta);color:var(--text-inverse);transition:all var(--duration-fast) var(--ease-spring);box-shadow:var(--shadow-sm),0 0 12px #0ea5e933}.btn:hover{transform:var(--hover-lift-sm);box-shadow:var(--shadow-md),0 0 20px #0ea5e94d}.btn:active{transform:var(--active-scale)}a{transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}a:hover{color:var(--brand-400)}a:active{opacity:.85}.app-main--transition{animation:pageEnter .4s var(--ease-out) both}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}.card-elevated{transition:transform var(--duration-slow) var(--ease-out),box-shadow var(--duration-slow) var(--ease-out);will-change:transform,box-shadow}.card-elevated:hover{transform:var(--hover-lift);box-shadow:var(--shadow-card-hover)}.card-img-zoom{overflow:hidden}.card-img-zoom img,.card-img-zoom .card-img{transition:transform var(--duration-slow) var(--ease-out);will-change:transform}.card-img-zoom:hover img,.card-img-zoom:hover .card-img{transform:scale(1.05)}.btn-spring{transition:all var(--duration-fast) var(--ease-elastic)}.btn-spring:hover{transform:var(--hover-lift-sm);box-shadow:var(--shadow-md)}.btn-spring:active{transform:var(--active-scale)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.app{display:flex;flex-direction:column;height:100dvh;max-width:100vw;overflow:hidden;background:var(--surface-page)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-3);background:var(--gradient-header);color:var(--text-primary);flex-shrink:0;z-index:100;position:fixed;top:0;left:0;right:0;box-shadow:var(--shadow-md),0 1px #ffffff0d inset;backdrop-filter:var(--glass-blur-header);-webkit-backdrop-filter:var(--glass-blur-header);border-bottom:1px solid var(--border-subtle)}.app-header-brand{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;min-width:0}.app-logo{font-size:22px;filter:drop-shadow(0 2px 6px rgba(14,165,233,.3));transition:transform var(--duration-fast) var(--ease-out)}.app-logo:hover{transform:scale(1.1) rotate(-5deg)}.app-title{font-size:var(--font-h2);font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:var(--letter-tight);color:var(--text-primary);text-shadow:0 1px 2px rgba(0,0,0,.3)}.app-reset{background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-pill);width:var(--size-icon);height:var(--size-icon);font-size:var(--font-sm);cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out)}.app-reset:hover{background:var(--glass-bg-light);color:var(--text-primary);transform:rotate(90deg)}.app-reset:active{background:var(--glass-bg-medium);transform:rotate(180deg) scale(.88)}.app-header-nav{display:flex;align-items:center;gap:var(--space-1)}.app-nav-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--ease-out)}.app-nav-btn:hover{background:var(--glass-bg-subtle);color:var(--text-primary)}.app-nav-btn.active{background:var(--glass-bg-light);border-color:var(--glass-border);color:var(--text-primary);font-weight:600}.app-nav-btn:active{background:var(--glass-bg-medium);transform:scale(.96)}.app-nav-btn:disabled{opacity:.5;cursor:not-allowed}.app-nav-label{font-size:var(--font-sm)}.wechat-login-user{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-pill);font-size:var(--font-sm);color:var(--text-secondary)}.wechat-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1px solid var(--border-subtle)}.wechat-nickname{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:var(--font-sm)}.wechat-logout-btn{padding:2px 8px;font-size:12px;border:1px solid var(--border-subtle);background:transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.wechat-logout-btn:hover{background:var(--glass-bg-medium);color:var(--text-primary)}.app-header-menu-btn{display:none;background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);width:var(--size-icon);height:var(--size-icon);align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);padding:0}.app-header-menu-btn:hover{background:var(--glass-bg-light);color:var(--text-primary)}.hamburger{display:flex;flex-direction:column;gap:4px;width:18px}.hamburger span{display:block;height:2px;background:currentColor;border-radius:1px;transition:all .25s var(--ease-out)}.hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.app-header-nav--mobile{display:none;position:fixed;top:calc(44px + env(safe-area-inset-top,0px));left:0;right:0;background:var(--gradient-header);backdrop-filter:var(--glass-blur-header);-webkit-backdrop-filter:var(--glass-blur-header);border-bottom:1px solid var(--border-subtle);padding:var(--space-2) var(--space-4);flex-direction:column;gap:var(--space-1);z-index:99;animation:fadeSlideDown .25s var(--ease-out) both}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.app-header-nav--desktop{display:none}.app-header-menu-btn,.app-header-nav--mobile{display:flex}.app-nav-btn{justify-content:flex-start;padding:var(--space-3) var(--space-4);font-size:var(--font-base)}.app-nav-label{font-size:var(--font-base)}}.difficulty-beginner{background:var(--success)}.difficulty-intermediate{background:var(--warning)}.difficulty-advanced{background:var(--error)}.difficulty-expert{background:#a78bfa}.ski-map-svg polygon{fill:var(--surface-muted);stroke:var(--border-default)}.ski-map-svg circle{fill:var(--text-muted)}.resort-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.resort-placeholder-letter{color:#fff;font-size:48px;font-weight:700;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.4)}.resort-placeholder-city{color:#ffffffbf;font-size:13px;margin-top:4px;text-shadow:0 1px 4px rgba(0,0,0,.3)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,var(--surface-muted) 25%,var(--surface-hover) 50%,var(--surface-muted) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.app-main{flex:1;overflow-y:auto;overflow-x:hidden;padding:calc(54px + env(safe-area-inset-top,0px)) var(--space-3) 0;padding-bottom:env(safe-area-inset-bottom,0px);-webkit-overflow-scrolling:touch;background:var(--gradient-surface)}.app-main.app-main--chat{display:flex;flex-direction:column;overflow:hidden;min-height:0;padding-bottom:0}.app-main.app-main--chat .message-list--virt{flex:1 1 auto;min-height:0;height:100%}.message-list{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-3)}.message-list-item{padding-bottom:var(--space-2)}.message-list-item:last-child{padding-bottom:4px}@keyframes messageIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.message-enter{animation:messageIn .4s cubic-bezier(.34,1.56,.64,1) both}.message-list .empty-state{animation:messageIn .5s var(--ease-out) both}.message-bubble{display:flex;width:100%;align-items:flex-start}.message-bubble.user{justify-content:flex-end}.message-bubble.ai{justify-content:flex-start}.message-bubble-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--gradient-cta);display:flex;align-items:center;justify-content:center;margin-top:2px;margin-right:var(--space-2);box-shadow:var(--shadow-sm),0 0 0 2px #0ea5e933,0 2px 12px #0ea5e940;border:2px solid rgba(56,189,248,.3);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.message-bubble-avatar:hover{transform:scale(1.12);box-shadow:var(--shadow-md),0 0 0 3px #0ea5e94d,0 4px 16px #0ea5e959}.message-bubble-avatar-icon{font-size:16px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.message-bubble-inner{max-width:85%;padding:var(--space-2) var(--space-3);word-break:break-word;overflow-wrap:anywhere;min-width:0;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);position:relative}.message-bubble.user .message-bubble-inner{background:var(--gradient-cta);color:#fff;border-radius:var(--radius-bubble-user);box-shadow:var(--shadow-sm),0 3px 12px #0ea5e940,0 0 0 1px #38bdf833}.message-bubble.user .message-bubble-inner:hover{transform:var(--hover-lift-sm);box-shadow:var(--shadow-md),0 6px 20px #0ea5e959,0 0 0 1px #38bdf84d}.message-bubble.ai .message-bubble-inner{background:var(--surface-elevated);color:var(--text-primary);border-radius:var(--radius-bubble-ai);box-shadow:var(--shadow-sm),0 2px 8px #0003,0 0 0 1px #94a3b826;backdrop-filter:var(--glass-blur-card);-webkit-backdrop-filter:var(--glass-blur-card)}.message-bubble.ai .message-bubble-inner:hover{transform:var(--hover-lift-sm);box-shadow:var(--shadow-md),0 4px 16px #0000004d,0 0 0 1px #94a3b840}.message-text{white-space:pre-wrap}.message-markdown{line-height:1.65;letter-spacing:.2px;overflow-wrap:anywhere;word-break:break-word;min-width:0}.message-markdown p{margin-bottom:var(--space-2)}.message-markdown p:last-child{margin-bottom:0}.message-markdown ul,.message-markdown ol{padding-left:var(--space-4);margin:var(--space-2) 0}.message-markdown li{margin-bottom:var(--space-1)}.message-markdown li:last-child{margin-bottom:0}.message-markdown blockquote{margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);padding-left:var(--space-3);border-left:3px solid var(--brand-500);background:var(--surface-muted);border-radius:0 var(--radius-md) var(--radius-md) 0}.message-markdown pre{margin:var(--space-2) 0;padding:var(--space-3);background:var(--surface-muted);border-radius:var(--radius-md);overflow-x:auto;font-size:var(--font-small);line-height:1.5}.message-markdown code{padding:2px 6px;background:var(--surface-muted);border-radius:var(--radius-sm);font-size:.9em;color:var(--brand-300)}.message-markdown pre code{padding:0;background:none;color:inherit}.message-markdown table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--space-2) 0;font-size:var(--font-small);display:block;overflow-x:auto;white-space:nowrap;border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);background:var(--surface-card)}.message-markdown th,.message-markdown td{border:none;border-bottom:1px solid var(--border-subtle);padding:var(--space-2) var(--space-3);text-align:left}.message-markdown th{background:var(--surface-muted);font-weight:600;color:var(--text-secondary);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:var(--letter-wide)}.message-markdown th:first-child{border-radius:var(--radius-md) 0 0 0}.message-markdown th:last-child{border-radius:0 var(--radius-md) 0 0}.message-markdown tr:last-child td{border-bottom:none}.message-markdown tr:last-child td:first-child{border-radius:0 0 0 var(--radius-md)}.message-markdown tr:last-child td:last-child{border-radius:0 0 var(--radius-md) 0}.message-markdown tr:nth-child(2n){background:var(--surface-hover)}.message-markdown a{color:var(--brand-400);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:all var(--duration-fast) var(--ease-out);position:relative}.message-markdown a:hover{border-bottom-color:var(--brand-500);color:var(--brand-300)}.message-markdown img{max-width:100%;border-radius:var(--radius-md);margin:var(--space-2) 0;box-shadow:var(--shadow-sm)}.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-top:var(--space-2)}.resort-card{background:var(--surface-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--duration-slow) var(--ease-out),box-shadow var(--duration-slow) var(--ease-out);will-change:transform;border:1px solid var(--border-subtle)}.resort-card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-card-hover);border-color:var(--border-brand)}.resort-card-img{width:100%;height:var(--size-thumb);object-fit:cover;display:block;transition:transform var(--duration-slower) var(--ease-out)}.resort-card:hover .resort-card-img{transform:scale(1.05);filter:brightness(1.1)}.resort-card-body{padding:var(--space-3)}.resort-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.resort-card-name{font-size:var(--font-h3);font-weight:700;margin:0;color:var(--text-primary)}.resort-card-badge{color:#fff;font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-pill);font-weight:600;background:var(--gradient-cta);box-shadow:var(--shadow-xs),0 0 8px #0ea5e933}.resort-card-city{font-size:var(--font-small);color:var(--text-muted);margin-bottom:var(--space-2)}.resort-card-features{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-3)}.feature-tag{font-size:var(--font-xs);color:var(--brand-300);background:#0ea5e91a;padding:2px 8px;border-radius:var(--radius-pill);font-weight:500;border:1px solid rgba(56,189,248,.2)}.resort-card-link{font-size:var(--font-small);color:var(--brand-400);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px}.resort-card-link:after{content:"→";transition:transform var(--duration-fast) var(--ease-out)}.resort-card-link:hover:after{transform:translate(3px)}.hotel-card{background:var(--surface-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform var(--duration-slow) var(--ease-out),box-shadow var(--duration-slow) var(--ease-out);will-change:transform;border:1px solid var(--border-subtle)}.hotel-card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-card-hover);border-color:var(--border-brand)}.hotel-card-img{width:100%;height:140px;object-fit:cover;display:block}.hotel-card-body{padding:var(--space-3)}.hotel-card-name{font-size:var(--font-h3);font-weight:700;margin:0 0 var(--space-2);color:var(--text-primary)}.hotel-card-meta{display:flex;gap:var(--space-3);margin-bottom:var(--space-3)}.hotel-card-rating{font-size:var(--font-small);color:var(--warning);font-weight:600}.hotel-card-price{font-size:var(--font-small);color:var(--error);font-weight:700}.hotel-card-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--gradient-cta);color:#fff;text-align:center;border-radius:var(--radius-md);text-decoration:none;font-size:var(--font-small);font-weight:600;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.hotel-card-btn:hover{box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.hotel-card-btn:active{transform:var(--active-scale)}.weather-card{background:var(--gradient-glass-aurora);background-blend-mode:overlay;border-radius:var(--radius-2xl);padding:var(--space-4);color:var(--text-primary);margin-top:var(--space-2);box-shadow:var(--glass-shadow),0 0 0 1px var(--glass-border);position:relative;overflow:hidden;backdrop-filter:var(--glass-blur-mobile);-webkit-backdrop-filter:var(--glass-blur-mobile);border:1px solid var(--glass-border)}.weather-card:before{content:"";position:absolute;top:-40%;right:-25%;width:65%;height:80%;background:radial-gradient(circle,rgba(14,165,233,.12) 0%,transparent 70%);pointer-events:none}.weather-card:after{content:"";position:absolute;bottom:-30%;left:-20%;width:60%;height:70%;background:radial-gradient(circle,rgba(179,136,255,.08) 0%,transparent 70%);pointer-events:none}.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);position:relative;z-index:1}.weather-title{font-size:var(--font-h3);font-weight:700;margin:0;color:var(--text-primary)}.weather-fallback{font-size:var(--font-xs);color:var(--text-muted);background:var(--surface-muted);padding:2px 8px;border-radius:var(--radius-pill)}.weather-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);position:relative;z-index:1}.weather-temp{display:flex;flex-direction:column}.temp-value{font-size:42px;font-weight:300;line-height:1;color:var(--text-primary);letter-spacing:-1px}.temp-condition{font-size:var(--font-small);color:var(--text-secondary);margin-top:var(--space-1)}.weather-score{display:flex;flex-direction:column;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-xl);border:2px solid;background:var(--surface-elevated);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle)}.score-value{font-size:28px;font-weight:700;line-height:1}.score-label{font-size:var(--font-xs);color:var(--text-muted);margin-top:2px}.weather-score.score-good{border-color:var(--success)}.weather-score.score-good .score-value{color:var(--success)}.weather-score.score-mid{border-color:var(--warning)}.weather-score.score-mid .score-value{color:var(--warning)}.weather-score.score-bad{border-color:var(--error)}.weather-score.score-bad .score-value{color:var(--error)}.weather-details{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);position:relative;z-index:1}.weather-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-small)}.weather-icon{font-size:16px;opacity:.7}.weather-label{color:var(--text-muted)}.weather-value{color:var(--text-secondary);font-weight:500;margin-left:auto}.weather-time{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-3);text-align:right;position:relative;z-index:1}.price-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-4);margin-top:var(--space-2);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.price-card.empty{text-align:center;color:var(--text-muted);padding:var(--space-6)}.price-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.price-title{font-size:var(--font-h3);font-weight:700;margin:0;color:var(--text-primary)}.price-nights{font-size:var(--font-small);color:var(--text-muted);background:var(--surface-muted);padding:2px 10px;border-radius:var(--radius-pill)}.price-channels{display:grid;grid-template-columns:1fr;gap:var(--space-2)}.price-channel{background:var(--surface-muted);border-radius:var(--radius-lg);padding:var(--space-3);position:relative;border:1px solid transparent;transition:all var(--duration-fast) var(--ease-out)}.price-channel:hover{border-color:var(--border-subtle)}.price-channel.best{background:var(--gradient-glass-aurora);border-color:var(--border-brand);box-shadow:var(--shadow-glow)}.price-channel.unavailable{opacity:.5}.best-badge{position:absolute;top:-8px;right:12px;background:var(--gradient-cta);color:#fff;font-size:var(--font-xs);font-weight:700;padding:2px 10px;border-radius:var(--radius-pill);box-shadow:var(--shadow-sm)}.channel-name{font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.channel-price{font-size:var(--font-h2);font-weight:700;color:var(--brand-400)}.price-value{color:var(--brand-400)}.price-unavailable{color:var(--text-muted);font-size:var(--font-small)}.channel-type{font-size:var(--font-xs);color:var(--text-muted);margin-top:2px}.channel-note{font-size:var(--font-xs);color:var(--text-secondary);margin-top:var(--space-1)}.channel-risk{font-size:var(--font-xs);margin-top:var(--space-1);padding:2px 8px;border-radius:var(--radius-sm);display:inline-block}.channel-risk.medium{color:var(--warning);background:var(--warning-bg)}.price-buy-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gradient-cta);color:#fff;border-radius:var(--radius-md);text-decoration:none;font-size:var(--font-small);font-weight:600;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.price-buy-btn:hover{box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.price-source{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-2)}.price-best-deal{margin-top:var(--space-3);padding:var(--space-3);background:var(--gradient-glass-aurora);border-radius:var(--radius-lg);border:1px solid var(--border-brand)}.best-deal-title{font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.best-deal-reason{font-size:var(--font-small);color:var(--text-secondary)}.best-deal-link{display:inline-flex;align-items:center;margin-top:var(--space-2);color:var(--brand-400);font-weight:600;text-decoration:none}.best-deal-link:hover{color:var(--brand-300)}.itinerary-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-4);margin-top:var(--space-2);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.itinerary-card-empty{padding:var(--space-6)}.itinerary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);flex-wrap:wrap;gap:var(--space-2)}.itinerary-title{font-size:var(--font-h3);font-weight:700;margin:0;color:var(--text-primary)}.itinerary-price{font-size:var(--font-small);color:var(--brand-400);font-weight:700}.itinerary-weather{display:flex;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--font-small);color:var(--text-secondary);flex-wrap:wrap}.itinerary-hotels{margin-bottom:var(--space-3)}.hotels-title{font-size:var(--font-small);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.hotels-list{display:flex;flex-direction:column;gap:var(--space-2)}.hotel-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface-muted);border-radius:var(--radius-md)}.hotel-thumbnail{border-radius:var(--radius-sm);object-fit:cover}.hotel-info{display:flex;flex-direction:column;gap:2px}.hotel-name{font-weight:600;color:var(--text-primary);font-size:var(--font-small)}.hotel-price{color:var(--brand-400);font-weight:700;font-size:var(--font-small)}.hotel-rating{font-size:var(--font-xs);color:var(--warning)}.itinerary-timeline{position:relative}.itinerary-day{display:flex;gap:var(--space-3);padding-bottom:var(--space-3)}.itinerary-dot-wrap{display:flex;flex-direction:column;align-items:center}.itinerary-dot{width:10px;height:10px;border-radius:50%;background:var(--gradient-cta);box-shadow:0 0 8px #0ea5e94d;flex-shrink:0}.itinerary-line{width:2px;flex:1;background:linear-gradient(to bottom,var(--border-brand),transparent);margin-top:var(--space-1)}.itinerary-content{flex:1}.itinerary-date{font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1);font-size:var(--font-small)}.itinerary-details{display:flex;flex-direction:column;gap:4px}.itinerary-item{font-size:var(--font-small);color:var(--text-secondary)}.itinerary-notes{font-size:var(--font-small);color:var(--text-muted);margin-top:var(--space-1);font-style:italic}.itinerary-tips{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-muted);border-radius:var(--radius-lg)}.itinerary-tips h5{font-size:var(--font-small);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.transport-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-4);margin-top:var(--space-2);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.transport-header{font-size:var(--font-h3);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-3)}.transport-options{display:flex;flex-direction:column;gap:var(--space-2)}.transport-option{background:var(--surface-muted);border-radius:var(--radius-lg);padding:var(--space-3);border:1px solid transparent;transition:all var(--duration-fast) var(--ease-out)}.transport-option:hover{border-color:var(--border-subtle)}.transport-option-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.transport-type-badge{font-size:var(--font-xs);font-weight:700;color:var(--brand-400);background:#0ea5e91a;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid rgba(56,189,248,.2)}.transport-route{font-weight:600;color:var(--text-primary)}.transport-option-meta{display:flex;gap:var(--space-3);font-size:var(--font-small);color:var(--text-secondary);margin-bottom:var(--space-2)}.transport-duration{color:var(--text-muted)}.transport-price{color:var(--brand-400);font-weight:700}.transport-link-btn{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);background:var(--gradient-cta);color:#fff;border-radius:var(--radius-md);text-decoration:none;font-size:var(--font-small);font-weight:600;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.transport-link-btn:hover{box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.transport-fallback{text-align:center;color:var(--text-muted);padding:var(--space-4)}.transport-stations{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);font-size:var(--font-small);color:var(--text-secondary)}.transport-stations ul{margin-top:var(--space-1);padding-left:var(--space-4)}.transport-stations li{margin-bottom:2px}.transport-local{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);font-size:var(--font-small);color:var(--text-secondary)}.ski-map{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-4);margin-top:var(--space-2);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.ski-map-main{display:flex;gap:var(--space-4);align-items:center}.ski-map-svg{flex:1;max-width:280px}.ski-map-panel{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.ski-map-stat{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-small)}.ski-map-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ski-map-dot.stat-total{background:var(--brand-400)}.ski-map-dot.stat-beginner{background:var(--success)}.ski-map-dot.stat-intermediate{background:var(--brand-500)}.ski-map-dot.stat-advanced{background:var(--error)}.ski-map-label{color:var(--text-muted)}.ski-map-value{color:var(--text-primary);font-weight:700;margin-left:auto}.ski-map-divider{height:1px;background:var(--border-subtle);margin:var(--space-1) 0}.ski-map-tags{display:flex;gap:var(--space-1);margin-top:var(--space-1)}.ski-map-tag{font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-pill);font-weight:500}.ski-map-tag.night{color:#b388ff;background:#b388ff1a;border:1px solid rgba(179,136,255,.2)}.ski-map-tag.park{color:var(--brand-300);background:#0ea5e91a;border:1px solid rgba(56,189,248,.2)}.ski-map-footer{text-align:center;font-size:var(--font-small);color:var(--text-muted);margin-top:var(--space-3)}.equipment-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-4);margin-top:var(--space-2);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.equipment-section{margin-bottom:var(--space-3)}.equipment-section:last-child{margin-bottom:0}.equipment-section h4{font-size:var(--font-small);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.equipment-list{list-style:none}.equipment-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle)}.equipment-item:last-child{border-bottom:none}.equipment-name{font-weight:600;color:var(--text-primary)}.equipment-tag{font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-pill);font-weight:500}.equipment-tag.rent{color:var(--brand-300);background:#0ea5e91a;border:1px solid rgba(56,189,248,.2)}.equipment-tag.buy{color:var(--warning);background:#fbbf241a;border:1px solid rgba(251,191,36,.2)}.equipment-note{width:100%;font-size:var(--font-small);color:var(--text-muted);margin-top:2px}.rental-item{padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle)}.rental-item:last-child{border-bottom:none}.rental-phone{font-size:var(--font-small);color:var(--brand-400);margin-left:var(--space-2)}.rental-note{font-size:var(--font-small);color:var(--text-muted);margin-top:2px}.purchase-item{padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle)}.purchase-item:last-child{border-bottom:none}.purchase-price{color:var(--brand-400);font-weight:700;margin-left:var(--space-2)}.purchase-note{font-size:var(--font-small);color:var(--text-muted);margin-top:2px}.equipment-disclaimer{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-3);font-style:italic}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center}.empty-state-emoji{font-size:48px;margin-bottom:var(--space-3);opacity:.6}.empty-state-title{font-size:var(--font-h3);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-small);color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-suggestion{font-size:var(--font-small);color:var(--text-muted)}.empty-state-retry{margin-top:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-pill);font-size:var(--font-small);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.empty-state-retry:hover{box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.error-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.error-card-icon{font-size:48px;margin-bottom:var(--space-3);opacity:.6}.error-card-title{font-size:var(--font-h3);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.error-card-message{font-size:var(--font-small);color:var(--text-secondary);margin-bottom:var(--space-3)}.error-card-retry{padding:var(--space-2) var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-pill);font-size:var(--font-small);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.error-card-retry:hover{box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.loading-dots{display:inline-flex;align-items:center;gap:4px}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--brand-400);animation:dotBounce 1.4s infinite ease-in-out both;box-shadow:0 0 6px #38bdf866}@keyframes dotBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.share-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--font-small);cursor:pointer;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.share-btn:hover{background:var(--glass-bg-strong);color:var(--text-primary);border-color:var(--glass-border-strong)}.share-btn-copied{background:var(--success-bg);color:var(--success);border-color:var(--success)}.share-bar{display:flex;justify-content:flex-end;margin-top:var(--space-2)}.quick-replies{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.quick-reply-btn{padding:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--font-small);cursor:pointer;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.quick-reply-btn:hover{background:var(--glass-bg-strong);color:var(--text-primary);border-color:var(--border-brand);box-shadow:var(--shadow-glow)}.message-stream-status{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.tool-status{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--text-muted)}.tool-status.tool-running{color:var(--brand-400);background:#0ea5e91a;border:1px solid rgba(56,189,248,.2)}.tool-status.tool-done{color:var(--success);background:var(--success-bg)}.tool-status.tool-error{color:var(--error);background:var(--error-bg)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot-pulse{background:var(--brand-400);animation:pulse 1.5s infinite;box-shadow:0 0 6px #38bdf866}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.dot-ok{background:var(--success)}.dot-err{background:var(--error)}.tool-label{font-weight:500}.tool-latency{opacity:.7}.tool-err-code{color:var(--error);font-weight:600}.thinking-label{font-size:var(--font-small);color:var(--text-muted);display:flex;align-items:center;gap:var(--space-2)}.message-stream-error{font-size:var(--font-small);color:var(--error);padding:var(--space-2);background:var(--error-bg);border-radius:var(--radius-md);border:1px solid rgba(248,113,113,.2)}.message-retry-bar{display:flex;justify-content:flex-end;margin-top:var(--space-2)}.message-retry-btn{padding:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--font-small);cursor:pointer;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.message-retry-btn:hover{background:var(--glass-bg-strong);color:var(--text-primary);border-color:var(--border-brand)}.message-feedback{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--font-xs)}.feedback-label{color:var(--text-muted)}.feedback-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:2px;opacity:.6;transition:all var(--duration-fast) var(--ease-out)}.feedback-btn:hover{opacity:1;transform:scale(1.2)}.feedback-thanks{color:var(--success);font-weight:500}.input-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));background:var(--glass-bg-heavy);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-border);box-shadow:0 -4px 24px #0000004d}.input-bar.over-limit{border-top-color:var(--error)}.input-field{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-bg);color:var(--text-primary);font-size:var(--font-body);outline:none;transition:all var(--duration-fast) var(--ease-out);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle)}.input-field::placeholder{color:var(--text-muted)}.input-field:focus{border-color:var(--border-brand);box-shadow:var(--shadow-glow),0 0 16px #0ea5e91a;background:var(--glass-bg-strong)}.input-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.input-char-count{font-size:var(--font-xs);color:var(--text-muted)}.input-char-count.over-limit{color:var(--error);font-weight:700}.send-btn{width:var(--size-icon);height:var(--size-icon);border-radius:50%;border:none;background:var(--gradient-cta);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm),0 0 12px #0ea5e933;transition:all var(--duration-fast) var(--ease-elastic)}.send-btn:hover:not(:disabled){box-shadow:var(--shadow-md),0 0 20px #0ea5e94d;transform:var(--hover-lift-sm)}.send-btn:active:not(:disabled){transform:var(--active-scale)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.resort-explorer{padding:var(--space-4)}.explorer-header{margin-bottom:var(--space-4)}.explorer-header h2{font-size:var(--font-h1);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.explorer-subtitle{font-size:var(--font-small);color:var(--text-muted)}.search-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);margin-bottom:var(--space-3);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.search-bar:focus-within{border-color:var(--border-brand);box-shadow:var(--shadow-glow)}.search-icon{font-size:16px;color:var(--text-muted);opacity:.6}.search-input{flex:1;border:none;background:none;color:var(--text-primary);font-size:var(--font-body);outline:none}.search-input::placeholder{color:var(--text-muted)}.search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:50%;transition:all var(--duration-fast) var(--ease-out)}.search-clear:hover{background:var(--surface-hover);color:var(--text-primary)}.filter-bar{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.filter-section{display:flex;align-items:center;gap:var(--space-2)}.filter-label{font-size:var(--font-small);color:var(--text-muted);font-weight:500;min-width:36px}.filter-pills{display:flex;flex-wrap:wrap;gap:var(--space-1)}.filter-pill{padding:4px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--font-small);cursor:pointer;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.filter-pill:hover{background:var(--glass-bg-light);color:var(--text-primary)}.filter-pill.active{background:var(--gradient-cta);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm),0 0 12px #0ea5e933}.filter-clear{padding:var(--space-1) var(--space-2);background:none;border:none;color:var(--text-muted);font-size:var(--font-small);cursor:pointer;text-decoration:underline;transition:color var(--duration-fast) var(--ease-out)}.filter-clear:hover{color:var(--text-primary)}.resort-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.resort-explorer-card{background:var(--surface-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--duration-slow) var(--ease-out),box-shadow var(--duration-slow) var(--ease-out);will-change:transform;border:1px solid var(--border-subtle);animation:cardEnter .5s var(--ease-out) both;animation-delay:calc(var(--card-index, 0) * .05s)}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.resort-explorer-card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-card-hover);border-color:var(--border-brand)}.resort-card-img-wrap{position:relative;cursor:pointer;overflow:hidden}.resort-card-img-placeholder{width:100%;height:var(--size-thumb)}.resort-card-tag{position:absolute;top:var(--space-2);padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:600;color:#fff}.resort-card-tag.night{right:var(--space-2);background:#b388ffd9;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle)}.resort-card-tag.park{left:var(--space-2);background:#0ea5e9d9;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle)}.resort-card-location{font-size:var(--font-small);color:var(--text-muted);margin-bottom:var(--space-2)}.resort-card-stats{display:flex;justify-content:space-between;font-size:var(--font-small);color:var(--text-secondary)}.resort-card-price{color:var(--brand-400);font-weight:700}.resort-card-favorite{background:none;border:none;cursor:pointer;font-size:18px;padding:2px;transition:all var(--duration-fast) var(--ease-out);opacity:.7}.resort-card-favorite:hover{opacity:1;transform:scale(1.2)}.resort-card-favorite.active{opacity:1}.resort-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-darker);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:overlayIn .3s var(--ease-out) both}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.resort-detail-panel{background:var(--surface-page);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-height:85vh;overflow-y:auto;padding:var(--space-4);animation:panelSlideUp .4s var(--ease-out) both;border-top:1px solid var(--border-subtle);box-shadow:0 -8px 32px #00000080}@keyframes panelSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.resort-detail-close{position:absolute;top:var(--space-3);right:var(--space-3);width:var(--size-icon);height:var(--size-icon);border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out);z-index:10}.resort-detail-close:hover{background:var(--glass-bg-strong);color:var(--text-primary)}.resort-detail-hero{position:relative;border-radius:var(--radius-xl);overflow:hidden;margin-bottom:var(--space-4)}.resort-detail-img{width:100%;height:200px;object-fit:cover}.resort-detail-img-placeholder{width:100%;height:200px}.resort-detail-hero-info{position:absolute;bottom:0;left:0;right:0;padding:var(--space-4);background:linear-gradient(to top,rgba(0,0,0,.8),transparent);color:#fff}.resort-detail-hero-info h2{font-size:var(--font-h1);font-weight:700;margin-bottom:var(--space-1)}.resort-detail-hero-info p{font-size:var(--font-small);opacity:.8}.resort-detail-body{display:flex;flex-direction:column;gap:var(--space-4)}.resort-detail-section{padding:var(--space-3);background:var(--surface-card);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.resort-detail-section h4{font-size:var(--font-small);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:var(--letter-wide)}.resort-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);text-align:center}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-item strong{font-size:var(--font-h2);color:var(--brand-400)}.stat-item span{font-size:var(--font-xs);color:var(--text-muted)}.detail-tag{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--font-xs);margin-top:var(--space-1);margin-right:var(--space-1)}.detail-tag:nth-child(odd){color:var(--brand-300);background:#0ea5e91a;border:1px solid rgba(56,189,248,.2)}.detail-tag:nth-child(2n){color:#b388ff;background:#b388ff1a;border:1px solid rgba(179,136,255,.2)}.detail-price{font-size:var(--font-h2);font-weight:700;color:var(--brand-400);margin-bottom:var(--space-2)}.detail-btn-primary{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--space-3);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-small);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm),0 0 12px #0ea5e926;transition:all var(--duration-fast) var(--ease-elastic)}.detail-btn-primary:hover:not(:disabled){box-shadow:var(--shadow-md),0 0 20px #0ea5e940;transform:var(--hover-lift-sm)}.detail-price-error{color:var(--error);font-size:var(--font-small);margin-top:var(--space-2)}.detail-features{display:flex;flex-wrap:wrap;gap:var(--space-1)}.detail-feature-tag{padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--font-xs);color:var(--brand-300);background:#0ea5e91a;border:1px solid rgba(56,189,248,.2)}.resort-detail-actions{display:flex;gap:var(--space-2)}.detail-btn-ask{flex:1;padding:var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);border-radius:var(--radius-md);font-size:var(--font-small);font-weight:600;cursor:pointer;-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-fast) var(--ease-out)}.detail-btn-ask:hover{background:var(--glass-bg-strong);border-color:var(--border-brand)}.explorer-loading,.explorer-error{text-align:center;padding:var(--space-6);color:var(--text-muted)}.explorer-error{color:var(--error)}@media(min-width:640px){.card-grid,.resort-grid,.price-channels{grid-template-columns:repeat(2,1fr)}.weather-details{grid-template-columns:repeat(4,1fr)}.app-main{padding-left:var(--space-6);padding-right:var(--space-6)}}@media(min-width:1024px){.card-grid,.resort-grid,.price-channels{grid-template-columns:repeat(3,1fr)}.app-main{padding-left:var(--space-8);padding-right:var(--space-8)}.resort-detail-panel{max-width:640px;border-radius:var(--radius-2xl);margin:auto;max-height:90vh}.resort-detail-overlay{align-items:center}}.quick-actions{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--glass-bg-heavy);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-border)}.quick-actions::-webkit-scrollbar{display:none}.quick-action-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);font-size:var(--font-small);color:var(--text-secondary);cursor:pointer;flex-shrink:0;white-space:nowrap;transition:all var(--duration-fast) var(--ease-out)}.quick-action-btn:hover{background:var(--glass-bg-light);color:var(--text-primary);transform:translateY(-1px)}.quick-action-btn:active{background:var(--glass-bg-medium);transform:translateY(0) scale(.96)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.quick-action-icon{font-size:var(--font-sm)}.quick-action-text{font-size:var(--font-small)}.bottom-bar{flex-shrink:0;position:relative;z-index:100}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:high){:root{--border-subtle: rgba(148, 163, 184, .3);--border-default: rgba(148, 163, 184, .5);--glass-border: rgba(148, 163, 184, .3)}}.resort-detail-page{width:100%;max-width:800px;margin:0 auto;padding:var(--space-4);animation:fadeSlideUp .5s var(--ease-out) both}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.detail-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.detail-back-btn{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);color:var(--text-primary);font-size:14px;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all .2s var(--ease-out)}.detail-back-btn:hover{background:var(--surface-hover);border-color:var(--border-default)}.detail-share-btn{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);color:var(--text-primary);font-size:14px;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all .2s var(--ease-out)}.detail-share-btn:hover{background:var(--surface-hover)}.detail-share-btn.copied{background:var(--success-bg);border-color:var(--success);color:var(--success)}.detail-hero{position:relative;width:100%;height:240px;border-radius:var(--radius-2xl);overflow:hidden;margin-bottom:var(--space-6);box-shadow:var(--shadow-lg)}.detail-hero-img{width:100%;height:100%;object-fit:cover}.detail-hero-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-800),var(--brand-600))}.detail-hero-letter{font-size:72px;font-weight:800;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.3)}.detail-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--space-6);background:linear-gradient(to top,rgba(2,6,23,.9) 0%,rgba(2,6,23,.4) 60%,transparent 100%)}.detail-hero-content{display:flex;flex-direction:column;gap:var(--space-2)}.detail-hero-name{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.detail-hero-location{font-size:14px;color:var(--text-secondary);margin:0}.detail-hero-badge{display:inline-block;width:fit-content;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:12px;font-weight:600;color:#fff;margin-top:var(--space-2)}.resort-detail-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);overflow-x:auto;padding-bottom:var(--space-2);scrollbar-width:none}.resort-detail-tabs::-webkit-scrollbar{display:none}.resort-tab-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:14px;cursor:pointer;white-space:nowrap;transition:all .2s var(--ease-out);flex-shrink:0}.resort-tab-btn:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.resort-tab-btn.active{background:var(--brand-600);border-color:var(--brand-500);color:#fff;box-shadow:0 0 12px #0ea5e94d}.resort-tab-icon{font-size:16px}.resort-tab-label{font-weight:500}.detail-tab-content{animation:fadeSlideUp .3s var(--ease-out) both}.tab-content{display:flex;flex-direction:column;gap:var(--space-5)}.tab-loading{text-align:center;padding:var(--space-8);color:var(--text-muted);font-size:14px}.resort-hero-stats{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-5)}.hero-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}.hero-stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.hero-stat-value{font-size:28px;font-weight:700;color:var(--brand-400)}.hero-stat-label{font-size:12px;color:var(--text-muted)}.hero-elevation{text-align:center;font-size:14px;color:var(--text-secondary);margin:0}.resort-features-section,.resort-ticket-section,.resort-price-section,.transport-section{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-5)}.resort-features-section h4,.resort-ticket-section h4,.resort-price-section h4,.transport-section h4{margin:0 0 var(--space-3) 0;font-size:16px;font-weight:600;color:var(--text-primary)}.detail-features{display:flex;flex-wrap:wrap;gap:var(--space-2)}.detail-feature-tag{padding:var(--space-1) var(--space-3);background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary)}.detail-price{font-size:20px;font-weight:700;color:var(--brand-400);margin:0 0 var(--space-2) 0}.detail-price-season{font-size:14px;color:var(--text-muted);margin:0}.detail-price-error{color:var(--error);font-size:13px;margin-top:var(--space-2)}.resort-actions{display:flex;gap:var(--space-3)}.detail-btn-ask{flex:1;padding:var(--space-3) var(--space-5);background:var(--brand-600);border:none;border-radius:var(--radius-lg);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);box-shadow:var(--shadow-sm)}.detail-btn-ask:hover{background:var(--brand-500);transform:translateY(-1px);box-shadow:0 4px 16px #0ea5e94d}.detail-btn-primary{padding:var(--space-2) var(--space-4);background:var(--brand-600);border:none;border-radius:var(--radius-lg);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s var(--ease-out)}.detail-btn-primary:hover{background:var(--brand-500)}.detail-btn-primary:disabled{opacity:.5;cursor:not-allowed}.detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);gap:var(--space-4)}.loading-dots{display:flex;gap:6px}.loading-dots span{width:10px;height:10px;border-radius:50%;background:var(--brand-500);animation:dotPulse 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes dotPulse{0%,80%,to{transform:scale(.4);opacity:.3}40%{transform:scale(1);opacity:1}}@media(max-width:640px){.detail-hero{height:200px;border-radius:var(--radius-xl)}.hero-stat-grid{grid-template-columns:repeat(2,1fr)}.resort-detail-page{padding:var(--space-3)}.detail-hero-name{font-size:20px}}.resort-detail-view{padding-top:0}.resort-detail-overlay{display:none!important}.itinerary-planner{width:100%;max-width:800px;margin:0 auto;padding:var(--space-4);animation:fadeSlideUp .5s var(--ease-out) both}.planner-list-view{display:flex;flex-direction:column;gap:var(--space-6)}.planner-list-header{display:flex;justify-content:space-between;align-items:center}.planner-list-header h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.planner-new-btn{padding:var(--space-2) var(--space-4);background:var(--brand-600);border:none;border-radius:var(--radius-lg);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out)}.planner-new-btn:hover{background:var(--brand-500);transform:translateY(-1px);box-shadow:0 4px 16px #0ea5e94d}.planner-empty{text-align:center;padding:var(--space-12);color:var(--text-muted)}.planner-empty p{font-size:16px;margin-bottom:var(--space-4)}.planner-start-btn{padding:var(--space-3) var(--space-6);background:var(--brand-600);border:none;border-radius:var(--radius-lg);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out)}.planner-start-btn:hover{background:var(--brand-500)}.planner-list-grid{display:flex;flex-direction:column;gap:var(--space-3)}.planner-list-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-4);cursor:pointer;transition:all .2s var(--ease-out)}.planner-list-card:hover{background:var(--surface-hover);border-color:var(--border-default);transform:translateY(-1px)}.list-card-info{flex:1}.list-card-info h4{margin:0 0 var(--space-1) 0;font-size:16px;font-weight:600;color:var(--text-primary)}.list-card-info p{margin:0;font-size:13px;color:var(--text-muted)}.list-card-delete{background:transparent;border:none;font-size:18px;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all .2s}.list-card-delete:hover{background:var(--error-bg)}.planner-edit-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.planner-back-btn{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s;flex-shrink:0}.planner-back-btn:hover{background:var(--surface-hover)}.planner-name-input{flex:1;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);color:var(--text-primary);font-size:16px;font-weight:600;outline:none;transition:border-color .2s}.planner-name-input:focus{border-color:var(--brand-500)}.planner-name-input::placeholder{color:var(--text-muted)}.planner-save-btn{padding:var(--space-2) var(--space-4);background:var(--success);border:none;border-radius:var(--radius-lg);color:var(--text-inverse);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);flex-shrink:0}.planner-save-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.planner-date-range{display:flex;align-items:flex-end;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-4)}.date-input-group{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.date-input-group label{font-size:12px;color:var(--text-muted);font-weight:500}.date-input-group input[type=date]{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:14px;outline:none;width:100%}.date-input-group input[type=date]:focus{border-color:var(--brand-500)}.date-arrow{font-size:20px;color:var(--text-muted);padding-bottom:var(--space-2)}.planner-budget{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-5)}.budget-row{display:flex;justify-content:space-between;font-size:14px;color:var(--text-secondary)}.budget-row.budget-total{font-weight:600;color:var(--text-primary);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.budget-amount{color:var(--brand-400);font-weight:600}.planner-days{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.planner-day-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;transition:all .3s var(--ease-out);animation:fadeSlideUp .4s var(--ease-out) both}.planner-day-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm)}.day-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--surface-muted);border-bottom:1px solid var(--border-subtle)}.day-card-title{display:flex;align-items:center;gap:var(--space-3)}.day-number{font-size:16px;font-weight:700;color:var(--brand-400)}.day-date{font-size:13px;color:var(--text-muted)}.day-card-actions{display:flex;gap:var(--space-1)}.day-move-btn,.day-remove-btn{background:transparent;border:none;font-size:16px;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:all .2s;color:var(--text-muted)}.day-move-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.day-remove-btn:hover{background:var(--error-bg);color:var(--error)}.day-card-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.day-field{display:flex;flex-direction:column;gap:var(--space-1)}.day-field label{font-size:13px;color:var(--text-muted);font-weight:500}.day-field-input,.day-field-select,.day-field-textarea{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s}.day-field-input:focus,.day-field-select:focus,.day-field-textarea:focus{border-color:var(--brand-500)}.day-field-input::placeholder,.day-field-textarea::placeholder{color:var(--text-muted)}.day-field-select{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-appearance:menulist;min-height:36px}.day-field-textarea{resize:vertical;min-height:60px;font-family:inherit}.day-field-value{display:flex;justify-content:space-between;align-items:center;background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:all .2s}.day-field-value:hover{border-color:var(--brand-500)}.day-field-value span{color:var(--text-primary);font-size:14px}.day-field-change{background:transparent;border:none;color:var(--brand-400);font-size:13px;cursor:pointer}.day-field-add{background:var(--surface-muted);border:1px dashed var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .2s;text-align:left}.day-field-add:hover{border-color:var(--brand-500);color:var(--brand-400)}.planner-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:fadeIn .2s var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.planner-modal{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s var(--ease-out)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.planner-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.planner-modal-header h3{margin:0;font-size:18px;color:var(--text-primary)}.planner-modal-close{background:transparent;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:var(--space-1)}.planner-modal-search{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin:var(--space-3) var(--space-4);color:var(--text-primary);font-size:15px;outline:none}.planner-modal-search:focus{border-color:var(--brand-500)}.planner-modal-list{overflow-y:auto;padding:var(--space-2) var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}.planner-modal-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s}.planner-modal-item:hover{background:var(--surface-hover)}.planner-item-name{font-size:15px;color:var(--text-primary)}.planner-item-city{font-size:13px;color:var(--text-muted)}.planner-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-8)}.planner-ai-btn{flex:1;padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,var(--brand-700),var(--brand-500));border:none;border-radius:var(--radius-lg);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);box-shadow:0 4px 16px #0ea5e933}.planner-ai-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0ea5e94d}@media(min-width:640px){.planner-modal-overlay{align-items:center}.planner-modal{border-radius:var(--radius-2xl);max-height:70vh}.planner-date-range{flex-direction:row;align-items:center}}@media(max-width:640px){.planner-edit-header{flex-wrap:wrap}.planner-name-input{order:3;width:100%;margin-top:var(--space-2)}}.map-page{width:100%;height:calc(100vh - 64px);display:flex;flex-direction:column;animation:fadeSlideUp .5s var(--ease-out) both}.map-page--loading,.map-page--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);color:var(--text-muted);padding:var(--space-8)}.map-page--loading p{font-size:16px}.map-filter-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-elevated);border-bottom:1px solid var(--border-subtle);position:relative;z-index:10;flex-shrink:0}.map-filter-label{font-size:14px;color:var(--text-secondary);font-weight:500}.map-filter-select{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:14px;cursor:pointer;outline:none;min-width:140px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-appearance:menulist;min-height:36px}.map-filter-select:focus{border-color:var(--brand-500)}.map-filter-select option{background:var(--surface-card);color:var(--text-primary)}.map-resort-count{margin-left:auto;font-size:13px;color:var(--text-muted)}.map-container{flex:1;min-height:0;background:var(--surface-muted)}.map-info-window{padding:var(--space-3);min-width:200px}.map-info-title{margin:0 0 var(--space-1) 0;font-size:16px;font-weight:700;color:var(--text-primary)}.map-info-location{margin:0 0 var(--space-2) 0;font-size:13px;color:var(--text-muted)}.map-info-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-2)}.map-info-tag{padding:2px 8px;background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:12px;color:var(--brand-300)}.map-info-meta{display:flex;gap:var(--space-3);font-size:13px;color:var(--text-secondary);margin-bottom:var(--space-3)}.map-info-btn{width:100%;padding:var(--space-2) var(--space-3);background:var(--brand-600);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out)}.map-info-btn:hover{background:var(--brand-500);transform:translateY(-1px)}.amap-info-window{background:var(--surface-elevated)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-md)!important;color:var(--text-primary)!important}.amap-info-close{color:var(--text-muted)!important}.amap-info-close:hover{color:var(--text-primary)!important}.map-page--nokey{padding:var(--space-6);overflow-y:auto}.map-nokey-actions{margin-top:var(--space-6);max-width:600px;margin-left:auto;margin-right:auto}.map-nokey-hint{font-size:14px;color:var(--text-secondary);margin-bottom:var(--space-4)}.map-fallback-list{display:flex;flex-direction:column;gap:var(--space-3)}.map-fallback-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s var(--ease-out)}.map-fallback-card:hover{background:var(--surface-hover);border-color:var(--brand-500);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.map-fallback-name{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1) 0}.map-fallback-location{font-size:13px;color:var(--text-muted);margin:0}.map-fallback-arrow{font-size:20px;color:var(--brand-400);margin-left:var(--space-3)}.map-fallback-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:var(--space-8)}@media(max-width:640px){.map-page{height:calc(100vh - 56px)}.map-filter-bar{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.map-filter-select{min-width:120px;font-size:13px}.map-resort-count{font-size:12px}}.user-center{width:100%;max-width:720px;margin:0 auto;padding:var(--space-6) var(--space-4);animation:fadeSlideUp .4s var(--ease-out) both}.user-center-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.user-center-tabs button{padding:var(--space-2) var(--space-4);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s var(--ease-out);white-space:nowrap}.user-center-tabs button:hover{color:var(--text-primary);background:var(--surface-hover)}.user-center-tabs button.tab-active{color:var(--brand-300);background:var(--surface-card);border-color:var(--brand-600);box-shadow:0 0 12px #3b82f626}.user-center-panel{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.form-group select,.form-group input[type=text],.form-group input[type=date]{width:100%;padding:var(--space-3) var(--space-4);background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;outline:none;transition:all .2s var(--ease-out)}.form-group select:focus,.form-group input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #3b82f626}.form-group select{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-appearance:menulist;min-height:40px}.form-group select option{background:var(--surface-card);color:var(--text-primary);-webkit-tap-highlight-color:transparent}.save-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--brand-600);border:none;border-radius:var(--radius-md);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);box-shadow:0 4px 12px #3b82f640}.save-btn:hover:not(:disabled){background:var(--brand-500);transform:translateY(-1px);box-shadow:0 6px 16px #3b82f659}.save-btn:disabled{opacity:.5;cursor:not-allowed}.save-status{margin-top:var(--space-3);text-align:center;font-size:14px;color:var(--success)}.user-center-error{padding:var(--space-3) var(--space-4);background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--error);font-size:14px;margin-bottom:var(--space-4)}.empty-text{text-align:center;color:var(--text-muted);font-size:15px;padding:var(--space-8) 0}.favorites-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.favorite-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all .2s var(--ease-out)}.favorite-item:hover{background:var(--surface-hover);border-color:var(--brand-500)}.favorite-name{font-size:15px;font-weight:600;color:var(--text-primary)}.delete-btn{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--error);border-radius:var(--radius-md);color:var(--error);font-size:13px;cursor:pointer;transition:all .2s var(--ease-out)}.delete-btn:hover:not(:disabled){background:var(--error);color:#fff}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.sessions-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.session-item{padding:var(--space-4);background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all .2s var(--ease-out)}.session-item:hover{background:var(--surface-hover);border-color:var(--brand-500);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.session-id{font-family:var(--font-mono, monospace);font-size:12px;color:var(--brand-400);background:#3b82f61a;padding:2px 8px;border-radius:var(--radius-sm)}.session-time{font-size:12px;color:var(--text-muted)}.session-preview{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.user-center{padding:var(--space-4) var(--space-3)}.user-center-tabs{gap:var(--space-1);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.user-center-tabs button{font-size:14px;padding:var(--space-2) var(--space-3)}.user-center-panel{padding:var(--space-4)}}.welcome-screen{padding:var(--space-6) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px));overflow-y:auto;height:100%;-webkit-overflow-scrolling:touch}.welcome-hero{text-align:center;margin-bottom:var(--space-8);padding-top:var(--space-4)}.welcome-hero-logo{font-size:48px;line-height:1;margin-bottom:var(--space-3);filter:drop-shadow(0 4px 12px rgba(14,165,233,.25));animation:heroFloat 3s ease-in-out infinite}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.welcome-title{font-size:28px;font-weight:700;letter-spacing:var(--letter-tight);color:var(--text-primary);margin-bottom:var(--space-2);text-shadow:0 2px 8px rgba(0,0,0,.3)}.welcome-subtitle{font-size:var(--font-h2);font-weight:600;color:var(--brand-400);margin-bottom:var(--space-2)}.welcome-desc{font-size:var(--font-sm);color:var(--text-muted);max-width:320px;margin:0 auto;line-height:var(--line-tight)}.welcome-section{margin-bottom:var(--space-8)}.welcome-section-title{font-size:var(--font-h3);font-weight:600;margin-bottom:var(--space-4);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.welcome-section-title:before{content:"";display:block;width:3px;height:16px;background:var(--gradient-cta);border-radius:var(--radius-pill)}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.quick-action-card{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-1);cursor:pointer;color:var(--text-primary);transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--glass-shadow)}.quick-action-card:hover{transform:var(--hover-lift-sm);border-color:var(--border-brand);box-shadow:var(--shadow-card-hover)}.quick-action-card:active{transform:var(--active-scale)}.quick-action-icon{font-size:28px;line-height:1;margin-bottom:var(--space-1)}.quick-action-label{font-size:var(--font-h3);font-weight:600;color:var(--text-primary)}.quick-action-desc{font-size:var(--font-xs);color:var(--text-muted)}.hot-destinations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.hot-destination-card{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);cursor:pointer;text-align:left;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--glass-shadow);position:relative;overflow:hidden}.hot-destination-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-cta);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.hot-destination-card:hover{transform:var(--hover-lift-sm);border-color:var(--border-brand);box-shadow:var(--shadow-card-hover)}.hot-destination-card:hover:before{opacity:1}.hot-destination-card:active{transform:var(--active-scale)}.hot-destination-name{font-size:var(--font-h3);font-weight:600;color:var(--text-primary)}.hot-destination-subtitle{font-size:var(--font-xs);color:var(--text-muted)}.region-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.region-tag{background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.region-tag:hover{background:var(--glass-bg-light);color:var(--text-primary);border-color:var(--border-brand);transform:var(--hover-lift-sm);box-shadow:var(--shadow-glow)}.region-tag:active{transform:var(--active-scale)}@media(min-width:640px){.quick-actions-grid,.hot-destinations-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:768px){.welcome-screen{padding:var(--space-8) var(--space-6);max-width:720px;margin:0 auto}.welcome-title{font-size:36px}.welcome-hero-logo{font-size:56px}}
