/* v7 accessible visual system: calm slate / teal, light-first with persistent dusk mode. */
:root,[data-theme="light"]{
  color-scheme:light;
  --bg:#f3f6fa;--surface:#ffffff;--surface2:#f5f8fb;--text:#183047;
  --muted:#566c80;--stroke:#dbe4ec;--accent:#087f82;--accent2:#1969aa;
  --danger:#bd3449;--warn:#9b6215;--shadow:0 9px 30px rgba(24,48,71,.055);
  --focus:#087f82;
}
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#111d2a;--surface:#192b3b;--surface2:#223649;--text:#edf5fa;
  --muted:#adbecb;--stroke:#385367;--accent:#69d2c7;--accent2:#8bc1f1;
  --danger:#ff9dad;--warn:#ffe0a2;--shadow:0 9px 30px rgba(0,0,0,.14);
  --focus:#86e0d7;
}
*{box-sizing:border-box}
html{font-size:15px}
body{background:var(--bg);color:var(--text);font-size:1rem;line-height:1.62;
  font-family:Inter,"Segoe UI",system-ui,Arial,sans-serif;letter-spacing:0}
h1,h2,h3{color:var(--text);line-height:1.27;letter-spacing:-.02em}
h1{font-size:clamp(1.5rem,2.3vw,2.12rem)}h2{font-size:1.37rem}h3{font-size:1.09rem}
p,label,.subtitle,.smalltext,.hint{color:var(--muted)}.smalltext{font-size:.87rem}.tiny{font-size:.79rem}
a{color:var(--accent2)}a:hover{text-decoration:underline}
button,.btn{border-radius:11px;min-height:40px;background:#087f82;color:#fff;font-weight:700;
  box-shadow:none;transition:background-color .18s,transform .12s;letter-spacing:.005em}
button:hover,.btn:hover{filter:none;background:#06696d;text-decoration:none}
button:active,.btn:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button.small{min-height:34px}button.secondary,.btn.secondary{background:var(--surface2);color:var(--text);border:1px solid var(--stroke)}
button.secondary:hover,.btn.secondary:hover{background:var(--stroke)}button.ghost{background:transparent;color:var(--text);border:1px solid var(--stroke)}
button.ghost:hover{background:var(--surface2)}button.danger{background:#9e3348;color:#fff}
input,select,textarea{color:var(--text);background:var(--surface);border:1px solid #bacbd9;border-radius:10px;min-height:43px;padding:10px 12px;font-size:.96rem}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{border-color:#4b6677}
input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 2px rgba(8,127,130,.1)}
option{background:var(--surface);color:var(--text)}
label{font-size:.84rem;font-weight:650}
.shell{max-width:1680px;grid-template-columns:252px minmax(0,1fr)}
.sidebar{background:#223a50;border-right:none;padding:26px 15px;color:#edf7fc;min-height:100vh}
.sidebar .brand{margin-bottom:30px}.sidebar .brand strong{color:#fff;font-size:1rem}.sidebar .brand small{color:#bdd5e7}
.brand-mark{background:linear-gradient(145deg,#40c7b5,#7fb3e1);color:#143148;box-shadow:none}
.navitem{color:#d4e5ee;font-size:.95rem;min-height:43px;padding:11px 13px;border-radius:10px}
.navitem:hover{background:rgba(255,255,255,.1)}.navitem.active{background:#e3f4f3;color:#13555e;box-shadow:none}
.sidefoot{background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.17);color:#cddbe4;font-size:.79rem;line-height:1.65}
.sidefoot strong{color:#92e6d7}
.main{padding:31px clamp(18px,3vw,46px) 65px}
.topbar{align-items:flex-start;gap:18px;padding-bottom:22px;margin-bottom:26px;flex-wrap:wrap}
.topbar h1{max-width:900px}.topbar h1 span{color:var(--accent)!important}.top-actions{justify-content:flex-start}
.eyebrow{color:var(--accent);font-size:.75rem;letter-spacing:.115em}
.pill{background:#edf4f6;border:1px solid #d1e3e7;color:#265268;font-size:.77rem;font-weight:650;padding:6px 10px}
.pill.good{background:#e9f7f1;color:#11684b;border-color:#c2e6d3}
.pill.warn{background:#fff5df;color:#885213;border-color:#f3dfb9}
.pill.danger{background:#fff0f1;color:#962d45;border-color:#f2c9d0}
[data-theme="dark"] .pill{background:#2b4558;border-color:#49687b;color:#d5ecf4}
[data-theme="dark"] .pill.good{background:#1c4940;color:#a9e9d5;border-color:#346b5f}
[data-theme="dark"] .pill.warn{background:#493b2b;color:#ffe0aa;border-color:#6b5336}
.card{background:var(--surface);border:1px solid var(--stroke);border-radius:15px;box-shadow:var(--shadow);padding:22px}
.card.inner,.obj-card,.decision{background:var(--surface2);color:var(--text);border-color:var(--stroke)}
.card .sub{color:var(--muted)}.card strong.metric{font-size:1.9rem;color:var(--text)}
.section-head{flex-wrap:wrap}.notice{background:#ebf8f6;color:#24635c;border:1px solid #c7e9e2;border-radius:11px;line-height:1.55}
.notice.warn{background:#fff7e9;color:#815518;border-color:#f3ddb8}
[data-theme="dark"] .notice{background:#203f40;color:#b6eee3;border-color:#3e6868}
[data-theme="dark"] .notice.warn{background:#443824;color:#fce4b9;border-color:#725f3e}
.line{background:var(--stroke)}
.step{background:var(--surface);color:var(--muted);border-color:var(--stroke);min-height:70px;padding:12px}
.step.current{background:#ebf9f7;color:#11685d;border-color:#5cb9a6}
.step.done{background:#f0f6fa;color:#356879;border-color:#cfdee6}
[data-theme="dark"] .step{background:var(--surface2);color:var(--muted)}
[data-theme="dark"] .step.current{background:#1e514b;color:#dcfff4;border-color:#6ad3be}
[data-theme="dark"] .step.done{background:#254858;color:#c3e6eb;border-color:#497084}
.progress{background:var(--stroke)}.progress>span{background:linear-gradient(90deg,#138f88,#5da6d0)}
.tablewrap{border-color:var(--stroke)}th{background:var(--surface2);color:var(--text);font-weight:700;letter-spacing:0;font-size:.78rem}
tr:hover td{background:rgba(37,127,132,.045)}th,td{border-color:var(--stroke);padding:12px 14px;font-size:.89rem;line-height:1.45}
.code,.logdetail{background:var(--surface2);border-color:var(--stroke);color:var(--text)}
.logrow:hover,.logrow.active{background:#e3f3f3}[data-theme="dark"] .logrow:hover,[data-theme="dark"] .logrow.active{background:#285266}
.level.CRITICAL,.level.HIGH{color:var(--danger)}.level.MEDIUM{color:var(--warn)}.level.LOW{color:var(--accent2)}.level.INFO{color:var(--accent)}
.number{color:var(--accent)}.obj-card.done{border-color:#47b9a7}
.login{background:linear-gradient(132deg,#eff6f9,#e5eeef 60%,#f8fbfd);}
.loginbox{max-width:570px;background:var(--surface);color:var(--text);border:1px solid var(--stroke);box-shadow:0 32px 65px rgba(30,56,80,.1);padding:39px}
.loginbox h1{font-size:1.75rem}.loginbox .brand strong{color:var(--text)}.loginbox .brand small{color:var(--muted)}
.login-utility{display:flex;justify-content:flex-end;margin-bottom:16px}
.role-switch{background:var(--surface2);border:1px solid var(--stroke);padding:5px;border-radius:12px}
.role-switch button{background:transparent;color:var(--muted)}.role-switch button.active{background:#d5efec;color:#13595b}
[data-theme="dark"] .login{background:linear-gradient(130deg,#142b3a,#101e2b)}
[data-theme="dark"] .role-switch button.active{background:#285b59;color:#effff9}
.toast{background:#1d665c;border-color:#38947d;color:#fff;box-shadow:var(--shadow)}.toast.error{background:#8d3149;color:#fff;border-color:#a8445e}
.empty{border-color:var(--stroke)}
/* Campaign cockpit */
.campaign-page{max-width:1240px}.campaign-hero{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:26px 29px;
  background:linear-gradient(110deg,#e1f3f0,#edf3fb);border:1px solid #c4dfdd;border-radius:17px;margin-bottom:21px}
.campaign-hero h2{font-size:1.7rem;margin:8px 0}.campaign-hero p{max-width:780px;color:#365e68}
.campaign-step-status{min-width:117px;background:rgba(255,255,255,.75);border:1px solid #c9e2e3;padding:16px;border-radius:14px;text-align:center}
.campaign-step-status strong{display:block;font-size:1.8rem;color:#145c64}.campaign-step-status span{font-size:.79rem;color:#567a82}
[data-theme="dark"] .campaign-hero{background:linear-gradient(105deg,#1d474a,#233d55);border-color:#4c7077}
[data-theme="dark"] .campaign-hero p{color:#c3d9df}[data-theme="dark"] .campaign-step-status{background:#1a323f;border-color:#537078}
[data-theme="dark"] .campaign-step-status strong{color:#c9f3e8}[data-theme="dark"] .campaign-step-status span{color:#a8c6d0}
.campaign-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr) auto;gap:16px;align-items:end;margin:20px 0 12px}
.campaign-form label{margin-bottom:7px}.campaign-start>p{margin-top:9px}
.campaign-roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:17px 0}
.campaign-mission{display:flex;gap:12px;align-items:flex-start;min-height:122px;padding:15px 14px;border:1px solid var(--stroke);border-radius:12px;background:var(--surface2)}
.campaign-mission.current{border-color:#36a39c;background:#e6f6f3}
.campaign-mission.completed{border-color:#afdbd3;background:#f1f8f6}
.campaign-mission-num{font-size:.8rem;font-weight:850;color:#196a75;background:#d7eeee;padding:6px 8px;border-radius:7px}
.campaign-mission-main{display:grid;gap:8px;min-width:0}.campaign-mission-main strong{font-size:.87rem;line-height:1.4;overflow-wrap:anywhere}
.campaign-mission-main span{font-size:.75rem;color:var(--muted)}.mission-dot{width:8px;height:8px;background:#9babb8;border-radius:50%;flex-shrink:0;margin-left:auto;margin-top:8px}
.campaign-mission.current .mission-dot{background:#087f82}.campaign-mission.completed .mission-dot{background:#2ca27f}
[data-theme="dark"] .campaign-mission.current{background:#1d4546;border-color:#49ada6}
[data-theme="dark"] .campaign-mission.completed{background:#223f42;border-color:#468a80}
[data-theme="dark"] .campaign-mission-num{background:#315964;color:#d7fff4}
.campaign-next{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--stroke);padding-top:21px;margin-top:17px}
.campaign-next p{max-width:670px}.campaign-next strong{font-size:.98rem}.campaign-next button{white-space:nowrap}
.campaign-links{margin:19px 0}.team-pick{display:flex;gap:11px;align-items:center}.team-pick select{min-width:180px}
.campaign-export{margin-top:18px}.timeline{display:grid;gap:0;margin-top:16px;max-height:550px;overflow:auto;border-top:1px solid var(--stroke)}
.timeline-item{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:13px 5px;border-bottom:1px solid var(--stroke)}
.timeline-item time{font-size:.79rem;color:var(--muted);font-variant-numeric:tabular-nums}.timeline-item p{font-size:.9rem}.timeline-type{font-size:.83rem;font-weight:750;color:var(--accent)}
/* Ergonomic density */
[data-density="compact"] .card{padding:15px}[data-density="compact"] .main{padding-top:20px}
[data-density="compact"] .section{margin:17px 0}[data-density="compact"] td,[data-density="compact"] th{padding:7px 10px}
[data-density="compact"] .navitem{min-height:34px;padding:8px 11px}
@media(max-width:1180px){.campaign-roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-form{grid-template-columns:1fr 1fr}.campaign-form button{grid-column:1/-1}}
@media(max-width:780px){.sidebar{background:#223a50;gap:2px}.sidebar .brand{width:100%;margin-bottom:12px}.navitem{font-size:.81rem;padding:8px 10px}.main{padding:16px}.card{padding:17px}
 .campaign-roadmap{grid-template-columns:1fr}.campaign-mission{min-height:76px}.campaign-form{grid-template-columns:1fr}.campaign-form button{grid-column:auto}
 .campaign-hero,.campaign-next{flex-direction:column;align-items:stretch}.campaign-step-status{max-width:140px}.timeline-item{grid-template-columns:1fr;gap:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.top-actions,.campaign-start,.campaign-next,.campaign-links,.campaign-export{display:none!important}
 body,.main,.card,.campaign-hero{background:#fff!important;color:#000!important;box-shadow:none!important}.campaign-roadmap{grid-template-columns:repeat(4,1fr)}}

.env-checklist{line-height:1.9;padding-left:1.3rem}.env-checklist li{padding-bottom:.5rem}.card code{overflow-wrap:anywhere}

/* ROLE CONTEXT: derived from authenticated /api/me; never grants access by itself. */
:root{--role-strong:#3e4e91;--role-soft:#eff1fc;--role-border:#cad4f5;--role-ink:#233b81}
:root[data-user-role="student"]{--role-strong:#087d74;--role-soft:#eaf8f4;--role-border:#b5e2d6;--role-ink:#08665f}
:root[data-theme="dark"]{--role-soft:#293a5c;--role-border:#6476ab;--role-ink:#e2e8ff}
:root[data-theme="dark"][data-user-role="student"]{--role-soft:#184a48;--role-border:#418c81;--role-ink:#d3fff5}
.role-identity{display:flex;flex-direction:column;gap:5px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);border-left:4px solid #adbaff;border-radius:11px;padding:13px 14px;margin:-10px 0 17px;color:#fff}
[data-user-role="student"] .role-identity{border-left-color:#73d8c4}
.role-identity-label,.nav-caption{font-size:.68rem;font-weight:800;letter-spacing:.1em;color:#bfcee8}
.role-identity strong{font-size:1.17rem;line-height:1.35;color:#fff}
.role-identity-name{font-size:.85rem;line-height:1.4;color:#ddeaf5;overflow-wrap:anywhere}
.nav-caption{padding:0 12px;margin-bottom:9px}
.role-context{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px 22px;background:var(--role-soft);border:1px solid var(--role-border);border-left:5px solid var(--role-strong);border-radius:13px;padding:13px 18px;margin-bottom:23px;color:var(--role-ink)}
.role-context-main{display:flex;align-items:center;gap:13px;min-width:220px}
.role-symbol{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:10px;background:var(--role-strong);color:white;font-size:1.07rem;font-weight:850}
.role-context-main>div{display:flex;flex-direction:column;gap:2px}
.role-context-caption{font-size:.67rem;font-weight:850;letter-spacing:.095em;opacity:.8}
.role-context-main strong{font-size:1.11rem;line-height:1.35;color:var(--role-ink)}
.role-context-tag{display:inline-block;padding:2px 7px;border-radius:6px;border:1px solid var(--role-border);font-size:.66rem;letter-spacing:.04em;vertical-align:2px}
.role-context-person{font-size:.79rem;opacity:.9}
.role-context-details{display:flex;flex-wrap:wrap;gap:7px}
.role-context-details>span{font-size:.79rem;font-weight:700;white-space:nowrap;border:1px solid var(--role-border);background:var(--surface);border-radius:9px;padding:7px 10px;color:var(--text)}
@media(max-width:780px){.role-identity{margin:5px 8px 12px;min-width:160px}.nav-caption{display:none}.role-context{padding:12px;margin-bottom:15px}.role-context-details>span{font-size:.73rem}.role-context-main strong{font-size:1rem}}
@media print{.role-identity,.nav-caption,.role-context{display:none!important}}

/* LIVE instructor usability */
[data-user-role="trainer"] .navitem[data-val="live"]{border:1px solid rgba(150,222,213,.38)}
[data-user-role="trainer"] .navitem[data-val="live"].active{background:#d7f1eb;color:#134f56}
.decision{min-width:0;gap:12px}.decision span{overflow-wrap:anywhere}
@media(max-width:720px){.role-context-details{flex-wrap:wrap}.card.inner{padding:12px}.tablewrap{overflow-x:auto}}

/* v10: podpowiedzi i centrum oceniania */
.hint-panel{background:color-mix(in srgb,var(--accent,#0b8d89) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent,#0b8d89) 30%,transparent);padding:15px;border-radius:14px;margin:16px 0}
.hint-panel strong{display:block;margin-bottom:8px}
.hint-panel details{background:var(--card,#fff);border-radius:9px;border:1px solid var(--border,#d7e4ea);margin:8px 0;padding:10px 12px}
.hint-panel summary{font-weight:700;cursor:pointer}
.hint-panel details p{padding-top:10px;white-space:pre-wrap;overflow-wrap:anywhere}
.detective-form{display:grid;gap:14px;margin-top:14px}
#hintGrantForm,#revisionGrantForm,#approvalForm{display:grid;gap:12px;margin:15px 0}
#hintGrantForm label,#revisionGrantForm label,#approvalForm label{display:block;margin-bottom:4px}
#hintGrantForm select,#revisionGrantForm select,#approvalForm select{width:100%}
@media(max-width:750px){.hint-panel{padding:10px}#hintGrantForm button,#revisionGrantForm button,#approvalForm button{width:100%}}

/* v11 – ergonomiczne centrum prowadzenia sesji */
.trainer-workspace .section-head{align-items:center;gap:14px}
.trainer-dashboard-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px;margin-top:18px;align-items:start}
.trainer-dashboard-layout>div{min-width:0}
.trainer-workspace .card.section{margin-top:16px}
.trainer-workspace .card{overflow-wrap:anywhere}
.flow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 20px}
.flow-steps>div{padding:13px;border:1px solid var(--border,#d7e4ea);border-radius:12px;background:var(--surface,#edf4f7);min-width:0}
.flow-steps>div b{font-size:.85rem;display:block;color:var(--text,#243b50)}
.flow-steps>div span{display:block;font-size:.74rem;color:var(--muted,#61748a);margin-top:4px}
.flow-steps.vertical{grid-template-columns:1fr}
.trainer-person{border:1px solid var(--border,#d7e4ea);border-radius:13px;margin-top:10px;padding:14px;background:var(--surface,#f4f8fb)}
.trainer-person-main{display:flex;align-items:center;gap:11px}
.trainer-person-main .tiny{margin-top:4px}
.avatar-circle{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;font-weight:800;background:#daedea;color:#115a62;border-radius:50%}
.trainer-person-actions{display:flex;gap:7px;align-items:end;flex-wrap:wrap;margin-top:12px}
.trainer-person-actions button{white-space:normal}
.mini-label{font-size:.72rem;display:grid;gap:3px;min-width:165px;flex:1}
.mini-label select{width:100%;min-width:145px}
.empty-people{background:var(--surface,#f4f8fb);border:1px dashed var(--border,#d7e4ea);border-radius:11px;padding:18px;color:var(--muted,#64748b);margin-top:12px}
.control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border,#d7e4ea)}
.control-row:last-child{border-bottom:0}
.full-btn{width:100%;margin-top:13px}
.invite-item{border-top:1px solid var(--border,#d7e4ea);padding:12px 0}
.invite-item code{display:block;white-space:normal;overflow-wrap:anywhere;margin:7px 0;padding:8px;border-radius:8px;background:var(--surface,#edf2f8);font-size:.76rem}
.control-task{border:1px solid var(--border,#d7e4ea);border-radius:12px;padding:14px;margin-top:12px;background:var(--surface,#f4f8fb)}
.task-title{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}
.task-title b{font-size:.92rem}
.task-title .tiny{line-height:1.5;margin-top:7px}
.task-control-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-top:1px solid var(--border,#d7e4ea);margin-top:10px;padding-top:10px}
.task-control-row button{white-space:normal;min-height:34px}
.registry-list{max-height:250px;overflow-y:auto}
.registry-item{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--border,#d7e4ea);font-size:.81rem}
.registry-item span{overflow-wrap:anywhere;text-align:right}
.assigned-focus{border:2px solid #2c9b87!important;box-shadow:0 0 0 2px rgba(44,155,135,.08)}
@media(max-width:1200px){.trainer-dashboard-layout{grid-template-columns:1fr}}
@media(max-width:750px){.flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.trainer-person-actions{align-items:stretch}.trainer-person-actions button{flex:1}.trainer-person-actions .mini-label{width:100%}}
@media(max-width:440px){.flow-steps{grid-template-columns:1fr}.task-control-row button{flex:1}.task-title{flex-direction:column}}

/* v16: gentle educational framing, accessible training manual */
.learning-context{display:grid;gap:.4rem;margin:0 0 1.2rem;padding:16px 20px;background:var(--role-soft);border:1px solid var(--role-border);border-left:5px solid var(--role-strong);border-radius:13px;color:var(--text);line-height:1.55}
.learning-context strong{color:var(--text);font-size:1rem}.learning-context span{color:var(--muted)}
.learning-context.paused{border-color:#e3c17a;background:#fff5dc;border-left-color:#ac6e1e}
[data-theme="dark"] .learning-context.paused{background:#423322;border-color:#9a7743}
.learning-context.waiting{border-left-color:#5a86bb}
.manual-page{max-width:1160px}.manual-phase-nav{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.trainer-speech{border-left:4px solid var(--accent);margin:15px 0 23px;padding:19px 22px;background:var(--surface2);color:var(--text);border-radius:0 11px 11px 0;font-size:1.04rem;line-height:1.8}
.manual-questions{line-height:1.75;padding-left:1.5rem}.manual-questions li{padding:.25rem 0;color:var(--text)}
.manual-answer{margin-top:18px;background:var(--surface2);padding:17px;border-radius:12px;border:1px solid var(--stroke)}
.manual-answer summary{cursor:pointer;font-weight:750}.manual-answer p{margin:10px 0}
.manual-answer pre{overflow-wrap:anywhere;white-space:pre-wrap;max-height:260px;overflow:auto}
@media(max-width:780px){.learning-context{padding:12px}.manual-phase-nav button{flex:1 1 130px}}

.copy-fallback{position:fixed;inset:0;z-index:999;background:rgba(5,17,27,.76);display:flex;align-items:center;justify-content:center;padding:20px}
.copy-fallback .card{max-width:550px;width:100%;display:grid;gap:12px}
.copy-fallback input{font-family:Consolas,monospace;font-size:1.05rem}

.manual-full-document{margin-top:20px;border-top:1px solid var(--stroke);padding-top:12px;display:grid;gap:11px;max-height:72vh;overflow-y:auto;scrollbar-gutter:stable}
.manual-full-document h2{margin:22px 0 6px}.manual-full-document h3{margin:14px 0 4px}.manual-full-document h4{margin:10px 0 4px}
.manual-doc-h1{border-bottom:1px solid var(--stroke);padding-bottom:6px}
.manual-doc-bullet{padding-left:15px;line-height:1.65}.manual-full-document p{line-height:1.7;color:var(--text)}
.manual-document-cover{padding:22px;border:1px solid var(--stroke);border-radius:12px;background:var(--surface2)}
.manual-full-document .tablewrap{margin:12px 0}

/* v17 — widoczne identyfikatory dowodów i ergonomiczne Centrum Trenera */
.evidence-copy-area{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px;margin:19px 0 4px;padding:17px 19px;border-radius:13px;background:var(--surface2);border:2px solid #6b9ca4}
.evidence-copy-label{display:block;color:var(--muted);font-weight:650;font-size:.87rem}
.evidence-id{display:block;margin-top:5px;color:var(--text);font-family:Consolas,monospace;font-size:1.12rem;letter-spacing:.02em}
.evidence-copy-btn{background:#006e72!important;color:#fff!important;border:2px solid #006e72!important;font-size:1rem;min-height:50px;padding:12px 20px;box-shadow:0 3px 0 rgba(2,56,62,.2)}
.evidence-copy-btn:hover{background:#004e56!important;border-color:#004e56!important}
.evidence-copy-btn:focus-visible{outline:3px solid #ea9b21;outline-offset:3px}
[data-theme="dark"] .evidence-copy-btn{background:#80e6d6!important;border-color:#80e6d6!important;color:#062929!important}
[data-theme="dark"] .evidence-copy-btn:hover{background:#b1f8e8!important}
.evidence-copy-help{margin-top:7px;color:var(--muted);font-size:.86rem}
.trainer-workspace .section-head h2{font-size:1.5rem}
.trainer-workspace .cardtitle h3{font-size:1.17rem}
.trainer-person{border-color:var(--stroke);background:var(--surface);box-shadow:0 2px 9px rgba(0,0,0,.04);padding:18px}
.trainer-person.awaiting{border:2px solid #ca9727;background:color-mix(in srgb,var(--surface) 95%,#f3cd64 5%)}
.trainer-person-main{align-items:flex-start}.person-description{min-width:0;flex:1}
.trainer-person-main strong{display:block;font-size:1.08rem;line-height:1.3;color:var(--text)}
.person-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.84rem;color:var(--muted);margin-top:7px}
.person-team{border:1px solid var(--stroke);border-radius:18px;padding:2px 9px;color:var(--text);font-weight:750;background:var(--surface2)}
.live-dot{display:inline-block;width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#b25c4f;box-shadow:0 0 0 3px rgba(178,92,79,.12)}
.live-dot.engaged{background:#087f69;box-shadow:0 0 0 3px rgba(8,127,105,.15)}
.live-dot.connected{background:#ba850b;box-shadow:0 0 0 3px rgba(186,133,11,.13)}
.live-dot.offline{background:#798c9b;box-shadow:0 0 0 3px rgba(121,140,155,.13)}
[data-theme="dark"] .live-dot.engaged{background:#51ddac}
[data-theme="dark"] .live-dot.connected{background:#ffce6e}
.person-explain{font-size:.86rem;margin:12px 0 0;color:var(--muted)}
.person-assignment{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;border-top:1px solid var(--stroke);margin-top:16px;padding-top:12px}
.person-assignment>.field{margin:0;flex:1;min-width:195px}
.person-assignment .field label{margin-bottom:6px;font-size:.84rem;color:var(--text)}
.person-assignment select{width:100%;font-size:.96rem;min-height:46px;border:2px solid #8cabb8}
.person-assignment .assign-action{min-height:46px;padding:9px 15px;font-size:.91rem}
.person-assignment .assign-primary{background:#006e72;color:#fff}
.person-assignment .assign-primary:hover{background:#004e56}
.person-secondary-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.person-activity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px;background:var(--surface2);border-radius:10px;border:1px solid var(--stroke);margin-top:15px;padding:12px}
.person-activity span{font-size:.82rem;line-height:1.5;color:var(--muted)}
.person-activity b{color:var(--text)}
.team-roster-group{margin-top:19px}
.team-roster-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:9px 13px;background:var(--surface2);border-radius:10px;border:1px solid var(--stroke);color:var(--text)}
.team-roster-heading b{font-size:.95rem}.team-roster-heading span{font-size:.82rem;color:var(--muted)}
.person-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:6px 0 13px}
.person-legend span{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem}
.live-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.live-team-card{border:1px solid var(--stroke);border-radius:13px;padding:17px;background:var(--surface2);min-width:0}
.live-team-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.live-team-top h4{font-size:1.01rem;color:var(--text);margin:0 0 4px}
.team-members-summary{font-size:.79rem;color:var(--muted)}
.live-team-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:15px 0}
.live-team-metrics>div{background:var(--surface);border-radius:10px;border:1px solid var(--stroke);padding:9px 7px;text-align:center}
.live-team-metrics b{font-size:1.5rem;color:var(--text);display:block;line-height:1.1;font-variant-numeric:tabular-nums}
.live-team-metrics small{font-size:.78rem;color:var(--muted)}
.live-team-metrics span{color:var(--muted);font-size:.78rem}
.team-progress-title{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.82rem;color:var(--muted)}
.team-progress-title strong{color:var(--text);font-variant-numeric:tabular-nums}
.team-progress-track{height:11px;background:var(--stroke);border-radius:9px;overflow:hidden;margin-top:7px}
.team-progress-track>span{display:block;height:100%;border-radius:9px;background:#087f82;transition:width .2s}
.live-team-activity{color:var(--muted);font-size:.81rem;margin-top:11px;line-height:1.45}
@media(max-width:1450px){.live-team-grid{grid-template-columns:1fr}}
@media(max-width:750px){.person-activity{grid-template-columns:1fr}.evidence-copy-area{align-items:stretch}.evidence-copy-btn{width:100%}.live-team-metrics b{font-size:1.28rem}.person-assignment>.field{flex-basis:100%}.person-assignment .assign-action{width:100%}}
/* v18: compact participant navigation on narrow screens; no tall empty sidebar. */
@media(max-width:780px){
 .shell .sidebar{min-height:0!important;height:auto!important;display:flex!important;justify-content:flex-start!important;align-content:flex-start!important;align-items:center!important;gap:5px!important;padding:10px 12px!important}
 .shell .sidebar .brand{margin:0 10px 5px 0!important;width:auto!important;flex:0 1 auto}
 .shell .sidebar .role-identity{margin:0 7px 6px 0!important;padding:6px 10px!important;min-width:120px!important}
 .shell .sidebar .role-identity strong{font-size:.9rem}
 .shell .sidebar .role-identity-label,.shell .sidebar .role-identity-name{font-size:.7rem}
 .shell .sidebar .navitem{margin:0!important;min-height:33px!important;padding:7px 8px!important;font-size:.76rem}
 .shell .sidebar .sidefoot{display:none!important}
}

/* v19 — Intelligent Learning Experience: readable, keyboard accessible, responsive */
:root{--cr-focus:#006d76}
[data-theme="dark"]{--cr-focus:#8bf0d3}
.learning-v19{max-width:1250px;margin-left:auto;margin-right:auto}
.learning-v19 .section-head{align-items:flex-start;gap:12px}
.learning-v19 p{line-height:1.7;max-width:95ch}
.learning-hero{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:22px;background:linear-gradient(119deg,#e2f5f1 0%,#eaf1fb 100%);border:1px solid #8ebfbd;border-left:6px solid #087f82;border-radius:18px;padding:25px;margin:14px 0 23px}
.learning-hero h2{font-size:clamp(1.4rem,2.7vw,2rem);margin:7px 0 11px;color:#12374c}
.learning-hero p{color:#2a4b5e;font-size:1.03rem}
.learning-hero .eyebrow{color:#00686b}
.learning-business{border-top:1px solid #b1d5d4;margin-top:15px;padding-top:13px}
.learning-hero-aside{display:flex;flex-direction:column;justify-content:center;gap:4px;text-align:center;border:1px solid #9fcac9;border-radius:14px;background:#f7fffe;padding:15px;color:#1b4754}
.learning-hero-aside strong{font-size:2.5rem;line-height:1.1;color:#006b6b}
.learning-hero-aside span:last-child{font-size:.85rem}
[data-theme="dark"] .learning-hero{background:linear-gradient(119deg,#1d4247,#24394a);border-color:#4d8b8f}
[data-theme="dark"] .learning-hero h2,[data-theme="dark"] .learning-hero p{color:#e1f3f3}
[data-theme="dark"] .learning-hero .eyebrow{color:#8df6de}
[data-theme="dark"] .learning-hero-aside{background:#133a40;border-color:#4e8e89;color:#d5f5f1}
[data-theme="dark"] .learning-hero-aside strong{color:#9ef2e0}
.learning-level{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1px solid var(--stroke);background:var(--surface);padding:17px 19px;border-radius:13px;margin-bottom:26px}
.learning-level h3{margin:3px 0 8px}
.learning-level p{font-size:.94rem}
.learning-stage-tabs{display:flex;gap:11px;margin:19px 0 13px}
.learning-stage-tab{flex:1;flex-direction:column;gap:3px;background:var(--surface);color:var(--text);border:2px solid var(--stroke);border-radius:12px;padding:11px 5px;min-height:69px}
.learning-stage-tab .learning-step-num{border-radius:30px;width:31px;height:31px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface2);color:var(--text);font-weight:800}
.learning-stage-tab.is-active{background:#e6f7f4;border-color:#087f82;color:#115655;box-shadow:inset 0 -3px #087f82}
.learning-stage-tab.is-active .learning-step-num{background:#087f82;color:#fff}
[data-theme="dark"] .learning-stage-tab.is-active{background:#214b4a;color:#e1fff7}
.learning-active-card{background:var(--surface);border:2px solid #8abcb8;border-radius:17px;padding:clamp(17px,3vw,32px);box-shadow:var(--shadow)}
.learning-active-card h2{margin:17px 0 19px;font-size:clamp(1.3rem,2.4vw,1.75rem)}
.learning-active-card h3{margin:21px 0 7px;color:var(--text)}
.learning-active-card>p{font-size:1.05rem}
.learning-verification{background:var(--surface2);padding:17px 19px;border:1px solid var(--stroke);border-left:4px solid #087f82;border-radius:12px;margin:22px 0 20px}
.learning-verification p{margin-top:5px;color:var(--text)}
.learning-actions{margin:20px 0 11px}
.learning-actions button{min-height:44px}
.learning-plan{padding:0!important;overflow:hidden}
.learning-plan summary{padding:17px 20px;font-weight:750;cursor:pointer;color:var(--text)}
.learning-plan-row{display:flex;align-items:center;justify-content:space-between;gap:13px;width:100%;min-height:50px;text-align:left;color:var(--text);border-radius:0;border-top:1px solid var(--stroke);background:var(--surface);padding:10px 18px}
.learning-plan-row:hover{background:var(--surface2)}
.learning-plan-row small{color:var(--muted)}
.learning-mentor{border:1px solid #92c6bc;border-radius:16px;background:#e9f7f1;display:grid;grid-template-columns:46px minmax(0,1fr);gap:15px;padding:20px 23px;margin:22px 0;color:#1a4e47}
.learning-mentor .mentor-mark{background:#087f82;color:white;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:23px}
.learning-mentor .eyebrow,.learning-mentor h3,.learning-mentor p,.learning-mentor summary{color:#1e5448}
.learning-mentor h3{margin:4px 0 8px}.learning-mentor button{margin-top:13px}
[data-theme="dark"] .learning-mentor{background:#25453f;border-color:#5b9181}
[data-theme="dark"] .learning-mentor .eyebrow,[data-theme="dark"] .learning-mentor h3,[data-theme="dark"] .learning-mentor p,[data-theme="dark"] .learning-mentor summary{color:#d8f3e9}
.timeline-filters{margin:18px 0 22px}.timeline-filters button{min-height:42px}
.incident-timeline{position:relative;padding:4px 0 6px 28px;margin:15px 0 22px}
.incident-timeline:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:3px;background:#7abbb4;border-radius:3px}
.incident-node{position:relative;margin:0 0 16px}
.incident-node-dot{position:absolute;left:-27px;top:22px;border-radius:50%;background:#087f82;border:3px solid var(--surface);box-shadow:0 0 0 2px #087f82;width:19px;height:19px}
.incident-node.decision .incident-node-dot{background:#bb741b;box-shadow:0 0 0 2px #bb741b}
.incident-node.note .incident-node-dot{background:#527bad;box-shadow:0 0 0 2px #527bad}
.incident-node-content{background:var(--surface);border:1px solid var(--stroke);padding:16px 18px;border-radius:13px;box-shadow:var(--shadow);overflow-wrap:anywhere}
.incident-node-content p{margin-top:9px;color:var(--text)}
.incident-node-content .tiny{color:var(--muted)}
.incident-node-content .row{margin-top:12px}
.incident-node-content code{background:var(--surface2);padding:7px;border-radius:8px}
.learning-feedback-line{padding:11px 0;border-bottom:1px solid var(--stroke);color:var(--text)}
.learning-recap-section{border-bottom:1px solid var(--stroke);padding:13px 0}
.learning-recap-section summary{color:var(--text);font-weight:700;cursor:pointer;font-size:1.03rem}
.learning-recap-section p{margin-top:9px}
.glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:22px 0}
.glossary-entry{box-shadow:none!important;padding:0!important}
.glossary-entry summary{padding:17px 19px;cursor:pointer;font-weight:700;font-size:1rem}
.glossary-entry p{padding:0 19px 18px;color:var(--text)}
.glossary-entry[hidden]{display:none!important}
#glossarySearch{max-width:620px}
.live-command-overview{background:var(--surface);border:2px solid #8dbcb9;border-radius:16px;padding:20px;margin:16px 0}
.live-command-overview h3{font-size:1.35rem;margin-top:6px}
.live-overview-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:19px 0}
.live-overview-counts>div{border:1px solid var(--stroke);border-radius:13px;background:var(--surface2);padding:13px;text-align:center}
.live-overview-counts strong{display:block;color:var(--text);font-size:2rem;line-height:1.25}
.live-overview-counts span{font-size:.84rem;color:var(--muted)}
.live-focus-tabs{margin-top:15px}.live-focus-tabs button{min-height:44px}
.live-attention-list{display:grid;gap:8px;margin-top:13px}
.live-attention-item{border:1px solid var(--stroke);border-left:4px solid #087f82;border-radius:10px;padding:11px 14px;color:var(--text);background:var(--surface2)}
/* WCAG-minded ergonomics (full compliance requires manual audit) */
button,.btn{min-height:44px}
button.small{min-height:38px;padding:8px 12px}
input,select,textarea{min-height:44px}
label{font-size:.91rem;color:var(--text)}
button:focus-visible,.btn:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--cr-focus)!important;outline-offset:3px!important}
[data-theme="dark"] .learning-active-card,[data-theme="dark"] .learning-level,[data-theme="dark"] .incident-node-content{background:#192b3b}
@media(max-width:950px){.learning-hero{grid-template-columns:1fr}.learning-hero-aside{max-width:250px}.glossary-grid{grid-template-columns:1fr}}
@media(max-width:700px){.learning-hero{padding:17px}.learning-active-card{padding:16px}.learning-hero-aside{max-width:none}.learning-stage-tabs{gap:5px}.learning-stage-tab{font-size:.78rem;min-height:59px}.learning-actions button{flex:1 1 100%}.live-overview-counts{grid-template-columns:1fr}.incident-timeline{padding-left:23px}.incident-node-dot{left:-23px}.incident-node-content .row{align-items:flex-start}.learning-mentor{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.learning-active-card,.learning-hero,.incident-node-content{background:#fff!important;color:#000!important;box-shadow:none!important}}
.learning-audio-bar{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--stroke);border-radius:12px;padding:12px 16px;margin:10px 0 18px;color:var(--muted);font-size:.88rem}
.draft-status{color:var(--accent);margin:8px 0}
.trainer-workspace[data-dashboard-focus="attention"] [data-live-slot="roster"]{display:none}
.trainer-workspace[data-dashboard-focus="teams"] [data-live-slot="waiting"],
.trainer-workspace[data-dashboard-focus="teams"] [data-live-slot="roster"],
.trainer-workspace[data-dashboard-focus="students"] [data-live-slot="waiting"],
.trainer-workspace[data-dashboard-focus="students"] [data-live-slot="progress"]{display:none}
