
/* ------------------------------------------------------------------
   Tokens. Brand: Deep Plum 5B4670, Academy Gold E0B44A, Soft Sage DCE6D6,
   Off-White F9F9F7, Charcoal 3E3E3E. Gold is decoration only on light
   surfaces (1.85:1 on off-white) and never carries text.
------------------------------------------------------------------- */
:root{
  --bg:#F9F9F7; --surface:#FFFFFF; --surface-2:#F1F0EC;
  --text:#3E3E3E; --text-2:#595959;
  --plum:#5B4670; --plum-d:#46355A; --on-plum:#FFFFFF; --plum-tint:#EDE7F2;
  --gold:#E0B44A; --on-gold:#3E3E3E;
  --sage:#DCE6D6; --on-sage:#3E3E3E;
  --line:#DAD8D2; --line-strong:#8A8882;
  --ok:#2B6638; --ok-bg:#E3EEDF; --warn:#7A4C00; --warn-bg:#F6E9C8; --bad:#962929; --bad-bg:#F7E1DE;
  --focus:#5B4670; --chrome:#2E2C33; --on-chrome:#EDEBF0;
  --shadow:0 1px 2px rgba(40,30,50,.06);
  --font-d:"Playfair Display","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --font-b:Montserrat,"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#17151B; --surface:#211E27; --surface-2:#2A2631;
    --text:#ECEAF0; --text-2:#B6B1C0;
    --plum:#C4AEDA; --plum-d:#D6C5E7; --on-plum:#1A1420; --plum-tint:#2E2638;
    --gold:#E0B44A; --on-gold:#241E12; --sage:#243026; --on-sage:#ECEAF0;
    --line:#3A3542; --line-strong:#857E92;
    --ok:#8FD19A; --ok-bg:#1D3322; --warn:#EBC970; --warn-bg:#392E12; --bad:#F4A6A0; --bad-bg:#3B1E1E;
    --focus:#E0B44A; --chrome:#0F0E12; --on-chrome:#ECEAF0; --shadow:none;
  }
}
:root[data-theme="dark"]{
  --bg:#17151B; --surface:#211E27; --surface-2:#2A2631;
  --text:#ECEAF0; --text-2:#B6B1C0;
  --plum:#C4AEDA; --plum-d:#D6C5E7; --on-plum:#1A1420; --plum-tint:#2E2638;
  --gold:#E0B44A; --on-gold:#241E12; --sage:#243026; --on-sage:#ECEAF0;
  --line:#3A3542; --line-strong:#857E92;
  --ok:#8FD19A; --ok-bg:#1D3322; --warn:#EBC970; --warn-bg:#392E12; --bad:#F4A6A0; --bad-bg:#3B1E1E;
  --focus:#E0B44A; --chrome:#0F0E12; --on-chrome:#ECEAF0; --shadow:none;
}

/* ------------------------------ base ------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.55 var(--font-b);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--plum);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.on-plum :focus-visible{outline-color:var(--gold)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--plum);color:var(--on-plum);padding:10px 16px;z-index:100;border-radius:4px;text-decoration:none;font-weight:600}
.skip:focus{top:8px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--text-2)}
.small{font-size:13.5px;line-height:1.5}
.nowrap{white-space:nowrap}

/* typography */
.h-display{font:600 clamp(30px,4.2vw,46px)/1.12 var(--font-d);letter-spacing:-.012em;color:var(--text)}
.h-page{font:600 clamp(26px,3.2vw,34px)/1.15 var(--font-d);letter-spacing:-.01em}
.h2{font:600 20px/1.3 var(--font-b);letter-spacing:-.005em}
.h3{font:600 16px/1.35 var(--font-b)}
.eyebrow{font:600 12px/1.4 var(--font-b);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--gold);display:inline-block}
.lead{font-size:18px;line-height:1.6;color:var(--text-2);max-width:60ch}
.fig{font:600 34px/1 var(--font-d);letter-spacing:-.01em}
.fig-sm{font:600 26px/1 var(--font-d)}

/* icons */
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
.ic.sm{width:16px;height:16px;vertical-align:-3px}

/* prototype bar (review chrome, not part of the product) */
.admin-top .wm{color:var(--on-plum)}
.admin-top a{color:var(--on-plum)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:4px;border:1px solid transparent;font:600 15px/1.2 var(--font-b);cursor:pointer;text-decoration:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease;white-space:normal;text-align:center}
.btn.primary{background:var(--plum);color:var(--on-plum)}
.btn.primary:hover{background:var(--plum-d)}
.btn.secondary{background:transparent;border-color:var(--plum);color:var(--plum)}
.btn.secondary:hover{background:var(--plum-tint)}
.btn.quiet{background:transparent;color:var(--plum);padding-inline:10px}
.btn.quiet:hover{background:var(--plum-tint)}
.btn.danger{background:var(--bad);color:#fff}
:root[data-theme="dark"] .btn.danger{color:#1B0B0B}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn.danger{color:#1B0B0B}}
.btn.danger-o{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.danger-o:hover{background:var(--bad-bg)}
.btn.sm{min-height:36px;padding:6px 14px;font-size:14px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;color:inherit}
.icon-btn:hover{background:var(--plum-tint)}
.link-btn{background:none;border:0;padding:0;color:var(--plum);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:600;min-height:24px}

/* site header */
.hdr{background:var(--surface);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:24px;min-height:72px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.wm{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.wm-a{font:600 22px/1 var(--font-d);letter-spacing:-.01em}
.wm-b{font:600 11px/1.2 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);border-left:2px solid var(--gold);padding-left:12px}
.hdr nav{display:flex;gap:4px;margin-left:8px;flex-wrap:wrap}
.hdr nav a{padding:10px 12px;text-decoration:none;color:var(--text);font-weight:600;font-size:14.5px;border-radius:4px}
.hdr nav a:hover{background:var(--plum-tint)}
.hdr .sp{flex:1}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;padding-top:64px;padding-bottom:56px;align-items:start}
.hero-copy .h-display{margin:18px 0 20px}
.hero-copy .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.facts li{padding:20px 24px;border-left:1px solid var(--line);font-size:14.5px;color:var(--text-2)}
.facts li:first-child{border-left:0}
.facts strong{display:block;color:var(--text);font-weight:600;margin-bottom:4px;font-size:15px}
.record{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;padding:0;box-shadow:var(--shadow)}
.record header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.record dl{padding:4px 20px 12px}
.record dl>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.record dl>div:last-child{border-bottom:0}
.record dt{color:var(--text-2);font-size:13.5px}
.record dd{font-weight:600;font-size:14.5px}
.record dd small{display:block;font-weight:400;color:var(--text-2);font-size:13px;margin-top:2px}

/* sections */
.sec{padding-block:56px}
.sec+.sec{border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;flex-wrap:wrap}
.sec-head p{max-width:62ch}
.band-surface{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* builder */
.builder{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:start}
.step-h{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}
.step-n{font:600 13px/1 var(--font-b);color:var(--on-plum);background:var(--plum);width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;transform:translateY(-1px)}
.libgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:36px}
.libcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:16px 16px 14px 52px;display:flex;flex-direction:column;gap:6px;transition:border-color .16s,background-color .16s}
.libcard:hover{border-color:var(--line-strong)}
.libcard.is-on{border-color:var(--plum);background:var(--plum-tint);box-shadow:inset 3px 0 0 var(--plum)}
.libcard input{position:absolute;left:16px;top:18px;width:22px;height:22px;margin:0;accent-color:var(--plum);cursor:pointer}
.libcard label{font-weight:600;font-size:16px;cursor:pointer}
.libcard label::after{content:"";position:absolute;inset:0}
.libcard .meta{font-size:13.5px;color:var(--text-2)}
.libcard .more{position:relative;z-index:1;align-self:flex-start;margin-top:4px}
.seatrow{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.lbl{font-weight:600;font-size:14px}
.hint{font-size:13.5px;color:var(--text-2)}
.input,select.input,textarea.input{min-height:44px;padding:9px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:4px;width:100%}
textarea.input{min-height:88px;resize:vertical}
::placeholder{color:var(--text-2);opacity:1}
.input[aria-invalid="true"]{border-color:var(--bad);box-shadow:inset 3px 0 0 var(--bad)}
.err{color:var(--bad);font-size:13.5px;font-weight:600;display:flex;gap:6px;align-items:flex-start}
.stepper{display:flex;align-items:stretch}
.stepper .input{width:120px;text-align:center;border-radius:0;font-weight:600;font-size:18px}
.stepper button{width:44px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:20px;line-height:1}
.stepper button:first-child{border-radius:4px 0 0 4px;border-right:0}
.stepper button:last-child{border-radius:0 4px 4px 0;border-left:0}
.stepper button:hover{background:var(--plum-tint)}
.bands{display:flex;flex-wrap:wrap;gap:8px}
.bands button{min-height:44px;padding:8px 14px;border:1px solid var(--line-strong);background:var(--surface);border-radius:4px;cursor:pointer;font-weight:600;font-size:14px}
.bands button[aria-pressed="true"]{background:var(--plum);color:var(--on-plum);border-color:var(--plum)}
.bands button:not([aria-pressed="true"]):hover{background:var(--plum-tint)}
.summary{position:sticky;top:16px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--plum);border-radius:4px}
.summary .sum-h{padding:18px 20px;border-bottom:1px solid var(--line)}
.summary .sum-b{padding:8px 20px}
.summary .sum-f{padding:18px 20px;border-top:1px solid var(--line);background:var(--surface-2);display:grid;gap:12px}
.line{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.line:last-child{border-bottom:0}
.line.total{font-weight:600;font-size:16px}
.line .v{font-variant-numeric:tabular-nums;white-space:nowrap}
.callout{display:flex;gap:12px;padding:12px 14px;border-radius:4px;background:var(--sage);color:var(--on-sage);font-size:14px;line-height:1.5}
.callout.warn{background:var(--warn-bg);color:var(--warn)}
.callout.bad{background:var(--bad-bg);color:var(--bad)}
.callout.info{background:var(--plum-tint);color:var(--text)}
.callout .ic{margin-top:1px}

/* steps / columns */
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);background:var(--surface)}
.cols3>div{padding:28px;border-left:1px solid var(--line)}
.cols3>div:first-child{border-left:0}
.cols3 .n{font:500 38px/1 var(--font-d);color:var(--plum);margin-bottom:14px;display:block}
.cols3 h3{margin-bottom:8px}
.cols3 p{color:var(--text-2);font-size:14.5px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.trust li{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.trust li .ic{color:var(--plum);margin-top:2px}
.trust strong{display:block}
.doclist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-top:8px}
.doclist li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.footer{background:var(--surface);border-top:1px solid var(--line);padding:32px 0;font-size:13.5px;color:var(--text-2)}
.footer .wrap{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap}
.footer ul{display:flex;gap:18px;flex-wrap:wrap}

/* tags */
.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:3px;font-size:12.5px;font-weight:600;line-height:1.4;background:var(--surface-2);color:var(--text);white-space:nowrap}
.tag .ic{width:14px;height:14px;vertical-align:-2px}
.tag.ok{background:var(--ok-bg);color:var(--ok)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}
.tag.bad{background:var(--bad-bg);color:var(--bad)}
.tag.info{background:var(--plum-tint);color:var(--plum)}
.tag.sample{background:transparent;border:1px dashed var(--line-strong);color:var(--text-2);font-weight:600}

/* app shell */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 49px)}
.side{background:var(--surface);border-right:1px solid var(--line);padding:20px 12px;position:sticky;top:0;align-self:start;height:100vh;max-height:100vh;overflow:auto}
.side .org .wm{flex-direction:column;align-items:flex-start;gap:8px}
.side .org .wm-b{border-left:0;padding-left:0;border-top:2px solid var(--gold);padding-top:6px}
.side .org{padding:4px 12px 16px;border-bottom:1px solid var(--line);margin-bottom:12px}
.side .org b{display:block;font-size:15px}
.side nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:4px;text-decoration:none;color:var(--text);font-weight:600;font-size:14.5px;position:relative}
.side nav a:hover{background:var(--plum-tint)}
.side nav a[aria-current="page"]{background:var(--plum-tint);color:var(--plum)}
.side nav a[aria-current="page"]::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--plum);border-radius:2px}
.side nav .badge{margin-left:auto;background:var(--plum);color:var(--on-plum);border-radius:10px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;padding:0 6px}
.main{padding:32px 40px 64px;min-width:0}
.main:focus{outline:none}
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.page-h p{margin-top:6px;color:var(--text-2)}
.topbar{display:none}
.admin-top{background:var(--plum);color:var(--on-plum)}
.admin-top .wrap{display:flex;gap:16px;align-items:center;min-height:56px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.admin-top .wm-a,.admin-top .wm-b{color:var(--on-plum)}
.admin-top .wm-b{border-left-color:var(--gold)}
.admin-top .sp{flex:1}
.admin-top .who{font-size:13.5px;display:flex;align-items:center;gap:8px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:24px}
.panel>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel .body{padding:20px}
.panel .body.flush{padding:0}
.panel.attn{border-top:3px solid var(--gold)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid2>.panel{margin-bottom:0}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:24px}
.metrics>div{padding:18px 20px;border-left:1px solid var(--line)}
.metrics>div:first-child{border-left:0}
.metrics .k{font-size:13px;color:var(--text-2);margin-bottom:8px;display:block}
.metrics .s{font-size:13px;color:var(--text-2);margin-top:6px}

/* attention list */
.attn-list li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 20px;border-top:1px solid var(--line)}
.attn-list li:first-child{border-top:0}
.attn-list .ic{color:var(--warn);margin-top:2px}
.attn-list p{font-size:14.5px}
.attn-list b{font-weight:600}

/* tables */
.tblwrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-weight:600;font-size:12.5px;color:var(--text-2);padding:10px 16px;border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface-2)}
.tbl td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:var(--surface-2)}
.tbl .r{text-align:right;white-space:nowrap}
.tbl td.nowrap{white-space:nowrap}
.tbl .id{font-weight:600;white-space:nowrap}
.tbl .sub{display:block;color:var(--text-2);font-size:12.5px;margin-top:2px;font-weight:400}
.th-btn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.th-btn:hover{color:var(--plum)}

/* bars + charts */
.bar{display:block;height:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;background:var(--plum)}
.bar.warn i{background:var(--warn)}
.bar.bad i{background:var(--bad)}
.seatcell{display:flex;flex-direction:column;gap:6px;min-width:120px}
.cbars{display:flex;align-items:flex-end;gap:10px;height:190px;padding-top:12px}
.cbars .c{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;min-width:0}
.cbars .c b{font-size:12.5px;font-weight:600}
.cbars .c i{display:block;width:100%;max-width:44px;background:var(--plum);border-radius:2px 2px 0 0;min-height:2px}
.cbars .c span{font-size:12px;color:var(--text-2);text-align:center;line-height:1.25}
.cbars .c.lite i{background:var(--line-strong)}
.legend{display:flex;gap:16px;font-size:12.5px;color:var(--text-2);margin-top:10px}

/* tabs */
.tabs [role="tablist"]{display:flex;gap:0;border-bottom:1px solid var(--line-strong);overflow-x:auto}
.tabs [role="tab"]{background:none;border:0;border-bottom:3px solid transparent;padding:12px 18px;font-weight:600;font-size:14.5px;cursor:pointer;color:var(--text-2);white-space:nowrap;min-height:44px;margin-bottom:-1px}
.tabs [role="tab"][aria-selected="true"]{color:var(--plum);border-bottom-color:var(--plum)}
.tabs [role="tab"]:hover{color:var(--text)}
.tabs [role="tabpanel"]{padding:24px 0 4px}
.steps{counter-reset:s;display:grid;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
.steps li::before{content:counter(s);width:28px;height:28px;border-radius:50%;border:1px solid var(--plum);color:var(--plum);font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center}
.steps li div{padding-top:3px}
.bullets li{position:relative;padding-left:18px;margin:6px 0}
.bullets li::before{content:"";position:absolute;left:2px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--line-strong)}

/* checklist (import test, gate) */
.checks li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 20px;border-top:1px solid var(--line)}
.checks li:first-child{border-top:0}
.checks .st{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2)}
.checks .st .ic{width:15px;height:15px;vertical-align:0}
.checks li[data-s="ok"] .st{background:var(--ok-bg);color:var(--ok)}
.checks li[data-s="warn"] .st{background:var(--warn-bg);color:var(--warn)}
.checks li[data-s="bad"] .st{background:var(--bad-bg);color:var(--bad)}
.checks li[data-s="run"] .st{background:var(--plum-tint);color:var(--plum)}
.checks .t{font-weight:600;font-size:14.5px}
.checks .d{font-size:13.5px;color:var(--text-2);margin-top:2px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--plum);display:inline-block;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}

/* stepper (release) */
.rel-steps{display:flex;gap:0;margin-bottom:24px;border:1px solid var(--line);background:var(--surface);border-radius:4px;overflow:hidden}
.rel-steps li{flex:1;padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--text-2);border-left:1px solid var(--line);display:flex;gap:10px;align-items:center;min-width:0}
.rel-steps li:first-child{border-left:0}
.rel-steps li span.n{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.rel-steps li[aria-current="step"]{color:var(--plum);background:var(--plum-tint)}
.rel-steps li[aria-current="step"] span.n{background:var(--plum);color:var(--on-plum);border-color:var(--plum)}
.rel-steps li.done span.n{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}
.mode{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:16px 16px 16px 48px;cursor:pointer}
.mode input{position:absolute;left:16px;top:18px;accent-color:var(--plum);width:20px;height:20px;margin:0}
.mode:has(input:checked){border-color:var(--plum);background:var(--plum-tint);box-shadow:inset 3px 0 0 var(--plum)}
.mode:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.mode b{display:block}
.drop{border:1px dashed var(--line-strong);border-radius:4px;padding:28px;background:var(--surface);display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.drop p{max-width:52ch}

/* dialog */
dialog{border:1px solid var(--line-strong);border-radius:6px;padding:0;background:var(--surface);color:var(--text);width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:0 20px 60px rgba(20,10,30,.28)}
dialog.wide{width:min(820px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(25,18,32,.55)}
dialog[open]{display:flex;flex-direction:column}
.dlg-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 16px;border-bottom:1px solid var(--line)}
.dlg-b{padding:20px 24px;overflow:auto;display:grid;gap:16px}
.dlg-f{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--line);background:var(--surface-2)}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 16px;font-size:14.5px}
.kv dt{color:var(--text-2)}
.kv dd{font-weight:600}
.inv{border:1px solid var(--line);padding:24px;font-size:14px;background:var(--surface)}
.inv h3{font:600 22px/1.2 var(--font-d);margin-bottom:4px}
.inv table{width:100%;border-collapse:collapse;margin:16px 0}
.inv th,.inv td{padding:8px 0;border-bottom:1px solid var(--line);text-align:left}
.inv .r{text-align:right}

/* toast */
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--chrome);color:var(--on-chrome);padding:12px 18px;border-radius:4px;font-size:14px;max-width:min(560px,calc(100vw - 32px));opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200;border-left:3px solid var(--gold)}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* filters */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.filters .field{min-width:150px}
.legend-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);background:var(--surface);margin-bottom:24px}
.legend-grid>div{padding:16px 18px;border-left:1px solid var(--line);font-size:13.5px;color:var(--text-2)}
.legend-grid>div:first-child{border-left:0}
.legend-grid .tag{margin-bottom:8px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.form-grid .full{grid-column:1/-1}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font-weight:600;font-size:14px;margin-bottom:8px}
.radiocards{display:grid;gap:10px}
.rc{position:relative;display:block;border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:14px 16px 14px 48px;cursor:pointer}
.rc input{position:absolute;left:16px;top:16px;accent-color:var(--plum);width:20px;height:20px;margin:0}
.rc:has(input:checked){border-color:var(--plum);background:var(--plum-tint);box-shadow:inset 3px 0 0 var(--plum)}
.rc:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.rc b{display:block}
.check-row{display:flex;gap:12px;align-items:flex-start}
.check-row input{width:22px;height:22px;margin-top:2px;accent-color:var(--plum);flex:none}
.sample-banner{font-size:13px}
.rolegrid td,.rolegrid th{text-align:center}
.rolegrid td:first-child,.rolegrid th:first-child{text-align:left}
.rolegrid input{width:20px;height:20px;accent-color:var(--plum)}

/* ------------------------------ responsive ------------------------------ */
@media (max-width:1040px){
  .hero{grid-template-columns:1fr;gap:36px;padding-top:40px}
  .builder{grid-template-columns:1fr}
  .summary{position:static}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts li:nth-child(3){border-left:0}
  .facts li:nth-child(n+3){border-top:1px solid var(--line)}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metrics>div:nth-child(3){border-left:0}
  .metrics>div:nth-child(n+3){border-top:1px solid var(--line)}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .legend-grid>div:nth-child(3){border-left:0}
  .legend-grid>div:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:0}
  .side .org{display:none}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;min-height:56px}
  .topbar b{font-size:14.5px}
  .topbar .wm{gap:8px}
  .topbar .wm-a{font-size:18px;white-space:nowrap}
  .topbar .wm-b{font-size:9.5px;letter-spacing:.1em;padding-left:8px}
  .side-foot{display:none}
  .side.open .side-foot{display:block}
  .side nav{display:none;padding:4px 12px 12px;border-top:1px solid var(--line)}
  .side.open nav{display:block}
  .main{padding:24px 16px 56px}
  .cols3{grid-template-columns:1fr}
  .cols3>div{border-left:0;border-top:1px solid var(--line)}
  .cols3>div:first-child{border-top:0}
  .two,.trust,.doclist{grid-template-columns:1fr}
  .modes{grid-template-columns:1fr}
  .rel-steps{flex-direction:column}
  .rel-steps li{border-left:0;border-top:1px solid var(--line)}
  .rel-steps li:first-child{border-top:0}
}
@media (max-width:720px){
  .wrap{padding:0 16px}
  .hdr .wrap{gap:12px}
  .hdr nav{order:3;width:100%;margin-left:-12px}
  .hdr .sp{display:none}
  .hdr .hdr-actions{margin-left:auto}
  .libgrid{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .facts li{border-left:0;border-top:1px solid var(--line)}
  .facts li:first-child{border-top:0}
  .metrics{grid-template-columns:1fr}
  .metrics>div{border-left:0;border-top:1px solid var(--line)}
  .metrics>div:first-child{border-top:0}
  .legend-grid{grid-template-columns:1fr}
  .legend-grid>div{border-left:0;border-top:1px solid var(--line)}
  .legend-grid>div:first-child{border-top:0}
  .form-grid{grid-template-columns:1fr}
  .attn-list li{grid-template-columns:24px minmax(0,1fr)}
  .attn-list li>:last-child{grid-column:2}
  .record dl>div{grid-template-columns:1fr;gap:2px}
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv dd{margin-bottom:8px}
  .sec{padding-block:40px}
  .hero{padding-top:28px;padding-bottom:36px}
  .lead{font-size:16.5px}
  .tbl.stack thead{display:none}
  .tbl.stack,.tbl.stack tbody,.tbl.stack tr,.tbl.stack td{display:block;width:100%}
  .tbl.stack tr{border-bottom:1px solid var(--line-strong);padding:12px 16px}
  .tbl.stack tbody tr:last-child{border-bottom:0}
  .tbl.stack td{display:block;padding:7px 0;border:0;text-align:left}
  .tbl.stack td::before{content:attr(data-label);display:block;color:var(--text-2);font-weight:600;font-size:12px;margin-bottom:2px}
  .tbl.stack td.act{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}
  .tbl.stack td.act::before{display:none}
  .tbl.stack .seatcell{min-width:0}
  .tbl.stack td.r{text-align:left}
  .tbl.stack td .tag{white-space:normal}
  .filters .field{min-width:100%}
  .dlg-h,.dlg-b,.dlg-f{padding-left:16px;padding-right:16px}
  .dlg-f .btn{flex:1 1 100%}
  .cbars{gap:4px}
  .cbars .c span{font-size:11px}
  .cbars .c b{font-size:11.5px}
  .stepper .input{width:96px}
  .page-h{flex-direction:column;align-items:flex-start}
  .tabs [role="tab"]{padding:12px 14px}
  .pbar .wrap{padding-top:6px;padding-bottom:6px}
  .pbar .wrap>div:first-child .small{display:none}
  .pbar a,.pbar button{padding:6px 8px}
  .admin-top .wrap{padding-top:10px;padding-bottom:10px}
}

/* M2 additions */
.shopnav{display:flex;gap:4px;flex-wrap:wrap}
.status-line{padding:10px 14px;border-radius:4px;background:var(--surface-2);font-size:14px}
.sr-live{position:absolute;left:-9999px}
.pagehide{display:none!important}
.wide-input{width:100%}
.mini-table{width:100%;border-collapse:collapse;font-size:14px}
.mini-table th,.mini-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.login-card{max-width:460px;margin:64px auto;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;padding:28px}
.fillbar{height:8px;background:var(--surface-2);border-radius:2px;overflow:hidden}
.fillbar i{display:block;height:100%;background:var(--plum)}
.fillbar.warn i{background:var(--warn)}
.fillbar.bad i{background:var(--bad)}
dialog.dlg{border:1px solid var(--line-strong);border-radius:4px;padding:24px;max-width:520px;width:calc(100% - 32px);background:var(--surface);color:var(--text)}
dialog.dlg::backdrop{background:rgba(20,15,25,.55)}
.toast{position:fixed;right:16px;bottom:16px;max-width:360px;background:var(--chrome);color:var(--on-chrome);padding:12px 16px;border-radius:4px;z-index:200}
.toast.bad{background:var(--bad);color:#fff}
.keyval{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:14.5px}
.keyval dt{color:var(--text-2)}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--surface-2);font-size:12.5px;font-weight:600}

.gapt{margin-top:24px}.gapb{margin-bottom:20px}.step-gap{margin-top:36px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.coursel{columns:2;column-gap:32px;margin-top:12px}.coursel li{break-inside:avoid;margin-bottom:10px}
.doclist li .sub{display:block;font-size:13.5px;color:var(--text-2);margin-top:2px}
.qform{max-width:760px;display:grid;gap:16px}
.qform .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.status-line{padding:10px 14px;border-radius:4px;background:var(--surface-2);font-size:14.5px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;cursor:pointer}.chk input{width:20px;height:20px;margin-top:2px;accent-color:var(--plum);flex:none}
.lmsq{border:0;padding:0;margin:0 0 12px}.lmsq .chk{margin:10px 0}
.dlg-b{display:grid;gap:12px;margin:14px 0}
.lms{border:1px solid var(--line);border-radius:4px;padding:10px 14px;margin:8px 0;background:var(--surface)}.lms summary{cursor:pointer;font-weight:600}.lms ol{margin:10px 0 4px 20px;padding:0;list-style:decimal}
.panelpad{padding:20px 0}
.linkbox{display:block;word-break:break-all;background:var(--surface-2);padding:10px 12px;border-radius:4px;font-size:13px}
.pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);padding:12px;border-radius:4px;font-size:12.5px;max-height:420px;overflow:auto}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px}
.panel>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.panel .body{padding:16px 18px;display:grid;gap:14px}
.page-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.tag.bad{background:var(--bad-bg);color:var(--bad)}
@media (max-width:700px){.qform .two{grid-template-columns:1fr}.coursel{columns:1}.keyval{grid-template-columns:1fr}.keyval dt{margin-top:6px}}

@media (max-width:700px){.tbl th,.tbl td{padding:8px 6px}.tbl .btn.sm{min-height:36px;padding:6px 10px}}

.tbl td .btn+.btn{margin-left:6px}.tbl td .btn{margin-bottom:4px}

body.ia{--font-b:"Noto Sans JP","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;--font-d:"Playfair Display","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --bg:#FFFFFF;--surface:#FFFFFF;--surface-2:#F7F7F9;--text:#3E3E3E;--text-2:#595959;--plum:#5D3C71;--plum-d:#46355A;--on-plum:#FFFFFF;--plum-tint:#EDE7F2;
  --sage:#DCE6D6;--on-sage:#3E3E3E;--line:#DAD8D2;--line-strong:#8A8882;--ok:#2B6638;--ok-bg:#E3EEDF;--warn:#7A4C00;--warn-bg:#F6E9C8;--bad:#962929;--bad-bg:#F7E1DE;
  --focus:#5D3C71;--green:#7FAC3B;--green-d:#6B9631;color-scheme:light;padding:0;display:block;background:#fff}
body.ia h1,body.ia h2,body.ia .h-display,body.ia .h-page{color:#5D3C71}
body.ia .btn{border-radius:12px;font-family:var(--font-b);font-weight:400;font-size:16px;min-height:46px;padding:10px 28px}
body.ia .btn.primary{background:var(--green);color:#151515;border-color:transparent}
body.ia .btn.primary:hover{background:var(--green-d)}
body.ia .btn.secondary{background:transparent;color:#5D3C71;border-color:#5D3C71}
body.ia .btn.quiet{color:#5D3C71}
body.ia main{min-height:40vh}
/* ---- header ---- */
.ia-top{background:#5E476F;position:relative;z-index:50}
.ia-top-in{display:flex;align-items:center;min-height:58px;padding:0 24px;gap:0}
.ia-logo{display:flex;align-items:center;flex:none}.ia-logo img{display:block;width:120px;height:50px}
.ia-nav{display:flex;align-items:center;gap:28px;margin-left:clamp(24px,6vw,110px)}
.ia-nav>a,.ia-dd>a{color:#F7F7F9;font:700 17px/1 var(--font-b);text-decoration:none;padding:20px 0;display:inline-flex;align-items:center}
.ia-nav>a:hover,.ia-dd>a:hover,.ia-nav>a:focus-visible,.ia-dd>a:focus-visible{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.ia-dd{position:relative}
.ia-caret{display:inline-block;width:6px;height:6px;border-right:2px solid #F7F7F9;border-bottom:2px solid #F7F7F9;transform:rotate(45deg);margin:-2px 0 0 8px}
.ia-dd-list{display:none;position:absolute;left:-16px;top:100%;min-width:300px;margin:0;padding:8px 0;list-style:none;background:#5E476F;border-top:1px solid rgba(255,255,255,.25);box-shadow:0 8px 20px rgba(0,0,0,.25);z-index:60}
.ia-dd:hover .ia-dd-list,.ia-dd:focus-within .ia-dd-list{display:block}
.ia-dd-list a{display:block;padding:9px 20px;color:#fff;font:400 15.5px/1.3 var(--font-b);text-decoration:none}
.ia-dd-list a:hover,.ia-dd-list a:focus-visible{background:rgba(255,255,255,.14)}
.ia-actions{margin-left:auto;display:flex;align-items:center;gap:14px}
.ia-actions-m{display:none}
.ia-pill{background:#7FAC3B;color:#151515;font:400 16px/1 var(--font-b);padding:12px 30px;border-radius:12px;text-decoration:none;white-space:nowrap;border:0;cursor:pointer}
.ia-pill:hover{background:#6B9631}
.ia-actions .btn.quiet,.ia-actions-m .btn.quiet{color:#fff}
/* 9 Nov 2026 (UX audit F3): the generic body.ia .btn.quiet plum rule out-ranked the white one above, giving plum on plum (1.11:1). White on #5E476F is about 8:1. */
body.ia .ia-actions .btn.quiet,body.ia .ia-actions-m .btn.quiet{color:#fff;border-color:rgba(255,255,255,.55)}
body.ia .ia-actions .btn.quiet:hover,body.ia .ia-actions-m .btn.quiet:hover{background:rgba(255,255,255,.16);color:#fff}
body.ia .ia-actions .btn,body.ia .ia-actions-m .btn{min-height:44px;padding-block:10px}
.ia-top :focus-visible{outline:2px solid #fff;outline-offset:2px}
.ia-nav-toggle,.ia-burger{display:none}
@media (max-width:980px){
  .ia-top-in{flex-wrap:wrap;padding:0 16px}
  .ia-actions{display:none}
  .ia-burger{display:block;margin-left:auto;width:44px;height:44px;cursor:pointer;position:relative}
  .ia-burger span,.ia-burger span:before,.ia-burger span:after{position:absolute;left:8px;width:28px;height:3px;background:#E6E4EA;border-radius:2px;content:""}
  .ia-burger span{top:20px}.ia-burger span:before{top:-9px;left:0}.ia-burger span:after{top:9px;left:0}
  .ia-nav-toggle{display:block;position:absolute;right:16px;top:7px;width:44px;height:44px;opacity:0;margin:0;cursor:pointer;z-index:2}
  .ia-nav{display:none;flex-direction:column;align-items:stretch;gap:0;width:100%;margin:0;padding:6px 0 16px;order:3}
  .ia-nav-toggle:checked~.ia-nav{display:flex}
  .ia-nav>a,.ia-dd>a{padding:13px 4px;border-top:1px solid rgba(255,255,255,.15)}
  .ia-dd-list{display:block;position:static;box-shadow:none;border:0;padding:0 0 6px 14px;min-width:0;background:transparent}
  .ia-caret{display:none}
  .ia-actions-m{display:flex;gap:12px;flex-wrap:wrap;padding-top:14px}
}
/* 9 Nov 2026: between 981 and 1199 px the header (menu plus two pills) was wider than the screen and caused sideways scrolling; tighten spacing only. */
@media (min-width:981px) and (max-width:1199px){.ia-top-in{padding:0 16px}.ia-nav{gap:16px;margin-left:20px}.ia-nav>a,.ia-dd>a{font-size:15px}.ia-pill{padding:12px 16px;font-size:15px;white-space:nowrap}.ia-actions{gap:8px}}
@media (min-width:981px) and (max-width:1100px){.ia-nav{gap:12px;margin-left:12px}.ia-nav>a,.ia-dd>a{font-size:14px}.ia-pill{padding:12px 12px;font-size:14px}.ia-actions{gap:6px}.ia-logo img{width:100px;height:auto}}
/* ---- footer ---- */
.ia-foot{background:#5D476F;color:#fff;margin-top:56px}
.ia-foot-in{max-width:1170px;margin:0 auto;padding:44px 24px 0}
.ia-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
body.ia .ia-cta h2{font:700 clamp(28px,3.4vw,38px)/1.15 var(--font-d);color:#fff;margin:0 0 10px}
body.ia .ia-foot a,body.ia .ia-foot p,body.ia .ia-foot strong{text-decoration-color:currentColor}
body.ia .ia-ack strong,body.ia .ia-ack p{color:#3E3E3E}
.ia-cta p{margin:0;font:400 16px/1.5 var(--font-b);color:#fff}
.ia-btn{background:#7FAC3B;color:#151515;font:400 16px/1 var(--font-b);padding:17px 40px;border-radius:12px;text-decoration:none;white-space:nowrap}
.ia-btn:hover{background:#6B9631}
.ia-cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.ia-btn-2{background:transparent;color:#fff;border:2px solid #fff;padding:15px 38px}
.ia-btn-2:hover{background:rgba(255,255,255,.16)}
.ia-foot a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ia-flinks{display:flex;justify-content:center;gap:0 22px;flex-wrap:wrap;margin:30px 0 0}
.ia-flinks a{color:#fff;font:400 15px/1.3 var(--font-b);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.ia-flinks a:hover{text-decoration:underline;text-underline-offset:4px}
.ia-disc{margin:26px auto 0;text-align:center;max-width:1100px;font:400 14.5px/1.5 var(--font-b);color:#fff}
.ia-disc+.ia-disc{margin-top:10px}
.ia-ack{background:#F7F7F9;color:#3E3E3E;border-radius:30px 30px 0 0;margin-top:34px;padding:26px 36px;display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:26px;align-items:center}
.ia-ack-l{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.ia-ack-l strong{font:700 15px/1.3 var(--font-b);color:#3E3E3E}
.ia-ack p{margin:0;font:400 13px/1.55 var(--font-b);color:#3E3E3E;text-align:center}
.ia-flags{display:flex;gap:12px;align-items:center}.ia-flags img{display:block;height:auto;max-width:96px}
@media (max-width:820px){.ia-ack{grid-template-columns:1fr;padding:22px 20px;text-align:center}.ia-ack-l{align-items:center}.ia-flags{justify-content:center;flex-wrap:wrap}.ia-flinks{justify-content:flex-start}.ia-cta{align-items:flex-start}}
@media (max-width:520px){.ia-cta-btns{width:100%}.ia-cta-btns .ia-btn{flex:1 1 100%;text-align:center}}
/* ---- 9 Nov 2026 UX Group A ---- */
[hidden]{display:none!important}
body.ia .h-page+.lead{margin-top:12px}
/* price on each live library card */
.libcard .price-from{font-size:14px;font-weight:600;color:var(--text)}
.libcard .more{min-height:44px;display:inline-flex;align-items:center}
.devline{margin:-12px 0 36px;font-size:14.5px;color:var(--text-2)}
.devline a{font-weight:600}
/* sticky total bar (narrow screens only) */
.stickybar{display:none}
@media (max-width:720px){
  .stickybar:not([hidden]){display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#fff;border-top:3px solid var(--plum);box-shadow:0 -2px 10px rgba(40,30,50,.12)}
  .stickybar .sb-t{font:600 15px/1.3 var(--font-b);color:var(--text)}
  .stickybar .btn,.stickybar .btn.sm{flex:none;min-height:44px}
  body.has-bar{padding-bottom:84px}
}
/* licence terms, DPA and record pages */
.legal{max-width:820px;margin:0 auto;padding-block:40px}
.legal h1{margin:6px 0 14px}
.legal h3{font:600 17px/1.3 var(--font-d);color:#5D3C71;margin:22px 0 6px;scroll-margin-top:16px}
.legal p,.legal li{font-size:15.5px;line-height:1.6;color:#3E3E3E}
.legal .legal-draft{background:#F6E9C8;color:#4A3000;padding:10px 14px;border-radius:4px;font-size:14.5px}
.legal-nav{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.legal-nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.legal-nav .link-btn{min-height:44px;font-size:16px}
.legal-index{border:1px solid var(--line);border-radius:4px;background:var(--surface-2);padding:14px 20px;margin:18px 0}
.legal-index h2{font:600 17px/1.3 var(--font-d);margin:0 0 6px}
.legal-index ol{margin:0;padding:0;list-style:none;columns:2;column-gap:28px}
.legal-index li{break-inside:avoid;font-size:15px;line-height:1.35}
.legal-index a{display:inline-block;padding:7px 0;min-height:30px}
.legal-index .num{display:inline-block;min-width:1.8em;color:#595959}
@media (max-width:620px){.legal-index ol{columns:1}.legal-index a{padding:11px 0}}
.rule-table{width:100%;max-width:640px;border-collapse:collapse;margin:14px 0 0;font-size:15px}
.rule-table caption{text-align:left;font-weight:600;padding-bottom:6px;color:var(--text)}
.rule-table th,.rule-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.rule-table thead th{font-size:13px;font-weight:600;color:var(--text-2);border-bottom:1px solid var(--line-strong)}
.rule-table tbody th{font-weight:600;white-space:nowrap}
/* ---- 9 Nov 2026 Groups B and C: downloads, connection check, setup guides, status page ---- */
/* inline links in running text get a 44px-tall hit area without changing how they look or how lines wrap */
body.ia main p a:not(.btn),body.ia main .hint a,body.ia main .callout a,body.ia .inline-links a,body.ia main .muted a,.setup .four a,.setup .guide li a,.setup dd a{display:inline-block;padding-block:12px;margin-block:-12px;overflow-wrap:anywhere}
body.ia .ia-foot p a{display:inline-block;padding-block:12px;margin-block:-12px}
.ia-pill{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
.ia-logo{min-height:44px}
.inline-links{margin:10px 0}.help-line{margin-top:22px;font-size:14.5px;color:var(--text-2)}
.lms summary{padding-block:10px}
.dl-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;max-width:760px;margin-top:14px}
.dl-all{margin:6px 0 12px}.dl-all .hint{margin:8px 0 0}
.dl-list{list-style:none;margin:8px 0 0;padding:0;columns:2;column-gap:32px}
.dl-list li{break-inside:avoid;border-bottom:1px solid var(--line);padding:0}
.dl-link{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 2px;text-decoration:none;font-size:14.5px;line-height:1.35}
.dl-link:hover .dl-title,.dl-link:focus-visible .dl-title{text-decoration:underline;text-underline-offset:3px}
.dl-title{min-width:0;overflow-wrap:anywhere}
.dl-code{font-size:13px;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.dl-out{margin-top:14px}.ok-line{font-weight:600;color:var(--ok)}
@media (max-width:700px){.dl-list{columns:1}.dl-top{grid-template-columns:1fr}}
.conn{border-top:1px solid var(--line);padding-top:14px}.conn h3{margin:0 0 6px}
.conn .keyval{margin-top:8px}
/* setup guides */
.setup{max-width:860px;margin:0 auto;padding-block:40px}
.setup h1{margin:6px 0 14px}
.setup h2{font:600 24px/1.25 var(--font-d);margin:0 0 10px;scroll-margin-top:16px}
.setup h3{font:600 17px/1.3 var(--font-b);margin:22px 0 6px;color:var(--text)}
.setup p,.setup li{font-size:16px;line-height:1.6;color:var(--text)}
.setup .toc{display:flex;flex-wrap:wrap;gap:0 22px;margin:18px 0 6px;padding:0;list-style:none}
.setup .toc a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.setup .four{margin:14px 0 0;padding:0;list-style:none;border:1px solid var(--line);background:var(--surface)}
.setup .four li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:0 12px;padding:16px 18px;border-top:1px solid var(--line)}
.setup .four li:first-child{border-top:0}
.setup .four .n{font:500 24px/1.2 var(--font-d);color:var(--plum)}
.setup .four strong{display:block;margin-bottom:2px}
.setup .guide{border-top:1px solid var(--line);padding-top:30px;margin-top:34px}
.setup .guide ol:not(.four),.setup .checklist{list-style:decimal}
.setup .guide ol{margin:8px 0 0 22px;padding:0}.setup .guide li{margin:6px 0}
.setup .checked{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 10px;font-size:14px;color:var(--text-2)}
.setup .src{font-size:14px;color:var(--text-2);margin-top:14px;overflow-wrap:anywhere}
.setup .src a{display:inline-block;padding-block:12px;margin-block:-12px}
.setup .callout{margin:14px 0}.setup .callout p{margin:0;font-size:15px}
.setup dl.trouble{margin:8px 0 0}.setup dl.trouble dt{font-weight:600;margin-top:14px}.setup dl.trouble dd{margin:4px 0 0}
.setup .checklist{margin:8px 0 0 22px;padding:0}
/* status page */
.statuspg{max-width:760px;margin:0 auto;padding-block:40px}
.statuspg h1{margin:6px 0 10px}
.status-all{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--ok);background:var(--surface);margin:18px 0}
.status-all.warn{border-left-color:#B97A00}.status-all.bad{border-left-color:var(--bad)}
.status-all strong{font-size:17px}
.status-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);background:var(--surface)}
.status-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-top:1px solid var(--line)}
.status-list li:first-child{border-top:0}
.status-list .nm{font-weight:600}.status-list .ds{display:block;font-size:14px;color:var(--text-2);font-weight:400;margin-top:2px}
.status-list .tag{font-size:13.5px;flex:none}
.statuspg .when{margin:14px 0 0;color:var(--text-2);font-size:14.5px}
@media (max-width:520px){.status-list li{flex-direction:column;align-items:flex-start;gap:8px}.setup .four li{grid-template-columns:28px minmax(0,1fr);padding:14px}}
@media print{.ia-top,.ia-foot,.skip,.legal-nav,.legal-index,.stickybar{display:none!important}.legal{padding-block:0}}

/* ---- Reports: view switch, tools, course table ---- */
.seg{display:inline-flex;border:1px solid var(--plum);border-radius:4px;overflow:hidden;background:var(--surface)}
.seg button{min-height:44px;padding:8px 20px;background:transparent;border:0;color:var(--plum);font-weight:600;font-size:14.5px;cursor:pointer}
.seg button+button{border-left:1px solid var(--plum)}
.seg button:hover{background:var(--plum-tint)}
.seg button[aria-pressed="true"]{background:var(--plum);color:var(--on-plum)}
.seg button:focus-visible{outline:2px solid var(--focus);outline-offset:-4px}
.seg button[aria-pressed="true"]:focus-visible{outline-color:#fff}
.rep-head{display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:16px}
.rep-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0 12px}
.rep-tools .field{min-width:200px}
.rep-tools .field.grow{flex:1 1 240px}
.rep-tools .sp{flex:1}
.rep-explain{font-size:14px;color:var(--text-2);max-width:78ch;margin:14px 0 0}
.rep-count{font-size:13.5px;color:var(--text-2);margin:0;min-height:0}
.rep-count:not(:empty){margin:0 0 8px}
.tblwrap.sticky{max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.tbl.sortable thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 var(--line-strong)}
.tbl .sortbtn{background:none;border:0;padding:4px 0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;gap:6px;align-items:center;min-height:32px}
.tbl .sortbtn:hover{color:var(--plum)}
.tbl th.r .sortbtn{justify-content:flex-end}
.tbl .sortbtn .arr{font-size:11px;opacity:0;width:10px}
.tbl .sortbtn:hover .arr,.tbl .sortbtn:focus-visible .arr{opacity:.5}
.tbl th[aria-sort="ascending"] .arr,.tbl th[aria-sort="descending"] .arr{opacity:1;color:var(--plum)}
.tbl tbody tr.rowlink{cursor:pointer}
.tbl .opencourse{background:none;border:0;padding:0;margin:0;font:inherit;font-weight:600;color:var(--plum);text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.tbl .opencourse:hover{text-decoration-thickness:2px}
.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.rep-empty{margin-top:16px;border:1px solid var(--line);border-top:3px solid var(--gold);background:var(--surface);border-radius:4px;padding:24px;max-width:640px}
.rep-empty h3{margin-bottom:6px}
.rep-empty p{color:var(--text-2)}
.ev-box{border:1px solid var(--line);border-top:3px solid var(--gold);background:var(--surface);border-radius:4px;padding:20px 22px;max-width:760px}
.ev-box h2{margin-bottom:8px}
.ev-box p{margin:0 0 10px}
.ev-form{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0 0}
.ev-form .field{min-width:180px}

/* ---- side panel for one course ---- */
dialog.drawer{position:fixed;inset:0 0 0 auto;margin:0;height:100vh;max-height:100vh;width:min(780px,100vw);max-width:100vw;border:0;border-left:1px solid var(--line-strong);border-radius:0;padding:0;box-shadow:-12px 0 40px rgba(20,10,30,.2);background:var(--surface);color:var(--text)}
dialog.drawer[open]{display:flex;flex-direction:column}
dialog.drawer::backdrop{background:rgba(25,18,32,.45)}
.drawer-h{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px 24px 16px;border-bottom:1px solid var(--line)}
.drawer-h h2{font:600 22px/1.25 var(--font-d);color:var(--plum);margin:0}
.drawer-h .sub{display:block;margin-top:4px;font-size:13.5px;color:var(--text-2)}
.drawer-b{padding:16px 24px 24px;overflow:auto;flex:1}
.drawer-b .hint{margin:0 0 14px}
.drawer-b .tbl{font-size:13.5px}
.drawer-b .tbl th,.drawer-b .tbl td{padding:9px 10px}
.drawer-sum{display:flex;gap:6px 22px;flex-wrap:wrap;font-size:14px;margin:0 0 14px}
.drawer-sum b{font-weight:600}

/* ---- evidence pack page ---- */
body.ev-page{background:var(--surface-2)}
.ev-bar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.ev-bar-in{max-width:794px;margin:0 auto;padding:10px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ev-bar .sp{flex:1}
.ev-sheet{max-width:794px;margin:24px auto 48px;background:#fff;border:1px solid var(--line);padding:44px 48px;font-size:14px;line-height:1.55;min-height:0}
.ev-head{border-bottom:2px solid var(--gold);padding-bottom:20px;margin-bottom:22px}
.ev-kicker{margin:0 0 14px}
.ev-title{font:600 32px/1.15 var(--font-d);color:#5D3C71;margin:0 0 8px;letter-spacing:-.01em}
.ev-org{font:500 18px/1.35 var(--font-b);margin:0;color:var(--text)}
.ev-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:0 0 22px}
.ev-facts>div{padding:9px 0;border-bottom:1px solid var(--line);break-inside:avoid}
.ev-facts dt{font-size:12.5px;color:var(--text-2);margin:0 0 1px}
.ev-facts dd{font-weight:600;margin:0}
.ev-metrics{margin:0 0 22px}
.ev-metrics>div{padding:14px 16px}
.ev-sec{margin:0 0 28px}
.ev-sec h2{font:600 21px/1.25 var(--font-d);color:#5D3C71;margin:0 0 10px}
.ev-sec p{margin:0 0 10px;max-width:72ch}
.ev-course{margin:0 0 20px}
.ev-course h3{font:600 15px/1.35 var(--font-b);margin:0 0 6px}
.ev-course h3 .muted{font-weight:400;font-size:13px;margin-left:6px}
.ev-tbl{font-size:12.5px;border:1px solid var(--line)}
.ev-tbl th{padding:8px 10px;background:var(--surface-2)}
.ev-tbl td{padding:8px 10px}
.ev-tbl .sub{font-size:12px}
.ev-ct{font-weight:600}
.ev-warn{margin:12px 0}
.ev-hash{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;word-break:break-all;background:var(--surface-2);border:1px solid var(--line);padding:10px 12px;margin:0 0 10px}
@media screen and (max-width:720px){
  .ev-sheet{margin:0;border-left:0;border-right:0;padding:28px 16px}
  .ev-facts{grid-template-columns:1fr}
  .ev-title{font-size:26px}
  .ev-bar-in .btn{flex:1 1 auto}
  .rep-tools .field{min-width:100%}
  .seg{display:flex;width:100%}
  .seg button{flex:1}
  dialog.drawer{width:100vw}
  .drawer-h,.drawer-b{padding-left:16px;padding-right:16px}
  .tblwrap.sticky{max-height:none;overflow:visible;border:0}
  .ev-tbl{border:0}
  .tbl.stack td.num,.tbl.stack th.num{text-align:left}
  .tbl.stack.pairs tr{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
  .tbl.stack.pairs td:first-child{grid-column:1/-1}
  .ev-finger a{display:inline-flex;align-items:center;min-height:44px}
  .tbl.stack .opencourse{display:inline-flex;align-items:center;min-height:44px}
}
@page{size:A4;margin:16mm 14mm 18mm;
  @bottom-left{content:"Integrity Academy for Business | Course completion evidence pack";font:8pt Arial,sans-serif;color:#595959}
  @bottom-right{content:"Page " counter(page) " of " counter(pages);font:8pt Arial,sans-serif;color:#595959}}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.ev-page{background:#fff}
  .no-print,.skip{display:none!important}
  .ev-sheet{max-width:none;margin:0;padding:0;border:0;font-size:10pt}
  .ev-title{font-size:24pt}
  .ev-org{font-size:13pt}
  .ev-sec h2{font-size:15pt;break-after:avoid}
  .ev-course h3{break-after:avoid}
  .ev-tbl{font-size:8.5pt}
  .ev-tbl thead{display:table-header-group}
  .ev-tbl tr{break-inside:avoid}
  .ev-appendix{break-before:page}
  .ev-finger{break-inside:avoid}
  .ev-metrics{break-inside:avoid}
  a{color:inherit;text-decoration:none}
  /* An A4 page with margins is only about 690 CSS px wide, so the site's phone rules (max-width 720px) would fire in print. Undo them for the pack. */
  .ev-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ev-metrics>div{border-top:0;border-left:1px solid var(--line);padding:10px 14px}
  .ev-metrics>div:first-child{border-left:0}
  .ev-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ev-facts>div{padding:6px 0}
  .tbl.stack.ev-tbl{display:table;width:100%;border-collapse:collapse}
  .tbl.stack.ev-tbl thead{display:table-header-group}
  .tbl.stack.ev-tbl tbody{display:table-row-group}
  .tbl.stack.ev-tbl tr{display:table-row;padding:0;border:0}
  .tbl.stack.ev-tbl th,.tbl.stack.ev-tbl td{display:table-cell;width:auto;padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}
  .tbl.stack.ev-tbl td::before{display:none}
  .tbl.stack.ev-tbl th.r,.tbl.stack.ev-tbl td.r{text-align:right}
  .tbl.stack.ev-tbl td .sub{display:block}
}

/* ---- library cover on each shop library card (fixed 16:9 box: nothing jumps while it loads; the whole card stays one click target) ---- */
.libcard.has-cover{display:grid;grid-template-columns:52px minmax(0,1fr);padding:0;gap:0;align-content:start;overflow:hidden}
.libcard .lc-cover{grid-column:1/-1;display:block;aspect-ratio:16/9;background:var(--surface-2);overflow:hidden;border-bottom:1px solid var(--line)}
.libcard .lc-cover img{display:block;width:100%;height:100%;object-fit:cover}
.libcard.has-cover input{position:static;grid-column:1;grid-row:2/span 4;margin:16px 0 0 16px}
.libcard.has-cover label{grid-column:2;padding:14px 16px 0 0}
.libcard.has-cover .meta,.libcard.has-cover .price-from{grid-column:2;padding:6px 16px 0 0}
.libcard.has-cover .more{grid-column:2;margin:2px 0 6px;padding-right:16px}
.libcard.has-cover.is-on{box-shadow:inset 3px 0 0 var(--plum)}
/* ---- library page ---- */
.lp-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:40px;align-items:center;padding-block:8px 12px}
.lp-backrow{padding-top:12px}
.lp-back{margin:0}
.lp-quote{display:none;margin:10px 0 0}.lp-quote a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}.lp-back a{display:inline-flex;align-items:center;min-height:44px}
.lp-text .h-page{margin:10px 0 14px}
.lp-cover{aspect-ratio:16/9;overflow:hidden;border-radius:4px;background:var(--surface-2);border:1px solid var(--line)}
.lp-cover img{display:block;width:100%;height:100%;object-fit:cover}
.lp-facts{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:16px;padding:0;list-style:none;font-size:15px;color:var(--text-2)}
.lp-facts strong{color:var(--text)}
.lp-list{padding-block:24px 40px}
.lp-h{margin:0 0 16px}
.lp-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,2fr) auto;gap:14px;align-items:end;margin-bottom:6px}
.lp-tools .field:only-child{grid-column:1/-1;max-width:520px}
.ct-sort-m{display:none}
.ct-count{margin:8px 0 12px}
.ct-wrap{border-top:1px solid var(--line-strong)}
.ct{width:100%;border-collapse:collapse;font-size:15px}
.ct th,.ct td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.ct thead th{font-size:13px;font-weight:600;color:var(--text-2);padding-block:2px;white-space:nowrap}
.ct .ct-pic{width:112px;padding-right:4px}
.ct .ct-code{white-space:nowrap;color:var(--text-2);width:96px}
.ct .ct-topic{white-space:nowrap;color:var(--text-2)}
.ct .ct-min{white-space:nowrap;color:var(--text-2);width:110px}
.ct-thumb{display:block;width:96px;height:54px;object-fit:cover;border-radius:3px;background:var(--surface-2)}
.ct-link{display:flex;align-items:center;min-height:44px;font-weight:600;line-height:1.35}
.ct tbody tr:hover{background:var(--surface-2)}
.ct tr[hidden]{display:none}
.ct-sort{background:none;border:0;padding:0 2px;min-height:44px;font:inherit;font-weight:600;color:var(--plum);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.ct-sort::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.35}
th[aria-sort="ascending"] .ct-sort::after{border-top:0;border-bottom:5px solid currentColor;opacity:1}
th[aria-sort="descending"] .ct-sort::after{opacity:1}
.ct-none{padding:20px 0}
.lp-bar{position:sticky;bottom:0;z-index:30;background:var(--surface);border-top:3px solid var(--plum);box-shadow:0 -2px 10px rgba(40,30,50,.12)}
.lp-bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px;flex-wrap:wrap}
.lp-bar-t{display:flex;flex-direction:column;font-size:14px;color:var(--text-2);line-height:1.35}.lp-bar-t strong{color:var(--text);font-size:16px}
.lp-bar-b{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:860px){.lp-head{grid-template-columns:1fr;gap:20px}.lp-cover{order:-1}.lp-tools{grid-template-columns:1fr}}
@media (max-width:720px){
  .ct-sort-m{display:flex}
  .ct thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .ct,.ct tbody{display:block}
  .ct tr{display:grid;grid-template-columns:84px auto auto minmax(0,1fr);column-gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
  .ct td{display:block;padding:0;border:0;width:auto}
  .ct tbody tr:hover{background:none}
  .ct .ct-pic{grid-column:1;grid-row:1/span 2;width:84px;padding:0}
  .ct-thumb{width:84px;height:47px}
  .ct .ct-title{grid-column:2/-1;grid-row:1}
  .ct .ct-code{grid-column:2;grid-row:2;font-size:13.5px;width:auto}
  .ct .ct-topic{grid-column:3;grid-row:2;font-size:13.5px}
  .ct .ct-min{grid-column:4;grid-row:2;font-size:13.5px;width:auto}
  .ct-link{min-height:44px}
  .lp-bar-in{padding-block:8px;flex-wrap:nowrap}.lp-bar-t strong{display:none}.lp-bar-t{font-size:14px;flex:1;min-width:0}.lp-bar-b{flex:none}.lp-bar-b .btn{padding-inline:14px}.lp-bar-b .btn.secondary{display:none}.lp-quote{display:block}
}
/* ---- course page ---- */
.cp{padding-block:8px 24px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:0 8px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--text-2)}
.crumbs li{display:flex;align-items:center;min-width:0}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--text-2);flex:none}
.crumbs a{display:inline-flex;align-items:center;min-height:44px}
.crumbs li[aria-current]{min-height:44px;color:var(--text)}
.cp-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"hero side" "main side";column-gap:48px;align-items:start}
.cp-hero{grid-area:hero}.cp-main{grid-area:main}.cp-side{grid-area:side;position:sticky;top:16px}
.cp-tile{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:var(--surface-2);border:1px solid var(--line);margin-bottom:22px}
.cp-hero .h-page{margin:10px 0 12px}
.cp-main h2{font:600 22px/1.25 var(--font-d);margin:34px 0 12px}
.cp-main h2:first-child{margin-top:20px}
.plainlist{margin:0;padding:0 0 0 20px;list-style:disc}
.plainlist li{margin:0 0 7px;padding-left:2px;line-height:1.5}
ol.plainlist{list-style:decimal}
.glance{display:grid;grid-template-columns:1fr;margin:0;border-top:1px solid var(--line)}
.glance>div{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.glance dt{color:var(--text-2);font-size:14px}
.glance dd{margin:0;font-weight:600}
.glance a{font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.glance dd{display:flex;align-items:center}
.inside{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);counter-reset:in}
.inside li{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:11px 0;border-bottom:1px solid var(--line)}
.in-t{font-weight:600}
.in-d{color:var(--text-2);font-size:14.5px}
.inside .tag{margin-left:6px;vertical-align:1px;background:var(--sage);color:var(--on-sage);font-weight:600}
.refs{margin-top:12px}
.refs summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--plum)}
.refs ol{margin-top:6px;font-size:14.5px}
.cp-disc{margin:32px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--text-2)}
.cp-panel{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;padding:20px;display:grid;gap:12px}
.cp-panel .h3{margin:0}
.cp-panel p{margin:0}
.cp-panel .btn{width:100%}
@media (max-width:900px){
  .cp-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "side" "main"}
  .cp-side{position:static;margin:4px 0 8px}
}
@media (max-width:420px){.glance>div{grid-template-columns:104px minmax(0,1fr)}}
/* ---- free preview ---- */
.pv{padding-block:8px 24px}
.pv-head .h-page{margin:6px 0 10px}
.pv-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0;padding:14px 18px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:4px;background:var(--surface-2)}
.pv-banner p{margin:0;max-width:62ch;font-weight:600}
.pv-banner .pv-cta{display:flex;gap:10px;flex-wrap:wrap}
.pv-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:0;list-style:none}
.pv-tab{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid var(--plum);border-radius:4px;color:var(--plum);font-weight:600;text-decoration:none;background:var(--surface)}
.pv-tab:hover{background:var(--plum-tint)}
.pv-tab[aria-current]{background:var(--plum);color:#fff}
.pv-frame{display:block;width:100%;height:min(78vh,760px);min-height:460px;border:1px solid var(--line-strong);border-radius:4px;background:#fff}
.pv-foot{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
@media (max-width:620px){.pv-tab{padding:8px 12px}.pv-frame{height:72vh}.pv-banner .btn,.pv-banner .pv-cta{width:100%}}
