/* NRPG PULSE · training site · CD 297 restyle (drop-in for deploy/training/public/train.css)
   Written from the CD 297 brief's selector + state inventory. No markup changes required. */
@font-face{font-family:"Instrument Sans";src:url(instrument-sans-700.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --bg:#0c1418;--panel:#141d21;--panel2:#0f171b;--line:#2c3a3f;--line2:#3a4a50;--ink:#eef4f5;--ink2:#d6e0e2;--mut:#9db0b5;--dim:#6f8288;
  --teal:#4ed9b0;--teal-d:oklch(0.62 0.12 178);--teal-bg:#13241f;--teal-line:#2f7a64;
  --amb:#ffcf7a;--amb-bg:#2a2210;--red:#ff8a7a;--red-bg:#2a1512;--red-solid:#d9483a;--gold:#f0c06a;
  --vio:oklch(0.62 0.15 300);--vio-bar:oklch(0.34 0.11 300);--vio-bg:#120f1a;--vio-p:#1d1830;--vio-p2:#161225;--vio-line:#2f2748;--vio-ink:#f4ecff;--vio-mut:#b8a8d8;--vio-dim:#8b80a8;
  --sans:"Instrument Sans",ui-sans-serif,-apple-system,"Segoe UI",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:12px;--r-s:8px;--sh:0 18px 48px rgba(0,0,0,.45);
  color-scheme:dark;accent-color:var(--teal);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.003em;min-height:100vh}
/* one 700 face only: hierarchy comes from size + colour, not weight */
b,strong,h1,h2,h3{font-weight:700}
a{color:oklch(0.82 0.11 180);text-decoration:none}
a:hover{color:oklch(0.9 0.11 180);text-decoration:underline;text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:rgba(78,217,176,.3)}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.lgy-hide{display:none!important}

/* ---------- page shells ---------- */
#lgy-root{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 20px 72px}
.lgy-card{width:100%;max-width:760px;display:flex;flex-direction:column;gap:14px;padding:28px 30px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh)}
.lgy-narrow{max-width:460px}
.lgy-land #lgy-root,.lgy-home #lgy-root,.lgy-gone #lgy-root,.lgy-manage #lgy-root:has(> .lgy-narrow){justify-content:center;background:radial-gradient(900px 520px at 50% -10%,rgba(78,217,176,.07),transparent 70%)}
.lgy-wide{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:18px}
.lgy-wide > .lgy-row:first-child{padding:4px 2px 6px;border-bottom:1px solid var(--line)}
.lgy-wide > .lgy-row:first-child .lgy-title{font-size:20px;margin-right:auto}

/* ---------- type helpers ---------- */
.lgy-title,.lgy-card h1{margin:0;font-size:26px;line-height:1.2;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.lgy-muted{color:var(--mut);margin:0;text-wrap:pretty}
.lgy-dim{color:var(--dim)}
.lgy-small{font-size:13px}
.lgy-mono{font-family:var(--mono);letter-spacing:.04em}
.lgy-eyebrow,.lgy-eyebrow2,.lgy-sec,.lgy-sec2{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.lgy-eyebrow{color:var(--vio-mut)}
.lgy-eyebrow2{color:var(--teal)}
.lgy-sec{color:var(--mut);display:block}
.lgy-sec2{color:var(--ink2)}
.lgy-good{color:var(--teal)}
.lgy-warn{color:var(--amb)}
.lgy-err{margin:0;min-height:1.4em;color:var(--red);font-size:13.5px}
.lgy-err:empty{min-height:1.4em}
.lgy-dev{margin:0;padding:6px 10px;border:1px dashed var(--line2);border-radius:var(--r-s);font-family:var(--mono);font-size:12px;color:var(--amb)}
.lgy-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.lgy-row2{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.lgy-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lgy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px}

/* ---------- logos ---------- */
.lgy-brandline{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.pulse-logo{--s:36px;--n:#4fb6e3;--p:oklch(0.95 0.008 210);--d:oklch(0.78 0.13 178);display:inline-flex;flex-direction:column;gap:2px;line-height:1}
.pulse-logo.pl-lg{--s:46px}
.pulse-logo.pl-light{--n:#2a8fbd;--p:#10242b}
.pl-n{display:flex;gap:calc(var(--s)*.16);padding-left:2px;font-size:calc(var(--s)*.26);letter-spacing:.06em;color:var(--n)}
.pl-p{font-size:var(--s);letter-spacing:-.035em;color:var(--p)}
.pl-dot{color:var(--d)}
.pulse-rail{display:inline-flex;flex-direction:column;align-items:center;line-height:1;gap:1px}
.pulse-rail .pr-n{font-size:7.5px;letter-spacing:.18em;color:#4fb6e3}
.pulse-rail .pr-p{font-size:20px;letter-spacing:-.03em;color:oklch(0.95 0.008 210)}
.pulse-rail .pr-p i{font-style:normal;color:oklch(0.78 0.13 178)}
.pulse-rail.pr-big .pr-n{font-size:9px}
.pulse-rail.pr-big .pr-p{font-size:28px}
.lgy-brand{font-size:20px;letter-spacing:-.03em;color:oklch(0.95 0.008 210)}
.lgy-brand span{color:oklch(0.78 0.13 178)}

/* ---------- invite card (entry + manager sign-in) ---------- */
.lgy-invite{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--r);background:linear-gradient(180deg,#13241f,#0f1b18);border:1px solid var(--teal-line)}
.lgy-invite-t{font-size:21px;letter-spacing:-.015em;color:var(--ink)}
.lgy-invite-d{color:#b8d4cc;font-size:14px;text-wrap:pretty}

/* ---------- forms ---------- */
form{display:flex;flex-direction:column;gap:12px;margin:0}
label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--ink2)}
label small{color:var(--dim);font-size:12px}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select{width:100%;min-height:44px;padding:9px 12px;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;color:var(--ink);font-size:15px;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#5f7075}
input:not([type=checkbox]):not([type=radio]):focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(78,217,176,.16)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;margin:0;accent-color:var(--teal);flex:none}
input[type=date],input[type=number]{color-scheme:dark}
input[type=file]{font-size:13.5px;color:var(--mut)}
input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;border-radius:9px;border:1px solid var(--line2);background:#1a2226;color:var(--ink);cursor:pointer}
input[type=file]::file-selector-button:hover{border-color:var(--teal)}
#tc.lgy-mono{font-size:26px;letter-spacing:.5em;text-align:center;padding-left:.5em}
.lgy-check{flex-direction:row;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2);font-size:13.5px;line-height:1.45;cursor:pointer}
.lgy-check:has(input:checked){border-color:var(--teal-line);background:var(--teal-bg)}
.lgy-check input{margin-top:2px}
.lgy-solo{align-self:flex-start}
.lgy-via{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px 16px;min-width:0}
.lgy-via legend{padding:0;margin-bottom:6px;font-size:13.5px;color:var(--ink2)}
.lgy-via label{flex-direction:row;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer}
.lgy-via label:has(input:checked){border-color:var(--teal);background:var(--teal-bg)}

/* languages */
.lgy-lang{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel2)}
.lgy-lopts{display:flex;flex-wrap:wrap;gap:6px}
.lgy-lopt{display:inline-flex;align-items:baseline;gap:6px;min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--line2);background:transparent;cursor:pointer;font-size:13.5px}
.lgy-lopt span{font-size:11.5px;color:var(--dim)}
.lgy-lopt:hover:not(:disabled){border-color:var(--teal);background:var(--teal-bg)}
.lgy-lopt.on{border-color:var(--teal-line);background:var(--teal-bg);color:var(--teal)}
.lgy-lopt:disabled{cursor:default;opacity:.55}
.lgy-lopt.on:disabled{opacity:1}
#lchosen{display:flex;flex-direction:column;gap:6px}
#lchosen:empty{display:none}
.lgy-lchip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--teal-line)}
.lgy-lchip > b{flex:1 1 150px;font-size:14px}
.lgy-lchip > span{display:flex;gap:2px;padding:2px;border-radius:8px;background:var(--panel2);border:1px solid var(--line)}
.lgy-lchip > span button{min-height:30px;padding:3px 10px;border:0;border-radius:6px;background:transparent;color:var(--mut);font-size:12.5px;cursor:pointer}
.lgy-lchip > span button.on{background:#1f3a35;color:var(--ink)}
.lgy-lchip .x{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--mut);cursor:pointer;font-size:16px;line-height:1}
.lgy-lchip .x:hover{border-color:var(--red);color:var(--red)}

/* ---------- buttons ---------- */
.lgy-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:11px;border:1px solid transparent;background:var(--vio);color:#fff;font-size:15px;line-height:1.2;text-align:center;cursor:pointer;text-decoration:none;transition:filter .15s,transform .08s,border-color .15s,background .15s}
.lgy-btn:hover{filter:brightness(1.1);text-decoration:none;color:#fff}
.lgy-btn:active{transform:translateY(1px)}
.lgy-btn:disabled,.lgy-btn[disabled]{opacity:.45;cursor:not-allowed;filter:none;transform:none}
.lgy-teal{background:var(--teal-d);color:#06110f}
.lgy-teal:hover{color:#06110f}
.lgy-ghost{background:transparent;border-color:var(--line2);color:var(--ink)}
.lgy-ghost:hover{border-color:var(--teal);color:var(--ink);background:rgba(78,217,176,.05);filter:none}
.lgy-btn.lgy-small{min-height:34px;padding:6px 12px;font-size:13px;border-radius:9px}
form > .lgy-btn,.lgy-narrow > .lgy-btn,.lgy-narrow > a.lgy-btn{width:100%}
kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:5px;border:1px solid rgba(255,255,255,.22);border-bottom-width:2px;background:rgba(255,255,255,.06);font-family:var(--mono);font-size:10.5px;line-height:1;color:inherit;opacity:.85}

/* ---------- sign-in code boxes ---------- */
.lgy-digits{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:6px 0 2px}
.lgy-digits #otp{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:2;cursor:text;font-size:16px;min-height:0;padding:0;border:0}
.lgy-digits i{display:flex;align-items:center;justify-content:center;height:58px;border-radius:11px;background:var(--panel2);border:1px solid var(--line2);font-style:normal;font-family:var(--mono);font-size:26px;color:var(--ink)}
.lgy-digits i.cur{border-color:var(--teal);box-shadow:0 0 0 3px rgba(78,217,176,.16)}
.lgy-digits i.cur::after{content:"";width:2px;height:26px;background:var(--teal);animation:lgy-blink 1s steps(1) infinite}
@keyframes lgy-blink{50%{opacity:0}}
#msg:empty{display:none}

/* ---------- welcome / dashboard ---------- */
.lgy-agentcard{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-radius:var(--r);overflow:hidden;background:var(--line);border:1px solid var(--line)}
.lgy-agentcard > div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--panel2)}
.lgy-agentcard span{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.lgy-agentcard b{font-size:19px;color:var(--ink)}
.lgy-agentcard b.lgy-mono{color:var(--teal);letter-spacing:.08em}
.lgy-chips{display:flex;flex-wrap:wrap;gap:6px}
.lgy-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--line2);font-size:12.5px;color:var(--mut);white-space:nowrap}
.lgy-chip b{color:var(--ink)}
.lgy-chip.good{border-color:var(--teal-line);color:var(--teal);background:var(--teal-bg)}
.lgy-chip.bad{border-color:#6a3530;color:var(--red);background:var(--red-bg)}
.lgy-row3{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r);background:var(--panel2);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:border-color .15s,background .15s}
.lgy-row3:hover{border-color:var(--teal);background:#111e1c;text-decoration:none;color:var(--ink)}
.lgy-row3 .mk{width:30px;height:30px;border-radius:9px;border:1.5px solid var(--line2);display:flex;align-items:center;justify-content:center;color:transparent;font-size:15px}
.lgy-row3 .mk.on{background:var(--teal);border-color:var(--teal);color:#06110f}
.lgy-row3 .tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.lgy-row3 .tx > b{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgy-row3 .tx > span{font-size:13px;color:var(--mut)}
.lgy-row3 .go{padding:6px 12px;border-radius:9px;background:#1a2226;border:1px solid var(--line2);font-size:13px;color:var(--ink)}
.lgy-row3:hover .go{background:var(--teal-d);border-color:var(--teal-d);color:#06110f}

/* ---------- how it works ---------- */
.lgy-play .lgy-card:not(.lgy-narrow){max-width:820px}
.lgy-how{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lgy-how > div{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:var(--r);background:var(--vio-p2);border:1px solid var(--vio-line);color:var(--vio-mut);font-size:13.5px;line-height:1.5}
.lgy-how > div b{color:var(--vio-ink);font-size:15px}
.lgy-keys{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 14px;border-radius:var(--r);border:1px dashed var(--line2);font-size:13px;color:var(--mut)}
.lgy-keys > b{color:var(--ink2)}
.lgy-keys span{display:inline-flex;align-items:center;gap:4px}
.lgy-recnote{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px 14px;border-radius:var(--r);background:var(--red-bg);border:1px solid #6a3530;color:#ffc9bf;font-size:13.5px}
.lgy-recnote .lgy-btn{margin-left:auto}
.lgy-speak{flex-direction:row;align-items:center;gap:8px;font-size:13.5px;color:var(--ink2);cursor:pointer}

/* hear-it chips */
.lgy-palist{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lgy-palist > .lgy-sec{flex:1 1 100%}
.lgy-pa{display:inline-flex;align-items:baseline;gap:6px;min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--teal-line);background:var(--teal-bg);color:var(--ink);font-size:13.5px;cursor:pointer}
.lgy-pa small{font-family:var(--mono);font-size:11.5px;color:#8fe3c8}
.lgy-pa:hover{border-color:var(--teal);background:#183329}
.lgy-pa-i{min-height:0;width:22px;height:22px;padding:0;justify-content:center;align-items:center;font-size:9px;vertical-align:middle;margin-left:4px}

/* ---------- practice frame (call + feedback) ---------- */
.lgy-play:has(.lgy-frame) #lgy-root{padding:18px 18px 40px;background:var(--vio-bg)}
.lgy-frame{position:relative;width:100%;max-width:1280px;display:flex;flex-direction:column;border:2px solid var(--vio);border-radius:18px;background:var(--vio-bg);box-shadow:0 0 0 6px rgba(140,100,220,.08),var(--sh);overflow:clip}
.lgy-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--vio-bar);color:var(--vio-ink)}
.lgy-bar-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#e4d8ff;padding:3px 8px;border-radius:5px;background:rgba(0,0,0,.25)}
.lgy-bar-t{flex:1 1 200px;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgy-bar-n{font-family:var(--mono);font-size:12px;color:#e4d8ff;white-space:nowrap}
.lgy-bar .lgy-speak{color:var(--vio-ink);font-size:13px}
.lgy-bar .lgy-dim.lgy-small{flex:1 1 100%;order:9;color:#ffd6a0;font-size:12.5px}
.lgy-bar .lgy-dim.lgy-small::before{content:"⚠ ";}
.lgy-end{min-height:34px;padding:6px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.22);color:#fff;font-size:13px;cursor:pointer;white-space:nowrap}
.lgy-end:hover{border-color:var(--red);background:var(--red-bg);color:var(--red)}

.lgy-steps{display:flex;gap:4px;padding:10px 16px 0}
.lgy-step{flex:1 1 0;display:flex;flex-direction:column;gap:5px;min-width:0}
.lgy-step .bar{height:4px;border-radius:2px;background:var(--vio-line)}
.lgy-step .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--vio-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgy-step.done .bar{background:var(--vio)}
.lgy-step.done .lbl{color:var(--vio-mut)}
.lgy-step.cur .bar{background:var(--teal);box-shadow:0 0 8px rgba(78,217,176,.5)}
.lgy-step.cur .lbl{color:var(--ink)}

.lgy-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;padding:14px 16px 16px;align-items:start}
.lgy-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.lgy-col > .lgy-row{justify-content:space-between}
.lgy-col > .lgy-row .lgy-dim{font-size:12px}
.lgy-say{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:14px;background:var(--vio-p);border:1px solid var(--vio-line)}
.lgy-say .lgy-sec{color:var(--vio-mut)}
.lgy-line{font-size:21px;line-height:1.55;color:var(--vio-ink);text-wrap:pretty}
.lgy-instr{display:inline-block;margin:0 2px;padding:1px 7px;border-radius:5px;background:#3a2a10;border:1px solid #6b5220;color:var(--amb);font-family:var(--mono);font-size:.62em;letter-spacing:.06em;vertical-align:.18em}
.lgy-hard{display:inline;padding:0 4px;border-radius:5px;background:rgba(78,217,176,.12);border-bottom:2px dotted var(--teal);color:#fff;white-space:nowrap}
.lgy-hard small{margin-left:5px;font-family:var(--mono);font-size:.6em;color:#8fe3c8;vertical-align:.15em}
.lgy-note{padding:10px 12px;border-radius:10px;background:#1c2414;border:1px solid #3f5226;color:#d5e8b8;font-size:13.5px}
.lgy-follow{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:#13241f;border:1.5px solid var(--teal);box-shadow:0 0 0 4px rgba(78,217,176,.08)}
.lgy-follow .lgy-sec2{color:var(--teal)}
.lgy-follow > div{font-size:18px;line-height:1.55;color:var(--ink);text-wrap:pretty;max-height:40vh;overflow-y:auto}
.lgy-follow > button{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:8px 16px;border-radius:10px;border:0;background:var(--teal-d);color:#06110f;font-size:14.5px;cursor:pointer}

/* answers */
.lgy-answers{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px}
.lgy-ans{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border-radius:11px;border:1px solid var(--vio-line);background:var(--vio-p2);color:var(--vio-ink);text-align:left;font-size:15px;cursor:pointer;transition:border-color .12s,background .12s,transform .08s}
.lgy-ans .k{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);font-family:var(--mono);font-size:12.5px;color:var(--vio-mut)}
.lgy-ans .tx{min-width:0;text-wrap:pretty}
.lgy-ans .to{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--vio-dim);white-space:nowrap}
.lgy-ans:hover{border-color:var(--teal);background:#152320}
.lgy-ans:hover .k{border-color:var(--teal);color:var(--teal)}
.lgy-ans:active{transform:scale(.995)}
.lgy-ans.on{border-color:var(--teal);background:var(--teal-bg);box-shadow:inset 3px 0 0 var(--teal)}
.lgy-ans.on .k{background:var(--teal);border-color:var(--teal);color:#06110f}
.lgy-nav{display:flex;gap:8px;flex-wrap:wrap}
#start{align-self:flex-start}

/* status codes */
.lgy-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.lgy-code{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:13.5px;text-align:left;cursor:pointer}
span.lgy-code{cursor:default}
.lgy-code .dot{width:9px;height:9px;border-radius:50%;background:var(--vio-mut)}
.lgy-code .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgy-code .ky{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--line2);color:var(--mut)}
button.lgy-code:hover{border-color:var(--teal);background:#122220}
button.lgy-code:hover .dot{background:var(--teal)}

/* right column */
.lgy-voter{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.lgy-voter .lgy-sec{margin-bottom:4px;color:var(--vio-mut)}
.lgy-voter .nm{display:flex;align-items:center;gap:8px;font-size:20px;letter-spacing:-.01em;margin-bottom:6px}
.lgy-voter .r{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px;padding:5px 0;border-top:1px solid #1d282c;font-size:14px}
.lgy-voter .r span{color:var(--mut);font-size:12.5px}
.lgy-voter .r span::first-letter{text-transform:uppercase}
.lgy-voter .r b{overflow-wrap:anywhere}
.lgy-spk{width:28px;height:28px;border-radius:50%;border:1px solid var(--teal-line);background:var(--teal-bg);color:var(--teal);cursor:pointer;font-size:12px}
.lgy-convo{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;background:var(--panel2);border:1px solid var(--line)}
.lgy-convo .b{display:flex;flex-direction:column;gap:2px;max-width:86%;padding:8px 12px;font-size:14px;line-height:1.4}
.lgy-convo .b.voter{align-self:flex-start;border-radius:14px 14px 14px 4px;background:#1f2a2f;color:var(--ink)}
.lgy-convo .b.you{align-self:flex-end;border-radius:14px 14px 4px 14px;background:var(--vio-p);border:1px solid var(--vio-line);color:var(--vio-ink)}
.lgy-convo .who{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.lgy-convo .b.you .who{color:var(--vio-dim);text-align:right}

/* hard words */
.lgy-pron{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:#1a1810;border:1.5px solid #5c4a1c;transition:box-shadow .2s}
.lgy-pron.nudge{border-color:var(--amb);box-shadow:0 0 0 4px rgba(255,207,122,.25);animation:lgy-shake .35s ease-in-out 2}
@keyframes lgy-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.lgy-pron .w{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #2e2a1a}
.lgy-pron .w i{font-style:normal;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid #6b5a2a;font-size:12px;color:var(--amb)}
.lgy-pron .w b{font-size:15px;margin-right:4px}
.lgy-pron .w.ok i{background:var(--teal);border-color:var(--teal);color:#06110f}
.lgy-pron .w.bad i{background:var(--red-solid);border-color:var(--red-solid);color:#fff}
.lgy-opt{min-height:36px;padding:5px 12px;border-radius:9px;border:1px solid #5c4a1c;background:transparent;color:#f3e6c4;font-family:var(--mono);font-size:13px;cursor:pointer}
.lgy-opt:hover:not(:disabled){border-color:var(--amb);background:#2a2210}
.lgy-opt:disabled{opacity:.4;cursor:default}
.lgy-w-ok .lgy-opt.pick,.w.ok .lgy-opt.pick{opacity:1;border-color:var(--teal);background:var(--teal-bg);color:var(--teal)}
.w.bad .lgy-opt.pick{opacity:1;border-color:var(--red);background:var(--red-bg);color:var(--red)}
.lgy-opt.pick{opacity:1}

.lgy-legend{display:flex;flex-wrap:wrap;gap:6px 18px;padding:10px 16px;border-top:1px solid var(--vio-line);background:rgba(0,0,0,.18);font-size:12.5px;color:var(--vio-dim)}
.lgy-legend span{display:inline-flex;align-items:center;gap:4px}
.lgy-legend kbd{color:var(--vio-mut)}

/* interruption box */
.lgy-comp{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;background:#1a1626;border:1.5px solid var(--amb);box-shadow:0 0 0 4px rgba(255,207,122,.1)}
.lgy-comp .lgy-sec2{color:var(--amb)}
.lgy-q{font-size:18px;line-height:1.45;color:var(--vio-ink)}
.lgy-q::before{content:"“";color:var(--amb)}
.lgy-q::after{content:"”";color:var(--amb)}
.lgy-comp .lgy-ans{grid-template-columns:28px minmax(0,1fr)}

/* overlays */
.lgy-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(6,8,14,.72);backdrop-filter:blur(3px)}
.lgy-modal .box{width:100%;max-width:520px;display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:18px;background:var(--vio-p);border:1.5px solid var(--vio);box-shadow:var(--sh);text-align:center;align-items:center}
.lgy-modal .box .lgy-sec2{color:var(--vio-mut)}
.lgy-modal .big{font-size:26px;letter-spacing:-.015em;color:var(--vio-ink);text-wrap:balance}
.lgy-modal .sms{align-self:stretch;text-align:left;padding:12px 14px;border-radius:16px 16px 16px 4px;background:#e1e6e4;color:#14201c;font-size:15px;line-height:1.45}
.lgy-modal .lgy-dim{color:var(--vio-mut);font-size:14px;text-wrap:pretty}
.lgy-modal .lgy-btn{min-width:200px}
.lgy-spin{width:40px;height:40px;border-radius:50%;border:3px solid var(--vio-line);border-top-color:var(--teal);animation:lgy-spin .8s linear infinite}
@keyframes lgy-spin{to{transform:rotate(360deg)}}

/* recording pill: a slim strip pinned ABOVE the page, never on a control (heads-up 1) */
.lgy-recdot{display:none}
.lgy-recdot.on{display:flex;position:fixed;top:0;left:0;right:0;z-index:60;height:24px;align-items:center;justify-content:center;gap:6px;background:#5a1712;color:#ffd0c8;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #8a2a20;pointer-events:none}
body:has(.lgy-recdot.on){padding-top:24px}
body:has(.lgy-recdot.on) .lgy-modal{top:24px}
.lgy-recdot.on{animation:lgy-rec 2s ease-in-out infinite}
@keyframes lgy-rec{50%{background:#721e17}}

/* ---------- feedback ---------- */
.lgy-fb{display:flex;flex-direction:column;gap:14px;padding:20px 20px 22px;max-width:820px;width:100%;margin:0 auto}
.lgy-ring{flex:none;width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#24333a}
.lgy-ring > div{width:80px;height:80px;border-radius:50%;background:var(--vio-bg);display:flex;align-items:center;justify-content:center}
.lgy-resultcard .lgy-ring > div{background:var(--panel)}
.lgy-ring span{font-size:30px;letter-spacing:-.03em;color:var(--ink)}
.lgy-fbt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.lgy-fbt > b{font-size:24px;letter-spacing:-.015em;color:var(--ink)}
.lgy-fbt > span{color:var(--mut)}
.lgy-fbt b.big{font-size:28px}
.lgy-fbt b.good{color:var(--teal)}
.lgy-fbt b.warn{color:var(--amb)}
.lgy-fb > .lgy-row,.lgy-resultcard > .lgy-row{gap:18px;flex-wrap:nowrap}
.lgy-items{display:flex;flex-direction:column;gap:6px}
.lgy-items .it{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;padding:11px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.lgy-items .it i{font-style:normal;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px}
.lgy-items .it > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.lgy-items .it b{font-size:15px}
.lgy-items .it span{font-size:13.5px;color:var(--mut);text-wrap:pretty}
.lgy-items .it.ok i{background:var(--teal-bg);border:1px solid var(--teal-line);color:var(--teal)}
.lgy-items .it.bad{border-color:#5a2d28;background:#1c1414}
.lgy-items .it.bad i{background:var(--red-bg);border:1px solid #6a3530;color:var(--red)}
.lgy-items .it.info i{background:#18232a;border:1px solid var(--line2);color:var(--mut);font-family:var(--mono)}
.lgy-pronrev{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:#1a1810;border:1px solid #5c4a1c}
.lgy-pronrev > div{display:flex;align-items:baseline;flex-direction:row-reverse;justify-content:flex-end;gap:10px;font-family:var(--mono);font-size:14px;color:#f3e6c4}
.lgy-pronrev > div b{font-family:var(--sans);font-size:15px;color:var(--ink)}
#nextcall{min-width:200px}

/* ---------- final result ---------- */
.lgy-resultcard{display:flex;flex-direction:column;gap:14px}
.lgy-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.lgy-areas .area{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.lgy-areas .area .lgy-row{justify-content:space-between;flex-wrap:nowrap}
.lgy-areas .area b{font-size:14px}
.lgy-areas .area .lgy-row span{font-family:var(--mono);font-size:15px}
.meter{height:6px;border-radius:3px;background:#24333a;overflow:hidden}
.meter i{display:block;height:100%;border-radius:3px;background:var(--teal)}
.area.mid .meter i{background:var(--amb)}
.area.bad .meter i{background:var(--red)}
.area.ok .lgy-row span{color:var(--teal)}
.area.mid .lgy-row span{color:var(--amb)}
.area.bad .lgy-row span{color:var(--red)}
.lgy-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.badge{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;padding:12px;border-radius:12px;background:linear-gradient(135deg,#2a2210,#1a160c);border:1px solid #6b5220}
.badge .i{grid-row:1/3;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffe2a0,#e0a840);color:#2a1d05;font-size:18px}
.badge b{font-size:14px;color:#ffe9bf}
.badge > span:last-child{font-size:12.5px;color:#c9b588}
.lgy-miss{border-radius:12px;border:1px solid var(--line);background:var(--panel2)}
.lgy-miss summary{display:flex;align-items:center;gap:8px;padding:12px 14px;cursor:pointer;list-style:none;font-size:15px;color:var(--amb)}
.lgy-miss summary::-webkit-details-marker{display:none}
.lgy-miss summary::before{content:"▸";transition:transform .15s}
.lgy-miss[open] summary::before{transform:rotate(90deg)}
.lgy-miss ul{margin:0;padding:0 16px 14px 34px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink2)}

/* ---------- manager ---------- */
.lgy-manage .lgy-wide .lgy-card{max-width:none;padding:22px 24px;box-shadow:none}
.lgy-pv{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.lgy-pv .lgy-sec{color:var(--teal)}
.lgy-pv .tx{font-size:15px;line-height:1.55;color:var(--ink);white-space:pre-wrap}
.lgy-pv ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}
.lgy-pv li::marker{font-family:var(--mono);color:var(--dim);font-size:12px}
.lgy-ans-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.lgy-ans-row b{font-size:14.5px}
.lgy-route{font-family:var(--mono);font-size:11.5px;color:var(--teal)}
.lgy-fu{margin-top:4px;padding:8px 10px;border-left:2px solid var(--teal);background:#122220;border-radius:0 8px 8px 0;font-size:13.5px;line-height:1.5;color:var(--ink2)}
.lgy-fu > span:first-child{display:block;margin-bottom:2px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.lgy-mt{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-radius:14px;background:var(--panel2);border:1px solid var(--line)}
.lgy-mt + .lgy-mt{margin-top:4px}
.lgy-mt > .lgy-row:first-child b{font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.lgy-bigcode{font-size:28px;letter-spacing:.3em;color:var(--teal);padding:2px 10px;border-radius:9px;background:var(--teal-bg);border:1px solid var(--teal-line)}
.lgy-tbl{width:100%;border-collapse:collapse;font-size:14px}
.lgy-tbl th{text-align:left;padding:8px 10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--mut);border-bottom:1px solid var(--line2)}
.lgy-tbl td{padding:8px 10px;border-bottom:1px solid #1d282c;vertical-align:middle}
.lgy-tbl td:last-child{display:flex;gap:6px;flex-wrap:wrap}
.lgy-tbl tbody tr:hover td{background:#111c1f}
.lgy-recs:empty{display:none}
.lgy-recs{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--teal-line)}
.lgy-recrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px solid #1d282c;font-size:13.5px}
.lgy-recrow > span,.lgy-recrow > b{flex:1 1 200px;min-width:0}
audio{height:34px;max-width:100%;color-scheme:dark;border-radius:999px}
.lgy-pronm{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px dashed var(--line2)}
.pstat{display:inline-flex;align-items:center;gap:6px}
.pstat audio{height:30px}

/* ---------- not open ---------- */
.lgy-gone .lgy-card,.lgy-card:has(> .lgy-title + .lgy-muted + a.lgy-ghost:last-child){text-align:left}

/* ---------- phone ---------- */
@media (max-width:640px){
  #lgy-root{padding:16px 12px 48px}
  .lgy-land #lgy-root,.lgy-home #lgy-root,.lgy-gone #lgy-root{justify-content:flex-start;padding-top:24px}
  .lgy-card{padding:20px 16px;border-radius:14px}
  .lgy-title,.lgy-card h1{font-size:22px}
  .lgy-two,.lgy-how{grid-template-columns:1fr}
  .lgy-agentcard{grid-template-columns:1fr}
  .lgy-digits{gap:6px}
  .lgy-digits i{height:52px;font-size:22px}
  .lgy-btn{min-height:48px}
  .lgy-btn.lgy-small{min-height:40px}
  .lgy-play:has(.lgy-frame) #lgy-root{padding:0}
  .lgy-frame{border-radius:0;border-width:0 0 0 0;border-top:3px solid var(--vio);box-shadow:none;min-height:100vh}
  .lgy-bar{gap:8px;padding:8px 12px}
  .lgy-bar-k{display:none}
  .lgy-bar-t{flex:1 1 100%;order:-1;font-size:13px}
  .lgy-bar .lgy-speak{margin-right:auto}
  .lgy-steps{padding:8px 12px 0}
  .lgy-step .lbl{font-size:9px}
  .lgy-grid{grid-template-columns:1fr;padding:12px;gap:12px}
  .lgy-line{font-size:19px}
  .lgy-answers{grid-template-columns:1fr}
  .lgy-ans{min-height:52px}
  .lgy-codes{grid-template-columns:1fr 1fr}
  .lgy-code{min-height:46px}
  .lgy-voter .r{grid-template-columns:100px minmax(0,1fr)}
  .lgy-nav .lgy-btn{flex:1}
  .lgy-modal{padding:16px;align-items:flex-end}
  .lgy-modal .box{border-radius:18px 18px 12px 12px}
  .lgy-fb{padding:14px 12px}
  .lgy-ring{width:84px;height:84px}
  .lgy-ring > div{width:64px;height:64px}
  .lgy-ring span{font-size:24px}
  .lgy-fbt b.big,.lgy-fbt > b{font-size:21px}
  .lgy-actions > .lgy-btn{flex:1 1 100%}
  #nextcall{width:100%}
}
@media (max-width:640px){
  .lgy-wide{gap:12px}
  .lgy-manage .lgy-wide .lgy-card{padding:16px 14px}
  .lgy-wide > .lgy-row:first-child .lgy-title{flex:1 1 100%;order:2}
  .lgy-tbl{display:block;overflow-x:auto;white-space:nowrap}
  .lgy-pv .lgy-codes{grid-template-columns:1fr 1fr}
  .lgy-bigcode{font-size:24px}
  .lgy-mt > .lgy-row:nth-child(3) .lgy-btn{flex:1 1 auto}
}
@media (hover:none){
  .lgy-ans:hover,.lgy-row3:hover,button.lgy-code:hover{background:inherit}
  .lgy-ans:active{border-color:var(--teal);background:#152320}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* CC 2026-11-02: live rules the CD 297 file had no selector for (pasted unchanged, per NOTES_FOR_CC step 2).
   .lgy-pron .t i colour left out on purpose: CD's .lgy-pron .w i draws the mark. */
.lgy-next{align-self:flex-start}
.lgy-noscript{color:var(--amb);padding:16px}
.lgy-pron .t{display:flex;gap:8px;font-size:15px}
.lgy-pron .o{display:flex;gap:6px;flex-wrap:wrap}
/* CC: status-code names wrap instead of cutting off ("Answering Machine", "Complete Alternate") — a trainee must read the full code. */
.lgy-code .nm{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}

/* Manager rows, archive and recording in the script view. */
.lgy-mt > .lgy-mrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;list-style:none;margin:-4px 0;padding:4px 0}
.lgy-mrow::-webkit-details-marker,.lgy-arch > summary::-webkit-details-marker{display:none}
.lgy-mrow::before,.lgy-arch > summary::before{content:"▸";color:var(--teal)}
.lgy-mt[open] > .lgy-mrow::before,.lgy-arch[open] > summary::before{content:"▾"}
.lgy-mrow > b{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.lgy-mrowcode{padding:3px 8px;border:1px solid var(--teal-line);border-radius:6px;color:var(--teal);background:var(--teal-bg);letter-spacing:.15em}
.lgy-mbody{display:flex;flex-direction:column;gap:12px;padding-top:16px}
.lgy-mt:not([open]) > .lgy-mbody{display:none}
.lgy-arch{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.lgy-arch > summary{display:flex;gap:8px;cursor:pointer;color:var(--mut);padding:8px 0;list-style:none}
.lgy-arch > .lgy-mt{margin-top:8px}
.lgy-mconfirm{padding:12px;border:1px solid var(--amb);border-radius:10px;background:var(--panel)}
.lgy-scriptview{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.lgy-scriptview.lgy-hide,.lgy-mconfirm.lgy-hide{display:none}
.lgy-scriptword{display:inline;padding:0;border:0;border-radius:3px;background:none;color:inherit;font:inherit;cursor:pointer;text-align:inherit}
.lgy-scriptword:hover,.lgy-scriptword:focus-visible{color:var(--teal);background:var(--teal-bg);outline:1px solid var(--teal-line)}
.lgy-modelread{display:flex;flex-direction:column;gap:8px;padding-top:8px;margin-top:8px;border-top:1px dashed var(--line)}
.lgy-modelsaved{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lgy-modelchip{margin-left:10px;font-size:12px;vertical-align:middle}
@media(max-width:640px){.lgy-mrow > b{flex-basis:calc(100% - 30px)}.lgy-mbody > .lgy-row .lgy-btn{flex:1 1 auto}.lgy-modelread .lgy-actions{align-items:flex-start}.lgy-modelchip{margin-left:6px}.lgy-mt{padding:12px}}
/* TCX: trainee rehearsal and local microphone listening, using CD's existing tokens. */
.lgy-rehearsal{display:flex;flex-direction:column;gap:16px}
.lgy-rehearsal h1,.lgy-rehearsal h2,.lgy-rehearsal p{margin:0}
.lgy-rehearsal-choices{display:flex;flex-direction:column;gap:12px}
.lgy-rehearsal-choice{padding:14px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel2)}
.lgy-rehearsal-choice .lgy-follow,.lgy-rehearsal-choice .lgy-note{margin-top:10px}
.lgy-rehearsal .lgy-nav{margin-top:12px;justify-content:space-between}
.lgy-rehearsal-word .o{display:flex;flex-wrap:wrap;gap:8px}
.lgy-pron-status{display:block;flex-basis:100%;color:var(--mut);font-size:13px}
.lgy-listening{margin:0;padding:10px 12px;background:var(--teal-bg);border:1px solid var(--teal-line);border-radius:var(--r-s);color:var(--teal)}

/* CD 298 */
/* ===== CD 298 · Training manager + center manager inner page ===== */
/* Append to train.css (CD 297). Only NEW classes (prefix lgm-). Nothing renamed. Phone layout = container query on #lgy-root (the parent of .lgm-app), so it follows the page width and the 390 preview frames. */
#lgy-root:has(> .lgm-app){container-type:inline-size;display:block}
#lgy-root:has(> .lgm-app) > .lgm-app{margin:0 auto}
.lgm-app{width:100%;max-width:1320px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;min-height:calc(100vh - 80px);border:1px solid var(--line);border-radius:16px;overflow:clip;background:var(--panel2)}
.lgy-manage #lgy-root:has(.lgm-app){padding:20px 20px 48px}
/* rail */
.lgm-rail{display:flex;flex-direction:column;gap:4px;padding:16px 12px;background:#0b1316;border-right:1px solid var(--line)}
.lgm-rail .pulse-logo{margin:2px 6px 14px}
.lgm-who{display:flex;flex-direction:column;gap:2px;margin:0 6px 12px;padding:10px;border-radius:10px;background:var(--panel);border:1px solid var(--line);font-size:12.5px;color:var(--mut)}
.lgm-who b{font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgm-role{align-self:flex-start;margin-top:4px;padding:1px 8px;border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--teal-line);color:var(--teal);background:var(--teal-bg)}
.lgm-role.center{border-color:#4a4070;color:var(--vio-mut);background:var(--vio-p2)}
.lgm-tab{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;border-radius:9px;color:var(--ink2);font-size:14px;text-decoration:none;border:1px solid transparent}
.lgm-tab:hover{background:#121c1f;color:var(--ink);text-decoration:none}
.lgm-tab.on{background:var(--teal-bg);border-color:var(--teal-line);color:var(--ink)}
.lgm-tab i{font-style:normal;width:20px;text-align:center;color:var(--mut)}
.lgm-tab.on i{color:var(--teal)}
.lgm-tab .n{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dim)}
.lgm-rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:10px 6px 0;border-top:1px solid var(--line)}
/* main */
.lgm-main{display:flex;flex-direction:column;gap:16px;padding:20px 24px 32px;min-width:0}
.lgm-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.lgm-head .lgy-title{margin-right:auto;font-size:24px}
.lgm-crumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.lgm-crumb a{color:var(--teal)}
.lgm-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lgm-search{min-height:38px!important;width:220px!important;font-size:14px!important}
.lgm-select{min-height:38px!important;width:auto!important;font-size:14px!important;padding:6px 10px!important}
.lgm-pills{display:flex;flex-wrap:wrap;gap:4px;padding:3px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}
.lgm-pills button{min-height:32px;padding:4px 12px;border:0;border-radius:7px;background:transparent;color:var(--mut);font-size:13px;cursor:pointer}
.lgm-pills button.on{background:#1f3a35;color:var(--ink)}
.lgm-pills .n{font-family:var(--mono);font-size:11px;color:var(--dim);margin-left:4px}
/* training cards */
.lgm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}
.lgm-card{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line);min-width:0}
.lgm-card:hover{border-color:var(--line2)}
.lgm-card.off{opacity:.85}
.lgm-card.ended{background:#11181b}
.lgm-card-top{display:flex;align-items:flex-start;gap:10px;min-width:0}
.lgm-card-top > div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lgm-name{font-size:17px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgm-name a{color:inherit}
.lgm-sub{font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgm-state{flex:none;padding:2px 10px;border-radius:999px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line2);color:var(--mut)}
.lgm-state.on{border-color:var(--teal-line);color:var(--teal);background:var(--teal-bg)}
.lgm-state.ended{border-color:#6a3530;color:var(--red);background:var(--red-bg)}
.lgm-plate{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:12px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.lgm-code{font-family:var(--mono);font-size:38px;line-height:1;letter-spacing:.28em;color:var(--teal);padding-left:.1em}
.lgm-code.dim{color:#4a5c62;letter-spacing:.1em;font-size:20px}
.lgm-plate .lgm-link{flex:1 1 160px;min-width:0;font-family:var(--mono);font-size:12px;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgm-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-radius:10px;overflow:hidden;background:var(--line);border:1px solid var(--line)}
.lgm-counts > div{display:flex;flex-direction:column;padding:8px 12px;background:var(--panel2)}
.lgm-counts span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.lgm-counts b{font-size:20px;color:var(--ink)}
.lgm-counts .pass b{color:var(--teal)}
.lgm-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--mut)}
.lgm-voice{display:inline-flex;align-items:center;gap:6px}
.lgm-voice::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dim)}
.lgm-voice.ready::before{background:var(--teal)}
.lgm-voice.making::before{background:var(--amb);animation:lgy-rec 1.4s ease-in-out infinite}
.lgm-voice.text::before{background:#6f8288}
.lgm-card-acts{display:flex;flex-wrap:wrap;gap:6px}
.lgm-card-acts .lgy-btn{flex:0 0 auto}
.lgm-card-acts .lgm-open{margin-left:auto}
/* new-training (upload / from project) */
.lgm-new{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lgm-new > div{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px;border:1.5px dashed var(--line2);background:var(--panel)}
.lgm-new b{font-size:15px}
.lgm-new p{margin:0;font-size:13px;color:var(--mut)}
.lgm-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:96px;border-radius:10px;border:1.5px dashed var(--teal-line);background:var(--teal-bg);color:#b8d4cc;font-size:13.5px;text-align:center;padding:12px}
.lgm-drop.err{border-color:#6a3530;background:var(--red-bg);color:#ffc9bf}
.lgm-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lgm-lock{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
/* detail */
.lgm-subtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.lgm-subtabs a{padding:9px 14px;border-bottom:2px solid transparent;color:var(--mut);font-size:14px;white-space:nowrap;text-decoration:none}
.lgm-subtabs a.on{border-bottom-color:var(--teal);color:var(--ink)}
.lgm-subtabs a .n{font-family:var(--mono);font-size:11px;color:var(--dim);margin-left:4px}
.lgm-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.lgm-panel{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:14px;background:var(--panel);border:1px solid var(--line);min-width:0}
.lgm-panel h3{margin:0;font-size:15px}
.lgm-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:10px 14px;border-radius:12px;font-size:13.5px}
.lgm-banner.off{background:#161d20;border:1px solid var(--line2);color:var(--ink2)}
.lgm-banner.ended{background:var(--red-bg);border:1px solid #6a3530;color:#ffc9bf}
.lgm-banner.err{background:var(--red-bg);border:1px solid #6a3530;color:#ffc9bf}
.lgm-banner .lgy-btn{margin-left:auto}
/* people table */
.lgm-tblwrap{border-radius:12px;border:1px solid var(--line);overflow:auto;max-height:560px;background:var(--panel)}
.lgm-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.lgm-tbl th{position:sticky;top:0;z-index:1;text-align:left;padding:9px 10px;background:#111a1e;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--mut);border-bottom:1px solid var(--line2);white-space:nowrap;cursor:pointer}
.lgm-tbl th.s::after{content:" ↓";color:var(--teal)}
.lgm-tbl td{padding:8px 10px;border-bottom:1px solid #1d282c;white-space:nowrap}
.lgm-tbl td.nm{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.lgm-tbl tbody tr:hover td{background:#111c1f}
.lgm-tbl .num{text-align:right;font-family:var(--mono)}
.lgm-res{display:inline-flex;align-items:center;gap:6px}
.lgm-res::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dim)}
.lgm-res.pass{color:var(--teal)}.lgm-res.pass::before{background:var(--teal)}
.lgm-res.fail{color:var(--amb)}.lgm-res.fail::before{background:var(--amb)}
.lgm-res.prog{color:var(--ink2)}.lgm-res.prog::before{background:var(--vio)}
.lgm-res.none{color:var(--dim)}
.lgm-rec{font-size:12.5px;color:var(--mut)}
.lgm-rec.no{color:var(--dim);font-style:normal}
.lgm-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--mut)}
/* invite */
.lgm-invite textarea{width:100%;min-height:96px;padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);font:inherit;font-size:14px;resize:vertical}
.lgm-invite textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(78,217,176,.16)}
.lgm-inv-list{display:flex;flex-direction:column;gap:0;font-size:13px}
.lgm-inv-list > div{display:flex;gap:8px;padding:6px 0;border-top:1px solid #1d282c}
.lgm-inv-list > div span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* recordings */
.lgm-reclist{display:flex;flex-direction:column;gap:8px}
.lgm-recgroup{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.lgm-recgroup > .lgy-row{justify-content:space-between}
.lgm-recgroup.declined{border-style:dashed;color:var(--mut)}
.lgm-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;border-radius:14px;border:1.5px dashed var(--line2);text-align:center;color:var(--mut)}
.lgm-empty b{font-size:18px;color:var(--ink)}
.lgm-empty .ic{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line2);font-size:22px;color:var(--teal)}
/* activity */
.lgm-log{display:flex;flex-direction:column}
.lgm-log > div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid #1d282c;font-size:13.5px}
.lgm-log time{font-family:var(--mono);font-size:12px;color:var(--mut)}
.lgm-log b{color:var(--ink)}
.lgm-log .day{grid-column:1/-1;padding-top:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);border-top:0}
/* settings */
.lgm-set{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lgm-set label .lgm-lock{margin-left:auto}

/* ---------- phone (container ≤640) ---------- */
@container (max-width:640px){
  .lgm-app{grid-template-columns:1fr;border-radius:0;border-width:0}
  .lgm-rail{flex-direction:row;align-items:center;overflow-x:auto;gap:2px;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
  .lgm-rail .pulse-logo,.lgm-who,.lgm-rail-foot{display:none}
  .lgm-tab{flex:none;min-height:40px;padding:6px 10px;font-size:13px}
  .lgm-tab .n{display:none}
  .lgm-main{padding:14px 12px 28px;gap:12px}
  .lgm-head .lgy-title{font-size:20px;flex:1 1 100%}
  .lgm-tools{width:100%}
  .lgm-search{width:100%!important;flex:1 1 100%}
  .lgm-cards{grid-template-columns:1fr}
  .lgm-code{font-size:40px}
  .lgm-plate .lgm-link{flex-basis:100%}
  .lgm-plate .lgy-btn{flex:1 1 auto}
  .lgm-new,.lgm-split,.lgm-set,.lgm-fields{grid-template-columns:1fr}
  .lgm-card-acts .lgm-open{margin-left:0;flex:1 1 100%}
  /* table → rows */
  .lgm-tblwrap{max-height:none;border:0;background:transparent;overflow:visible}
  .lgm-tbl thead{display:none}
  .lgm-tbl,.lgm-tbl tbody{display:block}
  .lgm-tbl tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;margin-bottom:6px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
  .lgm-tbl td{padding:0;border:0;white-space:normal;font-size:12.5px;color:var(--mut)}
  .lgm-tbl td.nm{grid-column:1;font-size:15px;color:var(--ink);max-width:none}
  .lgm-tbl td.res{grid-column:2;grid-row:1;text-align:right}
  .lgm-tbl td.num::before{content:attr(data-k) " ";font-family:var(--sans);color:var(--dim)}
  .lgm-tbl td.num{text-align:left}
  .lgm-tbl td.act{grid-column:1/-1;margin-top:6px}
  .lgm-log > div{grid-template-columns:1fr;gap:2px}
}


/* CD 299 */
/* ===== CD 299 · Training portal: script editor, QA results, rehearsal, listening voter ===== */
/* Append to train.css (297 + 298). Only NEW classes (prefix lgx-). Nothing renamed. Phone = container query on #lgy-root. */
#lgy-root:has(.lgx-c){container-type:inline-size}
.lgx-c{width:100%}
/* shared */
.lgx-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.lgx-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line2);color:var(--mut);white-space:nowrap}
.lgx-chip.ok{border-color:var(--teal-line);color:var(--teal);background:var(--teal-bg)}
.lgx-chip.rev{border-color:#6b5220;color:var(--amb);background:var(--amb-bg)}
.lgx-chip.coach{border-color:#6b2f28;color:var(--red);background:var(--red-bg)}
.lgx-chip.draft{border-color:#6b5220;color:var(--amb);background:var(--amb-bg)}
.lgx-chip.live{border-color:var(--teal-line);color:var(--teal);background:var(--teal-bg)}
.lgx-panel{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.lgx-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.lgx-sp{flex:1 1 auto}
.lgx-in{min-height:40px;width:100%;padding:8px 11px;border-radius:9px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);font-size:14.5px}
.lgx-in:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(78,217,176,.15)}
.lgx-in.bad{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,138,122,.12)}
select.lgx-in{padding-right:28px}
kbd.lgx-kbd{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:6px;background:#1a2226;border:1px solid var(--line2);border-bottom-width:2px;font-family:var(--mono);font-size:12px;color:var(--ink)}
/* ---------- 1 script editor ---------- */
.lgx-draftbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.lgx-draftbar.dirty{background:#1d1a0f;border-color:#6b5220}
.lgx-draftbar .t{font-size:14px;color:var(--ink2)}
.lgx-draftbar .t b{color:var(--ink)}
.lgx-ed{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}
.lgx-pages{position:sticky;top:64px;display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.lgx-pg{display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 10px;border-radius:8px;border:1px solid transparent;color:var(--ink2);font-size:14px;text-decoration:none}
.lgx-pg:hover{background:#121c1f;text-decoration:none;color:var(--ink)}
.lgx-pg.on{background:var(--teal-bg);border-color:var(--teal-line);color:var(--ink)}
.lgx-pg .n{font-family:var(--mono);font-size:11px;color:var(--mut);width:22px}
.lgx-pg .tx{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lgx-pg .dot{width:8px;height:8px;border-radius:50%;background:transparent;flex:none}
.lgx-pg.warn .dot{background:var(--red)}
.lgx-pg.chg .dot{background:var(--amb)}
.lgx-probs{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--red-bg);border:1px solid #6b2f28}
.lgx-probs .h{font-size:14px;color:var(--red)}
.lgx-prob{display:flex;align-items:baseline;gap:10px;font-size:13.5px;color:var(--ink2)}
.lgx-prob .w{flex:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--red);min-width:92px}
.lgx-prob a{margin-left:auto;flex:none}
.lgx-pin{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--red)}
.lgx-pin::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--red-solid);color:#fff;font-size:11px;font-weight:700}
.lgx-page{display:flex;flex-direction:column;gap:16px;padding:18px 20px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.lgx-page.view{background:var(--vio-p2);border-color:var(--vio-line)}
.lgx-fl{display:flex;flex-direction:column;gap:6px}
.lgx-fl > label,.lgx-fl > .lab{font-size:13.5px;color:var(--ink2)}
.lgx-fl .hint{font-size:12.5px;color:var(--dim)}
.lgx-read{min-height:84px;padding:12px 14px;border-radius:11px;background:var(--panel2);border:1.5px solid var(--teal-line);font-size:19px;line-height:1.55;color:var(--ink);cursor:text}
.lgx-read .w{border-radius:4px;cursor:pointer;padding:0 1px}
.lgx-read .w:hover{background:rgba(78,217,176,.12)}
.lgx-read .w.hard{background:rgba(78,217,176,.14);border-bottom:2px dotted var(--teal);color:#fff}
.lgx-read .w.hard.sel{outline:2px solid var(--teal);outline-offset:1px}
.lgx-read .lgy-instr{font-size:.6em}
.lgx-pop{display:flex;flex-direction:column;gap:10px;width:min(360px,100%);padding:14px;border-radius:12px;background:#17232a;border:1px solid var(--teal-line);box-shadow:var(--sh)}
.lgx-pop .h{display:flex;align-items:baseline;gap:8px;font-size:15px}
.lgx-pop .h b{color:#fff}
.lgx-recbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.lgx-recbtn{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid #6b2f28;background:var(--red-bg);color:#ffd2cb;font-size:13.5px;cursor:pointer}
.lgx-recbtn::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--red-solid)}
.lgx-recbtn.on{background:var(--red-solid);color:#fff;border-color:var(--red-solid)}
.lgx-recbtn.on::before{background:#fff;border-radius:2px}
.lgx-wave{flex:1 1 140px;height:28px;border-radius:6px;background:repeating-linear-gradient(90deg,var(--teal) 0 2px,transparent 2px 5px);-webkit-mask:linear-gradient(180deg,transparent 22%,#000 22% 78%,transparent 78%);mask:linear-gradient(180deg,transparent 22%,#000 22% 78%,transparent 78%);opacity:.75}
.lgx-wave.lo{-webkit-mask:linear-gradient(180deg,transparent 38%,#000 38% 62%,transparent 62%);mask:linear-gradient(180deg,transparent 38%,#000 38% 62%,transparent 62%)}
.lgx-model{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px dashed var(--line2);font-size:13.5px;color:var(--ink2)}
.lgx-ahead,.lgx-arow{display:grid;grid-template-columns:34px minmax(150px,1.2fr) minmax(140px,.9fr) minmax(150px,1.2fr) 32px;gap:8px;align-items:center}
.lgx-ahead{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);padding:0 2px}
.lgx-arow .key{display:grid;place-items:center;height:40px;border-radius:9px;background:#1a2226;border:1px solid var(--line2);font-family:var(--mono);font-size:13px}
.lgx-x{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:none;color:var(--dim);cursor:pointer}
.lgx-x:hover{border-color:#6b2f28;color:var(--red)}
.lgx-arow + .lgx-pin{margin:-2px 0 2px 42px}
.lgx-add{align-self:flex-start;min-height:34px;padding:6px 12px;border-radius:9px;border:1px dashed var(--line2);background:none;color:var(--ink2);font-size:13.5px;cursor:pointer}
.lgx-add:hover{border-color:var(--teal);color:var(--ink)}
.lgx-chead,.lgx-crow{display:grid;grid-template-columns:minmax(150px,1fr) 64px minmax(220px,1.6fr) 32px;gap:8px;align-items:center}
.lgx-chead{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);padding:0 2px}
.lgx-crow .hk{text-align:center;font-family:var(--mono);text-transform:uppercase}
.lgx-on{display:flex;flex-wrap:wrap;gap:4px}
.lgx-on button{min-height:28px;padding:2px 9px;border-radius:999px;border:1px solid var(--line2);background:none;color:var(--mut);font-size:12px;cursor:pointer}
.lgx-on button.on{border-color:var(--teal-line);background:var(--teal-bg);color:var(--ink)}
.lgx-pnav{display:flex;align-items:center;gap:8px}
.lgx-hist{display:flex;flex-direction:column}
.lgx-hrow{display:grid;grid-template-columns:56px 150px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:10px 4px;border-top:1px solid var(--line);font-size:13.5px}
.lgx-hrow:first-child{border-top:0}
.lgx-hrow .v{font-family:var(--mono);color:var(--teal)}
.lgx-hrow .who{color:var(--mut);font-size:12.5px}
.lgx-hrow .what{color:var(--ink2)}
.lgx-toast{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:12px 16px;border-radius:12px;background:var(--teal-bg);border:1px solid var(--teal-line);color:#c8f5e4;font-size:14px}
.lgx-viewonly{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:var(--vio-p2);border:1px solid #4a4070;color:var(--vio-mut);font-size:13.5px}
.lgx-confirm{display:flex;flex-direction:column;gap:12px;max-width:520px;padding:20px 22px;border-radius:16px;background:var(--panel);border:1px solid var(--line2);box-shadow:var(--sh)}
.lgx-confirm ul{margin:0;padding-left:18px;color:var(--ink2);font-size:14px;line-height:1.6}
/* ---------- 2 QA results ---------- */
.lgx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.lgx-tile{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line);min-width:0}
.lgx-tile b{font-size:26px;letter-spacing:-.02em;line-height:1.15}
.lgx-tile .s{font-size:12.5px;color:var(--mut)}
.lgx-tile.wide{grid-column:span 2}
.lgx-tile q{font-size:14.5px;color:var(--ink);quotes:"\201C" "\201D"}
.lgx-calls{display:flex;flex-direction:column;gap:8px}
.lgx-call{display:flex;flex-direction:column;gap:12px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.lgx-call.open{border-color:var(--teal-line)}
.lgx-chd{display:grid;grid-template-columns:62px 118px 54px minmax(0,1fr) auto;gap:12px;align-items:center}
.lgx-chd .no{font-family:var(--mono);font-size:12px;color:var(--mut)}
.lgx-chd .sc{font-size:20px;letter-spacing:-.02em}
.lgx-chd .why{font-size:13px;color:var(--ink2);min-width:0}
.lgx-chd .acts{display:flex;gap:6px}
.lgx-areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px}
.lgx-area{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:4px 8px;align-items:center;font-size:12.5px;color:var(--ink2)}
.lgx-area .wt{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.lgx-area .bar{grid-column:1/-1;height:6px;border-radius:3px;background:#1d282c;overflow:hidden}
.lgx-area .bar i{display:block;height:100%;border-radius:3px;background:var(--teal)}
.lgx-area.lo .bar i{background:var(--amb)}
.lgx-area.bad .bar i{background:var(--red)}
.lgx-area b{text-align:right;font-family:var(--mono);font-size:12px}
.lgx-tx{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:14px;line-height:1.5}
.lgx-tx .ln{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px}
.lgx-tx .who{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding-top:3px}
.lgx-tx .ln.voter .who{color:var(--vio-mut)}
.lgx-tx .ln.voter span:last-child{color:var(--vio-mut)}
.lgx-tx .ln.miss{padding:6px 8px;margin:0 -8px;border-radius:8px;background:var(--red-bg);border:1px dashed #6b2f28}
.lgx-tx .ln.miss .who{color:var(--red)}
.lgx-tx .ln.miss span:last-child{color:#ffd2cb}
.lgx-tx mark.hw{background:none;color:#fff;border-bottom:2px solid var(--red);padding:0 1px}
.lgx-tx mark.hw small{margin-left:4px;font-family:var(--mono);font-size:10.5px;color:var(--red)}
.lgx-txkey{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--mut)}
.lgx-notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.lgx-notes li{display:flex;gap:10px;font-size:14px;color:var(--ink2);line-height:1.45}
.lgx-notes li::before{content:"→";color:var(--teal);flex:none}
.lgx-play{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--mut)}
.lgx-state{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--mut)}
.lgx-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--teal);animation:lgx-r 1s linear infinite}
@keyframes lgx-r{to{transform:rotate(360deg)}}
.lgx-fix{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:14px;background:var(--vio-p2);border:1px solid var(--vio-line)}
.lgx-fix .h{font-size:18px;color:var(--vio-ink)}
.lgx-fix .c{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--vio-line)}
.lgx-fix .c .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--vio-mut)}
.lgx-fix .lgx-notes li{color:var(--vio-ink)}
.lgx-fix .lgx-notes li::before{color:var(--vio-mut)}
/* ---------- 3 rehearsal (calm teal frame, not the violet practice frame) ---------- */
.lgx-rframe{position:relative;width:100%;max-width:1100px;display:flex;flex-direction:column;border:2px solid var(--teal-line);border-radius:18px;background:#0d1a1c;overflow:clip}
.lgx-rbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px 16px;background:#12302b;color:#d9fbef}
.lgx-rbar .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;padding:3px 8px;border-radius:5px;background:rgba(78,217,176,.18);color:#c8f5e4}
.lgx-rbar .t{font-size:13.5px;color:#b9e9da}
.lgx-passes{display:flex;gap:6px;margin-left:auto}
.lgx-passes span{padding:3px 10px;border-radius:999px;border:1px solid var(--teal-line);font-size:12px;color:#b9e9da}
.lgx-passes span.on{background:var(--teal-d);color:#06110f;border-color:var(--teal-d)}
.lgx-passes span.done{color:var(--teal)}
.lgx-rbody{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:16px;padding:16px}
.lgx-rbody .lgy-ans{border-color:#24504a;background:#102422;color:var(--ink)}
.lgx-calm{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;background:#102422;border:1px solid #24504a;font-size:14px;color:#c8e9df;line-height:1.5}
.lgx-calm b{color:#fff}
.lgx-sayback{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:14px;background:#102422;border:1px solid var(--teal-line)}
.lgx-sayback .word{font-size:30px;letter-spacing:-.02em;color:#fff}
.lgx-sayback .how{font-family:var(--mono);font-size:14px;color:#8fe3c8}
.lgx-step3{display:flex;flex-direction:column;gap:8px}
.lgx-s3{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:14px;color:var(--mut)}
.lgx-s3 i{font-style:normal;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line2);font-size:12px}
.lgx-s3.done{color:#b9e9da}.lgx-s3.done i{background:var(--teal-d);color:#06110f;border-color:var(--teal-d)}
.lgx-s3.now{background:#12302b;color:#fff}.lgx-s3.now i{border-color:var(--teal);color:var(--teal)}
.lgx-heard{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14px}
.lgx-heard.ok{background:var(--teal-bg);border:1px solid var(--teal-line);color:#c8f5e4}
.lgx-heard.again{background:var(--amb-bg);border:1px solid #6b5220;color:#ffe2a8}
.lgx-ready{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:16px;padding:36px 30px 30px;border-radius:22px;background:radial-gradient(520px 260px at 50% 0%,rgba(78,217,176,.12),transparent 70%),var(--panel);border:1px solid var(--teal-line);text-align:center}
.lgx-ready h1{margin:0;font-size:32px;letter-spacing:-.025em;color:#fff}
.lgx-ready p{margin:0;font-size:15.5px;color:var(--ink2);line-height:1.55;max-width:42ch;text-wrap:pretty}
.lgx-ready .acts{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px}
.lgx-ready .acts .lgy-btn{width:100%;min-height:54px;font-size:17px}
.lgx-ready ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;text-align:left;font-size:14px;color:var(--ink2)}
.lgx-ready ul li::before{content:"✓";color:var(--teal);margin-right:10px}
.lgx-orb{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--teal-bg);border:1px solid var(--teal-line);font-size:26px;color:var(--teal)}
/* ---------- 4 listening voter: the turn panel ---------- */
.lgx-turn{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 12px;align-items:center;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line2);background:var(--panel2)}
.lgx-turn .ic{grid-row:span 2;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:#1a2226;color:var(--ink)}
.lgx-turn .t{font-size:16px;color:var(--ink)}
.lgx-turn .s{font-size:13px;color:var(--mut);line-height:1.4}
.lgx-turn .x{grid-column:1/-1;margin-top:6px}
.lgx-turn.voter{border-color:var(--vio);background:var(--vio-p)}
.lgx-turn.voter .ic{background:var(--vio);color:#fff;box-shadow:0 0 0 6px rgba(140,100,220,.18)}
.lgx-turn.listen{border-color:var(--teal);background:#0f2320}
.lgx-turn.listen .ic{background:var(--teal-d);color:#06110f}
.lgx-turn.you{border-color:var(--teal);background:#0f2320}
.lgx-turn.you .ic{background:#0f2320;border:2px solid var(--teal);color:var(--teal)}
.lgx-turn.quiet{border-color:#6b5220;background:#1d1a0f}
.lgx-turn.quiet .ic{background:conic-gradient(var(--amb) calc(var(--p,60)*1%),#3a3020 0);color:#1d1a0f;font-family:var(--mono);font-size:15px;font-weight:700}
.lgx-turn.hung{border-color:#6b2f28;background:var(--red-bg)}
.lgx-turn.hung .ic{background:var(--red-solid);color:#fff}
.lgx-turn.nomic{border-style:dashed}
.lgx-mic{display:flex;align-items:flex-end;gap:3px;height:22px}
.lgx-mic i{width:5px;border-radius:2px;background:var(--teal);opacity:.35}
.lgx-mic i.on{opacity:1}
.lgx-turns{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:16px;background:var(--vio-bg)}
.lgx-turns > div{display:flex;flex-direction:column;gap:6px}
.lgx-cut{opacity:.75}
.lgx-cut .tx::after{content:" — stopped, you spoke";font-family:var(--mono);font-size:10.5px;color:var(--vio-mut)}
.lgx-hangcard{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:14px;background:var(--panel);border:1px solid #6b2f28}

/* editor column measures itself: rows stack when the page card is narrow (any viewport) */
.lgx-page{container-type:inline-size}
@container (max-width:900px){.lgx-ed{grid-template-columns:1fr}.lgx-pages{position:static;flex-direction:row;flex-wrap:wrap}.lgx-pages > .lgx-k{width:100%}.lgx-pg{flex:0 0 auto}}
@container (max-width:560px){
  .lgx-ahead,.lgx-chead{display:none}
  .lgx-arow{grid-template-columns:34px minmax(0,1fr) 32px;padding:10px;border-radius:11px;background:var(--panel2);border:1px solid var(--line)}
  .lgx-arow > :nth-child(3),.lgx-arow > :nth-child(4){grid-column:2/3}
  .lgx-arow + .lgx-pin{margin-left:0}
  .lgx-crow{grid-template-columns:minmax(0,1fr) 56px 32px;padding:10px;border-radius:11px;background:var(--panel2);border:1px solid var(--line)}
  .lgx-crow .lgx-on{grid-column:1/-1;order:5}
}
/* ---------- phone ---------- */
@container (max-width:640px){
  .lgx-ed{grid-template-columns:1fr}
  .lgx-pages{display:none}
  .lgx-ahead{display:none}
  .lgx-arow{grid-template-columns:34px minmax(0,1fr) 32px;padding:10px;border-radius:11px;background:var(--panel2);border:1px solid var(--line)}
  .lgx-arow > :nth-child(3),.lgx-arow > :nth-child(4){grid-column:2/3}
  .lgx-arow + .lgx-pin{margin-left:0}
  .lgx-chead{display:none}
  .lgx-crow{grid-template-columns:minmax(0,1fr) 56px 32px;padding:10px;border-radius:11px;background:var(--panel2);border:1px solid var(--line)}
  .lgx-crow .lgx-on{grid-column:1/-1;order:5}
  .lgx-page{padding:14px}
  .lgx-read{font-size:17px}
  .lgx-pnav{position:sticky;bottom:0;padding:10px 0;background:var(--panel2)}
  .lgx-pnav .lgy-btn{flex:1}
  .lgx-draftbar{border-radius:0;margin:0 -16px}
  .lgx-chd{grid-template-columns:auto 1fr auto;gap:6px 10px}
  .lgx-chd .why{grid-column:1/-1}
  .lgx-chd .acts{grid-column:1/-1}
  .lgx-areas{grid-template-columns:1fr 1fr}
  .lgx-tile.wide{grid-column:auto}
  .lgx-hrow{grid-template-columns:48px minmax(0,1fr);}
  .lgx-hrow .what{grid-column:1/-1}
  .lgx-rbody{grid-template-columns:1fr;padding:12px}
  .lgx-passes{margin-left:0}
  .lgx-ready{padding:28px 18px 22px;border-radius:0;border-width:0}
  .lgx-ready h1{font-size:28px}
  .lgx-c .lgy-grid{grid-template-columns:1fr;padding:10px}
  .lgx-c .lgy-bar-t,.lgx-c .lgy-speak{display:none}
  .lgx-c .lgy-legend{display:none}
  .lgx-c.lgy-frame,.lgx-c .lgy-frame{border-radius:0;border-width:0}
  .lgx-tx .ln{grid-template-columns:1fr;gap:0}
}

/* CD 298/299 runtime placement; heights and countdown use CSS/CSSOM, never markup styles. */
[hidden]{display:none!important}
.lgm-main.lgy-wide{width:100%;max-width:none;margin:0}
.lgm-card .lgy-mt{width:100%;margin:0;border:0;padding:0}
.lgm-card:has(.lgy-mt[open]){grid-column:1/-1}
.lgm-traininglist{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.lgm-traininglist > .lgy-eyebrow2,.lgm-traininglist > .lgy-arch{grid-column:1/-1}
.lgy-mt[data-tab=people] .lgy-mbody > :not(.lgy-tbl),
.lgy-mt[data-tab=recordings] .lgy-mbody > :not(.lgy-tbl):not(.lgy-recs):not(.lgx-tiles),
.lgy-mt[data-tab=pronunciations] .lgy-mbody > :not(.lgy-pronm){display:none}
.lgx-model .lgy-modelread{width:100%}
.lgx-read{white-space:pre-wrap;overflow-wrap:anywhere}
.lgx-mic i{height:10px}
.lgx-mic i:nth-child(3n){height:20px}
.lgx-mic i:nth-child(3n+1){height:6px}
.lgx-mic i:nth-child(4n){height:15px}
.lgx-probs:empty{display:none}
.lgx-ready{align-self:center}
@container (max-width:640px){
  .lgm-rail-foot{display:flex;border:0;padding:0;margin:0}
  .lgy-grid:has(.lgy-votercol){display:flex;flex-direction:column}
  .lgy-grid > .lgy-col:first-child{display:contents}
  .lgy-votercol{display:contents}
  .lgx-turn{order:-1}
  .lgy-mt .lgy-tbl{display:block;overflow-x:auto}
  .lgx-probs details:not([open]) .lgx-prob{display:none}
}
/* QA-299-subset: the rest of the QA-results rules now come from the full CD 299 block above (duplicates removed); only these CC additions remain. */
/* CC: the expandable part of a call is always in the markup and shown only when the call is open */
.lgx-qamore{display:flex;flex-direction:column;gap:12px}
.lgx-call:not(.open) .lgx-qamore{display:none}
.lgx-qapanel{display:flex;flex-direction:column;gap:12px}
.lgx-qapanel .lgx-row .lgx-chip{margin-left:4px}
.lgx-red{color:var(--red)}
.lgx-req{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--red)}
.lgx-txkey mark.hw{background:none;color:#fff;border-bottom:2px solid var(--red);padding:0 1px}
.lgx-fix .lead{color:var(--vio-mut);font-size:14px}
/* Training title edit (owner request 2026-11-02): pencil on the card header, an inline editor in the card body. */
.lgm-pencil{flex:none;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;border:1px solid var(--line2);background:transparent;color:var(--mut);font-size:14px;line-height:1;cursor:pointer}
.lgm-pencil:hover,.lgm-pencil:focus-visible{color:var(--teal);border-color:var(--teal-line)}
.lgy-mconfirm:has(.lgm-rename){border-color:var(--teal-line)}
.lgm-rename{display:flex;flex-direction:column;gap:8px}
.lgm-rename label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--ink2)}
.lgm-rename .lgy-err:empty{display:none}
@media(max-width:640px){.lgy-mrow > b{flex-basis:calc(100% - 70px)}}
@container (max-width:640px){.lgy-mrow > b{flex-basis:calc(100% - 70px)}}
.lgx-alist{display:flex;flex-direction:column;gap:8px;min-width:0}

/* manager splash */
/* owner 2026-11-02: the NRPG PULSE opening before the manager screen. About 2 s: NRPG letters drop in, PULSE rises, a heartbeat line draws and the mark beats
   twice (lub-dub) with a glow, a shine crosses the wordmark, then the whole splash scales out. Classes only, no inline style. Reduced motion: a still logo, a 400 ms fade. */
.lgs-splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg);overflow:hidden;animation:lgs-out .45s cubic-bezier(.4,0,.2,1) 1.65s both;cursor:pointer}
.lgs-splash.lgs-skip{animation:lgs-out .25s ease-in 0s both}
.lgs-glow{position:absolute;left:50%;top:50%;width:min(130vw,980px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,rgba(78,217,176,.30),rgba(79,182,227,.12) 52%,rgba(79,182,227,0) 72%);opacity:0;animation:lgs-glow 1.7s ease-out .1s both}
.lgs-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,3vw,26px);padding:0 16px;max-width:100%}
.lgs-mark{position:relative;padding:clamp(8px,1.6vw,18px) clamp(14px,3vw,34px);animation:lgs-beat .85s ease-in-out .95s both}
.lgs-splash .pulse-logo{--s:clamp(56px,22vw,150px);gap:calc(var(--s)*.04)}
.lgs-logo .pl-n span{display:inline-block;opacity:0;animation:lgs-letter .55s cubic-bezier(.2,.8,.2,1) both}
.lgs-logo .pl-n span:nth-child(1){animation-delay:.05s}
.lgs-logo .pl-n span:nth-child(2){animation-delay:.14s}
.lgs-logo .pl-n span:nth-child(3){animation-delay:.23s}
.lgs-logo .pl-n span:nth-child(4){animation-delay:.32s}
.lgs-logo .pl-p{background:linear-gradient(100deg,var(--p) 0 40%,#b9f7e4 50%,var(--p) 60% 100%) 0 0/250% 100% no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;animation:lgs-rise .65s cubic-bezier(.2,.8,.2,1) .25s both,lgs-shine .95s ease-in-out 1.05s both}
.lgs-logo .pl-dot{animation:lgs-dot .7s ease-out .9s both}
.lgs-sweep{position:absolute;top:-10%;bottom:-10%;left:0;width:34%;-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);background:linear-gradient(100deg,rgba(78,217,176,0),rgba(78,217,176,.22),rgba(78,217,176,0));mix-blend-mode:screen;opacity:0;transform:translateX(-120%) skewX(-14deg);animation:lgs-sweep .95s ease-in-out 1.05s both}
.lgs-ecg{display:block;width:clamp(200px,40vw,440px);height:auto;overflow:visible}
.lgs-ecg-line{fill:none;stroke:var(--teal);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 6px rgba(78,217,176,.75));animation:lgs-draw .9s cubic-bezier(.5,0,.3,1) .5s both}
.lgs-tag{font-family:var(--mono);font-size:clamp(10px,1.3vw,12.5px);letter-spacing:.34em;text-transform:uppercase;color:var(--mut);padding-left:.34em;opacity:0;animation:lgs-fadein .5s ease-out 1.15s both}
@keyframes lgs-letter{from{opacity:0;transform:translateY(-.9em);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes lgs-rise{from{opacity:0;transform:translateY(.3em) scale(.96);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes lgs-shine{from{background-position:0 0}to{background-position:100% 0}}
@keyframes lgs-sweep{0%{opacity:0;transform:translateX(-120%) skewX(-14deg)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(330%) skewX(-14deg)}}
@keyframes lgs-beat{0%{transform:scale(1)}16%{transform:scale(1.07)}30%{transform:scale(1)}46%{transform:scale(1.045)}68%,100%{transform:scale(1)}}
@keyframes lgs-dot{0%{text-shadow:0 0 0 rgba(78,217,176,0)}35%{text-shadow:0 0 .35em rgba(78,217,176,.95),0 0 .9em rgba(78,217,176,.6)}100%{text-shadow:0 0 .12em rgba(78,217,176,.35)}}
@keyframes lgs-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes lgs-glow{0%{opacity:0;transform:scale(.45)}45%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.08)}100%{opacity:.5;transform:scale(1)}}
@keyframes lgs-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes lgs-out{to{opacity:0;transform:scale(1.045);visibility:hidden}}
@keyframes lgs-fade{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){
  .lgs-splash{animation:lgs-fade .4s ease .5s both}
  .lgs-splash.lgs-skip{animation:lgs-fade .2s ease 0s both}
  .lgs-splash *{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .lgs-splash .lgs-glow{opacity:.55!important}
  .lgs-logo .pl-p{background:none;color:var(--p);-webkit-background-clip:border-box;background-clip:border-box}
  .lgs-ecg-line{stroke-dashoffset:0}
  .lgs-sweep{display:none}
}
/* end manager splash */
