:root{
  --void:#0A0F1F;
  --panel:#131A2E;
  --panel-raised:#1B2440;
  --panel-line: rgba(244,241,232,0.12);
  --ember:#E8A94C;
  --ember-soft:#F2C883;
  --ember-dim: rgba(232,169,76,0.14);
  --teal:#3FD9C7;
  --teal-dim: rgba(63,217,199,0.14);
  --violet:#B58CFF;
  --violet-dim: rgba(181,140,255,0.14);
  --star:#F4F1E8;
  --ink:#F4F1E8;
  --ink-dim:#A9B0C4;
  --ink-faint:#636B82;
  --ok:#5CC98B;
  --warn:#E8A94C;
  --bad:#E1604F;
  --r-sm:10px; --r-md:16px; --r-lg:24px;
  --mtn-back:#1B2440; --mtn-mid:#141B32; --mtn-front:#0A0F1F;
  box-sizing:border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
body[data-time="day"]{
  --mtn-back:#9FB3D9; --mtn-mid:#5E6FA3; --mtn-front:#2B3660;
}
*,*::before,*::after{box-sizing:inherit;}
html{scroll-padding-top: env(safe-area-inset-top, 0px);}
html,body{height:100%;}
body{margin:0; background:var(--void); color:var(--ink); font-family:'Inter',system-ui,-apple-system,sans-serif; min-height:100%; position:relative; overflow-x:hidden; transition:background .6s ease;}
h1,h2,h3,.display{font-family:'Space Grotesk',system-ui,sans-serif;}
::selection{background:var(--ember); color:#1a0e00;}
a{color:inherit;} button{font-family:inherit;}

/* ---------- backdrop: night sky + day sky + mountains ---------- */
#backdrop{position:fixed; top:0; left:0; right:0; height:100vh; height:100svh; z-index:0; overflow:hidden;}
#stars{position:absolute; inset:0; display:block; width:100%; height:100%; transition:opacity .6s ease;}
#daySky{position:absolute; inset:0; background:linear-gradient(180deg,#BFE3F2 0%,#F3D9A8 55%,#FBEBCB 100%); opacity:0; transition:opacity .6s ease;}
body[data-time="day"] #daySky{opacity:1;}
body[data-time="day"] #stars{opacity:0;}
.sun{position:absolute; left:50%; top:14%; width:110px; height:110px; margin-left:-55px; border-radius:50%; background:radial-gradient(circle at 35% 35%, #FFF6E5, #FDBA74 55%, rgba(253,186,116,0) 76%); box-shadow:0 0 110px 34px rgba(253,186,116,0.5);}
.cloud{position:absolute; background:rgba(255,255,255,0.35); border-radius:50px; filter:blur(1px);}
.cloud.c1{width:140px; height:26px; top:20%; left:10%; animation:cloudDrift 70s linear infinite;}
.cloud.c2{width:100px; height:20px; top:30%; left:60%; animation:cloudDrift 95s linear infinite reverse;}
.cloud.c3{width:80px; height:16px; top:12%; left:75%; animation:cloudDrift 60s linear infinite;}
@keyframes cloudDrift{from{transform:translateX(0);} to{transform:translateX(120px);}}
.bird{position:absolute; width:20px; height:8px; opacity:0.55;}
.bird::before,.bird::after{content:'';position:absolute; width:10px; height:2px; background:#3A1608; top:3px;}
.bird::before{left:0; transform:rotate(25deg);} .bird::after{right:0; transform:rotate(-25deg);}
.bird.b1{top:24%; left:-5%; animation:birdFly 26s linear infinite;}
.bird.b2{top:30%; left:-5%; animation:birdFly 34s linear infinite 4s;}
.bird.b3{top:20%; left:-5%; animation:birdFly 30s linear infinite 12s;}
@keyframes birdFly{from{transform:translateX(0);} to{transform:translateX(115vw);}}
#mountains{position:absolute; left:0; right:0; bottom:0; height:48%; pointer-events:none;}
.mtn{position:absolute; left:0; right:0; bottom:0; -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x; -webkit-mask-size:auto 100%; mask-size:auto 100%; -webkit-mask-position:0 bottom; mask-position:0 bottom;}
.mtn-back{height:76%; background-color:var(--mtn-back); opacity:0.85; animation:driftBack 100s linear infinite; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 100'%3E%3Cpath d='M0,100 L0,60 L50,75 L100,40 L150,65 L200,35 L250,68 L300,45 L350,70 L400,60 L400,100 Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 100'%3E%3Cpath d='M0,100 L0,60 L50,75 L100,40 L150,65 L200,35 L250,68 L300,45 L350,70 L400,60 L400,100 Z'/%3E%3C/svg%3E");}
.mtn-mid{height:56%; background-color:var(--mtn-mid); opacity:0.92; animation:driftMid 62s linear infinite reverse; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 100'%3E%3Cpath d='M0,100 L0,58 L40,78 L80,32 L120,66 L160,28 L200,64 L240,30 L280,70 L320,58 L320,100 Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 100'%3E%3Cpath d='M0,100 L0,58 L40,78 L80,32 L120,66 L160,28 L200,64 L240,30 L280,70 L320,58 L320,100 Z'/%3E%3C/svg%3E");}
.mtn-front{height:38%; background-color:var(--mtn-front); animation:driftFront 36s linear infinite; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 100'%3E%3Cpath d='M0,100 L0,55 L20,80 L40,30 L60,70 L80,20 L100,65 L120,25 L140,72 L160,30 L180,68 L200,22 L220,60 L240,55 L240,100 Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 100'%3E%3Cpath d='M0,100 L0,55 L20,80 L40,30 L60,70 L80,20 L100,65 L120,25 L140,72 L160,30 L180,68 L200,22 L220,60 L240,55 L240,100 Z'/%3E%3C/svg%3E");}
@keyframes driftBack{from{-webkit-mask-position-x:0; mask-position-x:0;} to{-webkit-mask-position-x:-400px; mask-position-x:-400px;}}
@keyframes driftMid{from{-webkit-mask-position-x:0; mask-position-x:0;} to{-webkit-mask-position-x:-320px; mask-position-x:-320px;}}
@keyframes driftFront{from{-webkit-mask-position-x:0; mask-position-x:0;} to{-webkit-mask-position-x:-240px; mask-position-x:-240px;}}

/* ---------- day: moving cars ---------- */
.day-cars{position:absolute; inset:0; display:none;}
body[data-time="day"] .day-cars{display:block;}
.day-cars .road-line{position:absolute; bottom:5%; left:0; width:100%; height:3px; background:repeating-linear-gradient(90deg, rgba(22,27,44,0.45) 0 18px, transparent 18px 36px);}
.moving-car{position:absolute; width:58px; animation:carDrive linear infinite; filter:drop-shadow(0 3px 4px rgba(0,0,0,0.3));}
.moving-car.mc1{bottom:5.6%; width:64px; animation-duration:11s;}
.moving-car.mc2{bottom:8%; width:46px; animation-duration:16s; animation-delay:-5s;}
.moving-car.mc3{bottom:4.2%; width:52px; animation-duration:20s; animation-delay:-12s;}
@keyframes carDrive{0%{left:-12%;} 100%{left:112%;}}

/* ---------- night: hovering spaceship ---------- */
#nightExtras{position:absolute; inset:0; display:none; pointer-events:none;}
body[data-time="night"] #nightExtras{display:block;}
.spaceship{position:absolute; top:12%; left:62%; width:110px; height:56px; animation:shipHover 7s ease-in-out infinite, shipDrift 50s linear infinite; filter:drop-shadow(0 0 14px rgba(249,115,22,0.55));}
@keyframes shipHover{0%,100%{transform:translateY(0);} 50%{transform:translateY(-14px);}}
@keyframes shipDrift{0%{left:62%;} 50%{left:8%;} 100%{left:62%;}}
.ship-beam{position:absolute; top:44px; left:50%; transform:translateX(-50%); width:26px; height:0; border-left:14px solid transparent; border-right:14px solid transparent; border-top:34px solid rgba(249,115,22,0.14);}

#app{position:relative; z-index:1; min-height:100dvh; display:flex; flex-direction:column;}
#toast-root{position:fixed; bottom:calc(20px + env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%); z-index:999; display:flex; flex-direction:column; gap:8px; align-items:center; width:min(92vw,420px);}
.toast{background:var(--panel-raised); border:1px solid var(--panel-line); padding:12px 18px; border-radius:var(--r-md); font-size:14px; box-shadow:0 12px 30px rgba(0,0,0,0.45); animation:toastIn .25s ease;}
@keyframes toastIn{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}

/* ---------- topbar ---------- */
.topbar{display:flex; align-items:center; justify-content:space-between; padding:18px clamp(16px,4vw,40px); gap:16px; flex-wrap:wrap;}
.brand{display:flex; align-items:center; gap:10px; cursor:pointer; text-decoration:none;}
.brand-mark{width:34px; height:34px; flex:none; background:#050813; border-radius:9px; display:flex; align-items:center; justify-content:center; padding:5px;}
.brand-name{font-size:17px; font-weight:600; letter-spacing:0.2px; color:var(--ink);}
.brand-name b{color:var(--ember); font-weight:700;}
.ltd-tag{font-size:10px; color:var(--ink-faint); font-weight:700; letter-spacing:0.5px; margin-left:3px; vertical-align:middle;}
body[data-time="day"] .brand-name{color:#161B2C;}
body[data-time="day"] .ltd-tag{color:#161B2C;}
body[data-time="day"] .navlink{color:#161B2C;}
body[data-time="day"] .icon-btn{color:#161B2C;}
body[data-time="day"] .brand-mark img{filter:drop-shadow(0 1px 2px rgba(0,0,0,0.25));}
.nav{display:flex; gap:6px; align-items:center; flex-wrap:wrap;}
.nav a, .nav button.navlink{background:none; border:none; color:var(--ink-dim); font-size:14px; padding:9px 14px; border-radius:999px; cursor:pointer; text-decoration:none; transition:background .15s, color .15s;}
.nav a:hover, .nav button.navlink:hover{background:var(--panel-raised); color:var(--ink);}
.nav .cta{background:var(--ember); color:#1a0e00; font-weight:700;}
.nav .cta:hover{background:var(--ember-soft);}
.icon-btn{background:rgba(18,26,43,0.55); backdrop-filter:blur(6px); border:1px solid var(--panel-line); width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px;}

/* ---------- home hero (page 1, full viewport, no scroll needed) ---------- */
.hero-section{min-height:100dvh; display:flex; flex-direction:column; justify-content:center; padding:0 clamp(16px,5vw,60px) 24px; gap:clamp(16px,3vh,28px); max-width:1200px; margin:0 auto; width:100%;}
.home-head{max-width:600px; perspective:800px;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-size:12px; font-weight:700; letter-spacing:0.6px; margin:0 0 14px; background:rgba(18,26,43,0.5); backdrop-filter:blur(6px); padding:6px 12px; border-radius:999px; border:1px solid var(--panel-line);}
.eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--ember); box-shadow:0 0 8px 2px var(--ember);}
.home-head h1{font-size:clamp(24px,3.6vw,38px); line-height:1.22; margin:0 0 12px; font-weight:600; letter-spacing:-0.3px; text-shadow:0 2px 24px rgba(0,0,0,0.35);}
.home-head p{color:var(--ink-dim); font-size:clamp(13px,1.3vw,15px); line-height:1.6; margin:0; max-width:52ch;}
body[data-time="day"] .home-head p{color:rgba(22,27,44,0.75);}
body[data-time="day"] .home-head h1{color:#161B2C;}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; perspective:900px;}
@media (max-width:760px){.service-grid{grid-template-columns:1fr;}}
.service-card{position:relative; background:rgba(18,26,43,0.5); backdrop-filter:blur(10px); border:1px solid var(--panel-line); border-radius:var(--r-md); padding:16px 16px; cursor:pointer; text-align:left; color:var(--ink); overflow:hidden; transition:transform .12s ease, border-color .2s ease, box-shadow .2s ease; min-height:96px; display:flex; align-items:center; gap:12px; transform-style:preserve-3d; will-change:transform;}
.service-card:hover{border-color:rgba(249,115,22,0.55); box-shadow:0 14px 30px -10px rgba(0,0,0,0.5);}
.service-card:active{transform:scale(0.98) !important;}
.service-card .glyph{width:30px; height:30px; opacity:0.95; flex:none;}
.service-card h3{margin:0 0 2px; font-size:15px; font-weight:600;}
.service-card p{margin:0; color:var(--ink-dim); font-size:11.5px; line-height:1.4;}
.service-card .arrow{position:absolute; top:14px; right:14px; color:var(--ink-faint); font-size:16px; transition:transform .2s, color .2s;}
.service-card:hover .arrow{transform:translate(3px,-3px); color:var(--ember);}
.scroll-cue{display:flex; align-items:center; gap:8px; color:var(--ink-faint); font-size:12px; margin-top:4px; cursor:pointer; width:fit-content;}
body[data-time="day"] .scroll-cue{color:rgba(22,27,44,0.55);}
.scroll-cue .chev{width:16px; height:16px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); animation:chevBounce 1.6s ease-in-out infinite;}
@keyframes chevBounce{0%,100%{transform:rotate(45deg) translate(0,0);} 50%{transform:rotate(45deg) translate(3px,3px);}}

/* ---------- below-fold sections ---------- */
.reveal-section{position:relative; z-index:1; background:linear-gradient(180deg, rgba(10,14,23,0) 0%, rgba(10,14,23,0.92) 8%, var(--void) 100%); padding:70px clamp(16px,5vw,60px); }
.reveal-inner{max-width:1100px; margin:0 auto;}
.reveal-tag{color:var(--ember-soft); font-size:12px; font-weight:700; letter-spacing:0.6px; margin:0 0 10px;}
.reveal-section h2{font-size:clamp(22px,3vw,32px); margin:0 0 14px; font-weight:600;}
.reveal-section > .reveal-inner > p.lead{color:var(--ink-dim); font-size:15px; line-height:1.7; max-width:62ch; margin:0 0 34px;}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:760px){.trust-grid{grid-template-columns:repeat(2,1fr);}}
.trust-item{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-md); padding:20px 16px; text-align:center;}
.trust-item .n{font-family:'Space Grotesk'; font-size:26px; font-weight:600; color:var(--ember-soft);}
.trust-item .l{font-size:12px; color:var(--ink-dim); margin-top:4px;}
.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:28px; align-items:stretch;}
@media (max-width:800px){.contact-grid{grid-template-columns:1fr;}}
.contact-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px;}
.contact-list li{display:flex; gap:14px; align-items:flex-start; font-size:14.5px; color:var(--ink-dim);}
.contact-list b{color:var(--ink); display:block; font-size:13px; margin-bottom:2px;}
.contact-list .ic{width:20px; flex:none; margin-top:2px; color:var(--ember-soft);}
.map-card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-lg); padding:0; overflow:hidden; min-height:220px; position:relative; display:flex; align-items:center; justify-content:center;}
.track-card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-lg); padding:22px; display:flex; flex-direction:column;}
.track-card input{width:100%; background:var(--panel-raised); border:1px solid var(--panel-line); color:var(--ink); border-radius:10px; padding:11px 12px; font-size:14.5px; font-family:inherit;}
.track-card input:focus{outline:2px solid var(--ember); outline-offset:1px;}
.map-card .pin{width:44px; height:44px; z-index:2;}
.map-card .ring{position:absolute; width:120px; height:120px; border:1px solid rgba(249,115,22,0.4); border-radius:50%; animation:ringPulse 3s ease-out infinite;}
.map-card .ring2{animation-delay:1s;}
@keyframes ringPulse{0%{transform:scale(0.4); opacity:0.9;} 100%{transform:scale(2.4); opacity:0;}}
.map-card .grid-lines{position:absolute; inset:0; background-image:linear-gradient(rgba(249,115,22,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(249,115,22,0.08) 1px, transparent 1px); background-size:26px 26px;}
.whatsapp-btn{display:inline-flex; align-items:center; gap:10px; background:#25D366; color:#08210F; font-weight:700; font-size:14px; padding:13px 20px; border-radius:12px; text-decoration:none; margin-top:22px; width:fit-content;}
.whatsapp-btn:hover{background:#2fe374;}
.whatsapp-btn svg{width:20px; height:20px;}
.footer-strip{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; color:var(--ink-faint); font-size:12.5px; padding-top:34px; margin-top:34px; border-top:1px solid var(--panel-line);}
.footer-strip .social{display:flex; gap:14px;}
.footer-strip a{color:inherit; text-decoration:none;}
.footer-strip a:hover{color:var(--ember);}
[data-reveal]{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
[data-reveal].in-view{opacity:1; transform:translateY(0);}

/* ---------- generic page shell ---------- */
.page{flex:1; padding:8px clamp(16px,4vw,40px) 60px; max-width:1200px; margin:0 auto; width:100%;}
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:10px 0 26px;}
.page-head h2{font-size:clamp(22px,3vw,30px); margin:0 0 6px; font-weight:600;}
.page-head p{margin:0; color:var(--ink-dim); font-size:14px;}
.backlink{display:inline-flex; align-items:center; gap:6px; color:var(--ink-dim); font-size:13px; text-decoration:none; background:none; border:none; cursor:pointer; padding:0; margin-bottom:14px;}
.backlink:hover{color:var(--ember-soft);}
.pill-row{display:flex; gap:8px; flex-wrap:wrap;}
.pill{padding:7px 14px; border-radius:999px; border:1px solid var(--panel-line); background:var(--panel); color:var(--ink-dim); font-size:13px; cursor:pointer;}
.pill.active{background:var(--ember-dim); border-color:var(--ember); color:var(--ember-soft);}

/* ---------- scrollable photo frames (fleet + tours) ---------- */
.photo-scroll{display:flex; overflow-x:auto; scroll-snap-type:x mandatory;}
.photo-scroll::-webkit-scrollbar{display:none;}
.photo-frame{min-width:100%; scroll-snap-align:start; height:130px; position:relative; display:flex; align-items:center; justify-content:center; background:radial-gradient(120% 140% at 20% 0%, rgba(249,115,22,0.22), transparent 60%), var(--panel-raised);}
.photo-frame svg{width:60%; height:auto; opacity:0.92;}
.photo-frame .idx{position:absolute; bottom:8px; right:10px; font-size:11px; color:var(--ink-faint); background:rgba(10,14,23,0.5); padding:2px 7px; border-radius:999px;}
.car-badge{position:absolute; top:10px; left:10px; font-size:11px; font-weight:700; padding:4px 9px; border-radius:999px; background:rgba(10,14,23,0.6); backdrop-filter:blur(4px); color:var(--ember-soft); border:1px solid rgba(249,115,22,0.3); z-index:2;}
.car-badge.booked{color:var(--bad); border-color:rgba(248,113,113,0.35);}

/* ---------- car grid ---------- */
.car-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; margin-top:20px;}
.car-card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-md); overflow:hidden; display:flex; flex-direction:column; transition:border-color .15s;}
.car-card:hover{border-color:rgba(249,115,22,0.35);}
.car-art{position:relative;}
.car-body{padding:14px 16px 16px; display:flex; flex-direction:column; gap:10px; flex:1;}
.car-body h4{margin:0; font-size:16px; font-weight:600;}
.car-meta{display:flex; gap:10px; flex-wrap:wrap; font-size:12px; color:var(--ink-dim);}
.car-meta span{background:var(--panel-raised); padding:3px 8px; border-radius:6px;}
.car-period{font-size:12.5px; color:var(--ink-faint); margin-top:auto;}
.car-period b{color:var(--ink);}
.btn{border:none; border-radius:12px; padding:12px 18px; font-size:14.5px; font-weight:700; cursor:pointer; transition:transform .12s ease, background .15s, opacity .15s; display:inline-flex; align-items:center; justify-content:center; gap:8px;}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--ember); color:#1a0e00;}
.btn-primary:hover{background:var(--ember-soft);}
.btn-primary:disabled{background:var(--panel-raised); color:var(--ink-faint); cursor:not-allowed;}
.btn-ghost{background:var(--panel-raised); color:var(--ink);}
.btn-ghost:hover{background:#243252;}
.btn-block{width:100%;}
.btn-danger{background:rgba(248,113,113,0.14); color:var(--bad); border:1px solid rgba(248,113,113,0.3);}
.btn-sm{padding:8px 12px; font-size:13px; border-radius:9px;}

/* ---------- detail / forms ---------- */
.detail-wrap{display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:start;}
@media (max-width:820px){.detail-wrap{grid-template-columns:1fr;}}
.detail-art{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--panel-line); min-height:220px;}
.detail-art .photo-frame{height:260px;}
.card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-lg); padding:24px;}
.card h3{margin:0 0 4px; font-size:19px;}
.card .sub{color:var(--ink-dim); font-size:13.5px; margin:0 0 18px;}
.field-label{display:block; font-size:12.5px; color:var(--ink-dim); margin:0 0 6px; font-weight:600;}
.field{margin-bottom:16px;}
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], input[type=datetime-local], select, textarea{
  width:100%; background:var(--panel-raised); border:1px solid var(--panel-line); color:var(--ink); border-radius:10px; padding:11px 12px; font-size:14.5px; font-family:inherit;
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--ember); outline-offset:1px;}
textarea{resize:vertical; min-height:70px;}
.choice-row{display:flex; gap:8px; flex-wrap:wrap;}
.choice{padding:10px 15px; border-radius:11px; border:1px solid var(--panel-line); background:var(--panel-raised); color:var(--ink-dim); font-size:13.5px; cursor:pointer; text-align:center; min-width:78px;}
.choice.selected{background:var(--ember); color:#1a0e00; border-color:var(--ember); font-weight:700;}
.choice[disabled]{opacity:0.35; cursor:not-allowed;}
.scroller{display:grid; grid-template-columns:repeat(auto-fill, minmax(64px,1fr)); gap:8px;}
.scroller::-webkit-scrollbar{height:6px;}
.scroller::-webkit-scrollbar-thumb{background:var(--panel-raised); border-radius:6px;}
@media (max-width:420px){ .scroller{grid-template-columns:repeat(3,1fr);} .choice{min-width:0; padding:10px 6px; font-size:12.5px;} }
.hint{font-size:12px; color:var(--ink-faint); margin-top:6px;}
.checkline{display:flex; gap:10px; align-items:flex-start; font-size:12.8px; color:var(--ink-dim); margin:18px 0;}
.checkline input{margin-top:3px;}
.checkline a{color:var(--ember-soft); text-decoration:underline;}
.fuel-box{background:var(--ember-dim); border:1px solid rgba(249,115,22,0.3); border-radius:12px; padding:14px 16px; font-size:13.5px; color:var(--ink); margin:16px 0;}
.fuel-box b{color:var(--ember-soft);}
.fuel-box .leg{display:flex; justify-content:space-between; padding:3px 0; color:var(--ink-dim);}
.fuel-box .leg b{color:var(--ink);}
.pay-box{background:var(--panel-raised); border:1px dashed rgba(249,115,22,0.4); border-radius:12px; padding:16px; margin:16px 0; font-size:14px;}
.pay-box .num{font-family:'Space Grotesk',monospace; font-size:20px; letter-spacing:1px; color:var(--ember-soft); margin-top:4px;}

/* ---------- confirmation ---------- */
.confirm-wrap{max-width:520px; margin:40px auto; text-align:center;}
.confirm-icon{width:64px; height:64px; margin:0 auto 18px;}
.confirm-wrap h2{margin:0 0 8px;}
.confirm-wrap p{color:var(--ink-dim); font-size:14.5px; line-height:1.6;}
.confirm-actions{display:flex; gap:10px; justify-content:center; margin-top:24px; flex-wrap:wrap;}
.receipt-slip{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-md); padding:20px; text-align:left; margin-top:24px; font-size:13.5px;}
.receipt-slip div{display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px dashed var(--panel-line); color:var(--ink-dim);}
.receipt-slip div b{color:var(--ink); font-weight:600;}
.receipt-slip div:last-child{border-bottom:none;}

/* ---------- tours ---------- */
.tour-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; margin-top:20px;}
.tour-card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-md); overflow:hidden;}
.tour-cat{position:absolute; top:10px; left:10px; font-size:11px; font-weight:700; padding:4px 9px; border-radius:999px; background:rgba(10,14,23,0.6); color:var(--ember-soft); border:1px solid rgba(249,115,22,0.3); z-index:2;}
.tour-body{padding:14px 16px 16px; display:flex; flex-direction:column; gap:8px;}
.tour-body h4{margin:0; font-size:16px;}
.tour-meta{display:flex; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--ink-dim);}
.tour-meta span{background:var(--panel-raised); padding:3px 8px; border-radius:6px;}
.tour-price{font-family:'Space Grotesk'; font-size:17px; color:var(--teal); font-weight:600;}
.slots-bar{height:6px; background:var(--panel-raised); border-radius:6px; overflow:hidden;}
.slots-bar i{display:block; height:100%; background:var(--teal);}
.inst-tag{font-size:11.5px; color:var(--ink-faint); background:var(--panel-raised); padding:5px 10px; border-radius:8px; display:inline-block;}

/* ---------- admin ---------- */
.admin-shell{display:grid; grid-template-columns:220px 1fr; min-height:100dvh;}
@media (max-width:760px){.admin-shell{grid-template-columns:1fr;}}
.admin-side{background:var(--panel); border-right:1px solid var(--panel-line); padding:22px 16px; display:flex; flex-direction:column; gap:4px;}
.admin-side .role-tag{font-size:11px; color:var(--ember-soft); background:var(--ember-dim); padding:4px 10px; border-radius:999px; width:fit-content; margin-bottom:16px; font-weight:700;}
.admin-side button{text-align:left; background:none; border:none; color:var(--ink-dim); padding:10px 12px; border-radius:9px; cursor:pointer; font-size:14px;}
.admin-side button.active, .admin-side button:hover{background:var(--panel-raised); color:var(--ink);}
.admin-main{padding:26px clamp(16px,3vw,36px) 60px;}
.admin-header{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; flex-wrap:wrap; gap:10px;}
.stat-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:24px;}
.stat-box{background:var(--panel); border:1px solid var(--panel-line); border-radius:12px; padding:14px 16px;}
.stat-box .n{font-family:'Space Grotesk'; font-size:26px; font-weight:600;}
.stat-box .l{font-size:12px; color:var(--ink-dim);}
table{width:100%; border-collapse:collapse; font-size:13.5px;}
th{text-align:left; color:var(--ink-faint); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:0.4px; padding:0 12px 10px; border-bottom:1px solid var(--panel-line);}
td{padding:12px; border-bottom:1px solid var(--panel-line); vertical-align:middle;}
.table-wrap{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-md); overflow:auto; margin-bottom:26px;}
.status-chip{font-size:11px; padding:4px 9px; border-radius:999px; font-weight:700; white-space:nowrap;}
.status-pending{background:rgba(251,191,36,0.14); color:var(--warn);}
.status-approved{background:rgba(52,211,153,0.14); color:var(--ok);}
.status-booked{background:rgba(249,115,22,0.16); color:var(--ember-soft);}
.status-locked{background:rgba(248,113,113,0.14); color:var(--bad);}
.status-hidden{background:rgba(156,163,175,0.14); color:var(--ink-faint);}
.row-actions{display:flex; gap:6px; flex-wrap:wrap;}
.admin-login-wrap{flex:1; display:flex; align-items:center; justify-content:center; padding:20px;}
.admin-login-card{width:min(92vw,380px); background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-lg); padding:30px 26px;}
.demo-note{font-size:12px; color:var(--ink-faint); background:var(--panel-raised); padding:10px 12px; border-radius:9px; margin-top:14px; line-height:1.5;}
.section-title{font-size:15px; font-weight:700; margin:0 0 12px; display:flex; align-items:center; gap:8px;}
.modal-backdrop{position:fixed; inset:0; background:rgba(6,8,14,0.7); backdrop-filter:blur(3px); z-index:50; display:flex; align-items:center; justify-content:center; padding:20px;}
.modal-card{background:var(--panel); border:1px solid var(--panel-line); border-radius:var(--r-lg); padding:24px; width:min(92vw,460px); max-height:86vh; overflow:auto;}
.form-grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:480px){.form-grid2{grid-template-columns:1fr;}}
.empty-note{color:var(--ink-faint); font-size:13.5px; padding:30px 0; text-align:center;}
.health-banner{display:flex; align-items:center; gap:10px; background:rgba(52,211,153,0.1); border:1px solid rgba(52,211,153,0.3); color:var(--ok); padding:12px 16px; border-radius:12px; font-size:13.5px; font-weight:600; margin-bottom:20px;}
.health-banner .pulse{width:9px; height:9px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 0 rgba(52,211,153,0.7); animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,0.5);} 70%{box-shadow:0 0 0 10px rgba(52,211,153,0);} 100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}}
.diag-row{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--panel-line); font-size:13.5px;}
.diag-row:last-child{border-bottom:none;}

@media (prefers-reduced-motion: reduce){ *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;} }