/* IRANSansX (licensed from fontiran.com) — files in public/fonts/iransans/.
   Regular covers weights 300–500 and Bold covers 600–900. If the files are missing, Vazirmatn is used. */
@font-face {
  font-family: 'IRANSans';
  src: url('/static/fonts/iransans/iransans-regular.woff2?v=fanum') format('woff2'), url('/static/fonts/iransans/iransans-regular.woff?v=fanum') format('woff');
  font-weight: 300 500;
  font-display: swap;
}
@font-face {
  font-family: 'IRANSans';
  src: url('/static/fonts/iransans/iransans-bold.woff2?v=fanum') format('woff2'), url('/static/fonts/iransans/iransans-bold.woff?v=fanum') format('woff');
  font-weight: 600 900;
  font-display: swap;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('/static/fonts/Vazirmatn[wght].woff2') format('woff2-variations'), url('/static/fonts/Vazirmatn[wght].woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}


:root { --ink:#15261d; --text:#26352c; --muted:#5d6b62; --line:#dde6e0; --bg:#f4f6f2; --surface:#fff; --brand:#1f7a43; --soft:#e4f2e8; }
* { box-sizing:border-box; }
body { margin:0; color:var(--text); background:var(--bg); font:16px/1.95 IRANSans,Vazirmatn,Tahoma,sans-serif; }
a { color:var(--brand); text-decoration:none; }
a:hover { text-decoration:underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid #b9722a; outline-offset:4px; }
.wrap { width:min(1120px,calc(100% - 40px)); margin-inline:auto; }
.bankbar { background:#142d20; font-size:.78rem; }
.bankbar .wrap { display:flex; flex-wrap:wrap; gap:8px 26px; padding-block:7px; }
.bankbar a { color:#e9f2ec; }
.topbar { background:var(--surface); border-bottom:1px solid var(--line); }
.topbar-inner { min-height:102px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:18px; }
.brand { display:flex; align-items:center; gap:12px; color:var(--ink); }
.brand strong { display:block; font-size:1.35rem; }
.brand small { display:block; color:var(--muted); font-size:.78rem; }
.brand-mark { display:grid; place-items:center; background:var(--brand); color:#fff; width:48px; height:48px; border-radius:14px; font-size:2rem; }
.usernav { display:flex; align-items:center; flex-wrap:wrap; gap:16px; font-size:.88rem; }
.btn { display:inline-block; background:var(--brand); color:white; border:0; border-radius:9px; padding:10px 23px; font:inherit; cursor:pointer; }
.btn:hover { background:#145a30; text-decoration:none; }
main { min-height:54vh; padding-block:32px 56px; }
h1,h2 { color:var(--ink); line-height:1.65; }
h1 { font-size:2rem; margin:8px 0 14px; }
h2 { font-size:1.2rem; margin:0 0 12px; }
p { margin:0 0 18px; }
.hero { padding:50px 52px; border:1px solid #d5e6d8; border-radius:20px; background:linear-gradient(115deg,#e4efe3,#f9fcf7); }
.hero h1 { font-size:2.6rem; }
.hero p { max-width:720px; }
.eyebrow { color:var(--brand); font-size:.8rem; font-weight:700; margin-bottom:8px; }
.lead { font-size:1.15rem; }
.coming { margin-inline-start:14px; color:var(--muted); font-size:.85rem; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:26px; margin-bottom:20px; }
.card p:last-child { margin-bottom:0; }
.footer { background:#fff; border-top:1px solid var(--line); font-size:.82rem; color:var(--muted); padding-block:30px; }
.footer-inner { display:flex; align-items:start; gap:30px; justify-content:space-between; }
.footer-inner div { max-width:770px; }
.footer strong { color:var(--ink); }
.footer p { margin:6px 0; }
.footer a { white-space:nowrap; }
.adminnav { border:1px solid var(--line); border-radius:12px; padding:17px 22px; background:var(--surface); margin-bottom:30px; }
.adminnav > div:first-child { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.adminnav small,.muted { color:var(--muted); }
.adminlinks { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.adminlinks a { border-radius:7px; padding:5px 16px; font-size:.85rem; }
.adminlinks a.on { color:var(--brand); background:var(--soft); font-weight:700; }
.page-heading { margin-bottom:24px; }
.page-heading p { color:var(--muted); }
label { display:block; font-size:.9rem; }
input,select { display:block; width:100%; border:1px solid #aabbb0; border-radius:7px; background:#fff; color:var(--text); padding:10px; font:inherit; margin:6px 0 18px; min-width:0; }
.staff-form { display:grid; grid-template-columns:1fr 1fr auto; gap:20px; align-items:end; }
.staff-form .btn { margin-bottom:18px; }
.staff-list { list-style:none; margin:0; padding:0; }
.staff-list li { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 0; border-top:1px solid var(--line); }
.staff-list small { display:block; color:var(--muted); }
.remove { background:#fff; border:1px solid #c99c95; color:#893d32; font:inherit; border-radius:7px; padding:6px 14px; cursor:pointer; }
.count { font-size:.8rem; background:var(--soft); padding:3px 10px; border-radius:20px; }
.notice { background:#fff1d9; padding:14px; border-radius:8px; margin-block:16px; }
.login { max-width:480px; margin:30px auto; }
.message { margin-top:30px; }
.sr-only,.skip { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.skip:focus { position:fixed; top:5px; right:5px; width:auto; height:auto; clip-path:none; background:#fff; padding:10px; z-index:10; }
@media(max-width:650px) {
  .wrap { width:calc(100% - 28px); }
  .topbar-inner { flex-wrap:wrap; gap:14px; }
  .usernav { width:100%; justify-content:flex-end; }
  .hero { padding:30px 22px; }
  .hero h1 { font-size:1.9rem; }
  h1 { font-size:1.65rem; }
  .lead { font-size:1rem; }
  .intro-grid { grid-template-columns:1fr; gap:0; }
  .card { padding:21px; }
  .footer-inner { flex-direction:column; gap:14px; }
  .staff-form { grid-template-columns:1fr; gap:0; }
  .adminnav { padding:15px; }
  .adminnav > div:first-child { flex-wrap:wrap; gap:0; }
  .adminlinks a { padding:5px 9px; }
}
.quiz-question { background:#fff; padding:20px; }
.certificate-card { max-width:780px; margin-inline:auto; text-align:center; }
.certificate-print { background:#fff; padding:25px; }
.certificate-print article { width:100%; min-height:680px; border:8px solid var(--brand); border-radius:24px; padding:55px; text-align:center; }
.certificate-print .brand-mark { margin:0 auto; }
.certificate-name { font-size:2.3rem; color:var(--ink); }
.certificate-qr svg { width:150px; height:150px; }
@page { size:A4 landscape; margin:10mm; }
@media print { .certificate-print { padding:0; } }
/* A2 authoring and catalogue use the existing brand tokens. */
textarea { display:block; width:100%; max-width:100%; min-height:100px; resize:vertical; border:1px solid #aabbb0; border-radius:7px; padding:10px; font:inherit; margin:6px 0 18px; }
button { cursor:pointer; font:inherit; border:1px solid var(--line); background:#fff; color:var(--brand); padding:6px 14px; border-radius:7px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; align-items:end; }
.filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.filters label { flex:1 1 135px; min-width:0; }
.filters button { margin-bottom:18px; }
.check { display:flex; align-items:center; gap:10px; margin-block:14px; }
.check input { width:auto; margin:0; flex:none; }
fieldset { border:1px solid var(--line); border-radius:10px; margin:16px 0; min-width:0; padding:14px; }
legend { padding-inline:8px; }
.admin-topic-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.admin-topic-tabs a { background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 18px; }
.admin-topic-tabs a[aria-current=page] { color:white; background:var(--brand); }
[data-inactive] { display:none !important; }
details { border-top:1px solid var(--line); padding-block:12px; }
summary { cursor:pointer; font-weight:700; padding:6px; }
.node-form { padding:14px; }
.outline-section { border:1px solid var(--line); border-radius:10px; padding:18px; margin:18px 0; }
.outline-lesson { border-inline-start:3px solid var(--soft); padding-inline-start:18px; margin-block:16px; }
.outline-activity { background:var(--bg); border-radius:8px; padding:14px; margin-block:12px; }
h3,h4,h5 { font-size:1rem; overflow-wrap:anywhere; }
.actions,.item-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.item-row { justify-content:space-between; }
.item-row small,.price small { display:block; color:var(--muted); font-size:.8rem; }
.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.course-card { padding:0; overflow:hidden; }
.course-card img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; }
.course-card-body { padding:22px; }
.course-card h2 { font-size:1.1rem; }
.cover-placeholder { height:150px; display:grid; place-items:center; background:var(--soft); color:var(--brand); font-weight:700; }
.badges { display:flex; flex-wrap:wrap; gap:8px; margin-block:12px; font-size:.75rem; }
.badges span { background:var(--soft); border-radius:20px; padding:2px 10px; }
.price { color:var(--brand); font-weight:700; margin-top:14px; }
.course-hero { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; margin-bottom:30px; }
.course-cover { width:100%; height:auto; border-radius:16px; }
.cover-preview { width:min(400px,100%); height:auto; border-radius:10px; }
.course-columns { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:24px; }
.markdown,.review-note { overflow-wrap:anywhere; }
.metadata { display:grid; grid-template-columns:auto 1fr; gap:8px 20px; font-size:.85rem; }
.metadata dd { margin:0; }
.review-note { border-top:1px solid var(--line); padding:18px 0; }
@media(max-width:850px) { .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
 .form-grid,.course-grid,.course-hero,.course-columns { grid-template-columns:minmax(0,1fr); }
 .filters { display:block; }
 .admin-topic-tabs { gap:5px; }
 .admin-topic-tabs a { padding:6px 10px; font-size:.85rem; }
 .outline-section { padding:12px; }
 .outline-lesson { padding-inline-start:10px; }
 .node-form { padding:6px; }
 .course-cover { order:-1; }
}
ol { list-style-type:persian; }
[hidden] { display:none !important; }
.ai-draft { border-top:1px solid var(--line); padding-block:20px; }
.course-assistant [data-assistant-answer]:not(:empty) { margin-top:18px; padding:16px; background:var(--soft); border-radius:10px; }
.learning-links { display:grid; gap:8px; }
.learning-links .outline-activity { display:block; margin:0; }
.learning-links .done { background:var(--soft); }
progress { width:100%; accent-color:var(--brand); }
.lesson-layout { display:grid; grid-template-columns:minmax(220px,280px) minmax(0,1fr); gap:24px; align-items:start; }
.lesson-outline { position:sticky; top:18px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; max-height:85vh; overflow:auto; }
.lesson-outline ul { margin:4px 0 14px; padding-inline-start:20px; }
.lesson-outline [aria-current=page] { font-weight:700; }
.lesson-video { width:100%; aspect-ratio:16/9; border:0; border-radius:12px; background:#111; }
.lesson-pagination { display:flex; justify-content:space-between; gap:18px; margin-top:24px; }
.selected-offering { border-color:var(--brand); }
.fake-player { min-height:100vh; display:grid; place-content:center; text-align:center; background:#142d20; color:#fff; }
@media(max-width:650px) {
  .lesson-layout { display:block; }
  .lesson-outline { position:static; max-height:none; margin-bottom:18px; }
  .lesson-outline details:not([open]) { padding-bottom:0; }
}


/* A24: size, wrapping and interaction fixes; retain existing design tokens. */
:where(.wrap, .card, .lesson-content, .course-hero > *, .course-columns > *,
  .course-card-body, .outline-section, .outline-lesson, .item-row, .stack-list article) {
  min-width: 0;
  overflow-wrap: anywhere;
}
:where(h1, h2, h3, h4, p, li, dd, label) { overflow-wrap: anywhere; }
:where(button, .btn, .remove) {
  min-width: 40px;
  min-height: 40px;
}
:where(.bankbar a, .usernav a:not(.btn), .topbar-inner > a:not(.brand),
  .footer a, .adminlinks a, .admin-topic-tabs a, .lesson-outline li a,
  .lesson-pagination a, .page-heading > a) {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-block: 5px;
}
.bankbar .wrap { align-items: center; }
.brand { min-height: 48px; min-width: 0; }
.topbar-inner > a:not(.brand) { padding-inline: 8px; }
.usernav { gap: 8px 12px; }
.usernav a:not(.btn) { padding-inline: 6px; }
.adminlinks a { padding-block: 7px; }
.admin-topic-tabs a { padding-block: 7px; }
.summary, summary { min-height: 40px; display: list-item; }
:where(.learning-links a, .lesson-outline li a) { min-height: 40px; }
.lesson-outline li a { display: flex; align-items: center; }
.lesson-pagination { flex-wrap: wrap; }
.lesson-pagination a { padding-inline: 10px; }
:where(.card p, .page-heading p):has(> a:only-child) > a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
}
:where(.course-card h2, .course-grid > .card h2, .stack-list h2) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.course-card h2 a { display: inline-block; min-height: 40px; }
.course-card img, .course-cover, .cover-preview {
  max-width: 100%;
  height: auto;
}
:where(.table-scroll, .markdown) { max-width: 100%; }
.table-scroll { overflow-x: auto; overscroll-behavior-inline: contain; }
.markdown table { display: block; max-width: 100%; overflow-x: auto; }
:where(.markdown pre, .markdown code) { overflow-wrap: anywhere; }
:where(.session-list, .stack-list, .staff-list) { min-width: 0; }
@media screen and (max-width: 650px) {
  .certificate-print { padding: 12px; }
  .certificate-print article { min-height: 0; padding: 16px; border-width: 5px; }
  .certificate-name { font-size: 1.65rem; }
  .certificate-qr svg { max-width: 100%; }
  .bankbar .wrap { gap: 0 14px; }
  .bankbar a { min-height: 40px; }
  .usernav { justify-content: flex-start; }
}

/* Standalone text links in course navigation and administration need a 40px target. */
:where(.actions > a, .item-row a, .card > a:not(.btn),
  .lesson-content > p:first-child > a, .standalone-link) {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-block: 7px;
}
.item-row > div:first-child { min-width: 0; }

/* Clamp only repeated card/list titles; preserve unabridged page headings. */
.course-card h2 { display: block; overflow: visible; }
.course-card h2 a, .item-row > div:first-child > a,
.learning-links .outline-activity, .lesson-outline li a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  min-height: 40px;
}

/* A25: course-builder only; the existing design tokens and navigation remain intact. */
.admin-topic-tabs{position:sticky;top:0;z-index:15;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.builder-header-actions,.builder-review-actions,.builder-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.builder-review-actions{margin:16px 0;align-items:flex-start}
.builder-review-actions form{flex:0 1 auto;min-width:0;margin:0}
.builder-review-actions button,.builder-header-actions .btn{min-height:44px;white-space:normal}
.builder-secondary{background:var(--soft);color:var(--brand);border:1px solid var(--line)}
.builder-secondary:hover{background:#d3e8d9}
.builder-workspace,.builder-workspace *{min-width:0;box-sizing:border-box}
.builder-workspace{display:grid;gap:16px}
.builder-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.92fr);gap:16px;align-items:start}
.builder-outline-panel,.builder-editor-panel,.builder-readiness,.builder-ai-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.builder-outline-panel{grid-column:1;grid-row:1}
.builder-editor-panel{grid-column:2;grid-row:1;position:sticky;top:82px;max-height:calc(100vh - 108px);overflow:auto}
.builder-pane-heading,.builder-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.builder-pane-heading h3,.builder-editor-heading h3{margin:0}
.builder-pane-heading span{color:var(--muted);font-size:.83rem}
.builder-tree{display:grid;gap:10px;margin-top:12px}
.builder-section{border:1px solid var(--line);border-radius:12px;overflow:visible;background:#fcfdfb}
.builder-section>summary{display:flex;align-items:center;gap:10px;padding:11px;cursor:pointer;flex-wrap:wrap}
.builder-section>summary strong{flex:1 1 120px}
.builder-section>summary small{color:var(--muted)}
.builder-children{display:grid;gap:8px;padding:9px 9px 12px 8px}
.builder-section>.builder-children{border-top:1px solid var(--line)}
.builder-node{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px}
.builder-lesson>.builder-children{padding-inline-start:15px;border-inline-start:2px solid var(--soft)}
.builder-node-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:36px}
.builder-node-head>a{flex:1 1 150px;overflow-wrap:anywhere}
.builder-node-head small{font-size:.75rem;color:var(--muted)}
.builder-kind{display:inline-grid;place-items:center;width:25px;height:25px;flex:none;border-radius:7px;background:var(--soft)}
.builder-kind svg{width:17px;height:17px;stroke:var(--brand);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.builder-grip{color:var(--muted);cursor:grab;padding:5px 8px;border-radius:6px;touch-action:none}
.builder-grip:focus-visible{outline:2px solid var(--brand)}
.builder-node.dragging{opacity:.45}
.builder-node.drag-target{outline:2px dashed var(--brand)}
.builder-menu{position:relative}
.builder-menu>summary{list-style:none;display:grid;place-items:center;cursor:pointer;min-width:36px;min-height:36px;font-size:20px;border:1px solid var(--line);border-radius:8px}
.builder-menu>summary::-webkit-details-marker{display:none}
.builder-menu-actions{position:absolute;left:0;top:38px;z-index:9;width:min(190px,80vw);background:#fff;border:1px solid var(--line);box-shadow:0 8px 25px #15261d20;padding:7px;border-radius:9px}
.builder-menu-actions form,.builder-menu-actions button,.builder-menu-actions a{display:block;width:100%;margin:0;text-align:right;white-space:normal;font-size:.84rem}
.builder-menu-actions button,.builder-menu-actions a{border:0;background:#fff;color:var(--text);padding:7px 10px;cursor:pointer;border-radius:6px;font-family:inherit}
.builder-menu-actions button:hover,.builder-menu-actions a:hover{background:var(--soft)}
.builder-delete-confirm{margin-top:5px}
.builder-delete-confirm>summary{cursor:pointer}
.builder-add,.builder-pick-for-lesson,.builder-ai-run{display:inline-flex;align-items:center;min-height:40px;width:max-content;max-width:100%;padding:6px 12px;border:1px dashed var(--line);border-radius:8px;background:var(--soft);color:var(--brand);font:inherit;font-size:.84rem;cursor:pointer}
.builder-back{font-size:.85rem}
.builder-editor form{display:grid;gap:10px}
.builder-editor label{display:block}
.builder-editor input,.builder-editor textarea,.builder-editor select,.builder-dialog input,.builder-dialog select{width:100%;max-width:100%;min-height:44px}
.builder-editor textarea{resize:vertical}
.builder-editor fieldset{min-width:0}
.builder-editor [data-activity-editor][hidden]{display:none}
.builder-readiness ul{display:grid;gap:7px;list-style:none;margin:0;padding:0}
.builder-readiness li{display:flex;gap:8px;align-items:center}
.builder-readiness li span{min-width:22px}
.builder-dialog{width:min(94vw,860px);max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:18px;color:var(--text)}
.builder-dialog::backdrop{background:#071b1299}
.builder-picker-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.builder-picker-filters label{flex:1 1 240px}
.builder-video-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px;max-height:45vh;overflow-y:auto;margin-block:16px}
.builder-video-card{display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px}
.builder-video-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:7px}
.builder-video-card strong{overflow-wrap:anywhere}
.builder-video-card small{color:var(--muted)}
.builder-video-card label{display:flex;align-items:center;gap:6px}
.builder-video-card input{width:18px;min-height:18px;margin:0}
.builder-video-card a{font-size:.8rem}
.builder-ai-item{border:1px solid var(--line);border-radius:10px;padding:12px;margin-block:10px}
.builder-ai-item textarea{width:100%;min-height:70px}
.builder-ai-panel .builder-actions button,.builder-dialog .builder-actions button{min-height:44px}
.builder-feedback{color:var(--brand);min-height:24px}
@media(max-width:760px){
 .builder-main{display:flex;flex-direction:column}
 .builder-outline-panel,.builder-editor-panel{width:100%;position:static;max-height:none;overflow:visible}
 .builder-section:not([open])>.builder-children{display:none}
 .builder-header-actions,.builder-review-actions{gap:8px}
 .builder-header-actions>a,.builder-review-actions form{flex:1 1 150px}
 .builder-review-actions form button{width:100%}
 .builder-tab{padding:14px}
 .builder-node-head>a{flex-basis:110px}
 .builder-menu-actions{position:relative;top:auto;left:auto;width:100%;box-shadow:none}
 .builder-grip{touch-action:auto}
 .builder-back{display:inline-flex;align-items:center;min-height:44px}
}

/* A25 touch sizes and text wrapping in narrow viewports */
.builder-node-head a.builder-select{display:inline-flex;align-items:center;min-height:44px}
.builder-menu>summary,.builder-grip{min-height:44px;min-width:44px;display:inline-grid;place-items:center}
.builder-section>summary{min-height:44px;overflow-wrap:anywhere}
.builder-section>summary strong,.builder-video-card strong{overflow-wrap:anywhere}
.builder-menu-actions button,.builder-menu-actions a{min-height:44px}
.builder-dialog button,.builder-actions button{min-height:44px}
@media(max-width:760px){.builder-main,.builder-workspace,.builder-outline-panel,.builder-editor-panel,.builder-tree{max-width:100%;min-width:0}.builder-pane-heading{overflow-wrap:anywhere}.builder-tab .node-form button{min-height:44px}}

.builder-section-toolbar{display:flex;justify-content:flex-end;gap:8px;padding:0 10px 8px}

/* A25 delivery-first: accessible choice, warning and video selection without page overflow. */
.delivery-badge{display:inline-block;padding:4px 11px;border-radius:999px;background:#e4f0e6;color:#205339;font-weight:700;font-size:.84rem}
.course-wizard{max-width:820px;display:grid;gap:16px}
.course-wizard [hidden],.course-wizard fieldset[hidden],.lesson-session-fields[hidden],#course-delivery-confirm[hidden],#course-delivery-warnings[hidden]{display:none}
.delivery-choice{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;margin:10px 0;min-height:56px;flex-wrap:wrap;cursor:pointer}
.delivery-choice input{width:22px;height:22px;flex:none}
.delivery-choice small{display:block;flex:1 1 220px;color:var(--muted)}
.wizard-steps{padding:10px;border-radius:8px;background:var(--soft);line-height:1.8}
.builder-import-open{min-height:44px;border:1px dashed var(--line);border-radius:9px;background:var(--soft);color:var(--brand);padding:8px 12px;cursor:pointer}
.builder-dialog{width:min(96vw,1040px);max-height:92dvh}
.builder-video-results{grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr));max-height:42dvh}
.builder-video-card{gap:8px;background:#fff}
.builder-video-card img{display:block;aspect-ratio:16/9;object-fit:cover}
.builder-video-card strong{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;min-height:3em}
.builder-video-card input[type=checkbox]{width:24px;height:24px;min-height:24px}
.builder-video-card label{min-height:44px}
.builder-selected{margin:8px 0;border:1px solid var(--line);border-radius:9px;padding:10px}
.builder-selected ol{list-style:none;display:grid;gap:6px;margin:0;padding:0}
.builder-selected li{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.builder-selected li span{flex:1 1 150px;overflow-wrap:anywhere}
.builder-selected li button{min-height:44px}
.builder-picker-sticky{position:sticky;bottom:-18px;z-index:2;background:#fff;border-top:1px solid var(--line);padding:12px 4px;margin-top:10px;box-shadow:0 -6px 10px #15261d10}
#course-delivery-warnings{overflow-wrap:anywhere}
@media(max-width:760px){
 .builder-dialog{padding:12px}
 .builder-video-results{display:grid;grid-template-columns:minmax(0,1fr);max-height:44dvh;gap:8px}
 .builder-video-card{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:5px 10px}
 .builder-video-card img{grid-row:1/4;width:110px;height:auto}
 .builder-video-card strong{grid-column:2}
 .builder-video-card small{grid-column:2}
 .builder-video-card label,.builder-video-card a{grid-column:2}
 .builder-picker-sticky{bottom:-12px}
}

/* Touch-safe picker controls in the narrow-phone UX audit. */
.builder-video-card a{display:inline-flex;align-items:center;min-height:44px;padding:6px 8px;width:max-content;max-width:100%;overflow-wrap:anywhere}
.builder-dialog button,.course-wizard button{min-height:44px}
.builder-menu>summary{min-height:44px;min-width:44px}
.builder-readiness li a{display:inline-flex;align-items:center;min-height:40px}

/* A26 engagement — simple RTL cards; maintain WCAG-sized touch controls. */
.lesson-discussion,.lesson-notes{min-width:0;overflow-wrap:anywhere}
.lesson-discussion form,.lesson-notes form{display:grid;gap:9px}
.discussion-post{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px;margin:15px 0}
.discussion-post header,.discussion-reply header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.discussion-post time,.discussion-reply time,.rating-item time{color:var(--muted);font-size:.85rem}
.discussion-body{white-space:pre-wrap;overflow-wrap:anywhere}
.discussion-reply{border-right:3px solid var(--brand);padding:12px;margin:14px 4px;background:var(--soft);border-radius:8px}
.discussion-create{border-top:1px solid var(--line);padding-top:15px}
.discussion-post summary,.discussion-reply summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.discussion-post button,.discussion-reply button,.lesson-notes button,.report-card button{min-height:44px;padding:8px 14px;max-width:100%;white-space:normal}
.video-note-list{padding-inline-start:25px;display:grid;gap:8px}
.video-note-list button{width:100%;text-align:right;background:var(--soft);border:1px solid var(--line);border-radius:8px;color:var(--ink);overflow-wrap:anywhere}
.preview-item{max-width:100%;padding-block:12px;border-block-end:1px solid var(--line)}
.preview-item iframe{max-width:100%}
.rating-item{border-right:3px solid var(--brand);padding:8px 16px;margin:12px 0;background:var(--soft);border-radius:8px}
.report-card .actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:600px){.discussion-post{padding:11px}.discussion-reply{padding:9px;margin:9px 0}.report-card .actions form,.report-card .actions button{width:100%}}

/* A27 supervision: wrap review forms, preserve player aspect and 44px targets. */
.practice-player{display:block;width:min(100%,960px);aspect-ratio:16/9;background:#102219;border-radius:12px}
.practice-comments,.practice-log{list-style:none;display:grid;gap:10px;margin:0;padding:0}
.practice-comments li,.practice-log li{border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:12px;overflow-wrap:anywhere}
.practice-comments button{width:100%;text-align:right;min-height:44px;white-space:normal;overflow-wrap:anywhere}
#practice-upload-form{display:grid;gap:14px}
#practice-upload-form progress{display:block;width:100%;height:16px}
#practice-upload-form input[type=file]{max-width:100%}
#practice-upload-form button,.practice-logbook button,.practice-log button{min-height:44px}
@media(max-width:600px){.practice-player{width:100%}.practice-log li{padding:9px}}


/* A28 — filterable catalogue, sellable specialization bundles, quiz banks */
.catalogue-filter-panel{border:1px solid var(--border,#d9e3dc);border-radius:16px;margin:1.1rem 0;overflow:hidden}
.catalogue-filter-panel>summary{cursor:pointer;padding:1rem 1.2rem;font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}
.catalogue-filter-panel[open]>summary{border-bottom:1px solid var(--border,#d9e3dc)}
.catalogue-filter-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;align-items:end;margin:0;border:0;box-shadow:none}
.catalogue-filter-form label{min-width:0;display:flex;flex-direction:column;gap:.4rem}
.catalogue-filter-form :is(select,input){width:100%;max-width:100%;min-width:0}
.catalogue-filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}
.bundle-summary{margin:1rem 0}
.bundle-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem}
.bundle-price strong{font-size:1.45em}
.bundle-courses ol{list-style:persian;display:grid;gap:.7rem;padding-inline-start:1.7rem}
.bundle-courses li{min-width:0}
.bundle-summary progress{width:100%;accent-color:#1f7a43}
.quiz-bank-admin{margin:1rem 0;padding:1rem;border:1px solid #ccdcd0;border-radius:12px}
.quiz-bank-admin form{margin:.6rem 0}
.builder-quiz-questions form{min-width:0}
.certificate-panel{max-width:720px;margin:2rem auto;text-align:center}
@media(max-width:640px){
 .catalogue-filter-panel>summary{padding:.85rem}
 .catalogue-filter-form{grid-template-columns:1fr;padding:1rem}
 .catalogue-filter-actions{justify-content:space-between}
 .bundle-price{flex-direction:column;gap:.3rem}
 .bundle-courses ol{padding-inline-start:1.3rem}
 .quiz-bank-admin{padding:.6rem}
}

/* A29 — accessible, private organisation reports and scholarship forms. */
.report-scroller{max-width:100%;overflow-x:auto}
.report-scroller table{min-width:680px;width:100%;border-collapse:collapse}
.report-scroller th,.report-scroller td{text-align:right;padding:10px;border-bottom:1px solid #d7e2d9}
.report-scroller a{min-height:44px;display:inline-flex;align-items:center}
.card form label{overflow-wrap:anywhere}
.card form input[type=file]{max-width:100%}
.card form button{min-height:44px}
@media(max-width:520px){.report-scroller{margin-inline:-6px}.report-scroller th,.report-scroller td{padding:8px}}

/* CONVERT1 accessibility: links named by the A24 audit keep 44px touch targets. */
a.convert1-tap-target{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;padding-block:10px}
