/* CNA4IDM · Scalentric · tokens from DESIGN.md v2 */
:root{
  --primary:#0A5281; --primary-hover:#083F63; --primary-focus:#0E6BA8; --on-primary:#FFFFFF;
  --ocean:#0E6BA8; --sky:#4FA8D9;
  --ink:#1F2937; --ink-muted:#4B5563;
  --canvas:#FFFFFF; --surface-2:#F6F8FA;
  --hairline:#D8DEE6; --hairline-strong:#7B8794;
  --success:#14532D; --warning:#78350F; --danger:#991B1B;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
  --serif:Georgia,"Noto Serif","Times New Roman",serif;
  --mono:ui-monospace,"Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  --fs-sm:.875rem; --fs-body:1rem; --fs-title:1.125rem; --fs-h2:1.375rem; --fs-h1:1.75rem; --fs-display:2.25rem;
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem; --s6:2rem; --s7:4rem;
  --r-sm:6px; --r-md:10px; --r-pill:9999px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --measure:68ch; --gutter:1rem; --header-h:4rem;
}
@media (min-width:600px){:root{--gutter:1.5rem}}
@media (min-width:1024px){:root{--gutter:2rem}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-padding-top:calc(var(--header-h) + var(--s4))}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.65;-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
img,svg{max-width:100%;height:auto}
h1,h2,h3{color:var(--ink);margin:0}
h1{font-family:var(--serif);font-size:var(--fs-h1);font-weight:600;line-height:1.2;letter-spacing:-.015em}
h2{font-family:var(--serif);font-size:var(--fs-h2);font-weight:600;line-height:1.3;letter-spacing:-.01em}
h3{font-family:var(--sans);font-size:var(--fs-title);font-weight:600;line-height:1.35}
p{margin:0 0 var(--s4)}
a{color:var(--primary);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
strong{font-weight:600}
code,kbd,pre{font-family:var(--mono)}
::selection{background:#CFE3F3;color:var(--ink)}
input,select,textarea{caret-color:var(--primary)}
:focus-visible{outline:3px solid var(--primary-focus);outline-offset:2px;border-radius:2px}
html{scrollbar-color:var(--hairline-strong) var(--surface-2)}
.num,td,.tabular{font-variant-numeric:tabular-nums}
[hidden]{display:none !important}
.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- skip link ---------- */
.skip-link{position:absolute;inset-inline-start:var(--s4);top:-4rem;z-index:100;background:var(--primary);color:var(--on-primary);padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-weight:600;text-decoration:none}
.skip-link:focus{top:var(--s3)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:var(--canvas);border-bottom:1px solid var(--hairline);padding-top:env(safe-area-inset-top,0px)}
.site-header .bar{display:flex;align-items:center;gap:var(--s3);min-height:var(--header-h);padding-inline:var(--gutter);max-width:80rem;margin-inline:auto}
.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;color:var(--ink);min-height:48px;min-width:0}
.brand .mark{flex-shrink:0;width:32px;height:32px}
.brand .words{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.brand .org{font-weight:700;font-size:var(--fs-body);letter-spacing:-.01em;color:var(--ink)}
.brand .course{font-size:var(--fs-sm);color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-nav{margin-inline-start:auto;display:flex;align-items:center;gap:var(--s2)}
.site-nav a.navtext{display:none;color:var(--ink);text-decoration:none;font-weight:500;padding-inline:var(--s3);min-height:48px;align-items:center;border-radius:var(--r-sm)}
.site-nav a.navtext[aria-current="page"]{color:var(--primary);font-weight:600}
@media (min-width:760px){.site-nav a.navtext{display:inline-flex}}
.menu-btn{margin-inline-end:calc(var(--s2) * -1)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 1.25rem;border-radius:var(--r-sm);border:1px solid transparent;font:600 var(--fs-body)/1.2 var(--sans);text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:transform 160ms var(--ease-out),background-color 160ms ease;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--primary);color:var(--on-primary)}
.btn-secondary{background:var(--canvas);color:var(--primary);border-color:var(--hairline-strong)}
.btn-danger{background:var(--danger);color:#FFFFFF}
.btn-quiet{background:transparent;color:var(--primary);padding:0 var(--s3)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none}
.btn .spinner{width:16px;height:16px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (hover:hover) and (pointer:fine){
  .btn-primary:hover{background:var(--primary-hover)}
  .btn-secondary:hover,.btn-quiet:hover{background:var(--surface-2)}
  .site-nav a.navtext:hover{background:var(--surface-2)}
  .navlink:hover{background:var(--canvas)}
  a:hover{text-decoration-thickness:2px}
}
button,a,input,select,textarea,label{touch-action:manipulation}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:72rem;margin-inline:auto;padding-inline:var(--gutter)}
.prose{max-width:var(--measure)}
.section{padding-block:var(--s6)}
@media (min-width:760px){.section{padding-block:var(--s7)}}
.section + .section{border-top:1px solid var(--hairline)}
.lead{font-size:var(--fs-title);line-height:1.6;color:var(--ink)}
.meta{font-size:var(--fs-sm);color:var(--ink-muted)}
.label{font-size:var(--fs-sm);color:var(--ink-muted);margin:0 0 var(--s2)}

/* ---------- landing ---------- */
.hero{padding-block:var(--s6) var(--s6)}
@media (min-width:760px){.hero{padding-block:var(--s7)}}
.hero h1{font-size:1.875rem;line-height:1.15;letter-spacing:-.02em;max-width:22ch}
@media (min-width:600px){.hero h1{font-size:var(--fs-display)}}
.hero .lead{margin-top:var(--s5);max-width:60ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}
.formula{margin-block:var(--s5) var(--s2);padding:var(--s4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--canvas);max-width:44rem}
.formula .row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.formula .grp{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--s2);padding:var(--s2);border-radius:var(--r-sm);background:var(--surface-2)}
.formula .chip{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 var(--s3);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--canvas);font:500 var(--fs-sm)/1 var(--mono);color:var(--ink)}
.formula .op{font:600 var(--fs-title)/1 var(--mono);color:var(--ink-muted)}
.formula .op.or{color:var(--primary)}
.formula .out{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3)}
.formula .chip.outcome{border-color:var(--ocean);border-width:2px;font-weight:700}
.formula-cap{font-size:var(--fs-sm);color:var(--ink-muted);max-width:60ch}
.grid{display:grid;gap:var(--s4)}
@media (min-width:760px){.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card{border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s5);background:var(--canvas)}
.card h3{margin-bottom:var(--s2)}
.card p:last-child{margin-bottom:0}
.parts{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;gap:var(--s3)}
@media (min-width:760px){.parts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.parts li{border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s4)}
.parts .pn{font-size:var(--fs-sm);color:var(--ink-muted);margin:0}
.parts h3{margin:var(--s1) 0 var(--s2)}
.parts ul{margin:0;padding-inline-start:1.1rem}
.parts ul li{border:0;padding:0;margin:var(--s1) 0}
.parts a{display:inline-block;padding-block:var(--s1)}
.faq details{border-bottom:1px solid var(--hairline)}
.faq summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600;padding-block:var(--s3);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-inline-start:auto;padding-inline-start:var(--s4);color:var(--primary);font-weight:700}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--ink)}
.refs{padding-inline-start:1.1rem}
.refs li{margin-bottom:var(--s3)}
.notice{border:1px solid var(--hairline);border-inline-start:4px solid var(--ocean);border-radius:var(--r-md);padding:var(--s4);margin-block:var(--s4)}

/* ---------- breadcrumbs ---------- */
.crumbs{font-size:var(--fs-sm);color:var(--ink-muted);padding-block:var(--s4) 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2)}
.crumbs li{display:flex;align-items:center;gap:var(--s2)}
.crumbs li+li::before{content:"/";color:var(--ink-muted)}
.crumbs a{display:inline-flex;align-items:center;min-height:48px}

/* ---------- module overview pages ---------- */
.mod-head{padding-block:var(--s5) var(--s4)}
.mod-head .label{margin-bottom:var(--s2)}
.objectives-box{border:1px solid var(--hairline);border-inline-start:4px solid var(--ocean);border-radius:var(--r-md);padding:var(--s4) var(--s5);margin-block:var(--s5)}
.objectives-box h2{font-family:var(--sans);font-size:var(--fs-title);margin-bottom:var(--s2)}
.objectives-box ul{margin:0;padding-inline-start:1.1rem}
.prevnext{display:grid;gap:var(--s3);margin-block:var(--s6) 0}
@media (min-width:760px){.prevnext{grid-template-columns:1fr 1fr}}
.prevnext a{display:block;border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s4);text-decoration:none;color:var(--ink);min-height:48px}
.prevnext a .meta{display:block}
.prevnext a strong{color:var(--primary)}
.prevnext .next{text-align:end}

/* ---------- curriculum ---------- */
.curr-part{padding-block:var(--s5);border-top:1px solid var(--hairline)}
.curr-part:first-of-type{border-top:0}
.curr-part ol{list-style:none;margin:var(--s3) 0 0;padding:0}
.curr-part ol li{padding-block:var(--s3);border-bottom:1px solid var(--hairline)}
.curr-part ol li:last-child{border-bottom:0}
.curr-part ol a{font-weight:600;display:inline-flex;min-height:48px;align-items:center}
.curr-part ol p{margin:0;color:var(--ink-muted);font-size:var(--fs-sm)}

/* ---------- legal ---------- */
.legal h2{margin-top:var(--s6);margin-bottom:var(--s3)}
.legal h3{margin-top:var(--s5);margin-bottom:var(--s2)}
.legal ul{padding-inline-start:1.2rem}
.legal li{margin-bottom:var(--s2)}
.toc{border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s4) var(--s5);margin-block:var(--s5)}
.toc ol{margin:0;padding-inline-start:1.2rem}
.toc a{display:inline-block;padding-block:var(--s2)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--hairline);margin-top:var(--s7);padding-block:var(--s6) calc(var(--s6) + env(safe-area-inset-bottom,0px));font-size:var(--fs-sm);color:var(--ink-muted)}
.site-footer .cols{display:grid;gap:var(--s5)}
@media (min-width:760px){.site-footer .cols{grid-template-columns:2fr 1fr 1fr 1fr}}
.site-footer h2{font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:var(--s2)}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li a{display:inline-flex;align-items:center;min-height:48px}
.site-footer .small{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--hairline)}
.site-footer .small p{margin:0 0 var(--s1)}

/* ---------- forms ---------- */
.form{display:grid;gap:var(--s4)}
@media (min-width:600px){.form .two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}}
.field{display:flex;flex-direction:column;gap:var(--s1);min-width:0}
.field label,.field .lbl{font-weight:600;font-size:var(--fs-sm);color:var(--ink)}
.field .opt{font-weight:400;color:var(--ink-muted)}
.field .hint{font-size:var(--fs-sm);color:var(--ink-muted);margin:0}
.field input,.field select{width:100%;min-height:48px;padding:0 var(--s3);font:400 1rem/1.4 var(--sans);color:var(--ink);background:var(--canvas);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231F2937' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-inline-end:2.5rem;color-scheme:light}
.field input:focus-visible,.field select:focus-visible{outline:3px solid var(--primary-focus);outline-offset:1px}
.field [aria-invalid="true"]{border-color:var(--danger);border-width:2px}
.field .err{color:var(--danger);font-size:var(--fs-sm);font-weight:600;margin:0}
.check{display:flex;gap:var(--s3);align-items:flex-start;min-height:48px;cursor:pointer}
.check input{flex-shrink:0;width:24px;height:24px;margin:.15rem 0 0;accent-color:var(--primary)}
.form-actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.alert{border:1px solid var(--hairline);border-inline-start:4px solid var(--danger);border-radius:var(--r-md);padding:var(--s3) var(--s4);color:var(--ink)}
.alert.ok{border-inline-start-color:var(--success)}
.alert.info{border-inline-start-color:var(--ocean)}
.alert p{margin:0}

/* ---------- app shell ---------- */
.statusbar{background:var(--canvas);border-bottom:1px solid var(--hairline);border-inline-start:4px solid var(--warning);padding:var(--s3) var(--gutter);font-size:var(--fs-sm)}
.statusbar p{margin:0;max-width:72rem}
.statusbar .btn{min-height:40px;margin-top:var(--s2)}
.narrow{max-width:38rem;margin-inline:auto;padding:var(--s6) var(--gutter)}
.course-layout{display:grid;grid-template-columns:minmax(0,1fr);max-width:84rem;margin-inline:auto}
@media (min-width:1024px){.course-layout{grid-template-columns:19rem minmax(0,1fr)}}
.rail{background:var(--surface-2);border-inline-end:1px solid var(--hairline)}
@media (max-width:1023.98px){
  .rail{position:fixed;inset:var(--header-h) 0 0 0;z-index:30;overflow-y:auto;overscroll-behavior:contain;display:none;padding-bottom:env(safe-area-inset-bottom,0px)}
  .rail.open{display:block}
}
@media (min-width:1024px){.rail{position:sticky;top:var(--header-h);height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}.rail-toggle{display:none !important}}
.rail-inner{padding:var(--s4)}
.progress{margin-bottom:var(--s4)}
.progress .meter{height:8px;background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-pill);overflow:hidden}
.progress .fill{height:100%;width:0;background:var(--sky)}
.progress p{margin:var(--s2) 0 0;font-size:var(--fs-sm);color:var(--ink-muted)}
.navpart{margin-top:var(--s4)}
.navpart h2{font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;color:var(--ink-muted);margin:0 0 var(--s1);padding-inline:var(--s2)}
.navpart ol{list-style:none;margin:0;padding:0}
.navlink{display:flex;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s2);border-radius:var(--r-sm);color:var(--ink);text-decoration:none;font-size:var(--fs-sm);line-height:1.35}
.navlink .n{flex-shrink:0;min-width:1.75rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.navlink[aria-current="page"]{background:var(--canvas);border:1px solid var(--hairline);font-weight:600;color:var(--primary)}
.navlink .done{margin-inline-start:auto;color:var(--success);font-weight:700}
.course-main{min-width:0;padding:var(--s5) var(--gutter) var(--s6)}
.course-main .content{max-width:var(--measure)}
.rail-toggle{margin-bottom:var(--s4)}

/* ---------- course content ---------- */
.module .part-label,.module .eyebrow{font-size:var(--fs-sm);color:var(--ink-muted);margin:0 0 var(--s2)}
.module .mod-title{font-family:var(--serif);font-size:var(--fs-h1);line-height:1.2;letter-spacing:-.015em;margin-bottom:var(--s5)}
.module h2:not(.mod-title){margin:var(--s6) 0 var(--s3)}
.module h3{margin:0 0 var(--s2)}
.module p,.module li{font-size:1.0625rem}
.module .lead{font-size:var(--fs-title)}
.module ul,.module ol{padding-inline-start:1.2rem}
.module li{margin-bottom:var(--s2)}
.module ul.clean{list-style:none;padding:0}
.module ul.clean li{padding-inline-start:1.5rem;position:relative}
.module ul.clean li::before{content:"";position:absolute;inset-inline-start:.25rem;top:.7em;width:.45rem;height:.45rem;border-radius:50%;background:var(--ocean)}
.module code.k,.module code{background:var(--surface-2);border:1px solid var(--hairline);border-radius:4px;padding:0 .3em;font-size:.9em;color:var(--ink)}
.objectives,.keybox,.analogy,.warn,.tryit,.reflect{border:1px solid var(--hairline);border-inline-start:4px solid var(--ocean);border-radius:var(--r-md);padding:var(--s4) var(--s5);margin-block:var(--s5);background:var(--canvas)}
.analogy{border-inline-start-color:var(--sky)}
.warn{border-inline-start-color:var(--warning)}
.reflect,.tryit{border-inline-start-color:var(--hairline-strong)}
.objectives .otag,.keybox .tag,.analogy .tag,.warn .tag,.tryit .tag,.reflect .rtag{font-size:var(--fs-sm);font-weight:600;color:var(--ink-muted);margin-bottom:var(--s2);display:flex;align-items:center;gap:var(--s2)}
.warn .tag{color:var(--warning)}
.objectives ul,.reflect ul{margin:0}
.keybox h3,.warn h3{font-size:var(--fs-title)}
.objectives p:last-child,.keybox p:last-child,.analogy p:last-child,.warn p:last-child,.tryit p:last-child,.reflect p:last-child{margin-bottom:0}
.footnote-ref{font-size:var(--fs-sm);color:var(--ink-muted);border-inline-start:2px solid var(--hairline);padding-inline-start:var(--s3)}
.tablewrap{overflow-x:auto;margin-block:var(--s5);border:1px solid var(--hairline);border-radius:var(--r-md)}
.tablewrap table{border-collapse:collapse;width:100%;font-size:.9375rem;min-width:28rem}
.tablewrap th{background:var(--surface-2);text-align:start;font-weight:600;color:var(--ink);padding:var(--s3);border-bottom:1px solid var(--hairline)}
.tablewrap td{padding:var(--s3);border-bottom:1px solid var(--hairline);vertical-align:top}
.tablewrap tr:last-child td{border-bottom:0}
.tablewrap td.mono,.tablewrap td.num{font-family:var(--mono)}
.tablewrap td.y,.tablewrap td.n{color:var(--ink);font-weight:700}
.tablewrap td.ok{color:var(--success);font-weight:700}
.tablewrap .caption,.caption{font-size:var(--fs-sm);color:var(--ink-muted);padding:var(--s3);margin:0;border-top:1px solid var(--hairline)}
.symtable td.mono{font-size:1.125rem;font-weight:700;color:var(--ink)}
.codewrap{margin-block:var(--s5);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}
.codehead{display:flex;align-items:center;gap:var(--s3);padding:var(--s1) var(--s1) var(--s1) var(--s4);border-bottom:1px solid var(--hairline)}
.codehead .ttl{font:500 var(--fs-sm)/1.3 var(--mono);color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.codehead .copy{margin-inline-start:auto;min-height:48px}
.codewrap pre{margin:0;padding:var(--s4);overflow-x:auto;font-size:.875rem;line-height:1.6;color:var(--ink);tab-size:2}
.c-com{color:var(--ink-muted);font-style:italic}
.c-str{color:var(--primary)}
.c-fn{color:#6B21A8}
.c-num{color:#7C2D12}
.c-op,.c-var{color:var(--ink)}
.console{border-top:1px solid var(--hairline);background:var(--canvas);padding:var(--s3) var(--s4);font:400 .875rem/1.6 var(--mono);color:var(--ink);white-space:pre-wrap;overflow-x:auto}
.console .lbl{display:block;font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;color:var(--ink-muted)}
.figure{margin-block:var(--s5)}
.figure svg{display:block;width:100%;height:auto;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--canvas)}
.figcap{font-size:var(--fs-sm);color:var(--ink-muted);margin-top:var(--s2)}
.steps{display:grid;gap:var(--s3);margin-block:var(--s5)}
.step{display:flex;gap:var(--s4);align-items:flex-start;border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s4)}
.step .num{flex-shrink:0;width:2rem;height:2rem;border-radius:50%;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-weight:700;font-size:var(--fs-sm)}
.step .body{min-width:0}
.step .body p:last-child{margin:0}
.complete-btn{margin-top:var(--s5)}
.complete-btn[aria-pressed="true"]{background:var(--canvas);color:var(--success);border-color:var(--success)}
.pager{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--hairline);flex-wrap:wrap}
.pager .count{color:var(--ink-muted);font-size:var(--fs-sm)}
.pager .next,.pager .finish{margin-inline-start:auto}

/* ---------- account ---------- */
.dl{display:grid;grid-template-columns:minmax(0,1fr);margin:var(--s4) 0;border:1px solid var(--hairline);border-radius:var(--r-md)}
.dl div{padding:var(--s3) var(--s4);border-bottom:1px solid var(--hairline)}
.dl div:last-child{border-bottom:0}
.dl dt{font-size:var(--fs-sm);color:var(--ink-muted)}
.dl dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.danger-zone{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--hairline)}
dialog{border:1px solid var(--hairline);border-radius:var(--r-md);padding:0;max-width:min(32rem,calc(100vw - 2rem));width:100%;color:var(--ink);background:var(--canvas)}
dialog::backdrop{background:rgba(31,41,55,.55)}
dialog .dbody{padding:var(--s5)}
dialog h2{margin-bottom:var(--s3)}
dialog .form-actions{margin-top:var(--s5)}
dialog ul{padding-inline-start:1.2rem}

/* ---------- certificate ---------- */
.cert-view{padding:var(--s6) var(--gutter)}
.cert-view .wrapc{max-width:60rem;margin-inline:auto}
.cert-view canvas{width:100%;height:auto;display:block;border:1px solid var(--hairline);border-radius:var(--r-md)}
.cert-view .form-actions{margin-top:var(--s5)}

@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}.btn .spinner{animation-duration:2.4s}}
@media (prefers-contrast:more){:root{--hairline:#7B8794;--ink-muted:#374151}}
@media print{.site-header,.site-footer,.rail,.pager,.statusbar{display:none !important}}
.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}.mt-6{margin-top:var(--s6)}.py-7{padding-block:var(--s7)}
.h-sub{font-family:var(--sans);font-size:var(--fs-title);font-weight:600;line-height:1.35;margin-bottom:var(--s3)}
.module h2.lift{font-family:var(--sans);font-size:var(--fs-title);line-height:1.35;margin:0 0 var(--s2)}
#account-dl:empty{min-height:46.625rem}

/* v3: multi-page */
html.gated main{visibility:hidden}
.alert p+p{margin-top:var(--s2)}
.alert.warn{border-inline-start-color:var(--warning)}
.statusbar.info{border-inline-start-color:var(--ocean)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.tenants{list-style:none;padding:0;margin:var(--s4) 0;display:grid;gap:var(--s3)}
.tenants .btn{width:100%;justify-content:flex-start}
.course-home .parts-list{list-style:none;padding:0;margin:var(--s5) 0 0}
.course-home .parts-list>li{border-top:1px solid var(--hairline);padding:var(--s4) 0}
.course-home .parts-list h2{font-family:var(--sans);font-size:var(--fs-title);margin-bottom:var(--s2)}
.course-home .parts-list ol{margin:0;padding-inline-start:1.25rem}
.course-home .parts-list li li{margin:var(--s1) 0}
.course-home .parts-list a{display:inline-flex;align-items:center;min-height:48px}
.tick{color:var(--success);font-weight:700;margin-inline-start:var(--s2)}
.err-page{padding-block:var(--s7)}
.err-page .ref{color:var(--ink-muted);font-size:var(--fs-sm)}
.dev-trace{white-space:pre-wrap;font-size:var(--fs-sm);background:var(--surface-2);padding:var(--s4);border-radius:var(--r-md);overflow-x:auto}
.account-tools{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--hairline)}
