/* Range Anxiety — Utah flag scheme (2024 flag: midnight blue, beehive gold, canyon red, snow).
   Night race by default; snow-day light theme follows the phone setting.
   Variable names kept from the rally era — the values carry the meaning:
   asphalt=background, panel=surface, cream=text, dust=muted, amber=beehive gold,
   blaze/red=canyon red (sabotage/danger), sage=juniper, sky=duel, purple=shield. */
:root{ --asphalt:#0A1B3A; --panel:#122A52; --line:#26406B; --cream:#F4F7FA; --dust:#8FA3C4;
  --amber:#FFB81C; --gold-ink:#2E1F02; --blaze:#E0475A; --red:#C22B3D; --sage:#7FB069; --sky:#7AA5C4; --purple:#8D85E8;
  --soft:#0E2246;
  --on-sage:#14290F; --on-red:#FFE9EB; --on-sky:#0E2233; --on-purple:#17123D;}
@media (prefers-color-scheme: light){
  :root{ --asphalt:#F2F5F9; --panel:#FFFFFF; --line:#C9D4E4; --cream:#12294F; --dust:#5A6E8C;
    --amber:#B27409; --gold-ink:#FFF8EA; --blaze:#A6192E; --red:#A6192E; --sage:#4C7A3F; --sky:#33648F; --purple:#5B51C7;
    --soft:#E4EBF4;
    --on-sage:#F2F8EF; --on-red:#FFF3F4; --on-sky:#EFF5FA; --on-purple:#F1EFFC;}
}
/* manual override from Settings beats the phone setting (attribute selector outranks :root) */
:root[data-theme="dark"]{ --asphalt:#0A1B3A; --panel:#122A52; --line:#26406B; --cream:#F4F7FA; --dust:#8FA3C4;
  --amber:#FFB81C; --gold-ink:#2E1F02; --blaze:#E0475A; --red:#C22B3D; --sage:#7FB069; --sky:#7AA5C4; --purple:#8D85E8;
  --soft:#0E2246; --on-sage:#14290F; --on-red:#FFE9EB; --on-sky:#0E2233; --on-purple:#17123D;}
:root[data-theme="light"]{ --asphalt:#F2F5F9; --panel:#FFFFFF; --line:#C9D4E4; --cream:#12294F; --dust:#5A6E8C;
  --amber:#B27409; --gold-ink:#FFF8EA; --blaze:#A6192E; --red:#A6192E; --sage:#4C7A3F; --sky:#33648F; --purple:#5B51C7;
  --soft:#E4EBF4; --on-sage:#F2F8EF; --on-red:#FFF3F4; --on-sky:#EFF5FA; --on-purple:#F1EFFC;}
/* large-text mode: the surfaces you actually read in a moving car */
:root[data-big="1"] .card p{font-size:17px;}
:root[data-big="1"] .note{font-size:14px;}
:root[data-big="1"] .pc-body{font-size:12px;}
:root[data-big="1"] .logline, :root[data-big="1"] .feedline{font-size:15px;}
:root[data-big="1"] .stop .sn{font-size:16px;}
:root[data-big="1"] .incoming p{font-size:16px;}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
body{margin:0; background:var(--asphalt); color:var(--cream); font-family:'Archivo',Arial,sans-serif; min-height:100vh; padding-bottom:92px;}
.disp{font-family:'Archivo Black','Arial Black',Impact,sans-serif; letter-spacing:.02em;}
header{padding:14px 16px 6px; border-bottom:3px solid var(--amber);}
.hrow{display:flex; justify-content:space-between; align-items:baseline; max-width:520px; margin:0 auto;}
header h1{margin:0; font-size:22px; color:var(--amber); text-transform:uppercase;}
.clockchip{font-family:'Archivo Black',sans-serif; font-size:16px; color:var(--cream);}
.clockchip.warn{color:var(--red);}
.teamline{max-width:520px; margin:2px auto 0; font-size:11px; color:var(--dust); letter-spacing:.15em; text-transform:uppercase; display:flex; justify-content:space-between;}
.gaugewrap{display:flex; justify-content:center; padding:2px 0 4px;}
.fp-adjust{display:flex; gap:12px; align-items:center; justify-content:center; margin:-4px 0 6px;}
.fp-adjust button{width:48px; height:40px; font-size:20px; border-radius:10px; border:2px solid var(--line); background:var(--panel); color:var(--cream); font-weight:700;}
.fp-adjust span{font-size:11px; color:var(--dust); text-transform:uppercase; letter-spacing:.15em;}
nav{position:fixed; bottom:0; left:0; right:0; display:flex; background:var(--panel); border-top:3px solid var(--amber); z-index:10;}
nav button{flex:1; padding:13px 1px 15px; background:none; border:none; color:var(--dust); font-family:'Archivo Black',sans-serif; font-size:10px; text-transform:uppercase;}
.gearbtn{background:none; border:none; color:var(--dust); font-size:19px; padding:2px 4px; line-height:1;}
.setrow{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14px;}
.setrow button{flex:0 0 118px; min-width:0; padding:9px 8px; font-size:11px;}
nav button.on{color:var(--amber); background:var(--asphalt);}
.wrap{max-width:520px; margin:0 auto; padding:12px 14px;}
section{display:none;} section.on{display:block;}
.card{background:var(--panel); border:2px solid var(--line); border-radius:14px; padding:15px; margin:12px 0;}
.tier{display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; padding:3px 10px; border-radius:99px; margin-bottom:8px;}
.tier.quick{background:var(--sage); color:var(--on-sage);} .tier.standard{background:var(--amber); color:var(--gold-ink);}
.tier.big{background:var(--red); color:var(--on-red);} .tier.stranger{background:var(--sky); color:var(--on-sky);}
.tier.shield{background:var(--purple); color:var(--on-purple);}
.card p{margin:4px 0 12px; font-size:15px; line-height:1.45;}
.btnrow{display:flex; gap:8px; flex-wrap:wrap;}
button.act{flex:1; min-width:104px; padding:12px 8px; border-radius:10px; border:none; font-family:'Archivo Black',sans-serif; font-size:13px; text-transform:uppercase;}
.b-amber{background:var(--amber); color:var(--gold-ink);} .b-red{background:var(--red); color:var(--on-red);}
.b-green{background:var(--sage); color:var(--on-sage);} .b-ghost{background:none; border:2px solid var(--line) !important; color:var(--dust);}
.b-purple{background:var(--purple); color:var(--on-purple);}
.bigdraw{width:100%; padding:18px; font-size:18px; border-radius:14px; margin-top:8px;}
.note{font-size:12px; color:var(--dust); line-height:1.5; margin:10px 2px;}
.deckcount{text-align:center; font-size:11px; color:var(--dust); letter-spacing:.08em; text-transform:uppercase; margin-top:6px;}
/* ---- the journey line: waypoints as travel-journal photo cards on a gold road ---- */
.wp{position:relative; padding:6px 0 6px 46px;}
.wp::before{content:''; position:absolute; left:17px; top:0; bottom:0; width:4px; background:var(--line); border-radius:2px;}
.wp.done::before{background:var(--amber);}
.wp.now::before{background:repeating-linear-gradient(180deg, var(--amber) 0 9px, transparent 9px 18px);
  animation:roadmove .9s linear infinite;}
@keyframes roadmove{to{background-position:0 18px;}}
.wp:first-child::before{top:22px;}
.wp:last-child::before{bottom:calc(100% - 40px);}
.wpnum{position:absolute; left:0; top:16px; width:38px; height:42px; display:flex; align-items:center; justify-content:center;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  background:var(--panel); color:var(--dust); font-family:'Archivo Black',sans-serif; font-size:14px; z-index:1;}
.wp.done .wpnum{background:var(--amber); color:var(--gold-ink);}
.wp.now .wpnum{background:var(--amber); color:var(--gold-ink); animation:herepulse 1.6s infinite;}
@keyframes herepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
.wpcard{border:2px solid var(--line); border-radius:14px; background:var(--panel); overflow:hidden;}
.wp.now .wpcard{border-color:var(--amber); box-shadow:0 0 0 1px var(--amber), 0 8px 22px rgba(0,0,0,.35);}
.wp.done .wpcard{opacity:.72;}
.wpphoto{position:relative; background:var(--soft);}
.wpphoto img{display:block; width:100%; aspect-ratio:16/7; object-fit:cover; transition:filter .8s ease;}
.wp.now .wpphoto img, .wp.stamping .wpphoto img{aspect-ratio:16/9;}
.wp.done .wpphoto img{filter:grayscale(1) contrast(1.05) brightness(.92);}
.wp.todo .wpphoto img{aspect-ratio:16/5;}
.wpph{display:flex; align-items:center; justify-content:center; aspect-ratio:16/5; color:var(--line); font-size:34px;}
.wp.now .wpph{aspect-ratio:16/7; color:var(--amber);}
.wpinfo{padding:10px 13px 12px;}
.wptitle{font-size:15px; font-weight:700; line-height:1.25;}
.wp.now .wptitle{font-size:17px;}
.wp.done .wptitle{color:var(--dust); text-decoration:line-through; text-decoration-color:var(--amber); text-decoration-thickness:2px;}
.wpneed{font-size:11px; color:var(--dust); text-transform:uppercase; letter-spacing:.07em; margin-top:4px; line-height:1.5;}
.wpneed b{color:var(--amber);}
.youarehere{position:absolute; top:8px; left:10px; background:var(--amber); color:var(--gold-ink);
  font-family:'Archivo Black',sans-serif; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  padding:4px 9px; border-radius:99px; animation:herepulse 1.6s infinite;}
.wpenemy{position:absolute; bottom:8px; left:10px; background:var(--blaze); color:var(--on-red);
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border-radius:99px;}
/* the passport stamp */
.stamp{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) rotate(-12deg);
  border:3px solid var(--blaze); color:var(--blaze); border-radius:10px; padding:5px 14px 7px;
  font-family:'Archivo Black',sans-serif; font-size:20px; letter-spacing:.22em; text-transform:uppercase;
  text-align:center; box-shadow:inset 0 0 0 2px transparent, 0 0 0 2px transparent; opacity:.92;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.07), transparent 70%);}
.stamp small{display:block; font-size:8px; letter-spacing:.28em; margin-top:2px;}
.wp.stamping .stamp{animation:stampin .55s cubic-bezier(.2,1.6,.35,1);}
@keyframes stampin{0%{transform:translate(-50%,-50%) rotate(-35deg) scale(2.6); opacity:0;}
  55%{transform:translate(-50%,-50%) rotate(-12deg) scale(.92); opacity:1;}
  75%{transform:translate(-50%,-50%) rotate(-12deg) scale(1.06);}
  100%{transform:translate(-50%,-50%) rotate(-12deg) scale(1);}}
.wp.stamping .wpcard{animation:thump .5s ease-out;}
@keyframes thump{0%{transform:scale(1)}55%{transform:scale(1.025)}100%{transform:scale(1)}}
.wp.stamping .wpcard{opacity:1;}
/* founder's lobby photo editor */
.wprow{display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--line);}
.wprow img{width:52px; height:38px; object-fit:cover; border-radius:8px; border:1px solid var(--line);}
.wprow .wpempty{width:52px; height:38px; display:flex; align-items:center; justify-content:center; color:var(--line); font-size:20px; border:1px dashed var(--line); border-radius:8px;}
.wprow .wpname{flex:1; font-size:13px; line-height:1.3;}
.wprow button{padding:8px 12px; border-radius:8px; border:none; background:var(--amber); color:var(--gold-ink); font-weight:700; font-size:11px; text-transform:uppercase;}
.progress{height:8px; background:var(--panel); border-radius:99px; overflow:hidden; margin:10px 0 4px;}
.progress div{height:100%; background:var(--amber); width:0%;}
.progress.enemy div{background:var(--blaze);}
.bounty{display:flex; align-items:center; gap:12px; padding:13px 14px; border:2px solid var(--line); border-radius:12px; margin:9px 0; background:var(--panel);}
.bounty.done{opacity:.4;}
.bounty .bt{flex:1; font-size:14px; line-height:1.35;}
.bounty .fpv{font-family:'Archivo Black',sans-serif; color:var(--amber); font-size:16px; white-space:nowrap;}
.bounty button{padding:9px 14px; border-radius:9px; border:none; background:var(--amber); color:var(--gold-ink); font-weight:700; font-size:12px; text-transform:uppercase;}
.bounty .who{font-size:10px; color:var(--dust); text-transform:uppercase; letter-spacing:.08em; margin-top:3px;}
.cursecard{border-color:var(--blaze);}
.cursecard .ring{font-size:12px; color:var(--blaze); font-weight:700; text-transform:uppercase; letter-spacing:.15em; margin-bottom:6px;}
.handrow{display:flex; gap:14px; overflow-x:auto; padding:16px 6px 24px; align-items:stretch;}
.pcard{flex:0 0 176px; min-height:250px; aspect-ratio:5/7; border-radius:14px; padding:12px; position:relative;
  display:flex; flex-direction:column; box-shadow:0 6px 18px rgba(0,0,0,.45); border:2px solid var(--line); background:var(--panel);}
.pcard:nth-child(odd){transform:rotate(-1.4deg);} .pcard:nth-child(even){transform:rotate(1.2deg);}
.pc-em{height:44px; display:flex; align-items:center;}
.pc-type{font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:var(--dust); margin-top:2px;}
.pc-head{font-family:'Archivo Black',sans-serif; font-size:13px; line-height:1.15; text-transform:uppercase; margin:4px 0 2px; color:var(--cream);}
.pc-body{font-size:10px; line-height:1.4; overflow-y:auto; flex:1; margin-top:5px; color:var(--dust);}
.pc-btn{margin-top:8px; width:100%; padding:9px 4px; border-radius:9px; border:none; font-family:'Archivo Black',sans-serif; font-size:11px; text-transform:uppercase;}
.pc-corner{position:absolute; top:8px; right:10px; font-size:11px; opacity:.55; color:var(--cream);}
.pc-x{position:absolute; top:6px; left:8px; background:none; border:none; color:var(--dust); font-size:13px; opacity:.6; padding:2px 5px;}
.pc-curse{border-color:var(--blaze); background:linear-gradient(160deg, rgba(194,43,61,.22), transparent 60%) var(--panel);}
.pc-dice{border-color:var(--cream); background:repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 12px, rgba(255,184,28,.08) 12px 24px) var(--panel);}
.pc-object{border-style:dashed; border-color:var(--amber); background:linear-gradient(200deg, rgba(255,184,28,.15), transparent 70%) var(--panel);}
.pc-loaded{border-color:var(--amber); box-shadow:0 0 0 3px var(--asphalt), 0 0 0 5px var(--amber), 0 8px 20px rgba(0,0,0,.55);}
.pc-shield{border-color:var(--purple); background:linear-gradient(180deg, rgba(141,133,232,.18), transparent 75%) var(--panel);}
.pc-nuke{border:2px dashed var(--red); background:radial-gradient(circle at 50% 28%, rgba(194,43,61,.28), transparent 70%) var(--panel);}
.pc-chal{border-color:var(--sage); background:linear-gradient(180deg, rgba(127,176,105,.17), transparent 70%) var(--panel);}
.logline{font-size:12px; color:var(--dust); border-bottom:1px solid var(--line); padding:7px 2px; line-height:1.4;}
.logline b{color:var(--cream); font-weight:600;}
.logline .who{color:var(--amber); font-weight:700;}
.logline.mine .who{color:var(--sage);}
.toast{position:fixed; top:12px; left:50%; transform:translateX(-50%); background:var(--amber); color:var(--gold-ink); font-weight:700; padding:10px 18px; border-radius:99px; font-size:13px; z-index:30; display:none; max-width:90vw; text-align:center;}
.screen{position:fixed; inset:0; background:var(--asphalt); z-index:20; overflow-y:auto; display:none;}
.screen.on{display:block;}
.screen h2{font-family:'Archivo Black',sans-serif; text-transform:uppercase; color:var(--amber); font-size:18px; margin:18px 0 6px;}
.screen label{display:block; font-size:12px; color:var(--dust); text-transform:uppercase; letter-spacing:.1em; margin:12px 0 4px;}
.screen input, .screen textarea, .screen select{width:100%; background:var(--panel); border:2px solid var(--line); border-radius:10px; color:var(--cream); padding:10px; font-family:'Archivo',sans-serif; font-size:14px;}
.screen textarea{min-height:190px; font-size:12px; line-height:1.5;}
.capbanner{background:var(--red); color:var(--on-red); font-family:'Archivo Black',sans-serif; text-align:center; padding:10px; border-radius:12px; margin:10px 0; text-transform:uppercase; display:none;}
.winbanner{background:var(--sage); color:var(--on-sage); font-family:'Archivo Black',sans-serif; text-align:center; padding:12px; border-radius:12px; margin:10px 0; text-transform:uppercase; display:none;}
.incoming{border:2px solid var(--blaze); border-radius:14px; background:linear-gradient(160deg, rgba(194,43,61,.22), transparent 60%) var(--panel); padding:15px; margin:12px 0; display:none;}
.incoming .ring{font-size:12px; color:var(--blaze); font-weight:700; text-transform:uppercase; letter-spacing:.15em; margin-bottom:6px;}
.incoming p{margin:4px 0 12px; font-size:14px; line-height:1.45;}
.codechip{font-family:'Archivo Black',sans-serif; font-size:34px; letter-spacing:.28em; color:var(--amber); text-align:center; padding:14px 0 6px;}
.lobbyteam{display:flex; align-items:center; gap:12px; padding:13px 14px; border:2px solid var(--line); border-radius:12px; margin:9px 0; background:var(--panel);}
.lobbyteam .tn{flex:1; font-size:15px; font-weight:600;}
.lobbyteam .tr{font-size:10px; color:var(--dust); text-transform:uppercase; letter-spacing:.12em;}
.lobbyteam.me{border-color:var(--sage);}
.syncdot{display:inline-block; width:9px; height:9px; border-radius:99px; background:var(--red); margin-right:5px; vertical-align:1px;}
.syncdot.up{background:var(--sage);}
.enemystrip{display:flex; align-items:center; gap:10px; padding:10px 12px; border:2px solid var(--line); border-left:4px solid var(--blaze); border-radius:12px; margin:10px 0; background:var(--panel);}
.enemystrip .en{flex:1; font-size:13px; line-height:1.35;}
.enemystrip .et{font-size:10px; color:var(--dust); text-transform:uppercase; letter-spacing:.1em;}
.duelchip{background:var(--sky); color:var(--on-sky); font-family:'Archivo Black',sans-serif; text-align:center; padding:10px; border-radius:12px; margin:10px 0; text-transform:uppercase; display:none;}
.dicebar{display:flex; gap:14px; align-items:center; margin:8px 0;}
.dicefaces{display:flex; gap:8px;}
.dicefaces span{width:52px; height:52px; border-radius:12px; background:var(--cream); color:var(--asphalt);
  font-family:'Archivo Black',sans-serif; font-size:26px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(0,0,0,.4);}
.dicefaces.rolling span{animation:diceshake .12s infinite;}
@keyframes diceshake{0%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}100%{transform:rotate(-6deg)}}
.scorer{border:2px solid var(--sky); border-radius:12px; background:var(--panel); padding:12px 14px; margin:10px 0;}
.scorer .srow{display:flex; align-items:center; gap:10px; margin:6px 0;}
.scorer .sname{flex:1; font-size:14px; font-weight:600;}
.scorer .spips{font-size:18px; letter-spacing:.15em; color:var(--sky);}
.scorer button{padding:8px 12px; border-radius:9px; border:none; background:var(--sky); color:var(--on-sky); font-weight:700; font-size:11px; text-transform:uppercase;}
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:10px 0;}
.gallery figure{margin:0; position:relative;}
.gallery img{width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; border:2px solid var(--line); display:block;}
.gallery figcaption{font-size:9px; color:var(--dust); line-height:1.3; margin-top:3px; text-transform:uppercase; letter-spacing:.05em;}
.gallery .pend{position:absolute; top:6px; right:6px; background:var(--amber); color:var(--gold-ink); font-size:8px; font-weight:700; padding:2px 6px; border-radius:99px; text-transform:uppercase;}
#lightbox{display:none; position:fixed; inset:0; background:rgba(10,9,7,.94); z-index:40; align-items:center; justify-content:center; flex-direction:column; gap:10px; padding:16px;}
#lightbox img{max-width:100%; max-height:82vh; border-radius:12px;}
#lightbox .cap{color:var(--dust); font-size:12px; text-align:center;}
.routecard{display:flex; align-items:center; gap:10px; padding:9px 12px; border:2px solid var(--line); border-radius:10px; margin:7px 0; background:var(--panel);}
.routecard .rn{flex:1; font-size:13px;}
.routecard button{padding:7px 10px; border-radius:8px; border:none; font-size:11px; font-weight:700; text-transform:uppercase; background:var(--panel); color:var(--dust); border:2px solid var(--line);}
.routecard button.load{background:var(--amber); color:var(--gold-ink); border:none;}
.summarycard{border:2px solid var(--sage); border-radius:14px; background:var(--panel); padding:14px; margin:10px 0; text-align:center;}
.summarycard canvas{max-width:100%; border-radius:10px; margin-bottom:10px;}
.proofbtn{background:none; border:2px solid var(--line); color:var(--dust); border-radius:9px; padding:9px 12px; font-size:11px; font-weight:700; text-transform:uppercase;}
.hero{position:relative; max-width:460px; margin:16px auto 0;}
.homeart{display:block; width:100%; aspect-ratio:1; object-fit:cover; border:2px solid var(--line); border-bottom:3px solid var(--amber); border-radius:12px 12px 6px 6px;}
/* the beehive crest, centered on the artwork */
.hero-logo{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none;}
.hero-logo svg{width:62%; max-width:264px; filter:drop-shadow(0 6px 16px rgba(7,20,40,.55));}
.homebtns{display:flex; flex-direction:column; gap:12px; margin-top:20px;}
.homebtns button{padding:18px; font-size:16px; border-radius:14px;}
.mode-note{font-size:11px; color:var(--dust); text-align:center; letter-spacing:.08em; text-transform:uppercase; margin-top:14px;}
#drivemode{display:none; position:fixed; inset:0; background:var(--asphalt); z-index:50; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px; text-align:center;}
#drivemode .dm-clock{font-family:'Archivo Black',sans-serif; font-size:88px; color:var(--cream); line-height:1;}
#drivemode .dm-cap{font-size:20px; color:var(--amber); font-weight:700; text-transform:uppercase; letter-spacing:.1em;}
#drivemode .dm-cap.warn{color:var(--red);}
#drivemode .dm-stop{font-size:26px; color:var(--cream); font-weight:600; margin-top:18px; line-height:1.3;}
#drivemode .dm-stop small{display:block; font-size:13px; color:var(--dust); text-transform:uppercase; letter-spacing:.12em; margin-top:4px;}
#drivemode .dm-fp{font-family:'Archivo Black',sans-serif; font-size:30px; color:var(--amber); margin-top:10px;}
#drivemode .dm-curse{font-size:15px; color:var(--blaze); font-weight:700; text-transform:uppercase; min-height:22px;}
#drivemode .dm-exit{position:absolute; top:18px; right:18px; background:none; border:2px solid var(--line); color:var(--dust); border-radius:10px; padding:10px 16px; font-family:'Archivo Black',sans-serif; font-size:12px;}
#ledgerbox, #surveybox{display:none; position:fixed; inset:0; background:rgba(10,9,7,.94); z-index:40; overflow-y:auto; padding:30px 16px;}
#ledgerbox .card, #surveybox .card{max-width:460px; margin:0 auto;}
.svq{font-size:10px; color:var(--dust); text-transform:uppercase; letter-spacing:.1em; margin-top:10px;}
.sva{font-size:14px; line-height:1.45; margin-top:2px;}
.sva.empty{color:var(--line);}
.svteam{font-family:'Archivo Black',sans-serif; font-size:15px; text-transform:uppercase; color:var(--amber); margin:16px 0 2px;}
.ledgerline{display:flex; gap:10px; font-size:13px; border-bottom:1px solid var(--line); padding:7px 2px;}
.ledgerline .ld{font-family:'Archivo Black',sans-serif; width:44px; text-align:right;}
.ledgerline .ld.up{color:var(--sage);} .ledgerline .ld.dn{color:var(--red);}
.ledgerline .lr{flex:1; color:var(--dust);}
.ledgerline .lb{color:var(--cream); font-weight:600;}
.recoverteam{display:flex; align-items:center; gap:8px; padding:10px 12px; border:2px solid var(--sage); border-radius:12px; margin:8px 0; background:var(--panel); flex-wrap:wrap;}
.recoverteam .rn{flex:1 1 100%; font-size:14px; font-weight:600;}
.recoverteam input{flex:1; min-width:80px; background:var(--asphalt); border:2px solid var(--line); border-radius:9px; color:var(--cream); padding:9px; font-size:16px; letter-spacing:.2em; text-align:center;}
.recoverteam button{padding:10px 14px; border-radius:9px; border:none; background:var(--sage); color:var(--on-sage); font-weight:700; font-size:12px; text-transform:uppercase;}
.sp-head{display:flex; align-items:baseline; gap:12px;}
.livechip{font-family:'Archivo Black',sans-serif; font-size:11px; letter-spacing:.18em; color:var(--red); display:inline-flex; align-items:center; gap:6px;}
.livedot{width:9px; height:9px; border-radius:99px; background:var(--red); animation:livepulse 1.6s infinite;}
@keyframes livepulse{0%,100%{opacity:1}50%{opacity:.25}}
.sp-h{font-family:'Archivo Black',sans-serif; font-size:13px; text-transform:uppercase; color:var(--dust); letter-spacing:.1em; margin:22px 0 6px;}
.sp-capline{font-family:'Archivo Black',sans-serif; font-size:13px; color:var(--amber); text-transform:uppercase; letter-spacing:.12em; margin:8px 0;}
.sp-capline.warn{color:var(--red);}
.sp-team{border:2px solid var(--line); border-radius:12px; background:var(--panel); padding:12px 14px; margin:9px 0;}
.sp-team.leader{border-left:4px solid var(--amber);} .sp-team.chaser{border-left:4px solid var(--blaze);}
.sp-team .sprow{display:flex; align-items:baseline; gap:10px;}
.sp-team .spn{font-size:16px; font-weight:700; flex:1;}
.sp-team .spclock{font-family:'Archivo Black',sans-serif; font-size:20px; color:var(--cream);}
.sp-team .spd{font-size:12px; color:var(--dust); margin-top:3px; line-height:1.5;}
.sp-team .progress{margin:8px 0 4px;}
.sp-team .spstats{font-size:11px; color:var(--dust); text-transform:uppercase; letter-spacing:.06em; margin-top:6px;}
.sp-team .spcurse{font-size:12px; color:var(--blaze); font-weight:700; margin-top:6px; line-height:1.4;}
.sp-stop{display:flex; align-items:center; gap:9px; padding:6px 10px; border-left:2px solid var(--line); margin-left:8px; font-size:13px;}
.sp-stop.done{opacity:.4;}
.sp-stop .cars{min-width:52px; font-size:14px; letter-spacing:.1em;}
.sp-stop .nm{flex:1; line-height:1.3;}
.sp-stop .nm small{color:var(--dust); font-size:10px; text-transform:uppercase; letter-spacing:.08em;}
.sp-bounty{display:flex; gap:8px; font-size:12px; padding:6px 2px; border-bottom:1px solid var(--line); color:var(--dust); align-items:center;}
.sp-bounty .bwho{font-weight:700; color:var(--amber); white-space:nowrap;}
.sp-bounty .bwho.open{color:var(--sage);}
.feedline{display:flex; gap:9px; padding:8px 10px; border-left:3px solid var(--line); margin:6px 0; background:var(--panel); border-radius:0 10px 10px 0; font-size:13px; line-height:1.45; align-items:flex-start;}
.feedline .fic{flex:0 0 20px; text-align:center;}
.feedline .fbody{flex:1;}
.feedline .fwho{font-weight:700; color:var(--cream);}
.feedline .ft{font-size:10px; color:var(--dust); white-space:nowrap; margin-left:6px;}
.feedline.k-curse{border-left-color:var(--blaze);} .feedline.k-shield{border-left-color:var(--purple);}
.feedline.k-bounty{border-left-color:var(--amber);} .feedline.k-duel{border-left-color:var(--sky);}
.feedline.k-finish, .feedline.k-launch, .feedline.k-result{border-left-color:var(--sage);}
.feedline.k-cap, .feedline.k-nuke{border-left-color:var(--red);}
.feedline.fresh{animation:feedin .5s ease-out;}
@keyframes feedin{from{background:rgba(255,184,28,.28);}to{background:var(--panel);}}
.curse-expiry{font-size:11px; color:var(--amber); text-transform:uppercase; letter-spacing:.1em; font-weight:700; margin-top:-6px; margin-bottom:8px;}
