:root{
  --primary:#1967d2;
  --primary-dark:#104a9b;
  --primary-soft:#eaf2ff;
  --bg:#eef3f8;
  --surface:#fff;
  --surface-soft:#f8fbff;
  --line:#d7e0ec;
  --text:#172033;
  --muted:#627086;
  --ok:#087f5b;
  --ok-bg:#eefbf6;
  --warn:#956700;
  --warn-bg:#fff8df;
  --danger:#aa281f;
  --danger-bg:#fff2f1;
  --violet:#6548c7;
  --shadow:0 8px 28px rgba(15,23,42,.08);
}

*{box-sizing:border-box;min-width:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;min-height:100vh;font-family:"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.62;overflow-x:hidden}
body.drawer-open{overflow:hidden}
button,input{font:inherit}
button{touch-action:manipulation}
a{color:var(--primary-dark)}
img,svg{max-width:100%;height:auto}
[hidden]{display:none!important}

.site-header{height:52px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;box-shadow:0 2px 8px #0002;position:sticky;top:0;z-index:90}
.module-back{display:inline-flex;align-items:center;color:#fff;text-decoration:none;font-weight:850;border:1px solid #ffffff70;border-radius:999px;padding:5px 10px;font-size:13px;background:#ffffff14}
.module-back:hover{background:#ffffff25}
.site-header>strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.portal-main{width:min(1120px,100%);margin:0 auto;padding:clamp(28px,5vw,58px) clamp(14px,3vw,28px) 54px}
.portal-heading{max-width:900px;margin-bottom:28px}
.portal-heading h1{color:var(--primary-dark);font-size:clamp(30px,5vw,52px);line-height:1.07;letter-spacing:-.035em;margin:7px 0 13px}
.portal-heading p{font-size:clamp(16px,2vw,19px);color:#405169;margin:0;max-width:820px}
.eyebrow{display:block;color:var(--primary);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.module-card{position:relative;border:1px solid var(--line);border-radius:16px;background:#fff;padding:20px;text-decoration:none;color:inherit;box-shadow:var(--shadow);min-height:205px;display:flex;flex-direction:column}
.module-card h2{color:var(--primary-dark);font-size:clamp(19px,2vw,24px);line-height:1.2;margin:14px 0 8px}
.module-card p{color:#4e5f75;margin:0 0 16px}
.module-card.available{border-color:#abcaf2;transition:transform .16s ease,box-shadow .16s ease}
.module-card.available:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(15,23,42,.13)}
.module-card.planned{background:#f5f7fa;box-shadow:none;color:#66758a}
.module-card.planned h2{color:#526277}
.status{align-self:flex-start;border-radius:999px;padding:4px 9px;background:#ece8ff;border:1px solid #d4c8ff;color:#5f43b6;font-size:11px;font-weight:900}
.status.ready{background:var(--ok-bg);border-color:#9bd9c4;color:var(--ok)}
.card-action{margin-top:auto;color:var(--primary-dark);font-weight:900}
.method-card{margin-top:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.method-card h2{color:var(--primary-dark);margin:0;font-size:22px}
.method-flow{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;counter-reset:method}
.method-flow li{counter-increment:method;background:var(--surface-soft);border:1px solid var(--line);border-radius:11px;padding:13px}
.method-flow li::before{content:counter(method);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:900;margin-bottom:8px}
.method-flow strong,.method-flow span{display:block}.method-flow strong{color:var(--primary-dark)}.method-flow span{font-size:12px;color:var(--muted);margin-top:2px}

.course-view{min-height:calc(100vh - 52px)}
.course-toolbar{min-height:50px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:7px 14px;position:sticky;top:52px;z-index:80}
.pill-button,.module-pill{border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:800;white-space:nowrap}
.pill-button{border:1px solid #bdd2ef;background:#fff;color:var(--primary-dark);cursor:pointer;text-decoration:none}
.pill-button:hover{background:var(--primary-soft)}
.module-pill{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #bdd2ef}
.menu-toggle{margin-left:auto;background:var(--primary);color:#fff;border-color:var(--primary)}
.menu-toggle:hover{background:var(--primary-dark)}
.lesson-menu{position:fixed;top:102px;left:0;bottom:0;width:min(350px,90vw);padding:14px 12px 24px;background:#fff;border-right:1px solid var(--line);box-shadow:12px 0 32px rgba(15,23,42,.16);overflow-y:auto;z-index:100;transform:translateX(-105%);transition:transform .2s ease}
.lesson-menu.open{transform:translateX(0)}
.menu-backdrop{position:fixed;inset:102px 0 0;background:rgba(15,23,42,.34);z-index:95}
.drawer-heading{padding:4px 8px 13px;border-bottom:1px solid var(--line);margin-bottom:6px}
.drawer-heading strong{display:block;color:var(--primary-dark);font-size:15px}.drawer-heading span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.menu-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900;padding:12px 8px 5px}
.menu-item{width:100%;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;border:0;background:transparent;text-align:left;color:#172033;font-size:13px;font-weight:750;line-height:1.2;padding:9px 8px;border-radius:9px;margin:2px 0;cursor:pointer}
.menu-number{display:grid;place-items:center;width:31px;height:27px;border-radius:7px;background:#f0f4f9;color:var(--muted);font-size:11px;font-weight:900}
.menu-item:hover,.menu-item.active{background:var(--primary-soft);color:var(--primary-dark)}.menu-item.active .menu-number{background:var(--primary);color:#fff}
.content-area{width:min(1060px,100%);margin:0 auto;padding:20px clamp(12px,2.5vw,26px) 48px}
.lesson-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.8fr);gap:20px;align-items:end;margin:2px 0 14px}
.unit-name{font-size:10.5px;font-weight:900;color:var(--primary);text-transform:uppercase;letter-spacing:.08em}.technical-title{font-size:12px;font-weight:800;color:#46566c;margin-top:2px;overflow-wrap:anywhere}
.lesson-heading h1{font-size:clamp(25px,3vw,37px);line-height:1.08;color:var(--primary-dark);margin:5px 0 0;letter-spacing:-.02em}.lesson-objective{font-size:13px;line-height:1.45;margin:0;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:11px;color:#42536a}
.lesson-content{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(17px,2.7vw,30px);box-shadow:var(--shadow);overflow:hidden}
.lesson-content>*:first-child{margin-top:0}.lesson-content h2{font-size:clamp(22px,2.6vw,31px);line-height:1.2;color:var(--primary-dark);margin:5px 0 10px}.lesson-content h3{font-size:clamp(19px,2vw,23px);line-height:1.25;color:var(--primary-dark);margin:30px 0 9px}.lesson-content h4{font-size:16px;color:var(--primary-dark);margin:18px 0 7px}.lesson-content p{margin:8px 0}.lesson-content ul,.lesson-content ol{margin:8px 0 12px 22px;padding:0}.lesson-content li{margin:5px 0}.lesson-content strong{font-weight:800}

.hero-box,.definition-box,.example-box,.note-box,.ok-box,.danger-box,.bridge-box,.mbb-pause-question,.essence,.checkpoint,.task-box,.record-box{border-radius:12px;padding:16px 17px;margin:16px 0}
.hero-box{background:linear-gradient(135deg,#eaf3ff 0%,#f8fbff 60%,#fff 100%);border:1px solid #bdd4f4}.story-opening p{font-size:16px;line-height:1.65}.definition-box,.example-box{background:var(--surface-soft);border:1px solid var(--line)}.definition-box{border-left:4px solid #8db6ee}.definition-box.featured{border:2px solid #9fc2f2;background:#f5f9ff}.definition-box.compact,.note-box.compact,.danger-box.compact,.example-box.compact,.ok-box.compact{padding:12px 14px;margin:11px 0}.term{display:block;color:var(--primary-dark);font-weight:900;font-size:16px;margin-bottom:4px}.note-box{background:var(--warn-bg);border-left:5px solid #d59b00}.ok-box{background:var(--ok-bg);border-left:5px solid var(--ok)}.danger-box{background:var(--danger-bg);border-left:5px solid var(--danger)}.bridge-box{background:#f5f2ff;border:1px solid #ded5ff;border-left:5px solid var(--violet)}.mbb-pause-question{background:#eef6ff;border:1px solid #bdd4f4;border-left:5px solid var(--primary)}.essence{border:2px solid #b9d3f6;background:#f8fbff}.essence>strong{display:block;color:var(--primary-dark);font-size:17px;margin-bottom:4px}.task-box{background:#f8fbff;border:1px solid var(--line);border-left:5px solid var(--primary)}.record-box{background:#f7fdfb;border:1px solid #a9ddcb;border-left:5px solid var(--ok)}
.two-col,.comparison-grid,.evidence-grid,.hardware-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.comparison-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.comparison-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.comparison-grid article,.evidence-grid article,.hardware-map article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.comparison-grid article strong,.evidence-grid article strong,.hardware-map article strong{display:block;color:var(--primary-dark);margin-bottom:4px}.comparison-grid article p,.evidence-grid article p,.hardware-map article p{font-size:13px;line-height:1.5;color:#475871}
.hardware-map{grid-template-columns:repeat(3,minmax(0,1fr));background:#f3f7fc;border:1px solid var(--line);border-radius:14px;padding:12px}.hardware-map article{position:relative}.hardware-map article::before{content:attr(data-zone);display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:var(--primary);color:#fff;font-size:11px;font-weight:900;margin-bottom:8px}
.process-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0}.process-flow>div{position:relative;background:var(--primary-soft);border:1px solid #bdd4f4;border-radius:10px;padding:12px;text-align:center}.process-flow strong{display:block;color:var(--primary-dark);font-size:13px}.process-flow span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.table-wrap{width:100%;overflow-x:auto;margin:14px 0;border:1px solid var(--line);border-radius:11px}table{width:100%;border-collapse:collapse;min-width:610px;background:#fff}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f3f7fc;color:var(--primary-dark);font-size:12px}td{font-size:13px}tbody tr:last-child td{border-bottom:0}
.checkpoint{background:#f8fbff;border:1px solid #bdd4f4;border-top:4px solid var(--primary);margin-top:26px}.compact-check{padding:15px}.quiz-item{border:1px solid var(--line);border-radius:11px;padding:14px;margin:10px 0;background:#fff;transition:.15s ease}.quiz-item>p{font-weight:800;margin:0 0 8px;line-height:1.48}.quiz-item label{display:block;padding:7px 9px;margin:4px 0;border-radius:8px;cursor:pointer;font-size:13px}.quiz-item label:hover{background:#f6f9fd}.quiz-item input{margin-right:7px}.quiz-item.is-correct{border-color:#91d2bd;background:#f7fdfb}.quiz-item.is-wrong{border-color:#efb3ad;background:#fffafa}.quiz-result{margin-top:12px}.feedback-list{margin:8px 0 0 20px!important}.feedback-list li{margin:6px 0!important}
.action-button{border:1px solid #b9d3f6;background:#fff;color:var(--primary-dark);font-weight:800;border-radius:9px;padding:10px 13px;cursor:pointer}.action-button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.action-button:hover{filter:brightness(.98)}.lesson-navigation{display:flex;gap:9px;flex-wrap:wrap;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:28px}
.checklist{list-style:none!important;margin-left:0!important}.checklist label{display:flex;align-items:flex-start;gap:9px;padding:9px;border-radius:8px}.checklist label:hover{background:#f2f7fd}.checklist input{margin-top:5px}.check-progress{font-weight:900;color:var(--primary-dark)}
.report-template{display:block;width:100%;min-height:240px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;background:#101827;color:#f8fafc;font:13px/1.5 Consolas,"Courier New",monospace}.copy-status{font-size:12px;color:var(--ok);font-weight:800;margin-left:8px}
.visual-lab{margin:18px 0;border:1px solid #b9cce5;border-radius:15px;background:#f7faff;overflow:hidden}.visual-lab-header{padding:15px 17px;border-bottom:1px solid #cfdaea;background:#edf5ff}.visual-lab-header h3,.visual-lab-header h4{margin:3px 0 5px}.visual-lab-header p{margin:0;color:#42536a}.visual-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--primary-dark);font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.visual-kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary)}.visual-body{padding:16px 17px}.representation-badge{display:inline-flex;border:1px solid #d2c7ff;border-radius:999px;background:#f5f2ff;color:#5b40b1;padding:4px 9px;font-size:10.5px;font-weight:900}.visual-question{border-left:4px solid var(--primary);padding:10px 12px;margin:14px 0 0;background:#fff;border-radius:0 9px 9px 0}.visual-question strong{color:var(--primary-dark)}
.photo-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.object-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.object-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#eef1f5}.object-card figcaption{padding:11px 12px;font-size:12.5px;color:#45566c}.object-card figcaption strong{display:block;color:var(--primary-dark);font-size:14px;margin-bottom:3px}.source-credit{display:block;margin-top:6px;color:var(--muted);font-size:10px}.source-credit a{color:inherit}.observation-prompts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0 0;padding:0;list-style:none}.observation-prompts li{margin:0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;font-size:12.5px}.observation-prompts strong{display:block;color:var(--primary-dark);margin-bottom:3px}
.ui-representation{margin-top:13px;border:1px solid #9caec5;border-radius:12px;background:#10192a;color:#eef5ff;box-shadow:0 8px 22px rgba(15,23,42,.13);overflow:hidden}.ui-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#1a2a45;border-bottom:1px solid #3b4d68;font-size:12px;font-weight:800}.window-dots{display:flex;gap:5px}.window-dots span{width:8px;height:8px;border-radius:50%;background:#7890ac}.firmware-layout{display:grid;grid-template-columns:180px 1fr;min-height:280px}.firmware-nav{padding:12px;background:#142138;border-right:1px solid #3b4d68}.firmware-nav span{display:block;border-radius:7px;padding:8px 9px;margin:3px 0;font-size:12px;color:#b9c8dc}.firmware-nav .active{background:#235da8;color:#fff;font-weight:800}.firmware-panel{padding:16px}.firmware-panel h4{color:#fff;margin:0 0 12px}.setting-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,.7fr);gap:10px;padding:10px 0;border-bottom:1px solid #33445d;font-size:12.5px}.setting-row span:last-child{color:#8fc1ff;font-weight:800}.boot-list{margin-top:14px}.boot-device{display:flex;align-items:center;gap:9px;padding:10px;margin:7px 0;background:#1b2b45;border:1px solid #40536e;border-radius:8px;font-size:12.5px}.boot-device b{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:6px;background:#2f70c7;color:#fff}
.disk-screen{background:#f4f7fb;color:var(--text)}.disk-screen .ui-topbar{background:#fff;color:#26364d;border-bottom-color:var(--line)}.disk-toolbar{padding:12px 14px;background:#eaf2ff;border-bottom:1px solid #bfd2ea;font-size:12px;color:#3d4f66}.disk-list{padding:12px}.disk-row{display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:stretch;margin:10px 0}.disk-label{display:flex;flex-direction:column;justify-content:center;border:1px solid #b7c5d7;border-radius:8px;background:#fff;padding:9px;font-size:11px}.disk-label strong{color:var(--primary-dark);font-size:13px}.disk-partitions{display:flex;min-height:76px;gap:4px}.partition{display:flex;flex-direction:column;justify-content:center;border:2px solid #7898bd;border-radius:7px;background:#fff;padding:8px;min-width:78px;font-size:10.5px;line-height:1.3}.partition strong{color:#294b75;font-size:12px}.partition.system{flex:0 0 19%}.partition.primary{flex:1}.partition.unallocated{flex:1;border-style:dashed;border-color:#8a94a3;background:#f8f9fb}.partition.do-not-touch{border-color:#b74a41;background:#fff2f1}.disk-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 12px 13px}.fake-button{border:1px solid #a8b8cc;border-radius:6px;background:#fff;padding:6px 10px;font-size:11px;color:#3d4f66}.fake-button.danger{border-color:#d98f89;color:#8c2119;background:#fff8f7}
.evidence-switcher{margin:13px 0}.switcher-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.switcher-buttons button{border:1px solid #a9bfda;background:#fff;color:var(--primary-dark);border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.switcher-buttons button[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}.evidence-panel{border:1px solid var(--line);border-radius:10px;background:#fff;padding:13px}.evidence-panel h4{margin:0 0 7px}.result-matrix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.result-cell{border:1px solid var(--line);border-radius:8px;padding:9px;text-align:center;font-size:11px}.result-cell strong{display:block;font-size:12px}.result-cell.allowed{background:var(--ok-bg);border-color:#9fd8c5}.result-cell.blocked{background:#f4f6f9;color:#5c6878}
.permission-window{background:#f4f7fb;color:var(--text)}.permission-window .ui-topbar{background:#fff;color:#26364d;border-bottom-color:var(--line)}.window-tabs{display:flex;gap:2px;padding:8px 10px 0;background:#fff;border-bottom:1px solid var(--line)}.window-tabs span{padding:7px 10px;font-size:11px;color:#526277}.window-tabs .active{border:1px solid var(--line);border-bottom-color:#f4f7fb;border-radius:6px 6px 0 0;background:#f4f7fb;color:var(--primary-dark);font-weight:800}.permission-body{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(220px,1.25fr);gap:12px;padding:13px}.identity-list,.permission-list{border:1px solid #b9c5d4;border-radius:7px;background:#fff;padding:8px}.identity-list span{display:block;padding:7px;border-radius:5px;font-size:11.5px}.identity-list .active{background:#dceaff;color:#174f98;font-weight:800}.permission-list{display:grid;grid-template-columns:1fr 58px 58px;align-items:center;font-size:11px}.permission-list strong,.permission-list span{padding:5px;border-bottom:1px solid #e2e8f0}.permission-list .mark{text-align:center;font-weight:900;color:var(--ok)}.permission-list .inherit{color:#5f6f84}.inherit-note{grid-column:1/-1;padding-top:8px;font-size:10px;color:#5c6a7b}
.task-window{background:#f6f8fb;color:var(--text)}.task-window .ui-topbar,.event-window .ui-topbar{background:#fff;color:#26364d;border-bottom-color:var(--line)}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px}.metric{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px;font-size:10.5px}.metric strong{display:block;color:var(--primary-dark);font-size:15px}.process-rows{padding:0 10px 10px}.process-row{display:grid;grid-template-columns:minmax(140px,1.4fr) repeat(3,minmax(60px,.45fr));border-bottom:1px solid #dce3ec;background:#fff;font-size:11px}.process-row>*{padding:8px}.process-row.header{font-weight:800;background:#e9eff7;color:#34455c}.process-row.investigate{background:#fff4da;border:1px solid #e3b341;border-radius:7px}.process-name strong{display:block;color:#263f60}.process-name span{color:var(--muted);font-size:9.5px}.event-window{background:#f6f8fb;color:var(--text)}.event-layout{display:grid;grid-template-columns:150px 1fr}.event-tree{padding:11px;background:#edf1f6;border-right:1px solid #c8d2df;font-size:10.5px}.event-tree span{display:block;padding:6px;border-radius:5px}.event-tree .active{background:#d8e8fb;color:#174f98;font-weight:800}.event-content{padding:10px;overflow:hidden}.event-row{display:grid;grid-template-columns:105px minmax(120px,1fr) 55px minmax(130px,1.4fr);font-size:10.5px;border-bottom:1px solid #dce3ec;background:#fff}.event-row>*{padding:7px;overflow-wrap:anywhere}.event-row.header{font-weight:800;background:#e9eff7}.event-row.related{background:#eaf7f1;border:1px solid #80bca8;border-radius:6px}.event-detail{margin-top:9px;border:1px solid #c5d0de;border-radius:7px;background:#fff;padding:10px;font-size:10.5px}.event-detail strong{display:block;color:#2b486b;margin-bottom:4px}
.state-comparison{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}.state-step{position:relative;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px}.state-step:not(:last-child)::after{content:"→";position:absolute;right:-9px;top:50%;z-index:2;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px}.state-step strong{display:block;color:var(--primary-dark);font-size:12px}.state-step span{display:block;color:#526277;font-size:11.5px;margin-top:4px}.evidence-id{display:inline-flex;margin-top:6px;border-radius:5px;background:#e9f2ff;color:#1d5ba7;padding:3px 6px;font-size:9.5px;font-weight:900}.artifact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.artifact-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px}.artifact-card strong{display:block;color:var(--primary-dark);font-size:13px}.artifact-card span{display:block;color:#53647a;font-size:11.5px;margin-top:4px}
.sources-box{margin:24px 0 4px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:12px}.sources-box summary{cursor:pointer;color:var(--primary-dark);font-weight:800}.sources-box ul{margin-top:8px}.sources-box a{overflow-wrap:anywhere}

/* Módulo 2 · representações e evidências de rede */
.network-map{display:grid;grid-template-columns:130px 45px 130px 45px 130px;align-items:center;justify-content:center;gap:6px;margin:18px 0}.net-node,.route-node{border:2px solid #8fb3df;border-radius:12px;background:#fff;padding:13px;text-align:center;color:var(--primary-dark);font-size:13px}.net-node small,.route-node span{display:block;color:var(--muted);font-size:10.5px}.net-node.cloud{border-style:dashed}.net-node.switch{background:#eaf7f1;border-color:#72b79f}.net-link{height:3px;background:#6a8fbd;border-radius:2px}.net-branches{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:18px 3px 0}.net-branches span{border-top:3px solid #6a8fbd;border-radius:7px;background:#fff;padding:10px;text-align:center;font-size:11px}.net-branches .unknown{border-color:#d29b1d;border-top-style:dashed;background:var(--warn-bg)}
.subnet-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:17px 0;border:1px solid #aabbd0;border-radius:11px;overflow:hidden}.subnet-strip div{padding:14px 11px;border-right:1px solid #aabbd0;background:#eaf2ff}.subnet-strip div:nth-child(2){background:#eefbf6}.subnet-strip div:nth-child(3){background:#f5f2ff}.subnet-strip div:nth-child(4){background:#fff8df;border-right:0}.subnet-strip strong,.subnet-strip span{display:block}.subnet-strip strong{font-size:12px;color:var(--primary-dark)}.subnet-strip span{font-size:10.5px;color:#4b5d73;margin-top:4px}
.terminal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.terminal-card{border:1px solid #34465f;border-radius:10px;background:#101827;color:#ecf4ff;padding:13px;margin:13px 0;overflow:hidden}.terminal-grid .terminal-card{margin:0}.terminal-card>strong{display:block;color:#9dccff;margin-bottom:7px}.terminal-card.warn{border-color:#d5a52e;background:#282214}.terminal-card pre{margin:0;overflow-x:auto;color:#edf5ff;font:11.5px/1.55 Consolas,"Courier New",monospace;white-space:pre}.terminal-card p{font-size:12px;color:#c6d4e6}.terminal-card code{color:inherit}
.route-map{display:grid;grid-template-columns:110px 62px 110px 62px 110px 62px 110px;align-items:center;justify-content:center;margin:18px 0}.route-arrow{text-align:center;color:var(--muted);font-size:9.5px}.route-arrow::after{content:"→";display:block;color:var(--primary);font-size:22px;line-height:1}.service-stack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:17px 0}.service-stack div{position:relative;border:1px solid #98b5d6;border-radius:10px;background:#fff;padding:13px;text-align:center}.service-stack div:not(:last-child)::after{content:"→";position:absolute;right:-11px;top:42%;z-index:2;color:var(--primary);font-weight:900}.service-stack strong,.service-stack span{display:block}.service-stack strong{color:var(--primary-dark)}.service-stack span{font-size:11px;color:var(--muted)}.service-stack .blocked{border-color:#d77f78;background:var(--danger-bg)}
.command-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.command-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;background:#fff;padding:13px}.command-card strong{color:var(--primary-dark)}.command-card span{font-size:12px;margin:5px 0}.command-card small{margin-top:auto;padding-top:7px;border-top:1px solid var(--line);color:var(--muted)}.diagnostic-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:16px 0}.diagnostic-flow div{border-top:4px solid var(--primary);border-radius:9px;background:#fff;padding:11px;border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.diagnostic-flow strong,.diagnostic-flow span{display:block}.diagnostic-flow strong{color:var(--primary-dark);font-size:12px}.diagnostic-flow span{color:var(--muted);font-size:10.5px;margin-top:4px}
.vlan-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}.vlan-zone,.policy-gate{border:2px solid;border-radius:12px;padding:14px}.vlan-zone strong,.vlan-zone span,.vlan-zone small,.policy-gate strong,.policy-gate span{display:block}.vlan-zone strong,.policy-gate strong{font-size:13px}.vlan-zone span,.policy-gate span{font-size:11px}.vlan-zone small{margin-top:5px;color:#4e6075}.vlan-zone.staff{border-color:#5998e4;background:#edf5ff}.vlan-zone.lab{border-color:#54aa8e;background:#eefbf6}.vlan-zone.guest{border-color:#9a81df;background:#f5f2ff}.policy-gate{grid-column:1/-1;text-align:center;border-color:#d19b20;background:var(--warn-bg)}
.wifi-plan{display:grid;grid-template-columns:1fr 36px 1.7fr 1fr;min-height:225px;margin:17px 0;border:1px solid #aabbd0;border-radius:12px;overflow:hidden}.hall,.room,.lab-room{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;text-align:center}.hall{background:#edf5ff}.hall b{display:grid;place-items:center;margin-top:12px;width:65px;height:65px;border:2px solid var(--primary);border-radius:50%;background:#fff;color:var(--primary-dark)}.wall{display:grid;place-items:center;background:#697789;color:#fff;font-size:9px;writing-mode:vertical-rl}.room{position:relative;background:#fff}.room>small{margin-top:55px;color:var(--muted)}.lab-room{background:#eefbf6;border-left:1px solid #aabbd0}.measure{position:absolute;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eaf2ff;border:2px solid #5089cc;font-size:10px}.measure.a{left:8%;top:20%}.measure.b{left:42%;top:46%}.measure.c{right:6%;top:18%;background:var(--warn-bg);border-color:#c29120}.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.scenario-grid article{border:1px solid var(--line);border-radius:10px;background:#fff;padding:13px}.scenario-grid strong{color:var(--primary-dark)}.scenario-grid p{font-size:12px;color:#4d5e74}

@media(max-width:900px){.lesson-heading{grid-template-columns:1fr;gap:8px;align-items:start}.lesson-objective{max-width:760px}.comparison-grid.four,.comparison-grid.three,.hardware-map{grid-template-columns:repeat(2,minmax(0,1fr))}.process-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.process-flow>div:last-child{grid-column:1/-1}.observation-prompts,.artifact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.state-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.state-step:nth-child(2)::after{display:none}.terminal-grid,.command-board,.scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subnet-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.subnet-strip div:nth-child(2){border-right:0}.subnet-strip div:nth-child(-n+2){border-bottom:1px solid #aabbd0}.route-map{grid-template-columns:100px 45px 100px 45px 100px 45px 100px}}
@media(max-width:700px){.site-header{padding:0 11px}.site-header>strong{max-width:44vw}.portal-main{padding-top:24px}.module-grid,.method-flow{grid-template-columns:1fr}.course-toolbar{padding:6px 9px;gap:6px}.module-pill{display:none}.content-area{padding:14px 8px 34px}.lesson-heading{padding:0 4px}.lesson-heading h1{font-size:26px}.lesson-objective{font-size:12.5px}.lesson-content{border-radius:12px;padding:15px 12px}.two-col,.comparison-grid,.comparison-grid.three,.comparison-grid.four,.evidence-grid,.hardware-map,.process-flow,.photo-board,.observation-prompts,.artifact-grid,.state-comparison,.terminal-grid,.command-board,.scenario-grid,.vlan-map,.service-stack,.diagnostic-flow{grid-template-columns:1fr}.process-flow>div:last-child{grid-column:auto}.lesson-navigation{display:grid;grid-template-columns:1fr}.lesson-navigation button{width:100%}table{min-width:560px}.visual-body,.visual-lab-header{padding:13px 11px}.firmware-layout,.permission-body,.event-layout{grid-template-columns:1fr}.firmware-nav{display:flex;gap:4px;overflow-x:auto;border-right:0;border-bottom:1px solid #3b4d68}.firmware-nav span{white-space:nowrap}.disk-row{grid-template-columns:1fr}.disk-partitions{min-height:100px}.result-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.process-row{grid-template-columns:minmax(112px,1fr) repeat(3,50px)}.process-row>*{padding:7px 4px}.event-tree{display:none}.event-content{overflow-x:auto}.event-row{min-width:520px}.state-step:not(:last-child)::after,.service-stack div:not(:last-child)::after{display:none}.network-map{grid-template-columns:1fr;max-width:270px;margin:18px auto}.net-link{width:3px;height:28px;justify-self:center}.net-branches{grid-column:1;grid-template-columns:1fr;width:100%}.subnet-strip{grid-template-columns:1fr}.subnet-strip div{border-right:0;border-bottom:1px solid #aabbd0}.subnet-strip div:last-child{border-bottom:0}.route-map{grid-template-columns:1fr;max-width:260px;margin:18px auto;gap:4px}.route-arrow::after{content:"↓"}.service-stack{gap:8px}.diagnostic-flow{gap:8px}.policy-gate{grid-column:auto}.wifi-plan{grid-template-columns:1fr;min-height:480px}.wall{writing-mode:horizontal-tb;min-height:28px}.lab-room{border-left:0;border-top:1px solid #aabbd0}.room{min-height:210px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* MbB: leitura de comandos e copia fiel em Infraestrutura.
   Mantem o texto original e a identacao; as quebras sao apenas visuais. */
.terminal-copy-tools{display:flex;justify-content:flex-end;margin:6px 0 4px;}
.terminal-copy-btn{border:1px solid #64748b;background:#233e5d;color:#fff;border-radius:7px;padding:5px 11px;min-height:30px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;}
.terminal-copy-btn:focus-visible{outline:3px solid #93c5fd;outline-offset:2px;}
.terminal-copy-btn.terminal-copy-error{border-color:#f87171;color:#fee2e2;}
@media(max-width:900px){
  .terminal-card > pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;min-width:0;max-width:100%;overflow-x:hidden;}
}
