:root{--font-sans:"Segoe UI", "Noto Sans Arabic", "Noto Sans", Tahoma, system-ui, -apple-system, sans-serif;--font-mono:"Cascadia Mono", Consolas, "SFMono-Regular", Menlo, "Courier New", monospace;--fs-base:1rem;--lh:1.75;--radius:10px;--radius-small:6px;--gap:1rem;--max:1200px;--reading:72ch;--bg:#f7f8f6;--surface:#fff;--surface-2:#eef2ef;--text:#17201d;--muted:#56615d;--border:#d5ddd9;--brand:#0f6b5c;--brand-strong:#0a5246;--brand-soft:#dff1ec;--on-brand:#fff;--focus:#1f6feb;--ok:#1d7a3a;--ok-soft:#e1f3e6;--bad:#b4232b;--bad-soft:#fbe5e6;--warn:#8a5a00;--warn-soft:#fdf1d6;--info:#1f5fa8;--info-soft:#e3eefb;--code-bg:#10201c;--code-text:#e6efe9;--code-muted:#8ea39b;--dg-c1:#dbeafe;--dg-c2:#dcfce7;--dg-c3:#fef3c7;--dg-c4:#fce7f3;--dg-c5:#e0e7ff;--dg-muted:#eef2f0;--dg-stroke:#4b5a55;--dg-text:#17201d;--dg-accent:#0f6b5c;--dg-alert:#c2410c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1513;--surface:#151f1c;--surface-2:#1c2925;--text:#e4ece8;--muted:#9fb0aa;--border:#2c3b36;--brand:#4cc3a8;--brand-strong:#7dd8c3;--brand-soft:#173a32;--on-brand:#06231d;--focus:#7cb3ff;--ok:#5fd08a;--ok-soft:#16301f;--bad:#ff8a8f;--bad-soft:#3a1a1c;--warn:#f3c25c;--warn-soft:#362a10;--info:#8ab8ff;--info-soft:#172840;--code-bg:#0a1210;--dg-c1:#1e3a5f;--dg-c2:#1d4030;--dg-c3:#4a3b12;--dg-c4:#4a1f3a;--dg-c5:#2b2f5e;--dg-muted:#1f2b28;--dg-stroke:#a3b5ae;--dg-text:#e4ece8;--dg-accent:#4cc3a8;--dg-alert:#fb923c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1513;--surface:#151f1c;--surface-2:#1c2925;--text:#e4ece8;--muted:#9fb0aa;--border:#2c3b36;--brand:#4cc3a8;--brand-strong:#7dd8c3;--brand-soft:#173a32;--on-brand:#06231d;--focus:#7cb3ff;--ok:#5fd08a;--ok-soft:#16301f;--bad:#ff8a8f;--bad-soft:#3a1a1c;--warn:#f3c25c;--warn-soft:#362a10;--info:#8ab8ff;--info-soft:#172840;--code-bg:#0a1210;--dg-c1:#1e3a5f;--dg-c2:#1d4030;--dg-c3:#4a3b12;--dg-c4:#4a1f3a;--dg-c5:#2b2f5e;--dg-muted:#1f2b28;--dg-stroke:#a3b5ae;--dg-text:#e4ece8;--dg-accent:#4cc3a8;--dg-alert:#fb923c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-font-size=large]{--fs-base:1.125rem}:root[data-font-size=xlarge]{--fs-base:1.25rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh);overflow-wrap:break-word;margin:0}h1,h2,h3,h4,h5{margin-block:1.4em .5em;line-height:1.3}h1{margin-block-start:.4em;font-size:2rem}h2{font-size:1.5rem}h3,.h3{font-size:1.2rem}h4{font-size:1.05rem}p{margin-block:.6em}a{color:var(--brand-strong);text-underline-offset:3px}a:hover{color:var(--brand)}img{max-inline-size:100%}code,pre,kbd{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}::selection{background:var(--brand-soft)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;overflow:hidden;position:absolute!important}.muted{color:var(--muted)}.small{font-size:.875rem}.ltr{direction:ltr;unicode-bidi:isolate}.text-ok{color:var(--ok)}.text-error{color:var(--bad)}.plain{margin:0;padding:0;list-style:none}.stack>*+*{margin-block-start:.5rem}.count{background:var(--bad);color:#fff;border-radius:999px;place-items:center;min-inline-size:1.5em;padding-inline:.35em;font-size:.75rem;font-weight:700;display:inline-grid}[dir=rtl] .flip-rtl{transform:scaleX(-1)}.inline-code,td.cell-tech,.chip[dir=ltr]{direction:ltr;unicode-bidi:isolate}.inline-code{background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:.05em .35em;font-size:.9em}.inline-code.is-long{white-space:normal;overflow-wrap:anywhere}.app{flex-direction:column;min-block-size:100vh;display:flex}main{outline:none;flex:1;padding-block-end:3rem}.container{inline-size:100%;max-inline-size:var(--max);margin-inline:auto;padding-inline:1rem}.container.narrow{max-inline-size:860px}.section{margin-block:2rem}.grid{gap:var(--gap);display:grid}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.two-col{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:2rem;display:grid}@media (width<=860px){.two-col{grid-template-columns:1fr}}.skip-link{z-index:100;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-small);font:inherit;cursor:pointer;border:0;padding:.6rem 1rem;position:absolute;inset-block-start:-100px;inset-inline-start:1rem}.skip-link:focus{inset-block-start:.5rem}.site-header{z-index:50;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-block-end:1px solid var(--border);position:sticky;inset-block-start:0}.header-inner{max-inline-size:var(--max);align-items:center;gap:1rem;margin-inline:auto;padding:.5rem 1rem;display:flex}.brand{color:var(--text);align-items:center;gap:.6rem;text-decoration:none;display:flex}.brand-mark{background:var(--brand);block-size:38px;inline-size:38px;color:var(--on-brand);border-radius:9px;place-items:center;display:grid}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-name{font-weight:700}.brand-free{color:var(--brand-strong);font-size:.75rem;font-weight:600}.main-nav{margin-inline-start:auto}.main-nav ul{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.main-nav a{border-radius:var(--radius-small);color:var(--text);align-items:center;gap:.4rem;padding:.45rem .7rem;font-size:.95rem;text-decoration:none;display:flex}.main-nav a:hover{background:var(--surface-2)}.main-nav a.is-active{background:var(--brand-soft);color:var(--brand-strong);font-weight:600}.header-tools{align-items:center;gap:.25rem;display:flex}.btn.menu-toggle{display:none}.main-nav a{white-space:nowrap}.storage-warning{background:var(--warn-soft);color:var(--warn);text-align:center;margin:0;padding:.35rem 1rem;font-size:.85rem}@media (width<=1100px){.btn.menu-toggle{display:inline-flex}.main-nav{background:var(--surface);border-block-end:1px solid var(--border);padding:.5rem 1rem 1rem;display:none;position:absolute;inset-block-start:100%;inset-inline:0}.main-nav.is-open{display:block}.main-nav ul{flex-direction:column}.header-tools{margin-inline-start:auto}.lang-toggle{padding-inline:.5rem}}@media (width<=560px){.header-tools .header-settings{display:none}.header-inner{gap:.5rem}}@media (width<=420px){.brand-free,.lang-toggle .icon{display:none}}.site-footer{border-block-start:1px solid var(--border);background:var(--surface)}.footer-inner{max-inline-size:var(--max);margin-inline:auto;padding:1.5rem 1rem}.btn{border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface);min-block-size:40px;color:var(--text);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:.45rem;padding:.45rem .95rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2);color:var(--text)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn-primary:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--on-brand)}.btn-ghost{background:0 0;border-color:#0000}.btn-danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--border))}.btn-small{min-block-size:32px;padding:.2rem .6rem;font-size:.85rem}.btn-large{min-block-size:48px;padding:.6rem 1.3rem;font-size:1.05rem}.btn-icon{inline-size:40px;padding:0}.btn.is-on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}.link-row{flex-wrap:wrap;gap:.5rem;margin-block:1rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem}.card h3{margin-block-start:.2em}.card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.card-meta,.meta-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:.5rem;display:flex}.card-progress{margin-block-start:.75rem}.card-link{color:var(--text);text-decoration:none}.card-link:hover{text-decoration:underline}.course-card.is-planned{background:var(--surface-2)}.vendor-tag{color:var(--muted);letter-spacing:.02em;font-size:.85rem;font-weight:700}.big-title{margin-block:.25rem;font-size:1.15rem;font-weight:700}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;font-size:.78rem;font-weight:600;line-height:1.6;display:inline-flex}.badge-neutral{background:var(--surface-2);color:var(--muted);border-color:var(--border)}.badge-available,.badge-complete,.badge-cov-covered{background:var(--ok-soft);color:var(--ok)}.badge-in-progress,.badge-draft,.badge-cov-partial{background:var(--warn-soft);color:var(--warn)}.badge-planned,.badge-cov-not-covered{background:var(--surface-2);color:var(--muted);border-color:var(--border)}.badge-cov-not-covered{color:var(--bad)}.badge-interactive{background:var(--info-soft);color:var(--info)}.badge-type-lesson{background:var(--brand-soft);color:var(--brand-strong)}.badge-type-module{background:var(--info-soft);color:var(--info)}.badge-type-term{background:var(--warn-soft);color:var(--warn)}.badge-type-course{background:var(--ok-soft);color:var(--ok)}.progress{background:var(--surface-2);border-radius:999px;block-size:8px;margin-block:.4rem;overflow:hidden}.progress-fill{background:var(--brand);border-radius:999px;block-size:100%;transition:inline-size .3s}.chips{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:.2rem .7rem;font-size:.85rem;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--brand)}.chip.is-active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.state{border-radius:var(--radius);align-items:center;gap:.75rem;margin-block:1rem;padding:1.25rem;display:flex}.state-empty{background:var(--surface-2);color:var(--muted)}.state-error{background:var(--bad-soft);color:var(--bad);flex-wrap:wrap}.state-error p{flex:1;margin:0}.state-loading{color:var(--muted)}.spinner{border:3px solid var(--border);border-block-start-color:var(--brand);border-radius:50%;block-size:18px;inline-size:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.breadcrumbs ol{flex-wrap:wrap;gap:.25rem;margin:1rem 0 0;padding:0;font-size:.875rem;list-style:none;display:flex}.breadcrumbs li+li:before{content:"/";color:var(--muted);margin-inline-end:.25rem}.breadcrumbs a{color:var(--muted)}.page-header{margin-block:1rem 1.5rem}.page-header .lead{max-inline-size:var(--reading)}.lead{color:var(--muted);font-size:1.1rem}.callout{border:1px solid var(--border);border-inline-start:4px solid var(--brand);border-radius:var(--radius-small);background:var(--surface);margin-block:1rem;padding:.75rem 1rem}.callout p{margin:.3rem 0 0}.callout-title{align-items:center;gap:.45rem;font-weight:700;display:flex}.callout-beginner{border-inline-start-color:var(--info);background:var(--info-soft)}.callout-deep{border-inline-start-color:#7c3aed}.callout-tip{border-inline-start-color:var(--ok);background:var(--ok-soft)}.callout-warning{border-inline-start-color:var(--warn);background:var(--warn-soft)}.callout-exam{border-inline-start-color:var(--brand);background:var(--brand-soft)}.callout-arabic-note{border-inline-start-color:var(--muted);background:var(--surface-2)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-small);margin-block:1rem;overflow-x:auto}table{border-collapse:collapse;inline-size:100%;font-size:.95rem}caption{text-align:start;padding:.6rem .75rem;font-weight:700}th,td{text-align:start;border-block-start:1px solid var(--border);vertical-align:top;padding:.55rem .75rem}thead th{background:var(--surface-2);border-block-start:0}td.num{text-align:center;font-variant-numeric:tabular-nums}td.cell-tech{font-family:var(--font-mono);font-size:.9em}.code-block{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);margin:1.25rem 0;overflow:hidden}.code-head{background:var(--surface-2);border-block-end:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem .4rem .9rem;display:flex}.code-title{align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;display:flex}.code-goal{border-block-end:1px solid var(--border);margin:0;padding:.5rem .9rem;font-size:.92rem}.code-block pre{background:var(--code-bg);color:var(--code-text);text-align:left;margin:0;padding:.75rem 0;font-size:.88rem;line-height:1.6;overflow-x:auto}.code-line{padding-inline-end:1rem;display:block}.code-line.is-active{background:#4cc3a82e}.code-line.has-note .line-no{color:#7dd8c3}.line-no{text-align:right;inline-size:2.75rem;color:var(--code-muted);-webkit-user-select:none;user-select:none;padding-inline-end:.9rem;display:inline-block}.line-text{white-space:pre}.is-output pre{background:#1a1d24}.tok-prompt{color:#9ec4ff}.tok-keyword{color:#7dd8c3;font-weight:600}.tok-comment{color:var(--code-muted);font-style:italic}.tok-addr{color:#ffd479}.tok-iface{color:#f0a6ff}.tok-ok{color:#8ee59f}.tok-bad{color:#ff9a9e}.tok-key{color:#9ec4ff}.tok-string{color:#b5e8a1}.tok-number{color:#ffd479}.code-notes{border-block-start:1px solid var(--border)}.code-notes summary{cursor:pointer;padding:.5rem .9rem;font-size:.92rem;font-weight:600}.code-notes ol{gap:.45rem;margin:0;padding:0 .9rem .75rem;list-style:none;display:grid}.code-notes li{border-radius:var(--radius-small);background:var(--surface-2);outline-offset:0;gap:.15rem;padding:.45rem .6rem;display:grid}.code-notes li:hover{background:var(--brand-soft)}.note-line{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.82rem;font-weight:600;display:flex}.note-line code{color:var(--text);direction:ltr;unicode-bidi:isolate;font-weight:500}.diagram{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:1.5rem 0;overflow:hidden}.diagram-head{border-block-end:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .9rem;display:flex}.diagram-head h4{margin:0;font-size:1rem}.diagram-body{padding:.75rem}.diagram figcaption{border-block-start:1px solid var(--border);color:var(--muted);padding:.6rem .9rem;font-size:.9rem}.diagram-disclaimer{margin-block-start:.25rem;font-style:italic;display:block}.dg{block-size:auto;inline-size:100%;font-family:var(--font-sans);direction:ltr;display:block}.dg text{fill:var(--dg-text)}.dg text,.dg tspan{unicode-bidi:plaintext}.dg-heading{font-size:15px;font-weight:700}.dg-label{font-size:13px}.dg-small{font-size:11.5px}.dg-strong{font-weight:700}.dg-mono{font-family:var(--font-mono)}.dg-box{stroke:var(--dg-stroke);stroke-width:1px}.dg-c1{fill:var(--dg-c1)}.dg-c2{fill:var(--dg-c2)}.dg-c3{fill:var(--dg-c3)}.dg-c4{fill:var(--dg-c4)}.dg-c5{fill:var(--dg-c5)}.dg-muted{fill:var(--dg-muted)}.dg-arrow{stroke:var(--dg-accent);stroke-width:2px;fill:none}.dg-arrowhead{fill:var(--dg-accent)}.dg-brace{stroke:var(--dg-stroke);fill:none;stroke-width:1.5px}.dg-link{stroke:var(--dg-stroke);stroke-width:2.5px}.dg-link.is-active{stroke:var(--dg-accent);stroke-width:5px}.dg-link-thin{stroke-width:1.5px}.dg-link-flood{stroke:var(--dg-alert);stroke-width:4px;stroke-dasharray:9 6}.dg-dashed{stroke-dasharray:7 5}.dg-tunnel{stroke:var(--dg-accent);stroke-width:10px;stroke-linecap:round;opacity:.35;fill:none}.dg-cloud{fill:var(--dg-muted);stroke:var(--dg-stroke);stroke-width:1.2px}.dg-zone{fill:none;stroke:var(--dg-stroke);stroke-width:1.2px;stroke-dasharray:5 4}.dg-wire{stroke-width:3px}.dg-wire-a{stroke:#2563eb}.dg-wire-b{stroke:#d97706}.dg-ray{stroke:var(--dg-alert);stroke-width:2px;fill:none}.dg-ray-2{stroke-dasharray:6 4;opacity:.8}.dg-ray-3{opacity:.6}.dg-collision{fill:var(--dg-alert)}.dg-node-bg{fill:var(--surface);stroke:var(--border);stroke-width:1.5px}.dg-node.is-active .dg-node-bg{stroke:var(--dg-accent);stroke-width:3px;fill:var(--brand-soft)}.mermaid-wrap{text-align:center;overflow-x:auto}.mermaid-wrap svg{block-size:auto;max-inline-size:100%}.glyph{--g1:#3b82f6;--g2:#1d4ed8;--gs:#7dd3fc;overflow:visible}.glyph-router{--g1:#2f6fe4;--g2:#1a4bb0}.glyph-switch{--g1:#0f9f8f;--g2:#08695f}.glyph-l3switch{--g1:#7c4ddb;--g2:#5229a6}.glyph-hub{--g1:#6b7a8f;--g2:#4a5668}.glyph-firewall{--g1:#e2622f;--g2:#a9411a}.glyph-cloud{--g1:#a5b4c8;--g2:#7a8aa1}.glyph-server,.glyph-pc,.glyph-laptop,.glyph-phone{--g1:#4b5a70;--g2:#2c3646}.glyph-ap,.glyph-wlc{--g1:#0b95b8;--g2:#086a84}.glyph.is-huawei.glyph-router,.glyph.is-huawei.glyph-switch,.glyph.is-huawei.glyph-firewall,.glyph.is-huawei.glyph-ap,.glyph.is-huawei.glyph-wlc{--g1:#dd2a32;--g2:#9c1219}.glyph.is-huawei.glyph-l3switch{--g1:#b8233a;--g2:#7c1222}.glyph .g-main{fill:var(--g1)}.glyph .g-dark{fill:var(--g2)}.glyph .g-hi{fill:#fff;opacity:.22}.glyph .g-side-hi{fill:#fff;opacity:.06}.glyph .g-sym{fill:none;stroke:#fff;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.glyph .g-symf{fill:#fff}.glyph .g-brick{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:1.2px}.glyph .g-wave{fill:none;stroke:var(--g1);stroke-width:2.4px;stroke-linecap:round}.glyph .g-screen{fill:var(--gs)}.glyph .g-glare{fill:#fff;opacity:.18}.glyph .g-slot{fill:#fff;opacity:.35}.glyph .g-led{fill:#4ade80}.interactive{gap:.75rem;display:grid}.rf-wrap{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);block-size:520px}@media (width<=600px){.rf-wrap{block-size:440px}}.rf-wrap .react-flow__background{color:var(--border)}.rf-wrap .react-flow__edge-path{stroke:var(--dg-stroke);stroke-width:2.5px;vector-effect:non-scaling-stroke}.rf-wrap .rf-edge-wireless .react-flow__edge-path{stroke-dasharray:6 5}.rf-wrap .rf-edge-active .react-flow__edge-path{stroke:var(--dg-accent);stroke-width:4.5px}.rf-device{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-inline-size:76px;padding:6px 8px;display:flex}.rf-device.is-selected{border-color:var(--dg-accent);box-shadow:0 0 0 3px var(--brand-soft)}.rf-device-label{color:var(--text);white-space:nowrap;font-size:14px;font-weight:700}.rf-handle{opacity:0;pointer-events:none}.react-flow__node:focus-visible .rf-device{outline:3px solid var(--focus)}.device-picker{flex-wrap:wrap;gap:.4rem;display:flex}.device-info{border-radius:var(--radius-small);background:var(--surface-2);min-block-size:5rem;padding:.75rem 1rem}.device-info h5{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .4rem;font-size:1.05rem;display:flex}.exam-note{border-inline-start:3px solid var(--brand);padding-inline-start:.6rem;font-weight:600}.stepper-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stepper-count{padding-inline:.5rem;font-weight:700}.stepper-text{border-radius:var(--radius-small);background:var(--surface-2);margin:0;padding:.75rem 1rem}.frame-inspector{border:1px solid var(--border);font-size:.9rem}.frame-inspector caption{font-size:.9rem}.frame-inspector th{background:var(--surface-2);inline-size:18%}.frame-inspector td{font-family:var(--font-mono)}.hero{background:linear-gradient(180deg, var(--brand-soft), transparent);padding-block:3rem 2rem}.hero h1{margin-block:.3em;font-size:clamp(2rem,5vw,3rem)}.hero-kicker{color:var(--brand-strong);align-items:center;gap:.4rem;margin:0;font-weight:700;display:inline-flex}.hero .lead{max-inline-size:60ch}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-block-start:1.5rem;display:flex}.features{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem;margin-block:1rem 2rem;display:grid}.feature{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:1rem 1.25rem}.feature .icon{color:var(--brand)}.feature h2{margin-block:.5rem .25rem;font-size:1.1rem}.feature p{color:var(--muted);margin:0}.vendor-section{margin-block:2.5rem}.vendor-head h2{margin-block-end:.2rem}.cert-list{flex-wrap:wrap;gap:.5rem 1.25rem;margin:.5rem 0 1rem;padding:0;font-weight:600;list-style:none;display:flex}.path-steps{gap:.5rem;padding-inline-start:0;list-style:none;display:grid}.path-steps li{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.path-step-no{color:var(--muted);min-inline-size:4.5em;font-size:.8rem;font-weight:700}.progress-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-block:1rem;display:flex}.progress-card>div{flex:260px}.progress-card h2{margin-block-start:0}.module-list{gap:.75rem;padding:0;list-style:none;display:grid}.module-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:1rem;padding:1rem;display:flex}.module-item.is-planned{background:var(--surface-2)}.module-item h3{margin:0 0 .25rem;font-size:1.08rem}.module-item p{margin:0}.module-no{background:var(--brand-soft);block-size:2.2rem;inline-size:2.2rem;color:var(--brand-strong);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.module-item.is-planned .module-no{background:var(--surface);color:var(--muted)}.module-body{flex:1;min-inline-size:0}.lesson-list{gap:.25rem;padding:0;list-style:none;display:grid}.lesson-list li{border-block-end:1px solid var(--border);gap:.75rem;padding:.6rem .25rem;display:flex}.lesson-list li .icon{color:var(--muted);flex:none;margin-block-start:.3rem}.lesson-list li.is-done .icon{color:var(--ok)}.lesson-list a{font-weight:600}.lesson-list p{margin:.1rem 0 0}.assessment-card{margin-block-start:1.5rem}.assessment-card h3{align-items:center;gap:.4rem;display:flex}.side-info .objective-list,.side-info .source-list{padding-inline-start:1.1rem;font-size:.9rem}.objective-list li,.source-list li{margin-block-end:.5rem}.lesson-layout{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:2rem;display:grid}.lesson-sidebar{max-block-size:calc(100vh - 92px);padding-block:1rem;position:sticky;inset-block-start:76px;overflow-y:auto}.sidebar-block{margin-block-end:1.25rem}.sidebar-module{color:var(--text);margin-block-end:.25rem;font-weight:700;text-decoration:none;display:block}.sidebar-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .4rem;font-size:.85rem}.sidebar-lessons{gap:.1rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.sidebar-lessons li{border-radius:var(--radius-small);align-items:flex-start;gap:.45rem;padding:.35rem .4rem;font-size:.92rem;line-height:1.45;display:flex}.sidebar-lessons li .icon{color:var(--muted);flex:none;margin-block-start:.15rem}.sidebar-lessons li.is-done .icon{color:var(--ok)}.sidebar-lessons li.is-current{background:var(--brand-soft)}.sidebar-lessons li.is-current a{color:var(--brand-strong);font-weight:700}.sidebar-lessons a{color:var(--text);text-decoration:none}.toc ol{border-inline-start:2px solid var(--border);margin:0;padding:0;list-style:none}.toc a{color:var(--muted);padding:.2rem .75rem;font-size:.88rem;line-height:1.5;text-decoration:none;display:block}.toc a:hover{color:var(--brand-strong)}@media (width<=960px){.lesson-layout{grid-template-columns:1fr}.lesson-sidebar{order:2;max-block-size:none;padding-block:0;position:static}.toc{display:none}}.lesson-main{min-inline-size:0}.lesson-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-block:1rem;display:flex}.segmented{border:1px solid var(--border);border-radius:var(--radius-small);display:inline-flex;overflow:hidden}.segmented button{font:inherit;background:var(--surface);color:var(--text);cursor:pointer;border:0;padding:.35rem .9rem;font-size:.9rem}.segmented button+button{border-inline-start:1px solid var(--border)}.segmented button.is-active{background:var(--brand);color:var(--on-brand);font-weight:700}.lesson{max-inline-size:var(--reading)}.lesson-header h1{margin-block-end:.2em}.lesson-intro{margin-block:1.25rem}.lesson-intro h2{margin-block:.75rem .25rem}.lesson-intro h2:first-child{margin-block-start:0}.checklist{padding:0;list-style:none}.checklist li{margin-block:.35rem;padding-inline-start:1.6rem;position:relative}.checklist li:before{content:"✓";color:var(--brand);font-weight:700;position:absolute;inset-inline-start:.2rem}.lesson-section{margin-block:2rem;scroll-margin-block-start:84px}.lesson-section>h2{margin-block-start:.1em}.depth-tag{letter-spacing:.03em;border-radius:999px;margin:0;padding:.05rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.depth-tag-beginner{background:var(--info-soft);color:var(--info)}.depth-tag-deep{background:color-mix(in srgb, #7c3aed 14%, var(--surface));color:#7c3aed}:root[data-theme=dark] .depth-tag-deep{color:#c4a5ff}.depth-tag-practice{background:var(--ok-soft);color:var(--ok)}.mistakes h2,.summary h2{align-items:center;gap:.5rem;margin-block-start:0;font-size:1.2rem;display:flex}.mistakes{border-inline-start:4px solid var(--warn)}.summary{border-inline-start:4px solid var(--ok)}.summary details summary{cursor:pointer;font-weight:600}.lesson-sources{color:var(--muted);border-block-start:1px solid var(--border);margin-block-start:2rem;padding-block-start:.5rem;font-size:.875rem}.knowledge-check{max-inline-size:var(--reading);margin-block:2rem}.knowledge-check h2{align-items:center;gap:.5rem;margin-block-start:0;display:flex}.lesson-footer{max-inline-size:var(--reading);border-block-start:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-block-start:2rem;padding-block-start:1.25rem;display:flex}.pager{flex-wrap:wrap;gap:.5rem;display:flex}.scenario{border:1px solid var(--border);border-inline-start:4px solid var(--warn);border-radius:var(--radius-small);background:var(--surface);margin-block:1.25rem;padding:.9rem 1rem}.scenario-head{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;display:flex}.scenario-head h4{flex-basis:100%;margin:0}.scenario-kicker{color:var(--warn);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.scenario dt{margin-block-start:.6rem;font-weight:700}.scenario dd{margin-inline-start:0}.scenario dd ol{margin:.25rem 0}.scenario details summary{cursor:pointer;color:var(--ok);margin-block-start:.5rem;font-weight:700}.scenario-evidence{background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-small);text-align:left;margin:.25rem 0;padding:.6rem .8rem;font-size:.85rem;overflow-x:auto}.quiz{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.quiz-bar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.quiz-bar .progress{flex:200px}.timer{font-variant-numeric:tabular-nums;align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.question-focus{outline:none}.question fieldset{border:0;min-inline-size:0;margin:0;padding:0}.question-count{color:var(--muted);margin:0;font-size:.85rem;font-weight:600}.question-prompt{margin-block-end:.5rem;padding:0;font-size:1.1rem;font-weight:600}.question-code{background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-small);text-align:left;padding:.75rem 1rem;font-size:.85rem;overflow-x:auto}.hint{color:var(--muted);margin:.25rem 0 .5rem;font-size:.875rem}.options{gap:.5rem;display:grid}.options-inline{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.option{border:1.5px solid var(--border);border-radius:var(--radius-small);background:var(--surface);cursor:pointer;align-items:flex-start;gap:.7rem;padding:.7rem .9rem;display:flex}.option:hover{border-color:var(--brand)}.option input{accent-color:var(--brand);flex:none;block-size:1.05rem;inline-size:1.05rem;margin-block-start:.35rem}.option.is-picked{border-color:var(--brand);background:var(--brand-soft)}.option.is-right{border-color:var(--ok);background:var(--ok-soft)}.option.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.option .icon{flex:none;margin-inline-start:auto}.option.is-right .icon{color:var(--ok)}.option.is-wrong .icon{color:var(--bad)}.option-text{gap:.25rem;display:grid}.option-explain{color:var(--muted);font-size:.875rem}.input-answer input,.search-form input,.filter input{inline-size:100%;font:inherit;border:1.5px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);padding:.6rem .8rem}.input-answer input{max-inline-size:22rem;font-family:var(--font-mono)}.ordering{gap:.4rem;padding-inline-start:1.5rem;list-style:decimal;display:grid}.ordering li{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);padding:.45rem .6rem}.ordering li>*{vertical-align:middle}.ordering-text{max-inline-size:calc(100% - 6rem);display:inline-block}.ordering-buttons{float:inline-end;gap:.25rem;display:inline-flex}.ordering-buttons .btn-icon{min-block-size:32px;inline-size:32px}.ordering li.is-right{border-color:var(--ok);background:var(--ok-soft)}.ordering li.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.matching{gap:.5rem;display:grid}.matching-row{border:1px solid var(--border);border-radius:var(--radius-small);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:.75rem;padding:.5rem .75rem;display:grid}.matching-row select{font:inherit;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface);color:var(--text);inline-size:100%;padding:.4rem}.matching-row.is-right{border-color:var(--ok);background:var(--ok-soft)}.matching-row.is-wrong{border-color:var(--bad);background:var(--bad-soft)}@media (width<=560px){.matching-row{grid-template-columns:1fr}}.feedback{border-radius:var(--radius-small);margin-block-start:1rem;padding:.75rem 1rem}.feedback.is-correct{background:var(--ok-soft);border:1px solid var(--ok)}.feedback.is-wrong{background:var(--bad-soft);border:1px solid var(--bad)}.feedback-title{align-items:center;gap:.4rem;margin:0 0 .25rem;font-weight:700;display:flex}.feedback.is-correct .feedback-title{color:var(--ok)}.feedback.is-wrong .feedback-title{color:var(--bad)}.quiz-actions{flex-wrap:wrap;gap:.5rem;display:flex}.score-card{border-radius:var(--radius);outline:none;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.score-card>div{flex:220px}.score-card p{margin:.15rem 0}.score-card.is-pass{background:var(--ok-soft);color:var(--text);border:1px solid var(--ok)}.score-card.is-pass>.icon{color:var(--ok)}.score-card.is-fail{background:var(--warn-soft);border:1px solid var(--warn)}.score-line{font-size:1.2rem;font-weight:700}.topic-results{gap:.6rem;padding:0;list-style:none;display:grid}.topic-results li{grid-template-columns:minmax(0,2fr) minmax(80px,1fr) auto;align-items:center;gap:.75rem;display:grid}.review summary{cursor:pointer;margin-block:.5rem;font-weight:700}.review-item{border-block-end:1px solid var(--border);padding-block:1rem}.search-form input{font-size:1.1rem}.search-results{gap:.6rem;padding:0;list-style:none;display:grid}.search-results li{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.search-results a{font-weight:600}.glossary{margin:0}.glossary-entry{border-block-end:1px solid var(--border);padding:1rem 0;scroll-margin-block-start:90px;transition:background-color .4s}.glossary-entry.is-target{background:var(--brand-soft)}.glossary dt{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.glossary .term{font-size:1.15rem;font-weight:700}.glossary .expansion{color:var(--muted)}.glossary dd{margin:.25rem 0 0}.glossary dd p{margin:.3rem 0}.bookmark-list{gap:.6rem;padding:0;list-style:none;display:grid}.bookmark-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.settings fieldset{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;gap:.5rem;margin-block:1rem;padding:.75rem 1rem 1rem;display:flex}.settings legend{padding-inline:.4rem;font-weight:700}.radio-pill{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .8rem;display:inline-flex}.radio-pill:has(input:checked){border-color:var(--brand);background:var(--brand-soft);font-weight:600}.radio-pill input{accent-color:var(--brand)}.meta-list{padding-inline-start:1.2rem}.disclaimer{margin-block-start:2rem}.coverage-table td:first-child{min-inline-size:18rem}.coverage-table ul.plain li{margin-block:.15rem}.container.wide{max-inline-size:1500px}.link-button{font:inherit;color:var(--brand-strong);cursor:pointer;text-align:start;background:0 0;border:0;padding:0;text-decoration:underline}.mono{font-family:var(--font-mono)}pre.code-block{background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);margin-block:.75rem;padding:.75rem 1rem;font-size:.85rem;line-height:1.5;overflow:auto}.nb-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:.5rem 1rem;display:flex}.nb-mobile-hint{display:none}.nb{--layer-l3:var(--info);--layer-l3-soft:var(--info-soft);--layer-l2:var(--brand);--layer-l2-soft:var(--brand-soft);--layer-host:var(--muted);--layer-host-soft:var(--surface-2);--layer-other:var(--warn);--layer-other-soft:var(--warn-soft);grid-template-columns:minmax(0,1fr) minmax(340px,440px);grid-template-areas:"palette palette""main panel";align-items:start;gap:.75rem;display:grid}.nb-palette{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-area:palette;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.5rem .75rem;padding:.6rem .75rem;display:grid}.nb-palette-title{font-size:.9rem;font-weight:700}.nb-palette-head{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.5rem .9rem;display:flex}.nb-vendor-switch button{min-inline-size:5.5rem;font-weight:700}.nb-vendor-switch button.vendor-cisco.is-active{color:#fff;background:#1d6fbf;border-color:#1d6fbf}.nb-vendor-switch button.vendor-huawei.is-active{color:#fff;background:#c7161e;border-color:#c7161e}.nb-palette-group{border-inline-start:3px solid var(--layer-l2);padding-inline-start:.6rem}.nb-palette-group.layer-l3{border-inline-start-color:var(--layer-l3)}.nb-palette-group.layer-host{border-inline-start-color:var(--layer-host)}.nb-palette-group.layer-other{border-inline-start-color:var(--layer-other)}.nb-palette-group-title{color:var(--muted);align-items:center;gap:.4rem;margin-block-end:.3rem;font-size:.78rem;display:flex}.nb-palette-items{flex-wrap:wrap;gap:.3rem;display:flex}.nb-palette-item{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.82rem;transition:border-color .15s,background-color .15s;display:inline-flex}.nb-palette-item:hover,.nb-palette-item:focus-visible{border-color:var(--brand);background:var(--brand-soft)}.nb-layer{letter-spacing:.02em;block-size:18px;min-inline-size:26px;color:var(--surface);background:var(--layer-l2);border-radius:5px;place-items:center;padding:0 5px;font-size:10.5px;font-weight:800;line-height:1;display:inline-grid}.nb-layer-l3{background:var(--layer-l3)}.nb-layer-host{background:var(--layer-host)}.nb-layer-other{background:var(--layer-other)}.nb-main{grid-area:main;min-inline-size:0}.nb-canvas{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);block-size:600px}.nb-canvas .react-flow__background{color:var(--border)}.nb-canvas .react-flow__edge-path{stroke:var(--dg-stroke);stroke-width:2.5px;vector-effect:non-scaling-stroke}.nb-canvas .nb-cable-fiber .react-flow__edge-path{stroke:var(--warn)}.nb-canvas .nb-cable-serial .react-flow__edge-path{stroke-dasharray:2 4}.nb-canvas .nb-cable-crossover .react-flow__edge-path{stroke-dasharray:8 4}.nb-canvas .nb-edge.is-down .react-flow__edge-path{stroke:var(--bad);stroke-dasharray:5 5}.nb-canvas .nb-edge.is-active .react-flow__edge-path{stroke:var(--dg-accent);stroke-width:4px}.nb-canvas .react-flow__controls button{background:var(--surface);color:var(--text);border-color:var(--border)}.nb-canvas .react-flow__controls{box-shadow:none;border:1px solid var(--border);border-radius:6px;overflow:hidden}.nb-canvas{background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--brand-soft) 55%, transparent), transparent 55%), var(--surface)}.nb-minimap{border:1px solid var(--border);border-radius:6px;background:var(--surface-2)!important}.nb-port-label{pointer-events:none;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:10.5px;font-weight:600;position:absolute}.nb-port-dot{stroke:var(--surface);stroke-width:1.5px;fill:var(--muted)}.nb-port-dot.is-up{fill:var(--ok)}.nb-port-dot.is-down{fill:var(--bad)}.nb-port-dot.is-admin{fill:var(--warn)}.nb-node{border:1.5px solid var(--border);border-block-start:4px solid var(--layer-l2);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:1px;min-inline-size:92px;padding:14px 12px 7px;transition:box-shadow .15s,border-color .15s;display:flex;position:relative;box-shadow:0 2px 8px #00000014}.nb-node.layer-l3{border-block-start-color:var(--layer-l3)}.nb-node.layer-host{border-block-start-color:var(--layer-host)}.nb-node.layer-other{border-block-start-color:var(--layer-other)}.nb-node:hover{box-shadow:0 4px 16px #00000029}.nb-node .nb-layer{inset-block-start:-11px;position:absolute;left:50%;transform:translate(-50%)}.nb-node-glyph{filter:drop-shadow(0 2px 3px #0000002e);place-items:center;block-size:50px;inline-size:60px;display:grid}.nb-node.is-selected{border-color:var(--dg-accent);box-shadow:0 0 0 3px var(--brand-soft), 0 4px 16px #00000029}.nb-node.has-error{border-color:var(--bad)}.nb-node.has-warning:not(.has-error){border-color:var(--warn)}.nb-node-label{color:var(--text);white-space:nowrap;margin-block-start:3px;font-size:13px;font-weight:700}.nb-node-sub{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:10.5px}.nb-node-badge{color:#fff;border:2px solid var(--surface);border-radius:50%;place-items:center;block-size:20px;inline-size:20px;font-size:12px;font-weight:800;display:grid;position:absolute;inset-block-start:-9px;inset-inline-end:-9px}.nb-node-badge.is-error{background:var(--bad)}.nb-node-badge.is-warning{background:var(--warn)}.nb-handle{background:var(--brand);border:2px solid var(--surface);opacity:0;block-size:11px;inline-size:11px;transition:opacity .15s}.nb-node:hover .nb-handle,.react-flow.connecting .nb-handle{opacity:1}.nb-legend{margin-block-start:.4rem;font-size:.85rem}.nb-legend summary{cursor:pointer;color:var(--muted)}.nb-legend ul{flex-wrap:wrap;gap:.4rem 1.1rem;margin:0;padding:.4rem 0 0;list-style:none;display:flex}.nb-legend li{align-items:center;gap:.35rem;display:inline-flex}.nb-legend-cable line{stroke:var(--dg-stroke);stroke-width:2.5px}.nb-legend-cable.nb-cable-fiber line{stroke:var(--warn)}.nb-legend-cable.nb-cable-serial line{stroke-dasharray:2 4}.nb-legend-cable.nb-cable-crossover line{stroke-dasharray:8 4}.nb-modal-backdrop{z-index:300;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.nb-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-block-size:calc(100vh - 2rem);inline-size:min(100%,620px);padding:1.1rem 1.25rem;overflow:auto;box-shadow:0 20px 60px #00000059}.nb-modal h2{margin-block:0 .25rem}.nb-connect-ends{grid-template-columns:1fr auto 1fr;align-items:end;gap:.75rem;margin-block:.75rem;display:grid}@media (width<=560px){.nb-connect-ends{grid-template-columns:1fr}.nb-connect-wire{display:none!important}}.nb-connect-field{gap:.25rem;font-size:.88rem;display:grid}.nb-connect-field select{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);padding:.4rem .5rem}.nb-connect-wire{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:.35rem;padding-block-end:.5rem;font-size:.75rem;display:flex}.nb-connect-line{border-block-start:3px solid var(--dg-stroke);block-size:0;inline-size:48px;display:block}.nb-connect-line.nb-cable-crossover{border-block-start-style:dashed}.nb-connect-line.nb-cable-serial{border-block-start-style:dotted}.nb-connect-line.nb-cable-fiber{border-block-start-color:var(--warn)}.nb-connect-rec{color:var(--brand-strong);margin-block:.4rem .2rem;font-weight:600}.nb-error{color:var(--bad);margin:0}.nb-modal-actions{gap:.5rem;margin-block-start:.75rem;display:flex}.nb-hint{margin-block:.4rem 0}.nb-panel{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);grid-area:panel;max-block-size:80vh;padding:.75rem;overflow:auto}.nb-panel-title{margin:.25rem 0 .5rem;font-size:1rem}.nb-issues{margin-block-end:1rem}.nb-issues-ok{color:var(--ok)}.nb-issue-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.nb-issue{border-radius:var(--radius-small);align-items:baseline;gap:.4rem;padding:.35rem .5rem;font-size:.88rem;display:flex}.nb-issue.is-error{background:var(--bad-soft)}.nb-issue.is-warning{background:var(--warn-soft)}.nb-issue.is-info{background:var(--info-soft)}.nb-issue-icon{font-weight:700}.nb-issue.is-error .nb-issue-icon{color:var(--bad)}.nb-issue.is-warning .nb-issue-icon{color:var(--warn)}.nb-issue-text{color:var(--text);text-decoration:none}.nb-device-list{gap:.3rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.nb-device-btn{inline-size:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);cursor:pointer;text-align:start;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex}.nb-device-btn:hover{border-color:var(--brand)}.nb-device-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block-end:.5rem;display:flex}.nb-device-title{flex:1;align-items:center;gap:.5rem;display:flex}.nb-device-actions{flex-wrap:wrap;align-items:end;gap:.5rem;inline-size:100%;display:flex}.nb-tabs{flex-wrap:wrap;margin-block-end:.75rem}.nb-field,.nb-field-inline{flex-wrap:wrap;align-items:center;gap:.4rem;margin-block:.35rem;display:flex}.nb-field select,.nb-field-inline select,.nb-field-inline input,.nb-field-row input,.nb-notes textarea,.lab-answer input,.lab-answer textarea,.cmd-filters input,.cmd-filters select{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);padding:.35rem .5rem}.nb-field-row{grid-template-columns:minmax(8rem,1fr) minmax(0,1.4fr);align-items:center;gap:.5rem;margin-block:.35rem;display:grid}.nb-check{align-items:center;gap:.4rem;margin-block:.5rem;display:flex}.nb-notes{gap:.4rem;display:grid}.nb-notes textarea{inline-size:100%}.nb-addlink{border-block-start:1px solid var(--border);margin-block-start:.75rem;padding-block-start:.5rem}.nb-ports{border-collapse:collapse;inline-size:100%;font-size:.85rem}.nb-ports th,.nb-ports td{border-block-end:1px solid var(--border);text-align:start;padding:.25rem .35rem}.nb-show{white-space:pre;max-block-size:420px}.cfg-editor{gap:.4rem;display:grid}.cfg-label{font-size:.9rem;font-weight:700}.cfg-box{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--code-bg);grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden}.cfg-gutter{background:color-mix(in srgb, var(--code-bg) 85%, #000);color:var(--code-muted);font-family:var(--font-mono);text-align:end;-webkit-user-select:none;user-select:none;padding:.5rem 0;font-size:.85rem;line-height:1.5;overflow:hidden}.cfg-ln{min-inline-size:2.5rem;padding-inline:.5rem .4rem}.cfg-ln.is-error{background:var(--bad);color:#fff}.cfg-ln.is-warning{background:var(--warn);color:#fff}.cfg-text{resize:vertical;inline-size:100%;color:var(--code-text);font-family:var(--font-mono);white-space:pre;tab-size:2;background:0 0;border:0;outline:none;padding:.5rem;font-size:.85rem;line-height:1.5;overflow:auto}.cfg-text:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.cfg-ok{color:var(--ok);margin:0}.cfg-problems h4{margin:.25rem 0}.cfg-problems ul{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.cfg-problem{border-radius:var(--radius-small);padding:.35rem .5rem;font-size:.85rem}.cfg-problem.is-error{background:var(--bad-soft)}.cfg-problem.is-warning{background:var(--warn-soft)}.cfg-src{color:var(--muted);white-space:pre-wrap;margin-block-start:.15rem;font-size:.8rem;display:block}.lab-head{margin-block:.5rem 1rem}.lab-head h1{margin-block-end:.25rem}.lab-layout{grid-template-columns:minmax(300px,400px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.lab-side{gap:.75rem;display:grid}.lab-side .card{padding:.9rem 1rem}.lab-side h2{margin-block:0 .5rem}.lab-builder .nb{grid-template-columns:minmax(0,1fr);grid-template-areas:"palette""main""panel"}.lab-builder .nb-panel{max-block-size:none}.lab-tasks{gap:.6rem;margin:0;padding-inline-start:0;list-style:none;display:grid}.lab-task{border:1px solid var(--border);border-radius:var(--radius-small);padding:.5rem .65rem}.lab-task.is-pass{border-color:var(--ok);background:var(--ok-soft)}.lab-task.is-fail{border-color:var(--bad)}.lab-task-head{align-items:baseline;gap:.5rem;display:flex}.lab-task-status{flex:none;inline-size:1.2rem;font-weight:700}.lab-task.is-pass .lab-task-status{color:var(--ok)}.lab-task.is-fail .lab-task-status{color:var(--bad)}.lab-task p{margin:.3rem 0}.lab-reason{color:var(--bad)}.lab-answer{gap:.25rem;margin-block:.4rem;display:grid}.lab-answer input,.lab-answer textarea{inline-size:100%}.lab-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-block:.75rem .5rem;display:flex}.lab-done{color:var(--ok);font-weight:700}.lab-verify{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.lab-verify code{font-family:var(--font-mono);font-size:.85rem}.lab-verify p{margin:.15rem 0 0}.lab-solution ul{padding-inline-start:1.2rem}.lab-cmds,.cmd-related{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.module-labs{margin-block-start:1.5rem}.lab-list{gap:.75rem;padding:0;list-style:none;display:grid}.lab-list li{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);align-items:flex-start;gap:.6rem;padding:.6rem .75rem;display:flex}.lab-list li.is-done{border-color:var(--ok)}.lab-list p{margin:.15rem 0}.cmd-filters{flex-wrap:wrap;align-items:end;gap:.75rem;margin-block:.5rem 1.25rem;display:flex}.cmd-filters label{gap:.2rem;font-size:.9rem;display:grid}.cmd-filters input[type=search]{min-inline-size:min(22rem,100%)}.cmd-category{margin-block-end:1.5rem}.cmd-category>p{margin-block-start:0}.cmd-card{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);margin-block:.4rem;scroll-margin-block-start:90px}.cmd-card[open]{border-color:var(--brand)}.cmd-card summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.cmd-syntax{font-family:var(--font-mono);font-size:.92rem;font-weight:700}.cmd-summary{color:var(--muted);flex-basis:100%;font-size:.92rem}.cmd-body{border-block-start:1px solid var(--border);padding:0 .9rem .75rem}.cmd-params{margin:0}.cmd-params>div{grid-template-columns:minmax(7rem,auto) 1fr;gap:.5rem;padding-block:.2rem;display:grid}.cmd-params dd{margin:0}.cmd-example{margin:.5rem 0}.cmd-example figcaption{color:var(--muted)}@media (width<=1100px){.nb{grid-template-columns:minmax(0,1fr);grid-template-areas:"palette""main""panel"}.nb-panel{max-block-size:none}.lab-layout{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.nb-canvas{block-size:420px}.nb-mobile-hint{display:block}.nb-field-row{grid-template-columns:1fr}}.tool-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.tool-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem 1.1rem;transition:border-color .15s,transform .15s,box-shadow .15s;position:relative}.tool-tile:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.tool-tile h3{margin:.5rem 0 .25rem;font-size:1.05rem}.tool-tile h3 a{color:var(--text);text-decoration:none}.tool-tile h3 a:after{content:"";position:absolute;inset:0}.tool-tile:has(a:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.tool-tile p{margin:0}.tool-icon{background:var(--brand-soft);block-size:46px;inline-size:46px;color:var(--brand-strong);border-radius:12px;place-items:center;display:inline-grid}.tool-network .tool-icon{background:var(--info-soft);color:var(--info)}.tool-terminal .tool-icon{background:var(--surface-2);color:var(--text)}.tool-chart .tool-icon{background:var(--warn-soft);color:var(--warn)}.tool-meta{color:var(--brand-strong);font-weight:600;margin-block-start:.4rem!important}.tool-target .tool-icon{background:var(--ok-soft);color:var(--ok)}.tool-layers .tool-icon{background:var(--info-soft);color:var(--info)}.tool-refresh .tool-icon{background:var(--bad-soft);color:var(--bad)}.tool-glossary .tool-icon{background:var(--warn-soft);color:var(--warn)}.drill-page .card{margin-block:1rem}.drill-setup{justify-items:start;gap:1rem;display:grid}.drill-field{border:0;gap:.35rem;margin:0;padding:0;display:grid}.drill-field legend{margin-block-end:.35rem;font-weight:700}.drill-radio{align-items:center;gap:.45rem;display:flex}.drill-card{max-inline-size:760px}.drill-stats{color:var(--muted);flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.88rem;display:flex}.drill-stats>span{align-items:center;gap:.3rem;display:inline-flex}.drill-progress{background:var(--surface-2);border-radius:999px;block-size:6px;margin-block:.6rem 1rem;overflow:hidden}.drill-progress span{background:var(--brand);block-size:100%;transition:inline-size .3s;display:block}.drill-kind{color:var(--brand-strong);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.8rem;font-weight:700}.drill-question{margin-block:.3rem 1rem;font-size:1.25rem;line-height:1.6}.drill-question bdi,.drill-steps bdi,.drill-verdict bdi{font-family:var(--font-mono);font-weight:700}.drill-form{flex-wrap:wrap;gap:.5rem;display:flex}.drill-form input{min-inline-size:0;font:inherit;font-family:var(--font-mono);border:2px solid var(--border);border-radius:var(--radius-small);background:var(--bg);color:var(--text);flex:14rem;padding:.55rem .75rem;font-size:1.1rem}.drill-form input:focus{border-color:var(--brand);outline:none}.drill-yesno{gap:.75rem;display:flex}.drill-yesno .btn{min-inline-size:7rem}.drill-feedback{border-radius:var(--radius);border:1px solid var(--border);margin-block-start:.5rem;padding:.9rem 1rem}.drill-feedback.is-ok{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.drill-feedback.is-bad{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}.drill-verdict{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .5rem;font-weight:700;display:flex}.drill-feedback.is-ok .drill-verdict{color:var(--ok)}.drill-feedback.is-bad .drill-verdict{color:var(--bad)}.drill-steps{gap:.25rem;margin:.25rem 0 .9rem;padding-inline-start:1.3rem;display:grid}.drill-done{text-align:center;justify-items:center;display:grid}.drill-done .link-row{justify-content:center}.drill-big{color:var(--brand-strong);margin:0;font-size:3rem;font-weight:800;line-height:1.1}.deck-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-block:.5rem 1rem}.deck-card{justify-items:start;gap:.4rem;display:grid}.deck-card h3{margin:.25rem 0 0}.deck-card p{margin:0}.deck-stats{font-weight:600}.deck-bar{background:var(--surface-2);border-radius:999px;block-size:8px;inline-size:100%;margin-block:.25rem .5rem;display:flex;overflow:hidden}.deck-bar .is-learned{background:var(--ok)}.deck-bar .is-learning{background:var(--warn)}.segmented-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.flashcard-wrap{justify-items:center;gap:.9rem;max-inline-size:720px;margin-inline:auto;display:grid}.flashcard{border:1px solid var(--border);border-block-start:4px solid var(--brand);background:var(--surface);text-align:center;border-radius:16px;align-content:center;gap:.75rem;min-block-size:220px;inline-size:100%;padding:1.5rem 1.75rem;display:grid;box-shadow:0 10px 30px #00000014}.flashcard.is-flipped{border-block-start-color:var(--info)}.flashcard-front p,.flashcard-back p{margin:0}.flashcard-term{letter-spacing:.01em;font-size:2rem;font-weight:800}.flashcard-prompt{font-size:1.2rem;font-weight:600;line-height:1.6}.flashcard-back{border-block-start:1px dashed var(--border);text-align:start;gap:.5rem;padding-block-start:.85rem;display:grid}.flashcard-syntax{font-family:var(--font-mono);text-align:left;font-size:1.05rem;font-weight:700}.flashcard-back .code-block{text-align:left;margin:0}.flashcard-flip{min-inline-size:14rem}.grade-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;inline-size:100%;display:grid}@media (width<=520px){.grade-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.grade-row .btn{flex-direction:column;gap:.1rem;min-block-size:56px}.grade-row kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:0 .3rem;font-size:.72rem}.grade-when{color:var(--muted);font-size:.75rem;font-weight:500}.grade-again{border-color:color-mix(in srgb, var(--bad) 50%, var(--border));color:var(--bad)}.grade-hard{border-color:color-mix(in srgb, var(--warn) 50%, var(--border));color:var(--warn)}.grade-good{border-color:color-mix(in srgb, var(--ok) 50%, var(--border));color:var(--ok)}.grade-easy{border-color:color-mix(in srgb, var(--info) 50%, var(--border));color:var(--info)}.filter-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-block:.5rem .75rem;padding:.85rem 1rem;display:flex}.filter-search{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);color:var(--muted);flex:18rem;align-items:center;gap:.4rem;padding:0 .6rem;display:flex}.filter-search:focus-within{border-color:var(--brand)}.filter-search input{min-inline-size:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:.45rem 0}.filter-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.filter-label{color:var(--muted);margin-inline-end:.15rem;font-size:.85rem}.filter-select{color:var(--muted);gap:.2rem;font-size:.85rem;display:grid}.filter-select select{font:inherit;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);max-inline-size:16rem;padding:.35rem .5rem}.filter-group .chip{gap:.3rem}.filter-group .chip .glyph{flex:none}.cmd-devices{gap:2px;display:inline-flex}.cmd-device{background:var(--surface-2);block-size:22px;inline-size:26px;color:var(--dg-stroke);border-radius:5px;place-items:center;display:inline-grid}.cmd-usage{color:var(--brand-strong);align-items:center;gap:.2rem;font-size:.78rem;font-weight:600;display:inline-flex}.cmd-usage .icon{vertical-align:-2px}.cmd-vendor{font-size:.72rem}.cmd-vendor-cisco{color:#1d6fbf;background:#1d6fbf29}.cmd-vendor-huawei{color:#d4343b;background:#c7161e29}.chip-static{cursor:default;gap:.35rem}.chip-static:hover{border-color:var(--border)}.cmd-coverage{border-radius:var(--radius-small);background:var(--surface-2);margin-block:.75rem;padding:.6rem .8rem}.cmd-coverage h3{margin-block:.3rem}.cmd-coverage-cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.25rem 1.25rem;display:grid}.cmd-coverage-cols p{align-items:center;gap:.3rem;margin:.2rem 0;display:flex}.cmd-coverage-cols ul{margin:0;padding-inline-start:1.2rem}.labs-progress{max-inline-size:28rem}.labs-group{margin-block:1.5rem}.labs-group-head{align-items:center;gap:.6rem;margin-block-end:.5rem;display:flex}.labs-group-head h2{margin:0}.labs-group-head a{color:var(--text);text-decoration:none}.labs-group-head a:hover{text-decoration:underline}.lab-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.lab-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);border-block-start:3px solid var(--brand);flex-direction:column;gap:.35rem;padding:.85rem 1rem;transition:border-color .15s,transform .15s;display:flex;position:relative}.lab-card:hover{border-color:var(--brand);transform:translateY(-1px)}.lab-card.kind-troubleshoot{border-block-start-color:var(--warn)}.lab-card.kind-design{border-block-start-color:var(--info)}.lab-card.is-done{background:color-mix(in srgb, var(--ok-soft) 45%, var(--surface))}.lab-card p{margin:0}.lab-card-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lab-kind{border-radius:999px;align-items:center;gap:.3rem;padding:.05rem .5rem;font-size:.78rem;font-weight:700;display:inline-flex}.lab-kind-config{background:var(--brand-soft);color:var(--brand-strong)}.lab-kind-troubleshoot{background:var(--warn-soft);color:var(--warn)}.lab-kind-design{background:var(--info-soft);color:var(--info)}.lab-diff{gap:3px;display:inline-flex}.lab-diff span{background:var(--surface-2);border:1px solid var(--border);border-radius:2px;block-size:14px;inline-size:8px}.lab-diff span.on{background:var(--brand);border-color:var(--brand)}.lab-card-title{margin:.1rem 0 0;font-size:1rem;line-height:1.4}.lab-card-title a{color:var(--text);text-decoration:none}.lab-card-title a:after{content:"";position:absolute;inset:0}.lab-card-title a:focus-visible{outline:none}.lab-card:has(a:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.lab-card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-block-start:auto;padding-block-start:.3rem;font-size:.82rem;display:flex}.lab-card-meta>span{align-items:center;gap:.25rem;display:inline-flex}.labs-group-head{flex-wrap:wrap}.lab-topics{flex-wrap:wrap;gap:.3rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.topic-tag{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:999px;padding:.12rem .5rem;font-size:.75rem;line-height:1.3}.topic-tag:hover{border-color:var(--brand);color:var(--brand-strong)}.topic-tag.is-active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong);font-weight:600}.badge-vendor-huawei{color:#c7000b;border-color:#c7000b66}.badge-vendor-cisco{color:#0a7fb5;border-color:#0a7fb566}[data-theme=dark] .badge-vendor-huawei{color:#ff6b73}[data-theme=dark] .badge-vendor-cisco{color:#5cc6f2}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .badge-vendor-huawei{color:#ff6b73}:root:not([data-theme=light]) .badge-vendor-cisco{color:#5cc6f2}}.lab-xp{color:var(--brand-strong);font-weight:700}.level-badge{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:.45rem;padding:.2rem .6rem .2rem .25rem;font-size:.8rem;text-decoration:none;display:inline-flex}[dir=rtl] .level-badge{padding:.2rem .25rem .2rem .6rem}.level-badge:hover{border-color:var(--brand);color:var(--text)}.level-badge-num{background:linear-gradient(135deg, var(--brand), var(--info));block-size:28px;inline-size:28px;color:var(--on-brand);border-radius:50%;place-items:center;font-weight:800;display:grid}.level-badge-text{flex-direction:column;gap:2px;min-inline-size:4.5rem;display:flex}.level-badge-xp{white-space:nowrap;font-weight:700;line-height:1.1}.level-badge-bar{background:var(--surface-2);border-radius:4px;block-size:4px;display:block;overflow:hidden}.level-badge-bar>span{background:var(--brand);block-size:100%;display:block}@media (width<=520px){.level-badge-text{display:none}.level-badge{padding:.15rem}}.xp-toasts{z-index:200;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;inset-block-end:1rem;inset-inline-end:1rem}.xp-toast{border-radius:var(--radius);background:var(--surface);border:1px solid var(--brand);color:var(--brand-strong);align-items:center;gap:.6rem;padding:.6rem .9rem;animation:.25s ease-out toast-in;display:flex;box-shadow:0 6px 24px #0000002e}.xp-toast.is-levelup{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.xp-toast-level{color:var(--text);font-size:.85rem;display:block}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.xp-toast{animation:none}}.skills-page .card{margin-block:1rem}.skills-page .grid{margin-block:0}.skills-page .grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 1rem}.skills-page h2{align-items:center;gap:.4rem;display:flex}.level-hero{grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;display:grid}@media (width<=760px){.level-hero{grid-template-columns:auto 1fr}.readiness{grid-column:1/-1}}.level-ring{--p:0;background:conic-gradient(var(--brand) calc(var(--p) * 1%), var(--surface-2) 0);border-radius:50%;place-items:center;block-size:112px;inline-size:112px;display:grid}.level-ring span{background:var(--surface);block-size:88px;inline-size:88px;color:var(--brand-strong);border-radius:50%;place-items:center;font-size:2.2rem;font-weight:800;display:grid}.level-hero-body p{margin-block:.15rem}.level-xp{color:var(--brand-strong);align-items:center;gap:.35rem;font-weight:700;display:flex}.readiness{text-align:center;border-radius:var(--radius);background:var(--brand-soft);min-inline-size:11rem;padding:.75rem 1rem}.readiness p{margin:0}.readiness-num{color:var(--brand-strong);font-size:2rem;font-weight:800;line-height:1.2}.readiness-label{font-weight:700}.heat{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.82rem;font-weight:700;display:inline-block}.heat-none{background:var(--surface-2);color:var(--muted)}.heat-weak{background:var(--bad-soft);color:var(--bad)}.heat-developing{background:var(--warn-soft);color:var(--warn)}.heat-good{background:var(--info-soft);color:var(--info)}.heat-strong{background:var(--ok-soft);color:var(--ok)}.domain-bar{background:var(--surface-2);border-radius:999px;block-size:10px;display:block;overflow:hidden}.domain-bar .fill{border-radius:999px;block-size:100%;padding:0;display:block}.domain-bar .fill.heat-none{background:var(--border)}.domain-bar .fill.heat-weak{background:var(--bad)}.domain-bar .fill.heat-developing{background:var(--warn)}.domain-bar .fill.heat-good{background:var(--info)}.domain-bar .fill.heat-strong{background:var(--ok)}.domain-list{gap:.5rem;display:grid}.domain{border:1px solid var(--border);border-radius:var(--radius-small)}.domain[open]{border-color:var(--brand)}.domain summary{cursor:pointer;grid-template-columns:minmax(12rem,1.4fr) minmax(6rem,1fr) auto;align-items:center;gap:.75rem;padding:.6rem .8rem;display:grid}@media (width<=640px){.domain summary{grid-template-columns:1fr auto}.domain summary .domain-bar{grid-area:2/1/auto/-1}}.domain .table-wrap{margin:0 .6rem .6rem}.domain-name{font-weight:600}.skills-table{border-collapse:collapse;inline-size:100%;font-size:.9rem}.skills-table th,.skills-table td{border-block-end:1px solid var(--border);text-align:start;vertical-align:middle;padding:.4rem .6rem}.skills-table thead th{background:var(--surface-2);font-size:.82rem}.skills-table tbody th{font-weight:500}.objective-title{color:var(--muted)}.skill-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.skill-list li{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.heatmap{gap:.6rem;margin-block:.75rem;display:grid}.heatmap-row{grid-template-columns:minmax(9rem,12rem) 1fr;align-items:center;gap:.75rem;display:grid}@media (width<=640px){.heatmap-row{grid-template-columns:1fr;gap:.3rem}}.heatmap-label{font-size:.9rem;font-weight:600}.heatmap-cells{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.heat-cell{cursor:help;border-radius:5px;place-items:center;block-size:2rem;min-inline-size:3rem;font-size:.75rem;font-weight:700;display:grid}.heat-legend{color:var(--muted);flex-wrap:wrap;gap:.9rem;margin:.5rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.heat-legend li{align-items:center;gap:.35rem;display:flex}.heat-swatch{border:1px solid var(--border);border-radius:3px;block-size:14px;inline-size:14px;display:inline-block}.bar-list{gap:.6rem;margin:.5rem 0;padding:0;list-style:none;display:grid}.bar-list li{grid-template-columns:minmax(7rem,9rem) 1fr auto;align-items:center;gap:.6rem;display:grid}.bar-label{font-size:.9rem}.bar-value{white-space:nowrap;font-size:.85rem;font-weight:700}.ladder{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.ladder li{border-radius:var(--radius-small);align-items:center;gap:.6rem;padding:.3rem .5rem;display:flex}.ladder li.is-current{background:var(--brand-soft);font-weight:700}.ladder li.is-done .ladder-num{background:var(--brand);color:var(--on-brand)}.ladder-num{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;block-size:26px;inline-size:26px;font-size:.8rem;font-weight:700;display:grid}.ladder-title{flex:1}.ladder-min{color:var(--muted);font-size:.8rem}.dash-level{align-items:center;gap:1rem;margin-block-end:1rem;display:flex}.dash-level .level-ring{flex:none;block-size:76px;inline-size:76px}.dash-level .level-ring span{block-size:58px;inline-size:58px;font-size:1.5rem}.dash-level-body{flex:1;min-inline-size:0}.dash-level-body p{margin-block:.15rem}.glossary-more{justify-content:center;margin-block:1rem 2rem;display:flex}.auth-screen{background:radial-gradient(1200px 500px at 50% -10%, var(--brand-soft), transparent 70%), var(--bg);flex-direction:column;min-block-size:100vh;display:flex}.auth-top{max-inline-size:var(--max);justify-content:space-between;align-items:center;gap:1rem;inline-size:100%;margin-inline:auto;padding:.75rem 1rem;display:flex}.auth-main{outline:none;flex:1;place-items:start center;padding:1.5rem 1rem 3rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);inline-size:100%;max-inline-size:440px;padding:1.5rem;box-shadow:0 12px 40px -18px #00000040}.auth-card h1{outline:none;margin-block:0 .4rem}.auth-form{gap:.85rem;margin-block-start:1.25rem;display:grid}.auth-field{gap:.3rem;font-size:.92rem;font-weight:600;display:grid}.auth-field input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);inline-size:100%;padding:.6rem .75rem;font-weight:400}.auth-field input:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}[dir=rtl] .auth-field input[dir=ltr]{text-align:right}.auth-form>p{margin:-.5rem 0 0}.auth-check{align-items:center;gap:.45rem;font-size:.9rem;display:flex}.auth-error{border-radius:var(--radius-small);background:var(--bad-soft);color:var(--bad);align-items:center;gap:.4rem;margin:0;padding:.55rem .75rem;font-size:.92rem;display:flex}.auth-submit{justify-content:center;padding-block:.65rem;font-weight:700}.auth-switch{text-align:center;margin-block:1.1rem .4rem}.user-menu{position:relative}.user-avatar{background:var(--brand);block-size:30px;inline-size:30px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:grid}.user-panel{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-small);gap:.5rem;min-inline-size:15rem;padding:.75rem;display:grid;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;box-shadow:0 12px 30px -12px #0000004d}.user-panel p{margin:0}.user-email{color:var(--muted);overflow-wrap:anywhere;font-size:.85rem}.sync-state{color:var(--muted);align-items:center;gap:.35rem;font-size:.82rem;display:flex}.sync-state.is-error{color:var(--warn)}.sync-dot{background:var(--ok);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.sync-state.is-saving .sync-dot{background:var(--info)}.sync-state.is-error .sync-dot{background:var(--warn)}@media print{.site-header,.site-footer,.lesson-sidebar,.lesson-toolbar,.lesson-footer,.knowledge-check{display:none}.lesson{max-inline-size:none}}
