.avl-module {
  --avl-bg:#0c1424; --avl-panel:#131f33; --avl-panel-2:#192842; --avl-line:#2d4264;
  --avl-text:#eff5ff; --avl-muted:#a9bad2; --avl-accent:#5fe0b7; --avl-accent-2:#76a9ff;
  margin:2rem 0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--avl-text);
}
.avl-module * { box-sizing:border-box; }
.avl-shell { overflow:hidden; border:1px solid var(--avl-line); border-radius:24px; background:radial-gradient(circle at top right,rgba(118,169,255,.13),transparent 34%),var(--avl-bg); box-shadow:0 24px 70px rgba(4,10,20,.28); }
.avl-header { padding:28px 28px 20px; }
.avl-kicker { display:inline-flex; padding:6px 10px; border-radius:999px; background:rgba(95,224,183,.12); color:var(--avl-accent); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.avl-header h2 { margin:14px 0 8px; color:var(--avl-text); font-size:clamp(26px,4vw,42px); line-height:1.08; }
.avl-header p { margin:0; max-width:780px; color:var(--avl-muted); font-size:16px; }
.avl-takeaway { display:flex; gap:8px; flex-wrap:wrap; padding:22px 28px 26px; color:var(--avl-muted); border-top:1px solid var(--avl-line); }
.avl-takeaway strong { color:var(--avl-text); }
.avl-error { padding:14px; border:1px solid #c74848; border-radius:10px; background:#fff0f0; color:#7a1111; }
@media(max-width:760px){.avl-header,.avl-takeaway{padding-inline:16px}}

/* Full-width learning page ------------------------------------------------ */
body.avl-has-learning-page .site-content,
body.avl-has-learning-page #content,
body.avl-has-learning-page .content-area {
    width: 100%;
    max-width: none;
    float: none;
    margin: 0;
    padding: 0;
}

body.avl-has-learning-page #secondary,
body.avl-has-learning-page .sidebar,
body.avl-has-learning-page .widget-area {
    display: none !important;
}

.avl-learning-page {
    width: 100%;
    background: #f4f7fb;
    padding: clamp(24px, 4vw, 64px) 0 80px;
}

.avl-learning-page__inner {
    width: min(1640px, calc(100% - 32px));
    margin: 0 auto;
}

.avl-learning-page__article {
    width: 100%;
    margin: 0;
}

.avl-learning-page__header {
    margin-bottom: 28px;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: linear-gradient(135deg, #ffffff 0%, #eef4ff 100%);
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.avl-learning-page__title {
    margin: 0;
    font-size: clamp(34px, 5vw, 64px);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.avl-learning-page__lead {
    max-width: 860px;
    margin: 16px 0 0;
    font-size: clamp(17px, 2vw, 22px);
    line-height: 1.55;
    color: #475569;
}

.avl-learning-page__content {
    width: 100%;
    max-width: none;
}

.avl-learning-page__content > .avl-module + .avl-module {
    margin-top: 32px;
}

body.avl-has-learning-page .avl-module {
    width: 100%;
    max-width: none;
}

@media (max-width: 720px) {
    .avl-learning-page__inner {
        width: min(100% - 18px, 1640px);
    }

    .avl-learning-page {
        padding-top: 14px;
    }

    .avl-learning-page__header {
        border-radius: 18px;
    }
}
/* Shared workbench styles for 0.4–1.0 labs. Explicit text colors prevent theme inheritance. */
.avl-stage{--stage-bg:#08111e;--stage-card:#101d30;--stage-card-2:#17263c;--stage-line:#2b3e5c;--stage-text:#f4f8ff;--stage-muted:#c4d1e1;--stage-green:#61e3b7;--stage-blue:#8eb4ff;background:var(--stage-bg)!important;color:var(--stage-text)!important}
.avl-stage *{box-sizing:border-box}.avl-stage h2,.avl-stage h3,.avl-stage strong,.avl-stage code,.avl-stage pre,.avl-stage button{color:var(--stage-text)!important}.avl-stage p,.avl-stage span,.avl-stage small{color:var(--stage-muted)!important}.avl-stage-hero{display:flex;justify-content:space-between;gap:20px}.avl-stage-badge{display:flex;align-items:center;gap:8px;height:max-content;padding:9px 12px;border:1px solid #2d5570;border-radius:999px;background:#0c2430!important;color:#9df0d1!important;font-size:12px;font-weight:800}.avl-stage-badge span{width:8px;height:8px;border-radius:50%;background:var(--stage-green);box-shadow:0 0 12px var(--stage-green)}
.avl-stage-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:16px;padding:0 28px 20px}.avl-stage-card{overflow:hidden;border:1px solid var(--stage-line);border-radius:16px;background:linear-gradient(180deg,#101d30,#0c1727)!important}.avl-stage-title{padding:11px 14px;border-bottom:1px solid var(--stage-line);background:#0d1929!important;color:var(--stage-blue)!important;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.avl-stage-code{padding:10px}.avl-stage-code button{display:grid;grid-template-columns:104px 1fr;width:100%;gap:10px;padding:10px;border:1px solid transparent!important;border-radius:9px;background:#132137!important;text-align:left}.avl-stage-code button+button{margin-top:6px}.avl-stage-code button span{font-family:ui-monospace,monospace;font-size:10px}.avl-stage-code button code{background:transparent!important;font-size:12px}.avl-stage-code button.is-active{border-color:var(--stage-green)!important;background:#14332f!important}.avl-stage-code button.is-done{opacity:.58}
.avl-stage-registers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px}.avl-lab-reg{padding:10px;border:1px solid var(--stage-line)!important;border-radius:10px;background:#17263c!important;text-align:left}.avl-lab-reg span,.avl-lab-reg strong{display:block}.avl-lab-reg span{color:var(--stage-blue)!important;font-weight:900}.avl-lab-reg strong{margin-top:4px;font-family:ui-monospace,monospace;font-size:10px}.avl-stage-flags{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:0 12px 12px}.avl-stage-flags div{padding:8px;border:1px solid var(--stage-line);border-radius:9px;background:#0f1d30!important;text-align:center}.avl-stage-flags span,.avl-stage-flags strong{display:block}.avl-stage-flags span{color:var(--stage-blue)!important;font-weight:900}.avl-stage-visual{min-height:285px;padding:14px}.avl-flow{display:flex;align-items:center;justify-content:center;gap:8px;min-height:230px;flex-wrap:wrap}.avl-flow-box{min-width:82px;padding:13px 10px;border:1px solid #3a5275;border-radius:12px;background:#17263c!important;text-align:center}.avl-flow-box strong,.avl-flow-box span{display:block}.avl-flow-box strong{font-size:13px}.avl-flow-box span{margin-top:4px;font-size:9px}.avl-flow-box.is-active{border-color:var(--stage-green);background:#14332f!important;box-shadow:0 0 18px rgba(97,227,183,.12)}.avl-flow-arrow{color:var(--stage-green)!important;font-size:18px;font-weight:900}.avl-led{width:94px;height:94px;margin:30px auto;border:10px solid #19253a;border-radius:50%;background:#273447!important;box-shadow:inset 0 0 18px rgba(0,0,0,.8)}.avl-led.is-on{background:#ff405e!important;box-shadow:0 0 38px rgba(255,64,94,.75),inset 0 0 18px rgba(255,255,255,.5)}.avl-led-label{text-align:center;color:#fff!important;font-weight:900}.avl-memory-table{display:grid;gap:7px}.avl-memory-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:9px;border:1px solid var(--stage-line);border-radius:9px;background:#17263c!important}.avl-memory-row span,.avl-memory-row strong{font-family:ui-monospace,monospace;font-size:10px}.avl-stage-console{margin:0 28px;padding:18px;border:1px solid #34547c;border-radius:16px;background:linear-gradient(120deg,#111f33,#0d1929)!important}.avl-stage-console>span{color:var(--stage-green)!important;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.avl-stage-console h3{margin:6px 0 4px}.avl-stage-console p{margin:0;line-height:1.55}.avl-stage-console pre{min-height:22px;margin:10px 0 0!important;padding:10px!important;border-radius:8px;background:#07101c!important;font-size:11px;white-space:pre-wrap}.avl-lab-status{color:#c9d6e7!important;font-weight:800}.avl-hardware-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px}.avl-hardware-note{padding:12px;border:1px solid #6b5426;border-radius:10px;background:#302612!important;color:#ffe7a8!important;line-height:1.5}.avl-hardware-note strong,.avl-hardware-note span{color:#ffe7a8!important}
@media(max-width:1050px){.avl-stage-grid{grid-template-columns:1fr 1fr}.avl-stage-visual-card{grid-column:1/-1}}@media(max-width:720px){.avl-stage-grid{grid-template-columns:1fr;padding-inline:16px}.avl-stage-visual-card{grid-column:auto}.avl-stage-console{margin-inline:16px}.avl-stage-hero{display:block}.avl-stage-badge{margin-top:12px}.avl-stage-registers{grid-template-columns:repeat(2,1fr)}}

/* Platform core 1.1 ------------------------------------------------------ */
.avl-platform{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:760px;overflow:hidden;border:1px solid #263956;border-radius:22px;background:#070d17;color:#eef5ff;box-shadow:0 28px 80px rgba(2,8,18,.35)}
.avl-course-sidebar{padding:18px 12px;background:#09121f;border-right:1px solid #243650}
.avl-brand{display:flex;align-items:center;gap:11px;padding:8px 8px 20px}.avl-brand>span{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#5fe0b7,#76a9ff);color:#07101a!important;font-weight:1000}.avl-brand strong,.avl-brand small{display:block}.avl-brand strong{color:#fff!important;font-size:14px}.avl-brand small{color:#7f94af!important;font-size:10px}
.avl-course-progress{padding:12px;margin-bottom:10px;border:1px solid #263956;border-radius:12px;background:#0d1929}.avl-course-progress>div{display:flex;justify-content:space-between;font-size:10px}.avl-course-progress span{color:#a7b9cf!important}.avl-course-progress strong{color:#67e4ba!important}.avl-course-progress progress{width:100%;height:5px;margin-top:9px;accent-color:#5fe0b7}
.avl-course-list{display:grid;gap:4px}.avl-course-item{display:grid;grid-template-columns:30px 1fr 18px;align-items:center;gap:8px;width:100%;padding:9px;border:1px solid transparent!important;border-radius:10px;background:transparent!important;text-align:left}.avl-course-item:hover{background:#101e31!important}.avl-course-item.is-active{border-color:#31516d!important;background:#12263a!important}.avl-course-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#132339!important;color:#91b5eb!important;font-size:10px;font-weight:900}.avl-course-item small,.avl-course-item strong{display:block}.avl-course-item small{color:#6f86a4!important;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.avl-course-item strong{margin-top:2px;color:#dfeaff!important;font-size:10px;line-height:1.25}.avl-course-item i{color:#5fe0b7!important;font-style:normal;font-size:10px}
.avl-ide{min-width:0;background:radial-gradient(circle at top right,rgba(76,125,191,.12),transparent 28%),#08111e}.avl-ide-toolbar{display:flex;justify-content:space-between;gap:20px;padding:22px 24px 16px;border-bottom:1px solid #22344e}.avl-ide-toolbar h2{margin:9px 0 5px!important;color:#f4f8ff!important;font-size:clamp(23px,3vw,34px)!important}.avl-ide-toolbar p{max-width:760px;margin:0!important;color:#a9bad2!important;font-size:13px!important}.avl-engine-status{display:flex;align-items:center;gap:7px;height:max-content;padding:8px 11px;border:1px solid #285168;border-radius:999px;background:#0b2430;color:#a7f5d8!important;font-size:10px;font-weight:900;white-space:nowrap}.avl-engine-status span{width:7px;height:7px;border-radius:50%;background:#5fe0b7;box-shadow:0 0 10px #5fe0b7}
.avl-lesson-guide{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 24px}.avl-lesson-guide>div{padding:12px 14px;border:1px solid #263a56;border-radius:11px;background:#0d1929}.avl-lesson-guide small,.avl-lesson-guide strong{display:block}.avl-lesson-guide small{color:#6f86a4!important;font-size:8px;text-transform:uppercase;letter-spacing:.1em}.avl-lesson-guide strong{margin-top:5px;color:#dce9fa!important;font-size:11px;line-height:1.4}.avl-guide-step{border-color:#2e6156!important;background:#0d2425!important}.avl-guide-step strong{color:#9df0d1!important}
.avl-ide-grid{display:grid;grid-template-columns:1.05fr .85fr 1.1fr;gap:10px;padding:0 24px 12px}.avl-ide-panel{min-width:0;overflow:hidden;border:1px solid #263a56;border-radius:12px;background:#0c1727}.avl-ide-panel>header{display:flex;justify-content:space-between;padding:9px 11px;border-bottom:1px solid #263a56;background:#0a1422}.avl-ide-panel>header span{color:#8eb4ff!important;font-size:9px;font-weight:900;letter-spacing:.09em}.avl-ide-panel>header small{color:#667d99!important;font-size:8px}
.avl-code-panel .avl-stage-code{padding:8px}.avl-code-panel .avl-stage-code button{grid-template-columns:90px 25px 1fr;align-items:center;padding:9px 8px;border-left:3px solid transparent!important}.avl-code-panel .avl-stage-code button i{color:#536a86!important;font-style:normal;font:9px ui-monospace,monospace}.avl-code-panel .avl-stage-code button.is-active{border-left-color:#5fe0b7!important}.avl-lab-reg.is-changed{border-color:#5fe0b7!important;box-shadow:0 0 0 1px rgba(95,224,183,.15)}.avl-stage-flags div.is-set{border-color:#5fe0b7;background:#12332e!important}.avl-stage-flags div.is-set strong{color:#76f0c7!important}
.avl-ide-controls{position:sticky;bottom:0;z-index:4;justify-content:flex-start;gap:8px;margin:12px 24px 0;padding:12px;border:1px solid #2b405e;border-radius:12px;background:rgba(8,17,30,.95);backdrop-filter:blur(12px)}.avl-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 13px;border:1px solid #38506f!important;border-radius:9px!important;background:#13233a!important;color:#ecf4ff!important;font-weight:800!important;font-size:11px!important;cursor:pointer}.avl-button:hover:not(:disabled){transform:translateY(-1px);border-color:#6594cf!important}.avl-button.avl-primary{border-color:#399f82!important;background:#14664f!important}.avl-button:disabled{opacity:.38;cursor:not-allowed}.avl-lab-status{margin-left:auto;align-self:center;font-size:10px}
@media(max-width:1100px){.avl-platform{grid-template-columns:210px 1fr}.avl-ide-grid{grid-template-columns:1fr 1fr}.avl-visual-panel{grid-column:1/-1}}@media(max-width:780px){.avl-platform{display:block}.avl-course-sidebar{border-right:0;border-bottom:1px solid #243650}.avl-course-list{grid-template-columns:repeat(2,1fr)}.avl-ide-grid,.avl-lesson-guide{grid-template-columns:1fr}.avl-visual-panel{grid-column:auto}.avl-ide-toolbar{display:block}.avl-engine-status{margin-top:10px;width:max-content}.avl-ide-controls{overflow-x:auto}.avl-button span{display:none}}
.avl-hw-steps{display:grid;gap:7px}.avl-hw-steps button{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #263956!important;border-radius:10px;background:#0d1929!important;text-align:left}.avl-hw-steps span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#18304a;color:#8eb4ff!important;font-size:10px;font-weight:900}.avl-hw-steps strong{color:#dce9fa!important;font-size:10px}.avl-hw-steps button.is-active{border-color:#3a7c6a!important;background:#102924!important}.avl-hw-wizard{display:grid;gap:12px;padding:16px 24px}.avl-hw-card{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:18px;border:1px solid #293d5a;border-radius:14px;background:#0d1929}.avl-hw-number{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#132b43;color:#8eb4ff!important;font-size:11px;font-weight:1000}.avl-hw-card h3{margin:0 0 7px!important;color:#f2f7ff!important;font-size:16px!important}.avl-hw-card p{margin:0!important;color:#aec0d5!important;font-size:12px!important;line-height:1.6}.avl-os-help{display:grid;gap:7px;margin-top:12px}.avl-os-help details{padding:10px;border:1px solid #2a405d;border-radius:9px;background:#091421}.avl-os-help summary{color:#dfeaff!important;font-size:11px;font-weight:800;cursor:pointer}.avl-os-help pre,.avl-hw-log{margin:9px 0 0!important;padding:10px!important;border-radius:8px;background:#050b13!important;color:#92efcd!important;font:10px/1.5 ui-monospace,monospace!important;white-space:pre-wrap}.avl-hw-test .avl-led{margin:16px 0 6px}.avl-hw-test .avl-led-label{text-align:left}.avl-hardware-platform .avl-hardware-note{margin:0 24px 24px}.avl-hardware-platform code{color:#9df0d1!important}


/* 1.1.1 hardware controls: explicit contrast against WordPress theme styles */
.avl-hardware-platform .avl-hardware-actions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:16px!important}
.avl-hardware-platform .avl-hardware-actions .avl-button{min-width:160px!important;min-height:44px!important;border:1px solid #5d7699!important;background:#172a45!important;color:#ffffff!important;opacity:1!important;text-shadow:none!important;box-shadow:0 8px 20px rgba(0,0,0,.22)!important}
.avl-hardware-platform .avl-hardware-actions .avl-connect{border-color:#65e0bb!important;background:#0f765a!important;color:#ffffff!important;font-size:12px!important}
.avl-hardware-platform .avl-hardware-actions .avl-connect:hover:not(:disabled){background:#118866!important;border-color:#8af5d4!important}
.avl-hardware-platform .avl-hardware-actions .avl-button:disabled{background:#142033!important;color:#71839a!important;border-color:#2d4058!important;opacity:.72!important}


/* 1.1.4 serial workbench */
.avl-serial-settings{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:12px;margin:12px 0}
.avl-serial-settings label,.avl-command-form label{display:grid;gap:6px}
.avl-serial-settings label>span,.avl-command-form label>span{color:#dce9fa!important;font-size:10px;font-weight:900}
.avl-serial-settings select,.avl-command-form input{width:100%;min-height:44px;padding:9px 11px;border:1px solid #527096!important;border-radius:9px!important;background:#07111e!important;color:#fff!important;font:12px ui-monospace,monospace!important;box-sizing:border-box}
.avl-serial-settings select:disabled{opacity:.65}
.avl-command-presets{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.avl-command-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;margin:12px 0 4px}
.avl-command-form .avl-send-command{min-width:130px!important;min-height:44px!important}
.avl-hardware-platform .avl-command-presets .avl-button{min-width:150px!important;min-height:44px!important;background:#172a45!important;color:#fff!important;border-color:#5d7699!important}
.avl-hardware-platform .avl-command-presets .avl-led-on:not(:disabled){background:#0f765a!important;border-color:#65e0bb!important}
.avl-hardware-platform .avl-command-presets .avl-led-off:not(:disabled){background:#7a2634!important;border-color:#e06b7c!important}
@media(max-width:780px){.avl-serial-settings,.avl-command-form{grid-template-columns:1fr}}

/* 1.2.0 STM32 Control Center */
.avl-control-center{grid-template-columns:232px 1fr;min-height:760px}
.avl-cc-sidebar{display:flex;flex-direction:column}.avl-cc-nav{display:grid;gap:7px}.avl-cc-nav button{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;width:100%;padding:10px;border:1px solid #263956!important;border-radius:11px;background:#0d1929!important;text-align:left;cursor:pointer}.avl-cc-nav button:hover,.avl-cc-nav button.is-active{border-color:#3a7c6a!important;background:#102924!important}.avl-cc-nav button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#17304b;color:#8eb4ff!important;font-size:10px;font-weight:1000}.avl-cc-nav strong,.avl-cc-nav small{display:block}.avl-cc-nav strong{color:#eef5ff!important;font-size:11px}.avl-cc-nav small{margin-top:2px;color:#7088a5!important;font-size:9px}.avl-cc-device-card{margin-top:auto;padding:13px;border:1px solid #263956;border-radius:12px;background:#0d1929}.avl-cc-device-card small,.avl-cc-device-card strong,.avl-cc-device-card span{display:block}.avl-cc-device-card small{color:#637b98!important;font-size:8px;letter-spacing:.1em}.avl-cc-device-card strong{margin-top:7px;color:#eef5ff!important;font-size:12px}.avl-cc-device-card span{margin-top:4px;color:#8ca2bd!important;font:9px/1.4 ui-monospace,monospace}
.avl-cc-header-actions{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.avl-cc-workspace{padding:16px 24px 18px}.avl-cc-pane{display:none}.avl-cc-pane.is-active{display:block}.avl-cc-pane-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.avl-cc-pane-heading small{color:#65e0bb!important;font-size:9px;font-weight:1000;letter-spacing:.12em}.avl-cc-pane-heading h3{margin:5px 0 4px!important;color:#f4f8ff!important;font-size:21px!important}.avl-cc-pane-heading p{margin:0!important;color:#92a7c1!important;font-size:11px!important}.avl-cc-pill{padding:7px 10px;border:1px solid #385574;border-radius:999px;background:#0e2033;color:#b8d1ee!important;font-size:9px;font-weight:900}.avl-cc-pill.is-roadmap{border-color:#665225;background:#291f0b;color:#f5d27a!important}
.avl-cc-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;padding:16px;border:1px solid #293d5a;border-radius:14px;background:#0d1929}.avl-cc-settings-grid label{display:grid;gap:6px}.avl-cc-settings-grid label>span{color:#dce9fa!important;font-size:10px;font-weight:900}.avl-cc-settings-grid select{min-height:42px;padding:8px 10px;border:1px solid #527096!important;border-radius:9px;background:#07111e!important;color:#fff!important}.avl-cc-wiring{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;padding:13px;border:1px solid #293d5a;border-radius:12px;background:#0b1726}.avl-cc-wiring strong{color:#eef5ff!important;font-size:11px}.avl-cc-wiring span{padding:6px 9px;border-radius:8px;background:#13243a;color:#a9bed7!important;font-size:10px}.avl-cc-connection-status{display:flex;align-items:center;gap:10px;margin-top:12px;padding:14px;border:1px solid #293d5a;border-radius:12px;background:#0d1929}.avl-cc-status-dot{width:10px;height:10px;border-radius:50%;background:#6f7e91;box-shadow:0 0 0 5px rgba(111,126,145,.12)}.avl-cc-status-dot.is-connected{background:#5fe0b7;box-shadow:0 0 0 5px rgba(95,224,183,.12)}.avl-cc-connection-status strong,.avl-cc-connection-status small{display:block}.avl-cc-connection-status strong{color:#eef5ff!important;font-size:11px}.avl-cc-connection-status small{margin-top:3px;color:#8298b3!important;font-size:9px}
.avl-cc-counters{display:flex;gap:8px}.avl-cc-counters span{padding:7px 10px;border:1px solid #2a405d;border-radius:8px;background:#0d1929;color:#8298b3!important;font:9px ui-monospace,monospace}.avl-cc-counters strong{color:#77e7c1!important}.avl-terminal-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:12px}.avl-terminal-main,.avl-terminal-side>div{border:1px solid #293d5a;border-radius:14px;background:#0d1929}.avl-terminal-main{overflow:hidden}.avl-terminal-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #293d5a;background:#0a1422}.avl-terminal-title{color:#8eb4ff!important;font-size:9px;font-weight:1000;letter-spacing:.12em}.avl-terminal-toolbar>div{display:flex;align-items:center;gap:10px}.avl-preserve-case{color:#8da3bd!important;font-size:9px}.avl-terminal-clear{border:0;background:transparent;color:#78a9e8!important;font-size:9px;cursor:pointer}.avl-terminal-output{display:block;height:390px;overflow:auto;margin:0!important;padding:14px!important;background:#050b13!important;color:#b9cbe0!important;font:11px/1.55 ui-monospace,monospace!important;white-space:pre-wrap}.avl-terminal-line{display:block}.avl-terminal-line.is-tx{color:#78e8c2!important}.avl-terminal-line.is-rx{color:#89b8ff!important}.avl-terminal-line.is-system{color:#d6b869!important}.avl-terminal-muted{color:#60738b!important}.avl-terminal-command{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:10px;border-top:1px solid #293d5a;background:#091421}.avl-terminal-prompt{color:#5fe0b7!important;font:700 15px ui-monospace,monospace}.avl-terminal-command input{min-height:42px;padding:8px 10px;border:1px solid #527096!important;border-radius:9px;background:#07111e!important;color:#fff!important;font:12px ui-monospace,monospace!important}.avl-terminal-side{display:grid;gap:12px;align-content:start}.avl-terminal-side>div{padding:13px}.avl-terminal-side small{display:block;margin-bottom:10px;color:#6f86a4!important;font-size:8px;font-weight:1000;letter-spacing:.1em}.avl-command-presets{display:grid!important;grid-template-columns:1fr 1fr;gap:7px!important;margin:0!important}.avl-command-presets button{min-height:36px;border:1px solid #38506f;border-radius:8px;background:#14243a;color:#eef5ff;font:10px ui-monospace,monospace;cursor:pointer}.avl-command-presets button:hover:not(:disabled){border-color:#65e0bb;background:#123127}.avl-command-presets button:disabled{opacity:.4}.avl-led-panel{text-align:center}.avl-led-panel .avl-led{margin:4px auto 8px}.avl-led-panel strong,.avl-led-panel span{display:block}.avl-led-panel strong{color:#eef5ff!important;font-size:11px}.avl-led-panel span{margin-top:5px;color:#7187a1!important;font-size:9px;line-height:1.4}.avl-packet-panel .avl-hw-log{max-height:145px;overflow:auto;margin:0!important}
.avl-flash-drop{display:grid;place-items:center;padding:42px;border:1px dashed #38516e;border-radius:16px;background:#0d1929;text-align:center}.avl-flash-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:#15304b;color:#8eb4ff;font-weight:1000}.avl-flash-drop h4{margin:14px 0 6px!important;color:#eef5ff!important}.avl-flash-drop p{max-width:620px;margin:0 0 16px!important;color:#8fa5bf!important;font-size:11px!important}.avl-cc-roadmap-grid,.avl-register-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.avl-cc-roadmap-grid article,.avl-register-preview button{padding:14px;border:1px solid #293d5a;border-radius:12px;background:#0d1929;text-align:left}.avl-cc-roadmap-grid strong,.avl-cc-roadmap-grid span,.avl-register-preview strong,.avl-register-preview span{display:block}.avl-cc-roadmap-grid strong,.avl-register-preview strong{color:#eef5ff!important}.avl-cc-roadmap-grid span,.avl-register-preview span{margin-top:4px;color:#8095af!important;font-size:9px}.avl-register-preview button{opacity:.7}.avl-memory-preview{padding:16px;border:1px solid #293d5a;border-radius:14px;background:#0d1929}.avl-memory-address{margin-bottom:10px;color:#72dfbb;font:11px ui-monospace,monospace}.avl-memory-preview pre{overflow:auto;margin:0;padding:16px;border-radius:10px;background:#050b13;color:#839ab6;font:12px/1.8 ui-monospace,monospace}.avl-monitor-preview{position:relative;height:300px;overflow:hidden;border:1px solid #293d5a;border-radius:14px;background:linear-gradient(rgba(43,66,94,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(43,66,94,.18) 1px,transparent 1px),#07111e;background-size:40px 40px}.avl-monitor-preview svg{position:absolute;inset:20px;width:calc(100% - 40px);height:calc(100% - 60px)}.avl-monitor-preview polyline{fill:none;stroke:#5fe0b7;stroke-width:3;vector-effect:non-scaling-stroke}.avl-monitor-preview span{position:absolute;left:16px;bottom:12px;color:#7187a1!important;font:9px ui-monospace,monospace}.avl-cc-footer{display:flex;justify-content:space-between;padding:9px 24px;border-top:1px solid #22344e;background:#07101b;color:#7187a1!important;font:9px ui-monospace,monospace}.avl-cc-footer-status{color:#79dfbc!important}
@media(max-width:1050px){.avl-terminal-layout{grid-template-columns:1fr}.avl-terminal-side{grid-template-columns:repeat(3,1fr)}.avl-cc-settings-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.avl-control-center{display:block}.avl-cc-nav{grid-template-columns:repeat(2,1fr)}.avl-cc-device-card{margin-top:12px}.avl-cc-header-actions{margin-top:12px}.avl-terminal-side{grid-template-columns:1fr}.avl-cc-settings-grid,.avl-cc-roadmap-grid,.avl-register-preview{grid-template-columns:1fr}.avl-terminal-command{grid-template-columns:auto 1fr}.avl-terminal-command button{grid-column:1/-1}.avl-cc-workspace{padding:14px}.avl-cc-pane-heading{display:block}.avl-cc-pill{display:inline-block;margin-top:10px}}

/* ========================================================================== */
/* ARM Visual Lab Design System v1 — buttons and interactive states           */
/* ========================================================================== */
.avl-module {
  --avl-action-primary-bg: #0f8f6d;
  --avl-action-primary-border: #64e4bd;
  --avl-action-primary-text: #ffffff;
  --avl-action-secondary-bg: #172a45;
  --avl-action-secondary-border: #527198;
  --avl-action-secondary-text: #f4f8ff;
  --avl-action-danger-bg: #7a2634;
  --avl-action-danger-border: #ec7f8f;
  --avl-action-disabled-bg: #202d41;
  --avl-action-disabled-border: #52647d;
  --avl-action-disabled-text: #aebed1;
  --avl-focus-ring: rgba(105, 229, 192, .34);
}

/* One shared button component across every lesson and Control Center. */
.avl-module .avl-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid var(--avl-action-secondary-border) !important;
  border-radius: 10px !important;
  background: var(--avl-action-secondary-bg) !important;
  color: var(--avl-action-secondary-text) !important;
  opacity: 1 !important;
  box-shadow: 0 5px 14px rgba(0, 0, 0, .18);
  text-shadow: none !important;
  font-weight: 850 !important;
  line-height: 1.1;
  cursor: pointer;
  transition: transform .14s ease, border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

.avl-module .avl-button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: #81a7d8 !important;
  background: #1d3453 !important;
  box-shadow: 0 8px 19px rgba(0, 0, 0, .24);
}

.avl-module .avl-button:focus-visible {
  outline: 3px solid var(--avl-focus-ring) !important;
  outline-offset: 2px;
}

/* Primary actions must remain the strongest visual element. */
.avl-module .avl-button.avl-primary:not(:disabled),
.avl-module .avl-lab-step:not(:disabled),
.avl-module .avl-next:not(:disabled),
.avl-module .avl-mm-next:not(:disabled),
.avl-module .avl-connect:not(:disabled),
.avl-module .avl-send-command:not(:disabled) {
  border-color: var(--avl-action-primary-border) !important;
  background: var(--avl-action-primary-bg) !important;
  color: var(--avl-action-primary-text) !important;
  box-shadow: 0 8px 20px rgba(15, 143, 109, .24);
}

.avl-module .avl-button.avl-primary:hover:not(:disabled),
.avl-module .avl-lab-step:hover:not(:disabled),
.avl-module .avl-next:hover:not(:disabled),
.avl-module .avl-mm-next:hover:not(:disabled),
.avl-module .avl-connect:hover:not(:disabled),
.avl-module .avl-send-command:hover:not(:disabled) {
  border-color: #a2f7dc !important;
  background: #11a47d !important;
}

/* Disabled is a state, not disappearance. Keep text, outline and shape clear. */
.avl-module .avl-button:disabled,
.avl-module button.avl-button[disabled] {
  border-color: var(--avl-action-disabled-border) !important;
  background: var(--avl-action-disabled-bg) !important;
  color: var(--avl-action-disabled-text) !important;
  opacity: 1 !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .025) !important;
  filter: none !important;
  text-shadow: none !important;
  cursor: not-allowed;
}

.avl-module .avl-button:disabled span,
.avl-module .avl-button:disabled strong,
.avl-module .avl-button:disabled small {
  color: var(--avl-action-disabled-text) !important;
  opacity: 1 !important;
}

/* The manual Step action is intentionally larger than navigation controls. */
.avl-module .avl-ide-controls .avl-lab-step,
.avl-module .avl-controls .avl-next,
.avl-module .avl-controls .avl-mm-next {
  min-width: 118px;
  min-height: 44px;
  padding-inline: 20px;
}

/* A disabled primary action stays recognizable as the next main action. */
.avl-module .avl-ide-controls .avl-lab-step:disabled,
.avl-module .avl-controls .avl-next:disabled,
.avl-module .avl-controls .avl-mm-next:disabled,
.avl-module .avl-connect:disabled,
.avl-module .avl-send-command:disabled {
  border-color: #59728e !important;
  background: #26364a !important;
  color: #c1cede !important;
}

/* Explicit destructive action. */
.avl-module .avl-button.avl-danger:not(:disabled),
.avl-module .avl-led-off:not(:disabled) {
  border-color: var(--avl-action-danger-border) !important;
  background: var(--avl-action-danger-bg) !important;
  color: #ffffff !important;
}

/* Form controls use the same readable disabled treatment. */
.avl-module input:disabled,
.avl-module select:disabled,
.avl-module textarea:disabled {
  opacity: 1 !important;
  color: #aebed1 !important;
  -webkit-text-fill-color: #aebed1;
  background: #202d41 !important;
  border-color: #52647d !important;
  cursor: not-allowed;
}

@media (max-width: 780px) {
  .avl-module .avl-button {
    min-height: 44px;
  }
  .avl-module .avl-button span {
    display: inline !important;
  }
}


/* ARM Visual Lab 2.0 shared component layer */
.avl-module{--avl-space-1:.4rem;--avl-space-2:.7rem;--avl-space-3:1rem;--avl-space-4:1.4rem;--avl-radius:14px;--avl-focus:#65d98b}
.avl-button,.avl-module button{transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease}
.avl-button:focus-visible,.avl-module button:focus-visible,.avl-module input:focus-visible,.avl-module select:focus-visible{outline:3px solid color-mix(in srgb,var(--avl-focus) 45%,transparent);outline-offset:2px}
.avl-button:not(:disabled):active,.avl-module button:not(:disabled):active{transform:translateY(1px)}
.avl-button:disabled,.avl-module button:disabled{opacity:1!important;cursor:not-allowed!important;color:#aeb8c4!important;background:#202a35!important;border-color:#465565!important;box-shadow:none!important}
.avl-primary:disabled,.avl-lab-step:disabled{color:#b8d9c4!important;background:#20352a!important;border-color:#49735a!important}
.avl-mode-compact .avl-course-sidebar{display:none}
.avl-mode-compact .avl-platform{grid-template-columns:1fr}
.avl-mode-compact .avl-ide-toolbar p,.avl-mode-compact .avl-lesson-guide,.avl-mode-compact .avl-takeaway{display:none}
.avl-mode-compact .avl-ide{min-height:0}
.avl-inline-note{padding:.75rem 1rem;border:1px solid #334454;border-radius:12px;background:#151d26;color:#cbd5df}
.avl-status-badge{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #3b4b5b;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;color:#cdd7e1;background:#18212b}
.avl-status-badge::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:#697887}
.avl-status-badge.is-live::before{background:#65d98b;box-shadow:0 0 0 4px rgba(101,217,139,.12)}
.avl-kernel-grid,.avl-rtos-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:1rem}
.avl-concept-card{border:1px solid #2f3f4e;border-radius:14px;background:#121a23;padding:1rem}
.avl-concept-card h3,.avl-concept-card h4{margin:.15rem 0 .7rem}
.avl-timeline{display:grid;gap:.55rem;margin:1rem 0}
.avl-timeline-step{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:.7rem;padding:.7rem;border:1px solid #2d3b49;border-radius:11px;background:#17212b}
.avl-timeline-step.is-active{border-color:#65d98b;background:#193026;box-shadow:0 0 0 2px rgba(101,217,139,.08)}
.avl-timeline-step.is-done{color:#9fb0bf}
.avl-timeline-step b{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#263342}
.avl-task-list{display:grid;gap:.55rem}
.avl-task{display:grid;grid-template-columns:1fr auto;gap:.55rem;padding:.8rem;border:1px solid #30404f;border-radius:12px;background:#151e27}
.avl-task.is-running{border-color:#65d98b;background:#193026}
.avl-task progress{grid-column:1/-1;width:100%}
.avl-register-strip{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:.5rem}
.avl-register-strip div{padding:.65rem;border:1px solid #30404f;border-radius:10px;background:#111820}.avl-register-strip span{display:block;color:#8998a7;font-size:.7rem}.avl-register-strip strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.avl-control-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1rem}
.avl-log-list{min-height:190px;max-height:310px;overflow:auto;padding:.8rem;border:1px solid #2e3d4b;border-radius:12px;background:#0c1218;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;white-space:pre-wrap}
.avl-log-list span{display:block;padding:.2rem 0;border-bottom:1px solid rgba(255,255,255,.035)}
.avl-compare-table{width:100%;border-collapse:collapse}.avl-compare-table th,.avl-compare-table td{padding:.7rem;border-bottom:1px solid #2e3d4b;text-align:left}.avl-compare-table th{color:#8fa1b2;font-size:.75rem;text-transform:uppercase}
@media(max-width:900px){.avl-kernel-grid,.avl-rtos-grid{grid-template-columns:1fr}.avl-register-strip{grid-template-columns:repeat(2,1fr)}}

/* Planned module cards: registered shortcodes never leak as raw text. */
.avl-planned-module {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 1rem;
  margin: 1.2rem 0;
  padding: 1.25rem;
  border: 1px solid #3b5269;
  border-radius: 18px;
  background: linear-gradient(135deg, #0d1927 0%, #111f2d 100%);
  color: #dce8f5;
  box-shadow: 0 18px 55px rgba(8, 18, 29, .18);
}
.avl-planned-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border: 1px solid #536b82;
  border-radius: 16px;
  background: #17283a;
  font-size: 1.55rem;
}
.avl-planned-topline {display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.55rem}
.avl-planned-topline code {padding:.25rem .5rem;border:1px solid #334a60;border-radius:8px;background:#09131e;color:#bcd0e3}
.avl-planned-badge {display:inline-flex;align-items:center;padding:.3rem .65rem;border:1px solid #917438;border-radius:999px;background:#342b16;color:#f2d78f;font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.avl-planned-module h3 {margin:.1rem 0 .45rem;color:#fff;font-size:clamp(1.25rem,2vw,1.65rem)}
.avl-planned-module p {margin:.2rem 0 .75rem;color:#b9c9d8}
.avl-planned-module ul {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.2rem;margin:.65rem 0 1rem;padding-left:1.15rem;color:#d2dfeb}
.avl-planned-release {display:inline-flex;padding:.45rem .7rem;border-radius:10px;background:#142638;color:#92b1ca;font-size:.82rem}
@media(max-width:680px){.avl-planned-module{grid-template-columns:1fr}.avl-planned-module ul{grid-template-columns:1fr}}

/* Design System 2.1 components ------------------------------------------------ */
.avl-card,.avl-panel{border:1px solid var(--avl-line,#2d4264);border-radius:16px;background:var(--avl-panel,#131f33);color:var(--avl-text,#eff5ff)}
.avl-card{padding:18px}.avl-card h3{margin:0 0 10px;color:inherit}.avl-card__body{color:var(--avl-muted,#a9bad2)}
.avl-panel{overflow:hidden}.avl-panel>header{padding:12px 16px;border-bottom:1px solid var(--avl-line,#2d4264);font-weight:800}.avl-panel__body{padding:16px}
.avl-status{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #44566f;border-radius:999px;background:#17243a;color:#dbe8f7;font-size:12px;font-weight:800}.avl-status i{width:8px;height:8px;border-radius:50%;background:#8797aa}.avl-status--success i{background:#5fe0b7;box-shadow:0 0 0 4px rgba(95,224,183,.12)}.avl-status--warning i{background:#f1c75b}.avl-status--danger i{background:#ef7185}
.avl-mode-compact{margin-block:1rem}.avl-mode-compact .avl-header{padding:20px}.avl-mode-compact .avl-header h2{font-size:clamp(24px,3vw,34px)}
