/* ============================================================================
   Avatar Learning Center — Python course pages, restyled to the site theme.
   Loaded AFTER each page's own <style>, so equal-specificity rules here win.
   Fonts, logo and colours come from the WordPress theme (../wp-content/themes/avatar/).
   Code editors stay dark on purpose: code is notation, like math.
   ============================================================================ */

@font-face{font-family:'Roboto';font-style:normal;font-weight:100 900;font-display:swap;src:url(../wp-content/themes/avatar/assets/fonts/Roboto.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(../wp-content/themes/avatar/assets/fonts/PlusJakartaSans.woff2) format('woff2')}

:root{
  /* the pages' own token names, pointed at the site palette */
  --navy:#031220; --navy-dk:#031220;
  --orange:#13498B; --org-lt:#61CE70; --orange-lt:#61CE70;
  --teal:#13498B; --purple:#13498B; --pink:#13498B; --blue:#13498B;
  --green:#45b857; --gold:#f5b301; --yellow:#f5b301;
  --bg:#ffffff; --white:#ffffff; --text:#031220; --muted:#49535B; --border:#e6ebf2;
  --r:12px; --rl:18px;
  /* site tokens */
  --av-navy:#031220; --av-blue:#13498B; --av-blue-dark:#0f3b73; --av-green:#61CE70; --av-green-dark:#45b857;
  --av-band:#FAFCFF; --av-tint:#eaf1fb; --av-line:#e6ebf2; --av-fg:#031220; --av-text:#49535B; --av-muted:#7A7A7A;
  --av-font:"Roboto","Segoe UI",Helvetica,Arial,sans-serif;
  --av-display:"Plus Jakarta Sans","Roboto","Segoe UI",Helvetica,Arial,sans-serif;
  --av-mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,Menlo,monospace;
  --av-shadow:0 1px 2px rgba(3,18,32,.04),0 10px 28px rgba(3,18,32,.06);
  --av-ring:0 0 0 1px rgba(3,18,32,.06);
  --av-grad:linear-gradient(135deg,#0b2347 0%,#031220 70%);
}

/* ---------- type ---------- */
html{-webkit-text-size-adjust:100%}
body,p,li,td,th,input,button,.pill,.meta-chip,.chip-age,.chip-weeks,.chip-level,.tag{font-family:var(--av-font)}
body{font-size:17px;line-height:1.65;color:var(--av-text);background:#fff}
h1,h2,h3,h4,.hero-title,.sec-title,.track-title,.price-amount,.price-name,.week-title,.ov-val,.ic-val,.btn,.run-btn,.next-btn{font-family:var(--av-display)}
h1,h2,h3,h4,.sec-title,.track-title,.week-title{color:var(--av-fg);letter-spacing:-.01em}
p{color:var(--av-text)}
strong{color:var(--av-fg)}
code,pre,.formula,.code-ta,.CodeMirror,.out-pre,.output-text{font-family:var(--av-mono)}
/* no ligatures in code: >= and != must look like what a student types (owner, 2026-10-12) */
code,pre,kbd,samp,.formula,.code-ta,.CodeMirror,.CodeMirror *,.out-pre,.output-text,.oops dt,.ch-predict-ta{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0,"dlig" 0}
a{color:var(--av-blue)}
.hero-sub code{font-family:var(--av-mono)!important;background:rgba(255,255,255,.12)!important}

/* ---------- header (injected markup, same as the site) ---------- */
.av-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.85);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(3,18,32,.06)}
.av-header .av-wrap{max-width:1170px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.av-logo img{height:44px;width:auto;display:block}
.av-nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.av-nav a{display:block;padding:10px 12px;color:var(--av-fg);text-decoration:none;font-weight:600;font-size:1rem;font-family:var(--av-display);border-radius:8px}
.av-nav a:hover{color:var(--av-blue)}
.av-actions{display:flex;align-items:center;gap:10px}
.av-crumbs{background:var(--av-band);border-bottom:1px solid var(--av-line)}
.av-crumbs .av-wrap{max-width:1170px;margin:0 auto;padding:10px 20px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:.9rem;color:var(--av-muted)}
.av-crumbs a{color:var(--av-blue);text-decoration:none;font-weight:600}
.av-crumbs a:hover{text-decoration:underline}
.av-crumbs .cur{color:var(--av-fg);font-weight:600}
.av-crumbs .next{margin-left:auto}
.av-burger{display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--av-fg);font-family:var(--av-display);font-weight:700}

/* ---------- buttons: green is the only action colour, navy outline is secondary ---------- */
.btn,.av-btn,.run-btn,.next-btn,.nav-cta,.free-banner-cta a,.btn-primary,.btn-secondary,.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 24px;font-weight:700;font-family:var(--av-display);
  font-size:1rem;line-height:1.2;text-decoration:none;border:0;cursor:pointer;transition:background .15s,transform .1s,box-shadow .2s;letter-spacing:-.005em}
.btn-lg{padding:17px 32px;font-size:1.08rem}
.btn-primary,.av-btn-green,.nav-cta,.free-banner-cta a,.next-btn,.run-btn{background:var(--av-green);color:var(--av-fg);box-shadow:0 8px 20px rgba(97,206,112,.28)}
.btn-primary:hover,.av-btn-green:hover,.nav-cta:hover,.free-banner-cta a:hover,.next-btn:hover,.run-btn:hover{background:var(--av-green-dark);transform:translateY(-1px);color:var(--av-fg)}
.btn-secondary,.btn-outline,.av-btn-navy{background:transparent;color:var(--av-navy);box-shadow:inset 0 0 0 2px var(--av-navy)}
.btn-secondary:hover,.btn-outline:hover,.av-btn-navy:hover{background:var(--av-navy);color:#fff}
.run-btn{padding:7px 16px;font-size:.85rem;box-shadow:none;border-radius:999px}
.hero .btn-secondary,.hero .btn-outline,.cta .btn-secondary,.cta .btn-outline,.av-btn-white{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.hero .btn-secondary:hover,.hero .btn-outline:hover,.cta .btn-secondary:hover,.cta .btn-outline:hover,.av-btn-white:hover{background:#fff;color:var(--av-navy)}

/* ---------- hero: the site's navy band, no grid, no confetti ---------- */
.hero{background:var(--av-grad)!important;background-image:var(--av-grad)!important;padding:72px 20px 56px;position:relative;overflow:hidden}
.hero-bg,.hero-confetti{display:none!important}
.hero-logo,.hero-logo-mark,.hero-logo-name{display:none!important}
.hero-badge{display:inline-flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;margin-bottom:14px;color:var(--av-green);font-family:var(--av-display);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hero-badge::before{content:"";width:18px;height:3px;border-radius:2px;background:var(--av-green)}
.hero-title{font-family:var(--av-display)!important;font-weight:800;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.06;letter-spacing:-.02em;color:#fff;margin-bottom:16px}
.hero-title span,.hero-title .hi,.hero-title .py{color:#fff!important;-webkit-text-fill-color:#fff;background:none!important}
.hero-title .py{color:var(--av-green)!important;-webkit-text-fill-color:var(--av-green)}
.hero-sub{font-size:1.15rem;color:#d5deeb!important;max-width:60ch;line-height:1.6}
.hero-pills,.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pill{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#e3ebf5;border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:500}
.pill .dot{background:var(--av-green)}

/* ---------- status + info bars ---------- */
#py-status{background:var(--av-tint);color:var(--av-blue);font-weight:600;font-family:var(--av-font)}
.info-bar,.colab-bar{background:var(--av-band);border:0;border-bottom:1px solid var(--av-line);color:var(--av-text)}
.info-bar .tag,.tag{background:var(--av-blue);color:#fff;border-radius:999px;font-family:var(--av-display);font-weight:700;letter-spacing:.08em}
.info-bar strong{color:var(--av-fg)}

/* ---------- section heads ---------- */
.sec-head{display:block;margin:56px 0 22px}
.sec-icon{display:none!important}
.sec-rule{display:none!important}
.sec-title{font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:800;color:var(--av-fg);position:relative;padding-top:14px}
.sec-title::before{content:"";position:absolute;left:0;top:0;width:18px;height:3px;border-radius:2px;background:var(--av-green)}
.sub{color:var(--av-blue)}

/* ---------- cards: hairline + soft shadow, 18px corners ---------- */
.track-card,.price-card,.proof-card,.faq-item,.week,.ov-card,.info-card,.skill,.editor-wrap,.sandbox-wrap,.free-banner,.cta,.exercise,.exercise-box,.tip,.concept,.prereq,table{
  border-radius:var(--rl);box-shadow:var(--av-shadow),var(--av-ring);border:0}
.track-card,.price-card,.proof-card,.faq-item,.ov-card,.info-card,.skill{background:#fff}
.track-card:hover,.price-card:hover,.proof-card:hover{box-shadow:0 22px 48px rgba(3,18,32,.12),var(--av-ring);transform:translateY(-4px)}
.track-card,.price-card,.proof-card{transition:transform .25s,box-shadow .25s}
.track-hd{background:var(--av-band)!important;border-bottom:1px solid var(--av-line)}
.track-emoji{display:none!important}
.track-badge,.badge-free,.badge-paid,.badge-adv,.price-tier,.free-tag,.week-num{font-family:var(--av-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;border-radius:999px;border:0}
.badge-free{background:#dff5e4;color:#1f6b3a}
.badge-paid,.badge-adv,.price-tier{background:var(--av-tint);color:var(--av-blue)}
.track-title{font-size:1.35rem;font-weight:800}
.track-topics li::before,.price-features li .check-y,.check-y{color:var(--av-blue)}
.check-y{background:var(--av-tint);color:var(--av-blue);border-radius:6px}
.check-n,.cross{color:#b9c1cc}
.meta-chip,.chip-age,.chip-weeks,.chip-level{background:var(--av-tint);color:var(--av-blue);border:0;border-radius:999px;font-weight:600}
.track-footer{border-top:1px solid var(--av-line);background:#fff}
.track-price{color:var(--av-fg)}

/* free banner: a navy band, like the site's calls to action */
.free-banner{background:var(--av-grad)!important;color:#fff;border:0}
.free-banner h3,.free-banner-text h3{color:#fff}
.free-banner p,.free-banner-text p{color:#d5deeb}
.free-tag{background:var(--av-green);color:var(--av-fg)}

/* pricing */
.price-card.featured{box-shadow:0 0 0 2px var(--av-blue),0 22px 48px rgba(3,18,32,.12);background:#fff}
.price-card.featured::before,.price-card .most-popular,.featured-tag{background:var(--av-blue)!important;color:#fff!important;border-radius:999px;font-family:var(--av-display);font-weight:700;letter-spacing:.08em}
.price-amount{color:var(--av-fg);font-weight:800}
.price-amount .dollar,.price-amount .period{color:var(--av-muted)}
.free-word{color:var(--av-green-dark)}
.price-note{color:var(--av-muted)}

/* comparison table */
table{overflow:hidden;background:#fff;border-collapse:separate;border-spacing:0}
th{background:var(--av-grad);color:#fff;font-family:var(--av-display);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;border:0}
td{border-bottom:1px solid var(--av-line);color:var(--av-text);background:#fff}
tr:nth-child(even) td{background:var(--av-band)}
tr:last-child td{border-bottom:0}

/* testimonials */
.proof-stars{color:#f5b301}
.proof-text{color:var(--av-text);font-style:italic}
.proof-author{color:var(--av-fg);font-weight:700}
.proof-role{color:var(--av-muted)}

/* faq */
.faq-item{margin-bottom:12px;background:#fff}
.faq-q{font-family:var(--av-display);font-weight:700;color:var(--av-fg);font-size:1.05rem}
.faq-icon{color:var(--av-blue)}
.faq-a{color:var(--av-text)}

/* ---------- course pages: overview, skills, week cards ---------- */
.ov-lbl,.ic-lbl{color:var(--av-muted);font-family:var(--av-display);letter-spacing:.1em;font-weight:700}
.ov-val,.ic-val{color:var(--av-fg);font-weight:800}
.prereq{background:var(--av-tint);border:0;color:var(--av-fg)}
.skill{color:var(--av-fg);font-weight:600}
.progress-line{background:var(--av-line)}
.progress-dot{background:var(--av-blue)!important;box-shadow:0 0 0 4px var(--av-tint)}
.week{overflow:hidden;background:#fff;margin-bottom:18px}
.week-hd,.w1c,.w2c,.w3c,.w4c,.w5c,.w6c{background:var(--av-grad)!important;background-image:var(--av-grad)!important;border:0}
.week-num{background:var(--av-green);color:var(--av-fg);padding:5px 10px}
.week-title{color:#fff;font-weight:800}
.week-sub{color:#c9d3e0}
.chev{color:#c9d3e0}
.week-body{background:#fff}
.obj li,.objectives-list li{color:var(--av-text)}
.obj li::marker{color:var(--av-blue)}
.tip{background:#fff8e6;border:0;border-left:3px solid #f5b301;border-radius:12px}
.tip-lbl{color:#8a6a00;font-family:var(--av-display);letter-spacing:.08em}
.tip-body{color:var(--av-fg)}
.concept{background:var(--av-tint);border:0;border-left:3px solid var(--av-blue);border-radius:12px}
.concept-lbl{color:var(--av-blue);font-family:var(--av-display);letter-spacing:.08em}
.concept-body{color:var(--av-fg)}
.formula{background:var(--av-navy);color:#fff;border-radius:12px}
.exercise,.exercise-box{background:var(--av-band);border:0;border-left:3px solid var(--av-green);border-radius:12px}
.ex-title,.exercise-title{color:var(--av-fg);font-family:var(--av-display);letter-spacing:.06em}
.ex-body,.exercise-body{color:var(--av-text)}
/* exercise and challenge sections: clean white, dark readable text, no tinted wash (owner, 2026-10-12) */
html[data-theme] .exercise,html[data-theme] .exercise-box{background:#fff;border:1px solid var(--av-line);border-top:4px solid var(--av-green);border-left-width:1px;border-radius:14px;padding:20px 22px;margin-top:22px;box-shadow:var(--av-shadow)}
html[data-theme] .ex-title,html[data-theme] .exercise-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--av-fg);font-family:var(--av-display);font-size:1.15rem;font-weight:800;text-transform:none;letter-spacing:-.005em;margin:0 0 6px}
html[data-theme] .ex-body,html[data-theme] .exercise-body{color:#334155;font-size:.98rem;line-height:1.65}
html[data-theme] .ex-body>p:first-child{margin:0 0 6px;color:var(--av-text)}
html[data-theme] .ex-body code{background:var(--av-tint);color:var(--av-blue);padding:1px 6px;border-radius:5px;font-size:.88em}
html[data-theme="dark"] .exercise,html[data-theme="dark"] .exercise-box{background:#0b2240;border-color:rgba(255,255,255,.1);border-top-color:var(--av-green);box-shadow:none}
html[data-theme="dark"] .ex-title,html[data-theme="dark"] .exercise-title{color:#fff}
html[data-theme="dark"] .ex-body,html[data-theme="dark"] .exercise-body,html[data-theme="dark"] .ex-body>p:first-child{color:#d5e0ee}
html[data-theme="dark"] .ex-body code{background:rgba(255,255,255,.1);color:#bfe3c6}

/* self-paced helpers (owner, 2026-10-12): Try it under an example, When it goes wrong, What you learned */
.try-it,.oops,.recap{border-radius:12px;padding:12px 16px;margin:-4px 0 20px;font-size:.96rem;line-height:1.6}
.try-it{background:#f3fbf5;border:1px solid #cdebd3}
.oops{background:#fff7f6;border:1px solid #f2cfcb;margin-top:18px}
.recap{background:#f2f7fd;border:1px solid #cfdcf0;margin-top:18px}
.try-it .h,.oops .h,.recap .h{display:block;font-family:var(--av-display);font-weight:800;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px}
.try-it .h{color:#1f6b3a}.oops .h{color:#a42a2a}.recap .h{color:#13498B}
.try-it ol,.recap ul{margin:0;padding-left:1.3em;color:#1e293b}
.try-it li,.recap li{margin:3px 0}
.oops dl{margin:0;display:grid;gap:10px}
.oops dt{font-family:var(--av-mono);font-size:.84rem;color:#8a1c1c;background:#fdeaea;border-radius:6px;padding:4px 8px;display:inline-block;justify-self:start}
.oops dd{margin:3px 0 0;color:#1e293b}
.recap .words{margin:8px 0 0;color:#334155;font-size:.92rem}
.try-it code,.oops dd code,.recap code{background:rgba(19,73,139,.08);color:#13498B;padding:1px 5px;border-radius:4px;font-size:.88em}
html[data-theme="dark"] .try-it{background:#0d2a1f;border-color:#235c3a}
html[data-theme="dark"] .oops{background:#2a1416;border-color:#5c2a2e}
html[data-theme="dark"] .recap{background:#0b2240;border-color:#22406a}
html[data-theme="dark"] .try-it ol,html[data-theme="dark"] .recap ul,html[data-theme="dark"] .oops dd,html[data-theme="dark"] .recap .words{color:#e3ebf5}
html[data-theme="dark"] .try-it .h{color:#8fe0a0}html[data-theme="dark"] .oops .h{color:#ff9d9d}html[data-theme="dark"] .recap .h{color:#9cc4f5}
html[data-theme="dark"] .oops dt{background:#4a1d22;color:#ffb3b3}
html[data-theme="dark"] .try-it code,html[data-theme="dark"] .oops dd code,html[data-theme="dark"] .recap code{background:rgba(255,255,255,.1);color:#bfe3c6}

/* editors: the chrome follows the site, the code area stays dark */
.editor-wrap,.sandbox-wrap{overflow:hidden;border:1px solid var(--av-line)}
.editor-hd,.sandbox-hd,.code-hd{background:var(--av-band)!important;border-bottom:1px solid var(--av-line)}
.ed-lbl,.runner-lbl,.sb-lbl,.code-lbl{color:var(--av-blue)!important;font-family:var(--av-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}
.ed-hint,.runner-hint,.sb-hint{color:var(--av-muted)!important}
.sandbox-wrap{border-color:var(--av-green)}
.sandbox-note{background:#dff5e4;color:#1f6b3a;border:0}
.out-wrap,.output-block{background:var(--av-band);border-top:1px solid var(--av-line);border-left:0}
.out-label,.output-label{color:var(--av-blue);font-family:var(--av-display);letter-spacing:.08em;font-weight:700}
.out-pre,.output-text{color:var(--av-fg)}
.out-pre.err{color:#b3303f}

/* ---------- calls to action + footer ---------- */
.cta{background:var(--av-grad)!important;color:#fff;border:0;padding:56px 24px}
.cta h2,.cta h3{color:#fff}
.cta p{color:#d5deeb}
.cta .price-card{color:var(--av-fg)}
footer:not(.av-footer){display:none!important}
.av-footer{background:var(--av-grad);color:#c9d3e0;font-size:.95rem;margin-top:72px;font-family:var(--av-font)}
.av-footer .av-wrap{max-width:1170px;margin:0 auto;padding:0 20px}
.av-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding:60px 0 40px}
.av-footer-brand img{height:44px;width:auto;margin-bottom:18px;background:#fff;padding:10px 14px;border-radius:12px;box-sizing:content-box}
.av-footer-brand p{max-width:34ch;color:#c9d3e0}
.av-footer h3{color:#fff;font-size:1.05rem;margin:0 0 16px;font-family:var(--av-display)}
.av-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.av-footer a{color:#c9d3e0;text-decoration:none}
.av-footer a:hover{color:#fff}
.av-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12)}
.av-footer-bottom a{color:#fff}

/* ---------- the dark/light switch: default light; the button becomes a quiet pill ---------- */
#theme-toggle{top:auto!important;bottom:18px!important;right:18px!important;border-radius:999px!important;font-family:var(--av-display)!important;font-weight:700!important;background:#fff!important;color:var(--av-fg)!important;border:1px solid var(--av-line)!important;box-shadow:var(--av-shadow)!important}
[data-theme="dark"] body{background:#061a30}
[data-theme="dark"] .av-header{background:rgba(6,26,48,.85);border-bottom-color:rgba(255,255,255,.08)}
[data-theme="dark"] .av-nav a,[data-theme="dark"] .av-burger{color:#fff}
[data-theme="dark"] .av-crumbs{background:#0b2347;border-bottom-color:rgba(255,255,255,.08)}
[data-theme="dark"] .av-crumbs .cur{color:#fff}
[data-theme="dark"] .track-card,[data-theme="dark"] .price-card,[data-theme="dark"] .proof-card,[data-theme="dark"] .faq-item,[data-theme="dark"] .week,[data-theme="dark"] .ov-card,[data-theme="dark"] .info-card,[data-theme="dark"] .skill,[data-theme="dark"] .week-body,[data-theme="dark"] td,[data-theme="dark"] .track-footer{background:#0b2347;color:#e3ebf5}
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] .sec-title,[data-theme="dark"] .track-title,[data-theme="dark"] .ov-val,[data-theme="dark"] .ic-val,[data-theme="dark"] .faq-q,[data-theme="dark"] .proof-author,[data-theme="dark"] strong,[data-theme="dark"] .skill,[data-theme="dark"] .price-amount{color:#fff}
[data-theme="dark"] p,[data-theme="dark"] li,[data-theme="dark"] td,[data-theme="dark"] .faq-a,[data-theme="dark"] .proof-text{color:#c9d3e0}
[data-theme="dark"] .track-hd,[data-theme="dark"] .editor-hd,[data-theme="dark"] .sandbox-hd,[data-theme="dark"] .code-hd,[data-theme="dark"] .out-wrap,[data-theme="dark"] .output-block,[data-theme="dark"] tr:nth-child(even) td,[data-theme="dark"] .info-bar,[data-theme="dark"] .colab-bar,[data-theme="dark"] #py-status,[data-theme="dark"] .exercise,[data-theme="dark"] .exercise-box{background:#0f2b55!important;color:#e3ebf5}
[data-theme="dark"] .out-pre,[data-theme="dark"] .output-text,[data-theme="dark"] .ex-body,[data-theme="dark"] .exercise-body,[data-theme="dark"] .ex-title,[data-theme="dark"] .exercise-title{color:#e3ebf5}
[data-theme="dark"] .tip{background:#2a2410}
[data-theme="dark"] .tip-body{color:#fff}
[data-theme="dark"] .concept,[data-theme="dark"] .prereq{background:#0f2b55;color:#e3ebf5}
[data-theme="dark"] .concept-body{color:#fff}
[data-theme="dark"] .meta-chip,[data-theme="dark"] .chip-age,[data-theme="dark"] .chip-weeks,[data-theme="dark"] .chip-level,[data-theme="dark"] .badge-paid,[data-theme="dark"] .badge-adv,[data-theme="dark"] .price-tier,[data-theme="dark"] .check-y{background:#163a6e;color:#bcd3f0}
[data-theme="dark"] #theme-toggle{background:#0b2347!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important}
[data-theme="dark"] .editor-wrap,[data-theme="dark"] .sandbox-wrap{border-color:rgba(255,255,255,.1)}

/* ---------- small screens ---------- */
@media (max-width:1023px){
  .av-nav{display:none}
  .av-header .av-wrap{padding:10px 16px}
  .av-logo img{height:38px}
  .av-footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  .hero{padding:48px 16px 40px}
  .av-actions .av-btn-navy{display:none}
  .av-footer-grid{grid-template-columns:1fr;gap:28px;padding:44px 0 28px}
  .av-crumbs .next{margin-left:0;width:100%}
  .btn,.av-btn{padding:12px 20px;font-size:.95rem}
}
@media (max-width:480px){
  .hero-title{font-size:clamp(1.85rem,8.4vw,2.4rem)}
  .av-actions .av-btn{padding:10px 14px;font-size:.85rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* A paid lesson in the public copy of a partly free page (build.py lock_paid_lessons), and a locked lesson the plugin serves: the header stays, a card replaces the content */
.av-lock-card{display:grid;gap:10px;padding:22px 24px;margin:16px;border-radius:14px;background:#FAFCFF;border:1px dashed #b9c1cc;color:#49535B;line-height:1.55}
.av-lock-card b{color:#031220;font-size:1.05rem}
.av-lock-actions{display:flex;gap:10px;flex-wrap:wrap}
.av-lock-card a{display:inline-block;padding:10px 18px;border-radius:999px;background:#61CE70;color:#031220;font-weight:700;text-decoration:none}
.av-lock-card a.o{background:transparent;box-shadow:inset 0 0 0 2px #031220}
.av-lock-card a:hover{filter:brightness(.96)}
/* plots drawn by matplotlib under a code box (Python4Physics, 2026-10-13) */
.out-plots{display:grid;gap:10px;padding:4px 14px 14px}.out-plots img{display:block;max-width:100%;height:auto;background:#fff;border:1px solid var(--av-line);border-radius:10px}
