/* GlobalVet ECG & Cardiology Academy — additions on top of the GlobalVet academy design system */
:root{ --ecg:#4CC38A; --spo2:#5FD3F3; --co2:#F2B84B; --nibp:#F26D6D; }
body::before{background:radial-gradient(1200px 600px at 15% -10%, rgba(76,195,138,.10), transparent 60%),radial-gradient(900px 500px at 90% 10%, rgba(196,165,116,.10), transparent 60%)}
figure.vis.svg{background:var(--panel);padding:14px 14px 0}
figure.vis.svg svg{display:block;max-height:none}
figure.vis.svg figcaption{margin:12px -14px 0}
.review-note{font-size:14px;border:1px solid rgba(242,184,75,.4);background:rgba(242,184,75,.07);color:var(--ink-2);border-radius:12px;padding:10px 14px;margin:12px auto}
.dose-flag{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--warn);border:1px solid rgba(242,184,75,.45);border-radius:99px;padding:2px 9px;margin-left:8px;vertical-align:middle}
.refs{font-size:14px;color:var(--muted)} .refs li{margin:4px 0}

/* ── hero strip card (live engine-drawn ECG) ───────────────────────────── */
.ecg-card{background:#03070B;border:1px solid var(--line-2);border-radius:18px;padding:16px 16px 8px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.ecg-card .sweep{position:absolute;top:0;bottom:0;width:120px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(95,211,243,.12),rgba(95,211,243,.32),transparent);animation:sweep 7s linear infinite}
@keyframes sweep{0%{left:-140px}100%{left:100%}}
.ecg-card figcaption{background:transparent;border:0;padding:8px 2px 6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ecg-card figure.vis.svg{margin:0;background:transparent;padding:0}
.ecg-cap-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.ecg-live{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ok)}
.ecg-live i{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:blink-dot 1.4s steps(2) infinite}
@keyframes blink-dot{50%{opacity:.25}}

/* ── case monitor (branching cases) ────────────────────────────────────── */
.gcd-mon{background:#03070B;border:1px solid var(--line-2);border-radius:16px;padding:14px;box-shadow:var(--shadow)}
.gcd-mon .strip-wrap{position:relative;overflow:hidden;border:1px solid #12202c;border-radius:10px;background:#03070B}
.gcd-mon .strip-wrap .sweep{animation-duration:5s}
.gcd-mon .strip-wrap figcaption{display:none}
.gcd-mon .strip-wrap figure.vis.svg{margin:0;background:transparent;padding:0;border:0}
.gcd-mon .tag-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:10px 2px 0}
.gcd-mon .rhy{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}
.gcd-nums{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px}
.gcd-nums .num{border:1px solid #12202c;border-radius:10px;padding:8px 10px;font-family:var(--mono)}
.gcd-nums .num small{display:block;font-size:10px;letter-spacing:.14em;opacity:.8}
.gcd-nums .num b{font-size:26px;font-weight:600;line-height:1.05;display:block}
.gcd-nums .num.alarm{animation:blink 1s steps(2) infinite}
.gcd-nums .num.alarm{border-color:rgba(242,109,109,.6)}
@keyframes blink{50%{background:rgba(242,109,109,.18)}}
@media(max-width:820px){.gcd-nums{grid-template-columns:repeat(3,1fr)}.gcd-nums .num b{font-size:22px}}

/* ── case grid + player ───────────────────────────────────────────────── */
.sim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.sim-card{background:var(--panel);border:1px solid var(--line-2);border-radius:16px;padding:18px;cursor:pointer;transition:.2s;display:flex;flex-direction:column}
.sim-card:hover{border-color:var(--copper);transform:translateY(-2px)}
.sim-card .lv{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--copper)}
.sim-card h3{margin:8px 0}
.choices{display:grid;gap:10px;margin:16px 0}
.choices button{text-align:left;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:16px}
.choices button:hover{border-color:var(--copper)}
.fb{border-left:3px solid var(--copper);padding:8px 12px;margin:12px 0;background:rgba(196,165,116,.06);border-radius:0 10px 10px 0;font-size:15px}
.fb.good{border-color:var(--ok)} .fb.bad{border-color:var(--bad)}
.fb .lb{position:static;display:inline;font:inherit;background:none}
.debrief{margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.debrief h4{margin:0 0 8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}
.debrief ul{margin:0;padding-left:18px;color:var(--ink-2);font-size:15px}
.debrief li{margin:5px 0}

/* ── tools page shell (tool internals live in site/css/tools.css) ──────── */
.gcd-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}
.gcd-tabs button{background:var(--panel);border:1px solid var(--line-2);color:var(--ink-2);border-radius:99px;padding:8px 14px;cursor:pointer;font-size:15px}
.gcd-tabs button.on{background:var(--copper);color:#101418;border-color:var(--copper)}
.gcd-pane{display:none}.gcd-pane.on{display:block}

/* ── final exam + certificate ─────────────────────────────────────────── */
.ex-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 20px}
.ex-facts div{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.02)}
.ex-facts b{display:block;font-family:var(--mono);font-size:21px;color:var(--copper-2);margin-bottom:2px}
.ex-facts span{font-size:13px;color:var(--muted);line-height:1.35;display:block}
.ex-name{display:block;font-weight:600;margin:6px 0 8px}
#ex-name{width:100%;max-width:520px;padding:13px 15px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink);font:inherit;font-size:18px}
#ex-name:focus{outline:2px solid var(--copper);outline-offset:1px}
#ex-name.err{border-color:var(--bad);box-shadow:0 0 0 3px rgba(242,109,109,.18)}
.ex-small{font-size:13px;margin:10px 0 16px;line-height:1.5}
.ex-bar{position:sticky;top:72px;z-index:5;display:flex;align-items:center;gap:14px;padding:10px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.ex-bar span{font-family:var(--mono);font-size:13px;white-space:nowrap}
.rv-bar{flex:1;height:8px;border-radius:99px;background:var(--line);overflow:hidden;min-width:60px}
.rv-bar i{display:block;height:100%;width:0;background:var(--copper);transition:width .25s}
.ex-mod{margin:28px 0 10px;font:600 13px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ex-q{margin:12px 0}
.ex-q .opts button.on{border-color:var(--copper);background:rgba(196,165,116,.16);color:var(--ink)}
.ex-q.answered{border-color:rgba(196,165,116,.42)}
.ex-submit{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ex-result{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ex-result h2{margin:0 0 4px}
.ex-result.pass{border-color:rgba(76,195,138,.55)}
.ring.ex-ring{width:104px;height:104px;font-size:22px;flex:none}
.ring.ex-ring::after{width:84px;height:84px}
.ex-tbl td:nth-child(2){white-space:nowrap;width:64px}
.ex-tbl td:nth-child(3){width:34%}
.ex-tbl .rv-bar{display:block}
.ex-rev{columns:2;column-gap:28px}.ex-rev li{margin:4px 0;break-inside:avoid}
.callout.ok{border-color:rgba(76,195,138,.45);background:rgba(76,195,138,.08)}
.callout.bad{border-color:rgba(242,109,109,.45);background:rgba(242,109,109,.08)}
@media(max-width:700px){.ex-facts{grid-template-columns:repeat(2,1fr)}.ex-rev{columns:1}.ex-bar{top:66px}}

/* ── checkout ─────────────────────────────────────────────────────────── */
.code-row{display:flex;gap:8px}
.code-row input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;padding:11px 12px;font-family:var(--mono)}
.trust{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:center;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ── data-photo hooks (photoreal images arrive in a later pass) ───────── */
[data-photo]{background:
  linear-gradient(180deg,rgba(196,165,116,.06),rgba(10,16,24,0) 55%),
  repeating-linear-gradient(0deg,rgba(242,109,109,.05) 0 1px,transparent 1px 22px),
  repeating-linear-gradient(90deg,rgba(242,109,109,.05) 0 1px,transparent 1px 22px),
  #05080c}
[data-photo].ph-fill{min-height:120px}

/* ── misc / mobile ────────────────────────────────────────────────────── */
/* Content is always visible: the scroll-reveal must never hide lesson copy or cards
   (a missed IntersectionObserver callback would leave whole sections blank). */
.rv{opacity:1;transform:none}
.vs-table td:nth-child(2){color:var(--muted)} .vs-table td:nth-child(3){color:var(--ink)}
.yes{color:var(--ok);font-weight:700}.no{color:var(--bad)}
.player>*{min-width:0}
.lesson .body,.lesson .goals span{overflow-wrap:anywhere}
.lesson .body svg{max-width:100%;height:auto}
.lesson .body pre,.lesson .body code{white-space:pre-wrap}
@media(max-width:960px){.player{grid-template-columns:minmax(0,1fr)}.toc{position:static;max-height:240px}}
.sticky-cta{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:60;display:none;gap:12px;align-items:center;background:rgba(14,22,32,.92);border:1px solid var(--line-2);border-radius:999px;padding:8px 8px 8px 18px;backdrop-filter:blur(14px);box-shadow:var(--shadow);font-size:14px;white-space:nowrap}
.sticky-cta.show{display:flex}
@media(max-width:600px){.sticky-cta{width:calc(100% - 24px);justify-content:space-between;white-space:normal}}
.nav-links a.btn.on{background:linear-gradient(135deg,var(--copper-2),var(--copper));color:#1A1408}
.table-scroll{max-width:100%;overflow-x:auto;border-radius:10px}
.table-scroll:focus{outline:2px solid var(--copper)}
@media print{
  nav,footer,.sticky-cta,.no-print,.ex-bar,.gcd-tabs{display:none!important}
  body{background:#fff;color:#000}body::before{display:none}
  .tbl th,.tbl td{color:#000;border-color:#999}
}
