/* ============================================================
   LinuxCert.Guru — Rebrand design system (dark, terminal-native)
   Applied via class="lcg" — usually on <body> for a fully-converted page,
   but also valid on a wrapper <div> to scope the theme to one region of a
   page that embeds not-yet-migrated legacy sections (e.g. rhcsaHome.html,
   which shares one <body> across several modes, only some of which are
   converted at any given time). .lcg is intentionally NOT tag-restricted
   to body so both usages work without duplicating the ruleset.
   ============================================================ */

.lcg{
  --lcg-bg:#0B0E14; --lcg-panel:#12161F; --lcg-panel-2:#0F131B;
  --lcg-hair:#1E2534; --lcg-hair-2:#2A3346;
  --lcg-ink:#E7EAF1; --lcg-soft:#AEB6C6; --lcg-mut:#727C90; --lcg-dim:#525C70;
  --lcg-red:#F2504B; --lcg-ok:#3FB950; --lcg-amber:#E3B341; --lcg-cyan:#5AD1C4; --lcg-blue:#7CA5F6; --lcg-violet:#B489F0;
  --lcg-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --lcg-mono:"SF Mono","JetBrains Mono","Cascadia Code","Fira Code",ui-monospace,"IBM Plex Mono",Menlo,Consolas,monospace;

  margin:0;
  background:var(--lcg-bg);
  color:var(--lcg-ink);
  font-family:var(--lcg-sans);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
.lcg *{box-sizing:border-box}
.lcg ::selection{background:var(--lcg-red); color:#fff}
/* theme.min.css defines `.ratio` twice: Bootstrap's aspect-ratio utility, and then
   — much later in the file, so it wins — an unrelated grey swatch component
   (`display:inline-block; width:10rem; border:1px solid`). Every `.ratio` in this
   codebase is the Bootstrap utility, so reclaim the box geometry once here rather
   than at each video call site. Kept early so the component rules below win ties. */
.lcg .ratio{display:block; width:100%; border:0; color:inherit; background-color:transparent}
/* `:where()` keeps this reset at (0,1,0) so component classes that set their own
   colour still win. Written as `.lcg a` it was (0,1,1) and silently outranked
   `.lcg-btn-red{color:#fff}` (0,1,0), making every <a> button inherit the
   surrounding text colour instead — red-on-red on the course pages. */
.lcg :where(a){color:inherit; text-decoration:none}
.lcg-mono{font-family:var(--lcg-mono)}
.lcg-container{max-width:1180px; margin:0 auto; padding:0 24px}
.lcg-eyebrow{font-family:var(--lcg-mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--lcg-red); font-weight:600}
/* theme.min.css ships its own h1-h6/code/mark/kbd/caption color rules tuned for
   a light background (e.g. headings default to #1e293b, ~1.3:1 contrast on our
   #0B0E14 ground). These reclaim every plain tag it colors so rebrand.css is the
   single source of truth for text color under .lcg, regardless of load order. */
.lcg h1,.lcg h2,.lcg h3,.lcg h4,.lcg h5,.lcg h6{text-wrap:balance; margin:0; color:var(--lcg-ink)}
.lcg code{font-family:var(--lcg-mono); font-size:.88em; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:4px; padding:1px 6px; color:var(--lcg-cyan)}
.lcg pre code{background:none; border:0; padding:0}
.lcg mark{background:rgba(227,179,65,.25); color:var(--lcg-ink); border-radius:3px; padding:0 3px}
.lcg kbd{font-family:var(--lcg-mono); font-size:.85em; background:#0a0d13; border:1px solid var(--lcg-hair-2); border-bottom-width:2px; border-radius:5px; padding:1px 6px; color:var(--lcg-soft)}
.lcg caption{color:var(--lcg-mut); font-family:var(--lcg-mono); font-size:11px; text-align:left; caption-side:bottom; padding-top:8px}

/* ---------- buttons ---------- */
.lcg-btn-red,.lcg-btn-ghost,.lcg-btn-violet{
  font-family:var(--lcg-mono); font-size:13px; font-weight:600; cursor:pointer;
  border-radius:8px; padding:9px 16px; display:inline-flex; align-items:center; gap:8px;
  border:1px solid transparent; text-decoration:none; line-height:1.2;
}
.lcg-btn-red{background:var(--lcg-red); color:#fff; box-shadow:0 4px 16px -6px var(--lcg-red)}
.lcg-btn-red:hover{filter:brightness(1.06)}
.lcg-btn-violet{background:var(--lcg-violet); color:#0b0e14; box-shadow:0 4px 16px -6px var(--lcg-violet)}
.lcg-btn-violet:hover{filter:brightness(1.06)}
.lcg-btn-ghost{background:transparent; color:var(--lcg-soft); border-color:var(--lcg-hair-2)}
.lcg-btn-ghost:hover{background:#0e131c; color:var(--lcg-ink)}

.lcg-chip{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut); border:1px solid var(--lcg-hair-2); border-radius:999px; padding:6px 13px; cursor:pointer; background:transparent}
.lcg-chip:hover{color:var(--lcg-soft)}
.lcg-chip.on{color:var(--lcg-ink); border-color:var(--lcg-red); background:rgba(242,80,75,.08)}
.lcg-tag{font-family:var(--lcg-mono); font-size:11px; padding:4px 9px; border-radius:6px; border:1px solid var(--lcg-hair-2); color:var(--lcg-soft)}
.lcg-tag.violet{background:rgba(180,137,240,.12); border-color:rgba(180,137,240,.35); color:var(--lcg-violet)}

/* ---------- top nav ---------- */
.lcg-nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--lcg-bg) 88%, transparent); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--lcg-hair)}
.lcg-nav-row{display:flex; align-items:center; gap:16px; height:60px}
.lcg-brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:-.01em; font-size:16px; color:var(--lcg-ink)}
.lcg-brand .g{width:28px; height:28px; border-radius:7px; background:var(--lcg-red); display:grid; place-items:center; color:#fff; font-family:var(--lcg-mono); font-size:14px; font-weight:700}
.lcg-nav-spacer{flex:1}
.lcg-nav-links{display:flex; align-items:center; gap:2px}
.lcg-nav-links a.lcg-nl{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:7px 11px; border-radius:7px}
.lcg-nav-links a.lcg-nl:hover{color:var(--lcg-soft); background:#131926}
.lcg-nav-links a.lcg-nl.on{color:var(--lcg-ink); background:#161d2a}
.lcg-nav-social{display:flex; gap:2px; margin:0 4px}
.lcg-nav-social a{color:var(--lcg-mut); padding:7px 8px; font-size:15px}
.lcg-nav-social a:hover{color:var(--lcg-ink)}
.lcg-nav-auth{display:flex; align-items:center; gap:8px}
.lcg-avatar{width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,#2b3446,#1a2130); border:1px solid var(--lcg-hair-2); display:grid; place-items:center; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-soft); font-weight:600}
.lcg-burger{display:none; background:transparent; border:1px solid var(--lcg-hair-2); color:var(--lcg-soft); border-radius:8px; font-size:18px; line-height:1; padding:6px 11px; cursor:pointer}
.lcg-salewrap :where(*){max-width:100%}

/* ---------- top nav: grouped links (public rebrandHeader.html only --
   adminHeader.html still uses the flat .lcg-nav-links pattern above verbatim) ---------- */
.lcg-nav-groups{display:flex; align-items:center; gap:2px}
.lcg-nav-groups a.lcg-nl{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:7px 11px; border-radius:7px}
.lcg-nav-groups a.lcg-nl:hover{color:var(--lcg-soft); background:#131926}
.lcg-nav-groups a.lcg-nl.on{color:var(--lcg-ink); background:#161d2a}
.lcg-dropdown{position:relative}
.lcg-nl-trigger{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:7px 11px; border-radius:7px; background:transparent; border:0; cursor:pointer; display:inline-flex; align-items:center; gap:5px}
.lcg-nl-trigger:hover{color:var(--lcg-soft); background:#131926}
.lcg-nl-trigger.on,.lcg-nl-trigger[aria-expanded="true"]{color:var(--lcg-ink); background:#161d2a}
.lcg-nl-trigger .lcg-chev{transition:transform .15s ease; flex:none}
.lcg-nl-trigger[aria-expanded="true"] .lcg-chev{transform:rotate(180deg)}
.lcg-panel{display:none; position:absolute; top:calc(100% + 10px); left:0; min-width:190px; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:12px; box-shadow:0 24px 40px -20px rgba(0,0,0,.6); padding:8px}
.lcg-panel.open{display:block}
.lcg-panel-certs{width:300px}
.lcg-cert-row{display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:8px}
.lcg-cert-row:hover{background:var(--lcg-panel)}
.lcg-cert-row .ic{width:30px; height:30px; border-radius:8px; background:var(--lcg-bg); border:1px solid var(--lcg-hair-2); display:grid; place-items:center; font-family:var(--lcg-mono); font-size:9.5px; color:var(--lcg-cyan); font-weight:700; flex:none}
.lcg-cert-row b{display:block; font-size:12.5px; color:var(--lcg-ink); font-weight:600}
.lcg-cert-row span.d{display:block; font-size:11px; color:var(--lcg-mut); margin-top:1px}
.lcg-res-row{display:block; padding:9px 10px; border-radius:8px; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-soft)}
.lcg-res-row:hover{background:var(--lcg-panel); color:var(--lcg-ink)}
.lcg-nav-cta{display:flex; align-items:center; gap:8px}
.lcg-nav-drawer{display:none}
.lcg-drawer-label{font-family:var(--lcg-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--lcg-dim); padding:12px 11px 2px; display:block}
.lcg-drawer-label:first-child{padding-top:2px}
.lcg-drawer-cta{display:flex; gap:8px; padding:14px 11px 4px; margin-top:6px; border-top:1px solid var(--lcg-hair)}

/* ---------- footer ---------- */
.lcg-footer{border-top:1px solid var(--lcg-hair); margin-top:56px; padding:40px 0 26px}
.lcg-footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px 28px}
.lcg-footer-tag{font-size:13px; color:var(--lcg-mut); line-height:1.6; margin:12px 0 16px; max-width:32ch}
.lcg-footer-social{display:flex; gap:14px}
.lcg-footer-social a{color:var(--lcg-mut); font-size:15px}
.lcg-footer-social a:hover{color:var(--lcg-ink)}
.lcg-footer-col{display:flex; flex-direction:column; gap:11px}
.lcg-footer-head{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-soft); margin-bottom:3px; padding-bottom:10px; border-bottom:1px solid var(--lcg-hair)}
.lcg-footer-head .prompt{color:var(--lcg-red); font-weight:600; margin-right:6px}
.lcg-footer-col a{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut)}
.lcg-footer-col a:hover{color:var(--lcg-ink)}
.lcg-footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-top:34px; padding-top:18px; border-top:1px solid var(--lcg-hair)}
.lcg-footer-prompt.cp{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.lcg-footer-prompt .who{color:var(--lcg-cyan)}
.lcg-footer-cursor{display:inline-block; width:7px; height:12px; background:var(--lcg-red); margin-left:3px; vertical-align:-1px; animation:lcgFooterBlink 1s steps(1) infinite}
@keyframes lcgFooterBlink{0%,49%{opacity:1} 50%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.lcg-footer-cursor{animation:none}}
.lcg-footer-top{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.lcg-footer-top:hover{color:var(--lcg-ink)}
@media (max-width:900px){.lcg-footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.lcg-footer-grid{grid-template-columns:1fr}}

/* ---------- generic page hero ---------- */
.lcg-pagehero{padding:52px 0 30px; text-align:center; background:radial-gradient(900px 320px at 50% -10%, rgba(242,80,75,.08), transparent 62%)}
.lcg-pagehero h1{font-size:clamp(1.9rem,4vw,2.9rem); letter-spacing:-.03em; font-weight:800; line-height:1.06; max-width:20ch; margin:0 auto}
.lcg-pagehero h1 .r{color:var(--lcg-red)}
.lcg-pagehero p{color:var(--lcg-soft); font-size:1.02rem; max-width:60ch; margin:16px auto 0}

/* ---------- sale strip (wraps admin-managed banner html) ---------- */
.lcg-sale{display:flex; align-items:center; justify-content:center; gap:12px; padding:9px 16px; text-align:center; background:linear-gradient(90deg,rgba(242,80,75,.14),rgba(227,179,65,.12)); border-bottom:1px solid var(--lcg-hair); font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-soft)}
.lcg-sale b{color:var(--lcg-ink)}
.lcg-sale .code{border:1px dashed var(--lcg-amber); color:var(--lcg-amber); padding:2px 8px; border-radius:6px}

/* ============ Testimonials (Mock 04) ============ */
.tm-stats{display:flex; margin:26px auto 0; border:1px solid var(--lcg-hair); border-radius:12px; overflow:hidden; max-width:620px; background:var(--lcg-panel-2)}
.tm-stats .st{flex:1; padding:16px; border-right:1px solid var(--lcg-hair)}
.tm-stats .st:last-child{border-right:0}
.tm-stats .st b{display:block; font-family:var(--lcg-mono); font-size:22px; font-weight:700; color:var(--lcg-ink)}
.tm-stats .st span{font-size:11px; color:var(--lcg-mut)}
.tm-filter{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; padding:26px 0 8px}
.tm-grid{columns:3; column-gap:16px; padding:16px 0 20px}
.tm-card{break-inside:avoid; background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:12px; padding:16px 17px; margin-bottom:16px}
.tm-card.hide{display:none}
.tm-stars{color:var(--lcg-amber); letter-spacing:2px; font-size:12px; margin-bottom:9px}
.tm-card p{margin:0 0 13px; font-size:13.5px; color:var(--lcg-soft); line-height:1.55}
.tm-who{display:flex; align-items:center; gap:10px}
.tm-who .av{width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#2b3446,#1a2130); display:grid; place-items:center; font-family:var(--lcg-mono); font-size:11px; color:var(--lcg-soft); font-weight:600; flex:none}
.tm-who b{font-size:12.5px; display:block}
.tm-who span{font-family:var(--lcg-mono); font-size:10.5px; color:var(--lcg-mut)}
.tm-who .ct{margin-left:auto; font-family:var(--lcg-mono); font-size:10px; color:var(--lcg-dim); border:1px solid var(--lcg-hair); padding:2px 7px; border-radius:5px}

/* ============ Legal pages (Mock 08) ============ */
.lg-grid{display:grid; grid-template-columns:220px 1fr; gap:36px; padding:30px 0 10px; align-items:start}
.lg-nav{position:sticky; top:80px; display:flex; flex-direction:column; gap:3px}
.lg-nav a{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:7px 11px; border-radius:7px}
.lg-nav a:hover{color:var(--lcg-soft)}
.lg-nav a.on{color:var(--lcg-ink); background:#161d2a}
.lg-updated{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-dim); border:1px solid var(--lcg-hair); border-radius:8px; padding:9px 13px; margin-bottom:22px; display:inline-block}
/* Single-column variant of .lg-grid, for legal pages whose source copy has no
   sections to build a .lg-nav from (e.g. Terms). */
.lg-solo{padding:30px 0 10px}
.lg-solo .lg-body{margin:0 auto}
.lg-body{max-width:70ch; color:var(--lcg-soft); line-height:1.75; font-size:15px}
.lg-body h2,.lg-body .h1{font-size:1.2rem; color:var(--lcg-ink); margin:26px 0 10px; font-weight:750; letter-spacing:-.01em}
.lg-body h3{font-size:1rem; color:var(--lcg-ink); margin:20px 0 8px; font-weight:700}
.lg-body p{margin:0 0 14px}
.lg-body ul{margin:0 0 16px; padding-left:20px}
.lg-body li{margin-bottom:8px}
.lg-body a{color:var(--lcg-red)}
.lg-body strong{color:var(--lcg-ink)}
/* Extra tags CMS-authored blog bodies use that the legal pages don't */
.lg-body h4{font-size:.92rem; color:var(--lcg-ink); margin:18px 0 8px; font-weight:700}
.lg-body ol{margin:0 0 16px; padding-left:20px}
.lg-body blockquote{margin:0 0 16px; padding:10px 16px; border-left:3px solid var(--lcg-red); background:var(--lcg-panel-2); color:var(--lcg-soft); border-radius:0 8px 8px 0}
.lg-body code{font-family:var(--lcg-mono); font-size:.88em; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:4px; padding:1px 6px; color:var(--lcg-cyan)}
.lg-body pre{background:#080B10; border:1px solid var(--lcg-hair); border-radius:10px; padding:14px 16px; overflow-x:auto; margin:0 0 18px}
.lg-body pre code{background:none; border:0; padding:0; color:var(--lcg-soft); font-size:12.5px; line-height:1.6}
.lg-body img{max-width:100%; height:auto; border-radius:10px; border:1px solid var(--lcg-hair); margin:6px 0 18px; display:block}
.lg-body hr{border:0; border-top:1px solid var(--lcg-hair); margin:26px 0}
.lg-body .table-wrap{overflow-x:auto; margin:0 0 18px}
.lg-body table{width:100%; border-collapse:collapse; font-size:13.5px}
.lg-body th{text-align:left; font-family:var(--lcg-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--lcg-mut); border-bottom:1px solid var(--lcg-hair-2); padding:9px 12px; white-space:nowrap}
.lg-body td{border-bottom:1px solid var(--lcg-hair); padding:10px 12px; color:var(--lcg-soft)}

/* ============ Pricing (Mock 05) ============ */
.pr-hero{text-align:center; padding:8px 0 6px}
.pr-hero .tagline{font-size:1.15rem; color:var(--lcg-ink)}
.pr-hero .tagline b{color:var(--lcg-red)}
.pr-switch{display:flex; align-items:center; justify-content:center; gap:12px; margin:20px 0 6px}
.pr-switch span{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut)}
.pr-switch .save{color:var(--lcg-amber); font-weight:600}
.pr-toggle{position:relative; display:inline-block; width:46px; height:26px; flex:none}
.pr-toggle input{opacity:0; width:100%; height:100%; margin:0; cursor:pointer; position:relative; z-index:1}
.pr-toggle .track{position:absolute; inset:0; background:var(--lcg-hair-2); border-radius:999px; transition:background .15s}
.pr-toggle .knob{position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:var(--lcg-ink); transition:transform .15s}
.pr-toggle input:checked ~ .track{background:var(--lcg-red)}
.pr-toggle input:checked ~ .knob{transform:translateX(20px)}
.pr-toggle input:focus-visible ~ .track{outline:2px solid var(--lcg-red); outline-offset:2px}

.pr-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:30px 0}
.plan{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:24px; display:flex; flex-direction:column; gap:16px; position:relative}
.plan.pop{border-color:var(--lcg-red); box-shadow:0 0 0 1px var(--lcg-red)}
.plan.value{border-color:var(--lcg-violet); box-shadow:0 0 0 1px var(--lcg-violet)}
.plan .badge{position:absolute; top:-11px; left:50%; transform:translateX(-50%); font-family:var(--lcg-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; background:var(--lcg-red); color:#fff; padding:4px 12px; border-radius:999px; white-space:nowrap}
/* Violet is light enough that white-on-violet is only 2.7:1; dark ink on it is
   6.9:1, same trade the amber lab-link badge makes. */
.plan .badge.value{background:var(--lcg-violet); color:#180E29}
.plan .pn{font-size:18px; font-weight:750}
.plan .price{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; min-height:44px}
.plan .price .was{font-family:var(--lcg-mono); font-size:15px; color:var(--lcg-dim); text-decoration:line-through}
.plan .price .now{font-family:var(--lcg-mono); font-size:36px; font-weight:800; letter-spacing:-.02em; color:var(--lcg-ink)}
.plan .price .per{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.plan ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px}
.plan ul li{display:flex; gap:10px; font-size:13.5px; color:var(--lcg-soft)}
.plan ul li .c{color:var(--lcg-ok); flex:none}
.plan .pcta{margin-top:auto}
.plan .pcta form{margin:0}
.plan .pcta button,.plan .pcta a.lcg-btn-red,.plan .pcta a.lcg-btn-ghost{width:100%; justify-content:center}
.plan .pcta a.lcg-btn-ghost.disabled{opacity:.55; cursor:default; pointer-events:none}

.pr-notes{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:8px 0 34px}
.pr-note{background:var(--lcg-panel-2); border:1px solid var(--lcg-hair); border-radius:11px; padding:15px 16px; font-size:12.5px; color:var(--lcg-mut); line-height:1.6}
.pr-note b{color:var(--lcg-soft); display:block; font-size:12.5px; margin-bottom:5px; font-family:var(--lcg-mono); text-transform:uppercase; letter-spacing:.05em}
.pr-note a{color:var(--lcg-red)}

.pr-compare{margin:8px 0 40px}
.pr-compare h2{font-size:1.5rem; letter-spacing:-.02em; font-weight:750; text-align:center}
.pr-compare > p{text-align:center; color:var(--lcg-mut); max-width:60ch; margin:10px auto 24px; font-size:14px}
.pr-compare .table-wrap{overflow-x:auto; border:1px solid var(--lcg-hair); border-radius:12px}
.pr-compare table{width:100%; border-collapse:collapse; font-size:13.5px; background:var(--lcg-panel)}
.pr-compare th{font-family:var(--lcg-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--lcg-mut); padding:12px 16px; text-align:center; border-bottom:1px solid var(--lcg-hair-2)}
.pr-compare th:first-child{text-align:left}
.pr-compare td{padding:12px 16px; text-align:center; color:var(--lcg-soft); border-bottom:1px solid var(--lcg-hair)}
.pr-compare td:first-child{text-align:left; color:var(--lcg-ink)}
.pr-compare tr:last-child td{border-bottom:0}
.pr-compare .yes{color:var(--lcg-ok)}
.pr-compare .no{color:var(--lcg-dim)}

.pr-testi h2{font-size:1.5rem; letter-spacing:-.02em; font-weight:750; text-align:center}
.pr-testi > p{text-align:center; color:var(--lcg-mut); max-width:60ch; margin:10px auto 26px; font-size:14px}
.pr-testi .tm-grid{columns:3}
.pr-testi-more{text-align:center; margin-top:8px}

/* ============ Blog list (Mock 06) ============ */
.bl-controls{display:flex; gap:12px; align-items:center; margin:22px 0 30px; flex-wrap:wrap}
.bl-search{flex:1; min-width:220px; display:flex; align-items:center; gap:9px; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:9px; padding:10px 14px}
.bl-search input{flex:1; background:none; border:0; color:var(--lcg-ink); font-size:13.5px; font-family:var(--lcg-sans)}
.bl-search input:focus{outline:0}
.bl-search input::placeholder{color:var(--lcg-mut)}
.bl-search .ic{color:var(--lcg-mut); font-size:13px}
.bl-empty{text-align:center; padding:60px 20px; color:var(--lcg-mut); font-size:14px}

.bl-feat{display:grid; grid-template-columns:1.15fr 1fr; border:1px solid var(--lcg-hair); border-radius:16px; overflow:hidden; background:var(--lcg-panel); margin-bottom:30px}
.bl-feat .thumb{position:relative; background:linear-gradient(135deg,#1a2233,#0e1420); min-height:230px; display:grid; place-items:center; color:var(--lcg-dim); font-size:56px}
.bl-feat .thumb .badge{position:absolute; top:16px; left:16px; font-family:var(--lcg-mono); font-size:10px; background:var(--lcg-red); color:#fff; padding:4px 10px; border-radius:6px; letter-spacing:.06em; text-transform:uppercase}
.bl-feat .fx{padding:28px 30px; display:flex; flex-direction:column; gap:12px; justify-content:center; min-width:0}
.bl-feat .fx h2{font-size:23px; letter-spacing:-.02em; font-weight:750; line-height:1.25}
.bl-feat .fx h2 a{color:var(--lcg-ink)}
.bl-feat .fx h2 a:hover{color:var(--lcg-red)}
.bl-feat .fx p{margin:0; font-size:13.5px; color:var(--lcg-mut); line-height:1.6}
.bl-feat .fx .meta{font-family:var(--lcg-mono); font-size:11px; color:var(--lcg-dim); display:flex; gap:14px; align-items:center}

.bl-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.post{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:13px; overflow:hidden; display:flex; flex-direction:column}
.post:hover{border-color:var(--lcg-hair-2)}
.post .pt{height:120px; background:linear-gradient(135deg,#182031,#0e1420); display:grid; place-items:center; color:var(--lcg-dim); font-size:32px}
.post .pb{padding:15px 16px; display:flex; flex-direction:column; gap:9px; flex:1}
.post h3{font-size:14.5px; font-weight:700; letter-spacing:-.01em; line-height:1.35}
.post h3 a{color:var(--lcg-ink)}
.post h3 a:hover{color:var(--lcg-red)}
.post p{margin:0; font-size:12.5px; color:var(--lcg-mut); line-height:1.5; flex:1}
.post .meta{font-family:var(--lcg-mono); font-size:10.5px; color:var(--lcg-dim); display:flex; gap:10px; border-top:1px solid var(--lcg-hair); padding-top:10px}

/* ============ Blog article (Mock 07) ============ */
.ar-crumb{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut); display:flex; gap:8px; align-items:center; margin-bottom:18px}
.ar-crumb a{color:var(--lcg-mut)}
.ar-crumb a:hover{color:var(--lcg-ink)}
.ar-hero h1{font-size:clamp(1.7rem,3.4vw,2.5rem); letter-spacing:-.03em; font-weight:800; line-height:1.14; max-width:26ch}
.ar-meta{display:flex; align-items:center; gap:10px; margin-top:16px; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.ar-body{display:grid; grid-template-columns:210px 1fr; gap:36px; margin-top:30px; align-items:start}
.ar-toc{position:sticky; top:80px; border-left:2px solid var(--lcg-hair); padding-left:14px; display:none}
.ar-toc.has-items{display:flex; flex-direction:column; gap:2px}
.ar-toc .th{font-family:var(--lcg-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--lcg-dim); margin-bottom:9px}
.ar-toc a{font-size:12px; color:var(--lcg-mut); padding:5px 0; line-height:1.35}
.ar-toc a:hover{color:var(--lcg-soft)}
.ar-toc a.on{color:var(--lcg-red)}
.ar-cta{border:1px solid rgba(242,80,75,.35); background:linear-gradient(135deg,rgba(242,80,75,.08),transparent); border-radius:14px; padding:20px 22px; display:flex; align-items:center; gap:16px; margin-top:34px; flex-wrap:wrap}
.ar-cta .ci{width:42px; height:42px; border-radius:11px; background:var(--lcg-red); color:#fff; display:grid; place-items:center; font-family:var(--lcg-mono); font-weight:700; flex:none}
.ar-cta .ct b{display:block; font-size:14px}
.ar-cta .ct span{font-size:12px; color:var(--lcg-mut)}
.ar-cta .lcg-btn-red{margin-left:auto; white-space:nowrap}

/* ============ Contact (Mock 08) ============ */
.ct-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:28px; padding:30px 0 10px}
.ct-form{display:flex; flex-direction:column; gap:15px}
.ct-form .fld label{font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-mut); display:block; margin-bottom:6px; letter-spacing:.03em}
.ct-form .fld input,.ct-form .fld select,.ct-form .fld textarea{
  width:100%; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:9px;
  padding:11px 13px; font-size:14px; color:var(--lcg-ink); font-family:var(--lcg-sans);
}
.ct-form .fld textarea{min-height:120px; resize:vertical}
.ct-form .fld input:focus,.ct-form .fld select:focus,.ct-form .fld textarea:focus{outline:2px solid var(--lcg-red); outline-offset:1px; border-color:var(--lcg-red)}
.ct-side{display:flex; flex-direction:column; gap:12px}
.ct-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:12px; padding:16px; display:flex; gap:13px; align-items:flex-start}
.ct-card .ci{width:40px; height:40px; border-radius:10px; display:grid; place-items:center; font-size:17px; flex:none}
.ct-card b{display:block; font-size:14px}
.ct-card span{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.ct-card a{color:var(--lcg-red)}

/* FAQ accordion (contact) */
.lcg-faq{max-width:820px; margin:0 auto; padding:10px 0 10px}
.lcg-faq h2{font-size:1.4rem; letter-spacing:-.02em; font-weight:750; text-align:center; margin-bottom:20px}
.faq-item{border:1px solid var(--lcg-hair); border-radius:12px; margin-bottom:10px; background:var(--lcg-panel); overflow:hidden}
.faq-item > summary{list-style:none; cursor:pointer; padding:15px 18px; font-weight:600; font-size:14.5px; display:flex; align-items:center; gap:12px}
.faq-item > summary::-webkit-details-marker{display:none}
.faq-item > summary::before{content:"+"; font-family:var(--lcg-mono); color:var(--lcg-red); font-size:16px; flex:none}
.faq-item[open] > summary::before{content:"−"}
.faq-item .faq-a{padding:0 18px 16px 42px; color:var(--lcg-soft); font-size:13.5px; line-height:1.6}
.faq-item .faq-a a{color:var(--lcg-red)}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .tm-grid{columns:2}
  .lg-grid{grid-template-columns:1fr}
  .lg-nav{position:static; flex-direction:row; flex-wrap:wrap; margin-bottom:16px}
  .ct-grid{grid-template-columns:1fr}
  .pr-grid{grid-template-columns:1fr}
  .pr-notes{grid-template-columns:1fr}
  .pr-testi .tm-grid{columns:2}
  .bl-feat{grid-template-columns:1fr}
  .bl-grid{grid-template-columns:repeat(2,1fr)}
  .ar-body{grid-template-columns:1fr}
  .ar-toc{display:none !important}
}
/* The expanded nav row (5 course links + 3 utility links + socials + auth button)
   needs ~1010px. Collapsing it only under 760px left every page scrolling
   horizontally between 761px and 1009px, so the burger takes over below 1024px.
   adminHeader.html still renders that flat row (.lcg-nav-links), so its rules stay
   below unchanged; rebrandHeader.html's grouped nav uses .lcg-nav-groups/.lcg-nav-cta/
   .lcg-nav-drawer instead, collapsed at the same breakpoint just below. */
@media (max-width:1023.98px){
  .lcg-burger{display:inline-block}
  .lcg-nav-links{display:none; position:absolute; top:60px; left:0; right:0; flex-direction:column; align-items:stretch; gap:4px; padding:14px 24px; background:var(--lcg-bg); border-bottom:1px solid var(--lcg-hair)}
  .lcg-nav-links.open{display:flex}
  .lcg-nav-social{margin:6px 0}

  .lcg-nav-groups,.lcg-nav-cta{display:none}
  .lcg-nav-drawer{position:absolute; top:60px; left:0; right:0; flex-direction:column; align-items:stretch; gap:2px; padding:14px 24px 18px; background:var(--lcg-bg); border-bottom:1px solid var(--lcg-hair)}
  .lcg-nav-drawer.open{display:flex}
  .lcg-nav-drawer a.lcg-nl{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:9px 11px; border-radius:7px}
  .lcg-nav-drawer a.lcg-nl:hover{color:var(--lcg-soft); background:#131926}
  .lcg-nav-drawer a.lcg-nl.on{color:var(--lcg-ink); background:#161d2a}
}
@media (max-width:760px){
  .tm-grid{columns:1}
  .pr-testi .tm-grid{columns:1}
  .bl-grid{grid-template-columns:1fr}
  .pr-compare table{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.lcg *{scroll-behavior:auto !important}}

/* ============ Home hero + feature showcase (rhcsaHome.html, lab=='') ============ */
.home-hero{padding:52px 24px 8px; text-align:center; background:radial-gradient(900px 340px at 50% -8%, rgba(242,80,75,.10), transparent 62%)}
.home-hero .kick{display:inline-flex; align-items:center; gap:9px; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-soft); border:1px solid var(--lcg-hair-2); border-radius:999px; padding:6px 14px; margin-bottom:22px}
.home-hero .kick .d{width:7px; height:7px; border-radius:50%; background:var(--lcg-ok); box-shadow:0 0 0 3px rgba(63,185,80,.15)}
.home-hero h1{font-size:clamp(2rem,4.6vw,3.2rem); line-height:1.08; letter-spacing:-.03em; font-weight:800; max-width:22ch; margin:0 auto}
.home-hero h1 .r{color:var(--lcg-red)}
.home-hero p.sub{color:var(--lcg-soft); font-size:16px; max-width:56ch; margin:16px auto 0}

.home-video{max-width:900px; margin:32px auto 0; position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--lcg-hair); box-shadow:0 40px 80px -34px rgba(0,0,0,.6)}
.home-video .facade{position:relative; cursor:pointer; display:block}
.home-video .facade .ratio{padding-top:56.25%; position:relative; background:var(--lcg-panel)}
.home-video .facade img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.home-video .facade .play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:50%; background:var(--lcg-red); display:grid; place-items:center; box-shadow:0 10px 34px -8px rgba(242,80,75,.7); transition:transform .15s}
.home-video .facade:hover .play{transform:translate(-50%,-50%) scale(1.06)}
.home-video .embed{padding-top:56.25%; position:relative; display:none}

.home-cta{margin:30px 0 6px}
.home-trust{display:flex; gap:22px; justify-content:center; margin-top:22px; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut); flex-wrap:wrap}
.home-trust b{color:var(--lcg-soft)}

.showcase-wrap{max-width:1180px; margin:0 auto; padding:44px 24px 8px}
.sc-h{text-align:center; margin-bottom:24px}
.sc-h b{font-size:19px; font-weight:750; letter-spacing:-.01em}
.sc-h span{display:block; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut); margin-top:6px}
.showcase{display:grid; grid-template-columns:340px 1fr; gap:20px}
.sc-list{display:flex; flex-direction:column; gap:9px}
.sc-item{display:flex; gap:14px; align-items:flex-start; text-align:left; background:transparent; border:1px solid var(--lcg-hair); border-radius:12px; padding:15px 16px; cursor:pointer; color:var(--lcg-soft); position:relative; overflow:hidden; font-family:inherit; width:100%}
.sc-item:hover{border-color:var(--lcg-hair-2); background:var(--lcg-panel-2)}
.sc-item.on{background:var(--lcg-panel); border-color:rgba(242,80,75,.45)}
.sc-n{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-dim); font-weight:700; flex:none; margin-top:1px}
.sc-item.on .sc-n{color:var(--lcg-red)}
.sc-tx b{display:block; font-size:14.5px; font-weight:650; color:var(--lcg-soft); margin-bottom:3px}
.sc-item.on .sc-tx b{color:var(--lcg-ink)}
.sc-tx span{font-size:12.5px; color:var(--lcg-mut); line-height:1.5}
.sc-prog{position:absolute; left:0; bottom:0; height:2px; width:100%; background:transparent}
.sc-prog i{display:block; height:100%; width:0; background:var(--lcg-red)}
.sc-stage{position:relative; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair); border-radius:14px; min-height:360px; overflow:hidden}
.sc-panel{position:absolute; inset:0; padding:26px 28px; opacity:0; transform:translateY(9px); transition:opacity .5s ease, transform .5s ease; pointer-events:none; display:flex; flex-direction:column; gap:13px; overflow-y:auto}
.sc-panel.on{opacity:1; transform:none; pointer-events:auto}
.sc-panel h4{font-size:17px; font-weight:750; letter-spacing:-.01em}
.sc-panel ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px}
.sc-panel ul li{display:flex; gap:11px; font-size:13.5px; color:var(--lcg-soft); line-height:1.55}
.sc-panel ul li .c{color:var(--lcg-red); flex:none; font-family:var(--lcg-mono)}
.sc-panel p{margin:0; font-size:13.5px; color:var(--lcg-soft); line-height:1.6}
@media (max-width:820px){.showcase{grid-template-columns:1fr}}

/* ============ Individual lab page (rhcsaHome.html, else branch) ============ */
.lab-wrap{max-width:1180px; margin:0 auto; padding:26px 24px 40px}
.lab-hero{display:grid; grid-template-columns:1fr 1.35fr; gap:0; background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; overflow:hidden; margin-bottom:22px}
.lab-hero .thumb{position:relative; background:var(--lcg-panel-2); min-height:260px}
.lab-hero .thumb img,.lab-hero .thumb iframe{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border:0}
.lab-hero .thumb .flask{position:absolute; inset:0; display:grid; place-items:center; font-size:64px; color:var(--lcg-hair-2)}
.lab-hero .thumb .dl{position:absolute; top:12px; left:12px; z-index:2; background:var(--lcg-red); color:#fff; border:0; border-radius:7px; padding:6px 9px; cursor:pointer}
.lab-hero .thumb .dl.disabled{background:rgba(242,80,75,.5); cursor:not-allowed}
.lab-hero .body{padding:24px 26px; display:flex; flex-direction:column; gap:14px}
.lab-hero .tag{display:inline-flex; width:fit-content}
.lab-hero h1{font-size:22px; letter-spacing:-.01em; font-weight:750}
.lab-hero .desc{color:var(--lcg-soft); font-size:14px; line-height:1.6; margin:0}
.lab-region{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair); border-radius:10px; padding:10px 13px}
.lab-region label{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut)}
.lab-region select{background:var(--lcg-bg); border:1px solid var(--lcg-hair-2); border-radius:7px; color:var(--lcg-ink); font-size:13px; padding:6px 10px}
.lab-region .spinner-border{width:16px; height:16px; border-width:2px}
.lab-region .alert{margin:0; padding:4px 9px; border-radius:6px; font-family:var(--lcg-mono); font-size:11px}
.lab-region .alert-success{background:rgba(63,185,80,.14); color:var(--lcg-ok)}
.lab-region .alert-danger{background:rgba(242,80,75,.14); color:var(--lcg-red)}
.lab-launch{margin-top:auto}
.lab-launch form{margin:0}
.lab-launch .lcg-btn-red,.lab-launch .lcg-btn-ghost{width:100%; justify-content:center; font-size:13.5px; padding:11px 16px}

.lab-nav{display:flex; gap:10px; margin-bottom:22px; flex-wrap:wrap}
.lab-nav .lcg-btn-ghost,.lab-nav .lcg-btn-red{font-size:12.5px}

.lab-material{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; overflow:hidden; margin-bottom:22px}
.lab-tabs{display:flex; gap:2px; border-bottom:1px solid var(--lcg-hair); padding:0 14px}
.lab-tabs .nav-link{background:transparent; border:0; font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut); padding:13px 14px; cursor:pointer; border-bottom:2px solid transparent}
.lab-tabs .nav-link.active{color:var(--lcg-ink); border-bottom-color:var(--lcg-red)}
.lab-tabs .nav-link:hover{color:var(--lcg-soft)}
.lab-material .lg-body{padding:22px 24px; max-width:none}
.lab-video-embed{max-width:900px; margin:0 auto; padding:22px 24px; position:relative}
.lab-video-embed .ratio{padding-top:56.25%; position:relative; background:var(--lcg-panel-2); border-radius:10px; overflow:hidden}

.lab-submissions{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:20px 22px; margin-bottom:22px}
.lab-submissions .lh{font-family:var(--lcg-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--lcg-mut); margin-bottom:14px}
.lab-submissions table{width:100%; border-collapse:collapse; font-size:13px}
.lab-submissions thead th{font-family:var(--lcg-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--lcg-mut); text-align:center; padding:9px 10px; border-bottom:1px solid var(--lcg-hair-2)}
.lab-submissions tbody td{text-align:center; padding:10px; color:var(--lcg-soft); border-bottom:1px solid var(--lcg-hair)}
.lab-submissions .score{font-family:var(--lcg-mono); font-weight:700}
.lab-submissions .dataTables_wrapper .dataTables_length,
.lab-submissions .dataTables_wrapper .dataTables_filter,
.lab-submissions .dataTables_wrapper .dataTables_info,
.lab-submissions .dataTables_wrapper .dataTables_paginate{color:var(--lcg-mut); font-family:var(--lcg-mono); font-size:11.5px}
.lab-submissions .dataTables_wrapper .dataTables_length select{background:var(--lcg-panel-2); color:var(--lcg-ink); border:1px solid var(--lcg-hair-2); border-radius:5px}
.lab-submissions .dataTables_wrapper .paginate_button{color:var(--lcg-soft) !important; padding:3px 9px; border-radius:6px}
.lab-submissions .dataTables_wrapper .paginate_button.current{background:var(--lcg-red) !important; color:#fff !important; border:0 !important}
.lab-submissions .dataTables_wrapper .paginate_button:hover{background:var(--lcg-panel-2) !important; color:var(--lcg-ink) !important; border:0 !important}
@media (max-width:820px){.lab-hero{grid-template-columns:1fr} .lab-hero .thumb{min-height:200px}}

/* ============ Course landing page (landingPage.html) ============ */
.co-feat-grid{max-width:1180px; margin:24px auto 0; padding:0 24px; position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.co-feat{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-top:3px solid var(--lcg-red); border-radius:12px; padding:26px 20px; text-align:center}
.co-feat .ic{width:52px; height:52px; margin:0 auto 14px; border-radius:12px; background:rgba(242,80,75,.1); display:grid; place-items:center; color:var(--lcg-red); font-size:22px}
.co-feat b{display:block; font-size:15px; font-weight:700; margin-bottom:8px}
.co-feat p{margin:0; font-size:12.5px; color:var(--lcg-mut); line-height:1.55}

.co-section{max-width:1180px; margin:0 auto; padding:52px 24px 8px}
.co-section .sec-h{text-align:center; margin-bottom:30px}
.co-section .sec-h .eyebrow{display:block; margin-bottom:10px}
.co-section .sec-h h2{font-size:clamp(1.5rem,2.6vw,2.1rem); letter-spacing:-.02em; font-weight:800}

.lab-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.lab-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:13px; overflow:hidden; display:flex; flex-direction:column}
.lab-card:hover{border-color:var(--lcg-hair-2)}
.lab-card .lc-thumb{height:110px; background:linear-gradient(135deg,#182031,#0e1420); display:grid; place-items:center; font-size:30px; color:var(--lcg-hair-2)}
.lab-card .lc-body{padding:15px 16px; display:flex; flex-direction:column; gap:10px; flex:1}
.lab-card .lc-top{display:flex; align-items:center; justify-content:space-between}
.lab-card .lc-plays{font-family:var(--lcg-mono); font-size:11px; color:var(--lcg-mut)}
.lab-card h3{font-size:14px; font-weight:700; letter-spacing:-.01em; line-height:1.35}
.lab-card p{margin:0; font-size:12px; color:var(--lcg-mut); line-height:1.5; flex:1}
.lab-card a.play{font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-red); font-weight:600; align-self:flex-start}

.co-video{max-width:900px; margin:0 auto; position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--lcg-hair); background:var(--lcg-panel-2)}
.co-video .ratio{padding-top:42%; position:relative}
.co-video .play-button{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:78px; height:78px; border-radius:50%; background:var(--lcg-red); display:grid; place-items:center; cursor:pointer; box-shadow:0 10px 34px -8px rgba(242,80,75,.7)}

.co-toast{position:fixed; left:0; right:0; bottom:0; z-index:80; background:var(--lcg-red); color:#fff; padding:12px 20px; display:flex; align-items:center; justify-content:center; gap:16px; font-size:13.5px; text-align:center}
.co-toast a{text-decoration:underline; font-weight:600}
.co-toast button{background:none; border:0; color:#fff; opacity:.85; cursor:pointer; font-size:16px; flex:none}
.co-toast button:hover{opacity:1}
@media (max-width:900px){.co-feat-grid{grid-template-columns:repeat(2,1fr)} .lab-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.co-feat-grid{grid-template-columns:1fr}}

/* ============ Course sidebar (shared: rhcsaHome.html + all *Course.html) ============ */
/* Wrap the existing <section class="card course-sidebar" id="courseAccordion"> in
   class="lcg" -- markup, ids, Bootstrap collapse wiring are untouched, this is a
   pure restyle. */
.course-sidebar.lcg{background:var(--lcg-panel) !important; border:0 !important; border-right:1px solid var(--lcg-hair) !important; border-radius:0; padding:6px 0; color:var(--lcg-soft) !important}

/* Mockup 09 shows the lab list as a ~250px rail sitting flush under the nav, not a
   380px rounded card floating in the gutter. theme.min.css drives this layout with a
   fixed-position sidebar plus a matching margin-left on .content, so both numbers
   have to move together or the content column detaches from the rail.
   Rail geometry only applies from 992px up; the companion block below unpins it. */
@media (min-width:992px){
  .course-sidebar.lcg{width:250px; top:60px; height:calc(100vh - 60px); margin-top:0 !important}
  .course-container .content{margin-left:250px}
  /* The rail is position:fixed, so it stays pinned over whatever scrolls beneath it —
     including the footer, which sits outside .course-container and never inherited
     this offset. Give it the same 250px the content column gets. */
  .lcg-footer--with-sidebar .lcg-container{margin-left:250px; max-width:calc(1180px - 250px)}
}
/* theme.min.css only unpins the rail at <=576px and 768-991.98px, so 577-767px kept
   a 380px fixed sidebar with a 404px content margin and scrolled sideways. Collapse
   it across the whole sub-992px range instead of patching the gap. */
@media (max-width:991.98px){
  .course-sidebar.lcg{position:relative; top:0; width:100%; height:auto; margin:0 0 18px !important;
    border-right:0 !important; border-bottom:1px solid var(--lcg-hair) !important}
  .course-container .content{margin-left:0}
}
.course-sidebar.lcg .list-group,
.course-sidebar.lcg .list-group-item,
.course-sidebar.lcg [data-simplebar],
.course-sidebar.lcg .simplebar-content,
.course-sidebar.lcg .simplebar-content-wrapper,
.course-sidebar.lcg .collapse,
.course-sidebar.lcg .accordion-collapse,
.course-sidebar.lcg .accordion-body{background-color:transparent !important}
.course-sidebar.lcg .list-group-item{border:0 !important; border-bottom:1px solid var(--lcg-hair) !important; padding:0}
.course-sidebar.lcg .list-group-item:last-child{border-bottom:0 !important}
.course-sidebar.lcg .list-group-item:first-child{padding:16px 16px 12px 16px}
.course-sidebar.lcg h2{font-size:16px !important; font-weight:750; letter-spacing:-.01em; color:var(--lcg-ink) !important}
.course-sidebar.lcg h2 a{color:var(--lcg-ink) !important}
.course-sidebar.lcg .list-group-item > a.h4{color:var(--lcg-soft) !important; font-size:13.5px !important; font-weight:650; padding:13px 16px; margin:0 !important}
.course-sidebar.lcg .list-group-item > a.h4:hover{color:var(--lcg-ink) !important; background:var(--lcg-panel-2) !important}
.course-sidebar.lcg .list-group-item > a.h4.text-muted{color:var(--lcg-dim) !important}
.course-sidebar.lcg .chevron-arrow i{color:var(--lcg-mut) !important; font-size:12px !important; transition:transform .15s}
.course-sidebar.lcg a[aria-expanded="true"] .chevron-arrow i{transform:rotate(180deg)}
.course-sidebar.lcg .icon-shape{background:transparent !important; width:20px; height:20px}
.course-sidebar.lcg .icon-shape i{font-size:11px !important}
.course-sidebar.lcg .icon-shape.bg-primary i{color:var(--lcg-ok) !important}
.course-sidebar.lcg .icon-shape.bg-light .fa-flask{color:var(--lcg-red) !important}
.course-sidebar.lcg .icon-shape.bg-light .fa-lock{color:var(--lcg-dim) !important}
.course-sidebar.lcg .icon-shape img{filter:grayscale(1) brightness(1.6)}
.course-sidebar.lcg .nav .lab-link .icon-shape{width:14px !important; height:14px !important; margin-right:7px !important}
/* One line per lab: name only, no duration. The markup keeps Bootstrap's mb-2 on
   the anchor, so the margin is zeroed here -- rows are separated by the hover
   background alone. flex-direction:column with a single child is what lets the
   name span the full rail width instead of being squeezed by the anchor's own
   justify-content:space-between. */
.course-sidebar.lcg .nav .lab-link{color:var(--lcg-mut) !important; font-size:12.5px; border-radius:0; display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; margin-bottom:0 !important; padding:10px 16px !important}
.course-sidebar.lcg .nav .lab-link:hover{color:var(--lcg-ink) !important; background:var(--lcg-panel-2) !important}
.course-sidebar.lcg .nav .lab-link > .text-truncate:first-child{display:-webkit-box !important; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden !important; white-space:normal !important; text-overflow:clip !important; color:var(--lcg-soft)}
.course-sidebar.lcg .nav .lab-link .badge{font-family:var(--lcg-mono); font-size:9px; background:var(--lcg-amber) !important; color:#1a1406 !important}
.course-sidebar.lcg .text-truncate,
.course-sidebar.lcg span{color:inherit}

/* ============ Certificate claim + coming-soon (rhceCourse.html-family) ============ */
.cert-wrap{max-width:820px; margin:0 auto; padding:26px 24px 40px}
.cert-progress{margin-bottom:22px}
.cert-progress .track{height:10px; border-radius:6px; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair); overflow:hidden}
.cert-progress .track .bar{height:100%; background:linear-gradient(90deg,var(--lcg-red),#ff8a63); border-radius:6px}
.cert-progress .pct{font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-mut); margin-top:8px}
.cert-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:26px}
.cert-card .name-row{display:flex; align-items:center; gap:12px; justify-content:center; margin-bottom:18px; flex-wrap:wrap}
.cert-card .name-row b{font-size:15px}
.cert-card .name-row a{font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-red)}
.cert-card img{max-width:100%; border-radius:10px; border:1px solid var(--lcg-hair)}
.cert-card input.cert-link{background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); color:var(--lcg-soft); font-family:var(--lcg-mono); font-size:12px; border-radius:8px 0 0 8px; padding:9px 12px}
.cert-card .cert-download{color:var(--lcg-red); font-size:20px; cursor:pointer}
.cert-share{display:flex; align-items:center; gap:10px; justify-content:center; margin-top:16px; font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-mut)}
.cert-share a{width:32px; height:32px; border-radius:8px; display:grid; place-items:center; color:#fff; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2)}
.cert-note{margin-top:26px; color:var(--lcg-soft); font-size:14px; line-height:1.7}
.cert-note h2{font-size:16px; color:var(--lcg-ink); font-weight:750; margin:20px 0 8px}
.cert-note ul{margin:0 0 8px; padding-left:20px}

.coming-soon{max-width:640px; margin:40px auto; text-align:center; padding:0 24px}
.coming-soon img{max-width:180px; opacity:.85; margin-bottom:18px}
.coming-soon h2.big{font-size:26px; font-weight:800; letter-spacing:-.02em}
.coming-soon .lead{color:var(--lcg-soft); font-size:15px; margin:10px 0 26px}
.coming-soon .lg-body{text-align:left; max-width:none}

/* ============ Mock/proctored exam pre-flight + purchase (rhcsaHome.html "rhcsa-mock-exam") ============ */
.exam-wrap{max-width:900px; margin:0 auto; padding:6px 4px 40px}
.exam-hero{text-align:center; margin-bottom:26px}
.exam-hero h1{font-size:26px; font-weight:800; letter-spacing:-.02em}
.exam-hero .lead{color:var(--lcg-soft); font-size:14.5px; max-width:60ch; margin:10px auto 0}
.exam-alert{background:rgba(227,179,65,.1); border:1px solid rgba(227,179,65,.3); color:var(--lcg-amber); border-radius:10px; padding:12px 16px; font-size:13.5px; margin-bottom:22px}
.exam-info{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:22px 24px; margin-bottom:16px}
.exam-info .ih{display:flex; align-items:center; gap:10px; font-size:15px; font-weight:750; color:var(--lcg-ink); margin-bottom:12px}
.exam-info .ih i{color:var(--lcg-red); font-size:14px}
.exam-info .lg-body{max-width:none}
.exam-gallery{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin:14px 0}
.exam-gallery a{display:block; border-radius:10px; overflow:hidden; border:1px solid var(--lcg-hair-2); max-width:260px}
.exam-gallery img{display:block; width:100%; height:auto}
.exam-cta{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:24px; text-align:center; margin-top:22px}
.exam-cta .lab-region{justify-content:center; margin:0 auto 16px; max-width:fit-content}
.exam-pitch{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:30px 28px; display:grid; grid-template-columns:1.3fr .7fr; gap:26px; align-items:center; margin-bottom:22px}
.exam-pitch img{width:100%; max-width:180px; margin:0 auto; display:block}
.exam-pitch h3{font-size:15px; font-weight:750; color:var(--lcg-ink); margin:0 0 12px}
.exam-pitch ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px}
.exam-pitch li{display:flex; gap:10px; font-size:13.5px; color:var(--lcg-soft); align-items:flex-start}
.exam-pitch li i{color:var(--lcg-ok); margin-top:2px}
.exam-pitch li b{color:var(--lcg-ink)}
.exam-price-cta{text-align:center; margin-bottom:8px}
.exam-price-cta .lead{color:var(--lcg-soft); font-size:14px; margin-bottom:14px}
.exam-price-cta form{display:inline}
@media (max-width:720px){.exam-pitch{grid-template-columns:1fr; text-align:center} .exam-pitch ul{align-items:center}}

/* ============ Quiz-taking UI (JS-generated, shared: lpicCourse.html + linuxPlusCourse.html #quizContentArea) ============
   The question/result/attempts markup below is built by JS template-literal
   strings (generateQuizCardMarkup / generateResultCard / etc.), not Django
   template tags -- these classes must match exactly what those JS functions
   are updated to emit. Ids (#quizContentArea, #questionCard, #timer, #prevBtn,
   #nextBtn, #checkBtn, #submitBtn, #explanationBox, #attemptsTable, etc.) are
   unchanged/preserved; only class names and inline styles change. */
.quiz-shell{max-width:760px; margin:0 auto; padding:6px 4px 40px}
.quiz-topbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; gap:12px; flex-wrap:wrap}
.quiz-topbar .qt-label{font-family:var(--lcg-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--lcg-mut)}
.lcg #timer{font-family:var(--lcg-mono); font-size:13px; font-weight:700; color:var(--lcg-amber); background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:8px; padding:6px 12px; margin:0}

.quiz-tracker{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px}
.quiz-tracker .question-circle{width:30px; height:30px; border-radius:8px; background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); color:var(--lcg-soft); font-family:var(--lcg-mono); font-size:12px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s,border-color .15s}
.quiz-tracker .question-circle:hover{border-color:var(--lcg-red)}
.quiz-tracker .question-circle.answered{background:rgba(63,185,80,.14); border-color:var(--lcg-ok); color:var(--lcg-ok)}

.quiz-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:26px 26px 22px}
.quiz-card h3{font-size:15.5px; font-weight:700; color:var(--lcg-ink); line-height:1.5; margin:0 0 18px}
.quiz-options{list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:9px}
.quiz-option{background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-radius:10px; padding:12px 14px; display:flex; align-items:center; gap:11px; cursor:pointer; font-size:13.5px; color:var(--lcg-soft); transition:border-color .15s,background .15s}
.quiz-option:hover{border-color:var(--lcg-red); color:var(--lcg-ink)}
.quiz-option input[type="radio"]{accent-color:var(--lcg-red); width:15px; height:15px; flex:none}
.quiz-option.selected{border-color:var(--lcg-red); background:rgba(242,80,75,.08); color:var(--lcg-ink)}
.quiz-option.success-color{border-color:var(--lcg-ok); background:rgba(63,185,80,.1); color:var(--lcg-ink)}
.quiz-option.wrong-color{border-color:var(--lcg-red); background:rgba(242,80,75,.1); color:var(--lcg-ink)}

.quiz-explain{background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); border-left:3px solid var(--lcg-cyan); border-radius:0 10px 10px 0; padding:12px 16px; margin:18px 0; font-size:13px; color:var(--lcg-soft); line-height:1.6}
.quiz-explain b{color:var(--lcg-ink)}

.quiz-nav{display:flex; gap:10px; flex-wrap:wrap; margin-top:24px}
.quiz-nav button,.quiz-nav .lcg-btn-red,.quiz-nav .lcg-btn-ghost{font-size:13px}

.quiz-locked{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:34px 28px; text-align:center; max-width:520px; margin:0 auto}
.quiz-locked i{font-size:32px; color:var(--lcg-violet); margin-bottom:14px; display:block}
.quiz-locked h3{font-size:16px; color:var(--lcg-ink); margin:0 0 8px}
.quiz-locked p{color:var(--lcg-soft); font-size:13.5px; margin:0 0 18px}

.quiz-intro{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:34px 28px; text-align:center}
.quiz-intro i.qi-icon{font-size:32px; color:var(--lcg-cyan); margin-bottom:14px; display:block}
.quiz-intro h3{font-size:17px; color:var(--lcg-ink); margin:0 0 10px}
.quiz-intro p{color:var(--lcg-soft); font-size:13.5px; max-width:52ch; margin:0 auto 18px; line-height:1.6}
.quiz-intro .qi-meta{display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin:0 0 24px; font-family:var(--lcg-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--lcg-mut)}

.quiz-result{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:16px; padding:30px 28px; text-align:center}
.quiz-result .score{font-family:var(--lcg-mono); font-size:34px; font-weight:800; color:var(--lcg-red); margin:6px 0 4px}
.quiz-result .score-label{color:var(--lcg-mut); font-size:12px; font-family:var(--lcg-mono); text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px}
.quiz-result h3{font-size:16px; color:var(--lcg-ink); margin:0 0 6px}

.quiz-attempts{margin-top:24px; text-align:left; background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:20px 22px}
.quiz-attempts .lh{font-family:var(--lcg-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--lcg-mut); margin-bottom:12px}
.quiz-attempts table{width:100%; border-collapse:collapse; font-size:13px}
.quiz-attempts thead th{font-family:var(--lcg-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--lcg-mut); text-align:center; padding:9px 10px; border-bottom:1px solid var(--lcg-hair-2)}
.quiz-attempts tbody td{text-align:center; padding:10px; color:var(--lcg-soft); border-bottom:1px solid var(--lcg-hair)}
.quiz-attempts .dataTables_wrapper .dataTables_length,
.quiz-attempts .dataTables_wrapper .dataTables_filter,
.quiz-attempts .dataTables_wrapper .dataTables_info,
.quiz-attempts .dataTables_wrapper .dataTables_paginate{color:var(--lcg-mut); font-family:var(--lcg-mono); font-size:11.5px}
.quiz-attempts .dataTables_wrapper .paginate_button{color:var(--lcg-soft) !important; padding:3px 9px; border-radius:6px}
.quiz-attempts .dataTables_wrapper .paginate_button.current{background:var(--lcg-red) !important; color:#fff !important; border:0 !important}
.quiz-attempts .dataTables_wrapper .paginate_button:hover{background:var(--lcg-panel-2) !important; color:var(--lcg-ink) !important; border:0 !important}
@media (max-width:600px){.quiz-card{padding:20px 18px}}

/* ============ What's New (whatsNew.html) ============ */
.wn-sec{margin:34px 0}
.wn-sh{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px}
.wn-sh h2{font-size:1.15rem; font-weight:750; letter-spacing:-.02em; margin:0}
.wn-sh .c{font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-mut)}

/* Release feed: one row per recently launched lab, newest first. */
.wn-feed{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; overflow:hidden}
.wn-row{display:grid; grid-template-columns:98px minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:13px 18px; border-bottom:1px solid var(--lcg-hair)}
.wn-row:last-child{border-bottom:0}
.wn-row:hover{background:var(--lcg-panel-2)}
.wn-row .d{font-family:var(--lcg-mono); font-size:11.5px; color:var(--lcg-mut); white-space:nowrap}
.wn-row .n{font-size:14px; font-weight:650; color:var(--lcg-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.wn-row:hover .n{color:var(--lcg-red)}
.wn-row .go{font-family:var(--lcg-mono); font-size:13px; color:var(--lcg-mut)}
.wn-row:hover .go{color:var(--lcg-red)}
.wn-empty{padding:38px 20px; text-align:center; color:var(--lcg-mut); font-size:13.5px}

/* Highlight cards. Every source screenshot is ~16:10, so a fixed ratio box with
   object-fit:cover keeps the grid's rows aligned without visibly cropping any. */
.wn-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.wn-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:13px; overflow:hidden; display:flex; flex-direction:column}
.wn-card:hover{border-color:var(--lcg-hair-2)}
.wn-card .th{aspect-ratio:16/10; background:var(--lcg-panel-2); border-bottom:1px solid var(--lcg-hair)}
.wn-card .th img{width:100%; height:100%; object-fit:cover; display:block}
.wn-card .bd{padding:16px 17px 18px; display:flex; flex-direction:column; gap:9px; flex:1}
.wn-card .k{font-family:var(--lcg-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--lcg-red); font-weight:600}
.wn-card h3{font-size:15px; font-weight:700; letter-spacing:-.01em; line-height:1.35; margin:0}
.wn-card p{margin:0; font-size:12.5px; color:var(--lcg-mut); line-height:1.55}
.wn-card p a{color:var(--lcg-red)}
.wn-card p b{color:var(--lcg-ink); font-weight:650}
/* Matches .plan ul li rather than .wn-card p: this is the same "feature checklist"
   pattern the pricing cards use, and soft clears 4.5:1 where mut does not. */
.wn-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px}
.wn-card ul li{display:flex; gap:8px; font-size:12.5px; color:var(--lcg-soft); line-height:1.5}
.wn-card ul li .c{color:var(--lcg-ok); flex:none}
.wn-card ul li b{color:var(--lcg-ink); font-weight:650}
.wn-card .act{margin-top:auto; padding-top:5px; display:flex; flex-wrap:wrap; gap:8px}
.wn-card .act .lcg-btn-red,.wn-card .act .lcg-btn-ghost{font-size:12px; padding:8px 13px}
@media (max-width:900px){.wn-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){
  .wn-grid{grid-template-columns:1fr}
  /* Two lines instead of four columns: name + course tag, then the date under it. */
  .wn-row{grid-template-columns:minmax(0,1fr) auto; gap:5px 10px}
  .wn-row .n{grid-column:1; grid-row:1}
  .wn-row .lcg-tag{grid-column:2; grid-row:1}
  .wn-row .d{grid-column:1/-1; grid-row:2}
  .wn-row .go{display:none}
}

/* ---------- user dashboard ---------- */
.dash-hero{display:grid; grid-template-columns:auto 1fr; gap:32px; align-items:center; background:linear-gradient(155deg,var(--lcg-panel) 0%,var(--lcg-panel-2) 100%); border:1px solid var(--lcg-hair); border-radius:16px; padding:28px 30px; margin:28px 0 20px}
.dash-ring{position:relative; width:132px; height:132px; flex:none}
.dash-ring svg{width:100%; height:100%; transform:rotate(-90deg)}
.dash-ring .track{fill:none; stroke:var(--lcg-hair-2); stroke-width:10}
.dash-ring .value{fill:none; stroke:var(--lcg-red); stroke-width:10; stroke-linecap:round; stroke-dasharray:345.6; transition:stroke-dashoffset .6s ease}
.dash-ring .lbl{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center}
.dash-ring .lbl b{font-size:26px; font-variant-numeric:tabular-nums; color:var(--lcg-ink)}
.dash-ring .lbl span{font-size:11px; color:var(--lcg-mut); text-transform:uppercase; letter-spacing:.08em}

.dash-hero-main .lcg-eyebrow{display:block; margin-bottom:8px}
.dash-hero-main h1{font-size:22px; margin:0 0 6px}
.dash-hero-main p{margin:0 0 16px; color:var(--lcg-soft); font-size:14.5px; max-width:56ch}
.dash-chips{display:flex; gap:10px; flex-wrap:wrap}
.dash-chip{display:inline-flex; align-items:center; gap:6px; font-family:var(--lcg-mono); font-size:12px; color:var(--lcg-soft); background:var(--lcg-panel-2); border:1px solid var(--lcg-hair-2); padding:6px 12px; border-radius:999px}
.dash-chip svg{width:14px; height:14px}
.dash-chip.cert{color:var(--lcg-violet)}
.dash-chip.flame{color:var(--lcg-amber)}

.dash-resume{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:18px 22px; margin-bottom:28px}
.dash-resume-info{display:flex; align-items:center; gap:16px; min-width:0}
.dash-resume-icon{width:44px; height:44px; border-radius:10px; background:rgba(242,80,75,.12); color:var(--lcg-red); display:flex; align-items:center; justify-content:center; flex:none}
.dash-resume-icon svg{width:20px; height:20px}
.dash-resume-text p{margin:0}
.dash-resume-text .k{font-family:var(--lcg-mono); font-size:11px; color:var(--lcg-mut); text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px}
.dash-resume-text h3{font-size:15.5px; margin:0 0 3px; color:var(--lcg-ink)}
.dash-resume-text .m{font-size:13px; color:var(--lcg-mut)}
.dash-resume.is-upsell .dash-resume-icon{background:rgba(180,137,240,.14); color:var(--lcg-violet)}

.dash-section-title{display:flex; align-items:baseline; justify-content:space-between; margin:0 0 14px; gap:12px; flex-wrap:wrap}
.dash-section-title a{font-family:var(--lcg-mono); font-size:12.5px; color:var(--lcg-mut)}
.dash-section-title a:hover{color:var(--lcg-soft)}

.dash-course-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:28px}
.dash-course-card{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:18px; display:flex; flex-direction:column; gap:10px}
.dash-course-card .hd{display:flex; align-items:center; justify-content:space-between; gap:8px}
.dash-course-card .tag{font-family:var(--lcg-mono); font-size:11px; font-weight:700; letter-spacing:.05em; color:var(--tag)}
.dash-course-card .st{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:3px 8px; border-radius:999px; white-space:nowrap}
.dash-course-card .st.active{background:rgba(63,185,80,.14); color:var(--lcg-ok)}
.dash-course-card .st.done{background:rgba(63,185,80,.14); color:var(--lcg-ok)}
.dash-course-card .st.idle{background:rgba(174,182,198,.1); color:var(--lcg-mut)}
.dash-course-card h4{font-size:15px; margin:0}
.dash-course-card .meta{margin:0; font-size:12.5px; color:var(--lcg-mut)}
.dash-progress{height:6px; border-radius:99px; background:var(--lcg-hair-2); overflow:hidden}
.dash-progress span{display:block; height:100%; background:var(--tag); border-radius:99px}
.dash-progress-label{display:flex; justify-content:space-between; font-size:11.5px; color:var(--lcg-mut); font-variant-numeric:tabular-nums}
.dash-cta{margin-top:auto; font-family:var(--lcg-mono); font-size:12.5px; font-weight:700; color:var(--lcg-ink); padding-top:4px}
.dash-cta:hover{color:var(--lcg-red)}
.dash-course-card.is-locked{opacity:.92}
.dash-course-card.is-locked .dash-cta{color:var(--lcg-violet)}
.dash-course-card.is-locked .dash-cta:hover{filter:brightness(1.15)}

.dash-lower-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:16px; margin-bottom:16px}
.dash-panel{background:var(--lcg-panel); border:1px solid var(--lcg-hair); border-radius:14px; padding:20px 22px}
.dash-panel > .lcg-eyebrow{display:block; margin-bottom:14px}

.dash-activity{list-style:none; margin:0; padding:0}
.dash-activity li{display:flex; gap:14px; padding:10px 0; border-bottom:1px solid var(--lcg-hair); font-size:13.5px; color:var(--lcg-soft)}
.dash-activity li:last-child{border-bottom:0; padding-bottom:0}
.dash-activity time{font-family:var(--lcg-mono); color:var(--lcg-mut); font-size:11.5px; white-space:nowrap; padding-top:1px; flex:none}
.dash-activity .ok{color:var(--lcg-ok); font-weight:600}
.dash-activity .src{color:var(--lcg-mut)}
.dash-empty{color:var(--lcg-mut); font-size:13.5px; margin:0}

.dash-plan-row{display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13.5px; padding:9px 0; border-bottom:1px solid var(--lcg-hair); color:var(--lcg-soft)}
.dash-plan-row:last-of-type{border-bottom:0}
.dash-plan-row .k{color:var(--lcg-mut)}
.dash-plan-actions{display:flex; gap:10px; margin-top:16px; flex-wrap:wrap}
.dash-plan-actions form{margin:0}

.dash-field label{font-family:var(--lcg-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--lcg-mut); display:block; margin-bottom:6px}
.dash-field input{width:100%; background:#0d1219; border:1px solid var(--lcg-hair-2); border-radius:8px; color:var(--lcg-ink); font-size:14px; padding:10px 12px}
.dash-field input:focus{outline:2px solid var(--lcg-cyan); outline-offset:1px; border-color:var(--lcg-hair-2)}
.dash-form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px}
.dash-alert{border-radius:10px; padding:11px 16px; font-size:13px; margin-bottom:14px}
.dash-alert.err{background:rgba(242,80,75,.1); border:1px solid rgba(242,80,75,.35); color:var(--lcg-red)}
.dash-alert.ok{background:rgba(63,185,80,.1); border:1px solid rgba(63,185,80,.35); color:var(--lcg-ok)}

@media (max-width:820px){
  .dash-hero{grid-template-columns:1fr; text-align:left}
  .dash-lower-grid{grid-template-columns:1fr}
  .dash-form-row{grid-template-columns:1fr}
}
