/* Golf Cart Training Center sim frame theme (1.10.0, release 3b): the navy/white "manufacturer
   training" look for the two shop simulators (modules/iq-sim, modules/rxv-sim).
   Only the FRAME is restyled: menu rail/drawer, tool-window chrome, buttons, modals, Pete's bubble,
   toasts, scoreboards, pickers. The work areas (cart stage #cartsvg, gauges, DMM, tester screens,
   mini meter, wiring diagram canvas) keep their dark/realistic look.
   Everything is scoped under body.lab so the sims' inline styles stay the fallback.
   2026-10 rebrand: the old variable names point at /shared/brand-tokens.css (loaded first). */
body.lab{
  --navy:var(--gct-navy,#0B1F33); --navy2:var(--gct-navy-2,#132B44); --volt:var(--gct-electric-blue,#3FA9F5); --green:var(--gct-tech-blue,#1468B0); --green-d:var(--gct-tech-blue-hover,#0F5390);
  --paper:var(--gct-paper,#F4F6F8); --line:var(--gct-line,#DDE3EA); --gold:var(--gct-signal-yellow,#FFC72C); --mut-dark:var(--gct-text-on-dark-muted,#B7C4D4); --tint:#E8F1FA;
  --ink:var(--gct-ink,#111820); --mut:var(--gct-steel-grey,#5F6B78);
  --fb:var(--font-body,"Barlow","Helvetica Neue",Arial,sans-serif); --fh:var(--font-heading,"Barlow Condensed","Arial Narrow",sans-serif);
  /* the sims' own tokens, re-pointed */
  --accent:var(--gct-tech-blue,#1468B0); --accent2:var(--gct-tech-blue,#1468B0); --accent-d:var(--gct-tech-blue-hover,#0F5390);
  --panel:#ffffff; --menu:#ffffff;
}
body.lab *{font-family:var(--fb);}
/* work areas keep the original type (more specific rules there, e.g. Consolas readouts, still win) */
body.lab :where(#cartsvg,#wiresvg,#testerscreen,#dmmshell,.gauge,#minimeter,#guideavatar) *,
body.lab :where(#testerscreen,#dmmshell,#minimeter){font-family:var(--fb);}
body.lab #testerscreen{font-family:Consolas,monospace;}

/* ---------- left menu rail / phone drawer ---------- */
body.lab #menu{background:#fff; color:var(--ink); border-right:1px solid var(--line); box-shadow:none; padding-top:0;}
body.lab #menu h1{background:var(--navy); color:#fff; padding:12px 12px 12px 14px; margin:0; font-family:var(--fh); font-size:18px; font-weight:800;
  letter-spacing:.03em; text-transform:uppercase; border-bottom:3px solid var(--volt); min-height:60px; line-height:1.1;}
body.lab #menu h1 .h1txt{font-family:var(--fh); font-size:18px;}
body.lab #menu h1 .logo{display:none;}
body.lab #menu h1 .gctseal{flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  margin:-4px -4px -4px -4px; border-radius:50%; text-decoration:none;}
body.lab #menu h1 .gctseal img{display:block; width:36px; height:36px;}
body.lab #menu h1 .gctseal:focus-visible{outline:2px solid var(--volt); outline-offset:3px;}
body.lab #menucollapse{background:rgba(255,255,255,.12); color:#fff; border-radius:4px; width:28px; height:28px; font-size:14px;}
body.lab #menucollapse:hover{background:rgba(255,255,255,.24); color:#fff;}
body.lab #menu .sub{color:var(--mut); font-size:12px; font-weight:600; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--paper);}
body.lab #menu .mlabel{color:var(--green-d); font-family:var(--fh); font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:16px 16px 6px;}
body.lab #menu .mbtn{color:var(--ink); font-size:14px; font-weight:600; border-radius:4px; padding:9px 10px; min-height:40px;}
body.lab #menu .mbtn .ic{filter:none;}
body.lab #menu .mbtn:hover{background:var(--paper); color:var(--navy);}
body.lab #menu .mbtn.open{background:var(--tint); color:var(--navy); border-left-color:var(--green); box-shadow:none;}
body.lab #menu .mbtn:focus-visible{outline:2px solid var(--green); outline-offset:-2px;}
body.lab #menu .msep{border-top-color:var(--line);}
body.lab #menu .foot{color:var(--mut); border-top:1px solid var(--line); background:var(--paper); font-size:11px;}
body.lab #menu .foot .def{margin-top:6px; font-size:10px; line-height:1.45; color:var(--mut);}
/* collapsed rail (desktop) */
body.lab #menu.collapsed h1{padding:12px 0; justify-content:center;}
body.lab #menu.collapsed #menucollapse{top:68px; background:var(--paper); color:var(--navy); border:1px solid var(--line);}
body.lab #menu.collapsed #menucollapse:hover{background:var(--tint);}
body.lab #menu.collapsed .mbtn{font-size:0; padding:11px 0; min-height:0;}
body.lab #menu.collapsed .mbtn:first-of-type{margin-top:40px;}
body.lab #menu.collapsed .mbtn.open{border-bottom-color:var(--green);}

/* ---------- stage overlays (frame pieces that float over the dark work area) ---------- */
body.lab #hud{background:rgba(11,31,51,.86); border:1px solid rgba(255,255,255,.1); border-left:3px solid var(--volt); border-radius:6px; color:#e3eaf2;}
body.lab #hud b{color:var(--volt);}
body.lab #toast{background:var(--navy); border:1px solid rgba(255,255,255,.14); border-left:3px solid var(--volt); border-radius:6px; font-weight:600;}
body.lab #zoomctl button, body.lab #hamb{background:#fff; color:var(--navy); border:1px solid var(--line); border-radius:6px;
  box-shadow:0 2px 8px rgba(0,0,0,.3); backdrop-filter:none; font-weight:700;}
body.lab #zoomctl button:hover, body.lab #hamb:hover{background:var(--tint);}
body.lab #menuveil{background:rgba(11,31,51,.55);}

/* ---------- tool windows ---------- */
body.lab .win{background:#fff; border:1px solid var(--line); border-radius:6px; box-shadow:0 14px 40px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.2);}
body.lab .win .bar{background:var(--navy); color:#fff; font-family:var(--fh); font-size:15px; font-weight:700; letter-spacing:.06em; border-bottom:3px solid var(--volt); padding:9px 12px 8px 14px;}
body.lab .win .bar .x, body.lab .win .bar .mn{background:rgba(255,255,255,.12); color:#fff; border-radius:4px; font-weight:700;}
body.lab .win .bar .x:hover{background:#c92a2a;}
body.lab .win .bar .mn:hover{background:rgba(255,255,255,.26);}
body.lab .win .body{color:var(--ink); background:#fff;}

/* buttons */
body.lab .btn{background:var(--green); color:#fff; border-radius:6px; box-shadow:none; font-family:var(--fh); font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
body.lab .btn:hover{background:var(--green-d); filter:none;}
body.lab .btn.gray{background:#fff; color:var(--navy); box-shadow:inset 0 0 0 1px #b9c5d3;}
body.lab .btn.gray:hover{background:var(--paper); box-shadow:inset 0 0 0 1px var(--navy);}
body.lab .btn.redb{background:#c92a2a;}
body.lab .btn.redb:hover{background:#a51f1f;}
body.lab .btn:disabled, body.lab .btn:disabled:hover{background:#c9d1db; color:#fff; box-shadow:none; transform:none;}
body.lab .btn:focus-visible, body.lab .toggle:focus-visible, body.lab .seg button:focus-visible{outline:2px solid var(--green); outline-offset:2px;}

/* instrument-panel controls (the gauges themselves stay dark) */
body.lab .switchrow label{color:var(--ink);}
body.lab .toggle{background:var(--mut); box-shadow:none; border-radius:4px; letter-spacing:.8px;}
body.lab .toggle.on{background:var(--green);}
body.lab .toggle.tow{background:#d3670a;}
body.lab .seg{border:1px solid #b9c5d3; border-radius:4px; box-shadow:none;}
body.lab .seg button{background:var(--paper); color:var(--ink);}
body.lab .seg button:hover{background:#e6ebf1;}
body.lab .seg button.on{background:var(--navy); color:#fff;}
body.lab .complabel{color:var(--green-d); letter-spacing:1.4px;}

/* documents (work order, invoice, help) */
body.lab .doc{border:1px solid var(--line); border-top:4px solid var(--green); border-radius:6px; box-shadow:none;}
body.lab .doc h3{color:var(--navy); font-weight:700;}
body.lab .doc td, body.lab .doc th{border-color:var(--line);}
body.lab .doc th{background:var(--paper); color:var(--navy);}
body.lab .doc tr:nth-child(even) td{background:#fafbfc;}
body.lab .doc textarea{border:1px solid #b9c5d3; border-radius:4px; color:var(--ink);}
body.lab .doc textarea:focus{outline:2px solid var(--green); outline-offset:0; border-color:var(--green);}
body.lab .spec{background:var(--paper); border-left-color:var(--navy); border-radius:0 4px 4px 0;}

/* test points + wire chips (inside windows) */
body.lab .tp, body.lab .wirechip{background:var(--paper); border:1px solid #c5cfdb; color:var(--ink); border-radius:4px;}
body.lab .tp:hover, body.lab .wirechip:hover{background:#e6ebf1; border-color:var(--navy);}
body.lab .tp.redp{background:#fdeceb;}
body.lab .tp.blkp{background:#e8eaed;}
body.lab .wirechip b{color:var(--navy);}
body.lab .statustag{border-radius:4px; background:var(--mut);}
body.lab .statustag.disc{background:var(--gold); color:var(--navy);}  /* disconnected = a warning: Signal Yellow, navy text */

/* ---------- modals: level/scenario pickers, scoreboard, record, leaderboard ---------- */
body.lab #modalveil{background:rgba(11,31,51,.62);}
body.lab #modal{border-radius:6px; border:1px solid var(--line); color:var(--ink); box-shadow:0 24px 70px rgba(0,0,0,.45);}
body.lab #modal > h2:first-child{margin:-24px -24px 14px; padding:15px 24px 13px; background:var(--navy); color:#fff;
  font-family:var(--fh); font-size:20px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; border-bottom:3px solid var(--volt); border-radius:5px 5px 0 0;}
body.lab #modal h2{color:var(--navy); font-weight:800;}
body.lab #modal .lvl{background:#fff; border:1px solid var(--line); border-left:4px solid var(--navy); border-radius:6px; min-height:44px;}
body.lab #modal .lvl:hover{border-color:var(--line); border-left-color:var(--green); box-shadow:0 6px 16px rgba(11,31,51,.12);}
body.lab #modal .lvl b{color:var(--navy);}
body.lab #modal .lvl span{color:var(--mut);}
body.lab .scorebig{text-shadow:none; font-weight:800;}
body.lab .scoreline{border-bottom:1px solid var(--line);}

/* ---------- Pete's guide bubble (the Pete art is untouched) ---------- */
body.lab #guide{background:#fff; border:1px solid var(--line); border-left:4px solid var(--volt); border-radius:6px;
  box-shadow:0 10px 30px rgba(0,0,0,.45); backdrop-filter:none;}
body.lab #guidename{color:var(--navy); font-family:var(--fh); font-weight:800; letter-spacing:.1em;}
body.lab #guidename span{color:var(--mut);}
body.lab #guidetext{color:var(--ink);}
body.lab #guidetext b{color:var(--green-d);}
body.lab #guidetext [style*="#ffd43b"]{color:var(--green-d) !important;}     /* gold inline links inside Pete's step text (left as is: the voice clips key on that text) */
body.lab #guideend{color:var(--mut); border-radius:4px;}
body.lab #guideend:hover{color:var(--ink); background:var(--paper);}
body.lab .pvbtn{border-color:var(--line) !important; color:var(--ink) !important; background:var(--paper) !important;}
body.lab .pvbtn:hover, body.lab .pvbtn.talking{border-color:var(--green) !important;}

/* ---------- phone bottom bar ---------- */
body.lab #bottomnav{background:#fff; border-top:1px solid var(--line); box-shadow:0 -2px 10px rgba(0,0,0,.18);}
body.lab #bottomnav .nbtn{color:var(--mut); font-family:var(--fh); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
body.lab #bottomnav .nbtn.open{color:var(--green-d); box-shadow:inset 0 3px 0 var(--green);}

/* email gate (only shown when the Training Center session is missing) */
body.lab #gate{background:var(--navy);}
body.lab #gatecard{background:#fff; border-radius:6px; border-top:4px solid var(--volt);}
body.lab #gatecard h2{color:var(--navy);}
body.lab #gate_email{border:1px solid #b9c5d3; border-radius:4px;}

@media (max-width:760px){
  body.lab #menu{box-shadow:12px 0 30px rgba(0,0,0,.4);}
  body.lab #menu .mbtn, body.lab #menu.collapsed .mbtn{min-height:44px; font-size:14px; padding:9px 10px;}
  body.lab #menu.collapsed h1{padding:12px 12px 12px 14px; justify-content:flex-start;}
  body.lab #menu.collapsed .mbtn:first-of-type{margin-top:1px;}
  body.lab #hamb{width:44px; height:44px; top:8px; left:8px;}
  body.lab #hud{left:60px;}
  body.lab #zoomctl button{width:44px; height:44px;}
  body.lab .win{border-radius:6px 6px 0 0;}
  body.lab .win .bar{padding:0 0 0 14px; min-height:46px;}
  body.lab .win .bar .x, body.lab .win .bar .mn{min-width:44px; min-height:44px; padding:0; font-size:15px; border-radius:0; background:transparent;}
  body.lab .win .bar .x:hover{background:#c92a2a;}
  body.lab .btn, body.lab .tbtn, body.lab .toggle, body.lab .seg button, body.lab .tp, body.lab .wirechip{min-height:44px;}
  body.lab .btn.small{min-height:44px;}
  body.lab .seg button{min-width:44px;}
  body.lab #guidevoice{min-width:44px; min-height:44px; margin:-14px -4px -10px 6px !important;}
  body.lab #modal > h2:first-child{margin:-16px -16px 12px; padding:13px 16px 11px;}
  body.lab #guideend{width:44px; height:44px; top:0; right:0; font-size:14px;}
  body.lab #guide{padding-right:40px;}
}

/* New Work Order picker: scenario progress bubbles (filled = solved, gold = beat Pete, empty = not yet) */
body.lab .bubs{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:8px}
body.lab .bub{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid #9aa8b7;background:#fff;flex:none;vertical-align:-2px}
body.lab .bub.done{background:var(--green);border-color:var(--green)}
body.lab .bub.pete{background:var(--gold);border-color:#B88A0E}
body.lab .bubs em{font-style:normal;font-size:12px;font-weight:700;color:var(--mut);margin-left:4px}
body.lab .bubsum{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:2px 0 10px;padding:9px 12px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--ink)}
body.lab .bubsum span{display:inline-flex;align-items:center;gap:5px;color:var(--mut);font-size:12px}
body.lab .bubsum span .bub{margin-left:6px}
