html,body,#root{margin:0;padding:0;height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.landing{--navy: #1e3a5f;--navy-deep: #12263f;--red: #ef4444;--ink: #0f172a;--muted: #475569;--line: #e2e8f0;--paper: #f8fafc;min-height:100%;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.55;overflow-x:hidden}.landing h1,.landing h2,.landing h3{line-height:1.15;letter-spacing:-.02em;margin:0}.landing a{color:inherit}.store-badges{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.store-badges a{display:block;line-height:0;border-radius:9px;transition:transform .15s}.store-badges a:hover{transform:translateY(-1px)}.store-badges img{height:50px;width:auto}.landing .phone{display:block;width:100%;height:auto;border-radius:13%/6%;border:8px solid #0b1220;background:#0b1220;box-shadow:0 30px 60px -20px #0f172a73,0 0 0 1px #ffffff14}.landing-nav{position:absolute;background:none;inset:0 0 auto;z-index:2;display:flex;align-items:center;justify-content:space-between;max-width:1120px;margin:0 auto;padding:20px 24px;color:#fff}.landing-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;text-decoration:none}.landing-brand img{border-radius:9px}.landing-nav nav{display:flex;gap:24px;font-size:15px}.landing-nav nav a{text-decoration:none;opacity:.85}.landing-nav nav a:hover{opacity:1}.landing-hero{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;padding:120px max(24px,calc((100% - 1072px)/2)) 72px;background:radial-gradient(ellipse at 80% 20%,rgba(59,130,246,.35),transparent 55%),linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff}.landing-eyebrow{margin:0 0 14px;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#93c5fd}.landing-hero h1{font-size:clamp(38px,5.6vw,60px);font-weight:800}.landing-lead{margin:20px 0 28px;font-size:clamp(17px,1.6vw,20px);color:#dbe5f1;max-width:34em}.landing-web-link{margin:18px 0 0;font-size:15px;color:#b9c8dc}.landing-web-link a{color:#fff;font-weight:600}.landing-hero-phones{display:flex;justify-content:center;align-items:flex-start;padding:0 4% 32px}.landing-hero-phones .phone{flex:0 1 250px;min-width:0}.landing-hero-phones .phone-front{position:relative;z-index:1;transform:rotate(-3deg)}.landing-hero-phones .phone-back{margin:40px 0 0 -14%;transform:rotate(5deg);opacity:.9}.landing section:not(.landing-hero){padding:80px 24px}.landing section>h2{max-width:1072px;margin:0 auto;font-size:clamp(28px,3.6vw,40px);font-weight:800;text-align:center}.landing-section-lead{margin:12px auto 0;text-align:center;color:var(--muted);font-size:17px}.landing-feature{display:grid;grid-template-columns:280px 1fr;gap:64px;align-items:center;max-width:880px;margin:72px auto 0}.landing-feature.reverse{grid-template-columns:1fr 280px}.landing-feature.reverse .phone{order:2}.landing-feature h3{font-size:28px;font-weight:700;margin-bottom:12px}.landing-feature p{margin:0;font-size:18px;color:var(--muted)}.landing-extras{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1072px;margin:88px auto 0}.landing-extra{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.landing-extra h3{font-size:18px;margin-bottom:6px}.landing-extra p{margin:0;color:var(--muted);font-size:15px}.landing-resorts{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.landing-search{display:flex;align-items:center;gap:10px;max-width:480px;margin:28px auto 8px;padding:0 16px;background:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#94a3b8}.landing-search:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.landing-search input{flex:1;min-width:0;height:48px;border:0;outline:0;background:transparent;font:inherit;font-size:16px;color:var(--ink)}.landing-no-results{text-align:center;color:var(--muted)}.landing-country{max-width:1072px;margin:36px auto 0}.landing-country h3{font-size:20px;margin-bottom:14px}.landing-country ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0;padding:0;list-style:none}.landing-resort{display:flex;flex-direction:column;gap:2px;height:100%;box-sizing:border-box;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.landing-resort:hover{border-color:#93c5fd;box-shadow:0 6px 18px -8px #1e3a5f59}.landing-resort-name{font-weight:700;color:var(--navy)}.landing-resort-tagline{font-size:14px;color:var(--muted)}.landing-resort-stats span{white-space:nowrap}.landing-resort-stats{margin-top:4px;font-size:13px;color:#64748b;font-variant-numeric:tabular-nums}.landing-faq details{max-width:760px;margin:0 auto;border-bottom:1px solid var(--line)}.landing-faq>h2{margin-bottom:28px!important}.landing-faq summary{cursor:pointer;padding:18px 0;font-size:18px;font-weight:600}.landing-faq details p{margin:0 0 18px;color:var(--muted)}.landing .landing-cta{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff}.landing-cta img{border-radius:16px}.landing-cta p{margin:0 0 8px;color:#dbe5f1;font-size:18px}.site-footer{padding:32px 24px 48px;text-align:center;font-size:14px;color:#64748b}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-bottom:14px}.site-footer a{color:#334155}.site-footer nav>*{padding:10px 4px}.site-footer p{max-width:720px;margin:0 auto;font-size:12px;line-height:1.6}@media(max-width:860px){.landing-feature,.landing-feature.reverse{gap:36px}.landing-feature{grid-template-columns:200px 1fr}.landing-feature.reverse{grid-template-columns:1fr 200px}.landing-feature h3{font-size:24px}.landing-feature p{font-size:16px}.landing-hero{grid-template-columns:1fr;padding-top:96px;text-align:center}.landing-hero .store-badges{justify-content:center}.landing-lead{margin-left:auto;margin-right:auto}.landing-hero-phones{max-width:440px;margin:0 auto}.landing-extras{grid-template-columns:1fr 1fr}}@media(max-width:600px){.landing-feature,.landing-feature.reverse{grid-template-columns:1fr;gap:24px;margin-top:56px;text-align:center}.landing-feature .phone,.landing-feature.reverse .phone{order:0;width:220px;margin:0 auto}}@media(max-width:560px){.landing-nav nav{display:none}.landing section:not(.landing-hero){padding:56px 16px}.landing-hero{padding-left:16px;padding-right:16px}.landing-extras{grid-template-columns:1fr}.landing-country ul{grid-template-columns:1fr 1fr;gap:8px}.landing-cta .store-badges{justify-content:center}.landing-resort{padding:12px}.store-badges img{height:44px}}@media(max-width:360px){.store-badges{gap:8px}.store-badges img{height:40px}}*{box-sizing:border-box;margin:0;padding:0}.app{height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.map-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#e0f2fe,#f0f9ff,#fff);gap:1.5rem}.map-loading p{color:#1e3a5f;font-size:1.1rem;font-weight:500}.ski-loader{position:relative;width:120px;height:80px}.skier{position:absolute;left:0;top:0;animation:ski-bounce .6s ease-in-out infinite;transform-origin:center bottom}.ski-track{position:absolute;bottom:6px;left:10px;right:10px;height:3px;background:linear-gradient(90deg,transparent 0%,#94a3b8 20%,#94a3b8 80%,transparent 100%);border-radius:2px;animation:track-pulse 1.2s ease-in-out infinite}.ski-track:before,.ski-track:after{content:"";position:absolute;width:8px;height:8px;background:#cbd5e1;border-radius:50%;top:-10px;animation:snow-fall 1s ease-in-out infinite}.ski-track:before{left:20%;animation-delay:0s}.ski-track:after{left:70%;animation-delay:.5s}@keyframes ski-bounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}@keyframes track-pulse{0%,to{opacity:.6;transform:scaleX(.9)}50%{opacity:1;transform:scaleX(1)}}@keyframes snow-fall{0%,to{opacity:0;transform:translateY(-5px)}50%{opacity:1;transform:translateY(0)}}header{background:#1e293b;color:#fff;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem}header .back-btn-header{min-height:36px;padding:.35rem .75rem;border:1px solid #475569;border-radius:8px;background:transparent;color:#e2e8f0;font:inherit;font-size:.875rem;cursor:pointer}header .back-btn-header:hover{background:#334155}header h1,.header-brand{font-size:1.25rem;font-weight:600}header h1.resort-name{margin:0;font-size:.875rem;font-weight:500}.resort-name{background:#334155;padding:.25rem .75rem;border-radius:4px;font-size:.875rem}.main-content{flex:1;display:flex;overflow:hidden}.sidebar{width:320px;background:#f8fafc;border-right:1px solid #e2e8f0;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.map-wrapper{flex:1;height:100%;position:relative}.map-container{width:100%;height:100%}.reset-view-btn{position:absolute;top:10px;left:10px;z-index:1;background:#fff;border:none;border-radius:4px;width:44px;height:44px;padding:10px;cursor:pointer;box-shadow:0 0 0 2px #0000001a;display:flex;align-items:center;justify-content:center;color:#333;-webkit-tap-highlight-color:transparent}.reset-view-btn:hover{background:#f0f0f0}.gps-locate-btn{position:absolute;top:60px;left:10px;z-index:1;background:#fff;border:none;border-radius:4px;width:44px;height:44px;padding:10px;cursor:pointer;box-shadow:0 0 0 2px #0000001a;display:flex;align-items:center;justify-content:center;color:#333;-webkit-tap-highlight-color:transparent}.gps-locate-btn:hover{background:#f0f0f0}.gps-locate-btn:disabled{cursor:wait}.map-options{position:absolute;top:110px;left:10px;z-index:2}.map-options-btn{background:#fff;border:none;border-radius:4px;width:44px;height:44px;padding:0;cursor:pointer;box-shadow:0 0 0 2px #0000001a,0 1px 4px #00000014;display:flex;align-items:center;justify-content:center;color:#1f2937;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease;-webkit-tap-highlight-color:transparent}.map-options-btn:hover{background:#f8fafc}.map-options-btn.active{background:#0f172a;color:#fff}.map-options-panel{position:absolute;top:0;left:52px;min-width:220px;background:#fff;border-radius:10px;box-shadow:0 8px 24px #0f172a2e,0 0 0 1px #0f172a0f;padding:6px;animation:map-options-fade .12s ease-out}@keyframes map-options-fade{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.map-options-header{padding:8px 10px 4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}.map-options-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px;background:transparent;border:none;border-radius:8px;text-align:left;cursor:pointer;transition:background-color .1s ease}.map-options-item:hover{background:#f1f5f9}.map-options-glyph{font-size:20px;line-height:1;flex-shrink:0}.map-options-name{flex:1;font-size:.875rem;font-weight:600;color:#111827;line-height:1.2}.map-options-switch{width:32px;height:18px;border-radius:999px;background:#cbd5e1;position:relative;flex-shrink:0;transition:background-color .14s ease}.map-options-switch.on{background:#0f172a}.map-options-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .14s ease}.map-options-switch.on .map-options-knob{transform:translate(14px)}.waypoint-input-row{display:flex;gap:.375rem;align-items:center}.waypoint-input-row .waypoint-input{flex:1;min-width:0}.gps-btn{width:36px;height:36px;border:1px solid #cbd5e1;background:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.gps-btn:hover:not(:disabled){background:#f0f9ff;color:#3b82f6;border-color:#3b82f6}.gps-btn:disabled{cursor:wait}.gps-spinner{width:16px;height:16px;border:2px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;display:block}.gps-error{position:absolute;top:60px;left:60px;z-index:2;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;box-shadow:0 2px 8px #0000001a;animation:gps-error-fade 3s ease-out forwards}@keyframes gps-error-fade{0%,70%{opacity:1}to{opacity:0}}.difficulty-filter{display:flex;flex-direction:column;gap:.5rem}.difficulty-filter label{font-size:.875rem;font-weight:500;color:#475569}.difficulty-filter select{padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;background:#fff}.route-panel{display:flex;flex-direction:column;gap:1rem}.route-panel h2{font-size:1rem;font-weight:600;color:#1e293b}.points{display:flex;flex-direction:column;gap:.5rem}.point{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.point-label{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;color:#fff}.point-label.start{background:#22c55e}.point-label.end{background:#ef4444}.hint{color:#94a3b8;font-style:italic}.point-info{display:flex;flex-direction:column;gap:.125rem}.point-name{font-weight:500;color:#1e293b}.point-type{font-size:.75rem;color:#64748b}.actions{display:flex;gap:.5rem}.find-route-btn{flex:1;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer}.find-route-btn:hover:not(:disabled){background:#2563eb}.find-route-btn:disabled{background:#94a3b8;cursor:not-allowed}.clear-btn{padding:.75rem 1rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer}.clear-btn:hover{background:#f1f5f9}.error{padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem}.route-result{display:flex;flex-direction:column;gap:.75rem}.route-summary{display:flex;gap:1rem;font-size:.875rem;color:#64748b}.route-summary span{display:flex;align-items:center;gap:.25rem}.filter-note{font-size:.75rem;color:#64748b;font-style:italic}.route-segments{display:flex;flex-direction:column;gap:.25rem}.segment{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:6px;border:1px solid #e2e8f0;font-size:.875rem}.segment.clickable{cursor:pointer;transition:background-color .15s}.segment.clickable:hover{background:#f1f5f9}.segment.highlighted{background:#fef3c7;border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.segment-icon{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.625rem}.segment-name{flex:1}.segment-difficulty{font-size:.75rem;color:#64748b;text-transform:capitalize}.segment-lift-type{font-size:.7rem;font-weight:500;color:#6b7280;font-style:italic}.exclude-btn{width:20px;height:20px;border:none;background:transparent;color:#94a3b8;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s;flex-shrink:0;margin-left:.25rem}.segment:hover .exclude-btn{opacity:1}.exclude-btn:hover{background:#fee2e2;color:#dc2626}.excluded-info{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;font-size:.875rem;color:#dc2626}.clear-exclusions-btn{padding:.25rem .5rem;background:#dc2626;color:#fff;border:none;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s}.clear-exclusions-btn:hover{background:#b91c1c}.marker{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;border:3px solid white;box-shadow:0 2px 8px #0000004d;cursor:pointer;z-index:10}.marker-start{background:#22c55e}.marker-end{background:#ef4444}.error-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center}.error-screen h1{color:#dc2626}.error-screen p{color:#64748b}.search-section{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.node-search{position:relative}.node-search-label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;color:#475569;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.node-search-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:.625rem;font-weight:700}.node-search-input{width:100%;padding:.625rem .75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;outline:none;transition:border-color .15s,box-shadow .15s}.node-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.node-search-selected{padding:.625rem .75rem;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.selected-content{flex:1;cursor:pointer;display:flex;flex-direction:column;gap:.125rem}.node-search-selected:hover{background:#dcfce7}.clear-selection-btn{width:24px;height:24px;border:none;background:#86efac;color:#166534;border-radius:4px;cursor:pointer;font-size:1.125rem;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.clear-selection-btn:hover{background:#4ade80}.selected-name{font-weight:500;color:#166534;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.selected-difficulty-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.selected-type{font-size:.75rem;color:#4ade80}.node-search-results{position:absolute;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:50;list-style:none;margin-top:.25rem}.node-search-item{padding:.5rem .75rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f5f9}.node-search-item:last-child{border-bottom:none}.node-search-item:hover,.node-search-item.highlighted{background:#f1f5f9}.item-name{font-size:.875rem;color:#1e293b;display:flex;align-items:center;gap:.5rem}.item-difficulty-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.item-type-icon{display:inline-flex;color:#64748b;flex-shrink:0}.item-meta{display:flex;align-items:center;gap:.5rem}.item-type{font-size:.75rem;color:#94a3b8}.item-distance{font-size:.75rem;color:#3b82f6;font-weight:500}.node-search-empty{padding:.75rem;text-align:center;color:#94a3b8;font-size:.875rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;margin-top:.25rem}.waypoint-list,.waypoint-slot{display:flex;flex-direction:column;gap:.25rem}.waypoint-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem}.waypoint-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.waypoint-badge{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#fff;flex-shrink:0}.waypoint-label{font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em;flex:1}.waypoint-actions{display:flex;gap:.25rem}.waypoint-move-btn,.waypoint-remove-btn{width:24px;height:24px;border:none;background:#f1f5f9;color:#64748b;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.waypoint-move-btn:hover:not(:disabled),.waypoint-remove-btn:hover{background:#e2e8f0;color:#334155}.waypoint-move-btn:disabled{opacity:.3;cursor:not-allowed}.waypoint-remove-btn:hover{background:#fee2e2;color:#dc2626}.waypoint-search{position:relative}.waypoint-input{width:100%;padding:.5rem .625rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;outline:none;transition:border-color .15s,box-shadow .15s}.waypoint-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.waypoint-selected{padding:.5rem .625rem;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer}.waypoint-selected:hover{background:#dcfce7}.waypoint-results{position:absolute;top:100%;left:0;right:0;max-height:360px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:50;list-style:none;margin-top:.25rem}.waypoint-result-item{padding:.5rem .625rem .5rem .5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f5f9}.waypoint-result-item:last-child{border-bottom:none}.waypoint-result-item:hover,.waypoint-result-item.highlighted{background:#f1f5f9}.waypoint-empty{padding:.5rem;text-align:center;color:#94a3b8;font-size:.875rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;margin-top:.25rem}.add-stop-btn{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem;margin:.25rem 0;background:transparent;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;font-size:.75rem;cursor:pointer;transition:all .15s}.add-stop-btn:hover{border-color:#8b5cf6;color:#8b5cf6;background:#f5f3ff}.save-label-btn{width:24px;height:24px;border:none;background:#e0f2fe;color:#0284c7;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.save-label-btn:hover:not(:disabled){background:#bae6fd;color:#0369a1}.save-label-btn.saved{background:#dbeafe;color:#3b82f6;cursor:default}.save-label-btn:disabled{opacity:.6}.save-label-inline{display:flex;gap:.5rem;margin-top:.5rem}.save-label-input{flex:1;padding:.5rem .625rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;outline:none;transition:border-color .15s,box-shadow .15s}.save-label-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.save-label-confirm{padding:.5rem .75rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.save-label-confirm:hover:not(:disabled){background:#2563eb}.save-label-confirm:disabled{background:#94a3b8;cursor:not-allowed}.saved-labels-header{padding:.375rem .625rem;font-size:.7rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #e2e8f0}.saved-label-item{display:flex;align-items:center;gap:.5rem}.saved-label-icon{color:#3b82f6;flex-shrink:0}.saved-label-text{font-weight:500}.saved-label-delete{padding:.25rem;background:transparent;border:none;color:#94a3b8;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,color .15s,background .15s}.saved-label-item:hover .saved-label-delete{opacity:1}.saved-label-delete:hover{color:#dc2626;background:#fee2e2}.marker-waypoint{background:#8b5cf6;font-size:.75rem}.waypoint-selected .saved-label-icon{color:#3b82f6;margin-right:.25rem;flex-shrink:0}.waypoint-selected.has-saved-label{background:#eff6ff;border-color:#3b82f6}.waypoint-selected.has-saved-label:hover{background:#dbeafe}.waypoint-selected.dropped-pin{background:#fef3c7;border-color:#f59e0b}.waypoint-selected.dropped-pin:hover{background:#fde68a}.dropped-pin-icon{color:#f59e0b;display:inline-flex;align-items:center;margin-right:.25rem}.leg-separator{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;color:#64748b;font-size:.75rem;font-weight:500}.leg-separator:before,.leg-separator:after{content:"";flex:1;height:1px;background:#e2e8f0}.leg-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#f8fafc;border-radius:6px;margin-bottom:.25rem}.leg-title{font-size:.875rem;font-weight:500;color:#1e293b}.leg-stats{font-size:.75rem;color:#64748b}.leg-error{padding:.5rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem;margin:.25rem 0}@media(max-width:768px){.waypoint-input{padding:.75rem;font-size:1rem;min-height:48px}.gps-btn{width:48px;height:48px}.waypoint-selected,.waypoint-result-item{padding:.75rem;min-height:48px}.waypoint-move-btn,.waypoint-remove-btn{width:36px;height:36px}.add-stop-btn{padding:.625rem;font-size:.875rem}.save-label-btn{width:36px;height:36px}.save-label-input{padding:.75rem;font-size:1rem;min-height:48px}.save-label-confirm{padding:.75rem 1rem;font-size:1rem;min-height:48px}.saved-label-delete{opacity:1;padding:.5rem}}.mobile-panel-toggle{display:none;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:100;padding:.75rem 1.5rem;background:#1e293b;color:#fff;border:none;border-radius:2rem;font-size:.875rem;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #0000004d;gap:.5rem;align-items:center}.mobile-panel-toggle:active{transform:translate(-50%) scale(.95)}.panel-close-btn{display:none;position:absolute;top:.75rem;right:.75rem;width:44px;height:44px;border:none;background:#1e293b;color:#fff;border-radius:50%;cursor:pointer;font-size:1.5rem;line-height:1;align-items:center;justify-content:center;z-index:10;-webkit-tap-highlight-color:transparent}.panel-close-btn:hover{background:#334155}.panel-close-btn:active{transform:scale(.95)}.panel-drag-handle{display:none}@media(max-width:768px){header{padding:.75rem 1rem;padding-top:max(.75rem,env(safe-area-inset-top));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}header h1,.header-brand{font-size:1rem}header h1.resort-name{font-size:.75rem;padding:.2rem .5rem}.main-content{position:relative}.sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:70vh;border-right:none;border-top:1px solid #e2e8f0;border-radius:1rem 1rem 0 0;box-shadow:0 -4px 20px #00000026;z-index:200;transform:translateY(100%);transition:transform .3s ease-out;padding-top:3.5rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.sidebar.open{transform:translateY(0)}.sidebar:before{content:"";position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:40px;height:4px;background:#cbd5e1;border-radius:2px}.panel-close-btn{display:none}.panel-drag-handle{display:block;position:absolute;top:0;left:0;right:0;height:3.5rem;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none}.mobile-panel-toggle{display:flex;bottom:max(1rem,calc(env(safe-area-inset-bottom) + .5rem))}.find-route-btn,.clear-btn{padding:1rem;font-size:1rem;min-height:48px}.node-search-input{padding:.875rem 1rem;font-size:1rem;min-height:48px}.node-search-selected{padding:.875rem 1rem;min-height:48px}.clear-selection-btn{width:44px;height:44px;font-size:1.25rem}.difficulty-filter select{padding:.875rem;font-size:1rem;min-height:48px}.node-search-item{padding:.875rem 1rem;min-height:48px}.segment{padding:.75rem;min-height:48px}.exclude-btn{opacity:1;width:28px;height:28px;font-size:.875rem}.node-search-results{max-height:200px}.map-container{position:absolute;inset:0}}.mobile-backdrop{display:none;position:fixed;inset:0;background:#0000004d;z-index:150}@media(max-width:768px){.mobile-backdrop.visible{display:block}}.resort-selector-page{min-height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a);display:flex;flex-direction:column;align-items:center;padding:2rem}.resort-selector-hero{text-align:center;color:#fff;margin-bottom:2rem;max-width:600px}.brand-header{display:flex;align-items:center;justify-content:center;gap:.75rem}.brand-logo{flex-shrink:0}.resort-selector-hero h1{font-size:2.5rem;font-weight:700;margin:0;letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#e2e8f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.resort-selector-hero .tagline{font-size:1rem;color:#64748b;font-weight:400;margin-top:.5rem}.search-container{width:100%;max-width:500px;margin-bottom:2rem}.search-bar{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ffffff1a;border-radius:12px}.search-bar .search-icon{color:#ffffff80;flex-shrink:0}.search-input{flex:1;background:none;border:none;color:#fff;font-size:1rem;outline:none}.search-input::placeholder{color:#fff6}.search-clear{background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center}.search-clear:hover{color:#fff}.resort-content{width:100%;max-width:500px}.search-results{width:100%}.results-count{color:#ffffff80;font-size:.875rem;margin-bottom:1rem}.no-results{text-align:center;padding:3rem 1rem;color:#ffffff80}.no-results p{margin-top:1rem;font-size:1rem}.results-list{display:flex;flex-direction:column;gap:.5rem}.result-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ffffff0f;border:none;border-radius:10px;cursor:pointer;transition:background .2s;text-align:left;width:100%}.result-row:hover{background:#ffffff1a}.result-flag{font-size:1.5rem}.result-info{flex:1;display:flex;flex-direction:column;gap:2px}.result-name{color:#fff;font-weight:500}.result-tagline{color:#ffffff80;font-size:.875rem}.result-arrow{color:#ffffff4d}.popular-section{width:100%}.section-title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:1rem}.popular-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}.popular-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;background:#ffffff0f;border:none;border-radius:10px;cursor:pointer;transition:background .2s}.popular-card:hover{background:#ffffff1a}.popular-flag{font-size:1.75rem}.popular-name{color:#fff;font-size:.75rem;font-weight:500;text-align:center;line-height:1.3}.browse-all-button{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem;background:#ffffff0a;border:none;border-radius:10px;color:#3b82f6;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.browse-all-button:hover{background:#ffffff14}.all-resorts{width:100%}.back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;background:none;border:none;color:#3b82f6;font-size:.875rem;cursor:pointer;margin-bottom:1rem}.back-button:hover{color:#60a5fa}.country-group{margin-bottom:.5rem}.country-header{display:flex;align-items:center;gap:.5rem;padding:1rem .5rem .5rem}.country-flag{font-size:1.125rem}.country-name{color:#ffffffb3;font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;flex:1}.country-count{color:#ffffff59;font-size:.8125rem}.country-resorts{display:flex;flex-direction:column;gap:0}.resort-row{display:flex;align-items:center;gap:.75rem;padding:.875rem .5rem;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;transition:background .2s;text-align:left;width:100%}.resort-row:last-child{border-bottom:none}.resort-row:hover{background:#ffffff0a}.resort-info{flex:1;display:flex;flex-direction:column;gap:2px}.all-resorts .resort-name,.resort-row .resort-name{background:none;padding:0;border-radius:0;color:#fff;font-size:.9375rem;font-weight:500}.resort-tagline{color:#ffffff73;font-size:.8125rem}.resort-arrow{color:#ffffff40}.resort-selector-loading,.resort-selector-error,.resort-selector-empty{text-align:center;color:#94a3b8;padding:3rem}.loading-spinner{width:40px;height:40px;border:3px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.resort-selector-page{padding:1.5rem 1rem}.resort-selector-hero h1{font-size:2rem}.resort-selector-hero .tagline{font-size:.875rem}.brand-header{gap:.5rem}.brand-logo{width:36px;height:36px}.popular-grid{grid-template-columns:repeat(2,1fr)}}.landing-footer{margin-top:3rem;padding:1.5rem;text-align:center;color:#64748b;font-size:.875rem}.landing-footer .app-store-link{display:inline-block;margin-bottom:1rem;opacity:.85;transition:opacity .2s}.landing-footer .app-store-link:hover{opacity:1}.landing-footer a{color:#94a3b8;text-decoration:none}.landing-footer a:hover{color:#fff;text-decoration:underline}.landing-footer p{margin-bottom:.5rem}.privacy-policy-page{min-height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a);padding:2rem}.privacy-policy-container{max-width:700px;margin:0 auto;color:#e2e8f0}.privacy-policy-container h1{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:#fff}.privacy-policy-container .last-updated{color:#64748b;font-size:.875rem;margin-bottom:2rem}.privacy-policy-container section{margin-bottom:2rem}.privacy-policy-container h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:#fff}.privacy-policy-container h3{font-size:1rem;font-weight:500;margin:1rem 0 .5rem;color:#94a3b8}.privacy-policy-container p{margin-bottom:.75rem;line-height:1.6}.privacy-policy-container ul,.privacy-policy-container ol{margin:.75rem 0;padding-left:1.5rem}.privacy-policy-container li{margin-bottom:.375rem;line-height:1.5}.privacy-policy-container a{color:#3b82f6;text-decoration:none}.privacy-policy-container a:hover{text-decoration:underline}.privacy-policy-container{overflow-wrap:anywhere}.privacy-policy-container .back-btn-header{display:inline-block;padding:8px 0;margin-bottom:1.5rem}.page-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #334155;text-align:center}.page-footer a{color:#3b82f6;text-decoration:none;font-size:.9rem}.page-footer a:hover{text-decoration:underline}.feedback-btn{position:fixed;bottom:1rem;right:1rem;width:48px;height:48px;border-radius:50%;background:#1e293b;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;z-index:100;transition:transform .2s,background .2s}.feedback-btn:hover{background:#334155;transform:scale(1.05)}.feedback-btn:active{transform:scale(.95)}.feedback-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.feedback-modal{background:#fff;border-radius:12px;width:100%;max-width:400px;box-shadow:0 20px 40px #0000004d}.feedback-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.feedback-header h3{margin:0;font-size:1.125rem;color:#1e293b}.feedback-close{background:none;border:none;font-size:1.5rem;color:#64748b;cursor:pointer;padding:0;line-height:1}.feedback-close:hover{color:#1e293b}.feedback-modal form{padding:1.25rem}.feedback-modal textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.9375rem;font-family:inherit;resize:vertical;min-height:100px;box-sizing:border-box}.feedback-modal textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.feedback-submit{width:100%;margin-top:1rem;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer}.feedback-submit:hover:not(:disabled){background:#2563eb}.feedback-submit:disabled{background:#94a3b8;cursor:not-allowed}.feedback-success{padding:2rem;text-align:center;color:#16a34a;font-weight:500}.feedback-error{margin-top:.75rem;color:#dc2626;font-size:.875rem;text-align:center}@media(max-width:768px){.feedback-btn{bottom:max(1.5rem,calc(env(safe-area-inset-bottom) + .5rem))}}.poi-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin:.5rem 0;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.875rem;color:#374151}.poi-toggle input{width:16px;height:16px;cursor:pointer}.resort-about{margin-top:auto;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;color:#475569;font-size:.85rem;line-height:1.5;box-sizing:border-box}.map-loading .resort-about{max-width:320px;margin-top:0;text-align:left}.resort-about h1,.resort-about h2{margin:0;font-size:1.05rem;color:#1e3a5f}.resort-about p{margin:.5rem 0 0}.map-loading .resort-about p{color:#475569;font-size:.85rem;font-weight:400}.resort-about .resort-about-tagline{margin-top:.15rem}.resort-about dl{display:flex;gap:1rem;margin:.75rem 0 0}.resort-about dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.resort-about dd{margin:0;font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums}.resort-about .resort-about-apps{margin:.75rem 0 .6rem;color:#0f172a;font-weight:500}.resort-about .store-badges{display:flex;flex-wrap:wrap;gap:8px}.resort-about .store-badges a{display:block;line-height:0}.resort-about .store-badges img{height:36px;width:auto}.resort-about-all{display:inline-block;margin-top:.4rem;padding:.4rem 0;color:#2563eb;font-weight:500}.consent-banner{position:fixed;left:16px;bottom:16px;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;max-width:440px;box-sizing:border-box;padding:14px 16px;background:#0f172a;color:#e2e8f0;border-radius:14px;box-shadow:0 12px 30px -10px #00000073;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}.app~.consent-banner{bottom:44px}.consent-banner p{flex:1 1 240px;margin:0}.consent-banner a{color:#93c5fd}.consent-banner div{display:flex;gap:8px}.consent-banner button{padding:8px 14px;border:1px solid #475569;border-radius:9px;background:transparent;color:#e2e8f0;font:inherit;font-weight:600;cursor:pointer}.consent-banner button.primary{background:#fff;border-color:#fff;color:#0f172a}.cookie-settings,.cookie-settings-link{padding:0;border:0;background:none;font:inherit;text-decoration:underline;cursor:pointer}.cookie-settings{color:#334155}.cookie-settings-link{color:#3b82f6}@media(max-width:480px){.consent-banner{left:8px;right:8px;bottom:8px;max-width:none;padding:12px;gap:10px;font-size:13px}.app~.consent-banner{bottom:40px}}@media(max-height:500px){.consent-banner{left:8px;right:8px;bottom:8px;max-width:none;flex-wrap:nowrap;padding:10px 14px;font-size:13px}}.map-failed{display:flex;align-items:center;justify-content:center;padding:2rem;background:#f1f5f9;color:#475569;text-align:center}
