:root{
  --ink:#05030f;--ink2:#0d0a20;
  --g:rgba(255,255,255,.06);--g2:rgba(255,255,255,.11);
  --b:rgba(255,255,255,.14);--b2:rgba(255,255,255,.26);
  --teal:#00e5cc;--vio:#8b5cf6;--coral:#ff6b6b;--gold:#f9c74f;
  --sky:#38bdf8;--mint:#34d399;--pink:#f472b6;--ora:#fb923c;
  --t1:rgba(255,255,255,.93);--t2:rgba(255,255,255,.55);--t3:rgba(255,255,255,.28);
  --fh:'Poppins',sans-serif;--fb:'DM Sans',sans-serif;--fm:'JetBrains Mono',monospace;
  --r8:8px;--r12:12px;--r16:16px;--r20:20px;--r24:24px;--r32:32px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--fb);background:var(--ink);color:var(--t1);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;}


/* STEPPER WIDGET */
.stpr{display:flex;align-items:stretch;border:1.5px solid var(--b);border-radius:var(--r16);overflow:hidden;background:var(--g2);transition:border-color .2s;}
.stpr:focus-within{border-color:var(--teal);}
.stpr input{flex:1;width:0;border:none;background:transparent;color:var(--t1);font-family:var(--fh);font-size:18px;font-weight:700;text-align:center;outline:none;padding:12px 6px;min-width:0;-moz-appearance:textfield;}
.stpr input::-webkit-outer-spin-button,.stpr input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.stpr-btn{width:52px;flex-shrink:0;background:rgba(255,255,255,.06);border:none;color:var(--t2);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.stpr-btn:first-child{border-right:1.5px solid var(--b);}
.stpr-btn:last-child{border-left:1.5px solid var(--b);}
.stpr-btn:hover{background:rgba(0,229,204,.15);color:var(--teal);}
.stpr-btn:active{transform:scale(.9);}
/* also hide spinners on all .fc number inputs */
input.fc[type=number]{-moz-appearance:textfield;}
input.fc[type=number]::-webkit-outer-spin-button,
input.fc[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}


/* DESTINATION SUGGESTIONS */
.dest-sugg{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#0d0a22;border:1.5px solid var(--b);border-radius:var(--r12);z-index:500;overflow:hidden;display:none;}
.dest-sugg.open{display:block;}
.dest-si{padding:13px 16px;cursor:pointer;font-size:14px;font-family:var(--fh);font-weight:600;display:flex;align-items:center;gap:10px;transition:background .15s;}
.dest-si:hover{background:rgba(0,229,204,.12);color:var(--teal);}
.dest-si-sub{font-size:11px;color:var(--t2);font-weight:400;font-family:var(--fb);}

/* FIX checkbox-label double-toggle: pointer-events none on inner spans */
.locitem,.cpk,.xitem{cursor:pointer;user-select:none;}
.locitem *:not(input),.cpk *:not(input),.xitem *:not(input){pointer-events:none;}
/* hide native number spinners globally */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
input[type=number]{-moz-appearance:textfield;}


/* FRESH-UP SESSION ROWS */
.fu-grid{display:flex;flex-direction:column;gap:8px;}
.fu-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--g);border:1.5px solid var(--b);border-radius:var(--r16);transition:border-color .2s;}
.fu-row.fu-on{border-color:var(--sky);background:rgba(56,189,248,.07);}
.fu-pill{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer;user-select:none;margin:0;}
.fu-pill *:not(input){pointer-events:none;}
.fu-sh-wrap{flex-shrink:0;width:130px;opacity:.4;pointer-events:none;transition:opacity .2s;}
.fu-row.fu-on .fu-sh-wrap{opacity:1;pointer-events:all;}


/* PDF BUTTON */
.btn-pdf{display:inline-flex;align-items:center;gap:9px;padding:14px 28px;border-radius:var(--r16);border:none;background:linear-gradient(135deg,#f9c74f,#fb923c);color:#fff;font-family:var(--fh);font-size:14px;font-weight:800;cursor:pointer;transition:all .3s;box-shadow:0 6px 22px rgba(249,199,79,.4);margin-top:1.4rem;width:100%;justify-content:center;}
.btn-pdf:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(249,199,79,.55);}
@media print{
  body>*:not(.invwrap){display:none!important;}
  .invwrap{display:block!important;margin:0;padding:0;}
  .invc{box-shadow:none;backdrop-filter:none;border:none;}
  .btn-pdf{display:none!important;}
}


/* ACCORDION */
.acc-day{border:1.5px solid var(--b);border-radius:var(--r20);overflow:hidden;margin-bottom:.8rem;}
.acc-day:last-child{margin-bottom:0;}
.acc-hdr{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;background:var(--g2);user-select:none;transition:background .2s;}
.acc-hdr:hover{background:rgba(255,255,255,.14);}
.acc-hdr.open{background:rgba(255,255,255,.12);}
.acc-chevron{margin-left:auto;font-size:13px;color:var(--t2);transition:transform .3s cubic-bezier(.16,1,.3,1);}
.acc-hdr.open .acc-chevron{transform:rotate(180deg);}
.acc-body{display:none;padding:14px 16px 16px;}
.acc-body.open{display:block;animation:accOpen .25s ease both;}
@keyframes accOpen{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

/* DESTINATION SEARCH in itinerary */
.dest-search-wrap{position:relative;margin-bottom:.9rem;}
.dest-search-inp{width:100%;padding:14px 46px 14px 46px;background:var(--g2);border:1.5px solid var(--b);border-radius:var(--r16);color:var(--t1);font-family:var(--fb);font-size:15px;outline:none;transition:border-color .2s,background .2s;-webkit-appearance:none;}
.dest-search-inp:focus{border-color:var(--gold);background:rgba(249,199,79,.05);}
.dest-search-inp.has-val{border-color:rgba(249,199,79,.4);color:var(--t1);}
.dest-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:17px;color:var(--t3);pointer-events:none;transition:color .2s;}
.dest-search-inp:focus~.dest-search-icon{color:var(--gold);}
.dest-search-clr{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:8px;border:none;background:rgba(255,255,255,.1);color:var(--t2);font-size:12px;cursor:pointer;display:none;align-items:center;justify-content:center;transition:all .2s;}
.dest-search-clr:hover{background:rgba(255,107,107,.2);color:var(--coral);}
.dest-search-inp.has-val~.dest-search-clr{display:flex;}
.dest-sugg-box{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#0d0a22;border:1.5px solid rgba(249,199,79,.3);border-radius:var(--r16);z-index:600;overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.5);display:none;}
.dest-sugg-box.open{display:block;animation:accOpen .2s ease both;}
.dest-sugg-item{display:flex;align-items:center;gap:13px;padding:14px 16px;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.06);}
.dest-sugg-item:last-child{border-bottom:none;}
.dest-sugg-item:hover{background:rgba(249,199,79,.1);}
.dest-sugg-icon{width:38px;height:38px;border-radius:10px;background:rgba(249,199,79,.12);border:1px solid rgba(249,199,79,.25);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--gold);flex-shrink:0;}
.dest-sugg-name{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--t1);}
.dest-sugg-sub{font-size:11px;color:var(--t2);margin-top:2px;}
.dest-selected-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:rgba(249,199,79,.12);border:1px solid rgba(249,199,79,.3);color:var(--gold);font-family:var(--fh);font-size:12px;font-weight:700;margin-bottom:.8rem;}


/* BOARDING POINTS & GMAPS */
.bp-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;animation:popIn .25s ease both;}
.bp-input-wrap{flex:1;position:relative;}
.bp-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:17px;pointer-events:none;}
.bp-input-wrap input{padding-left:44px;}
.gm-dest-wrap{position:relative;margin-bottom:8px;}
.gm-dest-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;pointer-events:none;color:var(--gold);}
.gm-dest-wrap input{padding-left:44px;padding-right:44px;}
.gm-dest-del{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:8px;border:none;background:rgba(255,107,107,.15);color:var(--coral);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.spot-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;margin-bottom:4px;}
.spot-chip{padding:7px 13px;border-radius:999px;border:1.5px solid var(--b);background:transparent;font-size:12px;font-family:var(--fh);font-weight:600;cursor:pointer;color:var(--t2);transition:all .2s;display:flex;align-items:center;gap:6px;}
.spot-chip:hover{border-color:var(--gold);color:var(--gold);}
.spot-chip.sel{background:rgba(249,199,79,.12);border-color:var(--gold);color:var(--gold);}
.spot-chip.sel::before{content:'\2713  ';}
.route-seg{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r12);background:rgba(56,189,248,.06);border:1px solid rgba(56,189,248,.2);margin-bottom:6px;font-size:12px;}
.route-seg-km{margin-left:auto;font-family:var(--fh);font-weight:700;color:var(--sky);white-space:nowrap;}
.return-section{background:rgba(255,107,107,.06);border:1.5px solid rgba(255,107,107,.25);border-radius:var(--r20);padding:1.2rem;margin-bottom:1rem;}
.return-title{font-family:var(--fh);font-size:14px;font-weight:800;color:var(--coral);margin-bottom:.7rem;display:flex;align-items:center;gap:8px;}
.map-container{width:100%;height:440px;border-radius:var(--r20);overflow:hidden;border:1.5px solid var(--b);background:var(--g2);display:flex;align-items:center;justify-content:center;margin-top:1rem;}
.map-container.loaded{background:transparent;}
.km-summary-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;background:rgba(56,189,248,.08);border:1.5px solid rgba(56,189,248,.3);border-radius:var(--r16);padding:1rem 1.4rem;margin-bottom:1rem;}
.km-summary-item{text-align:center;}
.km-summary-lbl{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);margin-bottom:3px;font-family:var(--fh);}
.km-summary-val{font-family:var(--fh);font-size:18px;font-weight:800;color:var(--sky);}
.km-summary-val.total{color:var(--teal);font-size:22px;}
.calc-btn-row{display:flex;gap:10px;margin-top:.8rem;}
.btn-route{padding:13px 22px;border-radius:var(--r16);border:none;background:linear-gradient(135deg,var(--sky),var(--vio));color:#fff;font-family:var(--fh);font-size:14px;font-weight:800;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:8px;min-height:50px;box-shadow:0 4px 16px rgba(56,189,248,.35);}
.btn-route:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(56,189,248,.5);}
.btn-route:disabled{opacity:.4;cursor:not-allowed;transform:none;}
.api-warn{background:rgba(249,199,79,.1);border:1.5px solid rgba(249,199,79,.3);border-radius:var(--r12);padding:12px 16px;font-size:12px;color:var(--gold);margin-bottom:1rem;display:flex;align-items:flex-start;gap:9px;line-height:1.5;}

/* SCENE */
.scene{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.orb{position:absolute;border-radius:50%;filter:blur(100px);mix-blend-mode:screen;}
.o1{width:700px;height:700px;background:radial-gradient(#8b5cf630,#38bdf815);top:-20%;left:-15%;animation:drift 22s ease-in-out infinite alternate;}
.o2{width:600px;height:600px;background:radial-gradient(#00e5cc20,#8b5cf610);bottom:-15%;right:-15%;animation:drift 18s 3s ease-in-out infinite alternate-reverse;}
.o3{width:400px;height:400px;background:radial-gradient(#ff6b6b18,transparent);top:40%;left:50%;animation:drift 26s 6s ease-in-out infinite alternate;}
@keyframes drift{0%{transform:translate(0,0)scale(1);}50%{transform:translate(40px,-60px)scale(1.08);}100%{transform:translate(-30px,50px)scale(.94);}}
.scene::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018)1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018)1px,transparent 1px);background-size:52px 52px;}
#rc{position:fixed;inset:0;pointer-events:none;z-index:9050;}

/* FABs */
.rc-fab{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:9000;display:flex;flex-direction:column;align-items:center;gap:8px;background:linear-gradient(180deg,#8b5cf6,#38bdf8);border:none;border-radius:0 16px 16px 0;padding:18px 10px;cursor:pointer;box-shadow:4px 0 28px rgba(139,92,246,.5);transition:all .3s cubic-bezier(.34,1.56,.64,1);}
.rc-fab:hover{padding-right:18px;}
.fml-fab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:9000;display:flex;flex-direction:column;align-items:center;gap:8px;background:linear-gradient(180deg,#f9c74f,#00e5cc);border:none;border-radius:16px 0 0 16px;padding:18px 10px;cursor:pointer;box-shadow:-4px 0 28px rgba(249,199,79,.45);transition:all .3s cubic-bezier(.34,1.56,.64,1);}
.fml-fab:hover{padding-left:18px;}
.fi{font-size:18px;color:#fff;transition:transform .3s;}
.rc-fab:hover .fi{transform:rotate(20deg)scale(1.1);}
.fml-fab:hover .fi{transform:rotate(-20deg)scale(1.1);}
.ft{font-family:var(--fh);font-size:9px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.85);writing-mode:vertical-rl;white-space:nowrap;}
.rc-fab .ft{transform:rotate(180deg);}
.fp{position:absolute;top:10px;width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);animation:pulse 2s ease infinite;}
.rc-fab .fp{right:-4px;background:var(--mint);}
.fml-fab .fp{left:-4px;background:var(--vio);}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.6);opacity:.4;}}

/* DRAWER */
.ov{position:fixed;inset:0;z-index:9100;background:rgba(5,3,15,.72);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .35s;}
.ov.open{opacity:1;pointer-events:all;}
.dr{position:fixed;top:0;bottom:0;z-index:9200;display:flex;flex-direction:column;transition:transform .42s cubic-bezier(.16,1,.3,1);}
.dr-l{left:0;width:min(780px,95vw);background:linear-gradient(160deg,#0b0720,#0e1830 55%,#080f1a);border-right:1px solid var(--b);box-shadow:8px 0 60px rgba(0,0,0,.7);transform:translateX(-100%);}
.dr-r{right:0;width:min(860px,96vw);background:linear-gradient(160deg,#0c1a0e,#0e1c2a 45%,#08101d);border-left:1px solid var(--b);box-shadow:-8px 0 60px rgba(0,0,0,.7);transform:translateX(100%);}
.dr.open{transform:translateX(0);}
.drhd{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.6rem;flex-shrink:0;background:rgba(255,255,255,.04);border-bottom:1px solid var(--b);}
.drhd h2{font-family:var(--fh);font-size:1rem;font-weight:700;flex:1;}
.drhd p{font-size:11px;color:var(--t2);}
.dbadge{padding:5px 14px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;}
.bg{background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.35);color:var(--mint);}
.ba{background:rgba(249,199,79,.15);border:1px solid rgba(249,199,79,.35);color:var(--gold);}
.drx{width:44px;height:44px;border-radius:12px;border:1px solid var(--b);background:var(--g2);color:var(--t2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;}
.drx:hover{background:rgba(255,107,107,.2);border-color:var(--coral);color:var(--coral);}
.drtabs{display:flex;gap:4px;padding:10px 14px;background:rgba(255,255,255,.02);border-bottom:1px solid rgba(255,255,255,.06);overflow-x:auto;flex-shrink:0;}
.drtabs::-webkit-scrollbar{height:3px;}
.drtabs::-webkit-scrollbar-thumb{background:var(--b);border-radius:999px;}
.drtab{padding:9px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:transparent;color:rgba(255,255,255,.4);font-family:var(--fb);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;min-height:44px;}
.drtab.active{background:rgba(139,92,246,.2);border-color:rgba(139,92,246,.5);color:#c4b5fd;}
.dr-r .drtab.active{background:rgba(249,199,79,.18);border-color:rgba(249,199,79,.5);color:var(--gold);}
.drbody{flex:1;overflow-y:auto;padding:1.4rem 1.6rem;}
.drbody::-webkit-scrollbar{width:5px;}
.drbody::-webkit-scrollbar-thumb{background:var(--b);border-radius:999px;}
.drpanel{display:none;}.drpanel.active{display:block;}
.drft{padding:14px 16px;border-top:1px solid var(--b);background:rgba(255,255,255,.02);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.drft-note{font-size:10.5px;color:var(--t3);}
.btn-apply{padding:12px 22px;border-radius:12px;border:none;background:linear-gradient(135deg,#8b5cf6,#38bdf8);color:#fff;font-family:var(--fb);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:7px;min-height:46px;}
.btn-apply:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(139,92,246,.4);}
.dr-r .btn-apply{background:linear-gradient(135deg,#f9c74f,#00e5cc);}
.btn-rst{padding:12px 18px;border-radius:12px;border:1px solid var(--b);background:transparent;color:var(--t2);font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;min-height:46px;}
.btn-rst:hover{border-color:rgba(255,107,107,.4);color:var(--coral);}

/* RC TABLES */
.rct{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:1rem;}
.rct thead tr{background:rgba(255,255,255,.06);}
.rct th{padding:9px 11px;text-align:center;font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);border:1px solid rgba(255,255,255,.07);}
.rct th.rl{text-align:left;}
.rct td{padding:5px 7px;border:1px solid rgba(255,255,255,.05);text-align:center;}
.rct td.rl{text-align:left;font-size:12px;font-weight:600;color:var(--t2);padding:5px 11px;background:rgba(255,255,255,.02);}
.rci{width:100%;background:var(--g2);border:1px solid var(--b);border-radius:7px;padding:6px 9px;color:var(--t1);font-family:var(--fb);font-size:12px;text-align:center;outline:none;transition:border-color .2s;}
.rci:focus{border-color:var(--vio);background:rgba(139,92,246,.1);}
.drsec{margin-bottom:1.6rem;}
.drsec-t{font-size:9.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--t3);padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:10px;}
.vcg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.vci{background:var(--g);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px 13px;}
.vcn{font-size:9.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t2);margin-bottom:8px;}
.vcr{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:5px;}
.vcl{font-size:10px;color:var(--t3);white-space:nowrap;}
.vcr .rci{max-width:88px;}
.pftr{display:flex;align-items:center;gap:14px;background:var(--g);border:1px solid var(--b);border-radius:12px;padding:14px 18px;}
.pftr label{font-size:12px;color:var(--t2);font-weight:600;}
.pftr .rci{max-width:110px;font-size:14px;font-weight:700;}
.pftn{font-size:11px;color:var(--t3);margin-top:6px;}

/* FORMULA DRAWER */
.fmlcard{background:var(--g);border:1px solid rgba(255,255,255,.08);border-radius:var(--r16);padding:1.4rem;margin-bottom:1rem;}
.fmlhd{display:flex;align-items:flex-start;gap:12px;margin-bottom:1.1rem;padding-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.06);}
.fmlnum{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.fmlttl{font-family:var(--fh);font-size:14px;font-weight:700;margin-bottom:3px;}
.fmlsub{font-size:11px;color:var(--t2);line-height:1.5;}
.varleg{display:grid;grid-template-columns:auto 1fr auto;border:1px solid rgba(255,255,255,.07);border-radius:var(--r8);overflow:hidden;margin-bottom:1rem;font-size:12px;}
.varleg-h{display:contents;}
.varleg-h>div{padding:6px 11px;background:rgba(255,255,255,.06);font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);border-bottom:1px solid rgba(255,255,255,.07);}
.varr{display:contents;}
.varr>div{padding:7px 11px;border-bottom:1px solid rgba(255,255,255,.03);}
.varr:last-child>div{border-bottom:none;}
.varr>div:nth-child(1){background:rgba(255,255,255,.02);}
.varr>div:nth-child(2){color:var(--t2);}
.varr>div:nth-child(3){text-align:right;color:var(--t3);font-size:10.5px;}
.vchip{display:inline-block;padding:2px 9px;border-radius:999px;font-family:var(--fm);font-size:10.5px;font-weight:500;}
.vc{background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.28);color:var(--sky);}
.va{background:rgba(249,199,79,.12);border:1px solid rgba(249,199,79,.28);color:var(--gold);}
.vg{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.28);color:var(--mint);}
.vo{background:rgba(251,146,60,.12);border:1px solid rgba(251,146,60,.28);color:var(--ora);}
.fmlel{font-size:9.5px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--t3);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;}
.fmlst{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;}
.fmlst.ok{color:var(--mint);}.fmlst.err{color:var(--coral);}
.fmlta{width:100%;background:#060a0f;border:1.5px solid var(--b);border-radius:var(--r8);padding:12px 14px;color:#e2e8f0;font-family:var(--fm);font-size:13px;line-height:1.6;outline:none;resize:vertical;min-height:60px;transition:border-color .2s;}
.fmlta:focus{border-color:rgba(249,199,79,.5);}
.fmlta.eb{border-color:rgba(255,107,107,.5);}
.fmlem{font-size:10.5px;color:var(--coral);margin-top:4px;min-height:16px;}
.fmlprev{background:rgba(52,211,153,.05);border:1px solid rgba(52,211,153,.15);border-radius:var(--r8);padding:9px 13px;font-size:12px;color:var(--t2);margin-bottom:.6rem;}
.fmlprev strong{color:var(--mint);font-size:13px;}
.fmlnote{background:rgba(56,189,248,.04);border-left:3px solid rgba(56,189,248,.3);border-radius:0 var(--r8) var(--r8) 0;padding:9px 13px;font-size:11px;color:var(--t2);line-height:1.6;}

/* TOASTS */
.toast{position:fixed;bottom:2.5rem;left:50%;transform:translateX(-50%)translateY(20px);backdrop-filter:blur(20px);border-radius:999px;padding:12px 26px;font-size:13px;font-weight:600;z-index:9999;opacity:0;pointer-events:none;transition:all .35s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;}
.toast.show{opacity:1;transform:translateX(-50%)translateY(0);}
#rcToast{background:rgba(52,211,153,.18);border:1px solid rgba(52,211,153,.38);color:var(--mint);}
#fmlToast{background:rgba(249,199,79,.18);border:1px solid rgba(249,199,79,.38);color:var(--gold);}

/* WIZARD */
.shell{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:0 60px;}
.topbar{width:100%;max-width:900px;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 0 1rem;}
.brand{display:flex;align-items:center;gap:12px;}
.bm{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--vio),var(--teal));display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.45);}
.bn{font-family:var(--fh);font-size:16px;font-weight:800;}
.bs{font-size:10px;color:var(--t2);letter-spacing:1.5px;text-transform:uppercase;}
.sc{font-size:12px;color:var(--t3);font-weight:600;}
.sc span{color:var(--teal);font-weight:800;}

/* PROGRESS */
.pw{width:100%;max-width:900px;margin-bottom:2rem;}
.pt{display:flex;align-items:center;position:relative;}
.pt::before{content:'';position:absolute;top:50%;left:0;right:0;height:2px;background:rgba(255,255,255,.08);transform:translateY(-50%);z-index:0;border-radius:999px;}
.ps{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;z-index:1;cursor:pointer;}
.pd{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.12);background:var(--ink2);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--t3);transition:all .4s cubic-bezier(.34,1.56,.64,1);position:relative;}
.pd::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:2px solid transparent;transition:all .4s ease;}
.pll{font-family:var(--fh);font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t3);margin-top:8px;text-align:center;line-height:1.3;max-width:62px;transition:color .3s;}
.pline{flex:1;height:2px;background:rgba(255,255,255,.08);position:relative;z-index:0;transition:background .4s;margin-top:-18px;}
.ps.done .pd{background:linear-gradient(135deg,var(--vio),var(--teal));border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.5);}
.ps.done .pll{color:var(--t2);}
.ps.active .pd{background:linear-gradient(135deg,var(--teal),var(--vio));border-color:transparent;color:#fff;box-shadow:0 0 0 5px rgba(0,229,204,.15),0 6px 20px rgba(139,92,246,.5);transform:scale(1.2);}
.ps.active .pd::after{border-color:var(--teal);animation:ring 2s ease infinite;}
.ps.active .pll{color:var(--teal);font-weight:800;}
.pline.done{background:linear-gradient(90deg,var(--vio),var(--teal));}
@keyframes ring{0%,100%{transform:scale(1);opacity:.6;}50%{transform:scale(1.15);opacity:1;}}

/* STEP CARD */
.stage{width:100%;max-width:900px;position:relative;display:flex;flex-direction:column;align-items:center;}
.card{display:none; width:100%; max-width:700px; background:var(--g);border:1px solid var(--b);border-radius:var(--r32);backdrop-filter:blur(32px)saturate(160%);box-shadow:0 12px 40px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12);overflow:hidden;flex-direction:column;}
.card.active{display:flex; animation: slideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;}
@keyframes slideIn {
  from { opacity: 0; transform: translateY(20px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.chd{display:flex;align-items:center;gap:1rem;padding:1.4rem 2rem;border-bottom:1px solid var(--b);background:rgba(255,255,255,.03);flex-shrink:0;}
.cicon{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;}
.cttl{font-family:var(--fh);font-size:1.15rem;font-weight:800;line-height:1.2;}
.csub{font-size:12px;color:var(--t2);margin-top:3px;}
.cbadge{margin-left:auto;font-family:var(--fh);font-size:9.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:999px;white-space:nowrap;}
.cbody{flex:1;overflow-y:auto;padding:1.8rem 2rem;}
/* VIEW TOGGLES */
.view-toggle{display:flex;background:var(--g2);border:1.5px solid var(--b);border-radius:999px;padding:4px;gap:4px;}
.vt-btn{padding:8px 16px;border-radius:999px;border:none;background:transparent;color:var(--t2);font-family:var(--fh);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;}
.vt-btn:hover{color:var(--t1);}
.vt-btn.active{background:linear-gradient(135deg,var(--teal),var(--vio));color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3);}

/* SCROLL BUTTONS */
.scroll-next-wrap { padding: 1rem 2rem; background: rgba(255,255,255,.02); border-top: 1px solid var(--b); display: flex; justify-content: flex-end; align-items: center; }
.scroll-next-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; border-radius: 999px; border: 1.5px solid var(--b); background: var(--g2); color: var(--t2); font-family: var(--fh); font-size: 13px; font-weight: 700; cursor: pointer; transition: all .2s; }
.scroll-next-btn:hover { border-color: var(--teal); color: var(--teal); background: rgba(0,229,204,.1); }

.cbody::-webkit-scrollbar{width:4px;}
.cbody::-webkit-scrollbar-thumb{background:var(--b);border-radius:999px;}
.btn-calc{width:100%;padding:16px 32px;border-radius:var(--r16);border:none;background:linear-gradient(135deg,var(--gold),#ff9800 50%,var(--coral));color:#fff;font-family:var(--fh);font-size:16px;font-weight:800;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 8px 28px rgba(249,199,79,.4);min-height:54px;}
.btn-calc:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 14px 38px rgba(249,199,79,.6);}

/* TAP PILLS */
.tap-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.tap-pill { flex: 1; min-width: 60px; padding: 12px 10px; border-radius: 12px; border: 1.5px solid var(--b); background: transparent; font-family: var(--fh); font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.2s; color: var(--t2); text-align: center; }
.tap-pill:hover { border-color: rgba(0,229,204,.4); color: var(--teal); }
.tap-pill.active { background: linear-gradient(135deg, var(--teal), var(--vio)); border-color: transparent; color: #fff; box-shadow: 0 4px 14px rgba(0,229,204,.3); }


/* FORM CONTROLS */
.flbl{display:block;font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);margin-bottom:6px;}
.fc{width:100%;padding:14px 16px;background:var(--g2);border:1.5px solid var(--b);border-radius:var(--r16);color:var(--t1);font-family:var(--fb);font-size:15px;outline:none;transition:border-color .2s,background .2s;-webkit-appearance:none;appearance:none;min-height:52px;}
.fc:focus{border-color:var(--teal);background:rgba(0,229,204,.05);}
select.fc{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2300e5cc'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:44px;}
select.fc option{background:#14093a;}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem;}
.frow.c2{grid-template-columns:1fr 1fr;}
.frow.c3{grid-template-columns:1fr 1fr 1fr;}
.frow.c4{grid-template-columns:1fr 1fr 1fr 1fr;}
.fld{display:flex;flex-direction:column;}
.span2{grid-column:span 2;}
.info{font-size:12px;color:var(--t3);margin-top:5px;line-height:1.6;}

/* Category pills */
.cat-wrap{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:1rem;}
.cpill{padding:13px 22px;border-radius:999px;border:1.5px solid var(--b);background:transparent;font-family:var(--fh);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;color:var(--t2);user-select:none;min-height:52px;display:inline-flex;align-items:center;}
.cpill:hover{border-color:rgba(0,229,204,.4);color:var(--teal);}
.cpill.active{background:linear-gradient(135deg,var(--teal),var(--vio));border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(0,229,204,.3);}

/* Accommodation & Fresh-up Rows */
.mhd { display: grid; grid-template-columns: 1fr 150px 40px; gap: 12px; font-size: 10px; font-weight: 700; color: var(--t3); letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 8px; font-family: var(--fh); }
.mr { display: grid; grid-template-columns: 1fr 150px 40px; gap: 12px; align-items: start; margin-bottom: 14px; }
.btn-del { width: 40px; height: 40px; border-radius: 11px; border: 1px solid var(--b); background: transparent; color: var(--t3); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: all .2s; flex-shrink: 0; }
.btn-del:hover { background: rgba(255,107,107,.14); border-color: var(--coral); color: var(--coral); }
body.light-mode .btn-del:hover { background: rgba(255,107,107,.1); }

/* Day card */
.dc{background:var(--g2);border:1px solid var(--b);border-radius:var(--r20);padding:1.3rem;margin-bottom:1rem;}
.dc:last-child{margin-bottom:0;}
.dchd{display:flex;align-items:center;gap:10px;margin-bottom:1rem;padding-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.06);}
.dbadge{padding:5px 14px;border-radius:999px;font-family:var(--fh);font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;}
.db0{background:rgba(0,229,204,.12);color:var(--teal);border:1px solid rgba(0,229,204,.25);}
.db1{background:rgba(139,92,246,.12);color:#c4b5fd;border:1px solid rgba(139,92,246,.25);}
.db2{background:rgba(249,199,79,.12);color:var(--gold);border:1px solid rgba(249,199,79,.25);}
.db3{background:rgba(244,114,182,.12);color:var(--pink);border:1px solid rgba(244,114,182,.25);}

/* Toggle */
.togwrap{display:flex;align-items:center;gap:8px;margin-left:auto;}
.tog{position:relative;width:52px;height:28px;display:inline-block;}
.tog input{opacity:0;width:0;height:0;position:absolute;}
.togsl{position:absolute;inset:0;background:rgba(255,255,255,.08);border-radius:999px;cursor:pointer;transition:all .2s;border:1.5px solid var(--b);}
.togsl::before{content:'';position:absolute;width:20px;height:20px;left:4px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.4);border-radius:50%;transition:all .2s;}
.tog input:checked+.togsl{background:rgba(52,211,153,.3);border-color:var(--mint);}
.tog input:checked+.togsl::before{transform:translate(24px,-50%);background:var(--mint);}

/* Room matrix */
.mhd{display:grid;grid-template-columns:minmax(0, 1.5fr) 160px 44px;gap:8px;padding:4px 8px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t3);}
.mr{display:grid;grid-template-columns:minmax(0, 1.5fr) 160px 44px;gap:8px;align-items:center;padding:5px 0;}
.btn-del{width:44px;height:44px;border-radius:12px;border:1px solid var(--b);background:transparent;color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;}
.btn-del:hover{background:rgba(255,107,107,.14);border-color:var(--coral);color:var(--coral);}
.btn-add{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;border:1.5px dashed rgba(0,229,204,.4);background:rgba(0,229,204,.05);color:var(--teal);font-family:var(--fh);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;min-height:48px;margin-top:10px;}
.btn-add:hover{background:rgba(0,229,204,.12);border-color:var(--teal);}

/* Checkboxes */
.pills{display:flex;flex-wrap:wrap;gap:10px;}
.cpk{display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;border:1.5px solid var(--b);background:transparent;cursor:pointer;font-size:13px;font-weight:500;color:var(--t2);user-select:none;transition:all .2s;min-height:48px;}
.cpk input{display:none;}
.cpk:hover{border-color:rgba(0,229,204,.4);color:var(--teal);}
.cpk.on{background:rgba(0,229,204,.1);border-color:var(--teal);color:var(--teal);}
.pdot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;flex-shrink:0;}
.cpk.on .pdot{opacity:1;}

/* Meal grid */
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.mitem{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--r16);border:1.5px solid var(--b);background:transparent;transition:all .2s;min-height:56px;}
.mitem.on{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.06);}
.mchk{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--b2);background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none;transition:all .2s;flex-shrink:0;}
.mchk:checked{background:var(--mint);border-color:var(--mint);}
.mlbl{flex:1;font-family:var(--fh);font-size:14px;font-weight:600;cursor:pointer;}
.vt{display:flex;border-radius:999px;overflow:hidden;border:1.5px solid var(--b);flex-shrink:0;}
.vt input{display:none;}
.vt label{padding:7px 13px;font-size:11px;font-weight:700;cursor:pointer;color:var(--t2);transition:all .2s;letter-spacing:.4px;font-family:var(--fh);}
.vt input:checked+label.vl{background:rgba(52,211,153,.28);color:var(--mint);}
.vt input:checked+label.nvl{background:rgba(249,199,79,.28);color:var(--gold);}

/* Location */
.locgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:10px;}
.locitem{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:var(--r12);border:1.5px solid var(--b);background:transparent;cursor:pointer;font-size:13px;transition:all .2s;min-height:50px;}
.locitem:hover{border-color:rgba(249,199,79,.35);}
.locitem.on{border-color:var(--gold);background:rgba(249,199,79,.08);color:var(--gold);}
.locitem input{display:none;}
.ldot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5;flex-shrink:0;}
.locitem.on .ldot{opacity:1;}

/* Entertainment */
.entg{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.eitem{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--r20);border:1.5px solid var(--b);background:transparent;cursor:pointer;transition:all .2s;min-height:54px;}
.eitem input{display:none;}
.eicon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;border:1px solid var(--b);background:var(--g);transition:all .2s;}
.en{font-family:var(--fh);font-size:15px;font-weight:700;margin-bottom:4px;}
.ec{font-size:12px;color:var(--t2);}
.eitem:hover{border-color:rgba(244,114,182,.4);}
.eitem.on{border-color:var(--pink);background:rgba(244,114,182,.08);}
.eitem.on .eicon{background:rgba(244,114,182,.15);border-color:rgba(244,114,182,.3);}

/* Extra charges */
.extg{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.xitem{display:flex;flex-direction:column;align-items:center;padding:16px 8px;border-radius:var(--r16);border:1.5px solid var(--b);background:transparent;cursor:pointer;transition:all .2s;text-align:center;min-height:90px;}
.xitem input{display:none;}
.xi{font-size:24px;margin-bottom:6px;}
.xn{font-size:12px;font-weight:700;font-family:var(--fh);}
.xc{font-size:10px;color:var(--t2);margin-top:3px;}
.xitem:hover{border-color:rgba(251,146,60,.4);}
.xitem.on{border-color:var(--ora);background:rgba(251,146,60,.1);color:var(--ora);}
.xitem.on .xc{color:rgba(251,146,60,.65);}

/* Vehicle */
.vtg{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:1.4rem;}
.vtile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;background:var(--g);border:1.5px solid var(--b);border-radius:var(--r20);cursor:pointer;transition:all .25s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;min-height:150px;}
.vtile:hover{border-color:rgba(139,92,246,.55);transform:translateY(-3px);box-shadow:0 10px 30px rgba(139,92,246,.25);}
.vtile:active{transform:scale(.96);}
.vti{width:60px;height:60px;border-radius:var(--r16);background:linear-gradient(135deg,rgba(139,92,246,.2),rgba(0,229,204,.15));border:1px solid rgba(139,92,246,.3);display:flex;align-items:center;justify-content:center;font-size:26px;color:#c4b5fd;transition:transform .25s cubic-bezier(.34,1.56,.64,1);}
.vtile:hover .vti{transform:scale(1.1)rotate(-4deg);}
.vtn{font-family:var(--fh);font-size:16px;font-weight:700;}
.vts{font-size:12px;color:var(--t2);}
.vtplus{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:9px;background:rgba(139,92,246,.18);border:1px solid rgba(139,92,246,.3);display:flex;align-items:center;justify-content:center;font-size:12px;color:#c4b5fd;transition:all .2s;}
.vtile:hover .vtplus{background:rgba(139,92,246,.35);transform:rotate(90deg);}
.fleet-row{display:flex;align-items:center;gap:12px;background:var(--g2);border:1px solid var(--b);border-radius:var(--r16);padding:13px 15px;margin-bottom:9px;animation:popIn .3s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes popIn{from{opacity:0;transform:scale(.97);}to{opacity:1;transform:none;}}
.frt{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;}
.frt.bus{background:rgba(139,92,246,.18);border:1px solid rgba(139,92,246,.3);color:#c4b5fd;}
.frt.trav{background:rgba(0,229,204,.15);border:1px solid rgba(0,229,204,.28);color:var(--teal);}
.fri{flex:1;min-width:0;}
.frn{font-family:var(--fh);font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.frm{font-size:11.5px;color:var(--t2);margin-top:2px;}
.frc{display:flex;align-items:center;border:1.5px solid var(--b);border-radius:999px;overflow:hidden;flex-shrink:0;}
.fcb{width:40px;height:40px;background:var(--g2);border:none;color:var(--t2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;font-weight:700;}
.fcb:hover{background:rgba(0,229,204,.15);color:var(--teal);}
.fcv{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:15px;font-weight:800;background:var(--g);border-left:1px solid var(--b);border-right:1px solid var(--b);}
.btn-x{width:40px;height:40px;border-radius:11px;border:1px solid var(--b);background:transparent;color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;flex-shrink:0;}
.btn-x:hover{background:rgba(255,107,107,.14);border-color:var(--coral);color:var(--coral);}
/* VP modal */
.vpbd{position:fixed;inset:0;z-index:9500;background:rgba(5,3,15,.65);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .3s;}
.vpbd.open{opacity:1;pointer-events:all;}
.vpmodal{position:fixed;left:50%;bottom:0;z-index:9600;width:min(560px,100vw);background:linear-gradient(170deg,#121030,#0d1a30 60%,#090f1c);border:1px solid rgba(255,255,255,.16);border-radius:var(--r24) var(--r24) 0 0;box-shadow:0 -16px 60px rgba(0,0,0,.7);transform:translateX(-50%)translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);}
.vpmodal::before{content:'';display:block;width:44px;height:5px;border-radius:999px;background:rgba(255,255,255,.22);margin:14px auto 0;}
.vpmodal.open{transform:translateX(-50%)translateY(0);}
.vphd{display:flex;align-items:center;gap:12px;padding:13px 20px 15px;border-bottom:1px solid var(--b);}
.vphi{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,rgba(139,92,246,.25),rgba(0,229,204,.15));border:1px solid rgba(139,92,246,.35);display:flex;align-items:center;justify-content:center;font-size:20px;color:#c4b5fd;flex-shrink:0;}
.vptl{font-family:var(--fh);font-size:17px;font-weight:800;}
.vpbody{padding:14px 16px 22px;}
.vpopts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.vpopt{display:flex;flex-direction:column;align-items:flex-start;padding:16px 17px;border-radius:var(--r16);border:1.5px solid var(--b);background:var(--g);cursor:pointer;transition:all .2s;min-height:70px;}
.vpopt:hover{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.08);}
.vpopt.sel{border-color:var(--vio);background:rgba(139,92,246,.18);box-shadow:0 0 0 3px rgba(139,92,246,.15);}
.vpseats{font-family:var(--fh);font-size:16px;font-weight:700;color:var(--t1);}
.vpprice{font-size:11.5px;color:var(--t2);margin-top:4px;}
.vpchk{width:22px;height:22px;border-radius:50%;border:2px solid var(--b);margin-left:auto;align-self:flex-end;display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent;transition:all .2s;}
.vpopt.sel .vpchk{background:var(--vio);border-color:var(--vio);color:#fff;}
.vpconfirm{width:100%;padding:16px;border-radius:var(--r16);border:none;background:linear-gradient(135deg,var(--vio),var(--teal));color:#fff;font-family:var(--fh);font-size:15px;font-weight:800;cursor:pointer;transition:all .25s;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 6px 20px rgba(139,92,246,.35);min-height:52px;}
.vpconfirm:hover{transform:translateY(-1px);}
.vpconfirm:disabled{opacity:.35;cursor:not-allowed;transform:none;}

/* misc */
.divider{height:1px;background:var(--b);margin:.9rem 0;}
.empty{text-align:center;color:var(--t3);padding:2rem 0;font-size:14px;}
.slbl{display:block;font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--t2);margin-bottom:.5rem;}
.ic-teal{background:rgba(0,229,204,.15);border:1px solid rgba(0,229,204,.3);}
.ic-vio{background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.3);}
.ic-gold{background:rgba(249,199,79,.15);border:1px solid rgba(249,199,79,.3);}
.ic-mint{background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.3);}
.ic-sky{background:rgba(56,189,248,.15);border:1px solid rgba(56,189,248,.3);}
.ic-ora{background:rgba(251,146,60,.15);border:1px solid rgba(251,146,60,.3);}
.ic-pink{background:rgba(244,114,182,.15);border:1px solid rgba(244,114,182,.3);}
.ic-coral{background:rgba(255,107,107,.15);border:1px solid rgba(255,107,107,.3);}

/* Invoice */
.invwrap{width:100%;max-width:900px;margin:1.5rem 0 4rem;animation:popIn .5s ease both;}
.invc{background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);border-radius:var(--r32);backdrop-filter:blur(30px);padding:2.4rem;box-shadow:0 24px 64px rgba(0,0,0,.55);}
.invhd{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--b);}
.invlogo{font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--teal);margin-bottom:.4rem;font-family:var(--fh);}
.invttl{font-family:var(--fh);font-size:1.9rem;font-weight:800;}
.invref{font-size:12px;color:var(--t2);margin-top:3px;}
.invmeta{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.4rem;}
.mbox{background:var(--g);border:1px solid var(--b);border-radius:var(--r16);padding:13px 16px;}
.mlbl{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);margin-bottom:3px;}
.mval{font-size:13.5px;font-weight:700;}
.csec{margin-bottom:.8rem;}
.csect{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:6px 0;border-bottom:1px solid var(--b);margin-bottom:5px;font-family:var(--fh);}
.crow{display:flex;justify-content:space-between;align-items:flex-start;padding:6px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.03);}
.crow:last-child{border-bottom:none;}
.cn{color:var(--t2);}.ca{font-weight:700;flex-shrink:0;margin-left:1rem;}
.crow.sub{border-top:1px solid var(--b);margin-top:3px;padding-top:7px;font-weight:700;}
.invtot{background:linear-gradient(135deg,rgba(0,229,204,.08),rgba(139,92,246,.08));border:1px solid rgba(0,229,204,.2);border-radius:var(--r16);padding:1.5rem;margin-top:1rem;}
.trow{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.tlbl{font-size:13px;color:var(--t2);}.tval{font-weight:700;font-size:14px;}
.grand{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,229,204,.25);}
.glbl{font-family:var(--fh);font-size:16px;font-weight:800;}
.gval{font-family:var(--fh);font-size:2.4rem;font-weight:900;background:linear-gradient(135deg,var(--teal),var(--vio));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.ph{margin-top:9px;text-align:right;font-size:13px;color:var(--t2);}
.ph strong{color:var(--mint);font-size:16px;font-family:var(--fh);}
.invfoot{text-align:center;margin-top:1.4rem;font-size:12px;color:var(--t3);}

@media(max-width:700px){
  .shell{padding:0 12px;}
  .cbody{padding:1.2rem;}.chd{padding:1rem 1.2rem;}.cft{padding:1rem 1.2rem;}
  .frow.c2,.mgrid,.entg{grid-template-columns:1fr;}
  .frow.c4,.extg{grid-template-columns:1fr 1fr;}
  .vpopts{grid-template-columns:1fr;}
  .invmeta{grid-template-columns:1fr 1fr;}
  .pll{display:none;}
}

/* TABBED DAY/NIGHT LAYOUT */
.tabbed-layout {
  display: flex;
  background: rgba(255, 255, 255, 0.01);
  min-height: 400px;
}
.tab-sidebar {
  width: 140px;
  border-right: 1px solid var(--b);
  background: rgba(255, 255, 255, 0.015);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}
.tab-btn {
  padding: 14px 18px;
  background: transparent;
  border: none;
  border-left: 3px solid transparent;
  color: var(--t2);
  font-family: var(--fh);
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tab-btn:hover {
  background: rgba(255, 255, 255, 0.02);
  color: var(--t1);
}
.tab-btn.active {
  background: rgba(0, 229, 204, 0.04);
  border-left-color: var(--teal);
  color: var(--teal);
}
.tab-content-panel {
  flex: 1;
  padding: 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  position: relative;
}
.tab-pane {
  display: none;
  flex-direction: column;
  height: 100%;
}
.tab-pane.active {
  display: flex;
}

/* REPLICATE & FOOD GLOBAL PREFERENCE TOOLBAR */
.tab-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--b);
  border-radius: var(--r12);
  padding: 10px 16px;
  margin-bottom: 1.2rem;
  gap: 12px;
}
.btn-replicate {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 229, 204, 0.08);
  border: 1px solid rgba(0, 229, 204, 0.2);
  color: var(--teal);
  font-family: var(--fh);
  font-size: 12px;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-replicate:hover {
  background: rgba(0, 229, 204, 0.15);
  box-shadow: 0 4px 12px rgba(0, 229, 204, 0.15);
}

.food-global-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
}
.food-global-toggle .vl, .food-global-toggle .nvl {
  padding: 6px 12px;
  font-size: 11px;
}

/* STEP NAVIGATION IN TAB PANES */
.pane-nav {
  margin-top: auto;
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}
.btn-pane-next {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid rgba(0, 229, 204, 0.2);
  background: rgba(0, 229, 204, 0.05);
  color: var(--teal);
  font-family: var(--fh);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  margin-left: auto;
}
.btn-pane-next:hover {
  background: rgba(0, 229, 204, 0.12);
  border-color: var(--teal);
}

@media (max-width: 600px) {
  .tabbed-layout {
    flex-direction: column;
  }
  .tab-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--b);
    flex-direction: row;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .tab-btn {
    border-left: none;
    border-bottom: 3px solid transparent;
    padding: 12px 16px;
    display: inline-flex;
  }
  .tab-btn.active {
    background: rgba(0, 229, 204, 0.03);
    border-bottom-color: var(--teal);
  }
  .tab-content-panel {
    padding: 1rem;
  }
  .tab-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
}

/* THEME TOGGLE BUTTON */
.theme-toggle-btn {
  background: var(--g);
  border: 1px solid var(--b);
  color: var(--t1);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  margin-left: auto;
  font-size: 16px;
  outline: none;
}
.theme-toggle-btn:hover {
  border-color: var(--teal);
  background: rgba(0, 229, 204, 0.1);
  color: var(--teal);
}
.theme-toggle-btn .icon-light {
  display: none;
}
body.light-mode .theme-toggle-btn .icon-dark {
  display: none;
}
body.light-mode .theme-toggle-btn .icon-light {
  display: block;
}

/* LIGHT MODE OVERRIDES */
body.light-mode {
  --ink: #f3f4f6;
  --ink2: #ffffff;
  --g: rgba(0, 0, 0, 0.04);
  --g2: rgba(0, 0, 0, 0.07);
  --b: rgba(0, 0, 0, 0.09);
  --b2: rgba(0, 0, 0, 0.18);
  --t1: #111827;
  --t2: #4b5563;
  --t3: #9ca3af;
}

/* Light Mode specific tweaks */
body.light-mode .card,
body.light-mode .dr,
body.light-mode .vpmodal,
body.light-mode .dest-sugg,
body.light-mode .mbox {
  background: var(--ink2);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-color: var(--b);
}
body.light-mode .bm,
body.light-mode .cicon {
  background: rgba(0, 0, 0, 0.03);
}
body.light-mode .topbar {
  border-bottom-color: var(--b);
}
body.light-mode .tap-pill.active {
  background: linear-gradient(135deg, var(--teal), var(--vio));
  color: #fff;
  border-color: transparent;
}
body.light-mode .stpr {
  background: var(--ink2);
}
body.light-mode .stpr-btn {
  background: rgba(0, 0, 0, 0.03);
}
body.light-mode .tab-sidebar {
  background: rgba(0, 0, 0, 0.015);
}
body.light-mode .toast {
  background: #1f2937;
  color: #f3f4f6;
}
body.light-mode .api-warn {
  background: rgba(249, 199, 79, 0.12);
  border-color: rgba(249, 199, 79, 0.3);
  color: #b45309;
}
body.light-mode .api-warn code {
  background: rgba(0,0,0,0.06) !important;
  color: #b45309 !important;
}
body.light-mode .scene {
  opacity: 0.15;
}
body.light-mode #rc {
  opacity: 0.3;
}
body.light-mode .mitem.on {
  background: rgba(0, 229, 204, 0.08);
  border-color: rgba(0, 229, 204, 0.3);
}
body.light-mode .xitem.on {
  background: rgba(255, 107, 107, 0.08);
  border-color: rgba(255, 107, 107, 0.3);
}
body.light-mode .eitem.on {
  background: rgba(139, 92, 246, 0.08);
  border-color: rgba(139, 92, 246, 0.3);
}
body.light-mode .vtile:hover {
  border-color: var(--teal);
}
body.light-mode .cpill.active {
  background: var(--teal);
  color: #000;
  font-weight: 700;
}


/* LIST VIEW OVERRIDES */
.list-view .card { display: flex !important; margin-bottom: 2rem; animation: none; opacity: 1; transform: none; }
.list-view .pw { display: none; }
.list-view .scroll-next-wrap { display: none; }

/* Google Maps Autocomplete Styling */
.pac-container {
    background-color: var(--ink2);
    border: 1px solid var(--b2);
    border-radius: var(--r12);
    font-family: inherit;
    box-shadow: 0 4px 15px rgba(0,0,0,0.8);
    z-index: 9999;
}
.pac-item {
    padding: 10px 12px;
    color: var(--t1);
    border-top: 1px solid var(--b);
    cursor: pointer;
    font-size: 14px;
}
.pac-item:hover {
    background-color: var(--g);
}
.pac-item-query {
    color: var(--mint);
    font-weight: 700;
}
.pac-matched {
    color: var(--teal);
}
