:root{--ink:#172033;--muted:#667085;--bg:#f5f7fb;--card:#fff;--line:#d9e1ee;--blue:#2347c5;--red:#c0392b;--green:#1e8e5a}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}.top{background:#101828;color:white;padding:18px 28px;display:flex;justify-content:space-between;gap:20px;align-items:center}.top span{display:block;color:#cbd5e1;font-size:13px}.top a{color:white;text-decoration:none;margin-left:14px;font-weight:600}.wrap{max-width:1240px;margin:0 auto;padding:28px}.foot{text-align:center;color:var(--muted);font-size:12px;padding:30px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;margin:0 0 22px;box-shadow:0 8px 28px rgba(16,24,40,.05)}.narrow{max-width:460px;margin:60px auto}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.stat{background:white;border:1px solid var(--line);border-radius:18px;padding:18px}.stat b{display:block;font-size:28px}.stat span{color:var(--muted)}.title{display:flex;justify-content:space-between;align-items:center;gap:16px}.button,button{background:var(--blue);color:white;border:0;border-radius:10px;padding:10px 14px;font-weight:700;text-decoration:none;cursor:pointer}button{margin-top:8px}input,select,textarea{width:100%;padding:10px;border:1px solid #cfd8e6;border-radius:10px;background:#fff}textarea{min-height:90px}label{display:block;font-weight:650;margin:10px 0}label small{display:block;color:var(--muted);font-weight:400;margin:4px 0}.wide{grid-column:1/-1}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}th{font-size:12px;color:#475467;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#eef2ff;color:#273a9b;font-size:12px;font-weight:700}.badge.red{background:#fee4e2;color:#b42318}.badge.green{background:#dcfae6;color:#067647}.flash{background:#fff3cd;border:1px solid #ffe69c;border-radius:12px;padding:12px;margin-bottom:14px}.muted{color:var(--muted)}fieldset{border:1px solid var(--line);border-radius:14px;margin:16px 0;padding:16px}.note{border-left:4px solid var(--blue);padding:10px 14px;background:#f8fafc;border-radius:8px;margin:12px 0}.note small{display:block;color:var(--muted)}.report{background:#fff;padding:30px;border-radius:18px}@media(max-width:850px){.grid2,.grid4{grid-template-columns:1fr}.top{display:block}.top nav{margin-top:12px}.top a{display:inline-block;margin:6px 10px 0 0}.wrap{padding:16px}table{font-size:13px}}
@media print{.top,.foot,.button,button,form{display:none!important}.wrap{max-width:none;padding:0}.card,.stat{box-shadow:none;border:1px solid #ccc}.report{padding:0}}

.question-block{border:1px solid #e5e7eb;border-radius:16px;padding:1rem;margin:1rem 0;background:#fff}.question-title{font-weight:700;margin-bottom:.3rem}.help,small{display:block;color:#64748b;font-size:.85rem}.required{color:#b91c1c}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;margin-top:.6rem}.choice-card,.choice-pill{display:flex;align-items:center;gap:.5rem;border:1px solid #dbe3ef;border-radius:14px;padding:.75rem;background:#f8fafc;cursor:pointer}.choice-card:hover,.choice-pill:hover{background:#eef6ff;border-color:#94a3b8}.choice-card input,.choice-pill input{width:auto}.scale-options{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.scale-options .choice-pill span{font-weight:700;font-size:1rem}.assessment-section{border:0;border-top:2px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.assessment-section legend{font-size:1.2rem;font-weight:800;padding-right:1rem}.badge.red{background:#fee2e2;color:#991b1b}.badge.amber{background:#fef3c7;color:#92400e}.badge.green{background:#dcfce7;color:#166534}

/* v5 usability, accessibility and visual analytics layer */
:root{--amber:#b26a00;--amber-bg:#fff7df;--blue-bg:#eaf0ff;--focus:#ffbf47;--danger-bg:#fff1f0;--success-bg:#ecfdf3}.page-hero{background:linear-gradient(135deg,#111827,#233876);color:#fff;border-radius:24px;padding:28px;margin:0 0 22px;box-shadow:0 12px 30px rgba(16,24,40,.16)}.page-hero p{max-width:760px;color:#dbeafe}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#5870d8;margin:0 0 4px}.page-hero .eyebrow{color:#bcd3ff}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.section-head h2{margin:0}.section-head p{margin:.2rem 0 0}.button.secondary{background:#eef2ff;color:#273a9b}.table-wrap{overflow-x:auto;border-radius:12px}caption{position:absolute;left:-10000px}.score-chip{display:inline-flex;min-width:44px;justify-content:center;padding:5px 10px;border-radius:999px;font-weight:800}.score-chip.risk{background:var(--danger-bg);color:#991b1b}.score-chip.progress{background:var(--success-bg);color:#166534}.score-stat{display:flex;align-items:center;justify-content:space-between;gap:10px}.radial{--value:0;--ring:#2347c5;width:58px;height:58px;border-radius:50%;display:inline-grid;place-items:center;background:conic-gradient(var(--ring) calc(var(--value)*1%),#e8eef8 0);position:relative;flex:0 0 auto}.radial::before{content:"";position:absolute;inset:7px;background:#fff;border-radius:50%}.radial b{position:relative;font-size:15px}.radial.red{--ring:#b42318}.radial.green{--ring:#067647}.radial.blue{--ring:#2347c5}.bar-chart{display:grid;gap:11px;margin-top:12px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(160px,3fr) 54px;align-items:center;gap:10px}.bar-label{font-weight:700}.bar-track{height:16px;background:#eef2f7;border-radius:999px;overflow:hidden;border:1px solid #d9e1ee}.bar-fill{display:block;height:100%;border-radius:999px;background:#2347c5}.bar-fill.red{background:#b42318}.bar-fill.green{background:#067647}.bar-fill.amber{background:#b26a00}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.risk-list{display:grid;gap:10px}.risk-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;text-decoration:none;color:var(--ink);background:#fff}.risk-item:hover,.risk-item:focus{background:#f8fafc;border-color:#94a3b8}.risk-item small{margin-top:3px}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.detail-grid div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px}.detail-grid dt{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475467;font-weight:800}.detail-grid dd{margin:4px 0 0;font-weight:700}.spark-grid{height:220px;display:flex;align-items:end;gap:10px;padding:16px 10px 28px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(to top,#eef2f7 1px,transparent 1px);background-size:100% 25%}.spark-col{height:100%;flex:1;min-width:22px;display:flex;align-items:end;justify-content:center;gap:3px;position:relative}.spark{width:9px;min-height:3px;border-radius:8px 8px 0 0;display:block}.spark.risk{background:#b42318}.spark.progress{background:#067647}.spark-col small{position:absolute;bottom:-24px;color:#667085;font-size:11px}.legend{display:flex;gap:16px;margin-top:10px;color:#475467;font-weight:700}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px}.risk-box{background:#b42318}.progress-box{background:#067647}.friendly-form{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}.inline-form{display:grid;grid-template-columns:160px minmax(160px,1fr) auto;gap:8px;align-items:center}.inline-form button{margin:0}.checkline{display:flex;align-items:center;gap:10px}.checkline input{width:auto}.timeline{border-left:3px solid #d9e1ee;margin-left:10px;padding-left:18px}.timeline-item{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin:0 0 12px}.timeline-item::before{content:"";position:absolute;left:-27px;top:15px;width:12px;height:12px;background:#2347c5;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #d9e1ee}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:2px}a{color:#1f3fb4}button,.button{min-height:42px}input,select,textarea{font-size:16px}th{color:#344054}.badge.amber{background:var(--amber-bg);color:#7a4900}.badge.red{background:var(--danger-bg);color:#991b1b}.badge.green{background:var(--success-bg);color:#166534}@media(max-width:850px){.bar-row{grid-template-columns:1fr}.bar-value{text-align:left}.section-head,.title{display:block}.detail-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.spark-grid{height:180px}.radial{width:50px;height:50px}.page-hero{padding:20px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-contrast:more){:root{--line:#667085}.card,.stat,input,select,textarea{border-width:2px}.bar-track{border-color:#475467}.muted{color:#344054}}
.action-card{text-decoration:none;color:inherit;display:block}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;align-items:end}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.form-grid .full{grid-column:1/-1}.check{display:block;margin:.35rem 0;padding:.35rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;border-bottom:1px solid #d6dbe3;text-align:left;vertical-align:top}th{background:#f4f7fb}.metric{display:block;font-size:2rem;font-weight:800}.btn.small{padding:.35rem .6rem;font-size:.9rem}.chart-bars{display:grid;gap:.45rem;margin:1rem 0}.bar-row{display:grid;grid-template-columns:120px 1fr 1fr;gap:.5rem;align-items:center}.bar{height:16px;background:#e7ebf2;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:#9a3412}.bar.progress i{background:#166534}.panel fieldset{border:1px solid #cfd7e3;border-radius:12px;padding:1rem}@media(max-width:700px){.bar-row{grid-template-columns:1fr}.filters,.form-grid{grid-template-columns:1fr}th,td{font-size:.9rem}}
.notice{padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#f8fafc}
.actions{display:flex;gap:12px;align-items:center}
.secondary{background:#475569;color:#fff}

/* v8 algorithm visibility */
.algorithm-box{background:#0f172a;color:#e5e7eb;border-radius:18px;padding:18px;line-height:1.8;overflow-x:auto}.algorithm-box h3{color:#fff;margin:16px 0 6px}.algorithm-box code{background:#1e293b;color:#dbeafe;padding:3px 6px;border-radius:6px;white-space:nowrap}.score-chip.blue{background:#eaf0ff;color:#1f3fb4}.notice code{font-weight:800}

/* v10 WCAG 2.1 AA visual refresh: accessible colour, chart types and readable controls */
:root{
  --brand:#2357c6;
  --brand-strong:#173f96;
  --teal:#0f766e;
  --purple:#7c3aed;
  --orange:#b45309;
  --rose:#b42318;
  --cyan:#0369a1;
  --control-border:#8ea0b8;
  --control-bg:#ffffff;
  --control-text:#111827;
}
body{line-height:1.5}.top{background:linear-gradient(135deg,#101828,#173f96)}
.card,.stat,.panel{border-color:#c8d2e1}.stat{position:relative;overflow:hidden}.stat::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--brand),var(--teal),var(--purple),var(--orange))}.stat b{color:#101828}.button,button,.btn{background:var(--brand);color:#fff;border:2px solid transparent}.button:hover,button:hover,.btn:hover{background:var(--brand-strong)}.button.secondary,.btn.ghost{background:#eef4ff;color:#173f96;border-color:#b7c7ee}.button.secondary:hover,.btn.ghost:hover{background:#dbe8ff;color:#102f73}
input,select,textarea{min-height:48px;font-size:17px;line-height:1.35;padding:12px 14px;border:2px solid var(--control-border);border-radius:12px;color:var(--control-text);background-color:var(--control-bg)}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#1f2937 50%),linear-gradient(135deg,#1f2937 50%,transparent 50%),linear-gradient(to right,#d8e0ed,#d8e0ed);background-position:calc(100% - 22px) 21px,calc(100% - 15px) 21px,calc(100% - 44px) 10px;background-size:7px 7px,7px 7px,1px 28px;background-repeat:no-repeat;padding-right:56px;min-width:220px;white-space:normal;text-overflow:clip}
select[multiple]{background-image:none;padding-right:14px;min-height:150px}.inline-form select,.inline-form input{min-width:220px}.form-grid label,.filters label,.friendly-form label{font-size:1rem}.friendly-form,.panel{background:#f8fbff}.choice-card,.choice-pill{border:2px solid #c8d2e1;background:#fff;min-height:52px}.choice-card:hover,.choice-pill:hover{border-color:var(--brand);background:#eef4ff}.choice-card:has(input:checked),.choice-pill:has(input:checked){border-color:var(--brand);background:#dbe8ff;box-shadow:0 0 0 2px rgba(35,87,198,.15)}
.badge{border:1px solid currentColor}.badge.red,.score-chip.risk{background:#fff1f0;color:#991b1b}.badge.green,.score-chip.progress{background:#ecfdf3;color:#065f46}.badge.amber{background:#fff7ed;color:#9a3412}.bar-fill.blue{background:var(--brand)}.bar-fill.red{background:var(--rose)}.bar-fill.green{background:var(--teal)}.bar-fill.amber{background:var(--orange)}
.donut-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:center}.donut-chart{width:220px;max-width:100%;height:auto;filter:drop-shadow(0 8px 18px rgba(16,24,40,.08))}.donut-total{font-size:30px;font-weight:800;fill:#101828}.donut-caption{font-size:13px;font-weight:700;fill:#475467;text-transform:uppercase;letter-spacing:.06em}.chart-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px}.chart-legend li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #d8e0ed;border-radius:12px;padding:9px 10px;background:#fff}.chart-legend span{width:18px;height:18px;border-radius:5px;display:inline-block}.chart-legend em{font-style:normal;font-weight:800;color:#101828}.radial{box-shadow:inset 0 0 0 1px #d8e0ed}.radial.red{--ring:var(--rose)}.radial.green{--ring:var(--teal)}.radial.blue{--ring:var(--brand)}.radial.amber{--ring:var(--orange)}
.table-wrap{border:1px solid #d8e0ed;background:#fff}tr:hover td{background:#f8fbff}th{background:#eef4ff;color:#243041;font-size:13px}td{font-size:15px}.page-hero{background:linear-gradient(135deg,#101828 0%,#173f96 52%,#0f766e 100%)}
:focus-visible{outline:4px solid #ffbf47!important;outline-offset:3px!important}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.choice-card:focus-within,.choice-pill:focus-within{box-shadow:0 0 0 4px rgba(255,191,71,.45)}
@media(max-width:850px){.donut-wrap{grid-template-columns:1fr}.donut-chart{margin:auto}select{min-width:100%}.inline-form select,.inline-form input{min-width:100%}input,select,textarea{font-size:16px}}
@media(prefers-contrast:more){.top{background:#000}.page-hero{background:#000}.button,button,.btn{background:#000;border-color:#000}.button.secondary,.btn.ghost{background:#fff;color:#000;border-color:#000}input,select,textarea,.choice-card,.choice-pill,.card,.stat,.panel{border-color:#000}.chart-legend li{border-color:#000}}

/* v15 learner search and filtering */
.learner-filter-card{border-left:6px solid var(--brand)}
.learner-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:end}
.learner-filters .full-width{grid-column:1/-1}
.learner-filters label{margin:0;font-weight:750;color:#172033}
.learner-filters small{min-height:20px;margin-bottom:6px;color:#475467}
.learner-filters input,.learner-filters select{width:100%;min-width:100%;min-height:52px;font-size:17px}
.filter-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:20px}
.filter-actions .button,.filter-actions button{margin:0;min-height:52px;display:inline-flex;align-items:center;justify-content:center}
.notice{padding:14px 16px;border:2px solid #c8d2e1;border-radius:14px;background:#f8fbff;color:#172033}
.score-chip.amber{background:#fff7ed;color:#9a3412}.score-chip.red{background:#fff1f0;color:#991b1b}.score-chip.green{background:#ecfdf3;color:#065f46}
@media(max-width:850px){.learner-filters{grid-template-columns:1fr}.filter-actions{display:grid;grid-template-columns:1fr}.filter-actions .button,.filter-actions button{width:100%}}

/* v18 user management improvements */
.action-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.btn.secondary{background:#334155;color:#fff}.btn.small{padding:.45rem .7rem;font-size:.9rem}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem}.muted-badge{background:#e5e7eb;color:#1f2937}.badge.ok{background:#d1fae5;color:#065f46}.form-grid input[type="datetime-local"]{min-height:44px;width:100%}

.hint{display:block;margin-top:.35rem;font-size:.9rem;color:#475569;}
.badge.danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;}
/* vNext consolidated operational platform */
.operational-grid{align-items:start}.compact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compact-form .span2{grid-column:1/-1}.secondary{background:#f4f7fb;color:#17324d;border:1px solid #c8d5e4}.badge.urgent,.badge.red,.badge.status-overdue,.severity-critical:before{background:#b91c1c;color:#fff}.badge.high,.badge.status-open,.severity-high:before{background:#dc2626;color:#fff}.badge.medium,.badge.amber,.badge.status-in_progress,.severity-medium:before{background:#d97706;color:#111827}.badge.low,.badge.yellow,.badge.status-waiting,.severity-low:before{background:#facc15;color:#111827}.badge.green,.badge.status-completed{background:#15803d;color:#fff}.badge.status-cancelled{background:#64748b;color:#fff}.compact-timeline{border-left:4px solid #d7e2ef;margin-left:10px}.timeline-item{position:relative;padding:12px 14px 12px 18px;margin:0 0 10px 10px;background:#fff;border:1px solid #d8e1eb;border-radius:14px}.timeline-item:before{content:"";position:absolute;left:-22px;top:16px;width:14px;height:14px;border-radius:50%;background:#2563eb;border:3px solid #fff;box-shadow:0 0 0 2px #d7e2ef}.icon-call:before{background:#16a34a}.icon-email:before{background:#2563eb}.icon-sms:before{background:#7c3aed}.icon-meeting:before,.icon-appointment:before{background:#d97706}.severity-info:before{background:#2563eb}.severity-low:before{background:#16a34a}.severity-medium:before{background:#facc15}.severity-high:before{background:#dc2626}.severity-critical:before{background:#7f1d1d}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:end}.filters label,.friendly-form label{font-weight:700;color:#17324d}.friendly-form input,.friendly-form select,.friendly-form textarea,.filters input,.filters select{min-height:46px;font-size:1rem;width:100%;box-sizing:border-box}.friendly-form textarea{min-height:100px}.checkline{display:flex!important;gap:10px;align-items:center}.checkline input{width:auto;min-height:auto}.inline-form{display:flex;gap:8px;flex-wrap:wrap}.inline-form select{min-width:155px}.inline-form input{min-width:180px}table small,.timeline-item small,.note small{color:#52677f}.page-title{gap:18px}.card h2{line-height:1.2}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:4px solid #facc15;outline-offset:3px}@media (max-width:760px){.compact-form{grid-template-columns:1fr}.inline-form{display:grid}.top nav{gap:8px;flex-wrap:wrap}.top nav a{padding:10px 12px}}

/* v21 learner trajectory and projection chart */
.trajectory-card{grid-column:1/-1}.trajectory-wrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,0.8fr);gap:18px;align-items:center}.line-chart{width:100%;height:auto;display:block;border:1px solid #d8e0ed;border-radius:18px;background:#fff}.gridline{stroke:#d8e0ed;stroke-width:1}.axis-label{fill:#475467;font-size:12px;font-weight:700}.chart-band{opacity:.12}.chart-band-green{fill:#16a34a}.chart-band-red{fill:#dc2626}.line-risk,.line-progress{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.line-risk{stroke:#dc2626}.line-progress{stroke:#16a34a}.line-projected{stroke-dasharray:10 8;opacity:.82}.dot-risk{fill:#dc2626;stroke:#fff;stroke-width:3}.dot-progress{fill:#16a34a;stroke:#fff;stroke-width:3}.dot-projected{fill:#fff;stroke-width:3}.dot-risk.dot-projected{stroke:#dc2626}.dot-progress.dot-projected{stroke:#16a34a}.trajectory-summary{display:grid;gap:12px}.mini-stat{border:1px solid #d8e0ed;border-radius:16px;padding:14px;background:#f8fafc}.mini-stat b{display:block;font-size:1.8rem;line-height:1;color:#101828}.mini-stat span{display:block;margin-top:4px;color:#475467;font-weight:700}.trend-notes{margin:0;padding-left:1.2rem;display:grid;gap:8px}.projected-box{background:repeating-linear-gradient(90deg,#111827 0 8px,transparent 8px 14px);border:1px solid #111827}.small{font-size:.92rem}@media(max-width:900px){.trajectory-wrap{grid-template-columns:1fr}.trajectory-card{grid-column:auto}.line-chart{min-height:220px}}


/* v22 printable report charts */
.printable-report{max-width:1100px;margin:0 auto;background:#fff}.report-cover{border-bottom:3px solid #173f96;margin-bottom:18px;padding-bottom:16px}.report-cover h1{font-size:2.1rem;margin:.2rem 0}.report-section{margin:18px 0;padding:18px;border:1px solid #d8e0ed;border-radius:16px;background:#fff}.print-stats .stat small{display:block;margin-top:4px;color:#475467;font-weight:800}.print-line-chart{width:100%;height:auto;display:block;border-radius:16px;background:#fff}.line-confidence{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 7}.dot-confidence{fill:#2563eb;stroke:#fff;stroke-width:2}.dot-confidence.dot-projected{fill:#fff;stroke:#2563eb}.confidence-box{background:#2563eb}.print-legend{margin:10px 0 6px}.print-bar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:10px;align-items:center;margin:10px 0;padding-bottom:11px;border-bottom:1px solid #eef2f7}.print-bar span{font-weight:750;color:#172033}.print-bar b{text-align:right}.print-bar i{grid-column:1/-1;display:block;height:12px;width:var(--w);background:linear-gradient(90deg,#16a34a,#facc15,#f59e0b,#dc2626);border-radius:999px}.print-donut{width:190px;max-width:100%;display:block;margin:8px auto}.chart-legend.compact li{grid-template-columns:18px minmax(0,1fr) auto}.avoid-break{break-inside:avoid;page-break-inside:avoid}.report-charts{align-items:start}
@media print{body{background:#fff;color:#111827;font-size:11pt}.top,nav,.button,.btn,button,.no-print{display:none!important}.container{max-width:none;margin:0;padding:0}.report-section,.card,.stat{box-shadow:none!important}.report-section{border:1px solid #999;padding:12px;margin:12px 0}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{border:1px solid #999;padding:10px}.stat b{font-size:18pt}.printable-report table{font-size:9.5pt}.print-line-chart{max-height:260px}.print-donut{width:150px}.report-cover{margin-top:0}h1{font-size:20pt}h2{font-size:14pt;margin-top:0}a{color:#111827;text-decoration:none}.muted{color:#333!important}.chart-legend li{border:1px solid #999}.page-break{break-before:page;page-break-before:always}}

/* v23 clearer learner trajectory chart + restored workflow runner controls */
.trajectory-card-v23{grid-column:1/-1}.trajectory-v23-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.trajectory-main-panel{min-width:0}.trajectory-side-panel{display:grid;gap:12px}.trajectory-v23-chart{width:100%;height:auto;display:block;border:1px solid #d8e0ed;border-radius:18px;background:#fff}.trajectory-v23-chart .chart-bg{fill:#fff}.trajectory-v23-chart .projection-zone{fill:#eff6ff;opacity:.55}.projection-divider{stroke:#64748b;stroke-width:1.5;stroke-dasharray:6 6}.chart-top-label{fill:#344054;font-size:13px;font-weight:850;letter-spacing:.03em}.axis-band{font-size:12px;font-weight:850;text-transform:capitalize}.axis-band.critical{fill:#dc2626}.axis-band.high{fill:#ea580c}.axis-band.moderate{fill:#475467}.axis-band.low{fill:#15803d}.axis-date{fill:#344054;font-size:12px;font-weight:800}.axis-title{fill:#344054;font-size:13px;font-weight:850}.line-confidence-solid{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.trajectory-v23-chart .line-projected{stroke-dasharray:9 8;opacity:.72}.trajectory-v23-chart .line-risk,.trajectory-v23-chart .line-progress{stroke-width:4.5}.trajectory-v23-chart .dot-confidence{fill:#2563eb;stroke:#fff;stroke-width:2.5}.trajectory-v23-chart .dot-confidence.dot-projected{fill:#fff;stroke:#60a5fa}.risk-proj-box{background:repeating-linear-gradient(90deg,#dc2626 0 8px,transparent 8px 14px);border:1px solid #dc2626}.progress-proj-box{background:repeating-linear-gradient(90deg,#16a34a 0 8px,transparent 8px 14px);border:1px solid #16a34a}.trajectory-legend{flex-wrap:wrap;margin:12px 0}.event-strip{border-top:1px solid #e7edf6;margin-top:14px;padding-top:14px}.event-strip h3{margin:0 0 10px;font-size:1rem}.event-strip-items{display:flex;gap:10px;flex-wrap:wrap}.event-pill{display:inline-flex;flex-direction:column;gap:2px;min-width:120px;border:1px solid #d8e0ed;border-radius:14px;padding:10px 12px;background:#f8fafc;color:#172033;font-weight:700}.event-pill b{font-size:.82rem;color:#475467}.info-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:10px 12px;margin-top:12px}.trend-card{border:1px solid #d8e0ed;border-radius:16px;padding:14px;background:#fff;box-shadow:0 8px 22px rgba(16,24,40,.04)}.trend-card span{display:block;color:#344054;font-weight:850;margin-bottom:6px}.trend-card b{display:block;font-size:1.35rem}.trend-card strong{display:block;margin-top:8px;font-size:1.05rem}.trend-card small{display:block;margin-top:4px;color:#667085;font-weight:700}.trend-card.risk b{color:#dc2626}.trend-card.progress b{color:#15803d}.trend-card.confidence b{color:#2563eb}.trend-card.projection{background:#f0fdf4}.trend-card.projection p{margin:.3rem 0 0;color:#344054}.workflow-run-panel .button-row{display:flex;gap:12px;flex-wrap:wrap}.workflow-run-panel .btn.secondary{background:#eef2ff;color:#173f96;border-color:#bfdbfe}.workflow-result{border:1px solid #d8e0ed;border-radius:16px;padding:14px;margin-top:14px;background:#f8fafc}.workflow-result h3{margin-top:0}.workflow-result-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.workflow-result-grid div{background:#fff;border:1px solid #d8e0ed;border-radius:12px;padding:10px}.workflow-result-grid b{display:block;font-size:1.4rem;color:#101828}.workflow-result-grid span{color:#667085;font-weight:800}.code-chip{display:inline-block;border-radius:999px;background:#eef2ff;color:#173f96;padding:4px 8px;font-size:.82rem;font-weight:850}@media(max-width:1000px){.trajectory-v23-layout{grid-template-columns:1fr}.trajectory-side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.trajectory-side-panel{grid-template-columns:1fr}.trajectory-v23-chart{min-height:260px}.workflow-result-grid{grid-template-columns:1fr 1fr}.event-pill{min-width:100%}}

/* v24 printable trajectory report refinement */
.printable-trajectory-v24 .section-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.printable-trajectory-v24 .section-title-row h2{margin-bottom:4px}.mini-report-tags{display:flex;gap:8px;flex-wrap:wrap}.mini-report-tags span{border:1px solid #d8e0ed;background:#f8fafc;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:850;color:#344054}.print-trajectory-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:start}.print-trajectory-chart-v24{border:1px solid #d8e0ed;border-radius:14px;background:#fff}.projection-zone-print{fill:#eff6ff;opacity:.65}.axis-band-label{fill:#475467;font-size:10px;font-weight:700}.print-trajectory-chart-v24 .line-risk,.print-trajectory-chart-v24 .line-progress{stroke-width:4.2}.print-trajectory-chart-v24 .line-confidence-solid{stroke-width:3.6}.print-trajectory-chart-v24 .line-projected{stroke-dasharray:8 7;opacity:.62}.print-trajectory-chart-v24 .axis-date{fill:#344054;font-size:11px;font-weight:750}.print-trend-summary{display:grid;gap:10px}.print-trend-summary .trend-card{box-shadow:none;padding:12px;border-radius:14px}.print-trend-summary .trend-card b{font-size:1.08rem}.print-trend-summary .trend-card strong{font-size:1.15rem}.print-trend-summary .trend-card.good{background:#f0fdf4;border-color:#bbf7d0}.print-trend-summary .trend-card.bad{background:#fef2f2;border-color:#fecaca}.print-trend-summary .trend-card.stable{background:#eff6ff;border-color:#bfdbfe}.print-event-strip{border-top:1px solid #e7edf6;margin-top:12px;padding-top:12px}.print-event-strip h3{font-size:1rem;margin:0 0 8px}.print-event-items{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.print-event-items div{border:1px solid #d8e0ed;border-radius:12px;padding:8px 10px;background:#f8fafc}.print-event-items b{display:block;color:#475467;font-size:.78rem}.print-event-items span{display:block;color:#172033;font-weight:800;font-size:.9rem}.projection-notes{margin:12px 0 0}.risk-proj-box{background:repeating-linear-gradient(90deg,#dc2626 0 8px,transparent 8px 14px);border:1px solid #dc2626}.progress-proj-box{background:repeating-linear-gradient(90deg,#16a34a 0 8px,transparent 8px 14px);border:1px solid #16a34a}
@media print{.printable-trajectory-v24{break-inside:avoid;page-break-inside:avoid}.print-trajectory-grid{grid-template-columns:1fr 190px;gap:10px}.print-event-items{grid-template-columns:repeat(3,1fr);gap:6px}.print-event-items div{padding:6px 8px}.print-trend-summary .trend-card{padding:8px}.print-trend-summary .trend-card b{font-size:11pt}.print-trend-summary .trend-card strong{font-size:13pt}.mini-report-tags span{font-size:8pt;padding:4px 6px}.projection-notes{font-size:9.5pt}.print-line-chart{max-height:none}}
@media(max-width:900px){.print-trajectory-grid{grid-template-columns:1fr}.print-trend-summary{grid-template-columns:repeat(3,1fr)}.print-event-items{grid-template-columns:1fr 1fr}.printable-trajectory-v24 .section-title-row{display:block}.mini-report-tags{margin-top:8px}}
@media(max-width:620px){.print-trend-summary{grid-template-columns:1fr}.print-event-items{grid-template-columns:1fr}}
/* v25 admin form builder */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.grid3 .wide{grid-column:1/-1}.inline-edit{border:1px solid var(--border,#d8dee9);border-radius:14px;padding:1rem;margin:1rem 0;background:#fff}.warning-soft{border-left:6px solid #f59e0b;background:#fff8eb}.metric-row{display:flex;gap:1rem;flex-wrap:wrap}.metric{min-width:150px;border:1px solid var(--border,#d8dee9);border-radius:14px;padding:1rem;background:#fff}.metric strong{display:block;font-size:1.8rem}.metric span{color:#475569}.badge.grey{background:#e5e7eb;color:#374151}@media(max-width:900px){.grid3{grid-template-columns:1fr}.actions{display:flex;flex-direction:column;gap:.5rem}}

/* v26 form lifecycle builder */
.builder-item{border:1px solid var(--border,#d8dee8);border-radius:14px;padding:1rem;margin:1rem 0;background:#fff}
.archived-item{opacity:.72;background:#f7f8fb;border-style:dashed}
.builder-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 1rem}
.builder-actions form{margin:0}
button.small,.button.small{padding:.45rem .7rem;font-size:.9rem;min-height:38px}
button.danger,.button.danger{background:#b42318;color:#fff;border-color:#b42318}
button.danger:hover,.button.danger:hover{background:#8f1d14}
