:root{
  --gold:#C9A84C;--gold-light:#E8D5A0;--gold-dim:rgba(201,168,76,0.12);--gold-border:rgba(201,168,76,0.25);
  --ink:#0E0C08;--ink-mid:#1A1610;--ink-card:#1E1A12;--ink-raised:#252017;
  --parchment:#F0E6CC;--stone:#8C7F6A;--stone-dim:rgba(140,127,106,0.14);
  --green-bg:rgba(45,106,79,0.15);--green-text:#52B788;--green-bd:rgba(45,106,79,0.38);
  --red-bg:rgba(139,44,44,0.12);--red-text:#C47B7B;--red-bd:rgba(139,44,44,0.3);
  --blue-bg:rgba(52,100,180,0.12);--blue-text:#7EB0E8;--blue-bd:rgba(52,100,180,0.3);
  --purple-bg:rgba(110,60,160,0.12);--purple-text:#B08AE0;--purple-bd:rgba(110,60,160,0.3);
  --safe-top: env(safe-area-inset-top, 0px);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ink);font-family:'DM Sans',sans-serif;color:var(--parchment);min-height:100vh;overflow-x:hidden;}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:300;display:flex;align-items:center;justify-content:space-between;padding:calc(0.7rem + var(--safe-top)) 1.5rem 0.7rem;background:rgba(14,12,8,0.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--gold-border);}
.nlogo{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--gold);display:flex;align-items:center;gap:0.45rem;cursor:pointer;flex-shrink:0;}
.nring{width:22px;height:22px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;}
.ntabs{display:flex;overflow-x:auto;scrollbar-width:none;}
.ntabs::-webkit-scrollbar{display:none;}
.nt{padding:0.4rem 0.95rem;font-size:0.74rem;letter-spacing:0.06em;cursor:pointer;border:none;background:none;color:var(--stone);font-family:'DM Sans',sans-serif;border-bottom:2px solid transparent;transition:all 0.16s;white-space:nowrap;}
.nt.on{color:var(--gold);border-bottom-color:var(--gold);}
.nt:hover{color:var(--parchment);}
.nav-r{display:flex;gap:0.5rem;align-items:center;flex-shrink:0;}
.btn{padding:0.38rem 0.9rem;font-size:0.73rem;font-family:'DM Sans',sans-serif;cursor:pointer;letter-spacing:0.04em;border:none;transition:all 0.16s;font-weight:500;white-space:nowrap;}
.btn-gold{background:var(--gold);color:var(--ink);}
.btn-gold:hover{background:var(--gold-light);}
.btn-ghost{background:transparent;color:var(--stone);border:1px solid var(--gold-border);}
.btn-ghost:hover{color:var(--parchment);border-color:var(--gold);}
.btn-lg{padding:0.65rem 1.5rem;font-size:0.82rem;}
.btn-danger{background:transparent;color:var(--red-text);border:1px solid var(--red-bd);}
.btn-danger:hover{background:var(--red-bg);}

/* PWA INSTALL BANNER */
#install-banner{display:none;position:fixed;bottom:0;left:0;right:0;z-index:400;background:var(--ink-card);border-top:1px solid var(--gold-border);padding:1rem 1.5rem;align-items:center;gap:1rem;flex-wrap:wrap;}
#install-banner.show{display:flex;}
.ib-icon{width:40px;height:40px;background:var(--gold-dim);border:1px solid var(--gold-border);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold);}
.ib-text{flex:1;}
.ib-text strong{display:block;font-size:0.85rem;margin-bottom:2px;}
.ib-text span{font-size:0.75rem;color:var(--stone);}
.ib-dismiss{background:none;border:none;color:var(--stone);cursor:pointer;font-size:1.2rem;line-height:1;padding:0.25rem;}

/* OFFLINE INDICATOR */
#offline-bar{display:none;position:fixed;top:58px;left:0;right:0;z-index:290;background:rgba(139,44,44,0.85);backdrop-filter:blur(8px);padding:0.4rem 1.5rem;font-size:0.75rem;color:var(--red-text);text-align:center;border-bottom:1px solid var(--red-bd);}
#offline-bar.show{display:block;}

/* NOTIFICATION PERMISSION */
#notif-banner{display:none;position:fixed;bottom:0;left:0;right:0;z-index:350;background:var(--ink-card);border-top:1px solid var(--gold-border);padding:1rem 1.5rem;align-items:center;gap:1rem;flex-wrap:wrap;backdrop-filter:blur(12px);}
#notif-banner.show{display:flex;}
.nb-text{flex:1;font-size:0.82rem;color:var(--stone);}
.nb-text strong{color:var(--parchment);}

/* VIEWS */
.view{display:none;padding-top:58px;min-height:100vh;}
.view.on{display:block;}

/* ── TOURS GRID ── */
.gh{padding:2.5rem 2rem 1.25rem;max-width:1240px;margin:0 auto;}
.eyebrow{font-size:9px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:0.45rem;}
.big-title{font-family:'Playfair Display',serif;font-size:clamp(1.9rem,4vw,3rem);font-weight:700;line-height:1.05;}
.big-title em{font-style:italic;color:var(--gold);}
.sub{color:var(--stone);font-size:0.85rem;line-height:1.65;max-width:440px;margin-top:0.4rem;}
.filter-row{display:flex;gap:0.4rem;padding:0 2rem 1.1rem;max-width:1240px;margin:0 auto;flex-wrap:wrap;}
.fchip{padding:0.34rem 0.85rem;font-size:0.7rem;letter-spacing:0.06em;cursor:pointer;background:transparent;color:var(--stone);border:1px solid var(--gold-border);font-family:'DM Sans',sans-serif;transition:all 0.16s;}
.fchip.on,.fchip:hover{background:var(--gold-dim);color:var(--gold);border-color:var(--gold);}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.4rem;padding:0 2rem 5rem;max-width:1240px;margin:0 auto;}

.tcard{background:var(--ink-card);border:1px solid rgba(201,168,76,0.11);cursor:pointer;transition:all 0.22s;overflow:hidden;}
.tcard:hover{border-color:rgba(201,168,76,0.42);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.45);}
.tcard-banner{height:220px;position:relative;overflow:hidden;background:#0A0806;}
.tcard-banner img{width:100%;height:100%;object-fit:cover;opacity:0.7;}
.tcard-banner-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.tcard-tags{position:absolute;top:0.5rem;left:0.5rem;display:flex;gap:0.3rem;flex-wrap:wrap;z-index:2;}
.tag{font-size:8px;letter-spacing:0.1em;text-transform:uppercase;padding:2px 6px;backdrop-filter:blur(6px);}
.tag-paid{background:rgba(201,168,76,0.22);color:var(--gold);border:1px solid rgba(201,168,76,0.32);}
.tag-owned{background:rgba(45,106,79,0.28);color:#7EC8A4;border:1px solid rgba(45,106,79,0.42);}
.tag-free{background:rgba(45,106,79,0.22);color:#7EC8A4;border:1px solid rgba(45,106,79,0.35);}
.tag-new{background:rgba(52,100,180,0.28);color:#9EC8F4;border:1px solid rgba(52,100,180,0.4);}
.tcard-diff{position:absolute;top:0.5rem;right:0.5rem;font-size:8px;letter-spacing:0.1em;text-transform:uppercase;background:rgba(14,12,8,0.72);color:var(--stone);padding:2px 6px;z-index:2;}
.tcard-body{padding:1rem 1.1rem 1.1rem;}
.tcard-cat{font-size:8px;letter-spacing:0.16em;text-transform:uppercase;color:var(--stone);margin-bottom:0.3rem;}
.tcard-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;margin-bottom:0.3rem;line-height:1.2;}
.tcard-desc{font-size:0.76rem;color:var(--stone);line-height:1.58;margin-bottom:0.75rem;}
.tcard-meta{display:flex;gap:0.85rem;margin-bottom:0.75rem;flex-wrap:wrap;}
.tmeta{font-size:9px;color:var(--stone);display:flex;align-items:center;gap:3px;}
.tcard-foot{display:flex;align-items:center;justify-content:space-between;padding-top:0.75rem;border-top:1px solid rgba(201,168,76,0.08);}
.tprog{flex:1;margin-right:0.85rem;}
.tprog-lbl{font-size:9px;color:var(--stone);margin-bottom:3px;display:flex;justify-content:space-between;}
.tprog-bar{height:2px;background:rgba(255,255,255,0.05);}
.tprog-fill{height:100%;background:var(--gold);transition:width 0.5s;}
.btn-start{padding:0.42rem 0.9rem;font-size:0.72rem;font-family:'DM Sans',sans-serif;background:var(--gold);color:var(--ink);border:none;cursor:pointer;font-weight:500;transition:background 0.16s;white-space:nowrap;}
.btn-start:hover{background:var(--gold-light);}
.btn-start.lock{background:transparent;color:var(--stone);border:1px solid var(--gold-border);}

/* ── TOUR DETAIL ── */
.dh{max-width:1020px;margin:0 auto;padding:2.25rem 2rem 0;}
.back{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.73rem;color:var(--stone);background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;margin-bottom:1.1rem;transition:color 0.16s;padding:0;}
.back:hover{color:var(--gold);}
.dtop{display:grid;grid-template-columns:1fr auto;gap:1.75rem;align-items:start;padding-bottom:1.5rem;border-bottom:1px solid rgba(201,168,76,0.1);}
.dtitle{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:700;line-height:1.05;margin-bottom:0.38rem;}
.ddesc{color:var(--stone);font-size:0.85rem;line-height:1.7;max-width:540px;margin-bottom:0.85rem;}
.dstats{display:flex;gap:1.5rem;flex-wrap:wrap;}
.dstat-v{font-family:'Playfair Display',serif;font-size:1.4rem;}
.dstat-l{font-size:8px;letter-spacing:0.12em;text-transform:uppercase;color:var(--stone);}
.dprog-box{background:rgba(201,168,76,0.05);border:1px solid var(--gold-border);padding:1.1rem;min-width:185px;}
.dpb-l{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--stone);margin-bottom:0.5rem;}
.dpb-bar{background:rgba(255,255,255,0.05);height:2px;margin-bottom:0.5rem;}
.dpb-fill{height:100%;background:var(--gold);}
.dpb-stats{display:flex;gap:1.1rem;}
.dpb-stat span{display:block;font-size:8px;color:var(--stone);}
.dpb-stat strong{font-size:1.2rem;font-family:'Playfair Display',serif;}

/* Offline download button */
.offline-btn{display:flex;align-items:center;gap:0.5rem;margin-top:0.85rem;padding:0.5rem 1rem;background:var(--gold-dim);border:1px solid var(--gold-border);color:var(--gold);font-size:0.75rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all 0.16s;}
.offline-btn:hover{background:rgba(201,168,76,0.2);}
.offline-btn.cached{color:var(--green-text);border-color:var(--green-bd);background:var(--green-bg);}

/* Purchase banner */
.purchase-banner{background:rgba(201,168,76,0.05);border:1px solid var(--gold-border);padding:1.25rem 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;margin:1.25rem 2rem 0;max-width:1020px;}
.pb-l h3{font-family:'Playfair Display',serif;font-size:1rem;margin-bottom:0.18rem;}
.pb-l p{font-size:0.76rem;color:var(--stone);}
.pb-r{display:flex;align-items:center;gap:0.85rem;}
.pb-price{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--gold);}
.pb-price sup{font-size:0.9rem;font-family:'DM Sans',sans-serif;vertical-align:super;}
.pb-note{font-size:9px;color:var(--stone);}

/* Stops */
.slist{max-width:1020px;margin:0 auto;padding:1.5rem 2rem 4rem;}
.slbl{font-size:9px;letter-spacing:0.22em;text-transform:uppercase;color:var(--stone);margin-bottom:1.1rem;}
.srow{display:grid;grid-template-columns:52px 1fr auto;gap:1.1rem;padding:1.35rem 0;border-bottom:1px solid rgba(201,168,76,0.08);cursor:pointer;transition:background 0.16s;align-items:start;}
.srow:hover{background:rgba(201,168,76,0.02);}
.srow:first-of-type{border-top:1px solid rgba(201,168,76,0.08);}
.snum{font-family:'Playfair Display',serif;font-size:2rem;color:rgba(201,168,76,0.16);line-height:1;text-align:center;}
.snum.done{color:var(--gold);}
.sbody{display:flex;flex-direction:column;gap:0.32rem;}
.scat{display:inline-flex;font-size:8px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(201,168,76,0.62);background:var(--gold-dim);border:1px solid var(--gold-border);padding:1px 6px;width:fit-content;}
.stitle{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;}
.sdesc{font-size:0.76rem;color:var(--stone);line-height:1.58;max-width:480px;}
.schips{display:flex;gap:0.45rem;margin-top:0.2rem;flex-wrap:wrap;}
.schip{font-size:9px;color:var(--stone);display:flex;align-items:center;gap:3px;}
.ccard{margin-top:0.6rem;border:1px solid rgba(201,168,76,0.13);padding:0.85rem 1rem;}
.ccard-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;}
.ci{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ci-p{background:rgba(201,168,76,0.1);border:1px solid rgba(201,168,76,0.24);color:var(--gold);}
.ci-t{background:var(--blue-bg);border:1px solid var(--blue-bd);color:var(--blue-text);}
.ci-q{background:var(--purple-bg);border:1px solid var(--purple-bd);color:var(--purple-text);}
.ct-lbl{font-size:8px;letter-spacing:0.14em;text-transform:uppercase;}
.ctl-p{color:var(--gold);}
.ctl-t{color:var(--blue-text);}
.ctl-q{color:var(--purple-text);}
.ccard-body{font-size:0.78rem;color:var(--parchment);line-height:1.55;}
.tchoices{display:grid;grid-template-columns:1fr 1fr;gap:0.35rem;margin-top:0.5rem;}
.tch{padding:0.45rem 0.7rem;border:1px solid rgba(201,168,76,0.14);font-size:0.74rem;color:var(--stone);cursor:pointer;background:rgba(255,255,255,0.02);transition:all 0.16s;text-align:left;font-family:'DM Sans',sans-serif;}
/* ── GROUP TRIVIA ─────────────────────────────────── */
.trivia-mode-row{display:flex;gap:0.5rem;margin-bottom:0.75rem;}
.trivia-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.5rem;border:1px solid rgba(201,168,76,0.2);background:transparent;color:var(--stone);font-size:0.75rem;font-family:'DM Sans',sans-serif;cursor:pointer;border-radius:4px;transition:all 0.2s;}
.trivia-mode-btn.active{background:rgba(201,168,76,0.12);border-color:var(--gold);color:var(--gold);}
.gt-lobby-inner{padding:1rem;background:rgba(201,168,76,0.04);border:1px solid rgba(201,168,76,0.12);border-radius:6px;}
.gt-lbl{font-size:0.78rem;color:var(--stone);margin-bottom:0.75rem;text-align:center;}
.gt-or{text-align:center;font-size:0.72rem;color:var(--stone);margin:0.75rem 0;}
.gt-join-row{display:flex;gap:0.5rem;}
.gt-room{padding:0.75rem;background:rgba(0,0,0,0.3);border:1px solid rgba(201,168,76,0.15);border-radius:6px;}
.gt-code{font-size:2.5rem;font-weight:700;letter-spacing:0.2em;color:var(--gold);text-align:center;font-family:'DM Serif Display',serif;margin:0.5rem 0;}
.gt-code-lbl{font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--stone);text-align:center;}
.gt-players{display:flex;flex-wrap:wrap;gap:0.4rem;margin:0.75rem 0;}
.gt-player{padding:0.3rem 0.6rem;background:rgba(201,168,76,0.08);border:1px solid rgba(201,168,76,0.2);border-radius:20px;font-size:0.72rem;color:var(--cream);}
.gt-player.host{border-color:var(--gold);color:var(--gold);}
.gt-question{font-size:0.9rem;font-weight:600;color:var(--cream);margin-bottom:0.75rem;line-height:1.4;}
.gt-timer{font-size:2.5rem;font-weight:700;text-align:center;color:var(--gold);font-family:'DM Serif Display',serif;margin:0.5rem 0;}
.gt-timer.urgent{color:#E09090;animation:gtpulse 0.5s infinite;}
.gt-progress{font-size:0.72rem;color:var(--stone);text-align:center;margin-bottom:0.5rem;}
.gt-leaderboard{display:flex;flex-direction:column;gap:0.4rem;margin-top:0.75rem;}
.gt-lb-row{display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0.75rem;background:rgba(201,168,76,0.05);border:1px solid rgba(201,168,76,0.1);border-radius:4px;}
.gt-lb-rank{font-size:1.1rem;width:1.5rem;text-align:center;}
.gt-lb-name{flex:1;font-size:0.82rem;color:var(--cream);}
.gt-lb-score{font-size:0.85rem;font-weight:700;color:var(--gold);}
.gt-lb-row.me{border-color:rgba(201,168,76,0.4);background:rgba(201,168,76,0.1);}
.trivia-q-block{border:1px solid rgba(201,168,76,0.1);border-radius:4px;padding:0.75rem;margin-bottom:0.5rem;background:rgba(201,168,76,0.03);}
@keyframes gtpulse{0%,100%{opacity:1;}50%{opacity:0.5;}}
.tch:hover{border-color:var(--gold);color:var(--parchment);background:var(--gold-dim);}
.tch.correct{border-color:var(--green-bd);background:var(--green-bg);color:var(--green-text);}
.tch.wrong{border-color:var(--red-bd);background:var(--red-bg);color:var(--red-text);}
.qrhunt-box{display:flex;align-items:center;gap:0.85rem;margin-top:0.5rem;padding:0.65rem 0.85rem;background:var(--purple-bg);border:1px solid var(--purple-bd);}
.qrh-icon{color:var(--purple-text);flex-shrink:0;}
.qrh-t p{font-size:0.76rem;color:var(--parchment);margin-bottom:2px;}
.qrh-t span{font-size:9px;color:var(--purple-text);}
.photo-up{margin-top:0.5rem;border:1.5px dashed rgba(201,168,76,0.2);padding:1.25rem;text-align:center;cursor:pointer;transition:all 0.16s;background:rgba(201,168,76,0.02);}
.photo-up:hover{border-color:var(--gold);background:var(--gold-dim);}
.pu-icon{width:30px;height:30px;border:1px solid var(--gold-border);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 0.4rem;color:var(--gold);}
.pu-t{font-size:0.73rem;color:var(--stone);}
.pu-t strong{color:var(--parchment);}
.sright{display:flex;flex-direction:column;gap:0.35rem;align-items:flex-end;padding-top:2px;}
.spill{font-size:8px;letter-spacing:0.1em;text-transform:uppercase;padding:3px 8px;display:flex;align-items:center;gap:3px;white-space:nowrap;}
.sp-done{background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-bd);}
.sp-active{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);}
.sp-locked{background:var(--red-bg);color:var(--red-text);border:1px solid var(--red-bd);}
.qrbtn{background:none;border:1px solid rgba(201,168,76,0.17);color:var(--stone);font-size:8px;padding:3px 7px;cursor:pointer;display:flex;align-items:center;gap:3px;font-family:'DM Sans',sans-serif;letter-spacing:0.08em;text-transform:uppercase;transition:all 0.16s;}
.qrbtn:hover{border-color:var(--gold);color:var(--gold);}

/* ══ LIGHT MODE ══ */
body.light-mode{
  --ink:#F5F0E8;--ink-card:#FFFFFF;--ink-mid:#EDE8E0;
  --parchment:#1A1610;--stone:#5C5040;
  --gold:#8B6914;--gold-dim:rgba(139,105,20,0.08);--gold-border:rgba(139,105,20,0.2);
}
body.light-mode nav{background:rgba(245,240,232,0.95);border-bottom:1px solid rgba(139,105,20,0.15);}
body.light-mode .tcard{background:#fff;box-shadow:0 2px 12px rgba(0,0,0,0.08);}

/* ══ TEXT SIZE ══ */
body.text-sm{font-size:13px;}
body.text-lg{font-size:18px;}

/* ══ SETTINGS MODAL ══ */
.settings-row{display:flex;align-items:center;justify-content:space-between;padding:0.85rem 0;border-bottom:1px solid rgba(201,168,76,0.08);}
.settings-row:last-child{border-bottom:none;}
.settings-lbl{display:flex;flex-direction:column;gap:2px;}
.settings-lbl strong{font-size:0.88rem;}
.settings-lbl span{font-size:0.74rem;color:var(--stone);}
.mode-pills{display:flex;gap:0.35rem;}
.mode-pill{padding:0.3rem 0.75rem;border:1px solid var(--gold-border);font-size:0.74rem;cursor:pointer;background:transparent;color:var(--stone);font-family:'DM Sans',sans-serif;transition:all 0.16s;}
.mode-pill.on{background:var(--gold-dim);color:var(--gold);border-color:var(--gold);}
.size-pills{display:flex;gap:0.35rem;}
.size-pill{width:34px;height:28px;border:1px solid var(--gold-border);font-size:0.72rem;cursor:pointer;background:transparent;color:var(--stone);font-family:'DM Sans',sans-serif;display:flex;align-items:center;justify-content:center;transition:all 0.16s;}
.size-pill.on{background:var(--gold-dim);color:var(--gold);border-color:var(--gold);}

/* ══ MAPBOX ══ */
.mapbox-container{width:100%;height:260px;border:1px solid rgba(201,168,76,0.18);position:relative;overflow:hidden;}
.mapbox-admin{width:100%;height:320px;border:1px solid rgba(201,168,76,0.15);position:relative;margin-bottom:0.75rem;overflow:hidden;}
.mapbox-admin .mapboxgl-canvas{border-radius:0;}
.map-stop-marker{width:28px;height:28px;background:var(--gold);border:2px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:0.7rem;color:var(--ink);font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.4);}

/* ══ HAMBURGER MENU ══ */
.hamburger{background:none;border:none;cursor:pointer;padding:0.38rem 0.5rem;display:flex;flex-direction:column;gap:4px;justify-content:center;}
.hamburger span{display:block;width:20px;height:2px;background:var(--parchment);transition:all 0.2s;}
.slide-menu{position:fixed;top:0;right:-320px;width:300px;height:100vh;background:var(--ink-card);border-left:1px solid var(--gold-border);z-index:1000;transition:right 0.28s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;visibility:hidden;}
.slide-menu.open{right:0;visibility:visible;}
.slide-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:999;display:none;backdrop-filter:blur(2px);}
.slide-overlay.open{display:block;}
.sm-header{padding:1.25rem 1.25rem 0.75rem;border-bottom:1px solid rgba(201,168,76,0.1);display:flex;align-items:center;justify-content:space-between;}
.sm-logo{font-family:'Playfair Display',serif;font-size:1rem;color:var(--gold);}
.sm-close{background:none;border:none;color:var(--stone);cursor:pointer;font-size:1.2rem;padding:4px;}
.sm-user{padding:1rem 1.25rem;border-bottom:1px solid rgba(201,168,76,0.08);display:flex;align-items:center;gap:0.75rem;}
.sm-avatar{width:38px;height:38px;border-radius:50%;background:var(--gold-dim);border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;color:var(--gold);font-size:1rem;flex-shrink:0;}
.sm-user-info strong{display:block;font-size:0.88rem;}
.sm-user-info span{font-size:0.74rem;color:var(--stone);}
.sm-nav{padding:0.5rem 0;flex:1;}
.sm-item{display:flex;align-items:center;gap:0.85rem;padding:0.85rem 1.25rem;cursor:pointer;transition:background 0.14s;border:none;background:none;width:100%;text-align:left;font-family:'DM Sans',sans-serif;color:var(--parchment);font-size:0.88rem;}
.sm-item:hover{background:var(--gold-dim);}
.sm-item svg{color:var(--stone);flex-shrink:0;}
.sm-item.active svg,.sm-item.active{color:var(--gold);}
.sm-divider{height:1px;background:rgba(201,168,76,0.08);margin:0.4rem 0;}
.sm-signout{color:var(--red-text) !important;}
.sm-signout svg{color:var(--red-text) !important;}

/* ══ GALLERY VIEW ══ */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:0;}
.gallery-item{aspect-ratio:1;overflow:hidden;position:relative;cursor:pointer;}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.2s;}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-item-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.7));padding:0.5rem 0.4rem 0.3rem;font-size:9px;color:rgba(255,255,255,0.85);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
.gallery-tour-header{padding:1rem 1.25rem 0.5rem;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--stone);border-bottom:1px solid rgba(201,168,76,0.08);}
.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;color:var(--stone);text-align:center;}
.gallery-empty svg{opacity:0.3;}
.gallery-empty p{font-size:0.85rem;}

/* ══ BADGES VIEW ══ */
.badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.5rem;}
.badge-card{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:1.1rem 0.75rem;background:var(--ink-card);border:1px solid rgba(201,168,76,0.1);text-align:center;transition:border-color 0.16s;}
.badge-card.earned{border-color:var(--gold-border);background:var(--gold-dim);}
.badge-card.locked{opacity:0.4;filter:grayscale(0.6);}
.badge-icon{font-size:2rem;line-height:1;}
.badge-name{font-size:0.72rem;font-weight:500;color:var(--parchment);}
.badge-card.locked .badge-name{color:var(--stone);}
.badge-hint{font-size:9px;color:var(--stone);line-height:1.4;}
.badge-earned-lbl{font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-top:2px;}

/* ══ VIEW HEADERS ══ */
.view-header{padding:1.5rem 1.25rem 0.75rem;border-bottom:1px solid rgba(201,168,76,0.1);display:flex;align-items:center;gap:0.75rem;}
.view-header h2{font-family:'Playfair Display',serif;font-size:1.4rem;}
.view-back{background:none;border:none;color:var(--stone);cursor:pointer;padding:4px;display:flex;align-items:center;gap:4px;font-size:0.8rem;font-family:'DM Sans',sans-serif;}
.view-back:hover{color:var(--gold);}

/* Paywall blur for locked stops */
.srow-locked{position:relative;overflow:hidden;}
.srow-locked .sbody{filter:blur(3px);pointer-events:none;user-select:none;}
.srow-locked .sright{filter:blur(3px);pointer-events:none;}
.srow-locked-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;background:rgba(14,12,8,0.55);backdrop-filter:blur(2px);}
.srow-locked-overlay p{font-size:0.78rem;color:var(--parchment);text-align:center;}
.srow-teaser{background:rgba(201,168,76,0.03);border-left:2px solid var(--gold);}

/* Tour feedback */
.feedback-stars{display:flex;gap:0.5rem;justify-content:center;margin:0.75rem 0;}
.fstar{font-size:2rem;cursor:pointer;transition:transform 0.1s;filter:grayscale(1);opacity:0.4;}
.fstar:hover,.fstar.on{filter:grayscale(0);opacity:1;transform:scale(1.15);}
.feedback-prompt{font-size:0.82rem;color:var(--stone);text-align:center;margin-bottom:0.5rem;}

/* Tour type */
.tour-type-row{display:grid;grid-template-columns:repeat(5,1fr);gap:0.5rem;margin-bottom:1rem;}
.tt-card{border:1px solid rgba(201,168,76,0.14);padding:0.6rem 0.5rem;text-align:center;cursor:pointer;transition:all 0.16s;background:rgba(255,255,255,0.02);position:relative;}
.tt-card:hover{border-color:rgba(201,168,76,0.35);background:var(--gold-dim);}
.tt-card.sel{border-color:var(--gold);background:var(--gold-dim);}
.tt-card .tt-icon{font-size:1.3rem;display:block;margin-bottom:3px;}
.tt-card .tt-name{font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--stone);display:block;}
.tt-card.sel .tt-name{color:var(--gold);}
.tt-card .tt-rec{position:absolute;top:-7px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:0.1em;text-transform:uppercase;background:var(--gold);color:var(--ink);padding:1px 5px;white-space:nowrap;display:none;}
/* Tour type badge on stop challenge dropdown */
.ctype-rec{font-size:8px;color:var(--gold);letter-spacing:0.08em;padding:2px 6px;background:rgba(201,168,76,0.1);border:1px solid rgba(201,168,76,0.2);margin-left:4px;white-space:nowrap;}
/* Tour type badge on tour cards */
.tag-tourtype{backdrop-filter:blur(6px);font-size:8px;letter-spacing:0.1em;text-transform:uppercase;padding:2px 6px;}
/* Stop photo */
.stop-photo{width:100%;max-height:180px;object-fit:cover;border:1px solid rgba(201,168,76,0.18);margin-bottom:0.6rem;display:block;}
.stop-photo-placeholder{width:100%;height:90px;background:var(--ink-card);border:1px dashed rgba(201,168,76,0.15);display:flex;align-items:center;justify-content:center;color:var(--stone);font-size:0.72rem;margin-bottom:0.6rem;gap:0.4rem;}
/* New challenge icon colours */
.ci-cipher{background:rgba(180,80,80,0.12);border:1px solid rgba(180,80,80,0.28);color:#E09090;}
.ci-unscramble{background:rgba(80,160,120,0.12);border:1px solid rgba(80,160,120,0.28);color:#7EC8A4;}
.ci-count{background:rgba(180,140,40,0.12);border:1px solid rgba(180,140,40,0.28);color:#D4B060;}
.ctl-cipher{color:#E09090;}.ctl-unscramble{color:#7EC8A4;}.ctl-count{color:#D4B060;}
/* Cipher */
.cipher-encoded{font-family:monospace;font-size:1.05rem;letter-spacing:0.22em;color:var(--gold);background:rgba(201,168,76,0.06);border:1px solid rgba(201,168,76,0.18);padding:0.7rem 1rem;text-align:center;margin:0.5rem 0;word-break:break-all;}
.cipher-key-lbl{font-size:9px;color:var(--stone);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:0.3rem;}
.cipher-row{display:flex;gap:0.5rem;margin-top:0.5rem;}
.cipher-inp{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(201,168,76,0.2);color:var(--parchment);font-family:'DM Sans',sans-serif;font-size:0.82rem;padding:0.42rem 0.65rem;outline:none;text-transform:uppercase;letter-spacing:0.06em;}
.cipher-inp:focus{border-color:var(--gold);}
/* Unscramble */
.scramble-pool{display:flex;gap:0.35rem;flex-wrap:wrap;margin:0.45rem 0;}
.sl{width:34px;height:34px;background:rgba(80,160,120,0.08);border:1px solid rgba(80,160,120,0.25);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:1rem;color:#7EC8A4;cursor:pointer;transition:all 0.14s;user-select:none;text-transform:uppercase;}
.sl:hover{background:rgba(80,160,120,0.2);}
.sl.used{opacity:0.2;pointer-events:none;}
.answer-tray{display:flex;gap:0.35rem;flex-wrap:wrap;min-height:38px;padding:0.3rem;background:rgba(255,255,255,0.02);border:1px dashed rgba(80,160,120,0.2);margin:0.35rem 0;}
.al{width:34px;height:34px;background:rgba(80,160,120,0.14);border:1px solid rgba(80,160,120,0.3);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:1rem;color:#7EC8A4;cursor:pointer;text-transform:uppercase;}
.al:hover{background:rgba(80,160,120,0.25);}
.unscramble-hint{font-size:9px;color:var(--stone);margin-bottom:0.25rem;}
/* Count */
.count-q{font-size:0.82rem;color:var(--parchment);line-height:1.6;margin-bottom:0.55rem;}
.count-row{display:flex;align-items:center;gap:0.7rem;margin-top:0.45rem;flex-wrap:wrap;}
.count-stepper{display:flex;align-items:center;}
.cbtn{width:34px;height:34px;background:rgba(180,140,40,0.1);border:1px solid rgba(180,140,40,0.25);color:#D4B060;font-size:1.15rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.14s;}
.cbtn:hover{background:rgba(180,140,40,0.22);}
.cval{width:48px;height:34px;background:rgba(255,255,255,0.04);border-top:1px solid rgba(180,140,40,0.25);border-bottom:1px solid rgba(180,140,40,0.25);border-left:none;border-right:none;color:#D4B060;font-family:'Playfair Display',serif;font-size:1.2rem;text-align:center;outline:none;}
.count-go{padding:0.38rem 0.9rem;background:rgba(180,140,40,0.12);border:1px solid rgba(180,140,40,0.3);color:#D4B060;font-size:0.74rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all 0.14s;}
.count-go:hover{background:rgba(180,140,40,0.22);}
/* Stop img in admin */
.stop-img-row{display:flex;align-items:center;gap:0.65rem;padding:0.45rem 0.6rem;background:rgba(201,168,76,0.03);border:1px solid rgba(201,168,76,0.11);margin-bottom:0.4rem;}
.stop-img-thumb{width:50px;height:34px;object-fit:cover;border:1px solid rgba(201,168,76,0.18);flex-shrink:0;}
.stop-img-ph{width:50px;height:34px;background:var(--ink);border:1px solid rgba(201,168,76,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--stone);}

/* ══ ADMIN ══ */
.adm-wrap{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 58px);}
.adm-side{background:rgba(16,13,9,0.98);border-right:1px solid rgba(201,168,76,0.1);padding:1.1rem;display:flex;flex-direction:column;gap:0.35rem;overflow-y:auto;}
.adm-slbl{font-size:8px;letter-spacing:0.22em;text-transform:uppercase;color:var(--stone);margin-bottom:0.35rem;padding-bottom:0.35rem;border-bottom:1px solid rgba(201,168,76,0.09);}
.adm-ti{padding:0.65rem 0.85rem;border:1px solid transparent;cursor:pointer;transition:all 0.16s;display:flex;align-items:center;justify-content:space-between;gap:0.35rem;}
.adm-ti:hover{background:var(--gold-dim);border-color:var(--gold-border);}
.adm-ti.sel{background:var(--gold-dim);border-color:var(--gold);}
.adm-ti-n{font-size:0.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adm-ti-c{font-size:9px;color:var(--stone);flex-shrink:0;}
.adm-ti-actions{display:flex;gap:0.25rem;margin-left:auto;}
.adm-ti-btn{background:none;border:none;color:var(--stone);cursor:pointer;padding:2px;font-size:11px;transition:color 0.16s;line-height:1;}
.adm-ti-btn:hover{color:var(--gold);}
.adm-ti-btn.del-t:hover{color:var(--red-text);}
.adm-ti.hidden-tour{opacity:0.5;}
.adm-ti.hidden-tour .adm-ti-n::after{content:' — Hidden';font-size:9px;color:var(--stone);}
.draft-badge{font-size:8px;letter-spacing:0.1em;text-transform:uppercase;padding:2px 6px;background:rgba(140,127,106,0.15);color:var(--stone);border:1px solid rgba(140,127,106,0.3);}
/* Visibility toggle row in admin */
.visibility-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.65rem 0.85rem;margin-bottom:1rem;border:1px solid rgba(140,127,106,0.2);background:rgba(140,127,106,0.05);}
.visibility-row.is-hidden{border-color:var(--red-bd);background:var(--red-bg);}
.vis-left{display:flex;align-items:center;gap:0.65rem;}
.vis-icon{color:var(--stone);display:flex;align-items:center;}
.vis-hidden .vis-icon{color:var(--red-text);}
.vis-text strong{display:block;font-size:0.8rem;}
.vis-text span{font-size:0.72rem;color:var(--stone);}
.vis-hidden .vis-text strong{color:var(--red-text);}
.add-tour-btn{margin-top:auto;padding:0.65rem;background:none;border:1px dashed rgba(201,168,76,0.2);color:var(--stone);font-family:'DM Sans',sans-serif;font-size:0.73rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.4rem;transition:all 0.16s;}
.add-tour-btn:hover{border-color:var(--gold);color:var(--gold);}

.adm-main{padding:1.5rem 2rem;overflow-y:auto;max-height:calc(100vh - 58px);background:#221F17;}
.adm-mhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid rgba(201,168,76,0.18);}
.tour-name-inp{font-family:'Playfair Display',serif;font-size:1.5rem;background:none;border:none;border-bottom:2px solid rgba(201,168,76,0.25);color:#F5EDD8;padding:0.18rem 0;width:300px;outline:none;transition:border-color 0.2s;}
.tour-name-inp:focus{border-bottom-color:var(--gold);}
.adm-acts{display:flex;gap:0.5rem;flex-wrap:wrap;}

/* Cover image */
.cover-section{margin-bottom:1.25rem;padding:1.1rem;background:rgba(255,255,255,0.05);border:1px solid rgba(201,168,76,0.18);border-radius:4px;}
.cover-section-lbl{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:#A89878;margin-bottom:0.75rem;font-weight:500;}
.cover-upload-area{display:grid;grid-template-columns:260px 1fr;gap:1.25rem;align-items:start;}
.cover-preview{width:100%;height:140px;background:#181410;border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;transition:all 0.2s;position:relative;border-radius:4px;touch-action:none;}
.cover-preview:hover{border-color:var(--gold);}
.cover-preview img{position:absolute;max-width:none;cursor:grab;user-select:none;}
.cover-preview img:active{cursor:grabbing;}
.cover-preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:0.4rem;color:#A89878;text-align:center;padding:0.5rem;}
.cover-preview-placeholder span{font-size:0.75rem;}
.cover-change-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.45);display:none;align-items:center;justify-content:center;}
.cover-info{display:flex;flex-direction:column;gap:0.55rem;}
.cover-info .finput,.cover-info .fselect,.cover-info .ftextarea{background:rgba(255,255,255,0.07);border:1px solid rgba(201,168,76,0.2);color:#F5EDD8;font-family:'DM Sans',sans-serif;font-size:0.85rem;padding:0.48rem 0.7rem;outline:none;transition:all 0.16s;width:100%;border-radius:3px;}
.cover-info .finput:focus,.cover-info .fselect:focus,.cover-info .ftextarea:focus{border-color:var(--gold);background:rgba(255,255,255,0.09);}
.cover-info .fselect option{background:#1A1610;}
.cover-info .ftextarea{resize:vertical;min-height:60px;}

.tsrow{display:grid;grid-template-columns:repeat(3,1fr);gap:0.65rem;margin-bottom:1.1rem;padding:0.9rem;background:rgba(255,255,255,0.04);border:1px solid rgba(201,168,76,0.15);border-radius:4px;}
.flbl{font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:#A89878;margin-bottom:4px;font-weight:500;}
.finput,.fselect,.ftextarea{background:rgba(255,255,255,0.07);border:1px solid rgba(201,168,76,0.2);color:#F5EDD8;font-family:'DM Sans',sans-serif;font-size:0.85rem;padding:0.48rem 0.7rem;outline:none;transition:all 0.16s;width:100%;border-radius:3px;}
.finput:focus,.fselect:focus,.ftextarea:focus{border-color:var(--gold);background:rgba(255,255,255,0.09);}
.fselect option{background:#1A1610;}
.ftextarea{resize:vertical;min-height:52px;}

/* Price */
.price-row{display:flex;align-items:center;gap:0.85rem;padding:0.8rem 1rem;background:rgba(201,168,76,0.06);border:1px solid rgba(201,168,76,0.2);margin-bottom:1.1rem;border-radius:4px;}
.p$sym{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--gold);}
.price-inp{background:none;border:none;border-bottom:2px solid var(--gold-border);color:var(--gold);font-family:'Playfair Display',serif;font-size:1.6rem;width:80px;outline:none;text-align:center;transition:border-color 0.2s;}
.price-inp:focus{border-bottom-color:var(--gold);}
.price-note{font-size:0.8rem;color:#A89878;line-height:1.5;}
.price-note strong{color:#F5EDD8;}

/* MAP BUILDER */
.map-builder{margin-bottom:1.1rem;border:1px solid rgba(201,168,76,0.18);overflow:hidden;border-radius:4px;}
.map-builder-head{display:flex;align-items:center;justify-content:space-between;padding:0.7rem 0.9rem;background:rgba(255,255,255,0.04);border-bottom:1px solid rgba(201,168,76,0.15);}
.mbh-lbl{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:#A89878;font-weight:500;}
.mbh-hint{font-size:9px;color:#A89878;}
.map-canvas{width:100%;height:220px;background:#070E08;position:relative;overflow:hidden;cursor:crosshair;}
.map-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(201,168,76,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,0.05) 1px,transparent 1px);background-size:30px 30px;}
.map-river{position:absolute;bottom:35%;left:0;right:0;height:28px;background:rgba(52,120,200,0.12);border-top:1px solid rgba(52,120,200,0.18);border-bottom:1px solid rgba(52,120,200,0.18);}
.map-river-lbl{position:absolute;bottom:37%;left:50%;transform:translateX(-50%);font-size:8px;color:rgba(52,120,200,0.45);letter-spacing:0.15em;white-space:nowrap;}
.map-route{position:absolute;inset:0;pointer-events:none;}
.map-pin-el{position:absolute;transform:translate(-50%,-100%);cursor:pointer;z-index:2;}
.map-pin-el:hover .map-pin-dot{transform:scale(1.3);}
.map-pin-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--gold);background:#1A1610;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--gold);font-family:'Playfair Display',serif;transition:transform 0.16s;}
.map-pin-dot.active{background:var(--gold);color:#0E0C08;}
.map-pin-label{font-size:8px;color:var(--gold);white-space:nowrap;text-align:center;margin-top:2px;max-width:80px;overflow:hidden;text-overflow:ellipsis;}
.map-add-hint{position:absolute;bottom:0.5rem;left:50%;transform:translateX(-50%);font-size:8px;color:rgba(201,168,76,0.35);letter-spacing:0.1em;white-space:nowrap;}

/* Stop builder */
.blbl{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:#A89878;margin-bottom:0.75rem;font-weight:500;}
.bstops{display:flex;flex-direction:column;gap:0.75rem;}
.bstop{background:rgba(255,255,255,0.05);border:1px solid rgba(201,168,76,0.18);padding:0.9rem 1rem;display:grid;grid-template-columns:auto auto 1fr auto;gap:0.75rem;align-items:start;position:relative;transition:all 0.16s;border-radius:4px;}
.bstop:hover{border-color:rgba(201,168,76,0.32);background:rgba(255,255,255,0.065);}
.bstop .finput,.bstop .ftextarea{user-select:text;-webkit-user-select:text;cursor:text;}
.bstop.dragging{opacity:0.42;border-color:var(--gold);}
.bstop.drag-over{border-color:var(--gold);border-style:dashed;}
.dh-grip{cursor:grab;color:#A89878;display:flex;flex-direction:column;gap:3px;padding-top:6px;align-items:center;opacity:0.5;transition:opacity 0.16s;}
.dh-grip:hover{opacity:1;}
.dh-grip span{display:block;width:11px;height:1.5px;background:currentColor;border-radius:2px;}
.dh-grip:active{cursor:grabbing;}
.bstop-fields{display:flex;flex-direction:column;gap:0.55rem;}
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:0.55rem;}
.bstop-num{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;background:rgba(201,168,76,0.14);border:1px solid rgba(201,168,76,0.35);border-radius:4px;font-size:1rem;font-family:'DM Sans',sans-serif;font-weight:700;color:var(--gold);flex-shrink:0;}
.bstop-acts{display:flex;flex-direction:column;gap:0.4rem;padding-top:2px;}
.ibtn{background:none;border:1px solid rgba(201,168,76,0.18);color:#A89878;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.16s;border-radius:3px;}
.ibtn:hover{border-color:var(--gold);color:var(--gold);}
.ibtn.del:hover{border-color:rgba(200,80,80,0.5);color:#E07070;}

/* Stop photo - prominent */
.stop-img-row{display:flex;align-items:center;gap:0.85rem;padding:0.65rem 0.8rem;background:rgba(255,255,255,0.04);border:1px solid rgba(201,168,76,0.18);margin-bottom:0.25rem;border-radius:3px;}
.stop-img-thumb{width:90px;height:60px;object-fit:cover;border:1px solid rgba(201,168,76,0.25);flex-shrink:0;border-radius:3px;}
.stop-img-ph{width:90px;height:60px;background:rgba(0,0,0,0.25);border:1px dashed rgba(201,168,76,0.25);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#A89878;border-radius:3px;}

/* Challenge builder */
.cbuilder{background:rgba(201,168,76,0.04);border:1px solid rgba(201,168,76,0.18);padding:0.9rem 1rem;margin-top:0.4rem;border-radius:4px;}
.cbuilder-head{display:flex;align-items:center;gap:0.65rem;margin-bottom:0.65rem;}
.ctype-sel{background:rgba(255,255,255,0.07);border:1px solid rgba(201,168,76,0.25);color:#F5EDD8;font-family:'DM Sans',sans-serif;font-size:0.82rem;padding:0.4rem 0.65rem;outline:none;cursor:pointer;transition:all 0.16s;flex:1;border-radius:3px;}
.ctype-sel:focus{border-color:var(--gold);}
.ctype-sel option{background:#1A1610;}
.ctbadge{font-size:9px;letter-spacing:0.08em;text-transform:uppercase;padding:4px 8px;white-space:nowrap;border-radius:3px;}
.ctb-p{background:rgba(201,168,76,0.12);color:var(--gold);border:1px solid rgba(201,168,76,0.3);}
.ctb-t{background:var(--blue-bg);color:var(--blue-text);border:1px solid var(--blue-bd);}
.ctb-q{background:var(--purple-bg);color:var(--purple-text);border:1px solid var(--purple-bd);}
.cfields{display:flex;flex-direction:column;gap:0.45rem;}
.tchoices-edit{display:grid;grid-template-columns:1fr 1fr;gap:0.35rem;}
.ch-row{display:flex;gap:0.3rem;align-items:center;}
.ch-ltr{font-size:10px;color:var(--stone);width:12px;flex-shrink:0;font-family:'Playfair Display',serif;}
.correct-r{accent-color:var(--gold);width:13px;height:13px;cursor:pointer;flex-shrink:0;}
.correct-hint{font-size:8px;color:var(--stone);margin-top:1px;}
.pw-row{display:flex;align-items:center;gap:0.65rem;padding:0.55rem 0.75rem;background:var(--red-bg);border:1px solid var(--red-bd);margin-top:0.25rem;}
.pw-lbl{font-size:0.75rem;color:var(--stone);flex:1;}
.toggle{position:relative;width:32px;height:17px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.tslider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,0.07);border:1px solid rgba(201,168,76,0.16);transition:0.2s;}
.tslider::before{content:'';position:absolute;height:11px;width:11px;left:2px;bottom:2px;background:var(--stone);transition:0.2s;}
.toggle input:checked+.tslider{background:rgba(139,44,44,0.25);border-color:rgba(200,80,80,0.38);}
.toggle input:checked+.tslider::before{transform:translateX(15px);background:#C47B7B;}

.add-stop-btn{margin-top:0.5rem;padding:0.68rem;background:none;border:1px dashed rgba(201,168,76,0.17);color:var(--stone);font-family:'DM Sans',sans-serif;font-size:0.73rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.4rem;transition:all 0.16s;width:100%;}
.add-stop-btn:hover{border-color:var(--gold);color:var(--gold);}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.82);z-index:500;align-items:center;justify-content:center;padding:1.5rem;}
.modal-overlay.on{display:flex;}
.modal{background:var(--ink-mid);border:1px solid var(--gold-border);padding:2rem;max-width:460px;width:100%;position:relative;max-height:90vh;overflow-y:auto;}
.modal-close{position:absolute;top:0.85rem;right:0.85rem;background:none;border:none;color:var(--stone);cursor:pointer;font-size:1.1rem;line-height:1;}
.modal-close:hover{color:var(--parchment);}
.modal h3{font-family:'Playfair Display',serif;font-size:1.2rem;margin-bottom:0.4rem;}
.modal p{color:var(--stone);font-size:0.8rem;line-height:1.6;margin-bottom:1rem;}
.modal-actions{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:1rem;}

/* HUNT MODE */
.hunt-badge{display:inline-flex;align-items:center;gap:4px;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;padding:2px 8px;background:rgba(180,120,20,0.15);color:#D4A843;border:1px solid rgba(180,120,20,0.35);}
.hunt-mystery{background:rgba(14,12,8,0.6);border:1px solid rgba(201,168,76,0.18);padding:1.1rem 1.25rem;display:flex;align-items:center;gap:1rem;margin:0.5rem 0;}
.hunt-mystery-icon{width:38px;height:38px;border:1.5px solid rgba(201,168,76,0.25);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(201,168,76,0.4);}
.hunt-mystery-text p{font-size:0.8rem;color:var(--stone);font-style:italic;}
.hunt-mystery-text span{font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(201,168,76,0.4);}
.clue-reveal{margin-top:0.6rem;background:rgba(180,120,20,0.08);border:1px solid rgba(180,120,20,0.25);padding:0.75rem 1rem;}
.clue-reveal-lbl{font-size:8px;letter-spacing:0.18em;text-transform:uppercase;color:#D4A843;margin-bottom:0.3rem;display:flex;align-items:center;gap:4px;}
.clue-reveal-text{font-size:0.82rem;color:var(--parchment);line-height:1.6;font-style:italic;}
.btn-complete{display:inline-flex;align-items:center;gap:0.4rem;margin-top:0.75rem;padding:0.5rem 1.1rem;background:var(--gold);color:var(--ink);border:none;font-family:'DM Sans',sans-serif;font-size:0.76rem;font-weight:500;cursor:pointer;letter-spacing:0.04em;transition:background 0.16s;}
.btn-complete:hover{background:var(--gold-light);}
.btn-complete:disabled{background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-bd);cursor:default;}
.hunt-mode-row{display:flex;align-items:center;gap:0.65rem;padding:0.55rem 0.75rem;background:rgba(180,120,20,0.07);border:1px solid rgba(180,120,20,0.25);margin-top:0.25rem;}
.hunt-mode-lbl{font-size:0.75rem;color:var(--stone);flex:1;}
.hunt-mode-lbl strong{color:#D4A843;}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--ink-card);border:1px solid var(--gold-border);color:var(--parchment);padding:0.65rem 1.1rem;font-size:0.78rem;display:flex;align-items:center;gap:0.5rem;z-index:999;transform:translateY(70px);opacity:0;transition:all 0.26s;max-width:320px;}
.toast.show{transform:translateY(0);opacity:1;}
.tdot{width:6px;height:6px;background:var(--gold);border-radius:50%;flex-shrink:0;}

/* PWA status chip */
.pwa-chip{font-size:8px;letter-spacing:0.1em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--green-bd);background:var(--green-bg);color:var(--green-text);display:inline-flex;align-items:center;gap:3px;}
.pwa-chip.pending{border-color:var(--gold-border);background:var(--gold-dim);color:var(--gold);}

@media(max-width:740px){
  .adm-wrap{grid-template-columns:1fr;}
  .adm-side{display:none;}
  .tgrid{grid-template-columns:1fr;}
  .tsrow{grid-template-columns:1fr 1fr;}
  .dtop{grid-template-columns:1fr;}
  .cover-upload-area{grid-template-columns:1fr;}
  .frow2,.tchoices-edit{grid-template-columns:1fr;}
  .tchoices{grid-template-columns:1fr;}
}
