/* ==================================================================
   SpecHub UI kit (Batch C, 11 Oct 2026): the ONE set of building blocks.
   Every page uses these and nothing else, so the site stays consistent.
   Rules: square corners on every box (cards, panels, steps, buttons, fields,
   chips). Only status pills, step numbers and colour dots are round.
   Tokens match www.dcp-int.com (spechub-5.css :root). Type and spacing follow the Home page and
   DCP City (Kashif, 11 Oct 2026: "the best scheme and formatting"): nothing customer-facing
   below 13px; caps labels 11-12px only.
   Reference page: /ui-kit.php
   ================================================================== */
:root{
  --k-red:#F06C38; --k-red-dark:#D9561F; --k-red-soft:rgba(240,108,56,.10);
  --k-ink:#211D22; --k-text:#3A3436; --k-grey:#6B6463; --k-grey-2:#9A9290;
  --k-line:#E9E2D9; --k-line-2:#D8D0C5; --k-light:#FAF8F5; --k-cream:#F5EFE8; --k-white:#fff;
  --k-green:#0A7A3D; --k-green-soft:#E6F4EC; --k-amber:#8A5A00; --k-amber-soft:#FBF1DD; --k-error:#9B1C1C; --k-error-soft:#FDECEC;
  --k-s1:4px; --k-s2:8px; --k-s3:12px; --k-s4:16px; --k-s5:24px; --k-s6:32px; --k-s7:48px;
  --k-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
/* ---------- type ---------- */
.k-kicker{display:block;font-size:13.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--k-red);margin:0 0 6px}
.k-h1{font-size:clamp(32px,3.2vw,44px);font-weight:600;letter-spacing:-.03em;line-height:1.08;margin:0 0 10px;color:var(--k-ink)}
.k-h2{font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.25;margin:0 0 12px;color:var(--k-ink)}
.k-h3{font-size:17px;font-weight:700;line-height:1.3;margin:0 0 4px;color:var(--k-ink)}
.k-lead{font-size:17px;line-height:1.55;color:var(--k-grey);margin:0 0 var(--k-s5);max-width:64ch}
.k-text{font-size:15px;line-height:1.6;color:var(--k-text);margin:0 0 var(--k-s3)}
.k-small{font-size:13.5px;line-height:1.5;color:var(--k-grey)}
.k-label{display:block;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--k-ink);margin:0 0 var(--k-s2)}
.k-link{color:var(--k-red-dark);font-weight:700;text-decoration:none}.k-link:hover{text-decoration:underline}
/* ---------- page header ---------- */
/* the page header (B2, Kashif 12 Oct 2026): a light band edge to edge with a hairline under it.
   The band reaches up to the site bar: a page sets --k-up to the space above its header. */
.k-head{position:relative;background:var(--k-light);padding:30px 0 34px;margin:0 0 34px;border-bottom:0;
  box-shadow:0 0 0 100vmax var(--k-light),0 1px 0 100vmax var(--k-line);
  clip-path:inset(calc(-1 * var(--k-up, 0px)) -100vmax -1px -100vmax)}
/* the band and its line are shadows: they never make the page wider than the screen (fixed 12 Oct 2026) */
.k-head .k-crumb{margin-bottom:22px}.k-head .k-kicker{margin-bottom:12px}.k-head .k-h1,.k-head h1{margin-bottom:14px}
.k-head .k-lead,.k-head>p:last-child,.k-head>div>p:last-child{margin-bottom:0}
.k-head .k-lead{max-width:62ch}
.k-crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--k-grey);margin:0 0 var(--k-s3)}
.k-crumb a{color:var(--k-grey);text-decoration:none}.k-crumb a:hover{color:var(--k-red)}.k-crumb i{font-style:normal;color:var(--k-grey-2)}
.k-crumb>span,.k-crumb>b{color:var(--k-ink);font-weight:600}  /* the page you are on */
/* ---------- buttons ---------- */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border:1.5px solid var(--k-red);border-radius:0;
  background:var(--k-red);color:#fff;font:700 15px/1 var(--k-font);text-decoration:none;cursor:pointer;white-space:nowrap}
.k-btn:hover{background:var(--k-red-dark);border-color:var(--k-red-dark);color:#fff}
.k-btn--sec{background:#fff;color:var(--k-ink);border-color:var(--k-ink)}.k-btn--sec:hover{background:var(--k-ink);border-color:var(--k-ink);color:#fff}
.k-btn--text{background:none;border-color:transparent;color:var(--k-red-dark);padding:0 4px}.k-btn--text:hover{background:none;border-color:transparent;color:var(--k-red);text-decoration:underline}
.k-btn--sm{min-height:38px;padding:0 15px;font-size:14px}
.k-btn--full{display:flex;width:100%}
.k-btn:disabled,.k-btn[aria-disabled=true]{background:var(--k-cream);border-color:var(--k-line-2);color:var(--k-grey-2);cursor:not-allowed}
.k-btns{display:flex;flex-wrap:wrap;gap:var(--k-s3);align-items:center}
/* ---------- card: the one box ---------- */
.k-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--k-line);border-radius:0;background:#fff;padding:20px;color:var(--k-ink);text-decoration:none;min-width:0}
a.k-card,.k-card--link{transition:border-color .15s,box-shadow .15s}
a.k-card:hover,.k-card--link:hover{border-color:var(--k-ink);box-shadow:0 6px 18px rgba(33,29,34,.07)}
.k-card__k{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--k-grey-2)}
.k-card__t{font-size:18px;font-weight:700;line-height:1.3}
.k-card__p{font-size:14.5px;line-height:1.55;color:var(--k-grey);margin:0}
.k-card__go{margin-top:auto;padding-top:var(--k-s3);font-size:14px;font-weight:700;color:var(--k-red-dark)}
.k-card__img{margin:-20px -20px 10px;aspect-ratio:16/10;background:var(--k-cream) center/cover no-repeat;border-bottom:1px solid var(--k-line)}
.k-card--on{border-color:var(--k-red);box-shadow:inset 0 0 0 1px var(--k-red)}
.k-card--done{border-left:3px solid var(--k-green)}
.k-card--muted{background:var(--k-light)}
.k-card--dark{background:var(--k-ink);border-color:var(--k-ink);color:#fff}.k-card--dark .k-card__k{color:rgba(255,255,255,.6)}.k-card--dark .k-card__p{color:rgba(255,255,255,.78)}.k-card--dark .k-card__go{color:#fff}
.k-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.k-grid>*{min-width:0}
.k-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.k-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.k-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
/* ---------- panel: a titled section box ---------- */
.k-panel{border:1px solid var(--k-line);background:#fff;margin:0 0 var(--k-s5)}
.k-panel__h{display:flex;align-items:center;gap:var(--k-s3);flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--k-line);background:#fff}
.k-panel__h h2{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0;color:var(--k-ink)}
.k-panel__h h2 span{color:var(--k-grey-2);font-weight:600;margin-left:6px}
.k-panel__h .k-btns{margin-left:auto}
.k-panel__b{padding:20px}
/* ---------- steps strip (the DCP City strip) ---------- */
.k-steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1px;background:var(--k-line);border:1px solid var(--k-line);margin:0 0 var(--k-s5)}
.k-step{display:block;background:#fff;padding:18px 22px 18px 64px;text-decoration:none;color:var(--k-ink);min-width:0;position:relative}
.k-step b{display:block;font-size:15.5px;font-weight:700;line-height:1.3;margin:0 0 4px}
/* the number square (step strip C1, Kashif 11 Oct 2026): green done, red now, grey to come */
.k-step b em{position:absolute;left:22px;top:18px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:14px;font-weight:700;border:1.5px solid var(--k-red);color:var(--k-red);background:#fff}
.k-step s{display:block;text-decoration:none;font-size:14px;line-height:1.5;color:var(--k-grey)}
a.k-step:hover{background:var(--k-light)}
.k-step--done b em{background:var(--k-green);border-color:var(--k-green);color:#fff}
.k-step--now{box-shadow:inset 0 0 0 1.5px #F0A3A4;background:#FFF9F9}
.k-step--now b em{background:var(--k-red);border-color:var(--k-red);color:#fff}
.k-step--todo b{color:var(--k-grey)}.k-step--todo b em{border-color:#D8D0C5;color:var(--k-grey-2)}
.k-step--warn b em{background:var(--k-amber);border-color:var(--k-amber);color:#fff}.k-step--warn s{color:var(--k-amber)}
/* ---------- options (choose one) ---------- */
.k-opts{display:grid;gap:var(--k-s2)}
.k-opt{display:flex;align-items:flex-start;gap:var(--k-s3);border:1px solid var(--k-line);padding:14px 18px;background:#fff;cursor:pointer;text-align:left;font:inherit;color:var(--k-ink);width:100%}
.k-opt:hover{border-color:var(--k-ink)}
.k-opt::before{content:"";flex:none;width:18px;height:18px;margin-top:2px;border:1.5px solid var(--k-line-2);border-radius:50%;background:#fff}
.k-opt b{display:block;font-size:15.5px}.k-opt small{display:block;font-size:14px;color:var(--k-grey);margin-top:2px}
.k-opt--on{border-color:var(--k-red);box-shadow:inset 0 0 0 1px var(--k-red)}
.k-opt--on::before{border-color:var(--k-red);background:radial-gradient(circle,var(--k-red) 0 5px,#fff 6px)}
/* ---------- tiles (designs, colours with pictures) ---------- */
.k-tiles{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.k-tile{border:1px solid var(--k-line);background:#fff;cursor:pointer;padding:0;text-align:left;font:inherit;color:var(--k-ink)}
.k-tile:hover{border-color:var(--k-ink)}
.k-tile__i{display:block;aspect-ratio:1;background:var(--k-cream) center/cover no-repeat}
.k-tile__t{display:block;padding:9px 11px 11px;font-size:14px;font-weight:700;line-height:1.3}.k-tile__t small{display:block;font-size:13px;font-weight:500;color:var(--k-grey)}
.k-tile--on{border-color:var(--k-green);box-shadow:inset 0 0 0 2px var(--k-green)}.k-tile--on .k-tile__t{color:var(--k-green)}
/* ---------- package list (what goes to the Design Desk) ---------- */
.k-pkg{border:1px solid var(--k-line);background:#fff}
.k-pkg__h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--k-line);background:#fff;font-size:17px;font-weight:700}
.k-pkg__h span{margin-left:auto;white-space:nowrap;font-size:14px;font-weight:600;color:var(--k-grey)}
.k-row{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--k-line);min-width:0}
.k-row:last-child{border-bottom:0}
.k-row__t{flex:1;min-width:0}.k-row__t b{display:block;font-size:15.5px;font-weight:700}.k-row__t small{display:block;font-size:13.5px;margin-top:2px;color:var(--k-grey);overflow-wrap:anywhere}
.k-file{flex:none;width:30px;height:36px;border:1.5px solid var(--k-red);background:#fff;display:grid;place-items:end center;padding-bottom:3px;font-size:10px;font-weight:800;color:var(--k-red);clip-path:polygon(0 0,70% 0,100% 22%,100% 100%,0 100%)}
.k-file--doc{border-color:#2B579A;color:#2B579A}
.k-state{flex:none;font-size:14px;font-weight:700}
.k-state--todo{color:var(--k-amber)}.k-state--ok{color:var(--k-green)}.k-state--off{color:var(--k-grey-2)}
/* ---------- messages ---------- */
.k-msg{border:1px solid;border-left-width:4px;padding:14px 18px;margin:0 0 var(--k-s4);font-size:15px;line-height:1.5}
.k-msg b{font-size:16px}
.k-msg b{display:block}
.k-msg--ok{background:var(--k-green-soft);border-color:var(--k-green);color:#0A4F29}
.k-msg--warn{background:var(--k-amber-soft);border-color:#C9A04A;color:#6B4600}
.k-msg--err{background:var(--k-error-soft);border-color:var(--k-error);color:var(--k-error)}
.k-msg--info{background:var(--k-light);border-color:var(--k-line-2);color:var(--k-text)}
/* ---------- status pills (round by exception) ---------- */
.k-pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:999px;white-space:nowrap;background:var(--k-cream);color:var(--k-grey)}
.k-pill--ok{background:var(--k-green-soft);color:var(--k-green)}.k-pill--part{background:var(--k-amber-soft);color:var(--k-amber)}.k-pill--red{background:var(--k-red-soft);color:var(--k-red-dark)}
/* ---------- chips (filters) ---------- */
.k-chips{display:flex;flex-wrap:wrap;gap:8px}
.k-chip{border:1px solid var(--k-line);background:#fff;padding:11px 16px;font:600 14px/1 var(--k-font);color:var(--k-ink);cursor:pointer;border-radius:0}
.k-chip:hover{border-color:var(--k-ink)}.k-chip--on{background:var(--k-ink);border-color:var(--k-ink);color:#fff}
.k-chip span{color:var(--k-grey);font-weight:500;margin-left:6px}.k-chip--on span{color:rgba(255,255,255,.7)}
/* ---------- fields ---------- */
.k-field{display:block;margin:0 0 var(--k-s4)}
.k-field>span{display:block;font-size:14px;font-weight:700;color:var(--k-ink);margin:0 0 6px}
.k-field>span s{text-decoration:none;font-weight:500;color:var(--k-grey)}
.k-input{display:block;width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--k-line-2);border-radius:0;background:#fff;font:15px/1.4 var(--k-font);color:var(--k-ink)}
.k-input:focus{outline:2px solid var(--k-red-soft);border-color:var(--k-red)}
/* ---------- table ---------- */
.k-table{width:100%;border-collapse:collapse;font-size:15px;border:1px solid var(--k-line)}
.k-table th{text-align:left;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--k-grey);background:var(--k-light);padding:12px 14px;border-bottom:1px solid var(--k-line)}
.k-table td{padding:13px 14px;border-bottom:1px solid var(--k-line);vertical-align:top}
/* ---------- phone ---------- */
@media (max-width:760px){
  .k-grid--2,.k-grid--3,.k-grid--4{grid-template-columns:minmax(0,1fr)}
  .k-step{padding:10px 8px}.k-step b{font-size:13px;line-height:1.25}.k-step b em{position:static;width:24px;height:24px;font-size:12.5px;margin:0 0 6px}.k-step s{display:none}
  .k-btns .k-btn{flex:1}
  .k-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-table{font-size:14px}.k-table th,.k-table td{padding:10px}
  .k-panel__h,.k-panel__b{padding:14px}
}
/* a page that opens with a chapter section starts at the same height as every other page (Batch E) */
.ch.ch--page{padding-top:36px}
/* the page header on a dark photo (Terrazzo and Facade designers) */
.k-dark .k-crumb,.k-dark .k-crumb a{color:rgba(255,255,255,.8)}.k-dark .k-crumb>span{color:#fff}.k-dark .k-crumb a:hover{color:#fff}.k-dark .k-crumb i{color:rgba(255,255,255,.45)}
.k-dark .k-kicker{color:#FF6B6E}
/* the space above the header on each kind of page, so the band meets the site bar */
.swz,.ch.ch--page{--k-up:36px}.dbp{--k-up:32px}
/* Design Desk: the band fills the work area beside the menu */
.dkh.k-head{clip-path:inset(0 -100vmax -1px -22px);padding:26px 0 30px;align-items:flex-end}
@media(max-width:900px){
  .k-head{padding:22px 0 26px;margin-bottom:26px}
  .dkh.k-head{clip-path:inset(0 -100vmax -1px -100vmax)}
}
/* ---------- admin pages (Batch F): the same page header and readable labels ---------- */
.cp__h{position:relative;background:var(--k-light);padding:28px 0 30px;margin-bottom:28px;border-bottom:0;
  box-shadow:0 0 0 100vmax var(--k-light),0 1px 0 100vmax var(--k-line);clip-path:inset(-26px -100vmax -1px -100vmax)}
.cp__k{font-size:13.5px;font-weight:800;letter-spacing:.08em;margin-bottom:12px}
.cp__h h1{font-size:clamp(32px,3.2vw,44px);letter-spacing:-.03em;margin:0 0 12px}
.cp__h p,.cp__s{font-size:15px;line-height:1.6}
.cp .grid4 label.hot em,.cp .ralc em,.cp .ty,.cp .fmt{font-size:11.5px}
.cp .rp b{font-size:11.5px}
/* ---------- library and search (Batch K, 13 Oct 2026) ---------- */
.k-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--k-grey-2);margin-right:8px;vertical-align:baseline}
.k-chip .k-dot{width:9px;height:9px;margin-right:7px}.k-chip--on .k-dot{box-shadow:0 0 0 1.5px #fff}
mark{background:#FFE9A8;color:inherit;padding:0 1px}
/* the search box on search.php */
.k-search{display:flex;gap:10px;max-width:760px;margin:6px 0 0}.k-search .k-input{flex:1;font-size:16px}
.k-search__jump{margin-top:18px}.k-search__jump .k-chip{text-decoration:none}
/* result and library rows: a k-row with a title, a line, a snippet and its buttons */
.k-results{margin:0 0 var(--k-s5);scroll-margin-top:120px}
.k-result{align-items:flex-start;flex-wrap:wrap}
.k-result>.k-dot{margin:7px 0 0}
.k-result>.k-btn,.k-result>.k-result__na,.k-result>.k-pill{flex:none;margin-top:2px}
.k-result__a{color:var(--k-ink);text-decoration:none}.k-result__a:hover b{color:var(--k-red-dark);text-decoration:underline}
.k-result__s{margin:5px 0 0;font-size:14.5px;line-height:1.5;color:var(--k-text);max-width:90ch}
.k-result__f{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.k-result__f span{font-size:13px;color:var(--k-grey);background:var(--k-light);border:1px solid var(--k-line);padding:3px 8px}
.k-result__types{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.k-result__types a{font-size:13.5px;font-weight:600;color:var(--k-ink);border:1px solid var(--k-line);padding:4px 9px;text-decoration:none}
.k-result__types a:hover{border-color:var(--k-ink)}.k-result__types span{font-size:13.5px;color:var(--k-grey);padding:4px 2px}
.k-result__na{white-space:nowrap}
/* library pages: group chips, filter, panels */
.k-lib__groups{margin:0 0 12px}.k-lib__groups .k-chip,.k-lib__subs .k-chip{text-decoration:none;display:inline-flex;align-items:center}
.k-lib__subs{margin:0 0 12px;padding:12px 0 0;border-top:1px dashed var(--k-line)}
.k-lib__subs .k-chip{padding:9px 13px;font-size:13.5px}
.k-lib__filter{display:flex;align-items:center;gap:14px;margin:16px 0 22px;max-width:760px}.k-lib__filter .k-input{flex:1}
.k-lib__filter .k-small{white-space:nowrap}
.k-lib__panel{margin:0 0 var(--k-s5)}.k-lib__panel[hidden],[data-lib-row][hidden]{display:none!important}
.k-card[hidden],.k-aca__c[hidden]{display:none!important}   /* Batch S: the Knowledge filters hide cards (display:flex had kept them on screen) */
.k-lib__h{display:flex;align-items:center}.k-lib__h span{color:var(--k-grey-2);font-weight:600;margin-left:8px}
.k-lib__grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.k-sys .k-card__t{font-size:17px}
/* a system's build-up, drawn from its layers (includes/library.php lib_stack_svg) */
.k-stack{display:flex;align-items:flex-end;justify-content:center;height:150px;margin:-20px -20px 12px;padding:12px 18px 8px;background:var(--k-light);border-bottom:1px solid var(--k-line)}
.k-stack svg{display:block;width:100%;height:auto;max-height:128px}
/* suggestions under the search box in the menu bar */
.srch{position:relative}
.k-sugg{position:absolute;right:0;top:calc(100% + 6px);width:min(420px,92vw);background:#fff;border:1px solid var(--k-line);border-top:1px solid #E9E2D9;box-shadow:0 18px 40px -12px rgba(33,29,34,.32);z-index:60;padding:6px 0;max-height:70vh;overflow:auto;text-align:left}
.k-sugg__h{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--k-grey-2);padding:10px 16px 4px}
.k-sugg a{display:block;padding:8px 16px;text-decoration:none;color:var(--k-ink)}
.k-sugg a b{display:block;font-size:14.5px;font-weight:700}.k-sugg a s{display:block;text-decoration:none;font-size:13px;color:var(--k-grey);margin-top:1px}
.k-sugg a:hover,.k-sugg a.on{background:var(--k-light)}
.k-sugg a.k-sugg__all{border-top:1px solid var(--k-line);margin-top:6px;padding:11px 16px;font-size:14px;font-weight:700;color:var(--k-red-dark)}
.k-sugg__none{margin:0;padding:12px 16px;font-size:14px;color:var(--k-grey)}
@media (max-width:760px){
  .k-search{flex-direction:column}.k-lib__filter{flex-direction:column;align-items:stretch;gap:6px}
  .k-result>.k-row__t{flex:1 1 calc(100% - 40px)}
  .k-result>.k-btn,.k-result>.k-result__na{flex:1 1 40%;margin-left:0}
  .k-lib__groups,.k-lib__subs,.k-search__jump{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .k-lib__groups .k-chip,.k-lib__subs .k-chip,.k-search__jump .k-chip{flex:none;white-space:nowrap}
  .k-sugg{position:fixed;left:8px;right:8px;width:auto;top:auto}
}
.k-result>.k-pill{min-width:88px;justify-content:center}
/* ==================================================================
   Batch L (13 Oct 2026): Knowledge / DCP Academy. New kit pieces: tabs under a page header,
   a stats strip, a progress meter, a main + side layout, numbered rows, the slide player, the quiz,
   the score, and the Academy catalogue cards. Reference pages: knowledge.php, cpd-learn.php, cpd-assess.php.
   ================================================================== */
.k-head--tight{padding:22px 0 24px;margin-bottom:26px}
.k-head--tight .k-h1{font-size:clamp(26px,2.6vw,34px)}
.k-narrow{max-width:860px}
.k-tabs{margin-top:22px}
textarea.k-input{min-height:84px;resize:vertical}
select.k-input{appearance:none;padding-right:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23656A6F' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 13px center}
/* stats strip */
.k-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--k-line);border:1px solid var(--k-line);margin:0 0 34px}
.k-stats>div{background:#fff;padding:16px 20px}
.k-stats b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--k-ink)}
.k-stats span{display:block;font-size:13.5px;color:var(--k-grey);margin-top:2px}
/* progress meter */
.k-meter{display:block;height:4px;background:var(--k-cream);overflow:hidden}
.k-meter i{display:block;height:100%;background:var(--k-red)}
/* main + side */
.k-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start;margin:0 0 30px}
.k-split--wide{grid-template-columns:minmax(0,1fr) 300px}
.k-split__main>*:last-child{margin-bottom:0}
.k-split__side{display:grid;gap:14px}
/* numbered rows */
.k-num{flex:none;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--k-line-2);color:var(--k-grey);font-size:13.5px;font-weight:700;background:#fff}
.k-num--done{background:var(--k-green);border-color:var(--k-green);color:#fff}
a.k-row--link{text-decoration:none;color:var(--k-ink)}a.k-row--link:hover{background:var(--k-light)}
.k-row--on{box-shadow:inset 3px 0 0 var(--k-red);background:#FFF9F9}.k-row--on .k-num:not(.k-num--done){border-color:var(--k-red);color:var(--k-red)}
/* slide player */
.k-player{border:1px solid var(--k-line);background:#fff;margin:0 0 var(--k-s5);outline:0}
.k-player__slide{aspect-ratio:16/9;background:var(--k-cream)}
.k-player__slide img{display:block;width:100%;height:100%;object-fit:contain}
.k-player__bar{display:flex;align-items:center;gap:14px;padding:12px 14px;border-top:1px solid var(--k-line)}
.k-player__pos{font-size:14px;color:var(--k-grey);white-space:nowrap}.k-player__pos b{color:var(--k-ink)}
.k-player__meter{flex:1}
.k-player__bar .k-btn:last-child{margin-left:auto}
.k-player__notes .k-text{margin:0;max-width:75ch}
.k-player__notes .k-text:empty::before{content:"No narration for this slide.";color:var(--k-grey-2)}
/* quiz */
.k-quiz__q{border:1px solid var(--k-line);background:#fff;padding:20px;margin:0 0 14px}
.k-quiz__q legend{display:flex;gap:12px;align-items:flex-start;float:left;width:100%;font-size:17px;font-weight:700;line-height:1.4;color:var(--k-ink);margin:0 0 14px;padding:0}
.k-quiz__q .k-opts{clear:both}
.k-opt input{position:absolute;opacity:0;pointer-events:none}
.k-opt:has(input:checked){border-color:var(--k-red);box-shadow:inset 0 0 0 1px var(--k-red)}
.k-opt:has(input:checked)::before{border-color:var(--k-red);background:radial-gradient(circle,var(--k-red) 0 5px,#fff 6px)}
.k-opt:has(input:focus-visible){outline:2px solid var(--k-red-soft)}
.k-opt b{font-weight:500}
.k-quiz__foot{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;justify-content:space-between;background:#fff;border:1px solid var(--k-line);padding:12px 16px;margin-top:6px}
/* score */
.k-score{display:flex;align-items:baseline;gap:16px;border:1px solid var(--k-line);border-left:4px solid var(--k-amber);background:#fff;padding:18px 22px;margin:0 0 16px}
.k-score b{font-size:40px;font-weight:700;letter-spacing:-.03em;color:var(--k-amber)}
.k-score span{font-size:15px;color:var(--k-grey)}
.k-score--ok{border-left-color:var(--k-green)}.k-score--ok b{color:var(--k-green)}
/* Academy catalogue and seminar page */
.k-aca__pwc{text-align:left;font:inherit;cursor:pointer}
.k-aca__pwc .k-meter{margin-top:auto}
.k-aca__pwc[aria-pressed=true]{border-color:var(--k-red);box-shadow:inset 0 0 0 1px var(--k-red)}
.k-aca__filters{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));gap:10px;margin:0 0 10px}
.k-aca__c .k-card__img{position:relative;aspect-ratio:16/9}
.k-aca__c .k-card__img .k-pill{position:absolute;left:12px;top:12px;font-style:normal;box-shadow:0 1px 3px rgba(33,29,34,.15)}
.k-aca__c--soon .k-card__img{filter:grayscale(1);opacity:.6}
.k-aca__c--soon .k-card__t{color:var(--k-grey)}
.k-aca__meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:auto;padding-top:10px;font-size:13.5px;color:var(--k-grey)}
.k-aca__meta b{color:var(--k-red-dark);font-weight:800}
.k-aca__meta em{font-style:normal;font-weight:700;color:var(--k-ink);border:1px solid var(--k-line-2);padding:2px 7px}
.k-aca__facts{display:flex;flex-wrap:wrap;gap:1px;background:var(--k-line);border:1px solid var(--k-line);margin-top:22px;width:fit-content;max-width:100%}
.k-aca__facts span{background:#fff;padding:10px 16px;font-size:13px;color:var(--k-grey)}
.k-aca__facts b{display:block;font-size:15.5px;color:var(--k-ink)}
.k-aca__obj{margin:0;padding-left:22px;display:grid;gap:10px;font-size:15px;line-height:1.55;color:var(--k-text)}
.k-aca__obj .k-pill{padding:2px 8px;font-size:11.5px;vertical-align:1px}
.k-aca__act .k-card__img{aspect-ratio:16/9}
.k-aca__act .k-btn{margin-top:4px}
.k-aca__book summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.k-aca__book summary::-webkit-details-marker{display:none}
.k-aca__book summary::after{content:"+";font-size:22px;font-weight:400;color:var(--k-grey)}
.k-aca__book[open] summary::after{content:"\2212"}
.k-aca__book form{margin-top:10px}.k-aca__book .k-field{margin-bottom:12px}
.k-aca__dl{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--k-ink);padding:8px 0}
.k-aca__dl b{display:block;font-size:15px}.k-aca__dl small{display:block;font-size:13px;color:var(--k-grey)}
.k-aca__dl:hover b{color:var(--k-red-dark)}
.k-file--ppt{border-color:#C4511F;color:#C4511F}
.k-aca__rel{margin-top:6px}
@media (max-width:1100px){.k-aca__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.k-aca__filters>:first-child{grid-column:1/-1}}
@media (max-width:960px){.k-split,.k-split--wide{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .k-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-stats b{font-size:20px}
  .k-aca__filters{grid-template-columns:minmax(0,1fr)}
  .k-aca__facts span{flex:1 1 40%}
  .k-player__bar{flex-wrap:wrap}.k-player__meter{order:3;flex-basis:100%}
  .k-quiz__q{padding:16px}.k-quiz__q legend{font-size:16px}
  .k-score b{font-size:32px}
}
.k-aca__post{margin-top:8px}.k-aca__post summary{cursor:pointer;font-size:14.5px}.k-aca__post form{margin-top:10px}
a.k-chip{text-decoration:none;display:inline-block}
/* the whole slide and its controls fit the screen height */
.k-player__slide{max-height:calc(100vh - 150px);width:min(100%,calc((100vh - 150px) * 16 / 9));margin:0 auto}
@media (max-width:900px){.k-player__slide{max-height:none;width:100%}}
.k-check{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--k-ink);cursor:pointer;white-space:nowrap}
.k-check input{width:18px;height:18px;accent-color:var(--k-red);margin:0}
.aca-bf{margin-top:14px}.aca-bf .k-table .k-input{min-height:38px;padding:7px 10px;font-size:14px}
details.k-card>summary::-webkit-details-marker{display:none}details.k-card>summary{list-style:none}
/* ==================================================================
   Batch N (13 Oct 2026): printed certificates by post (includes/academy-post.php)
   ================================================================== */
.k-parcels{margin:34px 0 0;scroll-margin-top:96px}.k-parcel{scroll-margin-top:96px}
.k-parcels__h h2{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px;color:var(--k-ink)}
.k-parcels__h p{margin:0 0 16px}
.k-parcel{display:block;border:1px solid var(--k-line);background:#fff;padding:18px 20px;margin:0 0 12px}
.k-parcel--new{border-left:1px solid #E9E2D9}
.k-parcel--delivered,.k-parcel--cancelled,.k-parcel--declined{background:var(--k-light)}
.k-parcel__h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.k-parcel__h b{font-size:16px;color:var(--k-ink)}
summary.k-parcel__h{cursor:pointer;list-style:none;margin:0}summary.k-parcel__h::-webkit-details-marker{display:none}
summary.k-parcel__h b::after{content:" +";color:var(--k-red)}details[open]>summary.k-parcel__h{margin:0 0 16px}details[open]>summary.k-parcel__h b::after{content:" \2212"}
.k-parcel__items{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--k-line)}
.k-parcel__items li{padding:7px 0;border-bottom:1px solid var(--k-line);font-size:14.5px;color:var(--k-ink)}
.k-parcel__items li b{display:inline-block;min-width:140px;font-size:13px;color:var(--k-grey)}
.k-parcel__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;margin:14px 0 0;font-size:14px;line-height:1.5;color:var(--k-ink)}
.k-parcel__meta span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--k-grey-2);margin:0 0 3px}
.k-parcel__a{margin:16px 0 0;align-items:flex-start}
.k-parcel__edit[open]{flex-basis:100%}.k-parcel__edit summary{list-style:none}.k-parcel__edit summary::-webkit-details-marker{display:none}
.k-parcel__edit form,.k-parcel__form{display:grid;gap:12px;margin-top:12px}
.k-parcel__form>.k-btn,.k-parcel__edit form>.k-btn{justify-self:start}
.k-parcel__pick{display:grid;gap:8px;margin-top:4px}
.k-parcel__pick .k-check{align-items:flex-start;white-space:normal;border:1px solid var(--k-line);padding:10px 12px;font-weight:400}
.k-parcel__pick .k-check input{margin-top:2px;flex:none}
.k-parcel__pick .k-check b{display:block;font-size:14.5px;font-weight:600}.k-parcel__pick .k-check small{display:block;font-size:13px;color:var(--k-grey)}
.k-parcel--mini{padding:14px 16px;margin:10px 0 0}.k-parcel--mini .k-parcel__h{margin:0 0 10px}.k-parcel--mini .k-track{margin:0 0 8px}
.k-parcels__past{margin:14px 0 0}.k-parcels__past>summary{cursor:pointer;font-size:14.5px;margin:0 0 12px}.k-parcels__past>p{margin:0 0 10px}
/* the tracker: four steps on a line */
.k-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;counter-reset:trk}
.k-track__s{position:relative;padding:22px 6px 0 0;font-size:13.5px;counter-increment:trk;min-width:0}
.k-track__s::before{content:"";position:absolute;left:0;right:0;top:7px;height:3px;background:var(--k-line)}
.k-track__s::after{content:"";position:absolute;left:0;top:1px;width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid #D8D0C5;box-sizing:border-box}
.k-track__s b{display:block;font-weight:700;color:var(--k-grey-2)}
.k-track__s small{display:block;font-size:12.5px;color:var(--k-grey)}
.k-track__s--done::before{background:var(--k-green)}.k-track__s--done::after{background:var(--k-green);border-color:var(--k-green)}.k-track__s--done b{color:var(--k-ink)}
.k-track__s--now::after{border-color:var(--k-red);box-shadow:0 0 0 3px var(--k-red-soft)}.k-track__s--now b{color:var(--k-red-dark)}
.k-track__s:last-child::before{right:auto;width:15px}
div.k-track{display:block}
/* the status under a certificate on My Desk */
.dkr__post{display:inline-block;margin-top:4px;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:999px;text-decoration:none;background:var(--k-amber-soft);color:var(--k-amber)}
.dkr__post--printed,.dkr__post--dispatched{background:#E8F0FB;color:#1F4E8C}
.dkr__post--delivered{background:var(--k-green-soft);color:var(--k-green)}
@media (max-width:640px){.k-track__s{font-size:12px}.k-track__s small{font-size:11.5px}.k-parcel__items li b{display:block;min-width:0}.k-parcel{padding:16px}}
