
:root{
 --navy:#063f63;--navy2:#0b6696;--blue:#129bd2;--orange:#ef7622;--green:#13a283;--purple:#8557b5;--red:#c65353;--yellow:#c5a526;
 --ink:#17354b;--muted:#6b7e8d;--bg:#f3f7fa;--panel:#fff;--line:#d9e5ec;--soft:#eaf5fa;--soft2:#f8fbfd;
 --shadow:0 12px 32px rgba(9,55,82,.09);--radius:18px;
 --surface:var(--panel);--surface-2:var(--soft2);--border:var(--line);--card:var(--panel)
}
html[data-theme="dark"]{
 --ink:#eef6fa;--muted:#a5b8c4;--bg:#0c1d29;--panel:#142b3a;--line:#294554;--soft:#193b4d;--soft2:#102633;--shadow:0 14px 36px rgba(0,0,0,.28)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:var(--navy);color:#fff;padding:22px 17px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px}.brand-logo{width:54px;height:54px;object-fit:contain;display:block;flex:0 0 auto}.brand strong,.brand span{display:block}.brand strong{letter-spacing:.11em;font-size:20px}.brand span{font-size:11px;opacity:.75}.sidebar nav{display:grid;gap:4px}.nav{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#cfe4ef;text-align:left;padding:10px 12px;border-radius:10px}.nav span{width:20px;text-align:center}.nav:hover,.nav.active{background:rgba(255,255,255,.12);color:#fff}.user-context{margin-top:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:13px}.user-context label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#a9d1e3;margin-top:8px}.user-context label:first-child{margin-top:0}.user-context select{width:100%;margin-top:5px;border:0;border-radius:8px;padding:8px;background:#fff;color:#17354b}
main{margin-left:258px;min-height:100vh}.topbar{height:76px;background:var(--panel);border-bottom:1px solid var(--line);padding:12px 26px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.breadcrumb span,.breadcrumb strong{display:block}.breadcrumb span{text-transform:uppercase;letter-spacing:.1em;font-size:9px;color:var(--blue)}.top-actions{display:flex;align-items:center;gap:9px}.global-search-wrap{position:relative}.top-actions input{width:310px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:11px;padding:10px 13px}.search-results{display:none;position:absolute;top:45px;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:50}.search-results.open{display:block}.search-result{display:block;width:100%;border:0;border-top:1px solid var(--line);background:var(--panel);color:var(--ink);padding:11px;text-align:left}.search-result:first-child{border-top:0}.search-result span{display:block;font-size:11px;color:var(--muted)}.icon-btn,.avatar,.menu-btn{position:relative;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px}.icon-btn{width:40px;height:40px}.avatar{width:41px;height:41px;border-radius:50%;background:var(--orange);border:0;color:#fff;font-weight:850}.notification-count{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;display:grid;place-items:center}.menu-btn{display:none;padding:8px 11px}
.view{display:none;max-width:1580px;margin:auto;padding:27px}.view.active{display:block}.hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:24px;padding:39px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.hero h1{font-size:clamp(36px,4.6vw,59px);line-height:1.02;max-width:900px;margin:8px 0}.hero p{max-width:760px;color:#d9edf5;font-size:17px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:850;color:var(--blue)}.eyebrow.light{color:#85daf7}.button-row,.page-actions{display:flex;gap:9px}.button-row{margin-top:16px}.primary,.secondary,.ghost{border-radius:10px;padding:10px 14px;font-weight:800}.primary{border:0;background:var(--orange);color:#fff}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{border:1px solid var(--line);background:var(--panel);color:var(--ink)}.ghost{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff}.readiness-ring{width:190px;height:190px;border-radius:50%;border:15px solid rgba(255,255,255,.18);border-top-color:var(--orange);display:grid;place-content:center;text-align:center}.readiness-ring strong{font-size:40px}.readiness-ring span{font-size:12px;max-width:115px}
.metric-grid,.competency-metrics,.content-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:19px 0}.metric,.panel,.metric-small,.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.metric,.metric-card{padding:18px}.metric span,.metric strong,.metric small,.metric-card span,.metric-card strong,.metric-card small{display:block}.metric span,.metric small,.metric-card span,.metric-card small{color:var(--muted)}.metric strong,.metric-card strong{font-size:33px;margin:4px 0}.panel{padding:20px}.dashboard-layout{display:grid;grid-template-columns:1fr 1fr;gap:19px}.span-2{grid-column:1/-1}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{margin:5px 0 15px}.continue-course{display:flex;gap:13px;align-items:center}.course-art{width:60px;height:60px;border-radius:15px;background:linear-gradient(145deg,var(--navy2),var(--green));display:grid;place-items:center;color:#fff;font-size:30px}.grow{flex:1}.grow strong,.grow span{display:block}.grow span{font-size:12px;color:var(--muted);margin-top:3px}.progress{height:9px;background:var(--line);border-radius:999px;overflow:hidden;margin:11px 0}.progress span{display:block;height:100%;background:var(--green)}.queue-item,.question-item,.list-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.queue-item:first-child,.question-item:first-child,.list-item:first-child{border-top:0}.queue-item div strong,.queue-item div span,.question-item div strong,.question-item div span,.list-item div strong,.list-item div span{display:block}.queue-item div span,.question-item div span,.list-item div span{font-size:11px;color:var(--muted)}.badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850}.good{background:#e4f6ef;color:#08705c}.warning{background:#fff0de;color:#9d5417}.risk{background:#fde8e8;color:#963d3d}.neutral{background:var(--soft);color:var(--blue)}.mini-academy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.mini-academy{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--soft2)}.mini-academy strong,.mini-academy span{display:block}.mini-academy span{font-size:11px;color:var(--muted);margin-top:4px}
.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.page-heading h1{font-size:43px;margin:6px 0}.page-heading p{color:var(--muted);margin-bottom:0}.page-heading select,.section-head select,.knowledge-controls select{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:9px}.learning-tabs,.manager-tabs,.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.chip{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:8px 12px}.chip.active{background:var(--navy);color:#fff}.course-grid,.academy-grid,.simulation-grid,.diagnostic-grid,.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card,.academy-card,.simulation-card,.diagnostic-card,.report-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:var(--shadow)}.card-banner{height:105px;padding:15px;color:#fff;display:flex;justify-content:space-between;align-items:end}.clinical{background:linear-gradient(145deg,#087b71,#17ad98)}.client{background:linear-gradient(145deg,#1f668e,#129bd2)}.leadership{background:linear-gradient(145deg,#653882,#9d6ac8)}.operations{background:linear-gradient(145deg,#a94e16,#ef7622)}.foundation{background:linear-gradient(145deg,#344e65,#6a8499)}.ce{background:linear-gradient(145deg,#7f6b14,#c3a622)}.card-body{padding:17px}.card-body h2,.card-body h3{margin:0 0 7px}.card-body p{color:var(--muted);line-height:1.45;min-height:60px}.card-meta,.card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-meta{font-size:11px;color:var(--muted);margin:9px 0}.academy-card{padding:20px}.academy-card p{color:var(--muted);min-height:65px}.academy-icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:25px;margin-bottom:15px}
.ask-hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:23px;padding:34px}.ask-hero h1{font-size:48px;margin:5px 0}.ask-hero p{color:#d9edf5}.ask-input{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px}.ask-input textarea{min-height:72px;resize:vertical;border:0;border-radius:13px;padding:14px}.ask-layout{display:grid;grid-template-columns:1.55fr .8fr;gap:19px;margin-top:19px}.conversation-panel{min-height:410px}.chat-messages{display:grid;gap:15px}.message{display:flex;gap:11px;max-width:90%}.message.user{margin-left:auto;flex-direction:row-reverse}.message-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900}.message.user .message-avatar{background:var(--orange)}.message>div:last-child{background:var(--soft);padding:13px;border-radius:13px}.message p{margin:5px 0;line-height:1.55}.citation-box{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.citation{display:block;border:0;background:transparent;color:var(--blue);padding:3px 0;text-align:left;font-size:12px}.suggestion{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:10px;margin-top:8px}.safety-note{background:var(--soft);border-radius:12px;padding:13px;margin-top:18px}.safety-note strong,.safety-note span{display:block}.safety-note span{font-size:11px;color:var(--muted);margin-top:4px}
.knowledge-controls{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:17px}.knowledge-controls input,.diagnostic-search input{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:11px;padding:11px 13px}.resource-list,.competency-table{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.resource-row{display:grid;grid-template-columns:48px 1.5fr .7fr .7fr .6fr auto;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}.resource-row:first-child{border-top:0}.resource-icon{width:42px;height:42px;border-radius:11px;background:var(--soft);display:grid;place-items:center}.resource-row strong,.resource-row span{display:block}.resource-row span{font-size:11px;color:var(--muted);margin-top:3px}.diagnostic-search{margin-bottom:17px}.diagnostic-search input{width:100%}.diagnostic-card{padding:18px}.diagnostic-card p{color:var(--muted);min-height:58px}.diagnostic-tags{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.tag{background:var(--soft);color:var(--blue);border-radius:999px;padding:5px 8px;font-size:10px}
.metric-small{padding:16px}.metric-small strong,.metric-small span{display:block}.metric-small strong{font-size:28px}.metric-small span{font-size:11px;color:var(--muted)}.competency-head,.competency-row{display:grid;grid-template-columns:1.25fr 1fr .8fr .65fr auto;gap:12px;align-items:center;padding:14px 16px}.competency-head{background:var(--soft);text-transform:uppercase;font-size:10px;letter-spacing:.08em;font-weight:850}.competency-row{border-top:1px solid var(--line);font-size:12px}.simulation-card .card-banner{height:115px}.manager-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.team-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:var(--shadow)}.team-head{display:flex;gap:10px;align-items:center}.team-avatar{width:46px;height:46px;border-radius:13px;background:var(--soft);display:grid;place-items:center;font-weight:900}.team-head strong,.team-head span{display:block}.team-head span{font-size:11px;color:var(--muted)}.team-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0}.team-stat{background:var(--soft);border-radius:9px;padding:9px;text-align:center}.team-stat strong,.team-stat span{display:block}.team-stat span{font-size:9px;color:var(--muted)}.assignment-table{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.assignment-head,.assignment-row{display:grid;grid-template-columns:1.3fr 1fr .7fr .6fr .6fr auto;gap:11px;padding:13px 15px;align-items:center}.assignment-head{background:var(--soft);text-transform:uppercase;font-size:10px;font-weight:850}.assignment-row{border-top:1px solid var(--line);font-size:12px}.approval-grid,.compliance-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.content-layout{display:grid;grid-template-columns:1.6fr .9fr;gap:19px}.content-item{display:grid;grid-template-columns:43px 1fr auto;gap:11px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.content-item:first-child{border-top:0}.content-icon{width:40px;height:40px;border-radius:10px;background:var(--soft);display:grid;place-items:center}.report-card{padding:20px}.report-card p{color:var(--muted);min-height:55px}.report-icon{width:48px;height:48px;border-radius:13px;background:var(--soft);display:grid;place-items:center;font-size:24px}.report-preview{margin-top:19px}.trend-chart{height:260px;display:flex;align-items:end;gap:20px;padding:20px}.trend-column{flex:1;text-align:center}.trend-bar{background:linear-gradient(var(--blue),var(--navy));border-radius:10px 10px 4px 4px}.trend-column span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.setting-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.setting-row:first-of-type{border-top:0}.setting-row strong,.setting-row span{display:block}.setting-row span{font-size:11px;color:var(--muted);margin-top:3px}.switch input{display:none}.switch span{display:block;width:44px;height:24px;border-radius:999px;background:var(--line);position:relative}.switch span:after{content:"";position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.2s}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{left:23px}
.back-link{border:0;background:transparent;color:var(--blue);font-weight:800;margin-bottom:13px}.runner-shell{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.runner-header{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:27px;display:flex;justify-content:space-between;align-items:end}.runner-header h1{margin:5px 0;font-size:35px}.runner-progress{width:260px}.runner-progress span{font-size:12px}.runner-progress .progress{background:rgba(255,255,255,.2)}.runner-body{display:grid;grid-template-columns:1fr 1fr;min-height:540px}.case-side{padding:30px;border-right:1px solid var(--line)}.case-side h2{font-size:31px}.case-side>p{font-size:17px;line-height:1.6;color:var(--muted)}.case-pill{display:inline-block;background:var(--soft);color:var(--blue);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:850}.detail-card{background:var(--soft);border-radius:12px;padding:13px;margin-top:10px}.detail-card strong,.detail-card span{display:block}.detail-card span{font-size:12px;color:var(--muted);margin-top:3px}.decision-side{padding:30px}.decision-option{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:13px;margin-top:10px}.decision-option:hover{border-color:var(--blue);background:var(--soft)}.decision-option.correct{background:#e5f7f1;border-color:var(--green);color:#08705c}.decision-option.wrong{background:#fde8e8;border-color:var(--red);color:#963d3d}.feedback{background:var(--soft);border-radius:12px;padding:14px;margin-top:15px}.feedback p{line-height:1.5}
dialog{width:min(720px,calc(100% - 30px));border:0;border-radius:20px;background:var(--panel);color:var(--ink);padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(4,29,43,.72)}.modal-close{position:absolute;right:13px;top:8px;border:0;background:transparent;color:var(--muted);font-size:28px}.modal-title{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{font-size:12px}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel);color:var(--ink)}.form-grid .full{grid-column:1/-1}.drawer{position:fixed;top:0;right:-410px;width:390px;max-width:92vw;height:100%;background:var(--panel);z-index:60;box-shadow:-15px 0 45px rgba(0,0,0,.2);padding:20px;transition:.25s}.drawer.open{right:0}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head button{border:0;background:transparent;color:var(--ink);font-size:25px}.notification-item{padding:13px 0;border-top:1px solid var(--line)}.notification-item:first-child{border-top:0}.notification-item strong,.notification-item span{display:block}.notification-item span{font-size:11px;color:var(--muted);margin-top:4px}.overlay{display:none;position:fixed;inset:0;background:rgba(4,29,43,.45);z-index:55}.overlay.open{display:block}.toast{position:fixed;right:23px;bottom:23px;background:var(--navy);color:#fff;border-radius:10px;padding:12px 16px;z-index:80;opacity:0;transform:translateY(60px);transition:.25s}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1120px){.course-grid,.academy-grid,.simulation-grid,.diagnostic-grid,.report-grid{grid-template-columns:repeat(2,1fr)}.metric-grid,.competency-metrics,.content-stats{grid-template-columns:repeat(2,1fr)}.manager-team-grid{grid-template-columns:repeat(2,1fr)}.content-layout{grid-template-columns:1fr}}
@media(max-width:960px){.topbar{gap:10px}.top-actions{gap:6px;min-width:0;flex:1 1 auto;justify-content:flex-end}.global-search-wrap{min-width:0;flex:1 1 auto}.top-actions input{width:100%;min-width:0}.icon-btn{width:36px;height:36px;flex:0 0 auto}.avatar{width:36px;height:36px;flex:0 0 auto}}
@media(max-width:780px){.sidebar{display:none;transform:none}.sidebar.open{display:flex}main{margin-left:0}.menu-btn{display:block;flex:0 0 auto}.topbar{padding:11px 13px;gap:10px}.top-actions{gap:6px;min-width:0;flex:1 1 auto;justify-content:flex-end}.global-search-wrap{min-width:0;flex:1 1 auto}.top-actions input{width:100%;min-width:0}.icon-btn{width:36px;height:36px;flex:0 0 auto}.avatar{width:36px;height:36px;flex:0 0 auto}.breadcrumb{display:none}.view{padding:15px 12px}.hero{padding:25px}.readiness-ring{display:none}.dashboard-layout,.ask-layout,.admin-grid,.approval-grid,.compliance-grid,.runner-body{grid-template-columns:1fr}.span-2{grid-column:auto}.metric-grid,.competency-metrics,.content-stats,.course-grid,.academy-grid,.simulation-grid,.diagnostic-grid,.report-grid,.manager-team-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.mini-academy-grid{grid-template-columns:1fr}.knowledge-controls{grid-template-columns:1fr}.resource-row{grid-template-columns:42px 1fr auto}.resource-row>*:nth-child(3),.resource-row>*:nth-child(4),.resource-row>*:nth-child(5){display:none}.competency-head{display:none}.competency-row{grid-template-columns:1fr 1fr}.assignment-head{display:none}.assignment-row{grid-template-columns:1fr 1fr}.case-side{border-right:0;border-bottom:1px solid var(--line)}.runner-header{align-items:flex-start;flex-direction:column}.runner-progress{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.continue-course{align-items:flex-start;flex-wrap:wrap}}
/* Integrated Medical Academy + Level 5 */
.medical-hero{background:linear-gradient(135deg,#063f63,#0e6f93);color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.medical-hero h2{font-size:30px;max-width:760px;margin:8px 0}.medical-hero p{max-width:760px;color:rgba(255,255,255,.82)}.academy-progress-ring{width:132px;height:132px;border-radius:50%;border:11px solid rgba(255,255,255,.22);border-top-color:#f39c12;display:grid;place-content:center;text-align:center;flex:0 0 auto}.academy-progress-ring strong{font-size:28px}.academy-progress-ring span{font-size:12px}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:22px}.level-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.level-card.current{border:2px solid var(--orange)}.level-card.locked{opacity:.72}.level-card .level-number{width:42px;height:42px;border-radius:12px;display:grid;place-content:center;background:var(--navy);color:white;font-weight:800}.level-card h2{font-size:19px;margin:14px 0 7px}.level-card p{min-height:52px;color:var(--muted)}.level-card .card-footer{margin-top:16px}.academy-summary-panel{margin-top:10px}.metric-grid.compact{grid-template-columns:repeat(4,1fr);margin-top:18px}.level5-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.l5-dashboard-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.l5-continue{display:flex;align-items:center;gap:18px;padding:20px;background:linear-gradient(135deg,rgba(6,63,99,.08),rgba(243,156,18,.1));border-radius:16px}.patient-avatar{width:76px;height:76px;border-radius:18px;background:#f3a43b;color:white;display:grid;place-content:center;font-size:34px}.l5-tool-grid,.case-library-grid,.hospital-room-grid,.l5-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.l5-tool,.clinical-case,.hospital-room,.l5-course{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:17px}.l5-tool button,.clinical-case button,.hospital-room button,.l5-course button{margin-top:12px}.l5-course .course-num{font-weight:800;color:var(--orange)}.hospital-room{cursor:pointer;transition:.2s}.hospital-room:hover{transform:translateY(-2px);border-color:var(--orange)}.room-icon{font-size:28px}.diagnostic-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.lab-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.lab-result{border:1px solid var(--line);border-radius:14px;padding:15px}.lab-result strong{display:block;font-size:25px;margin:5px 0}.flag-high{color:#b64635}.flag-normal{color:#24845a}.case-workspace{max-width:1320px;margin:0 auto}.case-workspace-head{background:linear-gradient(135deg,#063f63,#0e6f93);color:white;padding:24px;border-radius:20px 20px 0 0;display:flex;justify-content:space-between;gap:20px}.case-workspace-head h1{margin:5px 0}.case-progress-box{min-width:240px;align-self:center}.case-stage-nav{display:flex;overflow:auto;background:var(--surface);border:1px solid var(--line);padding:10px;gap:7px}.case-stage-nav button{white-space:nowrap;border:0;border-radius:999px;padding:9px 12px;background:var(--surface-2);color:var(--ink);cursor:pointer}.case-stage-nav button.active{background:var(--orange);color:#fff}.case-workspace-body{display:grid;grid-template-columns:280px 1fr;border:1px solid var(--line);border-top:0;background:var(--surface);border-radius:0 0 20px 20px;min-height:540px}.patient-snapshot{padding:22px;border-right:1px solid var(--line);background:var(--surface-2)}.patient-snapshot dl{margin:20px 0}.patient-snapshot dt{font-size:12px;text-transform:uppercase;color:var(--muted);margin-top:14px}.patient-snapshot dd{margin:3px 0;font-weight:700}.case-stage-content{padding:28px}.choice-grid{display:grid;gap:10px}.case-choice{border:1px solid var(--line);background:var(--surface);padding:14px;border-radius:12px;text-align:left;cursor:pointer}.case-choice.selected{border-color:var(--orange);background:rgba(243,156,18,.1)}.timeline-row{display:grid;grid-template-columns:80px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.soap-grid label{display:block;margin-bottom:13px}.soap-grid textarea{width:100%;min-height:86px}.full{width:100%}@media(max-width:900px){.medical-hero,.case-workspace-head{align-items:flex-start;flex-direction:column}.l5-dashboard-grid,.case-workspace-body{grid-template-columns:1fr}.patient-snapshot{border-right:0;border-bottom:1px solid var(--line)}.metric-grid.compact{grid-template-columns:repeat(2,1fr)}}


/* Level 6 — Emergency & Critical Care */
.emergency-head{background:linear-gradient(135deg,#6e1720,#b42834 62%,#e97235)}
.emergency-avatar{background:#fff1f2;color:#9e1f2b}
.emergency-tool{border-top:4px solid #b42834}
.emergency-case{border-left:4px solid #b42834}
.critical-pill{background:#b42834!important;color:#fff!important}
.triage-board{display:grid;gap:14px;margin-top:18px}
.triage-patient{display:grid;grid-template-columns:minmax(220px,1fr) 220px 170px;gap:18px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--card)}
.triage-patient h3{margin:6px 0}.triage-patient p{margin:0}.triage-patient label{display:grid;gap:7px;font-weight:700}.triage-feedback{text-align:right}
.crashcart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.crash-drawer{padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.check-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.check-row:last-child{border:0}.check-row input{width:18px;height:18px}
.icu-table{display:grid;border:1px solid var(--border);border-radius:16px;overflow:hidden;margin:18px 0}.icu-row{display:grid;grid-template-columns:90px repeat(4,1fr);gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.icu-row:last-child{border:0}.icu-head{background:var(--surface)}.critical-row{background:rgba(180,40,52,.11)}
.emergency-arrivals,.abc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:18px 0}.abc-grid{grid-template-columns:repeat(3,1fr)}.emergency-arrivals article,.abc-grid article{padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.triage-summary{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:18px;border-radius:16px;background:var(--surface);margin:18px 0}.role-board{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:18px 0}.role-board label{display:grid;gap:8px;font-weight:700}
@media(max-width:850px){.triage-patient{grid-template-columns:1fr}.triage-feedback{text-align:left}.crashcart-grid,.abc-grid,.emergency-arrivals,.role-board{grid-template-columns:1fr}.icu-row{grid-template-columns:75px repeat(4,minmax(120px,1fr));min-width:680px}.icu-table{overflow-x:auto}}

/* Level 7 — Surgery & Perioperative Care */
.level-hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.level-hero h2{font-size:30px;max-width:760px;margin:8px 0}.level-hero p{max-width:760px;color:rgba(255,255,255,.82)}
.surgery-hero{background:linear-gradient(135deg,#063f63,#245f7c)}
.surgery-head{background:linear-gradient(135deg,#063f63,#245f7c)}
.surgery-workspace .critical-row{box-shadow:inset 4px 0 0 #d97706}
.surgery-workspace .case-pill{letter-spacing:.02em}

/* Level 7 — Surgery & Perioperative Care */
.surgery-head{background:linear-gradient(135deg,#063f63,#0a6e83)}
.surgery-workspace .patient-snapshot{border-top:4px solid var(--orange,#f58220)}
.checklist-grid{display:grid;gap:10px;margin-top:18px}.check-row{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card)}.check-row input{margin-top:3px;transform:scale(1.15)}
.sterile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.sterile-event{text-align:left;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card);display:flex;justify-content:space-between;gap:12px}.sterile-event.selected-correct{outline:2px solid #2f9e67}.sterile-event.selected-wrong{outline:2px solid #d29b27}.feedback-box{padding:14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);margin-top:14px}
.recovery-timeline{display:grid;gap:8px;margin:18px 0}.recovery-row{display:grid;grid-template-columns:1.1fr repeat(4,1fr);gap:8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.verify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.verify-grid label{padding:12px;border:1px solid var(--border);border-radius:10px}.sequence-list{display:grid;gap:9px;margin:16px 0}.sequence-item{text-align:left;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
@media(max-width:780px){.sterile-grid,.verify-grid{grid-template-columns:1fr}.recovery-row{grid-template-columns:1fr 1fr}}


/* Levels 10–12 */
.upper-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.upper-hero{color:#fff;border-radius:22px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.upper-hero h2{font-size:30px;max-width:780px;margin:7px 0}.upper-hero p{max-width:820px;color:rgba(255,255,255,.84)}.level-10-hero{background:linear-gradient(135deg,#5a2f73,#9a4e91)}.level-11-hero{background:linear-gradient(135deg,#174f63,#248a8d)}.level-12-hero{background:linear-gradient(135deg,#173b62,#0c7592)}.framework-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px;margin-top:18px}.framework-grid article{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--soft2)}.framework-grid article strong{width:30px;height:30px;display:grid;place-content:center;border-radius:9px;background:var(--navy);color:#fff}.upper-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.upper-course-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:19px;box-shadow:var(--shadow);display:flex;flex-direction:column}.upper-course-card p{color:var(--muted);flex:1}.competency-check{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.competency-check div span{display:block;color:var(--muted);margin-top:4px}.simulation-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.simulation-steps article{display:grid;gap:5px;border:1px solid var(--line);padding:14px;border-radius:12px}.clinical-priority-grid,.icu-lab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:18px 0}.priority-card,.icu-lab-grid article{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:17px;text-align:left;color:var(--ink)}.priority-card span,.icu-lab-grid span{display:block;color:var(--muted);margin-top:5px}.priority-card.selected,.workflow-node.selected{outline:2px solid var(--orange);background:rgba(239,118,34,.08)}.icu-lab-grid article{display:grid;gap:8px}.workflow-map{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:22px 0}.workflow-node{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:12px;border-radius:12px;display:grid;gap:4px;text-align:left}.workflow-arrow{color:var(--orange);font-weight:900}.audit-table{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:18px 0}.audit-row{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.audit-row:last-child{border:0}.audit-head{background:var(--soft)}
@media(max-width:780px){.upper-hero{align-items:flex-start;flex-direction:column}.simulation-steps,.clinical-priority-grid,.icu-lab-grid{grid-template-columns:1fr}.competency-check{align-items:flex-start;flex-direction:column}.audit-row{grid-template-columns:1fr 1fr}.audit-head{display:none}.workflow-arrow{display:none}}

/* Hannah Learning System 1.0 — Foundations Academy integration */
.link-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.full-width{width:100%}.foundations-hero{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;background:linear-gradient(135deg,#063f63,#0b6ca8);border-radius:28px;color:#fff;padding:42px;margin-bottom:22px}.foundations-hero h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1;margin:.35rem 0 1rem}.foundations-hero p{max-width:780px;font-size:1.08rem;color:#e3f4ff}.foundation-summary{min-width:200px;padding:25px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);border-radius:22px;display:grid;gap:5px}.foundation-summary strong{font-size:2.2rem}.foundation-summary span{color:#e3f4ff}.foundations-metrics{margin-bottom:22px}.foundations-course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.foundation-course{border:1px solid var(--border);background:var(--surface-2);border-radius:18px;padding:20px;display:flex;flex-direction:column;min-height:315px}.foundation-course.available{background:linear-gradient(180deg,rgba(10,108,168,.1),var(--surface-2));border-color:rgba(10,108,168,.35)}.foundation-course h3{font-size:1.12rem;margin:.8rem 0}.foundation-course p{color:var(--muted);flex:1}.course-number{font-size:2rem;font-weight:900;color:var(--blue);line-height:1}.course-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.course-meta span,.foundation-competencies span{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 10px;font-size:.78rem}.foundation-competencies{display:flex;gap:10px;flex-wrap:wrap}.foundations-lower{margin-top:22px}.dashboard-academy{width:100%;border:0;text-align:left;color:inherit;cursor:pointer}.dashboard-academy:hover{transform:translateY(-2px)}
@media(max-width:1200px){.foundations-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.foundations-hero{grid-template-columns:1fr;padding:28px}.foundation-summary{min-width:0}.foundations-course-grid{grid-template-columns:1fr}}

.l2-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.l2-module-card{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:18px;position:relative;box-shadow:var(--shadow)}
.l2-module-card h3{font-size:17px;margin:10px 0 6px}
.l2-module-card p{color:var(--muted);min-height:48px}
.l2-module-num{width:36px;height:36px;border-radius:10px;display:grid;place-content:center;background:var(--navy);color:#fff;font-weight:800;font-size:13px}
.l2-check-row{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);margin-bottom:10px}
.l2-check-row input{margin-top:3px;transform:scale(1.15)}
.l2-check-row.done{border-color:var(--green);background:rgba(19,162,131,.08)}
.l2-station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:20px}
.l2-station-card{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:17px}
.l2-station-card .l2-station-icon{font-size:26px}
.l2-cert-row{display:grid;grid-template-columns:1.4fr .9fr 1fr;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}
.l2-cert-head{display:grid;grid-template-columns:1.4fr .9fr 1fr;gap:12px;padding:14px 16px;background:var(--soft);text-transform:uppercase;font-size:10px;letter-spacing:.08em;font-weight:850;border-radius:14px 14px 0 0}
.l2-cert-table{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}
.l2-anatomy-figure{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:16px;text-align:center}
.l2-anatomy-figure svg{max-width:100%;height:auto}
.l2-anatomy-figure figcaption{color:var(--muted);font-size:12px;margin-top:8px;text-align:left}
.l2-source-figure{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}
.l2-source-figure img{width:100%;display:block;max-height:260px;object-fit:cover;background:#0b1a24}
.l2-source-figure figcaption{padding:12px 14px;color:var(--muted);font-size:12px;line-height:1.5}
.l2-source-figure figcaption a{color:var(--blue)}
.academy-video{width:min(100%,620px);margin:1.2rem auto;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow)}
.academy-video-label{margin-bottom:10px;color:var(--orange);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.video-frame{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#001f31}
.video-frame video,.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#001f31}
.video-fallback{display:inline-block;margin-top:10px;color:var(--blue);font-weight:700}
:where(#modalContent) :where(img,video,audio,table,pre){max-width:100%}
:where(#modalContent) :where(img,video){height:auto}
dialog:has(.academy-video){width:min(980px,calc(100% - 32px))}
dialog:has(.academy-video) .academy-video{width:min(100%,760px)}
@media(max-width:780px){dialog{padding:20px 16px}.academy-video{padding:10px}}
.academy-image{display:block;max-width:min(100%,532px);height:auto;margin:0 auto;border-radius:12px}
.academy-audio{display:block;width:100%;max-width:532px;margin:12px auto 0}
.academy-transcript-label{font-style:italic;color:var(--muted)}
.academy-figure{margin:1.2rem auto;text-align:center}
.academy-image--portrait{max-width:min(100%,360px)}
.l2-quiz-section{margin:26px 0 4px;font-size:13px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--navy2)}
.l2-quiz-question{border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px;background:var(--soft)}
.l2-quiz-question h4{margin:0 0 10px;font-size:14px}
.l2-quiz-score{font-weight:800;color:var(--navy)}
.l2-module-progress{display:flex;align-items:center;gap:8px;margin-top:10px}
.l2-obj-list{display:grid;gap:10px;margin-top:14px}
.l2-obj-list li{position:relative;padding-left:20px;list-style:none}
.l2-obj-list li::before{content:'✓';color:var(--green);font-weight:800;position:absolute;left:0;top:0}
.l2-case-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.hw-mock{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow);margin:16px 0}
.hw-mock-header{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:9px 14px;display:flex;justify-content:space-between;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.hw-mock-dialogue{padding:14px;margin:0;background:var(--soft);border-bottom:1px solid var(--line);line-height:1.6;font-size:14px}
.hw-mock-dialogue strong{color:var(--navy)}
.hw-mock-role{display:inline-block;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:850;margin-right:6px;color:var(--blue)}
.hw-mock-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.hw-mock-row strong{font-size:14px}
.hw-mock-state-group{display:flex;gap:12px;font-size:12px;flex-wrap:wrap}
.hw-mock-state-group label{display:flex;align-items:center;gap:5px;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:5px 9px;background:var(--panel)}
.hw-mock-detail{padding:14px;background:var(--soft)}
.hw-mock-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hw-mock-columns h5{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
.hw-mock-check{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;cursor:pointer}
.hw-mock-duration{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.hw-mock-duration-label{width:100%;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.hw-mock-duration label{border:1px solid var(--line);border-radius:999px;padding:6px 11px;font-size:12px;cursor:pointer;background:var(--panel);display:flex;align-items:center;gap:5px}
.hw-mock-actions{padding:14px;display:flex;justify-content:flex-end}
@media(max-width:900px){.l2-cert-row,.l2-cert-head{grid-template-columns:1fr}.hw-mock-columns{grid-template-columns:1fr}}
[hidden]{display:none!important}
.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(150deg,var(--navy),var(--navy2) 55%,var(--blue))}
.auth-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.auth-brand div{display:flex;flex-direction:column;line-height:1.15}
.auth-brand strong{font-size:17px;letter-spacing:.14em;color:var(--navy)}
.auth-brand span{font-size:11px;color:var(--muted)}
.auth-logo{width:42px;height:42px;object-fit:contain;background:var(--navy);border-radius:11px;padding:5px}
.auth-card h1{font-size:22px;margin:0 0 6px}
.auth-card>p{color:var(--muted);font-size:13px;margin:0 0 20px}
.auth-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:14px}
.auth-field input{border:1px solid var(--line);border-radius:11px;padding:11px 13px;font:inherit;font-weight:400;color:var(--ink);background:var(--bg)}
.auth-field input:focus{outline:2px solid var(--blue);outline-offset:1px}
.auth-error,.auth-info{border-radius:11px;padding:10px 12px;font-size:12.5px;margin-bottom:14px}
.auth-error{background:#fdecec;border:1px solid #f3bcbc;color:#a02020}
.auth-info{background:#e8f6f2;border:1px solid #a9ded1;color:#0c6b56}
.auth-toggle{display:block;width:100%;margin-top:14px;background:none;border:0;color:var(--navy2);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}

/* ===== Content Studio ===== */
.cs-filters{display:flex;gap:8px;flex-wrap:wrap}
.cs-editor-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cs-lesson-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.cs-lesson-row:first-child{border-top:0}
.cs-lesson-row strong{display:block}
.cs-lesson-row span.cs-meta{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.cs-row-actions{display:flex;gap:6px;flex-wrap:wrap}
.cs-row-actions button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:9px;padding:7px 11px;font-size:12px;cursor:pointer}
.cs-row-actions button:hover{border-color:var(--blue);color:var(--navy2)}
.cs-row-actions button.cs-danger:hover{border-color:var(--red);color:var(--red)}
.cs-empty{color:var(--muted);padding:18px 0}
.cs-section{margin-bottom:19px}
.cs-section>h2{margin:5px 0 4px}
.cs-help{color:var(--muted);font-size:12.5px;margin:0 0 14px}
.cs-field{display:block;font-size:12px;margin-bottom:13px}
.cs-field>span{display:block;font-weight:650;margin-bottom:5px}
.cs-field input,.cs-field select,.cs-field textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px}
.cs-field textarea{resize:vertical}
.cs-item{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:15px;margin-bottom:13px}
.cs-item-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.cs-item-head strong{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cs-item-tools{display:flex;gap:5px}
.cs-item-tools button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;width:29px;height:29px;line-height:1;cursor:pointer;font-size:13px}
.cs-item-tools button:hover:not(:disabled){border-color:var(--blue);color:var(--navy2)}
.cs-item-tools button:disabled{opacity:.35;cursor:not-allowed}
.cs-item-tools button.cs-danger:hover{border-color:var(--red);color:var(--red)}
.cs-nested{border-left:3px solid var(--line);padding-left:13px;margin-top:12px}
.cs-add{border:1px dashed var(--line);background:var(--panel);color:var(--navy2);border-radius:11px;padding:10px 14px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.cs-add:hover{border-color:var(--blue);background:var(--soft)}
.cs-rt-toolbar{display:flex;gap:5px;flex-wrap:wrap;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:var(--panel);padding:6px}
.cs-rt-toolbar button{border:1px solid transparent;background:none;color:var(--ink);border-radius:7px;min-width:29px;height:28px;padding:0 8px;font-size:12.5px;cursor:pointer}
.cs-rt-toolbar button:hover{background:var(--soft);border-color:var(--line)}
.cs-rt{border:1px solid var(--line);border-radius:0 0 10px 10px;background:var(--panel);padding:12px;min-height:130px;font-size:13.5px;line-height:1.55;overflow-wrap:anywhere}
.cs-rt:focus{outline:2px solid var(--blue);outline-offset:-1px}
.cs-rt p:first-child{margin-top:0}
.cs-locked{border:1px solid var(--yellow);background:rgba(197,165,38,.09);border-radius:11px;padding:11px 13px;font-size:12.5px;margin-bottom:12px}
.cs-opt-row{display:flex;gap:9px;align-items:center;margin-bottom:8px}
.cs-opt-row input[type=text]{flex:1;border:1px solid var(--line);border-radius:9px;padding:9px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px}
.cs-opt-row label{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.cs-opt-row button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;width:29px;height:29px;cursor:pointer}
.cs-opt-row button:hover{border-color:var(--red);color:var(--red)}
.cs-inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cs-errors{border:1px solid #f3bcbc;background:#fdecec;color:#a02020;border-radius:11px;padding:12px 14px;font-size:12.5px;margin-bottom:15px}
.cs-errors ul{margin:6px 0 0;padding-left:19px}
.cs-warn{border:1px solid var(--yellow);background:rgba(197,165,38,.09);border-radius:11px;padding:12px 14px;font-size:12.5px;margin-bottom:15px}
@media(max-width:780px){.cs-lesson-row{grid-template-columns:1fr}.cs-inline{grid-template-columns:1fr}.cs-editor-actions{width:100%}.cs-editor-actions button{flex:1}.cs-head{flex-direction:column;align-items:stretch}.cs-filters{width:100%}.cs-filters select{flex:1 1 140px;min-width:0}}
.cs-link-btn{border:0;background:transparent;color:var(--blue);font-weight:800;padding:0;text-decoration:underline;cursor:pointer;font-size:inherit}.cs-link-btn:hover{color:var(--navy2)}.cs-preview-hint{background:var(--soft);border-radius:10px;padding:10px 12px;margin:10px 0!important}

/* ================= Anatomy & Physiology lesson widgets ================= */
.anat-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.anat-eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:850;color:var(--blue);margin:0}
.anat-muted{color:var(--muted);margin:6px 0 12px}
.anat-lead{margin:12px 0;line-height:1.6}
.anat-section-title{margin:26px 0 10px;color:var(--navy2);font-size:22px}
.anat-section-head{margin:26px 0 12px}
.anat-section-head h3{margin:4px 0 6px;color:var(--navy2);font-size:21px}
.anat-section-head p{margin:0;color:var(--muted)}
.anat-callout{background:var(--soft);border-left:5px solid var(--blue);border-radius:12px;padding:14px 16px;margin:14px 0;line-height:1.6}
.anat-figure{margin:16px 0}
.anat-figure .academy-image,.anat-tabpanel .academy-image{max-width:100%;width:auto}
.anat-figure figcaption{margin-top:8px;font-size:13px;color:var(--muted);line-height:1.5}
.anat-grid{display:grid;gap:14px;margin:14px 0}
.anat-grid--two{grid-template-columns:repeat(2,1fr)}
.anat-grid--three{grid-template-columns:repeat(3,1fr)}
.anat-grid--four{grid-template-columns:repeat(4,1fr)}
.anat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}
.anat-card h4{margin:0 0 6px;color:var(--navy2);font-size:16px}
.anat-card p{margin:0;color:var(--muted);line-height:1.55}
.anat-card--numbered{padding-top:20px;position:relative}
.anat-card-number{position:absolute;top:-12px;left:16px;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:850;font-size:14px}
.anat-panel{border-radius:14px;padding:16px 18px;margin:16px 0}
.anat-panel h4{margin:0 0 6px;color:var(--navy2);font-size:17px}
.anat-panel p{margin:0;line-height:1.6}
.anat-panel--teamwork{background:var(--soft);border:1px solid var(--line)}
.anat-panel--takeaway{background:var(--soft2);border-left:5px solid var(--green)}
.anat-panel--why{background:var(--soft);border-left:5px solid var(--blue)}
.anat-panel--summary{background:var(--soft2);border:1px solid var(--line)}
.anat-hero-strip{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:16px;padding:20px 22px;margin:16px 0}
.anat-hero-strip p{margin:0;line-height:1.6;color:#e2f1f8}
.anat-rank-row{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:14px 0}
.anat-rank-row li{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-weight:800;font-size:13px;color:var(--navy2)}

/* buttons */
.anat-btn{border-radius:10px;padding:10px 16px;font-weight:800;font-size:14px;cursor:pointer}
.anat-btn--primary{border:0;background:var(--orange);color:#fff}
.anat-btn--ghost{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.anat-btn[disabled]{opacity:.55;cursor:not-allowed}
.anat-activity-controls{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}

/* feedback */
.anat-feedback{margin:12px 0 0;padding:11px 13px;border-radius:11px;font-weight:700;line-height:1.5}
.anat-feedback:empty{display:none}
.anat-feedback.is-good{background:#e4f6ef;color:#08705c;border:1px solid #9fd9c8}
.anat-feedback.is-bad{background:#fde8e8;color:#963d3d;border:1px solid #eab7b7}
html[data-theme="dark"] .anat-feedback.is-good{background:#0f3b33;color:#8fe0cb;border-color:#1d6455}
html[data-theme="dark"] .anat-feedback.is-bad{background:#3d1f1f;color:#f0b3b3;border-color:#6d3535}

/* reveal + quick reference */
.anat-reveal,.anat-support{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 16px;margin:16px 0}
.anat-reveal>summary,.anat-support>summary{cursor:pointer;font-weight:800;color:var(--navy2);list-style:none}
.anat-reveal>summary::-webkit-details-marker,.anat-support>summary::-webkit-details-marker{display:none}
.anat-reveal>summary{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:space-between}
.anat-reveal-q{font-size:17px}
.anat-reveal-cta{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--orange)}
.anat-reveal[open] .anat-reveal-cta::after{content:" \2014 open"}
.anat-reveal>p,.anat-support>div{margin-top:12px}
.anat-reveal>p{line-height:1.6}

/* flip cards */
.anat-flip-grid{display:grid;gap:14px;margin:14px 0}
.anat-flip-grid--terms{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.anat-flip-grid--organs{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.anat-flip-grid--animals{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.anat-flip-card{border:0;background:none;padding:0;text-align:left;cursor:pointer;perspective:1100px}
.anat-flip-inner{display:grid;transform-style:preserve-3d;transition:transform .55s;height:100%}
.anat-flip-card.is-flipped .anat-flip-inner{transform:rotateY(180deg)}
.anat-flip-face{grid-area:1/1;display:flex;flex-direction:column;gap:7px;justify-content:center;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--panel);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.anat-flip-face strong{color:var(--navy2);font-size:16px;line-height:1.3}
.anat-flip-face span{color:var(--ink);font-size:13px;line-height:1.5}
.anat-flip-face p{margin:0;color:var(--ink);font-size:13px;line-height:1.5}
.anat-flip-face small,.anat-flip-face em{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-style:normal}
.anat-flip-front{background:var(--soft2)}
.anat-flip-back{transform:rotateY(180deg);background:var(--soft)}
.anat-flip-tag{align-self:flex-start;background:var(--blue);color:#fff;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:850;letter-spacing:.06em}
.anat-organ-icon{font-size:30px;line-height:1}
.anat-flip-card:hover .anat-flip-front{border-color:var(--blue)}

/* tabs */
.anat-tabs{margin:16px 0}
.anat-tablist{display:flex;flex-wrap:wrap;gap:8px}
.anat-tab{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:9px 16px;font-weight:800;font-size:13px;cursor:pointer}
.anat-tab.is-active{background:var(--navy2);border-color:var(--navy2);color:#fff}
.anat-tabpanels{display:block}
.anat-tabpanel{margin-top:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px}
.anat-direction-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}
.anat-direction-copy h4{margin:0 0 6px;color:var(--navy2);font-size:19px}
.anat-direction-copy p{margin:0;color:var(--muted);line-height:1.6}
.anat-direction-layout img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}

/* body-plane spinner */
.anat-spinner{margin:16px 0;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:18px}
.anat-spinner-layout{display:grid;grid-template-columns:270px 1fr;gap:22px;align-items:center}
.anat-wheel-column{display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;padding-top:16px}
.anat-wheel-pointer{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:16px solid var(--orange)}
.anat-wheel{position:relative;display:block;width:min(100%,240px);aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 4px var(--navy2);transition:transform 1s cubic-bezier(.17,.67,.2,1);background:conic-gradient(from -45deg,var(--blue) 0deg 90deg,var(--navy2) 90deg 180deg,var(--green) 180deg 270deg,var(--purple) 270deg 360deg)}
.anat-wheel-label{position:absolute;color:#fff;font-weight:850;font-size:12px;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.anat-wheel-label--median{top:12%;left:50%;transform:translateX(-50%)}
.anat-wheel-label--sagittal{right:7%;top:50%;transform:translateY(-50%)}
.anat-wheel-label--transverse{bottom:12%;left:50%;transform:translateX(-50%)}
.anat-wheel-label--dorsal{left:7%;top:50%;transform:translateY(-50%)}
.anat-spinner-remaining{margin:0;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.anat-spinner-result{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:18px;min-height:150px}
.anat-plane-result h4{margin:6px 0 10px;color:var(--navy2);font-size:20px}
.anat-plane-result p{margin:0 0 8px;line-height:1.6}
.anat-plane-result p:last-child{margin-bottom:0}
.anat-result-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:850;color:var(--orange)}

/* body-plane matching */
.anat-match{margin:16px 0}
.anat-match-bank{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.anat-match-card{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:13px;text-align:left;font-weight:700;font-size:13px;line-height:1.5;cursor:grab}
.anat-match-card:hover{border-color:var(--blue);background:var(--soft)}
.anat-match-card.is-selected{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange);background:var(--soft)}
.anat-match-card.is-dragging{opacity:.5}
.anat-match-card.is-assigned{opacity:.42;cursor:default}
.anat-match-zones{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.anat-match-zone{display:flex;flex-direction:column;gap:7px;align-items:flex-start;text-align:left;min-height:104px;border:2px dashed var(--line);background:var(--soft2);color:var(--ink);border-radius:14px;padding:14px;cursor:pointer}
.anat-match-zone strong{color:var(--navy2);font-size:15px}
.anat-match-slot{font-size:13px;line-height:1.5;color:var(--muted)}
.anat-match-zone.is-filled{border-style:solid;border-color:var(--blue);background:var(--soft)}
.anat-match-zone.is-filled .anat-match-slot{color:var(--ink);font-weight:700}
.anat-match-zone.is-over{border-color:var(--orange);background:var(--soft)}
.anat-match-zone.is-correct{border-color:var(--green);background:#e4f6ef}
.anat-match-zone.is-wrong{border-color:var(--red);background:#fde8e8}
html[data-theme="dark"] .anat-match-zone.is-correct{background:#0f3b33}
html[data-theme="dark"] .anat-match-zone.is-wrong{background:#3d1f1f}

/* taxonomy sequencing */
.anat-sequence{margin:16px 0;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:18px}
.anat-sequence h4{margin:0 0 4px;color:var(--navy2);font-size:18px}
.anat-seq-bank,.anat-seq-zone{display:flex;flex-wrap:wrap;gap:9px;min-height:52px;padding:11px;border-radius:12px;background:var(--soft2);border:1px dashed var(--line)}
.anat-seq-zone{margin:12px 0;border-style:solid;border-color:var(--blue);align-items:flex-start}
.anat-seq-zone.is-empty::before{content:attr(data-anat-empty);color:var(--muted);font-size:13px}
.anat-chip{border:1px solid var(--line);background:var(--panel);color:var(--navy2);border-radius:999px;padding:8px 15px;font-weight:800;font-size:13px;cursor:pointer}
.anat-chip:hover{border-color:var(--blue);background:var(--soft)}
.anat-seq-zone .anat-chip{background:var(--blue);border-color:var(--blue);color:#fff;cursor:default}

/* levels-of-organization timeline */
.anat-timeline{list-style:none;padding:0;margin:16px 0;display:grid;gap:14px}
.anat-timeline-item{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px}
.anat-timeline-number{width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,var(--navy2),var(--blue));color:#fff;display:grid;place-items:center;font-weight:850;font-size:17px}
.anat-timeline-body h4{margin:0 0 6px;color:var(--navy2);font-size:17px}
.anat-timeline-body p{margin:0 0 10px;line-height:1.6}
.anat-timeline-note{background:var(--soft);border-radius:10px;padding:10px 12px;font-size:13px;margin:0!important}
.anat-timeline-note strong{color:var(--navy2)}

/* Bella clinical scenario */
.anat-case-instruction{margin-bottom:14px}
.anat-case-instruction h4{margin:5px 0 6px;color:var(--navy2);font-size:21px;line-height:1.3}
.anat-hotspots{margin:12px 0}
.anat-dog{--anat-fur:#c79567;position:relative;width:min(100%,660px);aspect-ratio:22/10;margin:14px auto;background:var(--soft);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.anat-dog-body,.anat-dog-head,.anat-dog-tail,.anat-dog-leg{position:absolute;background:var(--anat-fur);display:block}
.anat-dog-body{left:19.697%;top:27.333%;width:59.091%;height:48.333%;border-radius:48% 44% 38% 42%}
.anat-dog-head{left:73.485%;top:16.667%;width:17.424%;height:35%;border-radius:48%}
.anat-dog-head::before{content:"";position:absolute;right:1.74%;top:40%;width:47.83%;height:40%;background:var(--anat-fur);border-radius:0 50% 50% 0}
.anat-dog-tail{left:9.545%;top:33.333%;width:14.394%;height:6%;border-radius:99px;transform:rotate(-22deg)}
.anat-dog-leg{bottom:-49.655%;width:7.692%;height:63.448%;border-radius:12px}
.anat-dog-leg--1{left:18.462%}
.anat-dog-leg--2{left:35.128%}
.anat-dog-leg--3{left:82.564%}
.anat-dog-leg--4{left:96.667%}
.anat-hotspot{position:absolute;border:3px solid #fff;background:rgba(18,155,210,.35);box-shadow:0 0 0 2px var(--navy);border-radius:50%;cursor:pointer;transition:transform .2s,background .2s;padding:0}
.anat-hotspot:hover{transform:scale(1.08);background:rgba(18,155,210,.58)}
.anat-hotspot[disabled]{cursor:default}
.anat-hotspot--cranial-abdomen{left:58.333%;top:46.667%;width:11.212%;height:23.333%}
.anat-hotspot--caudal-abdomen{left:31.061%;top:48.333%;width:11.212%;height:21.667%}
.anat-hotspot--thorax{left:68.939%;top:32%;width:10.606%;height:26%}
.anat-hotspot.is-correct{background:rgba(19,162,131,.7);box-shadow:0 0 0 3px var(--green)}
.anat-hotspot.is-wrong{background:rgba(198,83,83,.65);box-shadow:0 0 0 3px var(--red)}
.anat-case-complete{margin-top:18px;text-align:center;border:1px solid var(--line);border-radius:16px;background:var(--soft2);padding:22px}
.anat-case-complete h4{margin:8px 0 6px;color:var(--navy2);font-size:20px}
.anat-case-complete p{margin:0 0 14px;color:var(--muted)}
.anat-badge-medallion{font-size:44px;line-height:1}

/* focus visibility */
.anat-flip-card:focus-visible,.anat-tab:focus-visible,.anat-btn:focus-visible,.anat-chip:focus-visible,.anat-match-card:focus-visible,.anat-match-zone:focus-visible,.anat-hotspot:focus-visible,.anat-reveal>summary:focus-visible,.anat-support>summary:focus-visible,.anat-tabpanel:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* responsive */
@media(max-width:1100px){
 .anat-grid--four{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
 .anat-grid--three{grid-template-columns:repeat(2,1fr)}
 .anat-spinner-layout{grid-template-columns:1fr}
 .anat-direction-layout{grid-template-columns:1fr}
}
@media(max-width:640px){
 .anat-grid--two,.anat-grid--three,.anat-grid--four{grid-template-columns:1fr}
 .anat-match-zones{grid-template-columns:1fr}
 .anat-timeline-item{grid-template-columns:1fr}
 .anat-section-title{font-size:19px}
 .anat-case-instruction h4{font-size:18px}
 .anat-spinner,.anat-sequence{padding:14px}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
 .anat-flip-inner,.anat-wheel,.anat-hotspot{transition:none!important}
}

.l2-lesson-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.l2-progress-ring{width:96px;height:96px;border-width:8px;border-color:var(--line);border-top-color:var(--orange);background:var(--panel);color:var(--ink)}
.l2-progress-ring strong{font-size:24px}
.l2-progress-ring span{font-size:11px;max-width:62px}

/* ================= Triage Review lesson widgets ================= */
.triage-hero-strip{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:16px;padding:18px 20px;margin:16px 0}
.triage-hero-strip p{margin:0;color:#d8ecf7;line-height:1.6}
.triage-section{margin:18px 0}
.triage-section h3{margin:4px 0 8px;color:var(--navy2);font-size:22px}
.triage-section p{margin:0 0 12px;line-height:1.6}
.triage-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:850;color:var(--orange);margin:0}
.triage-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px}
.triage-card h4{margin:0 0 8px;color:var(--navy2);font-size:17px}
.triage-card p{margin:0;line-height:1.6}
.triage-card-grid{display:grid;gap:14px;margin:16px 0}
.triage-card-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.triage-card-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.triage-card-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.triage-list{margin:0;padding-left:18px;display:grid;gap:8px}
.triage-list li{line-height:1.55}
.triage-list--ordered{padding-left:22px}
.triage-list--ordered li{padding-left:2px}
.triage-small-note{margin-top:10px;font-size:12px;color:var(--muted)}
.triage-review-note{margin:16px 0;padding:13px 15px;border-radius:12px;background:var(--soft2);border:1px solid var(--line);line-height:1.6}
.triage-callout{margin-top:12px;padding:14px 16px;border-radius:14px;background:var(--soft);border-left:5px solid var(--blue)}
.triage-callout h4{margin:0 0 8px;color:var(--navy2);font-size:17px}
.triage-callout p,.triage-callout li{line-height:1.55}
.triage-callout--metrics{background:var(--soft2);border-left-color:var(--orange)}
.triage-callout--final{background:var(--panel);border:1px solid var(--line);border-left-color:var(--green)}
.triage-link-card{margin:16px 0;padding:16px 18px;border-radius:14px;background:var(--soft2);border:1px solid var(--line)}
.triage-link-card strong{display:block;color:var(--navy2)}
.triage-link-card p{margin:8px 0 10px;line-height:1.6}
.triage-link-card a{color:var(--blue);font-weight:800}
.triage-urgency-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:9px}
.triage-urgency-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--soft)}
.triage-urgency-list strong{min-width:62px;color:var(--navy2)}
.triage-urgency-list span{color:var(--ink);line-height:1.45}
.triage-video{margin:16px 0;border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}
.triage-video-frame{aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(135deg,#0d334b,#184c6a);color:#fff;font-size:20px;font-weight:850;letter-spacing:.04em;text-align:center;padding:20px}
.triage-video figcaption{padding:16px 18px}
.triage-video h3{margin:0 0 6px;color:var(--navy2);font-size:20px}
.triage-video-copy,.triage-video-meta{margin:0;line-height:1.55}
.triage-video-meta{margin-top:8px;font-size:13px;color:var(--muted)}
.triage-figure{margin:16px 0}
.triage-figure figcaption{margin-top:8px;font-size:13px;color:var(--muted);line-height:1.5}
.triage-figure-grid{display:grid;gap:16px;margin:16px 0}
.triage-figure-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.triage-figure-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.triage-media-callout{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:18px;align-items:start;margin:16px 0}
.triage-accordion-group{margin:20px 0}
.triage-accordion-group h4{margin:0 0 10px;color:var(--navy2);font-size:18px}
.triage-accordion{border:1px solid var(--line);border-radius:14px;background:var(--panel);margin-top:10px;overflow:hidden}
.triage-accordion summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none;font-weight:800;color:var(--navy2)}
.triage-accordion summary::-webkit-details-marker{display:none}
.triage-accordion-plus{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--blue);font-size:18px;flex:0 0 auto;transition:transform .2s ease}
.triage-accordion[open] .triage-accordion-plus{transform:rotate(45deg)}
.triage-accordion-body{padding:0 16px 16px;line-height:1.6}
.triage-accordion-body p{margin:0 0 10px}
.triage-accordion-body p:last-child{margin-bottom:0}
.triage-reference-list{margin:0;padding-left:20px;display:grid;gap:10px}
.triage-reference-list li{line-height:1.55}
.triage-reference-list a{color:var(--blue);font-weight:700}
.triage-manual-complete{margin-top:16px;padding:16px;border-radius:14px;background:var(--soft);border:1px solid var(--line)}
.triage-manual-complete p{margin:0 0 14px;line-height:1.6}
.triage-manual-actions{display:flex;gap:10px;flex-wrap:wrap}
.triage-module-result-actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}
.triage-module-status{margin:0 0 14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);line-height:1.5}
.triage-module-status.is-info{border-color:#9fd9c8;background:#e4f6ef;color:#08705c}
.triage-module-status.is-error{border-color:#f3bcbc;background:#fdecec;color:#a02020}
.triage-module-action:focus-visible,#l2ModuleModalTitle:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.triage-module-action[disabled]{opacity:.6;cursor:not-allowed}
.triage-check-group{display:grid;gap:10px}
.triage-check-option{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer}
.triage-check-option input{margin-top:3px;transform:scale(1.15)}
.triage-check-option span{line-height:1.55}
.triage-check-option.is-selected{border-color:var(--blue);background:var(--soft)}
.triage-check-option.is-correct{border-color:var(--green);background:#e5f7f1;color:#08705c}
.triage-check-option.is-wrong{border-color:var(--red);background:#fde8e8;color:#963d3d}
.triage-inline-submit{min-width:150px}
html[data-theme="dark"] .triage-hero-strip p{color:#d7e8f2}
html[data-theme="dark"] .triage-module-status{background:var(--soft2)}
html[data-theme="dark"] .triage-module-status.is-info{background:#0f3b33;color:#8fe0cb;border-color:#1d6455}
html[data-theme="dark"] .triage-module-status.is-error{background:#3d1f1f;color:#f0b3b3;border-color:#6d3535}
html[data-theme="dark"] .triage-check-option.is-correct{background:#0f3b33;color:#8fe0cb}
html[data-theme="dark"] .triage-check-option.is-wrong{background:#3d1f1f;color:#f0b3b3}

@media(max-width:780px){
 .l2-lesson-actions{justify-content:flex-start}
 .l2-progress-ring{width:80px;height:80px;border-width:7px}
 .l2-progress-ring strong{font-size:20px}
 .triage-card-grid--two,.triage-card-grid--three,.triage-card-grid--four,.triage-figure-grid--two,.triage-figure-grid--three,.triage-media-callout{grid-template-columns:1fr}
 .triage-urgency-list li{align-items:flex-start;flex-direction:column}
}
@media(max-width:640px){
 .triage-section h3{font-size:20px}
 .triage-video figcaption,.triage-card,.triage-link-card,.triage-manual-complete{padding:14px}
}
@media(prefers-reduced-motion:reduce){
 .triage-accordion-plus,.triage-video-frame,.triage-check-option,.triage-manual-actions .primary,.triage-manual-actions .secondary,.triage-module-action{transition:none!important}
}

/* ================= Clinical Diagnostics — Sample Collection lesson ================= */
.sc-hero-strip{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:16px;padding:18px 20px;margin:16px 0}
.sc-hero-strip p{margin:0;color:#d8ecf7;line-height:1.6}
.sc-section{margin:22px 0 12px}
.sc-section h3{margin:4px 0 8px;color:var(--navy2);font-size:22px}
.sc-section p{margin:0;line-height:1.6;color:var(--ink)}
.sc-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:850;color:var(--orange);margin:0}
.sc-term-grid{display:grid;gap:14px;margin:14px 0}
.sc-term-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.sc-term-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.sc-term-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.sc-term-card{border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:14px;background:var(--panel);padding:15px 16px}
.sc-term-card h4{margin:0 0 7px;color:var(--navy2);font-size:16px;line-height:1.3}
.sc-term-card p{margin:0;color:var(--muted);line-height:1.55}
.sc-callout{margin:16px 0;padding:15px 17px;border-radius:14px;background:var(--soft);border-left:5px solid var(--blue)}
.sc-callout h4{margin:0 0 8px;color:var(--navy2);font-size:17px}
.sc-callout p{margin:0;line-height:1.6}
.sc-callout--final{background:var(--soft2);border-left-color:var(--green)}
.sc-list{margin:0;padding-left:20px;display:grid;gap:7px}
.sc-list li{line-height:1.55}
.sc-list--ordered{padding-left:22px}
.sc-video{width:min(100%,760px)}
.sc-video-meta{margin:12px 0 0;color:var(--navy2);line-height:1.5}
.sc-video-copy{margin:6px 0 0;color:var(--muted);line-height:1.55;font-size:14px}
.sc-media-placeholder{margin:16px 0;border:1px dashed var(--line);border-radius:18px;background:var(--panel);overflow:hidden}
.sc-media-placeholder-frame{aspect-ratio:16/9;display:grid;place-content:center;gap:8px;text-align:center;background:repeating-linear-gradient(135deg,var(--soft),var(--soft) 14px,var(--soft2) 14px,var(--soft2) 28px);color:var(--navy2);padding:20px}
.sc-media-placeholder-frame p{margin:0;font-size:20px;font-weight:850}
.sc-media-placeholder-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:850;color:var(--orange)}
.sc-media-placeholder figcaption{padding:16px 18px}
.sc-media-placeholder figcaption h4{margin:0 0 6px;color:var(--navy2);font-size:18px}
.sc-media-placeholder figcaption p{margin:0 0 8px;line-height:1.6}
.sc-media-placeholder-status{font-size:13px;color:var(--muted)}
.sc-accordion-group{margin:16px 0;display:grid;gap:10px}
.sc-accordion{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.sc-accordion summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none;font-weight:800;color:var(--navy2)}
.sc-accordion summary::-webkit-details-marker{display:none}
.sc-accordion-title{line-height:1.4}
.sc-accordion-plus{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--blue);font-size:18px;flex:0 0 auto;transition:transform .2s ease}
.sc-accordion[open]{border-color:var(--blue)}
.sc-accordion[open] .sc-accordion-plus{transform:rotate(45deg)}
.sc-accordion-body{padding:0 16px 16px;line-height:1.6}
.sc-accordion-note{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:var(--soft);line-height:1.55}
.sc-tube-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:14px 0}
.sc-tube-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:15px 16px}
.sc-tube-card h4{margin:0 0 10px;color:var(--navy2);font-size:16px}
.sc-tube-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}
.sc-tube-dl dt{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:var(--orange);padding-top:2px}
.sc-tube-dl dd{margin:0;line-height:1.5;color:var(--ink)}
.sc-recap-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}
.sc-recap-item{display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:start;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.sc-recap-num{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--navy2);color:#fff;font-weight:850;font-size:14px}
.sc-recap-item h4{margin:0 0 6px;color:var(--navy2);font-size:16px}
.sc-recap-item p{margin:0;color:var(--muted);line-height:1.6}
.sc-accordion summary:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
html[data-theme="dark"] .sc-hero-strip p{color:#d7e8f2}
html[data-theme="dark"] .sc-media-placeholder-frame{color:#d7e8f2}
@media(max-width:980px){
 .sc-term-grid--three,.sc-term-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
 .sc-term-grid--two,.sc-term-grid--three,.sc-term-grid--four{grid-template-columns:1fr}
 .sc-section h3{font-size:20px}
 .sc-term-card,.sc-tube-card,.sc-recap-item,.sc-media-placeholder figcaption{padding:14px}
 .sc-recap-item{grid-template-columns:1fr;gap:8px}
}
@media(prefers-reduced-motion:reduce){
 .sc-accordion-plus{transition:none!important}
}

/* ========== Sample Collection — click-to-reveal flashcards, tube cards, step recap ========== */
.sc-flip-grid{align-items:stretch}
.sc-flip-card{display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;perspective:1100px;-webkit-tap-highlight-color:transparent}
.sc-flip-card:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:17px}
.sc-flip-inner{display:grid;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.sc-flip-card[aria-expanded="true"] .sc-flip-inner{transform:rotateY(180deg)}
.sc-flip-face{grid-area:1/1;display:flex;flex-direction:column;gap:8px;padding:16px 17px;border:1px solid var(--line);border-radius:14px;background:var(--panel);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.sc-flip-face--front{border-top:4px solid var(--blue)}
.sc-flip-face--back{transform:rotateY(180deg);background:var(--soft2);border-top:4px solid var(--navy2)}
.sc-flip-card:hover .sc-flip-face{border-color:var(--blue);box-shadow:0 8px 22px rgba(6,63,99,.12)}
.sc-flip-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:850;color:var(--orange)}
.sc-flip-title{color:var(--navy2);font-size:16px;font-weight:850;line-height:1.3}
.sc-flip-title--sm{font-size:14px}
.sc-flip-body{color:var(--ink);line-height:1.55;font-size:14px}
.sc-flip-cue{margin-top:auto;padding-top:6px;font-size:12px;font-weight:800;color:var(--navy2);display:inline-flex;align-items:center;gap:6px}
.sc-flip-cue::before{content:"\21BB";font-size:14px;color:var(--blue)}

/* Blood collection tubes — colour-coded, never colour alone */
.sc-flip-card--tube[data-sc-tube="red"]{--tube:#c0392b;--tube-tint:#fbeceb}
.sc-flip-card--tube[data-sc-tube="purple"]{--tube:#6b3fa0;--tube-tint:#f1ecf8}
.sc-flip-card--tube[data-sc-tube="green"]{--tube:#1e7a4d;--tube-tint:#e8f5ee}
.sc-flip-card--tube[data-sc-tube="blue"]{--tube:#1b6fa8;--tube-tint:#e8f2f9}
.sc-flip-card--tube[data-sc-tube="white"]{--tube:#ffffff;--tube-band:#c6d3db;--tube-tint:#f4f7f9}
.sc-flip-card--tube .sc-flip-face--front{border-top:8px solid var(--tube-band,var(--tube,var(--blue)));background:linear-gradient(180deg,var(--tube-tint,var(--panel)),var(--panel) 62%)}
.sc-flip-card--tube .sc-flip-face--back{border-top:8px solid var(--tube-band,var(--tube,var(--navy2)))}
.sc-tube-swatch{width:26px;height:26px;border-radius:8px;background:var(--tube,var(--blue));border:1px solid rgba(6,63,99,.4);box-shadow:inset 0 -6px 10px rgba(0,0,0,.12);flex:0 0 auto}
.sc-tube-swatch--sm{width:16px;height:16px;border-radius:5px}
.sc-flip-card--tube .sc-tube-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:start}
.sc-tube-dt{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:var(--orange);padding-top:2px}
.sc-tube-dd{line-height:1.5;color:var(--ink);font-size:14px}

/* Tube area layout: photo sits bottom-left, next to the White top card */
.sc-tube-layout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0;align-items:stretch}
.sc-tube-figure{grid-column:1/3;margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.sc-tube-figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.sc-tube-figure figcaption{padding:12px 14px;font-size:13px;line-height:1.5;color:var(--muted)}
.sc-tube-layout .sc-flip-card--tube[data-sc-tube="white"]{grid-column:3/5}

/* Fifteen-point recap, revealed one step at a time */
.sc-recap-stepper{margin:16px 0 0}
.sc-recap-progress{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:14px}
.sc-recap-progress span{display:block;height:100%;border-radius:999px;background:var(--blue);transition:width .3s ease}
.sc-recap-track{list-style:none;margin:0;padding:0;display:block}
.sc-recap-step{display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:start;padding:18px 18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.sc-recap-step[hidden]{display:none}
.sc-recap-step:focus{outline:3px solid var(--orange);outline-offset:3px}
.sc-recap-step:focus:not(:focus-visible){outline:none}
.sc-recap-step h4{margin:0 0 6px;color:var(--navy2);font-size:17px}
.sc-recap-step p{margin:0;color:var(--ink);line-height:1.6}
.sc-recap-step.is-entering{animation:scRecapIn .28s ease both}
@keyframes scRecapIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sc-recap-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.sc-recap-nav{display:inline-flex;align-items:center;gap:8px;min-width:120px;justify-content:center}
.sc-recap-nav[disabled]{opacity:.55;cursor:not-allowed}
.sc-recap-nav:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.sc-recap-arrow{font-size:16px;line-height:1}
.sc-recap-counter{margin:0;font-size:13px;font-weight:850;color:var(--navy2);letter-spacing:.02em}
.sc-recap-done{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--soft);border-left:5px solid var(--green);color:var(--ink);line-height:1.55}

/* Wide, responsive modal for the interactive Sample Collection modules */
dialog:has(.sc-flip-grid),dialog:has(.sc-tube-layout),dialog:has(.sc-recap-stepper){width:min(1040px,calc(100% - 32px))}

html[data-theme="dark"] .sc-flip-face--back{background:var(--soft)}
html[data-theme="dark"] .sc-flip-title{color:#bfe4f7}
html[data-theme="dark"] .sc-flip-cue{color:#bfe4f7}
html[data-theme="dark"] .sc-recap-counter,html[data-theme="dark"] .sc-recap-step h4{color:#bfe4f7}
html[data-theme="dark"] .sc-flip-card--tube[data-sc-tube="red"]{--tube-tint:#3a2020}
html[data-theme="dark"] .sc-flip-card--tube[data-sc-tube="purple"]{--tube-tint:#2b2340}
html[data-theme="dark"] .sc-flip-card--tube[data-sc-tube="green"]{--tube-tint:#153327}
html[data-theme="dark"] .sc-flip-card--tube[data-sc-tube="blue"]{--tube-tint:#16324a}
html[data-theme="dark"] .sc-flip-card--tube[data-sc-tube="white"]{--tube-tint:#25404f}
html[data-theme="dark"] .sc-tube-swatch{border-color:rgba(255,255,255,.55)}

@media(max-width:980px){
 .sc-tube-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sc-tube-figure{grid-column:1/3}
 .sc-tube-layout .sc-flip-card--tube[data-sc-tube="white"]{grid-column:auto}
}
@media(max-width:780px){
 .sc-tube-layout{grid-template-columns:1fr}
 .sc-tube-figure,.sc-tube-layout .sc-flip-card--tube[data-sc-tube="white"]{grid-column:auto}
 .sc-flip-face{padding:14px}
 .sc-recap-step{grid-template-columns:1fr;gap:8px;padding:15px}
 .sc-recap-controls{justify-content:flex-start}
 .sc-recap-nav{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){
 .sc-flip-inner,.sc-flip-face,.sc-recap-progress span{transition:none!important}
 .sc-recap-step.is-entering{animation:none!important}
}

/* ========== Medical Foundations — Understanding Canine Communication ========== */
.cc-hero-strip p{font-size:15px}
.cc-objectives{margin:16px 0;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:14px;background:var(--soft2)}
.cc-objectives .sc-kicker{margin-top:0}
.cc-objectives .sc-list{margin-bottom:0}
.cc-video{margin:18px 0}
.cc-media-placeholder{margin:18px 0}
.cc-media-placeholder code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--soft);border-radius:6px;padding:2px 6px}
.cc-safety{margin-top:20px}

/* Progressively revealed observation checklist */
.cc-watch{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow)}
.cc-watch-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.cc-watch-head .sc-kicker{margin:0}
.cc-watch-head h4{margin:4px 0 0;color:var(--navy2);font-size:18px;line-height:1.3}
.cc-watch-counter{margin:0;font-size:12px;font-weight:850;color:var(--muted);white-space:nowrap}
.cc-watch-lead{margin:10px 0 0;color:var(--muted);line-height:1.6;font-size:14px}
.cc-watch-progress{margin:12px 0 4px}
.cc-watch-progress span{transition:width .3s ease}
.cc-watch-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.cc-watch-item{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:13px 15px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:13px;background:var(--soft);animation:ccWatchIn .28s ease both}
.cc-watch-item:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.cc-watch-num{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:var(--navy2);color:#fff;font-size:12px;font-weight:850}
.cc-watch-body{display:grid;gap:4px}
.cc-watch-body strong{color:var(--navy2);font-size:15px;line-height:1.35}
.cc-watch-body span{line-height:1.6}
.cc-watch-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cc-watch-btn{min-height:44px;padding:11px 18px}
.cc-watch-btn:disabled{opacity:.5;cursor:not-allowed}
.cc-watch-done{margin:12px 0 0;padding:11px 13px;border-radius:11px;background:#e5f7f1;color:#08705c;font-weight:800;line-height:1.5}
@keyframes ccWatchIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Observation prompts */
.cc-prompt{margin:18px 0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--soft2)}
.cc-prompt .sc-kicker{margin-top:0}
.cc-prompt-q{margin:6px 0 12px;font-size:16px;font-weight:800;color:var(--navy2);line-height:1.45}
.cc-prompt-details{background:var(--panel)}

/* Paged assessment */
.cc-quiz-head{margin-top:16px}
.cc-quiz-head-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.cc-quiz-head-row .sc-kicker{margin:0}
.cc-quiz-counter{margin:0;font-size:13px;font-weight:850;color:var(--navy2)}
.cc-quiz-progress{margin:8px 0 0}
.cc-quiz-progress span{transition:width .3s ease}
.cc-quiz-paged .l2-quiz-question{border-left:4px solid var(--blue)}
.cc-quiz-paged .l2-quiz-question h4{font-size:16px;line-height:1.45}
.cc-quiz-paged .l2-quiz-question:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.l2-quiz-question.cc-quiz-current:focus,.l2-quiz-question.cc-quiz-current:focus-visible{outline:0}
.cc-quiz-paged .decision-option{min-height:44px}
.cc-quiz-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.cc-quiz-btn{min-height:44px;padding:11px 20px}
.cc-quiz-btn:disabled{opacity:.5;cursor:not-allowed}
.cc-quiz-hint{margin:0;flex:1 1 180px;text-align:center;font-size:12px;color:var(--muted)}
#l2QuizResult.cc-quiz-veiled{display:none}
html[data-theme="dark"] .cc-watch-done{background:rgba(19,162,131,.18);color:#8fe3cd}
html[data-theme="dark"] .cc-media-placeholder code{background:var(--soft2)}
dialog:has(.cc-quiz-nav),dialog:has(.cc-watch),dialog:has(.cc-video){width:min(1040px,calc(100% - 32px))}
@media(max-width:780px){
 .cc-watch{padding:15px}
 .cc-watch-counter{white-space:normal}
 .cc-watch-controls .cc-watch-btn{flex:1 1 100%}
 .cc-quiz-nav .cc-quiz-btn{flex:1 1 100%}
 .cc-quiz-hint{order:3;flex-basis:100%;text-align:left}
 .cc-prompt,.cc-objectives{padding:14px}
}
@media(prefers-reduced-motion:reduce){
 .cc-watch-item{animation:none!important}
 .cc-watch-progress span,.cc-quiz-progress span{transition:none!important}
}

/* Understanding Canine Communication — module modal heading scale.
   Scoped with :has() so only this lesson's modals are affected. */
dialog:has(.cc-hero-strip) .modal-title,
dialog:has(.cc-quiz-nav) .modal-title,
dialog:has(.cc-watch) .modal-title,
dialog:has(.cc-video) .modal-title{font-size:34px;line-height:1.15;margin:2px 0 4px;max-width:100%;overflow-wrap:break-word;word-break:normal;hyphens:none}
dialog:has(.cc-hero-strip) #l2ModuleModalTitle:focus,
dialog:has(.cc-quiz-nav) #l2ModuleModalTitle:focus,
dialog:has(.cc-watch) #l2ModuleModalTitle:focus,
dialog:has(.cc-video) #l2ModuleModalTitle:focus{outline:0}
dialog:has(.cc-hero-strip) #l2ModuleModalTitle:focus-visible,
dialog:has(.cc-quiz-nav) #l2ModuleModalTitle:focus-visible,
dialog:has(.cc-watch) #l2ModuleModalTitle:focus-visible,
dialog:has(.cc-video) #l2ModuleModalTitle:focus-visible{outline:0}
@media(max-width:780px){
  dialog:has(.cc-hero-strip) .modal-title,
  dialog:has(.cc-quiz-nav) .modal-title,
  dialog:has(.cc-watch) .modal-title,
  dialog:has(.cc-video) .modal-title{font-size:29px;line-height:1.18}
  dialog:has(.cc-hero-strip) .section-head h2,
  dialog:has(.cc-quiz-nav) .section-head h2,
  dialog:has(.cc-watch) .section-head h2,
  dialog:has(.cc-video) .section-head h2{font-size:19px;line-height:1.25}
}

/* ========== Clinical Diagnostics — Imaging Support ========== */
.ims-hero p{margin:0}
.ims-scope{border:1px solid var(--line);border-left:4px solid var(--navy2);background:var(--soft2);border-radius:14px;padding:16px 18px;margin:18px 0}
.ims-scope .sc-kicker{margin:0 0 10px}
.ims-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ims-scope h4{margin:0 0 6px;font-size:14px}
.ims-scope-do h4::before{content:"✓ ";color:var(--green)}
.ims-scope-dont h4::before{content:"✕ ";color:var(--red)}
.ims-scope .sc-list li{font-size:13px;line-height:1.5}
.ims-objectives{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:18px 0;background:var(--panel)}
.ims-objectives .sc-kicker{margin:0 0 8px}
.ims-callout--warn{border-left:4px solid var(--orange)}
.ims-boundary{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:13px;line-height:1.55}
.ims-card-grid{margin:14px 0}
.ims-card h4{font-size:14px}
.ims-card--alara h4{color:var(--navy2)}
.ims-figure{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft2)}
.ims-figure figcaption{margin-top:10px;font-size:13px;line-height:1.55;color:var(--ink)}
.ims-figure--icon .academy-image{max-width:min(100%,160px)}
.ims-credit{display:block;margin-top:6px;font-size:11.5px;color:var(--muted)}
.ims-credit a{color:var(--blue)}
.ims-img-fallback{margin:0;padding:14px;border:1px dashed var(--line);border-radius:12px;font-size:13px;color:var(--muted)}
.ims-figure-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.ims-figure-pair .ims-figure{margin:18px 0 0}
.ims-video{margin:18px 0}
.ims-video-meta{margin:10px 0 4px;font-size:13px}
.ims-video-copy{margin:0;font-size:12.5px;line-height:1.55;color:var(--muted)}
.ims-video-copy a{color:var(--blue)}
.ims-sources{margin-top:20px}
.ims-sources .sc-list li{font-size:13px}
.ims-source-book{color:var(--muted)}
.ims-optional{margin:18px 0}

/* Shared widget chrome */
.ims-widget{border:1px solid var(--line);border-radius:16px;padding:18px;margin:18px 0;background:var(--panel)}
.ims-widget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ims-widget-head h4{margin:2px 0 0;font-size:17px;line-height:1.3}
.ims-widget-head .sc-kicker{margin:0}
.ims-counter{margin:0;font-size:13px;font-weight:850;color:var(--navy2)}
.ims-widget-intro{margin:10px 0 12px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.ims-widget-intro kbd{font:inherit;font-size:12px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 5px;background:var(--soft2)}
.ims-progress{margin:0 0 14px;height:8px;border-radius:999px;overflow:hidden;background:var(--soft)}
.ims-progress span{display:block;height:100%;background:var(--blue);transition:width .3s ease}
.ims-btn{min-height:44px;padding:11px 18px}
.ims-btn:disabled{opacity:.5;cursor:not-allowed}
.ims-btn:focus-visible,.ims-opt:focus-visible,.ims-hotspot:focus-visible,.ims-sort-item:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.ims-widget-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.ims-widget-actions .ims-btn{flex:0 1 auto}
.ims-summary{margin-top:14px;padding:14px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}
.ims-summary p{margin:0 0 8px;font-size:13.5px;line-height:1.6}
.ims-summary-note{margin:8px 0 0;font-size:12.5px;color:var(--muted);line-height:1.55}
.ims-summary:focus{outline:0}
.ims-feedback{margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--soft2);font-size:13.5px;line-height:1.6}
.ims-feedback p{margin:0 0 6px}
.ims-feedback p:last-child{margin-bottom:0}
.ims-feedback .sc-list{margin:8px 0 0}
.ims-feedback .sc-list li{font-size:13px}
.ims-feedback.is-good{border-left:4px solid var(--green)}
.ims-feedback.is-bad{border-left:4px solid var(--orange)}
.ims-feedback:focus{outline:0}

/* Paged practice questions */
.ims-q-list{list-style:none;margin:0;padding:0}
.ims-q-group{margin:0 0 4px;font-size:11px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.ims-q-stem{margin:0 0 6px;font-size:16px;line-height:1.45}
.ims-q-stem:focus{outline:0}
.ims-q-prompt{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.ims-opt-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ims-opt{width:100%;min-height:44px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45}
.ims-opt:hover:not(:disabled){border-color:var(--blue)}
.ims-opt:disabled{cursor:default}
.ims-opt.is-correct{border-color:var(--green);background:rgba(19,162,131,.1)}
.ims-opt.is-correct::before{content:"✓ ";font-weight:900;color:var(--green)}
.ims-opt.is-wrong{border-color:var(--red);background:rgba(198,83,83,.1)}
.ims-opt.is-wrong::before{content:"✕ ";font-weight:900;color:var(--red)}
.ims-opt.is-chosen{box-shadow:inset 0 0 0 1px var(--ink)}

/* ALARA room sweep */
.ims-room-plan{position:relative;aspect-ratio:16/9;border:1px solid var(--line);border-radius:14px;background:var(--soft2);overflow:hidden;margin-bottom:14px}
.ims-room-shell{position:absolute;inset:0}
.ims-room-table{position:absolute;left:36%;top:44%;width:30%;height:26%;border:2px solid var(--navy2);border-radius:8px;background:var(--soft)}
.ims-room-tube{position:absolute;left:47.5%;top:26%;width:5%;aspect-ratio:1;border-radius:50%;border:2px solid var(--navy2);background:var(--panel)}
.ims-room-beam{position:absolute;left:41%;top:31%;width:18%;height:16%;background:linear-gradient(180deg,rgba(18,155,210,.28),rgba(18,155,210,.05));clip-path:polygon(38% 0,62% 0,100% 100%,0 100%)}
.ims-room-barrier{position:absolute;left:56%;top:6%;width:22%;height:6px;border-radius:4px;background:var(--navy)}
.ims-room-door{position:absolute;right:2%;top:64%;width:6px;height:22%;border-radius:3px;background:var(--orange)}
.ims-room-shelf{position:absolute;left:6%;top:64%;width:14%;height:6px;border-radius:3px;background:var(--muted)}
.ims-room-tag{position:absolute;font-size:10.5px;font-weight:800;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.ims-room-tag--table{left:36%;top:72%}
.ims-room-tag--tube{left:54%;top:27%}
.ims-room-tag--barrier{left:56%;top:1%}
.ims-room-tag--door{right:2%;top:88%}
.ims-room-tag--shelf{left:6%;top:57%}
.ims-hotspot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;min-height:44px;max-width:min(46%,320px);padding:8px 12px;border:2px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);text-align:left;box-shadow:var(--shadow)}
.ims-hotspot:hover{border-color:var(--blue)}
.ims-hotspot-num{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:12px;font-weight:900}
.ims-hotspot-label{font-size:12.5px;line-height:1.35;font-weight:700}
.ims-hotspot-status{font-size:12px;font-weight:900;white-space:nowrap}
.ims-hotspot.is-hazard{border-color:var(--red);background:rgba(198,83,83,.12)}
.ims-hotspot.is-hazard .ims-hotspot-status{color:#a13c3c}
.ims-hotspot.is-safe{border-color:var(--green);background:rgba(19,162,131,.12)}
.ims-hotspot.is-safe .ims-hotspot-status{color:#0d7a62}
.ims-room-log{list-style:none;margin:0 0 4px;padding:0;display:grid;gap:8px}
.ims-room-log-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.55;background:var(--soft2)}
.ims-room-log-item.is-hazard{border-left:4px solid var(--red)}
.ims-room-log-item.is-safe{border-left:4px solid var(--green)}

/* Ultrasound prep sort */
.ims-sort-bank{list-style:none;margin:0 0 14px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;border:1px dashed var(--line);border-radius:12px;background:var(--soft2);min-height:60px}
.ims-sort-item{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:10px 12px;font-size:13px;line-height:1.4;text-align:left}
.ims-sort-item[aria-pressed="true"]{border-color:var(--orange);box-shadow:inset 0 0 0 2px var(--orange)}
.ims-sort-item.is-correct{border-left:4px solid var(--green)}
.ims-sort-item.is-wrong{border-left:4px solid var(--red)}
.ims-sort-result{font-weight:900;font-size:12px}
.ims-sort-item.is-correct .ims-sort-result{color:#0d7a62}
.ims-sort-item.is-wrong .ims-sort-result{color:#a13c3c}
.ims-sort-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ims-sort-bucket{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft2);display:flex;flex-direction:column}
.ims-sort-bucket h4{margin:0 0 4px;font-size:14px}
.ims-sort-bucket p{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.5}
.ims-sort-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px;flex:1;min-height:44px}
.ims-sort-place{width:100%;font-size:13px;margin-top:auto}

/* Advanced imaging time-out */
.ims-timeout-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ims-check{min-height:44px;align-items:flex-start}
.ims-check.is-correct{border-color:var(--green);background:rgba(19,162,131,.1)}
.ims-check.is-wrong{border-color:var(--red);background:rgba(198,83,83,.1)}

/* Plain HTML/CSS diagrams */
.ims-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.ims-plan{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft2)}
.ims-plan-num{flex:0 0 auto;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900;font-size:13px}
.ims-plan h4{margin:0 0 4px;font-size:14px}
.ims-plan p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.ims-rule{display:flex;align-items:stretch;gap:10px;margin:16px 0;flex-wrap:wrap}
.ims-rule-step{flex:1 1 210px;display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft2)}
.ims-rule-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900;font-size:13px}
.ims-rule-step h4{margin:0 0 4px;font-size:14px}
.ims-rule-step p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.ims-rule-arrow{align-self:center;color:var(--orange);font-weight:900;font-size:20px}
.ims-credits{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:16px 0;background:var(--soft2)}
.ims-credits h4{margin:14px 0 6px;font-size:14px}
.ims-credits h4:first-child{margin-top:0}
.ims-credits .sc-list li{font-size:12.5px;line-height:1.6}
.ims-credit-note{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.55}

.ims-q-part{display:inline-block;margin:0 0 6px 6px;vertical-align:baseline;font-size:10.5px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.ims-q-text{display:block}
/* Lesson links: AA-contrast blue in both themes, scoped to this lesson only */
dialog:has(.ims-scope) #modalContent a{color:var(--navy2);text-decoration:underline;text-underline-offset:2px}
dialog:has(.ims-scope) #modalContent a:hover{color:var(--orange)}
dialog:has(.ims-scope) #modalContent a:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
html[data-theme="dark"] dialog:has(.ims-scope) #modalContent a{color:#7fd0f0}
/* Dark theme */
html[data-theme="dark"] .ims-opt.is-correct{background:rgba(19,162,131,.2)}
html[data-theme="dark"] .ims-opt.is-wrong{background:rgba(198,83,83,.22)}
html[data-theme="dark"] .ims-hotspot.is-hazard .ims-hotspot-status{color:#f4a3a3}
html[data-theme="dark"] .ims-hotspot.is-safe .ims-hotspot-status{color:#8fe3cd}
html[data-theme="dark"] .ims-sort-item.is-correct .ims-sort-result{color:#8fe3cd}
html[data-theme="dark"] .ims-sort-item.is-wrong .ims-sort-result{color:#f4a3a3}
html[data-theme="dark"] .ims-room-table,html[data-theme="dark"] .ims-room-tube{border-color:var(--blue)}

/* Wide modal for this lesson so text and media are never clipped */
dialog:has(.ims-scope){width:min(1120px,calc(100% - 32px))}
dialog:has(.ims-scope) .modal-title{font-size:34px;line-height:1.15;margin:2px 0 4px;max-width:100%;overflow-wrap:break-word;hyphens:none}
dialog:has(.ims-scope) #l2ModuleModalTitle:focus,dialog:has(.ims-scope) #l2ModuleModalTitle:focus-visible{outline:0}
dialog:has(.ims-scope) .academy-video{width:100%}

@media(max-width:980px){
 .ims-scope-grid,.ims-figure-pair,.ims-plan-grid{grid-template-columns:1fr}
 .ims-sort-buckets{grid-template-columns:1fr}
}
@media(max-width:820px){
 .ims-room-plan{aspect-ratio:auto;display:flex;flex-direction:column;gap:8px;padding:12px}
 .ims-room-shell{display:none}
 .ims-hotspot{position:static;transform:none;max-width:100%;width:100%;border-radius:12px;flex-wrap:wrap}
}
@media(max-width:780px){
 dialog:has(.ims-scope) .modal-title{font-size:28px;line-height:1.18}
 dialog:has(.ims-scope) .section-head h2{font-size:19px;line-height:1.25}
 .ims-widget{padding:14px}
 .ims-widget-actions .ims-btn,.ims-widget-head .ims-counter{flex:1 1 100%}
 .ims-scope,.ims-objectives,.ims-credits{padding:14px}
 .ims-rule-arrow{display:none}
}
@media(prefers-reduced-motion:reduce){
 .ims-progress span,.ims-opt,.ims-hotspot,.ims-sort-item{transition:none!important}
}

/* ========== Clinical Diagnostics — Case Presentation ========== */
.cp-hero p{margin:0}
.cp-scope{border:1px solid var(--line);border-left:4px solid var(--navy2);background:var(--soft2);border-radius:14px;padding:16px 18px;margin:18px 0}
.cp-scope .sc-kicker{margin:0 0 10px}
.cp-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cp-scope h4{margin:0 0 6px;font-size:14px}
.cp-scope-do h4::before{content:"✓ ";color:var(--green)}
.cp-scope-dont h4::before{content:"✕ ";color:var(--red)}
.cp-scope .sc-list li{font-size:13px;line-height:1.5}
.cp-objectives{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:18px 0;background:var(--panel)}
.cp-objectives .sc-kicker{margin:0 0 8px}
.cp-boundary{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:13px;line-height:1.55}
.cp-callout--warn{border-left:4px solid var(--orange)}

/* Patient chart strip and signalment chips */
.cp-chart{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:18px 0;background:var(--panel)}
.cp-chart-top{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;padding:12px 16px;background:var(--navy);color:#fff}
.cp-chart-top strong{font-size:16px;letter-spacing:.01em}
.cp-chart-top span{font-size:12.5px;opacity:.92}
.cp-chart-body{padding:14px 16px}
.cp-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0}
.cp-chip{display:inline-flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;padding:7px 11px;background:var(--soft2);min-width:96px}
.cp-chip b{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:850}
.cp-chip span{font-size:13.5px;font-weight:700;color:var(--ink)}
.cp-chart-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cp-chart-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;border-top:1px solid var(--line);padding-top:8px;font-size:13.5px;line-height:1.55}
.cp-chart-row b{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cp-chart-row.is-flagged{background:var(--soft);border-radius:8px;padding:8px;border-top-color:transparent}
.cp-chart-row.is-flagged b::after{content:" ▲ abnormal";color:var(--orange);letter-spacing:0;text-transform:none;font-weight:850}

/* SBAR / I-PASS column layouts */
.cp-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.cp-columns--five{grid-template-columns:repeat(5,minmax(0,1fr))}
.cp-column{border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:12px;padding:13px;background:var(--soft2);display:flex;flex-direction:column;gap:6px}
.cp-column--ipass{border-top-color:var(--orange)}
.cp-col-letter{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900;font-size:15px}
.cp-column h4{margin:0;font-size:14px}
.cp-column p{margin:0;font-size:12.5px;line-height:1.55;color:var(--muted)}
.cp-column .cp-col-eg{color:var(--ink);font-style:italic}

/* Shared widget chrome */
.cp-widget{border:1px solid var(--line);border-radius:16px;padding:18px;margin:18px 0;background:var(--panel)}
.cp-widget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cp-widget-head h4{margin:2px 0 0;font-size:17px;line-height:1.3}
.cp-widget-head .sc-kicker{margin:0}
.cp-counter{margin:0;font-size:13px;font-weight:850;color:var(--navy2)}
.cp-widget-intro{margin:10px 0 12px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.cp-widget-intro kbd{font:inherit;font-size:12px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 5px;background:var(--soft2)}
.cp-progress{margin:0 0 14px;height:8px;border-radius:999px;overflow:hidden;background:var(--soft)}
.cp-progress span{display:block;height:100%;background:var(--blue);transition:width .3s ease}
.cp-btn{min-height:44px;padding:11px 18px}
.cp-btn:disabled{opacity:.5;cursor:not-allowed}
.cp-btn:focus-visible,.cp-opt:focus-visible,.cp-sort-item:focus-visible,.cp-choice:focus-visible,.cp-step:focus-visible,.cp-rung-opt:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.cp-widget-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.cp-summary{margin-top:14px;padding:14px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}
.cp-summary p{margin:0 0 8px;font-size:13.5px;line-height:1.6}
.cp-summary-note{margin:8px 0 0;font-size:12.5px;color:var(--muted);line-height:1.55}
.cp-summary:focus{outline:0}
.cp-feedback{margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--soft2);font-size:13.5px;line-height:1.6}
.cp-feedback p{margin:0 0 6px}
.cp-feedback p:last-child{margin-bottom:0}
.cp-feedback .sc-list{margin:8px 0 0}
.cp-feedback .sc-list li{font-size:13px}
.cp-feedback.is-good{border-left:4px solid var(--green)}
.cp-feedback.is-bad{border-left:4px solid var(--orange)}
.cp-feedback:focus{outline:0}

/* Paged practice questions */
.cp-q-list{list-style:none;margin:0;padding:0}
.cp-q-group{margin:0 0 4px;font-size:11px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.cp-q-stem{margin:0 0 6px;font-size:16px;line-height:1.45}
.cp-q-stem:focus{outline:0}
.cp-q-prompt{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.cp-opt-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cp-opt{width:100%;min-height:44px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45}
.cp-opt:hover:not(:disabled){border-color:var(--blue)}
.cp-opt:disabled{cursor:default}
.cp-opt.is-correct{border-color:var(--green);background:rgba(19,162,131,.1)}
.cp-opt.is-correct::before{content:"✓ ";font-weight:900;color:var(--green)}
.cp-opt.is-wrong{border-color:var(--red);background:rgba(198,83,83,.1)}
.cp-opt.is-wrong::before{content:"✕ ";font-weight:900;color:var(--red)}
.cp-opt.is-chosen{box-shadow:inset 0 0 0 1px var(--ink)}

/* Relevance queue / classification sort */
.cp-sort-bank{list-style:none;margin:0 0 14px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;border:1px dashed var(--line);border-radius:12px;background:var(--soft2);min-height:60px}
.cp-sort-item{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:10px 12px;font-size:13px;line-height:1.4;text-align:left;max-width:100%}
.cp-sort-item[aria-pressed="true"]{border-color:var(--orange);box-shadow:inset 0 0 0 2px var(--orange)}
.cp-sort-item.is-correct{border-left:4px solid var(--green)}
.cp-sort-item.is-wrong{border-left:4px solid var(--red)}
.cp-sort-result{font-weight:900;font-size:12px;display:block;margin-top:4px}
.cp-sort-item.is-correct .cp-sort-result{color:#0d7a62}
.cp-sort-item.is-wrong .cp-sort-result{color:#a13c3c}
.cp-sort-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cp-sort-buckets--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cp-sort-bucket{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft2);display:flex;flex-direction:column}
.cp-sort-bucket h4{margin:0 0 4px;font-size:14px}
.cp-sort-bucket p{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.5}
.cp-sort-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px;flex:1;min-height:44px}
.cp-sort-place{width:100%;font-size:13px;margin-top:auto}

/* Presentation builder */
.cp-builder-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.cp-slot{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft2)}
.cp-slot-label{margin:0 0 2px;font-size:11px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.cp-slot-title{margin:0 0 4px;font-size:16px;line-height:1.35}
.cp-slot-title:focus{outline:0}
.cp-slot-hint{margin:0 0 10px;font-size:12.5px;line-height:1.55;color:var(--muted)}
.cp-choice-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cp-choice{width:100%;min-height:44px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5}
.cp-choice:hover{border-color:var(--blue)}
.cp-choice.is-correct{border-color:var(--green);background:rgba(19,162,131,.1)}
.cp-choice.is-correct::before{content:"✓ ";font-weight:900;color:var(--green)}
.cp-choice.is-wrong{border-color:var(--red);background:rgba(198,83,83,.1)}
.cp-choice.is-wrong::before{content:"✕ ";font-weight:900;color:var(--red)}
.cp-script-panel{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel);position:sticky;top:0}
.cp-script-panel h4{margin:0 0 8px;font-size:14px}
.cp-script{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cp-script-line{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.55;border-left:3px solid var(--blue);padding-left:10px}
.cp-script-tag{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:850;color:var(--muted);padding-top:2px}
.cp-script-empty{margin:0;font-size:12.5px;color:var(--muted);line-height:1.55}
.cp-model{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--soft);font-size:13px;line-height:1.6}
.cp-model:focus{outline:0}
.cp-model p{margin:0 0 8px}
.cp-model p:last-child{margin-bottom:0}
.cp-timer{margin-top:14px;border:1px dashed var(--line);border-radius:12px;padding:12px 14px;background:var(--soft2)}
.cp-timer h4{margin:0 0 4px;font-size:13.5px}
.cp-timer p{margin:0 0 10px;font-size:12.5px;color:var(--muted);line-height:1.55}
.cp-timer-display{margin:0 0 10px;font-size:14px;font-weight:850;color:var(--navy2)}
.cp-timer-actions{display:flex;gap:10px;flex-wrap:wrap}

/* Closed-loop sequence */
.cp-seq-options{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.cp-step{width:100%;min-height:44px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5}
.cp-step:hover:not(:disabled){border-color:var(--blue)}
.cp-step.is-placed{opacity:.62;border-style:dashed}
.cp-step.is-placed::before{content:"✓ placed — ";font-weight:900;color:var(--green)}
.cp-seq-track{list-style:none;margin:0 0 4px;padding:0;display:grid;gap:8px}
.cp-seq-placed{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.55;background:var(--soft2)}
.cp-seq-num{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:12px;font-weight:900}

/* PACE ladder */
.cp-ladder-map{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.cp-ladder-step{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--soft2);font-size:13px;line-height:1.55}
.cp-ladder-letter{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--orange);color:#fff;font-weight:900;font-size:13px}
.cp-ladder-step b{display:block;font-size:13.5px}
.cp-rung{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft2)}
.cp-rung.is-cleared{border-left:4px solid var(--green)}
.cp-rung-title{margin:0 0 4px;font-size:16px;line-height:1.35}
.cp-rung-title:focus{outline:0}
.cp-rung-scene{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--muted)}
.cp-rung-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cp-rung-opt{width:100%;min-height:44px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5}
.cp-rung-opt:hover{border-color:var(--blue)}
.cp-rung-opt.is-correct{border-color:var(--green);background:rgba(19,162,131,.1)}
.cp-rung-opt.is-correct::before{content:"✓ ";font-weight:900;color:var(--green)}
.cp-rung-opt.is-wrong{border-color:var(--red);background:rgba(198,83,83,.1)}
.cp-rung-opt.is-wrong::before{content:"✕ ";font-weight:900;color:var(--red)}
.cp-ladder-status{margin:0 0 12px;font-size:13px;font-weight:700;color:var(--ink);border-left:4px solid var(--orange);padding-left:10px;line-height:1.55}

/* Plain HTML/CSS diagrams, video, sources */
.cp-rule{display:flex;align-items:stretch;gap:10px;margin:16px 0;flex-wrap:wrap}
.cp-rule-step{flex:1 1 200px;display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft2)}
.cp-rule-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900;font-size:13px}
.cp-rule-step h4{margin:0 0 4px;font-size:14px}
.cp-rule-step p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.cp-rule-arrow{align-self:center;color:var(--orange);font-weight:900;font-size:20px}
.cp-video{margin:18px 0}
.cp-video-meta{margin:10px 0 4px;font-size:13px}
.cp-video-copy{margin:0;font-size:12.5px;line-height:1.55;color:var(--muted)}
.cp-sources{margin-top:20px}
.cp-sources .sc-list li{font-size:13px}
.cp-credits{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:16px 0;background:var(--soft2)}
.cp-credits h4{margin:14px 0 6px;font-size:14px}
.cp-credits h4:first-child{margin-top:0}
.cp-credits .sc-list li{font-size:12.5px;line-height:1.6}
.cp-credit-note{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.55}
.cp-q-part{display:inline-block;margin:0 0 6px 6px;vertical-align:baseline;font-size:10.5px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.cp-q-text{display:block}

/* Lesson links: AA-contrast in both themes, scoped to this lesson only */
dialog:has(.cp-scope) #modalContent a{color:var(--navy2);text-decoration:underline;text-underline-offset:2px}
dialog:has(.cp-scope) #modalContent a:hover{color:var(--orange)}
dialog:has(.cp-scope) #modalContent a:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
html[data-theme="dark"] dialog:has(.cp-scope) #modalContent a{color:#7fd0f0}
html[data-theme="dark"] .cp-opt.is-correct,html[data-theme="dark"] .cp-choice.is-correct,html[data-theme="dark"] .cp-rung-opt.is-correct{background:rgba(19,162,131,.2)}
html[data-theme="dark"] .cp-opt.is-wrong,html[data-theme="dark"] .cp-choice.is-wrong,html[data-theme="dark"] .cp-rung-opt.is-wrong{background:rgba(198,83,83,.22)}
html[data-theme="dark"] .cp-sort-item.is-correct .cp-sort-result{color:#8fe3cd}
html[data-theme="dark"] .cp-sort-item.is-wrong .cp-sort-result{color:#f4a3a3}
html[data-theme="dark"] .cp-chart-top{background:#0b2b3f}

/* Wide modal for this lesson so builders, text and video are never clipped */
dialog:has(.cp-scope){width:min(1120px,calc(100% - 32px))}
dialog:has(.cp-scope) .modal-title{font-size:34px;line-height:1.15;margin:2px 0 4px;max-width:100%;overflow-wrap:break-word;hyphens:none}
dialog:has(.cp-scope) #l2ModuleModalTitle:focus,dialog:has(.cp-scope) #l2ModuleModalTitle:focus-visible{outline:0}
dialog:has(.cp-scope) .academy-video{width:100%}

@media(max-width:980px){
 .cp-scope-grid,.cp-builder-layout{grid-template-columns:1fr}
 .cp-columns,.cp-columns--five{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cp-sort-buckets,.cp-sort-buckets--two{grid-template-columns:1fr}
 .cp-script-panel{position:static}
}
@media(max-width:780px){
 dialog:has(.cp-scope) .modal-title{font-size:28px;line-height:1.18}
 dialog:has(.cp-scope) .section-head h2{font-size:19px;line-height:1.25}
 .cp-widget{padding:14px}
 .cp-widget-actions .cp-btn,.cp-widget-head .cp-counter{flex:1 1 100%}
 .cp-scope,.cp-objectives,.cp-credits{padding:14px}
 .cp-columns,.cp-columns--five{grid-template-columns:1fr}
 .cp-chart-row,.cp-script-line{grid-template-columns:1fr;gap:2px}
 .cp-rule-arrow{display:none}
 .cp-sort-item{width:100%}
}
@media(prefers-reduced-motion:reduce){
 .cp-progress span,.cp-opt,.cp-choice,.cp-sort-item,.cp-step,.cp-rung-opt{transition:none!important}
}

/* Case Presentation — AA contrast for secondary text (light theme uses a darker muted than the shared token) */
.cp-widget-intro,.cp-slot-hint,.cp-column p,.cp-rule-step p,.cp-sort-bucket p,.cp-timer p,
.cp-video-copy,.cp-script-empty,.cp-summary-note,.cp-credit-note,.cp-chip b,.cp-chart-row b,
.cp-script-tag,.cp-rung-scene,.cp-sources .sc-list li,.cp-credits .sc-list li,.cp-q-prompt{color:#596b79}
html[data-theme="dark"] .cp-widget-intro,html[data-theme="dark"] .cp-slot-hint,html[data-theme="dark"] .cp-column p,
html[data-theme="dark"] .cp-rule-step p,html[data-theme="dark"] .cp-sort-bucket p,html[data-theme="dark"] .cp-timer p,
html[data-theme="dark"] .cp-video-copy,html[data-theme="dark"] .cp-script-empty,html[data-theme="dark"] .cp-summary-note,
html[data-theme="dark"] .cp-credit-note,html[data-theme="dark"] .cp-chip b,html[data-theme="dark"] .cp-chart-row b,
html[data-theme="dark"] .cp-script-tag,html[data-theme="dark"] .cp-rung-scene,html[data-theme="dark"] .cp-sources .sc-list li,
html[data-theme="dark"] .cp-credits .sc-list li,html[data-theme="dark"] .cp-q-prompt{color:var(--muted)}
html[data-theme="dark"] .cp-counter,html[data-theme="dark"] .cp-timer-display{color:#7fd0f0}
dialog:has(.cp-scope) .triage-module-action,dialog:has(.cp-scope) .triage-manual-actions button{min-height:44px}
/* Case Presentation — AA accent text, scoped to this lesson's modal only */
dialog:has(.cp-scope) .sc-kicker,dialog:has(.cp-scope) .academy-video-label,
dialog:has(.cp-scope) .eyebrow{color:#a8500f}
.cp-q-group,.cp-slot-label{color:var(--navy2)}
html[data-theme="dark"] dialog:has(.cp-scope) .sc-kicker,
html[data-theme="dark"] dialog:has(.cp-scope) .academy-video-label,
html[data-theme="dark"] dialog:has(.cp-scope) .eyebrow{color:#f0994f}
html[data-theme="dark"] dialog:has(.cp-scope) .sc-section h3,
html[data-theme="dark"] dialog:has(.cp-scope) .sc-accordion-title,
html[data-theme="dark"] .cp-q-group,html[data-theme="dark"] .cp-slot-label{color:#7fd0f0}
html[data-theme="dark"] dialog:has(.cp-scope) .triage-card h4,
html[data-theme="dark"] dialog:has(.cp-scope) .sc-callout h4,
html[data-theme="dark"] dialog:has(.cp-scope) .cp-sort-bucket h4,
html[data-theme="dark"] dialog:has(.cp-scope) .cp-column h4,
html[data-theme="dark"] dialog:has(.cp-scope) .cp-credits h4{color:#7fd0f0}

/* Case Presentation — demonstration video and transcript */
.cp-video-demo{margin:18px 0 16px}
.cp-video-demo .video-frame{border:1px solid var(--line)}
.cp-video-demo video{display:block;background:#001f31}
.cp-transcript{margin:0 0 18px}
.cp-transcript-note{margin:0 0 12px;font-size:12.5px;line-height:1.55;color:#596b79}
.cp-transcript-turn{border-left:4px solid var(--line);padding:2px 0 2px 12px;margin:0 0 14px}
.cp-transcript-turn:last-child{margin-bottom:0}
.cp-transcript-turn p{margin:0 0 8px;font-size:13.5px;line-height:1.65;overflow-wrap:break-word}
.cp-transcript-turn p:last-child{margin-bottom:0}
.cp-transcript-speaker{font-size:10.5px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--navy2)}
.cp-transcript-turn--narrator{border-left-color:var(--muted)}
.cp-transcript-turn--petnurse{border-left-color:var(--blue)}
.cp-transcript-turn--veterinarian{border-left-color:var(--green)}
.cp-transcript-turn--petnurse .cp-transcript-speaker::after{content:" · presenting"}
.cp-transcript-turn--veterinarian .cp-transcript-speaker::after{content:" · receiving"}
html[data-theme="dark"] .cp-transcript-note{color:var(--muted)}
html[data-theme="dark"] .cp-transcript-speaker{color:#7fd0f0}
@media(max-width:780px){
 .cp-transcript-turn{padding-left:10px}
 .cp-video-demo{margin:14px 0}
}

/* ========== Clinical Skills & Treatment Delivery — Medication Safety ========== */
/* All selectors are ms- prefixed or scoped to this lesson's modal via dialog:has(.ms-scope). */
dialog:has(.ms-scope){width:min(1120px, 100% - 32px)}
.ms-scope,.ms-hero,.ms-objectives,.ms-widget,.ms-jobaid{--ms-safe:#0e7a63;--ms-caution:#9d5417;--ms-stop:#a63232;--ms-verify:#0b6696}
.ms-hero{background:linear-gradient(135deg,rgba(6,63,99,.07),rgba(18,155,210,.09));border:1px solid var(--line);border-left:6px solid var(--navy2);border-radius:14px;padding:16px 18px;margin:0 0 18px}
.ms-hero p{margin:0;font-size:14.5px;line-height:1.62}
/* Scope callout — appears at the top of every module */
.ms-scope{border:1px solid var(--line);border-radius:16px;background:var(--soft2);padding:16px 18px;margin:0 0 18px}
.ms-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.ms-scope h4{margin:0 0 8px;font-size:13px;letter-spacing:.02em}
.ms-scope-do{border-left:4px solid #0e7a63;padding-left:12px}
.ms-scope-dont{border-left:4px solid #a63232;padding-left:12px}
.ms-scope ul{margin:0;padding-left:18px}
.ms-scope li{font-size:13px;line-height:1.6;margin-bottom:6px}
.ms-authority{margin:12px 0 0;padding:11px 13px;border-radius:12px;background:#fff;border:1px dashed #a63232;font-size:12.5px;line-height:1.6}
html[data-theme="dark"] .ms-authority{background:rgba(166,50,50,.12)}
.ms-objectives{border:1px solid var(--line);border-radius:14px;padding:15px 17px;margin:0 0 18px;background:var(--panel)}
.ms-objectives ul{margin:8px 0 0;padding-left:18px}
.ms-objectives li{font-size:13.5px;line-height:1.6;margin-bottom:6px}
/* Status chips */
.ms-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:850;letter-spacing:.02em;border:1px solid transparent}
.ms-chip--safe{background:#e4f6ef;color:#08624f;border-color:#8fd3c1}
.ms-chip--verify{background:#e6f3fb;color:#0a5c86;border-color:#9ccde8}
.ms-chip--caution{background:#fff0de;color:#8a4813;border-color:#e8bf8b}
.ms-chip--stop{background:#fbe6e6;color:#8f2b2b;border-color:#e6a9a9}
.ms-chip--hazard{background:#f2e9fa;color:#5c3184;border-color:#c9aee4}
.ms-chip--controlled{background:#eef1f6;color:#324867;border-color:#b8c4d6}
html[data-theme="dark"] .ms-chip--safe{background:rgba(19,162,131,.18);color:#8fe5cd;border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .ms-chip--verify{background:rgba(18,155,210,.18);color:#8fd4f2;border-color:rgba(18,155,210,.5)}
html[data-theme="dark"] .ms-chip--caution{background:rgba(239,118,34,.18);color:#f7bd8a;border-color:rgba(239,118,34,.5)}
html[data-theme="dark"] .ms-chip--stop{background:rgba(198,83,83,.2);color:#f2a7a7;border-color:rgba(198,83,83,.55)}
html[data-theme="dark"] .ms-chip--hazard{background:rgba(133,87,181,.22);color:#d4b6f0;border-color:rgba(133,87,181,.55)}
html[data-theme="dark"] .ms-chip--controlled{background:rgba(120,140,170,.2);color:#c6d4e6;border-color:rgba(120,140,170,.5)}
/* Patient wristband / chart strip */
.ms-wristband{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--line);border-left:8px solid var(--navy2);border-radius:12px;background:linear-gradient(90deg,var(--soft),var(--panel) 42%);padding:12px 14px;margin:0 0 14px}
.ms-wristband .ms-band-id{font-weight:900;font-size:15px;letter-spacing:.01em}
.ms-band-facts{display:flex;flex-wrap:wrap;gap:8px}
.ms-band-fact{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700}
.ms-band-fact span{color:var(--muted);font-weight:700}
.ms-band-alert{background:#fbe6e6;border-color:#e6a9a9;color:#8f2b2b}
html[data-theme="dark"] .ms-band-alert{background:rgba(198,83,83,.2);border-color:rgba(198,83,83,.5);color:#f2a7a7}
/* Medication label card motif */
.ms-labelcard{border:1px solid var(--line);border-radius:12px;background:repeating-linear-gradient(180deg,var(--panel),var(--panel) 26px,var(--soft2) 26px,var(--soft2) 27px);padding:0;overflow:hidden;box-shadow:0 3px 12px rgba(9,55,82,.07)}
.ms-labelcard-head{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--navy);color:#fff;padding:9px 13px}
.ms-labelcard-head strong{font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.ms-labelcard-body{padding:13px}
.ms-labelrow{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:7px 0;border-top:1px dotted var(--line);font-size:13px;line-height:1.5}
.ms-labelrow:first-child{border-top:0}
.ms-labelrow dt,.ms-labelrow .ms-labelkey{font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ms-labelrow .ms-labelkey{color:#8fd4f2}
.ms-labelcard--rx{border-left:6px solid var(--orange)}
.ms-labelcard--controlled{border-left:6px solid #5c3184}
.ms-labelcard--hazard{border-left:6px solid #8557b5}
/* Verification stamp */
.ms-stamp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:3px double #0e7a63;color:#0e7a63;border-radius:10px;padding:7px 12px;transform:rotate(-4deg);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:11px;background:rgba(19,162,131,.07)}
.ms-stamp small{font-size:9.5px;letter-spacing:.04em;font-weight:800;text-transform:none}
.ms-stamp--stop{border-color:#a63232;color:#a63232;background:rgba(198,83,83,.08)}
.ms-stamp--pending{border-color:#8a4813;color:#8a4813;background:rgba(239,118,34,.08)}
html[data-theme="dark"] .ms-stamp{border-color:#8fe5cd;color:#8fe5cd}
html[data-theme="dark"] .ms-stamp--stop{border-color:#f2a7a7;color:#f2a7a7}
html[data-theme="dark"] .ms-stamp--pending{border-color:#f7bd8a;color:#f7bd8a}
/* Generic widget chrome */
.ms-widget{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 17px;margin:18px 0;box-shadow:0 4px 16px rgba(9,55,82,.05)}
.ms-widget-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.ms-widget-head h4{margin:0;font-size:16px}
.ms-widget>p{font-size:13.5px;line-height:1.6}
.ms-counter{margin:6px 0 10px;font-size:12px;font-weight:800;color:#0a5c86}
html[data-theme="dark"] .ms-counter{color:#8fd4f2}
.ms-progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin:0 0 12px}
.ms-progress span{display:block;height:100%;background:var(--ms-safe,#0e7a63);transition:width .25s ease}
.ms-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.ms-widget button{min-height:44px}
.ms-feedback{margin:12px 0 0;padding:12px 13px;border-radius:12px;border:1px solid var(--line);background:var(--soft2);font-size:13px;line-height:1.6}
.ms-feedback p{margin:0}
.ms-feedback.is-good{border-color:#8fd3c1;background:#e9f8f2}
.ms-feedback.is-bad{border-color:#e6a9a9;background:#fdeeee}
html[data-theme="dark"] .ms-feedback.is-good{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .ms-feedback.is-bad{background:rgba(198,83,83,.16);border-color:rgba(198,83,83,.5)}
.ms-done{margin-top:14px;padding:13px 15px;border-radius:12px;border:1px solid #8fd3c1;background:#e9f8f2}
.ms-done h5{margin:0 0 6px;font-size:14px}
.ms-done p{margin:0;font-size:13px;line-height:1.6}
html[data-theme="dark"] .ms-done{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
/* SAFE PAWS explorer */
.ms-explorer-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:10px 0 12px}
.ms-step{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid var(--line);border-radius:13px;background:var(--soft2);color:var(--ink);padding:11px 12px;min-height:74px}
.ms-step-letter{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--navy);color:#fff;font-weight:900;font-size:15px}
.ms-step-name{font-weight:850;font-size:12.5px;line-height:1.3}
.ms-step[aria-selected="true"]{border-color:var(--orange);background:rgba(239,118,34,.1);box-shadow:inset 0 0 0 1px var(--orange)}
.ms-step[aria-selected="true"] .ms-step-letter{background:var(--orange)}
.ms-step.is-viewed .ms-step-name::after{content:" ✓";color:#0e7a63;font-weight:900}
html[data-theme="dark"] .ms-step.is-viewed .ms-step-name::after{color:#8fe5cd}
.ms-step-panel{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 16px}
.ms-step-panel h5{margin:0 0 4px;font-size:15px}
.ms-step-panel .ms-step-do{margin:10px 0 0;padding-left:18px}
.ms-step-panel li{font-size:13px;line-height:1.6;margin-bottom:5px}
/* Reveal cards */
.ms-reveal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0}
.ms-reveal-card{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px}
.ms-reveal-card h5{margin:0 0 6px;font-size:14.5px}
.ms-reveal-card p{font-size:13px;line-height:1.6;margin:0 0 10px}
.ms-reveal-card.is-open{border-color:#8fd3c1;background:#f0fbf7}
html[data-theme="dark"] .ms-reveal-card.is-open{background:rgba(19,162,131,.12);border-color:rgba(19,162,131,.45)}
.ms-reveal-body{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;font-size:13px;line-height:1.62}
.ms-reveal-body p{margin:0 0 8px}
.ms-reveal-body p:last-child{margin:0}
/* Paged decisions */
.ms-q{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px;list-style:none}
.ms-q-list{list-style:none;margin:0;padding:0}
.ms-q-group{font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;display:block;margin-bottom:5px}
html[data-theme="dark"] .ms-q-group{color:#8fd4f2}
.ms-q-stem{font-size:14.5px;font-weight:800;line-height:1.5;margin:0 0 11px}
.ms-opt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.ms-opt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ms-opt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ms-opt.is-wrong{border-color:#a63232;background:#fdeeee}
.ms-opt.is-correct::before{content:"✓ ";font-weight:900;color:#08624f}
.ms-opt.is-wrong::before{content:"✕ ";font-weight:900;color:#8f2b2b}
html[data-theme="dark"] .ms-opt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ms-opt.is-wrong{background:rgba(198,83,83,.16)}
html[data-theme="dark"] .ms-opt.is-correct::before{color:#8fe5cd}
html[data-theme="dark"] .ms-opt.is-wrong::before{color:#f2a7a7}
/* Risk sort */
.ms-sort-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:12px 0}
.ms-sort-bucket{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:12px}
.ms-sort-bucket h5{margin:0 0 4px;font-size:13.5px}
.ms-sort-bucket p{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
.ms-sort-bank,.ms-sort-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;min-height:20px}
.ms-item{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.ms-item[aria-pressed="true"]{border-color:var(--orange);box-shadow:inset 0 0 0 2px rgba(239,118,34,.35)}
.ms-item.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ms-item.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ms-item.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ms-item.is-wrong{background:rgba(198,83,83,.16)}
.ms-sort-result{display:block;font-size:11.5px;font-weight:850;margin-top:5px}
.ms-sort-why{display:block;font-size:12px;line-height:1.55;color:#4a5c6b;margin-top:4px}
html[data-theme="dark"] .ms-sort-why{color:var(--muted)}
/* Audit table (orders, charts, controlled logs) */
.ms-audit-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.ms-audit-row{display:block;width:100%;text-align:left;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:44px}
.ms-audit-row .ms-audit-key{display:block;font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ms-audit-row .ms-audit-key{color:#8fd4f2}
.ms-audit-row .ms-audit-val{display:block;font-size:13.5px;line-height:1.5;margin-top:3px}
.ms-audit-row .ms-audit-flagtag{display:inline-block;font-size:11px;font-weight:850;margin-top:6px;color:var(--muted)}
.ms-audit-row[aria-pressed="true"]{border-left-color:var(--orange);background:rgba(239,118,34,.08)}
.ms-audit-row[aria-pressed="true"] .ms-audit-flagtag::before{content:"⚑ flagged for the DVM/RVT"}
.ms-audit-row[aria-pressed="false"] .ms-audit-flagtag::before{content:"Not flagged"}
.ms-audit-row.is-correct{border-left-color:#0e7a63}
.ms-audit-row.is-wrong,.ms-audit-row.is-missed{border-left-color:#a63232}
.ms-audit-row.is-missed{background:#fdeeee}
html[data-theme="dark"] .ms-audit-row.is-missed{background:rgba(198,83,83,.16)}
.ms-audit-result{display:block;font-size:12px;line-height:1.55;margin-top:6px;font-weight:700}
/* Prep-tray sequence */
.ms-tray{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.ms-tray-surface{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--soft2),var(--soft));padding:13px}
.ms-tray-surface h5{margin:0 0 8px;font-size:13.5px}
.ms-seq-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ms-seq-step{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.ms-seq-step.is-placed{border-color:#0e7a63;background:#e9f8f2;opacity:.85}
.ms-seq-step.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ms-seq-step.is-placed{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ms-seq-step.is-wrong{background:rgba(198,83,83,.16)}
.ms-seq-track{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ms-seq-track-item{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.ms-seq-track-num{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--navy2);color:#fff;font-size:12px;font-weight:900}
/* Builders (label, dose double-check, teach-back) */
.ms-build{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin:12px 0}
.ms-part-label{display:block;font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;margin-bottom:7px}
html[data-theme="dark"] .ms-part-label{color:#8fd4f2}
.ms-part p{font-size:13px;line-height:1.55;margin:0 0 9px}
.ms-bopt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-bottom:8px;font-size:13px;line-height:1.5;min-height:44px}
.ms-bopt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ms-bopt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ms-bopt.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ms-bopt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ms-bopt.is-wrong{background:rgba(198,83,83,.16)}
.ms-out{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ms-out li{font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--ms-safe,#0e7a63);border-radius:9px;padding:9px 10px}
.ms-out-empty{font-size:12.5px;color:var(--muted);margin:0}
/* Branching case */
.ms-stage{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px}
.ms-stage-title{margin:0 0 8px;font-size:15px}
.ms-stage-scene{font-size:13.5px;line-height:1.62;margin:0 0 11px}
.ms-choice{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.ms-choice:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ms-choice.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ms-choice.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ms-choice.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ms-choice.is-wrong{background:rgba(198,83,83,.16)}
.ms-log{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.ms-log li{font-size:12.5px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--navy2);border-radius:9px;padding:8px 10px}
/* Recap */
.ms-recap-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.ms-recap-item{border:1px solid var(--line);border-left:5px solid var(--navy2);border-radius:12px;background:var(--soft2);padding:12px 13px}
.ms-recap-item h5{margin:0 0 5px;font-size:14px}
.ms-recap-item p{margin:0;font-size:13px;line-height:1.6}
/* Competency checklist */
.ms-checklist{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.ms-checklist li{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 13px}
.ms-checklist input{width:22px;height:22px;margin:2px 0 0;flex:0 0 22px}
.ms-checklist label{font-size:13.5px;line-height:1.55}
.ms-checklist label span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
/* Remediation panel on the assessment result */
.ms-remediation{margin-top:14px;border:1px solid #e8bf8b;border-left:6px solid var(--orange);border-radius:14px;background:#fff8f0;padding:14px 16px}
.ms-remediation.is-clear{border-color:#8fd3c1;border-left-color:#0e7a63;background:#effaf6}
.ms-remediation.is-critical{border-color:#e6a9a9;border-left-color:#a63232;background:#fdf1f1}
.ms-remediation h3{margin:0 0 6px;font-size:16px}
.ms-remediation p{margin:0;font-size:13.5px;line-height:1.6}
.ms-remediation-list{margin:10px 0 0;padding-left:18px}
.ms-remediation-list li{font-size:13px;line-height:1.6;margin-bottom:6px}
.ms-remediation-list li.is-critical strong{color:#8f2b2b}
html[data-theme="dark"] .ms-remediation{background:rgba(239,118,34,.12)}
html[data-theme="dark"] .ms-remediation.is-clear{background:rgba(19,162,131,.13)}
html[data-theme="dark"] .ms-remediation.is-critical{background:rgba(198,83,83,.15)}
html[data-theme="dark"] .ms-remediation-list li.is-critical strong{color:#f2a7a7}
/* Diagrams: medication-use process, escalation ladder, double-check flow */
.ms-flow{display:grid;gap:9px;margin:12px 0}
.ms-flow-step{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:start;border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:11px 12px}
.ms-flow-num{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--navy2);color:#fff;font-weight:900;font-size:13px}
.ms-flow-step h5{margin:0 0 4px;font-size:13.5px}
.ms-flow-step p{margin:0;font-size:12.8px;line-height:1.55}
.ms-flow--stop .ms-flow-num{background:#a63232}
.ms-cardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:12px 0}
.ms-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px}
.ms-card h5{margin:0 0 6px;font-size:14px}
.ms-card p{margin:0;font-size:13px;line-height:1.6}
.ms-card--safe{border-top:4px solid #0e7a63}
.ms-card--caution{border-top:4px solid var(--orange)}
.ms-card--stop{border-top:4px solid #a63232}
.ms-card--verify{border-top:4px solid var(--navy2)}
.ms-callout{border:1px solid var(--line);border-left:5px solid var(--navy2);border-radius:12px;background:var(--soft);padding:13px 15px;margin:14px 0}
.ms-callout h5{margin:0 0 6px;font-size:14px}
.ms-callout p{margin:0 0 8px;font-size:13px;line-height:1.62}
.ms-callout p:last-child{margin:0}
.ms-callout--stop{border-left-color:#a63232}
.ms-callout--safe{border-left-color:#0e7a63}
/* Sources & credits */
.ms-credits{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 17px;margin:18px 0}
.ms-credits h4{margin:0 0 8px}
.ms-credits ul{margin:0;padding-left:18px}
.ms-credits li{font-size:12.8px;line-height:1.6;margin-bottom:7px;overflow-wrap:break-word}
.ms-review-note{border:1px dashed var(--orange);border-radius:12px;background:rgba(239,118,34,.07);padding:12px 14px;margin:14px 0;font-size:12.8px;line-height:1.6}
/* One-page job aid */
.ms-jobaid{border:2px solid var(--navy);border-radius:14px;background:var(--panel);padding:16px 18px;margin:14px 0}
.ms-jobaid-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:2px solid var(--navy);padding-bottom:8px;margin-bottom:12px}
.ms-jobaid-head h4{margin:0;font-size:17px}
.ms-jobaid-head span{font-size:11.5px;color:var(--muted)}
.ms-jobaid-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-jobaid-step{border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--soft2)}
.ms-jobaid-step strong{display:block;font-size:12.5px;margin-bottom:3px}
.ms-jobaid-step span{display:block;font-size:12px;line-height:1.5}
.ms-jobaid-foot{margin-top:12px;font-size:12px;line-height:1.55;border-top:1px solid var(--line);padding-top:9px}
.ms-print-sheet{display:none}
@media print{
 html.ms-printing body>*{display:none!important}
 html.ms-printing .ms-print-sheet{display:block!important;position:static;padding:0;margin:0}
 html.ms-printing .ms-jobaid{border:1.5pt solid #063f63;box-shadow:none;background:#fff;color:#000;page-break-inside:avoid}
 html.ms-printing .ms-jobaid-step{background:#fff;border:.7pt solid #999}
 html.ms-printing .ms-jobaid-grid{grid-template-columns:1fr 1fr}
}
/* Responsive */
@media(max-width:980px){
 .ms-scope-grid,.ms-build,.ms-tray,.ms-jobaid-grid{grid-template-columns:1fr}
 .ms-explorer-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
 .ms-labelrow{grid-template-columns:1fr;gap:2px}
 .ms-wristband{border-left-width:6px}
 .ms-widget{padding:14px}
 .ms-actions button{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
 .ms-progress span{transition:none}
}
/* AA-contrast accents, scoped to this lesson's modal only */
dialog:has(.ms-scope) .sc-kicker,dialog:has(.ms-scope) .eyebrow{color:#a8500f}
dialog:has(.ms-scope) .triage-module-action,dialog:has(.ms-scope) .triage-manual-actions button{min-height:44px}
html[data-theme="dark"] dialog:has(.ms-scope) .sc-kicker,
html[data-theme="dark"] dialog:has(.ms-scope) .eyebrow{color:#f0994f}
html[data-theme="dark"] dialog:has(.ms-scope) .sc-section h3,
html[data-theme="dark"] dialog:has(.ms-scope) .ms-card h5,
html[data-theme="dark"] dialog:has(.ms-scope) .ms-callout h5,
html[data-theme="dark"] dialog:has(.ms-scope) .ms-widget-head h4{color:#7fd0f0}

/* Medication Safety — visible focus and touch-target sizing */
.ms-step:focus-visible,.ms-opt:focus-visible,.ms-item:focus-visible,.ms-audit-row:focus-visible,
.ms-seq-step:focus-visible,.ms-bopt:focus-visible,.ms-choice:focus-visible,
.ms-widget button:focus-visible,.ms-checklist input:focus-visible,
.ms-step-panel:focus-visible,.ms-done:focus-visible,.ms-q-stem:focus-visible,
.ms-part-label:focus-visible,.ms-stage-title:focus-visible,.ms-recap-item:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.ms-checklist li{min-height:48px;align-items:center}
.ms-checklist input{width:28px;height:28px;flex:0 0 28px;margin:0}
.ms-checklist label{display:block;min-height:24px;padding:4px 0}

/* Medication Safety — in-lesson link color, matching the Clinical Diagnostics lessons */
dialog:has(.ms-scope) #modalContent a{color:#0a5c86;text-decoration:underline;text-underline-offset:2px}
html[data-theme="dark"] dialog:has(.ms-scope) #modalContent a{color:#7fd0f0}

.ms-builder.is-complete .ms-build{grid-template-columns:1fr}

/* ========== Clinical Skills & Treatment Delivery — Asepsis and Infection Prevention ========== */
/* All selectors are aip- prefixed or scoped to this lesson's modal via dialog:has(.aip-scope). */
dialog:has(.aip-scope){width:min(1120px, 100% - 32px)}
.aip-hero{background:linear-gradient(135deg,rgba(19,162,131,.09),rgba(18,155,210,.08));border:1px solid var(--line);border-left:6px solid #0e7a63;border-radius:14px;padding:16px 18px;margin:0 0 18px}
.aip-hero p{margin:0;font-size:14.5px;line-height:1.62}
/* Scope callout on every module */
.aip-scope{border:1px solid var(--line);border-radius:16px;background:var(--soft2);padding:16px 18px;margin:0 0 18px}
.aip-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.aip-scope h4{margin:0 0 8px;font-size:13px}
.aip-scope-do{border-left:4px solid #0e7a63;padding-left:12px}
.aip-scope-dont{border-left:4px solid #a63232;padding-left:12px}
.aip-scope ul{margin:0;padding-left:18px}
.aip-scope li{font-size:13px;line-height:1.6;margin-bottom:6px}
.aip-authority{margin:12px 0 0;padding:11px 13px;border-radius:12px;background:#fff;border:1px dashed #0a5c86;font-size:12.5px;line-height:1.6}
html[data-theme="dark"] .aip-authority{background:rgba(10,92,134,.16)}
.aip-objectives{border:1px solid var(--line);border-radius:14px;padding:15px 17px;margin:0 0 18px;background:var(--panel)}
.aip-objectives ul{margin:8px 0 0;padding-left:18px}
.aip-objectives li{font-size:13.5px;line-height:1.6;margin-bottom:6px}
/* Status chips — clean / contaminated / sterile / isolation */
.aip-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:850;border:1px solid transparent}
.aip-chip--clean{background:#e6f3fb;color:#0a5c86;border-color:#9ccde8}
.aip-chip--sterile{background:#e4f6ef;color:#08624f;border-color:#8fd3c1}
.aip-chip--dirty{background:#fff0de;color:#8a4813;border-color:#e8bf8b}
.aip-chip--contaminated{background:#fbe6e6;color:#8f2b2b;border-color:#e6a9a9}
.aip-chip--isolation{background:#f2e9fa;color:#5c3184;border-color:#c9aee4}
.aip-chip--chem{background:#eef1f6;color:#324867;border-color:#b8c4d6}
html[data-theme="dark"] .aip-chip--clean{background:rgba(18,155,210,.18);color:#8fd4f2;border-color:rgba(18,155,210,.5)}
html[data-theme="dark"] .aip-chip--sterile{background:rgba(19,162,131,.18);color:#8fe5cd;border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .aip-chip--dirty{background:rgba(239,118,34,.18);color:#f7bd8a;border-color:rgba(239,118,34,.5)}
html[data-theme="dark"] .aip-chip--contaminated{background:rgba(198,83,83,.2);color:#f2a7a7;border-color:rgba(198,83,83,.55)}
html[data-theme="dark"] .aip-chip--isolation{background:rgba(133,87,181,.22);color:#d4b6f0;border-color:rgba(133,87,181,.55)}
html[data-theme="dark"] .aip-chip--chem{background:rgba(120,140,170,.2);color:#c6d4e6;border-color:rgba(120,140,170,.5)}
/* Zone banner: clean zone vs contaminated zone */
.aip-zonebar{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 16px}
.aip-zonebar>div{padding:13px 15px}
.aip-zonebar h5{margin:0 0 5px;font-size:13.5px}
.aip-zonebar p{margin:0;font-size:12.5px;line-height:1.55}
.aip-zone-clean{background:linear-gradient(180deg,rgba(19,162,131,.1),transparent);border-right:3px dashed var(--line)}
.aip-zone-dirty{background:linear-gradient(180deg,rgba(198,83,83,.09),transparent)}
/* Generic widget chrome */
.aip-widget{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 17px;margin:18px 0;box-shadow:0 4px 16px rgba(9,55,82,.05)}
.aip-widget-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.aip-widget-head h4{margin:0;font-size:16px}
.aip-widget>p{font-size:13.5px;line-height:1.6}
.aip-counter{margin:6px 0 10px;font-size:12px;font-weight:800;color:#0a5c86}
html[data-theme="dark"] .aip-counter{color:#8fd4f2}
.aip-progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin:0 0 12px}
.aip-progress span{display:block;height:100%;background:#0e7a63;transition:width .25s ease}
.aip-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.aip-widget button{min-height:44px}
.aip-feedback{margin:12px 0 0;padding:12px 13px;border-radius:12px;border:1px solid var(--line);background:var(--soft2);font-size:13px;line-height:1.6}
.aip-feedback p{margin:0}
.aip-feedback.is-good{border-color:#8fd3c1;background:#e9f8f2}
.aip-feedback.is-bad{border-color:#e6a9a9;background:#fdeeee}
html[data-theme="dark"] .aip-feedback.is-good{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .aip-feedback.is-bad{background:rgba(198,83,83,.16);border-color:rgba(198,83,83,.5)}
.aip-done{margin-top:14px;padding:13px 15px;border-radius:12px;border:1px solid #8fd3c1;background:#e9f8f2}
.aip-done h5{margin:0 0 6px;font-size:14px}
.aip-done p{margin:0;font-size:13px;line-height:1.6}
html[data-theme="dark"] .aip-done{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
/* C.L.E.A.N. explorer */
.aip-explorer-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:10px 0 12px}
.aip-step{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid var(--line);border-radius:13px;background:var(--soft2);color:var(--ink);padding:11px 12px;min-height:78px}
.aip-step-letter{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#0e7a63;color:#fff;font-weight:900;font-size:15px}
.aip-step-name{font-weight:850;font-size:12.5px;line-height:1.3}
.aip-step[aria-selected="true"]{border-color:var(--orange);background:rgba(239,118,34,.1);box-shadow:inset 0 0 0 1px var(--orange)}
.aip-step[aria-selected="true"] .aip-step-letter{background:var(--orange)}
.aip-step.is-viewed .aip-step-name::after{content:" \2713";color:#0e7a63;font-weight:900}
html[data-theme="dark"] .aip-step.is-viewed .aip-step-name::after{color:#8fe5cd}
.aip-step-panel{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 16px}
.aip-step-panel h5{margin:0 0 4px;font-size:15px}
.aip-step-panel ul{margin:10px 0 0;padding-left:18px}
.aip-step-panel li{font-size:13px;line-height:1.6;margin-bottom:5px}
.aip-refrain{margin:14px 0;padding:12px 15px;border-radius:12px;border:1px solid var(--line);border-left:5px solid #0e7a63;background:var(--soft);font-size:13.5px;font-weight:800;line-height:1.6}
/* Reveal cards */
.aip-reveal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0}
.aip-reveal-card{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px}
.aip-reveal-card h5{margin:0 0 6px;font-size:14.5px}
.aip-reveal-card p{font-size:13px;line-height:1.6;margin:0 0 10px}
.aip-reveal-card.is-open{border-color:#8fd3c1;background:#f0fbf7}
html[data-theme="dark"] .aip-reveal-card.is-open{background:rgba(19,162,131,.12);border-color:rgba(19,162,131,.45)}
.aip-reveal-body{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;font-size:13px;line-height:1.62}
.aip-reveal-body p{margin:0 0 8px}
.aip-reveal-body p:last-child{margin:0}
/* Paged decisions and scenarios */
.aip-q-list{list-style:none;margin:0;padding:0}
.aip-q{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px;list-style:none}
.aip-q-group{font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;display:block;margin-bottom:5px}
html[data-theme="dark"] .aip-q-group{color:#8fd4f2}
.aip-q-stem{font-size:14.5px;font-weight:800;line-height:1.5;margin:0 0 11px}
.aip-opt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.aip-opt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.aip-opt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-opt.is-wrong{border-color:#a63232;background:#fdeeee}
.aip-opt.is-correct::before{content:"\2713 ";font-weight:900;color:#08624f}
.aip-opt.is-wrong::before{content:"\2715 ";font-weight:900;color:#8f2b2b}
html[data-theme="dark"] .aip-opt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-opt.is-wrong{background:rgba(198,83,83,.16)}
html[data-theme="dark"] .aip-opt.is-correct::before{color:#8fe5cd}
html[data-theme="dark"] .aip-opt.is-wrong::before{color:#f2a7a7}
.aip-why{margin-top:12px;padding:12px 13px;border:1px solid var(--line);border-left:4px solid var(--navy2);border-radius:12px;background:var(--panel)}
.aip-why-head{margin:0 0 7px;font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .aip-why-head{color:#8fd4f2}
.aip-why ul{margin:0;padding-left:18px}
.aip-why li{font-size:12.8px;line-height:1.6;margin-bottom:6px}
/* Sorts */
.aip-sort-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.aip-sort-bucket{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:12px}
.aip-sort-bucket h5{margin:0 0 4px;font-size:13.5px}
.aip-sort-bucket p{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
.aip-sort-bank,.aip-sort-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;min-height:20px}
.aip-item{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.aip-item[aria-pressed="true"]{border-color:var(--orange);box-shadow:inset 0 0 0 2px rgba(239,118,34,.35)}
.aip-item.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-item.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-item.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-item.is-wrong{background:rgba(198,83,83,.16)}
.aip-sort-result{display:block;font-size:11.5px;font-weight:850;margin-top:5px}
.aip-sort-why{display:block;font-size:12px;line-height:1.55;color:#4a5c6b;margin-top:4px}
html[data-theme="dark"] .aip-sort-why{color:var(--muted)}
/* Chain of infection */
.aip-chain-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.aip-link{display:block;text-align:left;border:1px solid var(--line);border-left:5px solid var(--navy2);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px;min-height:76px}
.aip-link strong{display:block;font-size:13.5px}
.aip-link span.aip-link-desc{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px}
.aip-link-state{display:inline-block;margin-top:6px;font-size:11px;font-weight:850;color:#8a4813}
html[data-theme="dark"] .aip-link-state{color:#f7bd8a}
.aip-link.is-broken{border-left-color:#0e7a63;background:#f0fbf7}
.aip-link.is-broken .aip-link-state{color:#08624f}
html[data-theme="dark"] .aip-link.is-broken{background:rgba(19,162,131,.14)}
html[data-theme="dark"] .aip-link.is-broken .aip-link-state{color:#8fe5cd}
.aip-link.is-open{box-shadow:inset 0 0 0 2px var(--orange)}
.aip-link-panel{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px;margin-bottom:12px}
.aip-link-panel h5{margin:0 0 8px;font-size:14.5px}
.aip-break{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-bottom:8px;font-size:13px;line-height:1.5;min-height:44px}
.aip-break:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.aip-break.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-break.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-break.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-break.is-wrong{background:rgba(198,83,83,.16)}
/* Audits and surface maps */
.aip-audit-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.aip-audit-row{display:block;width:100%;text-align:left;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:44px}
.aip-audit-row .aip-audit-key{display:block;font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .aip-audit-row .aip-audit-key{color:#8fd4f2}
.aip-audit-row .aip-audit-val{display:block;font-size:13.5px;line-height:1.5;margin-top:3px}
.aip-audit-row .aip-audit-flagtag{display:inline-block;font-size:11px;font-weight:850;margin-top:6px;color:var(--muted)}
.aip-audit-row[aria-pressed="true"]{border-left-color:var(--orange);background:rgba(239,118,34,.08)}
.aip-audit-row[aria-pressed="true"] .aip-audit-flagtag::before{content:"\2691 flagged"}
.aip-audit-row[aria-pressed="false"] .aip-audit-flagtag::before{content:"not flagged"}
.aip-audit-row.is-correct{border-left-color:#0e7a63}
.aip-audit-row.is-wrong,.aip-audit-row.is-missed{border-left-color:#a63232}
.aip-audit-row.is-missed{background:#fdeeee}
html[data-theme="dark"] .aip-audit-row.is-missed{background:rgba(198,83,83,.16)}
.aip-audit-result{display:block;font-size:12px;line-height:1.55;margin-top:6px;font-weight:700}
/* Room / surface map grid */
.aip-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;padding:12px;border:1px dashed var(--line);border-radius:16px;background:repeating-linear-gradient(135deg,var(--soft2),var(--soft2) 12px,var(--panel) 12px,var(--panel) 24px)}
.aip-map-tile{display:block;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:11px;min-height:74px}
.aip-map-tile strong{display:block;font-size:12.8px}
.aip-map-tile span{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.45}
/* Sequences */
.aip-tray{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.aip-tray-surface{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--soft2),var(--soft));padding:13px}
.aip-tray-surface h5{margin:0 0 8px;font-size:13.5px}
.aip-seq-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.aip-seq-step{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.aip-seq-step.is-placed{border-color:#0e7a63;background:#e9f8f2;opacity:.85}
.aip-seq-step.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-seq-step.is-placed{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-seq-step.is-wrong{background:rgba(198,83,83,.16)}
.aip-seq-track{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.aip-seq-track-item{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.aip-seq-track-num{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#0e7a63;color:#fff;font-size:12px;font-weight:900}
/* Builders */
.aip-build{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin:12px 0}
.aip-builder.is-complete .aip-build{grid-template-columns:1fr}
.aip-part-label{display:block;font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;margin-bottom:7px}
html[data-theme="dark"] .aip-part-label{color:#8fd4f2}
.aip-part p{font-size:13px;line-height:1.55;margin:0 0 9px}
.aip-bopt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-bottom:8px;font-size:13px;line-height:1.5;min-height:44px}
.aip-bopt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.aip-bopt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-bopt.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-bopt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-bopt.is-wrong{background:rgba(198,83,83,.16)}
.aip-out{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.aip-out li{font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid #0e7a63;border-radius:9px;padding:9px 10px}
.aip-out-empty{font-size:12.5px;color:var(--muted);margin:0}
/* Branching */
.aip-stage{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px}
.aip-stage-title{margin:0 0 8px;font-size:15px}
.aip-stage-scene{font-size:13.5px;line-height:1.62;margin:0 0 11px}
.aip-choice{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.aip-choice:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.aip-choice.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-choice.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-choice.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-choice.is-wrong{background:rgba(198,83,83,.16)}
.aip-log{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.aip-log li{font-size:12.5px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--navy2);border-radius:9px;padding:8px 10px}
/* Sterile field map */
.aip-fieldmap{border:2px dashed #0a5c86;border-radius:16px;padding:14px;margin:12px 0;background:linear-gradient(180deg,rgba(18,155,210,.06),transparent)}
.aip-fieldmap-note{margin:0 0 10px;font-size:12px;font-weight:800;color:#0a5c86}
html[data-theme="dark"] .aip-fieldmap-note{color:#8fd4f2}
.aip-fieldgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.aip-zone{display:block;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:76px}
.aip-zone strong{display:block;font-size:13px}
.aip-zone .aip-zone-desc{display:block;font-size:11.8px;line-height:1.5;color:var(--muted);margin-top:3px}
.aip-zone-state{display:inline-block;margin-top:6px;font-size:11px;font-weight:850;color:var(--muted)}
.aip-zone.is-marked{border-color:var(--orange);box-shadow:inset 0 0 0 2px rgba(239,118,34,.3)}
.aip-zone.is-correct{border-color:#0e7a63;background:#e9f8f2}
.aip-zone.is-wrong,.aip-zone.is-missed{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .aip-zone.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .aip-zone.is-wrong,html[data-theme="dark"] .aip-zone.is-missed{background:rgba(198,83,83,.16)}
.aip-zone-result{display:block;font-size:12px;line-height:1.5;margin-top:6px;font-weight:700}
/* Contact-time simulation */
.aip-timer{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.aip-labelpick{display:grid;gap:9px}
.aip-labelcard{display:block;text-align:left;border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:12px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:44px}
.aip-labelcard strong{display:block;font-size:13px}
.aip-labelcard span{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px}
.aip-labelcard.is-selected{border-color:#0e7a63;background:#f0fbf7;box-shadow:inset 0 0 0 2px rgba(19,162,131,.3)}
html[data-theme="dark"] .aip-labelcard.is-selected{background:rgba(19,162,131,.14)}
.aip-surface{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--soft2);min-height:120px}
.aip-surface h5{margin:0 0 8px;font-size:13.5px}
.aip-surface-vis{height:56px;border-radius:10px;border:1px solid var(--line);background:repeating-linear-gradient(90deg,var(--panel),var(--panel) 14px,var(--soft2) 14px,var(--soft2) 28px);position:relative;overflow:hidden}
.aip-surface-vis::after{content:"dry surface";position:absolute;inset:auto 8px 6px auto;font-size:10.5px;font-weight:850;color:var(--muted)}
.aip-surface.is-wet .aip-surface-vis{background:linear-gradient(180deg,rgba(18,155,210,.35),rgba(18,155,210,.18));border-color:#0a5c86}
.aip-surface.is-wet .aip-surface-vis::after{content:"visibly wet";color:#0a5c86}
.aip-surface.is-dry .aip-surface-vis{background:linear-gradient(180deg,rgba(239,118,34,.22),transparent);border-color:#8a4813}
.aip-surface.is-dry .aip-surface-vis::after{content:"dried early \2014 contact time not met";color:#8a4813}
.aip-surface.is-done .aip-surface-vis{background:linear-gradient(180deg,rgba(19,162,131,.3),rgba(19,162,131,.12));border-color:#0e7a63}
.aip-surface.is-done .aip-surface-vis::after{content:"full contact time met";color:#08624f}
.aip-timer-readout{font-size:12.5px;line-height:1.55;margin:10px 0 0}
.aip-timer-status{font-size:12.5px;font-weight:800;margin:8px 0 0;color:#0a5c86}
html[data-theme="dark"] .aip-timer-status{color:#8fd4f2}
/* Recap */
.aip-recap-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.aip-recap-item{border:1px solid var(--line);border-left:5px solid #0e7a63;border-radius:12px;background:var(--soft2);padding:12px 13px}
.aip-recap-item h5{margin:0 0 5px;font-size:14px}
.aip-recap-item p{margin:0;font-size:13px;line-height:1.6}
/* Checklist */
.aip-checklist{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.aip-checklist li{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 13px;min-height:48px}
.aip-checklist input{width:28px;height:28px;flex:0 0 28px;margin:0}
.aip-checklist label{display:block;font-size:13.5px;line-height:1.55;padding:4px 0}
.aip-checklist label span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
/* Option-level explanation panel on the knowledge check */
.aip-optexp{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.aip-optexp-mine{margin:0 0 8px;font-size:13px;line-height:1.6}
.aip-optexp-right{margin:0 0 8px;font-size:13px;line-height:1.6}
.aip-optexp-head{margin:6px 0 6px;font-size:11.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .aip-optexp-head{color:#8fd4f2}
.aip-optexp ul{margin:0;padding-left:18px}
.aip-optexp li{font-size:12.8px;line-height:1.6;margin-bottom:6px}
.aip-optexp li.is-correct strong{color:#08624f}
html[data-theme="dark"] .aip-optexp li.is-correct strong{color:#8fe5cd}
/* Remediation */
.aip-remediation{margin-top:14px;border:1px solid #e8bf8b;border-left:6px solid var(--orange);border-radius:14px;background:#fff8f0;padding:14px 16px}
.aip-remediation.is-clear{border-color:#8fd3c1;border-left-color:#0e7a63;background:#effaf6}
.aip-remediation.is-critical{border-color:#e6a9a9;border-left-color:#a63232;background:#fdf1f1}
.aip-remediation h3{margin:0 0 6px;font-size:16px}
.aip-remediation p{margin:0;font-size:13.5px;line-height:1.6}
.aip-remediation-list{margin:10px 0 0;padding-left:18px}
.aip-remediation-list li{font-size:13px;line-height:1.6;margin-bottom:6px}
.aip-remediation-list li.is-critical strong{color:#8f2b2b}
html[data-theme="dark"] .aip-remediation{background:rgba(239,118,34,.12)}
html[data-theme="dark"] .aip-remediation.is-clear{background:rgba(19,162,131,.13)}
html[data-theme="dark"] .aip-remediation.is-critical{background:rgba(198,83,83,.15)}
html[data-theme="dark"] .aip-remediation-list li.is-critical strong{color:#f2a7a7}
/* Diagrams, cards, callouts */
.aip-flow{display:grid;gap:9px;margin:12px 0}
.aip-flow-step{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:start;border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:11px 12px}
.aip-flow-num{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#0a5c86;color:#fff;font-weight:900;font-size:13px}
.aip-flow-step h5{margin:0 0 4px;font-size:13.5px}
.aip-flow-step p{margin:0;font-size:12.8px;line-height:1.55}
.aip-hierarchy{display:grid;gap:8px;margin:12px 0}
.aip-tier{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--panel)}
.aip-tier h5{margin:0 0 4px;font-size:13.5px}
.aip-tier p{margin:0;font-size:12.8px;line-height:1.55}
.aip-tier--clean{border-left:5px solid #b8c4d6}
.aip-tier--disinfect{border-left:5px solid #0a5c86}
.aip-tier--hld{border-left:5px solid #5c3184}
.aip-tier--sterile{border-left:5px solid #0e7a63}
.aip-cardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:12px 0}
.aip-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px}
.aip-card h5{margin:0 0 6px;font-size:14px}
.aip-card p{margin:0;font-size:13px;line-height:1.6}
.aip-card--clean{border-top:4px solid #0a5c86}
.aip-card--sterile{border-top:4px solid #0e7a63}
.aip-card--dirty{border-top:4px solid var(--orange)}
.aip-card--stop{border-top:4px solid #a63232}
.aip-callout{border:1px solid var(--line);border-left:5px solid #0a5c86;border-radius:12px;background:var(--soft);padding:13px 15px;margin:14px 0}
.aip-callout h5{margin:0 0 6px;font-size:14px}
.aip-callout p{margin:0 0 8px;font-size:13px;line-height:1.62}
.aip-callout p:last-child{margin:0}
.aip-callout--stop{border-left-color:#a63232}
.aip-callout--rule{border-left-color:#0e7a63}
.aip-standards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:12px 0}
.aip-standard{border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:12px}
.aip-standard strong{display:block;font-size:13px;margin-bottom:4px}
.aip-standard span{display:block;font-size:12.5px;line-height:1.55}
/* Credits */
.aip-credits{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 17px;margin:18px 0}
.aip-credits h4{margin:0 0 8px}
.aip-credits ul{margin:0;padding-left:18px}
.aip-credits li{font-size:12.8px;line-height:1.6;margin-bottom:7px;overflow-wrap:break-word}
.aip-review-note{border:1px dashed var(--orange);border-radius:12px;background:rgba(239,118,34,.07);padding:12px 14px;margin:14px 0;font-size:12.8px;line-height:1.6}
.aip-closing{border:1px solid #8fd3c1;border-left:6px solid #0e7a63;border-radius:14px;background:#effaf6;padding:14px 16px;margin:16px 0;font-size:14.5px;font-weight:800;line-height:1.6}
html[data-theme="dark"] .aip-closing{background:rgba(19,162,131,.14)}
/* Job aid + print */
.aip-jobaid{border:2px solid #0e7a63;border-radius:14px;background:var(--panel);padding:16px 18px;margin:14px 0}
.aip-jobaid-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:2px solid #0e7a63;padding-bottom:8px;margin-bottom:12px}
.aip-jobaid-head h4{margin:0;font-size:17px}
.aip-jobaid-head span{font-size:11.5px;color:var(--muted)}
.aip-jobaid-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.aip-jobaid-step{border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--soft2)}
.aip-jobaid-step strong{display:block;font-size:12.5px;margin-bottom:3px}
.aip-jobaid-step span{display:block;font-size:12px;line-height:1.5}
.aip-jobaid-foot{margin-top:12px;font-size:12px;line-height:1.55;border-top:1px solid var(--line);padding-top:9px}
.aip-print-sheet{display:none}
@media print{
 html.aip-printing body>*{display:none!important}
 html.aip-printing .aip-print-sheet{display:block!important;position:static;padding:0;margin:0}
 html.aip-printing .aip-jobaid{border:1.5pt solid #0e7a63;box-shadow:none;background:#fff;color:#000;page-break-inside:avoid}
 html.aip-printing .aip-jobaid-step{background:#fff;border:.7pt solid #999}
 html.aip-printing .aip-jobaid-grid{grid-template-columns:1fr 1fr}
}
/* Focus and responsive */
.aip-step:focus-visible,.aip-opt:focus-visible,.aip-item:focus-visible,.aip-audit-row:focus-visible,
.aip-seq-step:focus-visible,.aip-bopt:focus-visible,.aip-choice:focus-visible,.aip-break:focus-visible,
.aip-link:focus-visible,.aip-zone:focus-visible,.aip-labelcard:focus-visible,.aip-map-tile:focus-visible,
.aip-widget button:focus-visible,.aip-checklist input:focus-visible,
.aip-step-panel:focus-visible,.aip-link-panel:focus-visible,.aip-done:focus-visible,
.aip-q-stem:focus-visible,.aip-part-label:focus-visible,.aip-stage-title:focus-visible,
.aip-recap-item:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
dialog:has(.aip-scope) #modalContent a{color:#0a5c86;text-decoration:underline;text-underline-offset:2px}
html[data-theme="dark"] dialog:has(.aip-scope) #modalContent a{color:#7fd0f0}
dialog:has(.aip-scope) .sc-kicker,dialog:has(.aip-scope) .eyebrow{color:#a8500f}
html[data-theme="dark"] dialog:has(.aip-scope) .sc-kicker,
html[data-theme="dark"] dialog:has(.aip-scope) .eyebrow{color:#f0994f}
html[data-theme="dark"] dialog:has(.aip-scope) .sc-section h3,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-card h5,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-callout h5,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-widget-head h4{color:#7fd0f0}
dialog:has(.aip-scope) .triage-module-action,dialog:has(.aip-scope) .triage-manual-actions button{min-height:44px}
@media(max-width:980px){
 .aip-scope-grid,.aip-build,.aip-tray,.aip-timer,.aip-jobaid-grid,.aip-zonebar{grid-template-columns:1fr}
 .aip-explorer-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .aip-chain-links{grid-template-columns:repeat(2,minmax(0,1fr))}
 .aip-zone-clean{border-right:0;border-bottom:3px dashed var(--line)}
}
@media(max-width:780px){
 .aip-widget{padding:14px}
 .aip-actions button{flex:1 1 100%}
 .aip-chain-links{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .aip-progress span{transition:none}
}

/* Asepsis — AA-contrast secondary text, scoped to this lesson's modal only */
dialog:has(.aip-scope) .aip-sort-bucket p,
dialog:has(.aip-scope) .aip-map-tile span,
dialog:has(.aip-scope) .aip-link-desc,
dialog:has(.aip-scope) .aip-zone-desc,
dialog:has(.aip-scope) .aip-labelcard span,
dialog:has(.aip-scope) .aip-checklist label span,
dialog:has(.aip-scope) .aip-out-empty,
dialog:has(.aip-scope) .aip-zone-state,
dialog:has(.aip-scope) .aip-audit-row .aip-audit-flagtag,
dialog:has(.aip-scope) .aip-jobaid-head span{color:#4a5c6b}
html[data-theme="dark"] dialog:has(.aip-scope) .aip-sort-bucket p,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-map-tile span,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-link-desc,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-zone-desc,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-labelcard span,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-checklist label span,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-out-empty,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-zone-state,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-audit-row .aip-audit-flagtag,
html[data-theme="dark"] dialog:has(.aip-scope) .aip-jobaid-head span{color:var(--muted)}
html[data-theme="dark"] dialog:has(.aip-scope) #modalContent a{color:#9edcf8}

/* ========== Clinical Skills & Treatment Delivery — Catheter Care ========== */
/* All selectors are ctc- prefixed or scoped to this lesson's modal via dialog:has(.ctc-scope). */
dialog:has(.ctc-scope){width:min(1120px, 100% - 32px)}
.ctc-hero{background:linear-gradient(135deg,rgba(19,162,131,.09),rgba(18,155,210,.08));border:1px solid var(--line);border-left:6px solid #0e7a63;border-radius:14px;padding:16px 18px;margin:0 0 18px}
.ctc-hero p{margin:0;font-size:14.5px;line-height:1.62}
/* Scope callout on every module */
.ctc-scope{border:1px solid var(--line);border-radius:16px;background:var(--soft2);padding:16px 18px;margin:0 0 18px}
.ctc-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.ctc-scope h4{margin:0 0 8px;font-size:13px}
.ctc-scope-do{border-left:4px solid #0e7a63;padding-left:12px}
.ctc-scope-dont{border-left:4px solid #a63232;padding-left:12px}
.ctc-scope ul{margin:0;padding-left:18px}
.ctc-scope li{font-size:13px;line-height:1.6;margin-bottom:6px}
.ctc-authority{margin:12px 0 0;padding:11px 13px;border-radius:12px;background:#fff;border:1px dashed #0a5c86;font-size:12.5px;line-height:1.6}
html[data-theme="dark"] .ctc-authority{background:rgba(10,92,134,.16)}
.ctc-objectives{border:1px solid var(--line);border-radius:14px;padding:15px 17px;margin:0 0 18px;background:var(--panel)}
.ctc-objectives ul{margin:8px 0 0;padding-left:18px}
.ctc-objectives li{font-size:13.5px;line-height:1.6;margin-bottom:6px}
/* Status chips — clean / contaminated / sterile / isolation */
.ctc-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:850;border:1px solid transparent}
.ctc-chip--clean{background:#e6f3fb;color:#0a5c86;border-color:#9ccde8}
.ctc-chip--sterile{background:#e4f6ef;color:#08624f;border-color:#8fd3c1}
.ctc-chip--dirty{background:#fff0de;color:#8a4813;border-color:#e8bf8b}
.ctc-chip--contaminated{background:#fbe6e6;color:#8f2b2b;border-color:#e6a9a9}
.ctc-chip--isolation{background:#f2e9fa;color:#5c3184;border-color:#c9aee4}
.ctc-chip--chem{background:#eef1f6;color:#324867;border-color:#b8c4d6}
html[data-theme="dark"] .ctc-chip--clean{background:rgba(18,155,210,.18);color:#8fd4f2;border-color:rgba(18,155,210,.5)}
html[data-theme="dark"] .ctc-chip--sterile{background:rgba(19,162,131,.18);color:#8fe5cd;border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .ctc-chip--dirty{background:rgba(239,118,34,.18);color:#f7bd8a;border-color:rgba(239,118,34,.5)}
html[data-theme="dark"] .ctc-chip--contaminated{background:rgba(198,83,83,.2);color:#f2a7a7;border-color:rgba(198,83,83,.55)}
html[data-theme="dark"] .ctc-chip--isolation{background:rgba(133,87,181,.22);color:#d4b6f0;border-color:rgba(133,87,181,.55)}
html[data-theme="dark"] .ctc-chip--chem{background:rgba(120,140,170,.2);color:#c6d4e6;border-color:rgba(120,140,170,.5)}
/* Zone banner: clean zone vs contaminated zone */
.ctc-zonebar{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 16px}
.ctc-zonebar>div{padding:13px 15px}
.ctc-zonebar h5{margin:0 0 5px;font-size:13.5px}
.ctc-zonebar p{margin:0;font-size:12.5px;line-height:1.55}
.ctc-zone-clean{background:linear-gradient(180deg,rgba(19,162,131,.1),transparent);border-right:3px dashed var(--line)}
.ctc-zone-dirty{background:linear-gradient(180deg,rgba(198,83,83,.09),transparent)}
/* Generic widget chrome */
.ctc-widget{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 17px;margin:18px 0;box-shadow:0 4px 16px rgba(9,55,82,.05)}
.ctc-widget-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.ctc-widget-head h4{margin:0;font-size:16px}
.ctc-widget>p{font-size:13.5px;line-height:1.6}
.ctc-counter{margin:6px 0 10px;font-size:12px;font-weight:800;color:#0a5c86}
html[data-theme="dark"] .ctc-counter{color:#8fd4f2}
.ctc-progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin:0 0 12px}
.ctc-progress span{display:block;height:100%;background:#0e7a63;transition:width .25s ease}
.ctc-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.ctc-widget button{min-height:44px}
.ctc-feedback{margin:12px 0 0;padding:12px 13px;border-radius:12px;border:1px solid var(--line);background:var(--soft2);font-size:13px;line-height:1.6}
.ctc-feedback p{margin:0}
.ctc-feedback.is-good{border-color:#8fd3c1;background:#e9f8f2}
.ctc-feedback.is-bad{border-color:#e6a9a9;background:#fdeeee}
html[data-theme="dark"] .ctc-feedback.is-good{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .ctc-feedback.is-bad{background:rgba(198,83,83,.16);border-color:rgba(198,83,83,.5)}
.ctc-done{margin-top:14px;padding:13px 15px;border-radius:12px;border:1px solid #8fd3c1;background:#e9f8f2}
.ctc-done h5{margin:0 0 6px;font-size:14px}
.ctc-done p{margin:0;font-size:13px;line-height:1.6}
html[data-theme="dark"] .ctc-done{background:rgba(19,162,131,.15);border-color:rgba(19,162,131,.5)}
/* CLEAR LINES explorer */
.ctc-explorer-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:10px 0 12px}
.ctc-step{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid var(--line);border-radius:13px;background:var(--soft2);color:var(--ink);padding:11px 12px;min-height:78px}
.ctc-step-letter{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#0e7a63;color:#fff;font-weight:900;font-size:15px}
.ctc-step-name{font-weight:850;font-size:12.5px;line-height:1.3}
.ctc-step[aria-selected="true"]{border-color:var(--orange);background:rgba(239,118,34,.1);box-shadow:inset 0 0 0 1px var(--orange)}
.ctc-step[aria-selected="true"] .ctc-step-letter{background:var(--orange)}
.ctc-step.is-viewed .ctc-step-name::after{content:" \2713";color:#0e7a63;font-weight:900}
html[data-theme="dark"] .ctc-step.is-viewed .ctc-step-name::after{color:#8fe5cd}
.ctc-step-panel{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 16px}
.ctc-step-panel h5{margin:0 0 4px;font-size:15px}
.ctc-step-panel ul{margin:10px 0 0;padding-left:18px}
.ctc-step-panel li{font-size:13px;line-height:1.6;margin-bottom:5px}
.ctc-refrain{margin:14px 0;padding:12px 15px;border-radius:12px;border:1px solid var(--line);border-left:5px solid #0e7a63;background:var(--soft);font-size:13.5px;font-weight:800;line-height:1.6}
/* Reveal cards */
.ctc-reveal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0}
.ctc-reveal-card{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px}
.ctc-reveal-card h5{margin:0 0 6px;font-size:14.5px}
.ctc-reveal-card p{font-size:13px;line-height:1.6;margin:0 0 10px}
.ctc-reveal-card.is-open{border-color:#8fd3c1;background:#f0fbf7}
html[data-theme="dark"] .ctc-reveal-card.is-open{background:rgba(19,162,131,.12);border-color:rgba(19,162,131,.45)}
.ctc-reveal-body{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;font-size:13px;line-height:1.62}
.ctc-reveal-body p{margin:0 0 8px}
.ctc-reveal-body p:last-child{margin:0}
/* Paged decisions and scenarios */
.ctc-q-list{list-style:none;margin:0;padding:0}
.ctc-q{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px;list-style:none}
.ctc-q-group{font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;display:block;margin-bottom:5px}
html[data-theme="dark"] .ctc-q-group{color:#8fd4f2}
.ctc-q-stem{font-size:14.5px;font-weight:800;line-height:1.5;margin:0 0 11px}
.ctc-opt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.ctc-opt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ctc-opt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-opt.is-wrong{border-color:#a63232;background:#fdeeee}
.ctc-opt.is-correct::before{content:"\2713 ";font-weight:900;color:#08624f}
.ctc-opt.is-wrong::before{content:"\2715 ";font-weight:900;color:#8f2b2b}
html[data-theme="dark"] .ctc-opt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-opt.is-wrong{background:rgba(198,83,83,.16)}
html[data-theme="dark"] .ctc-opt.is-correct::before{color:#8fe5cd}
html[data-theme="dark"] .ctc-opt.is-wrong::before{color:#f2a7a7}
.ctc-why{margin-top:12px;padding:12px 13px;border:1px solid var(--line);border-left:4px solid var(--navy2);border-radius:12px;background:var(--panel)}
.ctc-why-head{margin:0 0 7px;font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ctc-why-head{color:#8fd4f2}
.ctc-why ul{margin:0;padding-left:18px}
.ctc-why li{font-size:12.8px;line-height:1.6;margin-bottom:6px}
/* Sorts */
.ctc-sort-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.ctc-sort-bucket{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:12px}
.ctc-sort-bucket h5{margin:0 0 4px;font-size:13.5px}
.ctc-sort-bucket p{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
.ctc-sort-bank,.ctc-sort-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;min-height:20px}
.ctc-item{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.ctc-item[aria-pressed="true"]{border-color:var(--orange);box-shadow:inset 0 0 0 2px rgba(239,118,34,.35)}
.ctc-item.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-item.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-item.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-item.is-wrong{background:rgba(198,83,83,.16)}
.ctc-sort-result{display:block;font-size:11.5px;font-weight:850;margin-top:5px}
.ctc-sort-why{display:block;font-size:12px;line-height:1.55;color:#4a5c6b;margin-top:4px}
html[data-theme="dark"] .ctc-sort-why{color:var(--muted)}
/* Chain of infection */
.ctc-chain-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.ctc-link{display:block;text-align:left;border:1px solid var(--line);border-left:5px solid var(--navy2);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px;min-height:76px}
.ctc-link strong{display:block;font-size:13.5px}
.ctc-link span.ctc-link-desc{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px}
.ctc-link-state{display:inline-block;margin-top:6px;font-size:11px;font-weight:850;color:#8a4813}
html[data-theme="dark"] .ctc-link-state{color:#f7bd8a}
.ctc-link.is-broken{border-left-color:#0e7a63;background:#f0fbf7}
.ctc-link.is-broken .ctc-link-state{color:#08624f}
html[data-theme="dark"] .ctc-link.is-broken{background:rgba(19,162,131,.14)}
html[data-theme="dark"] .ctc-link.is-broken .ctc-link-state{color:#8fe5cd}
.ctc-link.is-open{box-shadow:inset 0 0 0 2px var(--orange)}
.ctc-link-panel{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px;margin-bottom:12px}
.ctc-link-panel h5{margin:0 0 8px;font-size:14.5px}
.ctc-break{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-bottom:8px;font-size:13px;line-height:1.5;min-height:44px}
.ctc-break:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ctc-break.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-break.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-break.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-break.is-wrong{background:rgba(198,83,83,.16)}
/* Audits and surface maps */
.ctc-audit-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.ctc-audit-row{display:block;width:100%;text-align:left;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:44px}
.ctc-audit-row .ctc-audit-key{display:block;font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ctc-audit-row .ctc-audit-key{color:#8fd4f2}
.ctc-audit-row .ctc-audit-val{display:block;font-size:13.5px;line-height:1.5;margin-top:3px}
.ctc-audit-row .ctc-audit-flagtag{display:inline-block;font-size:11px;font-weight:850;margin-top:6px;color:var(--muted)}
.ctc-audit-row[aria-pressed="true"]{border-left-color:var(--orange);background:rgba(239,118,34,.08)}
.ctc-audit-row[aria-pressed="true"] .ctc-audit-flagtag::before{content:"\2691 flagged"}
.ctc-audit-row[aria-pressed="false"] .ctc-audit-flagtag::before{content:"not flagged"}
.ctc-audit-row.is-correct{border-left-color:#0e7a63}
.ctc-audit-row.is-wrong,.ctc-audit-row.is-missed{border-left-color:#a63232}
.ctc-audit-row.is-missed{background:#fdeeee}
html[data-theme="dark"] .ctc-audit-row.is-missed{background:rgba(198,83,83,.16)}
.ctc-audit-result{display:block;font-size:12px;line-height:1.55;margin-top:6px;font-weight:700}
/* Room / surface map grid */
.ctc-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;padding:12px;border:1px dashed var(--line);border-radius:16px;background:repeating-linear-gradient(135deg,var(--soft2),var(--soft2) 12px,var(--panel) 12px,var(--panel) 24px)}
.ctc-map-tile{display:block;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:11px;min-height:74px}
.ctc-map-tile strong{display:block;font-size:12.8px}
.ctc-map-tile span{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.45}
/* Sequences */
.ctc-tray{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.ctc-tray-surface{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--soft2),var(--soft));padding:13px}
.ctc-tray-surface h5{margin:0 0 8px;font-size:13.5px}
.ctc-seq-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ctc-seq-step{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;font-size:13px;line-height:1.5;min-height:44px}
.ctc-seq-step.is-placed{border-color:#0e7a63;background:#e9f8f2;opacity:.85}
.ctc-seq-step.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-seq-step.is-placed{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-seq-step.is-wrong{background:rgba(198,83,83,.16)}
.ctc-seq-track{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ctc-seq-track-item{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.ctc-seq-track-num{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#0e7a63;color:#fff;font-size:12px;font-weight:900}
/* Builders */
.ctc-build{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin:12px 0}
.ctc-builder.is-complete .ctc-build{grid-template-columns:1fr}
.ctc-part-label{display:block;font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0a5c86;margin-bottom:7px}
html[data-theme="dark"] .ctc-part-label{color:#8fd4f2}
.ctc-part p{font-size:13px;line-height:1.55;margin:0 0 9px}
.ctc-bopt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-bottom:8px;font-size:13px;line-height:1.5;min-height:44px}
.ctc-bopt:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ctc-bopt.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-bopt.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-bopt.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-bopt.is-wrong{background:rgba(198,83,83,.16)}
.ctc-out{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ctc-out li{font-size:13px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid #0e7a63;border-radius:9px;padding:9px 10px}
.ctc-out-empty{font-size:12.5px;color:var(--muted);margin:0}
/* Branching */
.ctc-stage{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:14px 15px}
.ctc-stage-title{margin:0 0 8px;font-size:15px}
.ctc-stage-scene{font-size:13.5px;line-height:1.62;margin:0 0 11px}
.ctc-choice{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:12px 13px;margin-bottom:9px;font-size:13.5px;line-height:1.5;min-height:44px}
.ctc-choice:hover:not(:disabled){border-color:var(--blue);background:var(--soft)}
.ctc-choice.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-choice.is-wrong{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-choice.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-choice.is-wrong{background:rgba(198,83,83,.16)}
.ctc-log{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.ctc-log li{font-size:12.5px;line-height:1.5;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--navy2);border-radius:9px;padding:8px 10px}
/* Sterile field map */
.ctc-fieldmap{border:2px dashed #0a5c86;border-radius:16px;padding:14px;margin:12px 0;background:linear-gradient(180deg,rgba(18,155,210,.06),transparent)}
.ctc-fieldmap-note{margin:0 0 10px;font-size:12px;font-weight:800;color:#0a5c86}
html[data-theme="dark"] .ctc-fieldmap-note{color:#8fd4f2}
.ctc-fieldgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.ctc-zone{display:block;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:11px 12px;min-height:76px}
.ctc-zone strong{display:block;font-size:13px}
.ctc-zone .ctc-zone-desc{display:block;font-size:11.8px;line-height:1.5;color:var(--muted);margin-top:3px}
.ctc-zone-state{display:inline-block;margin-top:6px;font-size:11px;font-weight:850;color:var(--muted)}
.ctc-zone.is-marked{border-color:var(--orange);box-shadow:inset 0 0 0 2px rgba(239,118,34,.3)}
.ctc-zone.is-correct{border-color:#0e7a63;background:#e9f8f2}
.ctc-zone.is-wrong,.ctc-zone.is-missed{border-color:#a63232;background:#fdeeee}
html[data-theme="dark"] .ctc-zone.is-correct{background:rgba(19,162,131,.16)}
html[data-theme="dark"] .ctc-zone.is-wrong,html[data-theme="dark"] .ctc-zone.is-missed{background:rgba(198,83,83,.16)}
.ctc-zone-result{display:block;font-size:12px;line-height:1.5;margin-top:6px;font-weight:700}
.ctc-labelpick{display:grid;gap:9px}
.ctc-surface{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--soft2);min-height:120px}
.ctc-surface h5{margin:0 0 8px;font-size:13.5px}
.ctc-surface-vis{height:56px;border-radius:10px;border:1px solid var(--line);background:repeating-linear-gradient(90deg,var(--panel),var(--panel) 14px,var(--soft2) 14px,var(--soft2) 28px);position:relative;overflow:hidden}
.ctc-surface-vis::after{content:"dry surface";position:absolute;inset:auto 8px 6px auto;font-size:10.5px;font-weight:850;color:var(--muted)}
.ctc-surface.is-wet .ctc-surface-vis{background:linear-gradient(180deg,rgba(18,155,210,.35),rgba(18,155,210,.18));border-color:#0a5c86}
.ctc-surface.is-wet .ctc-surface-vis::after{content:"visibly wet";color:#0a5c86}
.ctc-surface.is-dry .ctc-surface-vis{background:linear-gradient(180deg,rgba(239,118,34,.22),transparent);border-color:#8a4813}
.ctc-surface.is-dry .ctc-surface-vis::after{content:"dried early \2014 contact time not met";color:#8a4813}
.ctc-surface.is-done .ctc-surface-vis{background:linear-gradient(180deg,rgba(19,162,131,.3),rgba(19,162,131,.12));border-color:#0e7a63}
.ctc-surface.is-done .ctc-surface-vis::after{content:"full contact time met";color:#08624f}
/* Recap */
.ctc-recap-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.ctc-recap-item{border:1px solid var(--line);border-left:5px solid #0e7a63;border-radius:12px;background:var(--soft2);padding:12px 13px}
.ctc-recap-item h5{margin:0 0 5px;font-size:14px}
.ctc-recap-item p{margin:0;font-size:13px;line-height:1.6}
/* Checklist */
.ctc-checklist{list-style:none;margin:10px 0;padding:0;display:grid;gap:9px}
.ctc-checklist li{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 13px;min-height:48px}
.ctc-checklist input{width:28px;height:28px;flex:0 0 28px;margin:0}
.ctc-checklist label{display:block;font-size:13.5px;line-height:1.55;padding:4px 0}
.ctc-checklist label span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
/* Option-level explanation panel on the knowledge check */
.ctc-optexp{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.ctc-optexp-mine{margin:0 0 8px;font-size:13px;line-height:1.6}
.ctc-optexp-right{margin:0 0 8px;font-size:13px;line-height:1.6}
.ctc-optexp-head{margin:6px 0 6px;font-size:11.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ctc-optexp-head{color:#8fd4f2}
.ctc-optexp ul{margin:0;padding-left:18px}
.ctc-optexp li{font-size:12.8px;line-height:1.6;margin-bottom:6px}
.ctc-optexp li.is-correct strong{color:#08624f}
html[data-theme="dark"] .ctc-optexp li.is-correct strong{color:#8fe5cd}
/* Remediation */
.ctc-remediation{margin-top:14px;border:1px solid #e8bf8b;border-left:6px solid var(--orange);border-radius:14px;background:#fff8f0;padding:14px 16px}
.ctc-remediation.is-clear{border-color:#8fd3c1;border-left-color:#0e7a63;background:#effaf6}
.ctc-remediation.is-critical{border-color:#e6a9a9;border-left-color:#a63232;background:#fdf1f1}
.ctc-remediation h3{margin:0 0 6px;font-size:16px}
.ctc-remediation p{margin:0;font-size:13.5px;line-height:1.6}
.ctc-remediation-list{margin:10px 0 0;padding-left:18px}
.ctc-remediation-list li{font-size:13px;line-height:1.6;margin-bottom:6px}
.ctc-remediation-list li.is-critical strong{color:#8f2b2b}
html[data-theme="dark"] .ctc-remediation{background:rgba(239,118,34,.12)}
html[data-theme="dark"] .ctc-remediation.is-clear{background:rgba(19,162,131,.13)}
html[data-theme="dark"] .ctc-remediation.is-critical{background:rgba(198,83,83,.15)}
html[data-theme="dark"] .ctc-remediation-list li.is-critical strong{color:#f2a7a7}
/* Diagrams, cards, callouts */
.ctc-flow{display:grid;gap:9px;margin:12px 0}
.ctc-flow-step{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:start;border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:11px 12px}
.ctc-flow-num{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#0a5c86;color:#fff;font-weight:900;font-size:13px}
.ctc-flow-step h5{margin:0 0 4px;font-size:13.5px}
.ctc-flow-step p{margin:0;font-size:12.8px;line-height:1.55}
.ctc-hierarchy{display:grid;gap:8px;margin:12px 0}
.ctc-tier{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--panel)}
.ctc-tier h5{margin:0 0 4px;font-size:13.5px}
.ctc-tier p{margin:0;font-size:12.8px;line-height:1.55}
.ctc-tier--clean{border-left:5px solid #b8c4d6}
.ctc-tier--disinfect{border-left:5px solid #0a5c86}
.ctc-tier--hld{border-left:5px solid #5c3184}
.ctc-tier--sterile{border-left:5px solid #0e7a63}
.ctc-cardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:12px 0}
.ctc-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px}
.ctc-card h5{margin:0 0 6px;font-size:14px}
.ctc-card p{margin:0;font-size:13px;line-height:1.6}
.ctc-card--clean{border-top:4px solid #0a5c86}
.ctc-card--sterile{border-top:4px solid #0e7a63}
.ctc-card--dirty{border-top:4px solid var(--orange)}
.ctc-card--stop{border-top:4px solid #a63232}
.ctc-callout{border:1px solid var(--line);border-left:5px solid #0a5c86;border-radius:12px;background:var(--soft);padding:13px 15px;margin:14px 0}
.ctc-callout h5{margin:0 0 6px;font-size:14px}
.ctc-callout p{margin:0 0 8px;font-size:13px;line-height:1.62}
.ctc-callout p:last-child{margin:0}
.ctc-callout--stop{border-left-color:#a63232}
.ctc-callout--rule{border-left-color:#0e7a63}
.ctc-standards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:12px 0}
.ctc-standard{border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:12px}
.ctc-standard strong{display:block;font-size:13px;margin-bottom:4px}
.ctc-standard span{display:block;font-size:12.5px;line-height:1.55}
/* Credits */
.ctc-credits{border:1px solid var(--line);border-radius:14px;background:var(--soft2);padding:15px 17px;margin:18px 0}
.ctc-credits h4{margin:0 0 8px}
.ctc-credits ul{margin:0;padding-left:18px}
.ctc-credits li{font-size:12.8px;line-height:1.6;margin-bottom:7px;overflow-wrap:break-word}
.ctc-review-note{border:1px dashed var(--orange);border-radius:12px;background:rgba(239,118,34,.07);padding:12px 14px;margin:14px 0;font-size:12.8px;line-height:1.6}
.ctc-closing{border:1px solid #8fd3c1;border-left:6px solid #0e7a63;border-radius:14px;background:#effaf6;padding:14px 16px;margin:16px 0;font-size:14.5px;font-weight:800;line-height:1.6}
html[data-theme="dark"] .ctc-closing{background:rgba(19,162,131,.14)}
/* Job aid + print */
.ctc-jobaid{border:2px solid #0e7a63;border-radius:14px;background:var(--panel);padding:16px 18px;margin:14px 0}
.ctc-jobaid-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:2px solid #0e7a63;padding-bottom:8px;margin-bottom:12px}
.ctc-jobaid-head h4{margin:0;font-size:17px}
.ctc-jobaid-head span{font-size:11.5px;color:var(--muted)}
.ctc-jobaid-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ctc-jobaid-step{border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--soft2)}
.ctc-jobaid-step strong{display:block;font-size:12.5px;margin-bottom:3px}
.ctc-jobaid-step span{display:block;font-size:12px;line-height:1.5}
.ctc-jobaid-foot{margin-top:12px;font-size:12px;line-height:1.55;border-top:1px solid var(--line);padding-top:9px}
.ctc-print-sheet{display:none}
@media print{
 html.ctc-printing body>*{display:none!important}
 html.ctc-printing .ctc-print-sheet{display:block!important;position:static;padding:0;margin:0}
 html.ctc-printing .ctc-jobaid{border:1.5pt solid #0e7a63;box-shadow:none;background:#fff;color:#000;page-break-inside:avoid}
 html.ctc-printing .ctc-jobaid-step{background:#fff;border:.7pt solid #999}
 html.ctc-printing .ctc-jobaid-grid{grid-template-columns:1fr 1fr}
}
/* Focus and responsive */
.ctc-step:focus-visible,.ctc-opt:focus-visible,.ctc-item:focus-visible,.ctc-audit-row:focus-visible,
.ctc-seq-step:focus-visible,.ctc-bopt:focus-visible,.ctc-choice:focus-visible,.ctc-break:focus-visible,
.ctc-widget button:focus-visible,.ctc-checklist input:focus-visible,
.ctc-step-panel:focus-visible,.ctc-link-panel:focus-visible,.ctc-done:focus-visible,
.ctc-q-stem:focus-visible,.ctc-part-label:focus-visible,.ctc-stage-title:focus-visible,
.ctc-recap-item:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
dialog:has(.ctc-scope) #modalContent a{color:#0a5c86;text-decoration:underline;text-underline-offset:2px}
html[data-theme="dark"] dialog:has(.ctc-scope) #modalContent a{color:#7fd0f0}
dialog:has(.ctc-scope) .sc-kicker,dialog:has(.ctc-scope) .eyebrow{color:#a8500f}
html[data-theme="dark"] dialog:has(.ctc-scope) .sc-kicker,
html[data-theme="dark"] dialog:has(.ctc-scope) .eyebrow{color:#f0994f}
html[data-theme="dark"] dialog:has(.ctc-scope) .sc-section h3,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-card h5,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-callout h5,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-widget-head h4{color:#7fd0f0}
dialog:has(.ctc-scope) .triage-module-action,dialog:has(.ctc-scope) .triage-manual-actions button{min-height:44px}
@media(max-width:980px){
 .ctc-explorer-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ctc-chain-links{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ctc-zone-clean{border-right:0;border-bottom:3px dashed var(--line)}
}
@media(max-width:780px){
 .ctc-widget{padding:14px}
 .ctc-actions button{flex:1 1 100%}
 .ctc-chain-links{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .ctc-progress span{transition:none}
}

/* Asepsis — AA-contrast secondary text, scoped to this lesson's modal only */
dialog:has(.ctc-scope) .ctc-sort-bucket p,
dialog:has(.ctc-scope) .ctc-map-tile span,
dialog:has(.ctc-scope) .ctc-link-desc,
dialog:has(.ctc-scope) .ctc-zone-desc,
dialog:has(.ctc-scope) .ctc-checklist label span,
dialog:has(.ctc-scope) .ctc-out-empty,
dialog:has(.ctc-scope) .ctc-zone-state,
dialog:has(.ctc-scope) .ctc-audit-row .ctc-audit-flagtag,
dialog:has(.ctc-scope) .ctc-jobaid-head span{color:#4a5c6b}
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-sort-bucket p,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-map-tile span,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-link-desc,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-zone-desc,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-checklist label span,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-out-empty,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-zone-state,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-audit-row .ctc-audit-flagtag,
html[data-theme="dark"] dialog:has(.ctc-scope) .ctc-jobaid-head span{color:var(--muted)}
html[data-theme="dark"] dialog:has(.ctc-scope) #modalContent a{color:#9edcf8}

/* ---------- Catheter Care: bespoke diagrams, video placeholders and new widgets ---------- */
/* Peripheral IV system anatomy rail */
.ctc-system{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 18px;margin:14px 0 0}
.ctc-system-rail{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;margin:12px 0 0}
.ctc-node{flex:1 1 118px;min-width:118px;border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:10px 11px;position:relative}
.ctc-node + .ctc-node{margin-left:16px}
.ctc-node + .ctc-node::before{content:"";position:absolute;left:-16px;top:50%;width:16px;height:3px;background:linear-gradient(90deg,#9ccde8,#0a5c86);border-radius:2px}
.ctc-node strong{display:block;font-size:12px;line-height:1.35}
.ctc-node span{display:block;font-size:11.5px;line-height:1.5;margin-top:4px}
.ctc-node--pet{border-color:#8fd3c1;background:#e4f6ef}
.ctc-node--critical{border-color:#e6a9a9;background:#fbe6e6}
.ctc-node--escalate{border-color:#c9aee4;background:#f2e9fa}
html[data-theme="dark"] .ctc-node--pet{background:rgba(19,162,131,.16);border-color:rgba(19,162,131,.5)}
html[data-theme="dark"] .ctc-node--critical{background:rgba(166,50,50,.2);border-color:rgba(230,169,169,.45)}
html[data-theme="dark"] .ctc-node--escalate{background:rgba(92,49,132,.24);border-color:rgba(201,174,228,.45)}
/* Urinary closed-drainage height diagram */
.ctc-drain{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 18px;margin:14px 0 0}
.ctc-drain-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;align-items:stretch;margin-top:12px}
.ctc-drain-level{border-left:3px dashed #0a5c86;padding:8px 0 8px 12px;font-size:12px;line-height:1.5}
.ctc-drain-level strong{display:block;font-size:12px}
.ctc-drain-good{border-color:#0e7a63}
.ctc-drain-bad{border-color:#a63232}
.ctc-drain-floor{margin-top:10px;border-top:4px double var(--line);padding-top:7px;font-size:11.5px}
/* Limb / paw hotspot map */
.ctc-limb{border:1px solid var(--line);border-radius:16px;background:var(--soft2);padding:16px 18px;margin:14px 0 0}
.ctc-limb-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.ctc-spot{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 11px;text-align:left;font:inherit;cursor:pointer;min-height:44px}
.ctc-spot:hover{border-color:#0a5c86}
.ctc-spot strong{display:block;font-size:12.5px}
.ctc-spot span{display:block;font-size:11.5px;line-height:1.5;margin-top:3px}
.ctc-spot.is-open{border-color:#0a5c86;box-shadow:inset 0 0 0 1px #0a5c86}
.ctc-spot.is-viewed{background:#eef7fc}
html[data-theme="dark"] .ctc-spot.is-viewed{background:rgba(18,155,210,.14)}
/* Dressing integrity layers */
.ctc-layers{display:grid;gap:6px;margin:12px 0 0}
.ctc-layer{border:1px solid var(--line);border-left:5px solid #0a5c86;border-radius:10px;background:var(--panel);padding:9px 12px;font-size:12.5px;line-height:1.55}
.ctc-layer strong{font-size:12.5px}
.ctc-layer:nth-child(2){border-left-color:#0e7a63}
.ctc-layer:nth-child(3){border-left-color:#c07d2a}
.ctc-layer:nth-child(4){border-left-color:#a63232}
/* Complication status cards */
.ctc-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0 0}
.ctc-status{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:11px 13px}
.ctc-status h5{margin:0 0 5px;font-size:12.5px}
.ctc-status p{margin:0;font-size:12px;line-height:1.55}
.ctc-status--stop{border-top:4px solid #a63232}
.ctc-status--watch{border-top:4px solid #c07d2a}
.ctc-status--ok{border-top:4px solid #0e7a63}
.ctc-status--escalate{border-top:4px solid #5c3184}
/* Observation timeline strip */
.ctc-timeline{display:flex;gap:0;flex-wrap:wrap;margin:12px 0 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ctc-tl-step{flex:1 1 128px;min-width:128px;padding:10px 12px;border-right:1px solid var(--line);background:var(--panel)}
.ctc-tl-step:last-child{border-right:0}
.ctc-tl-step strong{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#0a5c86}
.ctc-tl-step span{display:block;font-size:12px;line-height:1.5;margin-top:4px}
html[data-theme="dark"] .ctc-tl-step strong{color:#9edcf8}
/* Video placeholder */
.ctc-video{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:0;margin:14px 0 0;overflow:hidden}
.ctc-video-poster{position:relative;aspect-ratio:16/9;background-color:#0f2b3d;background-image:
 radial-gradient(circle at 22% 30%,rgba(18,155,210,.28),transparent 55%),
 radial-gradient(circle at 78% 68%,rgba(19,162,131,.26),transparent 52%),
 linear-gradient(135deg,#0f2b3d,#123c52 55%,#0e4a3c);
 display:flex;flex-direction:column;justify-content:flex-end;padding:18px 20px;color:#eef6fa}
.ctc-video-poster::after{content:"";position:absolute;inset:0;background-image:
 repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 40px),
 repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 1px,transparent 1px 40px);pointer-events:none}
.ctc-video-badge{position:absolute;top:14px;left:20px;display:inline-flex;align-items:center;gap:7px;background:rgba(239,118,34,.95);color:#fff;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:850;letter-spacing:.03em}
.ctc-video-ratio{position:absolute;top:14px;right:20px;font-size:11px;font-weight:800;letter-spacing:.06em;color:#cfe6f2;background:rgba(0,0,0,.34);border-radius:999px;padding:5px 11px}
.ctc-video-art{position:absolute;inset:44px 20px 74px;display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:10px;align-content:center}
.ctc-video-art div{border:1px solid rgba(207,230,242,.42);border-radius:10px;padding:8px 9px;font-size:10.5px;line-height:1.4;color:#dff0f8;background:rgba(8,28,40,.42)}
.ctc-video-art div strong{display:block;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#8fd4f2;margin-bottom:3px}
.ctc-video-title{position:relative;margin:0;font-size:17px;font-weight:850;line-height:1.3}
.ctc-video-meta{position:relative;margin:6px 0 0;font-size:12px;color:#cfe6f2}
.ctc-video-body{padding:15px 18px 17px}
.ctc-video-purpose{margin:0 0 10px;font-size:13px;line-height:1.6}
.ctc-video-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.ctc-video-panel{border:1px solid var(--line);border-radius:12px;background:var(--soft2);padding:12px 14px;margin:8px 0 0}
.ctc-video-panel h5{margin:0 0 7px;font-size:12.5px}
.ctc-video-panel ol,.ctc-video-panel ul{margin:0;padding-left:18px}
.ctc-video-panel li{font-size:12.5px;line-height:1.6;margin-bottom:5px}
.ctc-video-note{margin:9px 0 0;font-size:12px;line-height:1.6;padding:9px 11px;border-radius:10px;border:1px dashed #0a5c86;background:#fff}
html[data-theme="dark"] .ctc-video-note{background:rgba(10,92,134,.16)}
/* Select all that apply */
.ctc-multi-list{display:grid;gap:8px;margin:12px 0 0}
.ctc-multi-row{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:0;overflow:hidden}
.ctc-multi-opt{display:block;width:100%;text-align:left;font:inherit;background:transparent;border:0;padding:11px 13px;cursor:pointer;min-height:44px;color:inherit}
.ctc-multi-opt:hover{background:var(--soft2)}
.ctc-multi-opt.is-picked{background:#e6f3fb;box-shadow:inset 3px 0 0 #0a5c86}
.ctc-multi-opt.is-correct{background:#e4f6ef;box-shadow:inset 3px 0 0 #0e7a63}
.ctc-multi-opt.is-missed{background:#fff0de;box-shadow:inset 3px 0 0 #c07d2a}
.ctc-multi-opt.is-wrong{background:#fbe6e6;box-shadow:inset 3px 0 0 #a63232}
html[data-theme="dark"] .ctc-multi-opt.is-picked{background:rgba(18,155,210,.18)}
html[data-theme="dark"] .ctc-multi-opt.is-correct{background:rgba(19,162,131,.18)}
html[data-theme="dark"] .ctc-multi-opt.is-missed{background:rgba(239,118,34,.18)}
html[data-theme="dark"] .ctc-multi-opt.is-wrong{background:rgba(166,50,50,.22)}
.ctc-multi-why{display:block;padding:0 13px 11px;font-size:12px;line-height:1.55;color:#4a5c6b}
html[data-theme="dark"] .ctc-multi-why{color:var(--muted)}
/* Matching */
.ctc-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 0}
.ctc-pair-col h5{margin:0 0 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ctc-pair-col h5{color:#9edcf8}
.ctc-pair-item{margin-bottom:8px}
.ctc-pair-btn{display:block;width:100%;text-align:left;font:inherit;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 12px;cursor:pointer;min-height:44px;color:inherit;font-size:12.5px;line-height:1.5}
.ctc-pair-btn:hover{border-color:#0a5c86}
.ctc-pair-btn.is-picked{border-color:#0a5c86;background:#e6f3fb}
.ctc-pair-btn.is-correct{border-color:#0e7a63;background:#e4f6ef}
.ctc-pair-btn.is-wrong{border-color:#a63232;background:#fbe6e6}
html[data-theme="dark"] .ctc-pair-btn.is-picked{background:rgba(18,155,210,.18)}
html[data-theme="dark"] .ctc-pair-btn.is-correct{background:rgba(19,162,131,.18)}
html[data-theme="dark"] .ctc-pair-btn.is-wrong{background:rgba(166,50,50,.22)}
.ctc-pair-slot{display:block;margin:5px 0 0;font-size:12px;line-height:1.55;padding:7px 10px;border-radius:9px;background:#e4f6ef;color:#173b4b}
html[data-theme="dark"] .ctc-pair-slot{background:rgba(19,162,131,.16);color:#eef6fa}
/* Two-stage recap cases */
.ctc-case{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:13px 15px}
.ctc-case-stem{margin:0 0 10px;font-size:13.5px;line-height:1.6;font-weight:700}
.ctc-case-substep{margin:12px 0 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#0a5c86}
html[data-theme="dark"] .ctc-case-substep{color:#9edcf8}
.ctc-case-opts{display:flex;gap:8px;flex-wrap:wrap}
.ctc-case-opts button{min-height:44px}
.ctc-case-solved{margin:10px 0 0;padding:9px 11px;border-radius:10px;background:#e4f6ef;font-size:12.5px;line-height:1.55}
html[data-theme="dark"] .ctc-case-solved{background:rgba(19,162,131,.16)}
@media (max-width:760px){
 .ctc-pair-grid{grid-template-columns:1fr}
 .ctc-drain-stack{grid-template-columns:1fr}
 .ctc-node + .ctc-node{margin-left:0;margin-top:16px}
 .ctc-node + .ctc-node::before{left:50%;top:-16px;width:3px;height:16px}
 .ctc-video-art{position:static;inset:auto;margin:10px 0 0;grid-template-columns:1fr 1fr}
 .ctc-video-poster{aspect-ratio:auto;padding:52px 16px 16px}
}
@media (prefers-reduced-motion:reduce){
 dialog:has(.ctc-scope) *{animation:none!important;transition:none!important}
}
/* Print: the job aid only */
@media print{
 html.ctc-printing .ctc-video,html.ctc-printing .ctc-limb-map{display:none}
}

/* ---- Clinical Diagnostics — Laboratory Procedures (lp-) ----
   Recreates the source document's bright clinical canvas, thin orange key-term dividers,
   orange-left-rule accordions, tile mosaics and blue/green assessment feedback inside the
   existing HLS design system. Dark mode and contrast are preserved throughout. */
.lp-scope{--lp-orange:#d9591a;--lp-orange-text:#ad4a12;--lp-orange-fill:#ad4a12;--lp-orange-on-fill:#fff;--lp-orange-soft:#fff3ea;--lp-rule:#e2e2e2;--lp-canvas:#fff;--lp-ink:var(--ink);--lp-quiet:#546b78;--lp-blue:#095193;--lp-green:#0d7a58}
html[data-theme="dark"] .lp-scope{--lp-orange:#ff8b4d;--lp-orange-text:#ff8b4d;--lp-orange-fill:#ff8b4d;--lp-orange-on-fill:#0c1d29;--lp-orange-soft:rgba(255,139,77,.13);--lp-rule:#2f4a5a;--lp-canvas:var(--panel);--lp-quiet:#b6c7d1;--lp-blue:#7cc4f5;--lp-green:#5fd7b0}
.lp-scope{color:var(--lp-ink)}
.lp-scope p,.lp-scope li{line-height:1.62}

/* Section band header — small uppercase title, left aligned, as on the source pages. */
.lp-band{margin:0 0 18px;padding:16px 18px;border:1px solid var(--lp-rule);border-radius:16px;background:var(--lp-canvas);border-top:3px solid var(--lp-orange)}
.lp-band p.lp-band-kicker{margin:0;color:var(--lp-orange-text);font-size:11px;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.lp-band h3{margin:6px 0 6px;font-size:20px;letter-spacing:.01em}
.lp-band p{margin:0;color:var(--lp-quiet)}

/* Centered key-term intro sentence with the thin orange rule above it. */
.lp-intro{max-width:640px;margin:22px auto;text-align:center}
.lp-intro-rule{width:74px;height:2px;margin:0 auto 14px;background:var(--lp-orange);border-radius:2px}
.lp-intro p{margin:0;color:var(--lp-quiet);font-size:16px}
.lp-intro strong{color:var(--lp-ink);font-weight:800}

/* Key-term reveal cards — three across on desktop, one on narrow screens. */
.lp-terms{margin:18px 0 6px}
.lp-terms-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.lp-terms-count{margin:0;color:var(--lp-quiet);font-size:12px;font-weight:700}
.lp-terms-actions{display:flex;flex-wrap:wrap;gap:8px}
.lp-terms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:12px;margin:0;padding:0;list-style:none}
.lp-term{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--lp-rule);border-radius:14px;background:var(--lp-canvas)}
.lp-term.is-open{border-color:var(--lp-orange);background:var(--lp-orange-soft)}
.lp-term h4{margin:0;font-size:14.5px;line-height:1.35}
.lp-term-div{height:1px;background:var(--lp-orange);opacity:.55}
.lp-term-body{margin:0;color:var(--lp-quiet);font-size:13.5px}
.lp-term-btn{align-self:flex-start;min-height:44px;padding:10px 14px;border:1px solid var(--lp-rule);border-radius:999px;background:var(--lp-canvas);color:var(--lp-blue);font-size:12px;font-weight:800}
.lp-term-btn:hover{border-color:var(--lp-orange);color:var(--lp-orange-text)}
.lp-term-btn[aria-expanded="true"]{background:var(--lp-orange-fill);border-color:var(--lp-orange-fill);color:var(--lp-orange-on-fill)}

/* Native tile mosaic — recreates the source photo grids without shipping unlicensed rasters. */
.lp-mosaic{margin:20px 0}
.lp-mosaic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.lp-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:104px;padding:12px;border:1px solid var(--lp-rule);border-radius:12px;background:linear-gradient(150deg,var(--soft),var(--lp-canvas));overflow:hidden}
.lp-tile:before{content:"";position:absolute;inset:0;background:radial-gradient(120px 70px at 78% 18%,rgba(217,89,26,.18),transparent 70%);pointer-events:none}
.lp-tile-icon{font-size:20px;line-height:1}
.lp-tile strong{position:relative;font-size:13px}
.lp-tile span{position:relative;color:var(--lp-quiet);font-size:11.5px}
.lp-mosaic figcaption{margin-top:10px;color:var(--lp-quiet);font-size:12px}

/* Accordion reading panels — plus/minus rows, light rules, thin orange left rule when open. */
.lp-accordion{margin:20px 0;border-top:1px solid var(--lp-rule)}
.lp-accordion-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 0}
.lp-acc-count{margin:0;color:var(--lp-quiet);font-size:12px;font-weight:700}
.lp-acc-row{border-bottom:1px solid var(--lp-rule)}
.lp-acc-btn{display:flex;width:100%;gap:12px;align-items:center;justify-content:space-between;min-height:52px;padding:14px 4px;border:0;background:transparent;color:var(--lp-ink);text-align:left;font-size:15px;font-weight:800}
.lp-acc-btn:hover{color:var(--lp-orange-text)}
.lp-acc-sign{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--lp-rule);border-radius:8px;color:var(--lp-orange-text);font-size:16px;font-weight:800}
.lp-acc-row.is-open .lp-acc-sign{background:var(--lp-orange-fill);border-color:var(--lp-orange-fill);color:var(--lp-orange-on-fill)}
.lp-acc-panel{padding:2px 4px 18px 16px;border-left:2px solid var(--lp-orange);margin-left:2px}
.lp-acc-panel p:first-child{margin-top:0}
.lp-acc-panel p{color:var(--lp-ink)}
.lp-acc-list{margin:10px 0 0;padding-left:20px}
.lp-acc-list li{margin-bottom:6px}

/* Concise callout cards. */
.lp-callout{margin:18px 0;padding:15px 16px;border:1px solid var(--lp-rule);border-left:3px solid var(--lp-orange);border-radius:12px;background:var(--soft2)}
.lp-callout h4{margin:0 0 8px;font-size:13.5px;letter-spacing:.02em}
.lp-callout p{margin:0;color:var(--lp-quiet);font-size:13.5px}
.lp-callout ul{margin:8px 0 0;padding-left:20px;color:var(--lp-quiet);font-size:13.5px}
.lp-callout li{margin-bottom:5px}
.lp-review{margin:18px 0;padding:15px 16px;border:1px dashed var(--lp-orange);border-radius:12px;background:var(--lp-orange-soft)}
.lp-review h4{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--lp-orange-text)}
.lp-review p{margin:0;color:var(--lp-ink);font-size:13.5px}

/* Practice activities. */
.lp-activity{margin:20px 0;padding:16px;border:1px solid var(--lp-rule);border-radius:16px;background:var(--lp-canvas)}
.lp-activity>h4{margin:0 0 4px;font-size:15px}
.lp-activity-lead{margin:0 0 12px;color:var(--lp-quiet);font-size:13.5px}
.lp-tag{display:inline-block;margin-bottom:8px;padding:4px 9px;border-radius:999px;background:var(--soft);color:var(--lp-blue);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.lp-count{margin:0 0 10px;color:var(--lp-quiet);font-size:12px;font-weight:700}
.lp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lp-btn{min-height:44px;padding:11px 14px;border:1px solid var(--lp-rule);border-radius:10px;background:var(--lp-canvas);color:var(--lp-ink);font-size:13px;font-weight:800}
.lp-btn:hover:not(:disabled){border-color:var(--lp-orange);color:var(--lp-orange-text)}
.lp-btn:disabled{opacity:.55;cursor:not-allowed}
.lp-feedback{margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--lp-rule);background:var(--soft2)}
.lp-feedback p{margin:0;font-size:13.5px}
.lp-feedback.is-good{border-color:var(--lp-green);background:rgba(13,122,88,.09)}
.lp-feedback.is-bad{border-color:var(--red);background:rgba(198,83,83,.11)}
.lp-done{margin-top:12px;padding:12px 14px;border:1px solid var(--lp-green);border-radius:12px;background:rgba(13,122,88,.09);font-size:13.5px}

/* Ordered sequence. */
.lp-seq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.lp-seq-step{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--lp-rule);border-radius:12px;background:var(--lp-canvas);color:var(--lp-ink);text-align:left;font-size:13.5px;font-weight:700}
.lp-seq-step:hover:not(:disabled){border-color:var(--lp-orange)}
.lp-seq-step.is-placed{border-color:var(--lp-green);background:rgba(13,122,88,.1);color:var(--lp-ink);opacity:1}
.lp-seq-step.is-wrong{border-color:var(--red);background:rgba(198,83,83,.12)}
.lp-seq-track{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.lp-seq-track-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--lp-rule);border-left:3px solid var(--lp-orange);border-radius:10px;background:var(--soft2);font-size:13.5px}
.lp-seq-track-num{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--lp-orange-fill);color:var(--lp-orange-on-fill);font-size:12px;font-weight:850}

/* Matching. */
.lp-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lp-pair-col{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.lp-pair-col h5{margin:0 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--lp-quiet)}
.lp-pair-btn{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--lp-rule);border-radius:12px;background:var(--lp-canvas);color:var(--lp-ink);text-align:left;font-size:13.5px;font-weight:700}
.lp-pair-btn:hover:not(:disabled){border-color:var(--lp-orange)}
.lp-pair-btn.is-picked{border-color:var(--lp-orange);background:var(--lp-orange-soft)}
.lp-pair-btn.is-correct{border-color:var(--lp-green);background:rgba(13,122,88,.1)}
.lp-pair-slot{display:block;margin-top:6px;padding:8px 10px;border-radius:9px;background:var(--soft);color:var(--lp-ink);font-size:12.5px}

/* Classification. */
.lp-sort-bank,.lp-bucket-list{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.lp-sort-item{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--lp-rule);border-radius:12px;background:var(--lp-canvas);color:var(--lp-ink);text-align:left;font-size:13.5px;font-weight:700}
.lp-sort-item.is-selected{border-color:var(--lp-orange);background:var(--lp-orange-soft)}
.lp-sort-item.is-correct{border-color:var(--lp-green);background:rgba(13,122,88,.1)}
.lp-sort-item.is-wrong{border-color:var(--red);background:rgba(198,83,83,.11)}
.lp-sort-result{display:block;margin-top:5px;font-size:12px;font-weight:850}
.lp-sort-why{display:block;margin-top:3px;color:var(--lp-quiet);font-size:12.5px;font-weight:600}
.lp-buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:12px}
.lp-bucket{padding:12px;border:1px dashed var(--lp-rule);border-radius:12px;background:var(--soft2)}
.lp-bucket h5{margin:0 0 4px;font-size:13px}
.lp-bucket p{margin:0 0 8px;color:var(--lp-quiet);font-size:12px}

/* Knowledge-reinforcement prompts. */
.lp-check-list{margin:0;padding:0;list-style:none;display:grid;gap:16px}
.lp-q-stem{margin:0 0 4px;font-size:14px;font-weight:800}
.lp-q-kicker{display:block;margin-bottom:4px;color:var(--lp-orange-text);font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.lp-opt{display:block;width:100%;min-height:48px;margin-top:8px;padding:12px 14px;border:1px solid var(--lp-rule);border-radius:12px;background:var(--lp-canvas);color:var(--lp-ink);text-align:left;font-size:13.5px}
.lp-opt:hover:not(:disabled){border-color:var(--lp-orange);background:var(--lp-orange-soft)}
.lp-opt.is-correct{border-color:var(--lp-green);background:rgba(13,122,88,.1);font-weight:800}
.lp-opt.is-wrong{border-color:var(--red);background:rgba(198,83,83,.11)}
.lp-opt:disabled{cursor:default}

/* Supplied video player. */
.lp-video{margin:20px 0;padding:14px;border:1px solid var(--lp-rule);border-radius:16px;background:var(--lp-canvas)}
.lp-video-label{margin:0 0 4px;color:var(--lp-orange-text);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.lp-video h4{margin:0 0 10px;font-size:15px}
.lp-video-frame{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;border-radius:12px;background:#0d2433}
.lp-video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0d2433;object-fit:contain}
.lp-video-meta{margin:10px 0 0;color:var(--lp-quiet);font-size:12.5px}
.lp-video-meta strong{color:var(--lp-ink)}
.lp-video-copy{margin:8px 0 0;font-size:13.5px}
.lp-video-status{margin:8px 0 0;color:var(--lp-quiet);font-size:12.5px}
.lp-video-download{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;padding:11px 14px;border:1px solid var(--lp-rule);border-radius:10px;background:var(--lp-canvas);color:var(--lp-blue);font-size:13px;font-weight:800;text-decoration:none}
.lp-video-download:hover{border-color:var(--lp-orange);color:var(--lp-orange-text)}
/* Fallback copy rendered inside <video> by browsers without MP4 support sits on the dark frame. */
.lp-video-frame video{color:#eef6fa}
.lp-video-fallback{color:#9fd4f5;font-size:13px;font-weight:800}
.lp-video.is-error{border-color:var(--red)}

/* Replacement-ready video placeholders. */
.lp-ph{margin:20px 0;padding:14px;border:1px solid var(--lp-rule);border-radius:16px;background:var(--lp-canvas)}
.lp-ph-label{margin:0 0 4px;color:var(--lp-orange-text);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.lp-ph h4{margin:0 0 10px;font-size:15px}
.lp-ph-frame{position:relative;aspect-ratio:16/9;width:100%;display:grid;place-content:center;gap:6px;padding:18px;text-align:center;border-radius:12px;background:#0f2b3d;background-image:linear-gradient(140deg,#0f2b3d,#134a5f);color:#fff}
.lp-ph-badge{display:inline-block;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.lp-ph-frame strong{font-size:17px}
.lp-ph-frame span{color:#dbeaf2;font-size:12.5px}
.lp-ph-meta{margin:10px 0 0;color:var(--lp-quiet);font-size:12.5px}
.lp-ph-meta strong{color:var(--lp-ink)}
.lp-ph-panel{margin-top:10px;padding:12px 14px;border:1px solid var(--lp-rule);border-left:3px solid var(--lp-orange);border-radius:12px;background:var(--soft2)}
.lp-ph-panel p{margin:0 0 8px;font-size:13.5px}
.lp-ph-panel ul{margin:0;padding-left:20px;color:var(--lp-quiet);font-size:13px}
.lp-ph-panel li{margin-bottom:5px}
.lp-ph-key{display:inline-block;margin-top:8px;padding:4px 8px;border-radius:8px;background:var(--soft);color:var(--lp-quiet);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
.lp-ph-status{margin:8px 0 0;color:var(--lp-quiet);font-size:12px}

/* Assessment result note. */
.lp-result-note{margin-top:14px;padding:15px 16px;border:1px solid var(--lp-rule);border-left:3px solid var(--lp-blue);border-radius:12px;background:var(--soft2)}
.lp-result-note h3{margin:0 0 6px;font-size:15px}
.lp-result-note p{margin:0;font-size:13.5px}
.lp-result-note.is-pass{border-left-color:var(--lp-green)}
.lp-result-note.is-retake{border-left-color:var(--lp-orange)}
.lp-result-note-review{margin-top:8px!important;color:var(--lp-quiet);font-size:12.5px!important}

/* Completion state — native, no third-party art. */
.lp-finish{margin:20px 0;padding:20px;border:1px solid var(--lp-rule);border-top:3px solid var(--lp-orange);border-radius:16px;background:var(--lp-canvas);text-align:center}
.lp-finish-mark{width:56px;height:56px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:var(--lp-orange);color:#fff;font-size:26px;font-weight:850}
.lp-finish h4{margin:0 0 6px;font-size:17px}
.lp-finish p{margin:0 auto;max-width:520px;color:var(--lp-quiet);font-size:13.5px}

/* Wider modal for this lesson, mosaics and pairs stack on narrow screens. */
dialog:has(.lp-scope){width:min(980px,calc(100% - 32px))}
@media(max-width:780px){
 .lp-pair-grid{grid-template-columns:1fr}
 .lp-terms-grid{grid-template-columns:1fr}
 .lp-mosaic-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}
 .lp-band{padding:14px}
 .lp-acc-btn{font-size:14px}
 .lp-acc-panel{padding-left:12px}
}
@media(prefers-reduced-motion:reduce){
 .lp-scope *,.lp-scope *:before,.lp-scope *:after{transition:none!important;animation:none!important}
}
.lp-scope :focus-visible{outline:3px solid var(--lp-orange);outline-offset:2px}
@media print{
 .lp-scope .lp-actions,.lp-scope .lp-term-btn,.lp-scope .lp-acc-btn .lp-acc-sign{display:none!important}
 .lp-scope .lp-term-body,.lp-scope .lp-acc-panel,.lp-scope .lp-ph-panel{display:block!important}
 .lp-scope .lp-video-frame,.lp-scope .lp-ph-frame{border:1px solid #999;background:#fff!important;color:#000!important}
}

/* ---- Book module type (paginated reader) ---- */
.book-reader{max-width:760px;margin:0 auto;font-size:calc(1em * var(--book-font-scale, 1))}
.book-reader-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:18px}
.book-reader-progress{flex:1 1 220px;min-width:180px}
.book-reader-progress>span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:650}
.book-reader-controls{display:flex;flex-wrap:wrap;gap:8px}
.book-reader-controls button{font-size:12px;padding:8px 12px}
.book-page{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px 36px;box-shadow:0 10px 30px rgba(0,0,0,.06);animation:book-page-turn .28s ease-out}
.book-page h1{margin-top:4px;font-size:1.5em}
.book-page-body{font-size:1em;line-height:1.7}
.book-page-body p{margin:0 0 14px}
.book-page-body ul,.book-page-body ol{margin:0 0 14px;padding-left:22px}
.book-page-video{margin-top:20px}
.book-page-video video{width:100%;border-radius:12px;border:1px solid var(--line);display:block}
.book-oath-block{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.book-reader-nav{display:flex;justify-content:space-between;gap:12px;margin-top:20px}
@keyframes book-page-turn{from{opacity:0;transform:translateX(10px) rotateY(-4deg)}to{opacity:1;transform:translateX(0) rotateY(0)}}
@media (prefers-reduced-motion: reduce){.book-page{animation:none}}
@media (max-width:640px){
 .book-page{padding:22px 20px}
 .book-reader-nav{flex-direction:column}
 .book-reader-nav button{width:100%}
}
@media print{
 .book-reader-toolbar,.book-reader-nav,#level2Tabs,.l2-lesson-actions,#level2Header .page-actions{display:none!important}
 .book-page{box-shadow:none;border:none;animation:none;page-break-after:always}
}

/* ==== Foundations Academy — Course 5 & 6 widget styles (added) ==== */
/* ============================================================================
   Foundations Academy — Course 5 (Safety & Security) and Course 6
   (Hannahware Basics) style additions for the shared lesson engine.

   Drop-in additions for repo_clone/assets/styles.css. Classes use fs5-/fs6-
   prefixes, NOT the legacy l5-/l6- prefixes used by the standalone
   course-5/course-6 stylesheets — assets/styles.css already defines
   unrelated .l5-* classes for "Integrated Medical Academy Level 5" content
   (.l5-continue, .l5-course, .l5-course-grid, .l5-dashboard-grid, .l5-tool,
   .l5-tool-grid), so reusing l5-/l6- here would silently break both that
   existing content and this port.

   Does NOT redefine .choice-grid or .decision-option — both already exist
   generically in the shared engine (.choice-grid{display:grid;gap:10px},
   and .decision-option is the same button class the engine's
   renderModuleQuestion() renders for every quiz answer option), and the
   real client-side knowledge checks on these two ported pages, plus the
   engine's real scored quiz mechanism, both already rely on the existing
   rules unchanged.

   All values reuse the engine's exact design-token variable names already
   declared on :root (and overridden under html[data-theme="dark"]):
   --navy, --navy2, --blue, --orange, --green, --purple, --red, --yellow,
   --ink, --muted, --bg, --panel, --line, --soft, --soft2, --shadow,
   --radius, --surface, --surface-2, --border, --card.
   ========================================================================= */

/* ----------------------------------------------------------------------
   Icon badge — shared by both fs5 and fs6 widgets (fs5Icon/fs5IconWrap in
   fs56_appjs_additions.js target these two class names).
   ---------------------------------------------------------------------- */
.fs5-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none}
.fs5-icon svg{width:100%;height:100%}
.fs5-icon-bg{fill:var(--soft)}
.fs5-icon-glyph{fill:var(--blue)}

/* ----------------------------------------------------------------------
   Hazard-spotting grid — course-5 Module 2 (osha) and Module 7 (radiation)
   ---------------------------------------------------------------------- */
.fs5-hazard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0}
.fs5-hazard{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:14px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;transition:border-color .15s ease,background .15s ease}
.fs5-hazard:hover{border-color:var(--blue)}
.fs5-hazard strong{font-size:.92rem;color:var(--ink)}
.fs5-hazard small{color:var(--muted);font-size:.78rem}
.fs5-hazard.found{border-color:var(--green);background:#e8f7f3}
.fs5-hazard.found small{color:#08705c;font-weight:600}
html[data-theme="dark"] .fs5-hazard.found{background:rgba(8,112,92,.18)}

/* ----------------------------------------------------------------------
   PPE selector — course-5 Module 3
   ---------------------------------------------------------------------- */
.fs5-ppe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:14px 0}
.fs5-ppe-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer}
.fs5-ppe-item:hover{border-color:var(--blue)}
.fs5-ppe-label{font-size:.88rem;color:var(--ink);font-weight:600}
.fs5-ppe-item.selected{border-color:var(--blue);background:var(--soft2)}
.fs5-ppe-item.selected .fs5-icon-bg{fill:var(--blue)}
.fs5-ppe-item.selected .fs5-icon-glyph{fill:#fff}

/* ----------------------------------------------------------------------
   Toggle-switch checklist — course-5 Module 4 (chemical), Module 8
   (security), and course-6 Module 2 (information) reuses this unchanged.
   ---------------------------------------------------------------------- */
.fs5-toggle-list{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.fs5-toggle-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.fs5-toggle-label{flex:1;color:var(--ink);font-size:.92rem}
.fs5-switch{position:relative;width:44px;height:24px;flex:none;border-radius:999px;border:1px solid var(--line);background:var(--soft);cursor:pointer;transition:background .15s ease,border-color .15s ease}
.fs5-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow);transition:transform .15s ease}
.fs5-switch.on{background:var(--blue);border-color:var(--blue)}
.fs5-switch.on::after{transform:translateX(20px)}

/* ----------------------------------------------------------------------
   Waste sorting — course-5 Module 5
   ---------------------------------------------------------------------- */
.fs5-waste{display:grid;gap:16px;margin:14px 0}
.fs5-waste-tokens{display:flex;flex-wrap:wrap;gap:10px}
.fs5-waste-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer}
.fs5-waste-item:hover{border-color:var(--blue)}
.fs5-waste-label{font-size:.88rem;color:var(--ink)}
.fs5-waste-item.selected{border-color:var(--blue);background:var(--soft2)}
.fs5-waste-item.placed{opacity:.45;cursor:default}
.fs5-waste-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.fs5-waste-zone{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:14px 10px;border:2px dashed var(--line);border-radius:var(--radius);background:var(--soft);cursor:pointer}
.fs5-waste-zone:hover{border-color:var(--blue)}
.fs5-waste-zone strong{font-size:.9rem;color:var(--ink)}
.fs5-waste-zone small{color:var(--muted);font-size:.76rem}
.fs5-waste-zone-items{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:0}
.fs5-waste-chip{font-size:.72rem;padding:2px 8px;border-radius:999px;background:var(--green);color:#fff}

/* ----------------------------------------------------------------------
   Emergency response cards — course-5 Module 6
   ---------------------------------------------------------------------- */
.fs5-emergency-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:14px 0}
.fs5-emergency-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}
.fs5-emergency-btn{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px 12px;border:0;background:transparent;cursor:pointer}
.fs5-emergency-btn strong{font-size:.92rem;color:var(--ink)}
.fs5-emergency-btn small{color:var(--muted);font-size:.78rem}
.fs5-emergency-response{display:none;margin:0;padding:0 14px 14px;font-size:.85rem;color:var(--ink)}
.fs5-emergency-card.revealed .fs5-emergency-response{display:block}
.fs5-emergency-card.revealed .fs5-emergency-btn small{color:var(--blue);font-weight:600}

/* ----------------------------------------------------------------------
   Habit-spotting grid — course-6 Module 1 (navigation)
   ---------------------------------------------------------------------- */
.fs6-habit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:14px 0}
.fs6-habit{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}
.fs6-habit-btn{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px 12px;border:0;background:transparent;cursor:pointer}
.fs6-habit-btn strong{font-size:.92rem;color:var(--ink)}
.fs6-habit-btn small{color:var(--muted);font-size:.78rem}
.fs6-habit-body{margin:0;padding:0 14px 14px;font-size:.85rem;color:var(--ink)}
.fs6-habit.revealed .fs6-habit-btn small{color:var(--blue);font-weight:600}
[data-habit-status]{display:block;margin-top:8px;font-size:.86rem;color:var(--muted)}

/* ----------------------------------------------------------------------
   Sequencing widget — course-6 Module 3 (checkin). Real mechanic: learner
   clicks tokens (rendered in a shuffled "order", each carrying its own
   glyph) strictly in the correct underlying step order, tracked by a
   position pointer — NOT a drag-to-slot or click-token-then-click-slot
   interaction. Each slot starts with a numbered badge and a "Waiting"
   label that is overwritten with the placed step's label; the matching
   token gets a persistent .placed state (stays visible, disabled) rather
   than being removed. A reset button rebuilds slots+tokens from scratch.
   ---------------------------------------------------------------------- */
.fs6-seq{display:grid;gap:16px;margin:14px 0}
.fs6-seq-slots{display:flex;flex-direction:column;gap:8px}
.fs6-seq-slot{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--soft);min-height:44px}
.fs6-seq-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;border-radius:50%;background:var(--navy2);color:#fff;font-size:.78rem;font-weight:700}
.fs6-seq-slot-label{flex:1;font-size:.88rem;color:var(--muted)}
.fs6-seq-slot.filled{border-style:solid;background:var(--panel)}
.fs6-seq-slot.filled .fs6-seq-slot-label{color:var(--ink);font-weight:600}
.fs6-seq-tokens{display:flex;flex-wrap:wrap;gap:8px}
.fs6-seq-token{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);font-size:.86rem;cursor:pointer}
.fs6-seq-token .fs5-icon{width:28px;height:28px}
.fs6-seq-token:hover{border-color:var(--blue)}
.fs6-seq-token.placed{opacity:.5;cursor:default;border-color:var(--green)}
.fs6-seq-token:disabled{pointer-events:none}
.fs6-seq-actions{display:flex;justify-content:flex-end}
.fs6-seq-reset{padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);color:var(--ink);font-size:.82rem;cursor:pointer}
.fs6-seq-reset:hover{border-color:var(--blue)}

/* ----------------------------------------------------------------------
   Role-matching widget — course-6 Module 4 (roles). Each row shows an
   icon + prompt text + two role-choice buttons (labels come from the
   shared `options` display pairs, not raw role codes).
   ---------------------------------------------------------------------- */
.fs6-match-rows{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.fs6-match-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.fs6-match-prompt{flex:1;margin:0;font-size:.9rem;color:var(--ink)}
.fs6-match-choices{display:flex;flex-wrap:wrap;gap:8px;flex:none}
.fs6-match-choice{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--ink);font-size:.82rem;cursor:pointer}
.fs6-match-choice:hover{border-color:var(--blue)}
.fs6-match-choice:disabled{cursor:default}
.fs6-match-choice.correct{border-color:var(--green);background:#e8f7f3;color:#08705c;font-weight:600}
.fs6-match-choice.wrong{border-color:var(--red);background:#fbeded;color:#963d3d}
.fs6-match-row.answered.right{border-color:var(--green)}
html[data-theme="dark"] .fs6-match-choice.correct{background:rgba(8,112,92,.18);color:#5fd6bd}
html[data-theme="dark"] .fs6-match-choice.wrong{background:rgba(150,61,61,.22);color:#f2a3a3}

/* ----------------------------------------------------------------------
   Shared status-line coloring (used by data-hazard-status, data-ppe-status,
   data-toggle-status, waste-status, seq-status, match-status text nodes) —
   mirrors the existing correct/wrong convention already used across the
   engine's own quiz result markup, so these read consistently everywhere.
   ---------------------------------------------------------------------- */
.fs5-ppe-status,.fs5-waste-status,.fs6-seq-status,.fs6-match-status,
[data-hazard-status],[data-toggle-status]{
 display:block;margin-top:8px;font-size:.86rem;color:var(--muted)
}
.fs5-ppe-status.correct,.fs5-waste-status.correct,.fs6-seq-status.correct,.fs6-match-status.correct,
[data-hazard-status].correct,[data-toggle-status].correct{color:#08705c;font-weight:600}
.fs5-ppe-status.wrong,.fs5-waste-status.wrong,.fs6-seq-status.wrong,.fs6-match-status.wrong,
[data-hazard-status].wrong,[data-toggle-status].wrong{color:#963d3d;font-weight:600}
html[data-theme="dark"] .fs5-ppe-status.correct,html[data-theme="dark"] .fs5-waste-status.correct,
html[data-theme="dark"] .fs6-seq-status.correct,html[data-theme="dark"] .fs6-match-status.correct,
html[data-theme="dark"] [data-hazard-status].correct,html[data-theme="dark"] [data-toggle-status].correct{color:#5fd6bd}
html[data-theme="dark"] .fs5-ppe-status.wrong,html[data-theme="dark"] .fs5-waste-status.wrong,
html[data-theme="dark"] .fs6-seq-status.wrong,html[data-theme="dark"] .fs6-match-status.wrong,
html[data-theme="dark"] [data-hazard-status].wrong,html[data-theme="dark"] [data-toggle-status].wrong{color:#f2a3a3}
