
    :root { --bg:#0a0d16; --surface:#111626; --surface2:#171d30; --surface3:#1d253b; --text:#eef2fa; --muted:#8994ad; --line:#29314a; --accent:#a7f77a; --cyan:#7dd9e8; --purple:#b39cff; --warn:#f6c87a; --radius:18px; }
    * { box-sizing:border-box; } html { scroll-behavior:smooth; }
    body { margin:0; background:radial-gradient(circle at 85% 3%,rgba(87,87,171,.12),transparent 33%),var(--bg); color:var(--text); font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
    button,input { font:inherit; } button { cursor:pointer; } button:focus-visible,input:focus-visible {outline:2px solid var(--accent);outline-offset:3px} a {color:inherit}
    .layout { display:grid; grid-template-columns:254px minmax(0,1fr); min-height:100vh; }
    .sidebar {position:sticky;top:0;height:100vh;min-height:720px; padding:30px 18px 22px; background:rgba(15,19,32,.96);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:30px;}
    .brand { display:flex;align-items:center;gap:12px;padding:0 12px; }
    .brandmark {display:grid;place-items:center;border-radius:13px;width:40px;height:40px;background:#b0f67c;color:#101a14;font-weight:1000;font-size:21px;box-shadow:0 0 24px #a7f77a24}
    .brand strong {display:block;letter-spacing:.09em;font-size:17px;line-height:1.2}.brand small {display:block;color:var(--muted);font-size:10px;letter-spacing:.23em;margin-top:3px}
    .navlabel {padding:0 13px;color:#68758f;font-size:10px;font-weight:800;letter-spacing:.18em;margin-bottom:11px}
    .nav {display:flex;flex-direction:column;gap:5px} .navbtn {width:100%;text-align:left;border:0;background:transparent;color:#99a5bc;border-radius:11px;padding:12px 14px;display:flex;gap:12px;align-items:center;font-weight:620}
    .navbtn:hover,.navbtn.active {background:#202941;color:white}.navbtn.active {box-shadow:inset 3px 0 var(--accent)}.navbtn .ico{font-size:18px;width:22px;text-align:center}
    .side-spacer {flex:1}.mentor {border:1px solid #3d4855;background:linear-gradient(135deg,#253028,#17212a);border-radius:17px;padding:16px;}
    .mentor .sm {color:var(--accent);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.13em}.mentor p{color:#aeb9ba;font-size:12px;margin:9px 0 14px;line-height:1.65}
    .tinybutton {background:#28362b;color:#d4f3c8;border:1px solid #415b3b;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:750;width:100%}
    .profile {display:flex;align-items:center;gap:11px;padding:16px 10px 0;border-top:1px solid var(--line);margin-top:17px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#8a80ff,#5ca9bd);font-weight:800}
    .profile b{font-size:12px}.profile span{display:block;color:var(--muted);font-size:11px}
    .main {padding:29px clamp(24px,5vw,72px) 60px;max-width:1580px;width:100%;margin:auto;min-width:0}
    .topbar {display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:40px}.crumb{color:#79869f;font-size:13px}.crumb b{color:#c8d1e0}.top-right{display:flex;align-items:center;gap:12px}
    .pill {border:1px solid var(--line);padding:8px 12px;border-radius:100px;color:#afbbd0;background:#171d2d;font-size:12px;font-weight:650}.xp{color:#c6fca4;border-color:#43583d;background:#1d2b20}
    .screen {display:none;animation:fade .3s ease}.screen.active{display:block} @keyframes fade{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
    .eyebrow {font-size:11px;color:var(--accent);letter-spacing:.23em;font-weight:850;text-transform:uppercase}.h1{font-size:clamp(31px,4vw,51px);line-height:1.13;letter-spacing:-.05em;margin:13px 0 16px;font-weight:840}
    .lead{color:#9caac1;max-width:620px;line-height:1.75;margin:0 0 24px;font-size:15px}.btn {border:1px solid transparent;padding:12px 17px;border-radius:11px;font-weight:780;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .16s,background .16s}
    .btn:hover {transform:translateY(-2px)} .btn.primary{background:var(--accent);color:#131c10;box-shadow:0 5px 20px #a7f77a20}.btn.secondary{background:#232b40;color:#e9edf6;border-color:#374059}.btn.ghost{background:transparent;color:#b6c1d6;border-color:#36415a}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
    .hero {border:1px solid #333b57;border-radius:23px;background:radial-gradient(ellipse at 91% 2%,#323a5773,transparent 48%),linear-gradient(130deg,#182034,#131827 65%,#171e30);display:grid;grid-template-columns:1fr minmax(250px,.8fr);gap:25px;padding:clamp(25px,4vw,45px);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:320px;height:320px;border:1px solid #6a7c9140;border-radius:50%;right:-100px;top:-160px;pointer-events:none}
    .hero .buttons{display:flex;gap:11px;flex-wrap:wrap}.terminal {border:1px solid #48516a;border-radius:14px;background:#0b0f1af0;box-shadow:0 20px 45px #060a1444;align-self:center;overflow:hidden;min-width:0;transform:rotate(-2deg)}
    .terminalhead {background:#192035;border-bottom:1px solid #2c3653;padding:11px 13px;display:flex;gap:5px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:#e4747b}.dot:nth-child(2){background:#e9c36e}.dot:nth-child(3){background:#94ca92}.terminalhead small{margin:auto;color:#8592ab;font-size:11px}
    .terminalbody{padding:18px;font:12px/1.9 "SFMono-Regular",Consolas,monospace;color:#d2dfeb;white-space:pre-wrap}.green{color:var(--accent)}.blue{color:var(--cyan)}.muted{color:var(--muted)}
    .section-head {display:flex;align-items:center;justify-content:space-between;gap:14px;margin:34px 0 17px}.section-head h2{font-size:20px;letter-spacing:-.035em;margin:0}.section-head span{color:var(--muted);font-size:13px}
    .stats {display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.stat{padding:20px 21px;background:#151b2b;border:1px solid var(--line);border-radius:17px}.stat small{display:block;color:#96a2b8;font-size:12px}.stat strong{font-size:29px;letter-spacing:-.04em}.stat .tag{font-size:11px;color:var(--accent);margin-left:7px}
    .module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.module{background:linear-gradient(145deg,#171e30,#131927);border:1px solid var(--line);border-radius:17px;padding:20px;cursor:pointer;text-align:left;color:inherit;transition:.2s;min-height:159px}.module:hover{border-color:#738d70;transform:translateY(-2px);background:#1c2538}
    .module-inner{display:flex;align-items:flex-start;gap:13px}.moduleicon{width:48px;height:48px;flex:0 0 48px;border:1px solid #3b4664;border-radius:13px;background:#263049;display:grid;place-items:center;font-size:23px}.module h3{font-size:17px;margin:0 0 4px}.module p{font-size:12px;color:#8997b0;margin:0;line-height:1.5}.meta{display:flex;align-items:center;justify-content:space-between;margin-top:26px;color:#98a6bf;font-size:11px}.bar{height:5px;background:#344056;border-radius:10px;overflow:hidden;margin-top:12px}.bar>span{display:block;background:linear-gradient(90deg,#b3f783,#70d3d8);height:100%;border-radius:10px;transition:width .4s}
    .module .status{color:#8e9bb4}.module.current .status{color:var(--accent)}.module.current{border-color:#667951}
    .screen-header{margin-bottom:26px}.screen-header h1{font-size:clamp(28px,3vw,39px);letter-spacing:-.05em;margin:8px 0 8px}.screen-header p{color:var(--muted);margin:0;max-width:760px}
    .layout-two {display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:20px}.panel{background:#151b2b;border:1px solid var(--line);border-radius:18px;padding:25px;min-width:0}.panel h2{margin:0 0 15px;letter-spacing:-.03em}.lesson-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}
    .tab{padding:9px 12px;border-radius:10px;background:#1d2538;border:1px solid #344056;color:#9eadc6;font-size:12px}.tab.active{background:#293826;border-color:#667f53;color:#c7f0ad}
    .video{min-height:185px;background:radial-gradient(circle at 50% 50%,#253e3c,#172439 45%,#111725);border:1px solid #34445c;border-radius:14px;margin:17px 0 23px;display:grid;place-items:center;text-align:center;color:#a9c6c8}.video .play{font-size:28px;background:#a7f77a;color:#112016;border-radius:50%;width:57px;height:57px;display:grid;place-items:center;margin:auto auto 10px;box-shadow:0 0 30px #9cf57733}.video b{display:block;font-size:14px;color:#e1f4ec}.video small{font-size:11px;color:#7e98aa}
    .copyrow{background:#0c111e;border:1px solid #29344e;border-radius:12px;display:flex;align-items:center;margin:16px 0;padding:5px 5px 5px 15px;gap:15px}.copyrow code{font:13px/1.6 Consolas,monospace;color:#b8f39d;flex:1;overflow:auto}.copy{border:1px solid #354461;border-radius:8px;padding:7px 10px;background:#222d43;color:#d0d9e9;white-space:nowrap;font-size:12px}
    .article p{color:#afb9cc;line-height:1.85;font-size:14px}.article ul{color:#aeb9cc;line-height:1.9}.article strong{color:#eff4f8}
    .rightbox{background:#171e30;border:1px solid var(--line);border-radius:18px;padding:20px;height:fit-content}.step{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #30384d;color:#aeb9ce;font-size:12px}.step:last-child{border-bottom:0}.stepnumber{display:grid;place-items:center;background:#27314a;border-radius:50%;width:25px;height:25px;flex:0 0 25px;color:#d1dceb;font-weight:800;font-size:11px}.step.done .stepnumber{background:#334a33;color:var(--accent)}
    .question {font-size:23px;letter-spacing:-.035em;font-weight:750;margin:8px 0 24px}.choice{display:flex;text-align:left;align-items:center;gap:14px;width:100%;padding:15px 17px;background:#1d2639;color:#dee7f6;border:1px solid #35415b;border-radius:12px;margin-bottom:11px;transition:.15s}.choice:hover{border-color:#718f77;background:#253044}.choice .letter{display:grid;place-items:center;flex:0 0 26px;height:26px;border:1px solid #66718b;border-radius:7px;font-size:11px;font-weight:800}.choice.right{border-color:#7baa64;background:#263b2d}.choice.wrong{border-color:#a76a70;background:#38292f}.choice:disabled{cursor:default}.feedback{padding:15px 16px;border-radius:12px;background:#28382c;border:1px solid #577653;font-size:13px;color:#c7e3c5;margin:18px 0}.feedback.bad{background:#34282d;border-color:#7a4f59;color:#f0c5ca}
    .quiztop {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;color:var(--muted);font-size:12px}.quiztrack{height:6px;border-radius:10px;background:#2d364d;margin-bottom:28px;overflow:hidden}.quiztrack span{display:block;height:100%;background:var(--accent);transition:.3s}
    .lab-terminal{background:#090d17;border:1px solid #39445d;border-radius:14px;overflow:hidden;margin-top:19px}.laboutput{min-height:230px;max-height:310px;overflow:auto;padding:17px 19px;white-space:pre-wrap;font:13px/1.9 Consolas,monospace;color:#b6cad3}.commandline{display:flex;align-items:center;padding:12px 17px;border-top:1px solid #27354b;gap:9px;color:var(--accent);font:13px Consolas,monospace}.commandline input{background:none;border:none;outline:0;color:#e5f7e5;width:100%;font:inherit;min-width:0}.commandline input:focus{outline:0}
    .instructions{background:#1c2732;border:1px solid #34494b;border-radius:13px;padding:17px 20px;color:#bad0d2;font-size:13px}.instructions ol{margin-bottom:0;padding-left:19px;line-height:1.9}.instructions code{color:var(--accent)}
    .toast{position:fixed;right:22px;bottom:22px;border:1px solid #587a54;background:#233c2a;color:#e8f9e5;padding:12px 18px;border-radius:12px;z-index:5;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;box-shadow:0 16px 34px #0005}.toast.show{opacity:1;transform:none}
    .empty{padding:30px;text-align:center;color:var(--muted);background:#161d2c;border:1px dashed #3c4760;border-radius:14px}.empty b{display:block;color:var(--text);font-size:17px;margin:10px 0}
    .foot{color:#60708a;font-size:11px;text-align:center;margin-top:33px}
    @media(max-width:1000px){.hero{grid-template-columns:1fr}.terminal{max-width:530px;transform:none}.layout-two{grid-template-columns:1fr}.rightbox{display:none}}
    @media(max-width:720px){.layout{grid-template-columns:1fr}.sidebar{height:auto;min-height:0;position:static;padding:16px;gap:12px}.brand{padding:0}.navlabel,.mentor,.profile,.side-spacer{display:none}.nav{flex-direction:row;overflow-x:auto}.navbtn{width:auto;white-space:nowrap;padding:9px 11px}.main{padding:23px 16px 50px}.topbar{margin-bottom:22px}.top-right .pill:first-child{display:none}.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}.module-grid{grid-template-columns:1fr}.hero{padding:24px}.hero .h1{font-size:35px}.panel{padding:19px}}
    /* Interactive beginner's glossary */
    .vocab-teaser{display:flex;align-items:center;gap:19px;border:1px solid #3d5260;border-radius:18px;background:linear-gradient(110deg,#182a32,#172031 65%,#1a2037);padding:24px;margin-top:18px}
    .vocab-teaser-icon{display:grid;place-items:center;background:#263e3d;color:var(--cyan);border:1px solid #3d6a66;border-radius:14px;width:54px;height:54px;flex-shrink:0;font-weight:850;font-size:20px}
    .vocab-teaser-text{flex:1}.vocab-teaser h3{font-size:18px;letter-spacing:-.03em;margin:5px 0 3px}.vocab-teaser p{font-size:12px;color:#9aaac1;line-height:1.6;margin:0}
    .glossary-heading-mark{color:var(--accent)}.glossary-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 30px;border:1px solid #384958;border-radius:19px;background:radial-gradient(circle at 85% 20%,#39706a38,transparent 35%),linear-gradient(115deg,#172b34,#182038 85%);margin:0 0 23px}
    .glossary-kicker{font-size:10px;letter-spacing:.17em;font-weight:800;color:var(--cyan)}.glossary-intro h2{font-size:clamp(22px,3vw,29px);letter-spacing:-.045em;margin:7px 0 7px}.glossary-intro em{font-style:normal;color:var(--accent)}.glossary-intro p{font-size:13px;color:#acbdcd;margin:0}
    .glossary-intro-badge{text-align:center;min-width:128px;border-left:1px solid #506271;padding-left:24px}.glossary-intro-badge strong{display:block;font-size:45px;line-height:1;font-weight:850;color:#dcf4ea;letter-spacing:-.055em}.glossary-intro-badge span{font-size:11px;color:#91aeb2}
    .glossary-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:15px}.glossary-search-label{min-width:0;flex:1;display:flex;align-items:center;gap:10px;border:1px solid #37445f;background:#171f31;border-radius:12px;padding:0 14px;color:#9aadc7;height:48px}.glossary-search-label:focus-within{border-color:#8cae8d;box-shadow:0 0 0 3px #a7f77a12}
    .glossary-search-label>span{font-size:25px;line-height:1}.glossary-search-label input{min-width:0;flex:1;background:transparent;border:0;color:var(--text);outline:0;font-size:13px}.glossary-search-label input:focus{outline:none}.glossary-search-label input::placeholder{color:#7c8ca6}.glossary-search-label kbd{border:1px solid #49536c;background:#273149;border-radius:5px;font-size:11px;padding:1px 7px;color:#a7b3c9}
    .glossary-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:27px}.glossary-filter{border:1px solid #3b465d;background:#192135;color:#aab8c9;border-radius:100px;padding:8px 13px;font-size:12px;font-weight:650}.glossary-filter:hover{color:#e4f1eb;border-color:#69816e}.glossary-filter.active{border-color:#769669;background:#283a2b;color:#bff29f}.glossary-filter .filter-count{opacity:.65;margin-left:3px;font-size:10px}
    .glossary-results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}.glossary-results-head h2{font-size:19px;letter-spacing:-.03em;margin:0}.glossary-results-head span{color:var(--muted);font-size:12px}
    .glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.glossary-card{display:flex;flex-direction:column;gap:13px;min-width:0;border:1px solid #303c55;background:linear-gradient(145deg,#192135,#141b2b);border-radius:15px;padding:20px;transition:border-color .18s,transform .18s}.glossary-card:hover{border-color:#617767;transform:translateY(-2px)}
    .glossary-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.glossary-category{color:#a5cbcb;background:#284047;border:1px solid #3c5c64;padding:4px 9px;border-radius:7px;font-size:10px;font-weight:800;letter-spacing:.04em}.save-term{border:1px solid #3b4761;background:#222d42;color:#8d9ab3;font-size:17px;border-radius:8px;width:33px;height:33px;display:grid;place-items:center}.save-term:hover,.save-term.saved{color:var(--warn);border-color:#7d6c42;background:#363020}
    .glossary-card h3{font-size:21px;letter-spacing:-.045em;margin:0;overflow-wrap:anywhere}.glossary-card p{color:#aab8cb;font-size:13px;line-height:1.7;margin:0}.glossary-example{background:#0e1624;border:1px solid #2d3b50;padding:12px 13px;border-radius:10px;margin-top:auto}.glossary-example span{display:block;color:#89a1a9;font-size:10px;letter-spacing:.11em;font-weight:800;margin-bottom:6px}.glossary-example code{font:12px/1.7 Consolas,monospace;color:#b5e6ca;white-space:pre-wrap;overflow-wrap:anywhere}.glossary-example p{font-size:12px;color:#bfccd8;line-height:1.55}
    .glossary-empty{border:1px dashed #4a5872;border-radius:16px;text-align:center;padding:35px 22px;background:#172033}.glossary-empty strong{font-size:18px}.glossary-empty p{color:#9faec2;margin:5px 0 19px}.glossary-more-wrap{text-align:center;margin:22px 0}.glossary-footnote{font-size:12px;color:#7f8ea6;margin-top:25px}
    .glossary-study{padding:22px;background:linear-gradient(140deg,#172636,#20203a);border:1px solid #56687c;border-radius:18px;margin:6px 0 29px}.glossary-study[hidden],.glossary-empty[hidden],.glossary-more-wrap[hidden],.flashcard-answer[hidden]{display:none!important}.study-head{display:flex;align-items:flex-start;justify-content:space-between}.study-head h2{margin:4px 0 15px;font-size:20px}.study-close{background:#273349;border:1px solid #41506a;border-radius:8px;color:#c3cfe0;width:34px;height:34px}.study-meta{display:flex;justify-content:space-between;font-size:12px;color:#9db3bf;margin-bottom:11px}
    .flashcard{width:100%;min-height:220px;border:1px solid #4e6a6d;border-radius:14px;background:radial-gradient(circle at 50% 25%,#31525150,transparent 64%),#101f2b;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;text-align:center;color:var(--text);padding:30px 20px;transition:border-color .18s}.flashcard:hover{border-color:#84af9b}.flashcard-hint{color:#87adac;font-size:10px;letter-spacing:.16em;font-weight:850}.flashcard strong{font-size:clamp(27px,4vw,40px);letter-spacing:-.05em}.flashcard-answer{font-size:15px;color:#d2e2dc;max-width:650px;line-height:1.7}.flashcard-tap{color:#89a3b3;font-size:12px}.study-actions{display:flex;justify-content:space-between;gap:12px;margin-top:14px}
    @media(max-width:900px){.glossary-grid{grid-template-columns:1fr}.glossary-intro{padding:23px}}
    @media(max-width:620px){.vocab-teaser{align-items:flex-start;flex-wrap:wrap}.vocab-teaser .btn{width:100%}.glossary-toolbar{flex-direction:column;align-items:stretch}.glossary-search-label{width:100%;min-height:48px;flex:auto}.glossary-intro-badge{min-width:82px;padding-left:14px}.glossary-intro-badge strong{font-size:35px}.glossary-intro h2{font-size:22px}.glossary-intro p{font-size:12px}.glossary-study{padding:15px}.flashcard{min-height:205px;padding:22px 12px}}
    /* Prevent the horizontal navigation row from expanding the mobile page. */
    @media(max-width:720px){
      .layout{grid-template-columns:minmax(0,1fr)}
      .sidebar,.main,.sidebar>div{min-width:0}
      .nav{min-width:0;max-width:100%}
      .hero{grid-template-columns:minmax(0,1fr)}
      .terminal{min-width:0;width:100%}
    }

    /* Linux course: extended responsive lesson catalogue */
    .linux-banner{padding:25px 29px;border:1px solid #436158;border-radius:19px;background:radial-gradient(circle at 95% 0,#8ccc6540,transparent 40%),linear-gradient(115deg,#1b2d31,#182133);display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:18px}
    .linux-banner h2{font-size:22px;margin:5px 0 6px;letter-spacing:-.04em}.linux-banner p{color:#a9bdc5;font-size:13px;margin:0;max-width:520px}.linux-badge{border:1px solid #657f57;border-radius:12px;padding:11px 15px;color:#c9f7ab;background:#2b3d2b;font-size:11px;min-width:115px;text-align:center;font-weight:800;white-space:nowrap}
    .topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 20px}.topic-tile{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 14px;border:1px solid #33415b;background:#1b2538;color:#d4dfeb;border-radius:12px;min-width:0}.topic-tile:hover{border-color:#7d9b79}.topic-tile.active{background:#27392e;border-color:#7daa6d}.topic-tile .number{color:#8498b1;font-size:12px;font-weight:850}.topic-tile .text{display:block;flex:1;min-width:0}.topic-tile strong{display:block;font-size:12px}.topic-tile small{display:block;color:#99a8bd;font-size:10px;margin-top:2px}.topic-tile .tick{color:#b8f39d;font-size:14px}
    .lesson-body{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:18px}.lesson-panel{min-width:0}.article-title{font-size:clamp(25px,3vw,34px);line-height:1.19;letter-spacing:-.045em;margin:8px 0}.topic-description{color:#a9bacc;line-height:1.7;font-size:14px;margin:0 0 19px}.objective{border:1px solid #45615d;background:#1b302f;border-radius:12px;padding:15px 17px;margin:15px 0 23px}.objective strong{font-size:11px;color:#8de9d5;letter-spacing:.1em}.objective p{font-size:13px;color:#c6dfdb;margin:6px 0 0;line-height:1.7}
    .cmd-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:23px 0 12px}.cmd-header h3{font-size:17px;margin:0}.cmd-header small{font-size:12px;color:#8899b1}
    .command-card{border:1px solid #34435a;background:linear-gradient(130deg,#1a2638,#172134);border-radius:13px;padding:16px 17px;margin-bottom:10px}.command-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.command-card-head code{font:700 19px Consolas,monospace;color:#bbf694}.command-card-head span{color:#91a5b9;font-size:11px}.command-card p{color:#bdcbdd;font-size:13px;margin:8px 0}.command-card .copyrow{margin:11px 0 9px}.expected{border-top:1px solid #344158;padding-top:10px;white-space:pre-wrap;color:#90dec4;font:12px/1.65 Consolas,monospace}.tip{font-size:12px;color:#a8b7c8;margin-top:11px;line-height:1.6}.concept-list{display:grid;gap:8px}.concept{border:1px solid #33465e;border-radius:10px;padding:12px 14px;color:#bdcbd8;font-size:12px;background:#192436;display:flex;gap:12px}.concept::before{content:'✦';color:#adf58d}
    .lesson-actions{margin-top:24px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.topic-sidebar{position:sticky;top:23px;height:fit-content}.mini-progress{margin-top:13px;font-size:12px;color:#acbfcb}.mini-progress .bar{margin-top:9px}.resource-link{display:block;border:1px solid #3a5060;border-radius:10px;padding:11px 12px;text-decoration:none;font-size:12px;color:#cbe1e9;margin-top:8px;background:#1d2c3d}.resource-link:hover{border-color:#8bb89c;color:white}
    .quiz-topic-select{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:21px}.quiz-topic-select .tab{text-align:left;display:flex;justify-content:space-between}.quiz-topic-select .tab span{color:#a5d9a2}
    .quiz-rule{font-size:12px;color:#b0bfd1;line-height:1.7}.lab-select{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}.lab-select .tab{flex:1;min-width:136px}.mission-tag{display:inline-block;font-size:10px;color:#acdbd8;letter-spacing:.13em;font-weight:800;margin-bottom:5px}.lab-mission-title{font-size:24px;letter-spacing:-.04em;margin:4px 0}.lab-mission-lead{font-size:13px;color:#aabaca;line-height:1.6;margin-bottom:17px}.mission-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mission-meta .pill{font-size:10px;padding:5px 9px}.sim-badge{font-size:11px;color:#a8c4b2;background:#26382c;border:1px solid #55725b;padding:6px 10px;border-radius:8px}
    .nano-backdrop{position:fixed;inset:0;background:#02050acc;z-index:15;display:none;align-items:center;justify-content:center;padding:17px}.nano-backdrop.open{display:flex}.nano-dialog{width:min(700px,100%);background:#111c29;border:1px solid #5c776d;border-radius:18px;padding:21px;box-shadow:0 25px 80px #0009}.nano-dialog h2{font-size:20px;margin:0}.nano-dialog p{font-size:12px;color:#aac0cb}.nano-dialog textarea{width:100%;height:245px;border-radius:11px;border:1px solid #435d5a;background:#081521;padding:15px;color:#c7f6d1;font:14px/1.7 Consolas,monospace;resize:vertical}.nano-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:13px}
    .lab-status{border:1px solid #39534b;background:#1a2928;border-radius:11px;padding:12px 14px;margin-top:15px}.lab-status small{color:#a3bfbb}.lab-status strong{color:#bdf7a0}.small-note{font-size:12px;color:#8fa4b7;margin-top:14px}.lesson-panel .video-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:13px;background:linear-gradient(105deg,#1c3036,#202842);border:1px solid #3d555e;text-decoration:none}.video-card:hover{border-color:#83af9a}.video-card .play-circle{width:43px;height:43px;background:#b0f484;color:#182018;border-radius:50%;display:grid;place-items:center;font-size:17px}.video-card strong{display:block;font-size:13px}.video-card small{color:#a2bdc6;font-size:11px}
    @media(max-width:1100px){.lesson-body{grid-template-columns:1fr}.topic-sidebar{position:static}.topic-sidebar .rightbox{display:block}}
    @media(max-width:700px){.topic-grid,.quiz-topic-select{grid-template-columns:1fr}.linux-banner{padding:20px;align-items:start}.linux-badge{display:none}.command-card{padding:14px}.lesson-actions .btn{flex:1}.lab-select .tab{min-width:calc(50% - 6px)}.nano-dialog{padding:14px}}

  
    .case-outcome{margin-top:12px!important;padding-top:12px;border-top:1px solid #52636a55;color:#e2eaf0!important}
    .case-outcome strong{display:block;color:var(--accent)!important;letter-spacing:.12em;font-size:10px;margin-bottom:5px}
    .case-workflow{padding:17px 19px;border:1px solid #374a62;background:#161e2f;border-radius:13px;margin-bottom:15px}
    .case-workflow ol{margin:9px 0 0;padding-left:21px;color:#bbc9d8;line-height:1.85;font-size:13px}
    .case-workflow li+li{margin-top:3px}

  
.toolkit-group{border:1px solid #36465c;background:#162235;border-radius:15px;margin:11px 0;overflow:hidden}
.toolkit-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 19px}
.toolkit-group>summary::-webkit-details-marker{display:none}
.toolkit-group>summary strong{display:block;font-size:15px;color:#ebf4e9}
.toolkit-group>summary small{display:block;font-size:12px;color:#99acc2;margin-top:4px}
.toolkit-group>summary b{font-size:11px;color:#a9f18e;white-space:nowrap}
.toolkit-group[open]>summary{border-bottom:1px solid #33445a;background:#1a2d32}
.toolkit-inner{padding:14px}.toolkit-inner .command-card:last-child{margin-bottom:0}
.diagnosis-panel{border:1px solid #365260;background:#172938;padding:17px;border-radius:13px;margin-top:18px}
.diagnosis-panel h3{font-size:17px;margin:7px 0 4px}.diagnosis-panel p{font-size:12px;color:#aabed0;margin:0 0 14px}
.diagnosis-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.diagnosis-choices button{font:inherit;font-size:12px;text-align:left;border:1px solid #3c5065;background:#1a2a3d;color:#cbd9e9;padding:12px;border-radius:10px;min-height:52px}
.diagnosis-choices button:hover{border-color:#91b68c}.diagnosis-choices button.selected{border-color:#a7f77a;background:#28402f;color:#e7ffdc}
.lab-select .tab{min-width:154px;white-space:normal;line-height:1.4;text-align:left}
@media(max-width:700px){.diagnosis-choices{grid-template-columns:1fr}.toolkit-group>summary{align-items:start}.lab-select .tab{min-width:calc(50% - 5px)}}

/* Guided practice: task first, output second, explanation after action */
.topic-tile:disabled{cursor:not-allowed;opacity:.46}
.trainer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.trainer-stage-badge{color:#9eeac3;border:1px solid #4b7362;background:#1a3833;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800;white-space:nowrap;margin-top:5px}
.trainer-progress{display:flex;align-items:center;gap:24px;background:#1a2636;border:1px solid #344457;border-radius:12px;padding:15px 18px;margin:15px 0 13px}
.trainer-progress>div:first-child{flex:1}.trainer-progress strong{font-size:14px;display:block}.trainer-progress small{display:block;color:#93aabc;font-size:11px;margin-top:3px}
.trainer-progress-track{height:7px;background:#324052;border-radius:9px;flex:0 0 33%;overflow:hidden}.trainer-progress-track span{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#83d9c4,#a7f77a);transition:width .2s}
.trainer-command-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:#bdc9d4;padding:7px 2px 16px}
.trainer-command-context span{font-size:10px;color:#92a3b6;font-weight:800;letter-spacing:.12em}
.trainer-command-context strong{font:12px Consolas,monospace;color:#b7ee98}
.trainer-terminal{background:#0a111d;border:1px solid #39485a;border-radius:14px;overflow:hidden}
.trainer-output{padding:20px;max-height:305px;min-height:140px;overflow:auto;font:12px/1.8 Consolas,'Courier New',monospace;color:#d1e0e6;white-space:normal;overflow-wrap:anywhere}
.trainer-output .trainer-greeting{color:#7ad8b8;margin-bottom:7px}.trainer-empty{color:#72879d;font-style:italic}
.trainer-line{margin-top:13px;color:#e5ebf3}.trainer-prompt{color:#93e6aa}.trainer-pre{white-space:pre-wrap;margin:7px 0 0;line-height:1.65;color:#aebfce}.trainer-why{margin-top:7px;color:#a8e5bb;font:12px/1.6 Inter,system-ui,sans-serif}
.trainer-current{border:1px solid #4b6863;background:linear-gradient(145deg,#233a39,#1a2c3e);border-radius:15px;padding:19px 21px;margin:19px 0 12px}.trainer-number{font-size:10px;color:#9de6cf;font-weight:850;letter-spacing:.15em}.trainer-current h3{margin:7px 0;font-size:19px;letter-spacing:-.03em}.trainer-current p{margin:0;font-size:13px;color:#b4ced0;line-height:1.7}
.trainer-form{border:1px solid #4a6270;background:#0b1422;border-radius:11px;display:flex;align-items:center;gap:9px;padding:7px 8px 7px 14px;min-width:0}
.trainer-form>span{font:12px Consolas,monospace;color:#8eeebc;white-space:nowrap}.trainer-form input{border:0;outline:0!important;color:#ecf3f8;background:transparent;flex:1;min-width:0;font:13px Consolas,monospace;padding:9px 0}.trainer-form .btn{padding:9px 13px;white-space:nowrap}
.trainer-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.trainer-tools .btn{padding:8px 12px;font-size:12px}.trainer-tools span{color:#889bb1;font-size:11px}.trainer-hint{background:#252b3b;border:1px solid #465b6c;color:#e0dfb4;border-radius:10px;padding:13px 16px;font-size:13px;margin-top:12px}
.trainer-feedback{font-size:12px;color:#f2bcaa;line-height:1.7;margin-top:10px;min-height:5px}
.trainer-review{background:#1b293c;border:1px solid #40546a;border-radius:14px;padding:24px;margin-top:18px}.trainer-review h3{font-size:19px;margin:10px 0 18px}.trainer-answers{display:grid;gap:10px}.trainer-answer{background:#222f45;color:#dce6f0;border:1px solid #3d5168;border-radius:10px;text-align:left;padding:13px 16px}.trainer-answer:hover:not(:disabled){border-color:#a7f77a}.trainer-answer.right{border-color:#84cba0;background:#274337;color:#c9f7d3}.trainer-review-feedback{color:#f0c49a;font-size:13px;margin:11px 0}.trainer-done{border:1px solid #437a5d;background:#1d382d;border-radius:12px;padding:13px;color:#c0eecd;font-size:13px;margin:12px 0}.trainer-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:22px;font-size:12px;color:#a2b2c5}.trainer-bottom details{flex:1;min-width:220px}.trainer-bottom summary{cursor:pointer}.trainer-bottom p{line-height:1.7}
.trainer-editor-backdrop{position:fixed;z-index:4000;inset:0;display:grid;place-items:center;background:#060c16db;padding:14px}.trainer-editor-dialog{width:min(750px,100%);max-height:95vh;overflow:auto;background:#152438;border:1px solid #728b7a;border-radius:17px;padding:25px;box-shadow:0 24px 70px #0009}.trainer-editor-dialog h3{margin:6px 0;font-size:23px}.trainer-editor-dialog p{color:#bdcbd4;font-size:13px;line-height:1.7}.trainer-editor-dialog textarea{width:100%;resize:vertical;min-height:230px;max-height:40vh;display:block;color:#c4f5af;background:#09131e;border:1px solid #3c5d56;border-radius:10px;padding:15px;font:13px/1.6 Consolas,monospace}.trainer-editor-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:13px}#trainer-editor-error{color:#ffb6a8;font-size:12px;margin-top:9px}
@media(max-width:700px){.trainer-header{flex-direction:column}.trainer-progress{gap:12px;align-items:flex-start;flex-direction:column}.trainer-progress-track{flex:none;width:100%}.trainer-form{flex-wrap:wrap}.trainer-form>span{font-size:11px}.trainer-form input{flex-basis:100%;order:2}.trainer-form .btn{order:3;width:100%}.trainer-output{padding:14px}.trainer-review{padding:16px}}

/* Kofe//Lab v0.8: explanation-first guided study; no solution spoilers in incident briefs */
.learning-note{border:1px solid #345361;background:linear-gradient(130deg,#172b32,#182332);border-radius:17px;padding:20px;margin:20px 0}
.learning-note h3{margin:5px 0 10px;font-size:20px;letter-spacing:-.02em;color:#e6f4ed}
.learning-note p{font-size:13px;line-height:1.75;color:#c3d0dc;margin:8px 0}
.learning-principle{border-left:3px solid #a7f77a;background:#1a3034;border-radius:0 9px 9px 0;padding:12px 14px;margin:15px 0}
.learning-principle strong{font-size:12px;color:#bcf3a2}
.learning-principle p{margin:5px 0 0}
.learning-example{border:1px solid #445669;border-radius:11px;background:#13202c;margin:14px 0;padding:0 12px}
.learning-example summary,.trainer-reference summary{cursor:pointer;color:#a8e5c5;font-weight:650;font-size:12px;line-height:1.6;padding:12px 0}
.learning-example pre{white-space:pre-wrap;word-break:break-word;padding:13px;background:#0e151e;color:#ddf3dd;border-radius:9px;line-height:1.65;font-size:12px}
.learning-example p{margin:10px 0 14px}
.learning-note .learning-pitfall{font-size:12px;color:#d9c5a7;margin-top:11px}
.trainer-reference{border:1px solid #34475c;border-radius:11px;margin:12px 0;padding:0 12px;color:#acbdd3}
.trainer-reference p{font-size:12px;line-height:1.7}
#diagnosis-choices[hidden],#sim-diagnosis[hidden]{display:none!important}
#lab-diagnose-reveal,#sim-reveal-diagnosis{width:100%;margin:9px 0 12px}
#lab-diagnose-reveal:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:700px){.learning-note{padding:15px}.learning-note h3{font-size:18px}}

/* Kofe//Lab v0.9 — neon palette, journey timeline and external challenge experience */
:root{--bg:#080a16;--surface:#101427;--surface2:#151a32;--surface3:#212447;--text:#f3f1ff;--muted:#9b9dbd;--line:#2d3152;--accent:#64f6df;--cyan:#64f6df;--purple:#cb87ff;--warn:#ffc98d}
body{background:radial-gradient(ellipse at 83% 0%,rgba(187,64,237,.17),transparent 33%),radial-gradient(ellipse at 2% 32%,rgba(36,218,207,.09),transparent 35%),var(--bg)}
.sidebar{background:linear-gradient(175deg,rgba(17,17,39,.99),rgba(10,12,28,.98));border-right:1px solid #49385e}
.brandmark{background:linear-gradient(135deg,#67fbe4,#b38cff);color:#081322;box-shadow:0 0 24px #56f8e449}
.navbtn.active{box-shadow:inset 3px 0 var(--accent),0 0 16px #56f8e416;background:#22243e}
.eyebrow{color:var(--accent)}.btn.primary{background:linear-gradient(135deg,#6cf5df,#8dcbf5);color:#091625;box-shadow:0 5px 24px #67f5d52b}
.hero{background:radial-gradient(circle at 85% 0%,#67328850,transparent 48%),linear-gradient(120deg,#151a32,#111427)}
.pill.xp{color:#86fbe4;border-color:#326b70;background:#142b35}
.journey-rail{padding:13px 13px 3px;max-height:39vh;overflow:auto;border-top:1px solid #34304d;border-bottom:1px solid #34304d}
.journey-head{font-size:10px;font-weight:850;letter-spacing:.14em;color:#a99ec7;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.journey-head b{font-size:11px;color:#7df8ea;letter-spacing:0}
.journey-steps{border-left:2px solid #343857;margin-left:7px;display:flex;flex-direction:column;gap:0}
.journey-step{position:relative;display:flex;align-items:center;width:100%;background:transparent;border:0;color:#8c91af;text-align:left;padding:5px 5px 7px 17px;font-size:11px;font-weight:550;min-height:29px}
.journey-step::before{content:'';position:absolute;left:-7px;top:10px;width:11px;height:11px;background:#242945;border:2px solid #585b78;border-radius:50%}
.journey-step.done{color:#c6faee}.journey-step.done::before{background:#67ebdd;border-color:#67ebdd;box-shadow:0 0 12px #67f3de77}
.journey-step.current{color:white;font-weight:750}.journey-step.current::before{border-color:#d4a2ff;background:#bd72f5;box-shadow:0 0 0 4px #bb6af329,0 0 12px #b56efa80}
.journey-step:hover{color:white}.journey-step .journey-tail{margin-left:auto;font-size:10px;opacity:.85}
.external-dashboard-banner{border:1px solid #514077;border-radius:18px;background:linear-gradient(110deg,#1d1839,#171c36 65%,#142b32);padding:22px;display:flex;align-items:center;gap:19px;margin-top:22px;box-shadow:0 15px 65px #180f3425}
.external-banner-art{width:62px;height:62px;flex:none;border:1px solid #9d83c7;background:#53377b66;border-radius:18px;display:grid;place-items:center;font-size:38px;color:#9efded;box-shadow:0 0 25px #8e6ed22d}
.external-dashboard-banner>div:nth-child(2){flex:1}.external-dashboard-banner h2{font-size:19px;margin:3px 0 4px}.external-dashboard-banner p{color:#b4b0ce;font-size:12px;max-width:480px;margin:0}.external-dashboard-banner .btn{flex:none}
.lesson-external-link{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0 10px;border-radius:13px;padding:15px 17px;background:#1b1938;border:1px solid #443665;color:#d0c7e7;font-size:13px}
.external-hero{border-radius:22px;border:1px solid #5b4880;display:grid;grid-template-columns:1.25fr .85fr;gap:20px;padding:33px;background:radial-gradient(circle at 78% 12%,#9748bd36,transparent 54%),linear-gradient(130deg,#1d1a39,#121827);overflow:hidden}
.external-partner{font:800 10px/1.3 ui-monospace,monospace;letter-spacing:.15em;color:#9cf9e7}.external-hero h2{font-size:clamp(26px,4vw,40px);letter-spacing:-.045em;line-height:1.15;margin:12px 0 14px}.external-hero h2 em{font-style:normal;color:#cf90fb}.external-hero p{font-size:13px;color:#bab8d6;line-height:1.85;max-width:580px}
.external-hero-foot{display:flex;gap:14px;flex-wrap:wrap;color:#a2acc9;font-size:10px;margin-top:20px}.external-hero-display{border:1px solid #453e6b;border-radius:13px;background:#0a1023;align-self:center;min-height:172px;box-shadow:0 15px 33px #08091a88;transform:rotate(-2deg)}.external-display-top{border-bottom:1px solid #302b51;padding:11px 15px;color:#ae9dd0;letter-spacing:.12em;font:700 10px ui-monospace,monospace}.live-pulse{display:inline-block;border-radius:50%;width:7px;height:7px;background:#6df9dd;box-shadow:0 0 12px #71f9de}.external-terminal-lines{padding:22px;font:12px/2.1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#dbdafa}.external-terminal-lines .line-quiet{color:#9190b5}.external-terminal-lines .line-green{color:#83f5de}
.external-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 21px}.external-metrics>div{padding:18px;border:1px solid #343452;border-radius:13px;background:#15182d}.external-metrics strong{font-size:20px;display:block;color:#d4a5ff}.external-metrics small{display:block;color:#979cba;font-size:11px;margin-top:4px}
.external-workflow{display:flex;flex-wrap:wrap;align-items:center;gap:11px;color:#b4b3d4;border:1px solid #393253;border-radius:12px;background:#16162c;padding:14px 16px;font-size:12px}.external-workflow b{color:#73ecd9;font-size:10px;margin-right:5px}.external-flow-arrow{color:#9c7bb9}
.external-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:30px 0 16px}.external-toolbar h2{margin:0 0 5px;font-size:21px}.external-toolbar p{margin:0;font-size:12px;color:#9b9fbd}.external-filters{display:flex;align-items:center;gap:5px;border:1px solid #393451;padding:4px;border-radius:13px;background:#15182a}.external-filter{border:0;border-radius:9px;background:transparent;color:#b1a9cc;font-size:12px;font-weight:700;padding:8px 12px}.external-filter.active{color:#091921;background:#79f6df}
.external-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.external-card{background:linear-gradient(155deg,#1a1c35,#111527);border:1px solid #363752;border-radius:17px;padding:21px;display:flex;flex-direction:column;gap:13px;min-height:265px;transition:transform .18s,border-color .18s}.external-card:hover{transform:translateY(-2px);border-color:#8063ad}.external-card.completed{border-color:#3e786d}.external-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.external-stage{font:800 10px ui-monospace,monospace;color:#80efd9;letter-spacing:.12em;text-transform:uppercase}.external-card-number{color:#76758e;font:700 12px ui-monospace,monospace}.external-card h3{font-size:19px;line-height:1.2;margin:0;letter-spacing:-.03em}.external-card p{font-size:12px;line-height:1.75;color:#a8acc6;margin:0}.external-tags{display:flex;flex-wrap:wrap;gap:6px}.external-tag{padding:4px 8px;border:1px solid #49405f;border-radius:20px;font-size:10px;color:#c1b9d4}.external-tag.prereq{border-color:#32635d;color:#93efd7}.external-tag.later{border-color:#5d4b68;color:#d8b7df}.external-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.external-card-link{border-radius:9px;border:1px solid #3d807b;color:#8ef6e3;background:#173238;text-decoration:none;padding:9px 12px;font-size:12px;font-weight:750}.external-card-link:hover{background:#23505a}.external-card-link:focus-visible{outline:2px solid #aafbe9}.external-complete{display:flex;align-items:center;gap:7px;color:#aab5c6;font-size:11px;cursor:pointer}.external-complete input{accent-color:#78f5dc;width:16px;height:16px}.external-complete input:focus-visible{outline:2px solid #aafbe9}.external-disclaimer{margin:25px 0 0;color:#858eae;font-size:11px;line-height:1.8;border-top:1px solid #333751;padding-top:15px}.external-empty{padding:26px;border:1px dashed #595077;border-radius:13px;color:#b6afd0;font-size:13px}
@media(max-width:1040px){.external-hero{grid-template-columns:1fr}.external-hero-display{transform:none;max-width:550px}.external-grid{grid-template-columns:1fr}.external-toolbar{align-items:start;flex-wrap:wrap}}
@media(max-width:720px){.journey-rail{display:none}.external-dashboard-banner{align-items:flex-start;flex-wrap:wrap}.external-dashboard-banner .btn{width:100%}.external-metrics{grid-template-columns:1fr}.external-workflow{gap:7px}.external-flow-arrow{display:none}.external-workflow span:not(.external-flow-arrow){flex:1 1 43%}.external-hero{padding:23px}.external-grid{grid-template-columns:1fr}}



/* Kofe//Lab v1.0 correction: learning-first UI, no gamification or parallel pages */
.layout{grid-template-columns:230px 44px minmax(0,1fr)}
.sidebar{min-height:0;gap:26px;padding:26px 16px 20px;border-right:0;box-shadow:none}
.navlabel{font-size:10px}
.navbtn{font-size:13px;padding:11px 12px}
.reset-only{margin-top:auto;background:transparent;color:#9ea6ba;border:1px solid #333654;border-radius:10px;padding:11px 9px;font-size:12px;text-align:center}
.reset-only:hover{color:#fff;border-color:#a77bec;background:#23203e}
.course-rail{position:sticky;top:0;height:100vh;background:#0d1021;border-left:1px solid #282c48;border-right:1px solid #282c48;display:flex;flex-direction:column;align-items:center;padding:20px 0;min-width:0;z-index:3}
.course-rail-count{color:#99a1bf;font:700 9px/1.2 ui-monospace,SFMono-Regular,monospace;white-space:nowrap;letter-spacing:-.03em;margin:0 0 16px}
.course-rail-dots{position:relative;width:100%;overflow-y:auto;scrollbar-width:none;min-height:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:8px 0;flex:1}
.course-rail-dots::-webkit-scrollbar{display:none}
.course-rail-dots:before{content:'';position:absolute;top:14px;bottom:14px;left:50%;width:2px;background:#313653;transform:translateX(-50%);pointer-events:none}
.course-dot{position:relative;flex:0 0 17px;width:13px;height:17px;border:0;background:transparent;display:grid;place-items:center;padding:0;z-index:1}
.course-dot:before{content:'';width:7px;height:7px;border-radius:50%;border:1.5px solid #626988;background:#151831;transition:all .15s}
.course-dot.done:before{background:#65eddc;border-color:#65eddc;box-shadow:0 0 7px #54f6cf75}
.course-dot.current:before{width:10px;height:10px;background:#c38bfa;border-color:#e0b5ff;box-shadow:0 0 0 4px #bc7efa30,0 0 11px #b67beb}
.course-dot:focus-visible{outline:2px solid #9ffdea;outline-offset:1px;border-radius:5px}
.course-dot:hover:before{border-color:#d9a4ff}
.course-dot.group-break{margin-top:10px}
.topbar{margin-bottom:24px}.main{padding:29px clamp(22px,3.8vw,68px) 60px;max-width:1430px}
.screen-header h1{font-size:clamp(27px,3.2vw,39px);letter-spacing:-.035em}
.screen-header p{max-width:790px;line-height:1.7}
.lesson-context{font-size:13px;color:#8797b2;margin-top:8px!important}
.lesson-body{grid-template-columns:minmax(0,1fr)}
.lesson-panel{max-width:100%}
.lesson-sadservers{margin:23px 0 6px;display:none}
.lesson-sadservers.visible{display:block}
.lesson-sadservers h2{margin:0 0 5px;font-size:18px;letter-spacing:-.02em}
.lesson-sadservers p.intro{font-size:12px;color:#a3abc3;margin:0 0 16px}
.sadservers-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.sadservers-card{padding:18px;background:linear-gradient(125deg,#171d35,#13182e);border:1px solid #363a62;border-radius:15px;display:flex;flex-direction:column;gap:8px}
.sadservers-card strong{font-size:15px}.sadservers-card p{font-size:12px;color:#9fa8c0;line-height:1.65;margin:0;flex:1}
.sadservers-meta{display:flex;flex-wrap:wrap;gap:8px;color:#9db0c7;font-size:10px}
.sadservers-meta span{background:#22283f;padding:4px 7px;border-radius:6px}
.sadservers-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:8px;flex-wrap:wrap}
.sadservers-actions a{font-size:12px;font-weight:750;text-decoration:none;color:#7af3e4}
.sadservers-actions a:hover{text-decoration:underline}
.sadservers-actions label{font-size:11px;color:#b5b6ce;display:flex;align-items:center;gap:6px;cursor:pointer}
.sadservers-actions input{accent-color:#6ef3da}
.lesson-resources{margin:20px 0;padding:14px 17px;background:#14192d;border:1px solid #2f3553;border-radius:12px;color:#acb9d1;font-size:12px}
.lesson-resources a{display:block;margin-top:10px;color:#75e5d9}
.crumb{color:#c3cbe0}
@media(max-width:720px){
 .layout{grid-template-columns:1fr}
 .sidebar{height:auto;position:static;gap:12px;padding:13px 16px 8px;display:flex}
 .sidebar .navlabel{display:none}
 .nav{flex-direction:row;gap:5px;overflow-x:auto}
 .navbtn{flex:none;white-space:nowrap;font-size:12px;padding:9px 10px}
 .reset-only{margin-top:0;align-self:flex-end;padding:8px 10px;font-size:11px}
 .course-rail{height:36px;width:100%;position:sticky;top:0;padding:0 9px;flex-direction:row;z-index:30;border-left:0;border-right:0;border-top:1px solid #323451;border-bottom:1px solid #323451;gap:10px}
 .course-rail-count{margin:0;min-width:30px}
 .course-rail-dots{height:100%;width:auto;flex:1;min-width:0;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:0 5px;justify-content:flex-start}
 .course-rail-dots:before{left:10px;right:10px;top:50%;bottom:auto;width:auto;height:2px;transform:translateY(-50%)}
 .course-dot{flex:0 0 15px;width:15px;height:26px}
 .course-dot.group-break{margin:0 0 0 7px}
 .main{padding:22px 15px 45px}
 .topic-sidebar{display:none}
}



.storage-note{border:1px solid #3c6759;border-radius:16px;background:linear-gradient(110deg,#18382f,#1b2635);padding:18px 20px;margin:3px 0 20px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.storage-note strong{color:#d8f6e5;font-size:14px;display:block;margin-bottom:5px}.storage-note p{color:#a9c0b9;font-size:12px;line-height:1.65;margin:0}
.storage-flow{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.storage-flow span{display:inline-block;border:1px solid #466c62;background:#213f3b;padding:7px 9px;border-radius:8px;color:#d4f2df;font-size:11px;font-weight:650}
.storage-flow b{font-weight:500;color:#85bca4}
@media(max-width:850px){.storage-note{grid-template-columns:1fr}.storage-flow{justify-content:flex-start}}




/* Kofe//Lab v1.1: one curriculum, no separate quiz/lab catalogue */
:root{--accent:#66edd8;--cyan:#69dce8;--purple:#bc91fc;--bg:#090c19;--surface:#111729;--surface2:#171e33;--line:#293752}
.layout{grid-template-columns:245px 38px minmax(0,1fr)}
.sidebar{padding:24px 13px 18px;gap:15px;overflow:hidden}
.brand{padding:0 10px 14px;border-bottom:1px solid #29334b}
.brandmark{background:#68e8d2;color:#071a22;box-shadow:0 0 22px #68e8d23d}
.brand strong{letter-spacing:.045em;font-size:17px}
.outline-label{padding:5px 12px 0;font-size:10px;letter-spacing:.14em;color:#929bb4;font-weight:750}
.course-outline{min-height:0;flex:1;overflow:auto;display:flex;flex-direction:column;gap:3px;padding:0 3px 6px;scrollbar-width:thin;scrollbar-color:#333b57 transparent}
.course-entry{width:100%;border:1px solid transparent;border-radius:10px;background:transparent;color:#a4aec5;display:flex;gap:10px;align-items:center;text-align:left;padding:10px 9px;min-height:49px}
.course-entry:hover{background:#1b243a;color:#e6f1f5}
.course-entry.current{background:#192c37;color:#f3ffff;border-color:#2c6567}
.course-entry.is-locked{opacity:.53}
.entry-icon{min-width:22px;height:23px;display:grid;place-items:center;border-radius:6px;background:#202a40;color:#9cabc4;font:700 10px ui-monospace,monospace}
.course-entry.completed .entry-icon{background:#18463e;color:#79efcc}
.course-entry.is-incident .entry-icon{background:#332946;color:#d2aeff}
.entry-text{min-width:0;flex:1;display:block}
.entry-text strong{display:block;font-size:12px;font-weight:650;line-height:1.3}
.entry-text small{display:block;font-size:10px;color:#8294aa;margin-top:2px}
.entry-state{font-size:13px;color:#77e4ca}
.utility-nav{padding:10px 3px;border-top:1px solid #28334d}
.utility-link{border:none;background:transparent;color:#aeb8c9;text-align:left;font-size:12px;padding:10px 12px;width:100%;border-radius:9px}
.utility-link:hover{color:white;background:#1b243a}
.reset-only{margin:0 3px 0;padding:10px;border-color:#303956}
.course-rail{background:transparent;border-left:0;border-right:1px solid #273048;padding:18px 0}
.course-rail-count{font-size:8px;color:#8695b4;margin-bottom:10px}
.course-rail-dots:before{background:#3a455e;width:1.5px}
.course-dot{flex-basis:27px;height:27px;width:21px}
.course-dot:before{width:7px;height:7px;background:#121e30}
.course-dot.done:before{background:#64e6c8;border-color:#64e6c8}
.course-dot.current:before{background:#c393fc;border-color:#c393fc}
.course-dot.group-break{margin-top:4px}
.main{max-width:1270px;padding:30px clamp(20px,4vw,70px) 80px}
.topbar{margin-bottom:28px}.crumb{font-size:12px}
.course-heading{margin-bottom:24px}
.course-kicker{color:#7edbcf;font:700 11px ui-monospace,monospace;letter-spacing:.12em}
.course-heading h1{font-size:clamp(27px,3.3vw,43px);letter-spacing:-.04em;line-height:1.16;margin:9px 0}
.course-heading p{color:#9aa9c2;font-size:14px;max-width:760px;line-height:1.7;margin:0}
.chapter-steps{display:flex;gap:6px;border:1px solid #2b3850;background:#111728;padding:6px;border-radius:13px;margin-bottom:19px;max-width:700px}
.chapter-step{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;padding:11px 8px;border:1px solid transparent;border-radius:9px;background:transparent;color:#91a2bd;font-weight:650;font-size:12px}
.chapter-step b{font:600 10px ui-monospace,monospace;color:#7e89a5}
.chapter-step.active{color:#f2ffff;border-color:#3b6770;background:#1b303d}
.chapter-step.complete:not(.active){color:#6de1cb}
.chapter-step.locked:not(.active){opacity:.42}
.chapter-panel{max-width:850px}
.chapter-panel[hidden],#practice-wrap[hidden],#lesson-completed-actions[hidden]{display:none!important}
.concept-card{border:1px solid #2e3e59;background:linear-gradient(125deg,#141e32,#11192b);border-radius:17px;padding:24px;margin-bottom:15px}
.concept-card h2{font-size:23px;line-height:1.3;margin:4px 0 10px;letter-spacing:-.025em}
.concept-card p{font-size:14px;color:#b3c0d5;line-height:1.8;margin:0 0 12px}
.concept-card .principle{background:#172d38;border-left:2px solid #6ce1d3;border-radius:0 10px 10px 0;padding:13px 16px;font-size:13px;color:#d5e7ec;line-height:1.65}
.concept-graphic{background:#0b1222;border:1px solid #283c55;border-radius:13px;padding:19px;margin:18px 0 21px;overflow:hidden}
.graphic-label{font:700 10px ui-monospace,monospace;letter-spacing:.12em;color:#8aa4b7;margin:0 0 13px}
.graphic-flow{display:flex;align-items:center;gap:7px;justify-content:space-between;flex-wrap:wrap}
.graphic-node{border:1px solid #36566a;background:#152537;color:#d7ecf1;border-radius:9px;padding:12px 10px;text-align:center;flex:1 1 110px;min-width:88px}
.graphic-node strong{display:block;font-size:12px}
.graphic-node small{color:#9eafc1;font-size:10px;line-height:1.4;display:block;margin-top:5px}
.graphic-arrow{color:#76d5da;font-size:16px}
.graphic-directory{display:grid;grid-template-columns:100px 1fr;gap:0 18px;max-width:540px;margin:auto}
.graphic-directory span{padding:8px 11px;border-bottom:1px solid #28394b;font:600 12px ui-monospace,monospace;color:#70e4ce}
.graphic-directory em{font-size:12px;color:#b2c4d0;font-style:normal;padding:8px 3px;border-bottom:1px solid #28394b}
.concept-card details{margin-top:17px;border-top:1px solid #2d3952;padding-top:13px;color:#b5c6d4}
.concept-card summary{cursor:pointer;font-size:13px;color:#8ce7de;font-weight:650}
.concept-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,monospace;color:#c3f4d0;background:#0a101c;padding:15px;border-radius:9px}
.chapter-primary{margin-top:17px;background:#66e9d3;border:0;color:#061a22;border-radius:10px;padding:12px 17px;font-weight:800;font-size:13px}
.chapter-primary:hover{background:#9df8e8}
.knowledge-card{background:#151e31;border:1px solid #34435c;border-radius:16px;padding:24px}
.knowledge-count{color:#8da7bb;font:700 11px ui-monospace,monospace}
.knowledge-card h2{font-size:20px;line-height:1.4;margin:13px 0 20px}
.knowledge-option{display:block;width:100%;text-align:left;background:#1a2940;color:#dce5f3;border:1px solid #344459;padding:13px 15px;border-radius:10px;font-size:13px;margin-top:8px}
.knowledge-option:hover:not(:disabled){border-color:#8a9ac8}
.knowledge-option.is-correct{border-color:#41bfa4;background:#164136}
.knowledge-option.is-wrong{border-color:#d28492;background:#41252f}
.knowledge-feedback{color:#afccd5;font-size:13px;line-height:1.6;margin-top:15px}
.lesson-panel{max-width:850px;padding:22px}.trainer-bottom .trainer-reference{margin-top:0}
.lesson-sadservers{max-width:850px}
.lesson-optional-labs{max-width:850px;padding:20px;border:1px solid #303e59;background:#121b2d;border-radius:15px;margin:22px 0}
.lesson-optional-labs h2{font-size:17px;margin:0 0 7px}
.lesson-optional-labs p{font-size:12px;color:#95a6bd;margin:0 0 12px}
.optional-lab-link{display:block;width:100%;text-align:left;padding:11px 13px;border:1px solid #30415b;background:#182337;color:#d8e7f0;border-radius:9px;margin-top:7px;font-size:12px}
.optional-lab-link:hover{border-color:#59adad}
.incident-context{font-size:12px;color:#92abbd;margin:6px 0 14px;max-width:850px}
.course-back{margin-bottom:15px}
#lab-selector,.storage-note{display:none!important}
#lesson-resources{max-width:850px}
@media(max-width:800px){
 .layout{grid-template-columns:minmax(0,1fr)}
 .sidebar{position:relative;top:auto;height:auto;padding:13px 15px;overflow:visible;gap:8px}
 .brand{padding:0 2px 10px}
 .outline-label{display:none}
 .course-outline{flex-direction:row;gap:6px;overflow-x:auto;flex:none;padding:4px 1px 9px}
 .course-entry{flex:0 0 172px;min-height:48px;padding:8px}
 .entry-text strong{font-size:11px}
 .utility-nav{display:none}
 .reset-only{align-self:flex-end}
 .course-rail{height:33px;width:100%;position:sticky;top:0;padding:0 8px;flex-direction:row;z-index:9;background:#0c1220;border-top:1px solid #27334b;border-bottom:1px solid #27334b}
 .course-rail-count{margin:0 9px 0 0}
 .course-rail-dots{height:100%;width:auto;flex:1;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:0 4px;justify-content:flex-start}
 .course-rail-dots:before{left:8px;right:8px;top:50%;bottom:auto;width:auto;height:1.5px;transform:translateY(-50%)}
 .course-dot{flex:0 0 20px;height:27px}
 .course-dot.group-break{margin:0 0 0 3px}
 .main{padding:19px 16px 42px}
 .chapter-steps{gap:3px;padding:4px}
 .chapter-step{font-size:11px;gap:3px;padding:10px 3px}
 .chapter-step b{font-size:9px}
 .concept-card,.knowledge-card{padding:18px}
 .graphic-flow{gap:5px}.graphic-node{flex:1 1 100px}
 .graphic-arrow{display:none}
}




/* Kofe//Lab v1.1 — subtle background brightening; no layout or behaviour changes. */
:root {
  --bg: #12192b;
  --surface: #1a263b;
  --surface2: #202c43;
  --surface3: #283750;
  --line: #36465e;
}
html { background: #12192b; }
body {
  background:
    radial-gradient(ellipse 62% 56% at 85% 9%, rgba(143, 97, 218, .17), transparent 72%),
    radial-gradient(ellipse 52% 56% at 12% 74%, rgba(51, 190, 196, .08), transparent 73%),
    linear-gradient(143deg, #151c31 0%, #111a2d 55%, #171d35 100%);
}
.sidebar {
  background: linear-gradient(175deg, rgba(25, 32, 54, .98), rgba(19, 26, 45, .98));
  border-right: 0;
}
.course-rail { background: rgba(19, 29, 48, .65); border-right-color: #394760; }
.course-rail-dots::before { background: #4a5671; }
.course-dot::before { background: #1c2a41; border-color: #71809c; }
.course-entry:hover, .utility-link:hover { background: #27344b; }
.course-entry.current { background: #213e49; border-color: #387b7b; }
.entry-icon { background: #2c3a52; }
.chapter-steps { background: #19253a; border-color: #3b4b63; }
.chapter-step.active { background: #264252; border-color: #4b8b93; }
.concept-card {
  background: linear-gradient(128deg, #202d47 0%, #1b263e 66%, #1b2942 100%);
  border-color: #405371;
}
.concept-graphic { background: #131e33; border-color: #36506b; }
.graphic-node { background: #20354c; border-color: #4c6d83; }
.knowledge-card, .panel { background: #1b2941; border-color: #40536e; }
.knowledge-option { background: #243650; border-color: #455a78; }
.lesson-optional-labs, .lesson-resources { background: #1b283e; border-color: #3c4c66; }
.optional-lab-link { background: #23344c; border-color: #435a73; }
@media (max-width: 800px) {
  .course-rail { background: #1c2b43; border-top-color: #3c4c66; border-bottom-color: #3c4c66; }
}



/* Real filesystem tree: hierarchy, branches, and short right-hand descriptions. */
.fs-tree { max-width: 680px; margin: 0 auto; }
.fs-row { display: grid; grid-template-columns: minmax(90px, 148px) minmax(0, 1fr); align-items: center; gap: 14px; min-height: 41px; padding: 5px 9px; border-bottom: 1px solid rgba(105, 139, 166, .14); }
.fs-root { background: rgba(72, 170, 173, .09); border: 1px solid rgba(105, 225, 211, .24); border-radius: 9px; margin-bottom: 2px; }
.fs-path { color: #7ceadb; font: 700 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.fs-root .fs-path { color: #b5f9ed; font-size: 15px; }
.fs-desc { color: #b9cbd8; font-size: 12px; line-height: 1.5; min-width: 0; }
.fs-fullpath { color: #83a6b8; font: 10px ui-monospace, monospace; white-space: nowrap; margin-left: 5px; }
.fs-branches { list-style: none; margin: 0 0 0 15px; padding: 0 0 0 18px; }
.fs-branches > li { position: relative; border-left: 1px solid #476479; padding-left: 17px; margin: 0; }
.fs-branches > li:last-child { border-left-color: transparent; }
.fs-branches > li::before { content: ''; position: absolute; left: -1px; top: 0; width: 18px; height: 21px; border-left: 1px solid #476479; border-bottom: 1px solid #476479; border-bottom-left-radius: 4px; pointer-events: none; }
.fs-branches .fs-branches { margin-left: 9px; padding-left: 12px; }
.fs-branches .fs-branches .fs-row { grid-template-columns: minmax(72px, 115px) minmax(0, 1fr); }
.concept-card p.fs-note { margin: 13px auto 0; max-width: 680px; color: #93adc3; font-size: 11px; line-height: 1.65; }
.fs-note code { color: #8ae8d8; background: rgba(84, 210, 194, .08); padding: 1px 4px; border-radius: 4px; }
@media (max-width: 640px) {
  .fs-tree { margin-left: -5px; margin-right: -5px; }
  .fs-row { grid-template-columns: minmax(66px, 96px) minmax(0, 1fr); gap: 7px; padding: 7px 3px; }
  .fs-branches { margin-left: 8px; padding-left: 8px; }
  .fs-branches > li { padding-left: 10px; }
  .fs-branches > li::before { width: 11px; }
  .fs-branches .fs-branches { margin-left: 5px; padding-left: 7px; }
  .fs-branches .fs-branches .fs-row { grid-template-columns: minmax(43px, 70px) minmax(0, 1fr); }
  .fs-desc { font-size: 11px; }
  .fs-fullpath { display: block; margin: 2px 0 0; }
  .fs-path { font-size: 11px; }
}



/* Two-line practical guidance in the existing filesystem tree. */
.fs-row { grid-template-columns: minmax(90px, 114px) minmax(0, 1fr); align-items: start; gap: 14px; padding-top: 10px; padding-bottom: 10px; }
.fs-root { padding-top: 10px; padding-bottom: 10px; }
.fs-path { padding-top: 3px; }
.fs-about { display: block; font-size: 12px; color: #d4e6f3; line-height: 1.55; }
.fs-when { display: block; font-size: 11px; color: #91d7c9; line-height: 1.55; margin-top: 4px; }
.fs-about code, .fs-when code { color: #96aaf2; background: rgba(137, 165, 237, 0.11); padding: 1px 3px; border-radius: 3px; overflow-wrap: anywhere; }
.fs-branches .fs-branches .fs-row { grid-template-columns: minmax(45px, 75px) minmax(0, 1fr); }
.concept-card p.fs-note { max-width: 680px; margin-top: 16px; line-height: 1.75; font-size: 11px; }
@media (max-width: 640px) {
  .fs-row { grid-template-columns: minmax(51px, 66px) minmax(0, 1fr); gap: 6px; padding: 9px 1px; }
  .fs-branches .fs-branches .fs-row { grid-template-columns: minmax(31px, 45px) minmax(0, 1fr); }
  .fs-about { font-size: 11px; }
  .fs-when { font-size: 10.5px; }
  .fs-path { font-size: 10px; }
}



/* v1.2: compact left navigation, dedicated lesson catalog, coffee-computer favicon */
.brand-coffee { width:46px; height:46px; flex:0 0 46px; display:block; object-fit:cover; border:1px solid #59748a; border-radius:12px; background:#151b31; box-shadow:0 0 18px rgba(92,215,206,.12); }
.sidebar { gap:23px; }
.sidebar-actions { padding:6px 2px; border-top:0; display:flex; flex-direction:column; gap:7px; }
.sidebar-actions .utility-link { padding:13px 14px; border:1px solid transparent; font-weight:680; font-size:13px; display:flex; align-items:center; gap:12px; }
.sidebar-actions .utility-link > span { flex:0 0 20px; text-align:center; font-size:17px; font-weight:700; }
.sidebar-actions .utility-link.active { background:#25404d; border-color:#427986; color:#e1ffff; }
.course-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:1040px; }
.course-catalog .course-entry { min-height:86px; padding:17px; background:linear-gradient(130deg,#202d44,#19253a); border:1px solid #3d4e69; border-radius:14px; color:#dce7f4; gap:13px; }
.course-catalog .course-entry:hover { background:#263b50; border-color:#69b9b2; }
.course-catalog .course-entry.current { background:#223b4d; border-color:#62c6be; }
.course-catalog .course-entry.is-locked { opacity:.55; }
.course-catalog .entry-icon { min-width:37px; width:37px; height:37px; font-size:13px; border-radius:9px; }
.course-catalog .entry-text strong { font-size:14px; line-height:1.35; }
.course-catalog .entry-text small { font-size:12px; margin-top:5px; }
.course-catalog .entry-state { font-size:18px; }
.course-catalog .course-entry.is-incident { border-color:#574c77; }
.catalog-header { max-width:1040px; margin:10px 0 30px; }
.catalog-header h1 { margin:12px 0 8px; font-size:clamp(32px,4vw,48px); letter-spacing:-.045em; }
.catalog-header p { color:#afbdd2; font-size:14px; line-height:1.8; max-width:770px; margin:0 0 20px; }
.catalog-progress { border-top:1px solid #3a4b65; padding-top:14px; display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; font:650 12px ui-monospace,monospace; color:#a2c7d4; }
.back-to-lessons { background:transparent; color:#9de6dd; border:0; padding:0 0 8px; font-size:13px; margin-bottom:14px; }
.back-to-lessons:hover { color:#fff; }
@media(max-width:800px){
  .sidebar { flex-direction:row; align-items:center; flex-wrap:wrap; gap:8px; padding:12px 16px; }
  .sidebar .brand { margin-right:auto; padding:0; }
  .sidebar-actions { display:flex; flex-direction:row; gap:5px; flex:0 0 auto; padding:0; }
  .sidebar-actions .utility-link { width:auto; padding:9px 11px; font-size:12px; }
  .sidebar-actions .utility-link > span { font-size:14px; flex-basis:14px; }
  .sidebar .side-spacer { display:none; }
  .sidebar .reset-only { font-size:11px; padding:8px 10px; margin:0; align-self:auto; }
  .course-catalog { grid-template-columns:1fr; }
  .course-catalog .course-entry { min-height:69px; padding:13px; }
}
@media(max-width:520px){
  .sidebar .brand { flex:1 0 100%; }
  .sidebar-actions { flex:1; }
  .sidebar-actions .utility-link { justify-content:center; flex:1; }
  .sidebar .reset-only { margin-left:auto; }
  .catalog-header { margin-top:4px; }
}

/* v1.3: legible locked items and distinguishable incident checkpoints. */
.course-entry.is-locked{opacity:1;color:#aabbd0;}
.course-entry.is-locked strong{color:#b6c4d9;}
.course-entry.is-locked small{color:#8b9db4;}
.course-entry.is-incident .entry-icon{color:#b6a6f9;border-color:#696394;}
.course-dot.incident-dot::before{border-color:#bf9fff;background:#4c355f;transform:rotate(45deg);border-radius:3px;width:10px;height:10px;}
.course-dot.incident-dot.done::before{background:#55d5c2;border-color:#55d5c2;}
.course-dot.locked-dot::before{background:#2d3a4f;border-color:#76879e;}
.course-rail-count{font-variant-numeric:tabular-nums;}
.catalog-progress{flex-wrap:wrap;gap:8px;}
/* Keep locked lessons readable while still clearly distinguished from available lessons. */
.course-catalog .course-entry.is-locked {
  opacity: 1;
  background: #1b273d;
  border-color: #33445e;
  color: #a9b9d0;
}
.course-catalog .course-entry.is-locked strong { color: #aebed2; }
.course-catalog .course-entry.is-locked small { color: #8399b6; }
.course-catalog .course-entry.is-locked .entry-icon { color: #99abc3; background: #26344c; }

/* v1.4: compact concept-first reading, diagrams, annotated examples */
.theory-v14{max-width:900px;padding:clamp(18px,3vw,30px)}
.theory-v14 h2{max-width:760px;font-size:clamp(21px,2.5vw,27px);line-height:1.25;margin-bottom:12px}
.theory-v14 .theory-lead{color:#d0dce9;max-width:780px;font-size:14px;line-height:1.72}
.theory-v14 p code,.theory-v14 li code{color:#7ef0dc;border:1px solid #34536b;background:#172b3c;padding:1px 5px;border-radius:4px;font-size:.92em;white-space:normal;overflow-wrap:anywhere}
.theory-v14 .concept-graphic{margin:18px 0 24px;padding:18px;background:linear-gradient(130deg,#15253a,#111c30)}
.graphic-footnote{color:#b6c9d8!important;font-size:11px!important;line-height:1.5!important;margin:12px 0 0!important;padding:7px 10px;background:#1b3245;border-radius:6px}
.theory-section-label{font:700 10px/1.6 ui-monospace,monospace;color:#83dfdf;letter-spacing:.11em;margin-bottom:10px}
.theory-section-label span{color:#8fadc4;font-weight:500;letter-spacing:0}
.theory-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
.theory-topic{background:#1b2a40;border:1px solid #35506a;border-radius:10px;padding:16px 16px 14px;min-width:0}
.theory-topic-num{font:700 10px ui-monospace,monospace;color:#9e90ff;margin-bottom:7px}
.theory-topic h3{color:#f0f7fb;font-size:14px;line-height:1.35;margin:0 0 7px}
.theory-topic p{font-size:12px;line-height:1.65;color:#c0cfdf;margin:0}
.theory-example{border:1px solid #38556a;border-radius:12px;background:#152339;padding:17px;margin:20px 0}
.theory-example-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:15px;align-items:start}
.theory-code-block{background:#0b1323;border:1px solid #2c435d;border-radius:9px;overflow:hidden}
.theory-code-label{font:700 10px ui-monospace,monospace;letter-spacing:.09em;color:#91b9cc;padding:11px 13px 3px}
.theory-code-block pre{margin:0;background:none!important;font-size:11px;line-height:1.6;padding:8px 13px 14px;color:#b9f1d7;white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto}
.theory-code-block pre + .theory-code-label{border-top:1px solid #253e51;padding-top:12px}
.theory-interpretation h3{font-size:13px;color:#e7f5fa;margin:3px 0 9px}
.theory-interpretation ul{padding-left:19px;margin:0}
.theory-interpretation li{color:#c1d1df;font-size:12px;line-height:1.7;margin:0 0 10px}
.theory-incident-note{border-left:2px solid #6dd6c5;background:#192f3d;border-radius:0 10px 10px 0;padding:13px 16px;margin-bottom:15px}
.theory-incident-note .theory-section-label{margin-bottom:5px}
.theory-incident-note p{font-size:12px;line-height:1.7;color:#d4e1e9;margin:0}
.theory-safe-note{color:#a9b9cb!important;font-size:11px!important;line-height:1.6!important}
@media(max-width:780px){.theory-topics,.theory-example-grid{grid-template-columns:1fr}.theory-v14 .concept-graphic{overflow-x:auto}.theory-v14 .graphic-node{min-width:90px}.theory-v14 .graphic-flow{justify-content:start}}

/* Relationship diagrams for non-sequential concepts */
.theory-topics>.theory-topic:last-child:nth-child(odd){grid-column:1 / -1}
.model-source{border:1px solid #4a7191;background:#20384d;color:#e6f8f5;border-radius:8px;padding:10px 14px;font-size:12px;font-weight:650;text-align:center;max-width:420px;margin:auto}
.model-source-active{border-color:#6bd2c3;background:#234b51}
.model-branch{color:#8f98dd;text-align:center;font-size:16px;line-height:1.5}
.model-branch span{margin-left:70px}
.model-parallel{display:flex;align-items:stretch;gap:10px;justify-content:center;max-width:620px;margin:auto}
.model-parallel .graphic-node{min-width:0;flex:1}
.model-nested{max-width:660px;margin:auto;border:1px solid #48667f;background:#192b40;border-radius:12px;padding:14px}
.model-caption{font:600 12px ui-monospace,monospace;color:#cfdfef;margin:0 0 10px}
.model-nested-inner{margin:10px 0 0 19px;border:1px solid #6286a8;background:#203950;border-radius:9px;padding:13px}
.model-nested-core{background:#224951;border:1px solid #5bcebc;color:#e3f8ee;border-radius:7px;text-align:center;font-size:12px;padding:12px 8px}
@media(max-width:780px){.theory-topics>.theory-topic:last-child:nth-child(odd){grid-column:auto}.model-parallel{gap:4px}.model-parallel .graphic-node{padding:10px 5px}}

/* Initial Ubuntu VM training objective states */
.vm-objectives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:15px 0 18px}
.vm-objective{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;border:1px solid var(--line,#354b64);border-radius:10px;background:rgba(14,24,43,.30);font-size:13px;line-height:1.55;color:var(--muted,#b6c4d7)}
.vm-objective>span:first-child{font-size:18px;color:#90a4be;line-height:1.1}
.vm-objective.passed{border-color:rgba(73,227,191,.40);background:rgba(73,227,191,.06);color:var(--text,#eaf3ff)}
.vm-objective.passed>span:first-child{color:#63e1bb}
.vm-context{font-size:13px;line-height:1.7;border-left:2px solid #66d7ce;padding:10px 14px;margin:12px 0 18px;background:rgba(37,151,162,.06);border-radius:0 8px 8px 0}
.vm-context code{color:#8af0e0}
@media(max-width:700px){.vm-objectives{grid-template-columns:1fr}}

/* v1.4.4: file operation outcomes, shown only in the Working with Files lesson */
.fileop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fileop-card{min-width:0;display:flex;flex-direction:column;border:1px solid #3b576e;background:#1b2a41;border-radius:11px;padding:13px}
.fileop-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px;min-height:48px}
.fileop-head>code{font:750 14px ui-monospace,monospace;color:#091b20;background:#7ce3d7;border-radius:6px;padding:5px 8px}
.fileop-head strong{font-size:13px;color:#f0f5ff}
.fileop-head span{grid-column:2;color:#abc2d5;font-size:10px}
.fileop-command{font:11px/1.45 ui-monospace,monospace;color:#bfece7;background:#0f1d30;border:1px solid #304d60;padding:9px;margin:10px 0 12px;border-radius:7px;overflow-wrap:anywhere}
.fileop-snapshot>span{display:block;color:#a4bcd0;font:700 10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.fileop-pills{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:30px}
.fileop-pills code{font:11px/1.3 ui-monospace,monospace;background:#263e55;border:1px solid #4b6e86;color:#ccebf2;border-radius:5px;padding:5px 6px}
.fileop-pills code.fileop-added{background:#1c4a48;border-color:#479f91;color:#b3ffdf}
.fileop-pills code.fileop-gone{background:#312b3e;border-color:#66506a;color:#baa9bc;text-decoration:line-through}
.fileop-pills b{font-weight:900;text-decoration:none;color:#76e5b8}
.fileop-down{text-align:center;color:#84d2db;font-size:16px;line-height:1.2;padding:6px}
.fileop-card>p{font-size:11px;color:#bdcede;line-height:1.45;margin:12px 0 0;flex:1}
.file-ops-graphic>.graphic-footnote code{color:#87e5da}
@media(max-width:850px){.fileop-grid{grid-template-columns:1fr}.fileop-card{padding:12px}.fileop-head{min-height:0}.fileop-card>p{margin:8px 0 0}}

/* v1.4.5 — purpose-built concept visuals for the remaining Linux lessons */
.topic-diagram { color:#e7eff9; }
.topic-diagram code { display:inline-block; font:600 11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; color:#87eadd; padding:2px 5px; background:#132c3b; border:1px solid #38576b; border-radius:5px; overflow-wrap:anywhere; }
.diagram-eyebrow { display:block; color:#8fa9be; font:700 10px/1.5 ui-monospace,monospace; letter-spacing:.07em; margin-bottom:8px; }
.relationship-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.relationship-panel { min-width:0; border:1px solid #3e6279; border-radius:11px; background:#1a2e45; padding:13px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.relationship-panel strong { color:#ecf8fc; font-size:13px; line-height:1.4; }
.relationship-panel small { color:#b2c8d7; font-size:11px; line-height:1.5; }
.relationship-panel .secondary-heading { margin-top:12px; }
.relationship-connector { color:#a9c0d6; font-size:11px; padding:8px 4px; text-align:center; }
.permission-bits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.permission-bits>div { border:1px solid #3d5b71; border-radius:9px; text-align:center; padding:10px 5px; background:#1d3247; min-width:0; }
.permission-bits span,.permission-bits small { display:block; color:#a5bdce; font-size:10px; line-height:1.5; }
.permission-bits strong { display:block; margin:3px 0; color:#9aebd4; font:800 17px/1.5 ui-monospace,monospace; }
.script-result { display:flex; gap:9px; flex-wrap:wrap; justify-content:center; align-items:center; border:1px solid #3b5a6c; background:#182d42; border-radius:9px; padding:12px; margin-top:12px; font-size:12px; color:#c2d4e3; }
.script-result strong { color:#9de6d5; }
.stream-pipeline { display:flex; flex-wrap:wrap; gap:7px; align-items:stretch; }
.stream-pipeline>div { flex:1 1 135px; background:#1c3447; border:1px solid #3d6571; border-radius:9px; padding:12px; min-width:0; }
.stream-pipeline>div>span,.apt-columns span,.capacity-pair span,.bash-chain>div>span { display:block; font:700 10px/1.4 ui-monospace,monospace; color:#9aaec2; margin-bottom:6px; }
.stream-pipeline>div>strong { font-size:12px; color:#bdf0e6; word-break:break-word; }
.stream-pipeline>b { display:flex; align-items:center; justify-content:center; color:#78d6d1; font-size:19px; }
.stream-branches { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.stream-branch { border-radius:8px; background:#173c41; border:1px solid #426b70; padding:10px 12px; }
.stream-branch.stream-error { background:#383044; border-color:#705d7c; }
.stream-branch strong { display:block; font-size:12px; margin-bottom:4px; }
.stream-branch small { display:block; color:#bacddb; font-size:11px; line-height:1.5; }
.ssh-columns { display:grid; grid-template-columns:minmax(0,1fr) 75px minmax(0,1fr); align-items:stretch; gap:8px; }
.ssh-between { color:#87d8e2; display:flex; flex-direction:column; gap:5px; align-items:center; justify-content:center; font-size:10px; text-align:center; }
.ssh-between span:first-child { font-size:26px; line-height:1.2; }
.ssh-result { border:1px solid #4d736c; color:#dcf8f2; background:#19413c; font-size:11px; line-height:1.6; border-radius:8px; padding:10px 12px; margin-top:12px; }
.bash-chain { display:flex; align-items:center; gap:8px; }
.bash-chain>div { flex:1; min-width:0; background:#1c3146; border:1px solid #3e5b73; border-radius:10px; padding:13px; }
.bash-chain>span { color:#8be2d8; }
.bash-chain small { display:block; color:#b4c6d6; margin-top:7px; font-size:11px; line-height:1.4; }
.branch-split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.branch-split>div { display:grid; grid-template-columns:1fr auto; gap:5px 9px; align-items:start; background:#173b36; border:1px solid #48776c; border-radius:9px; padding:12px; }
.branch-split>div.branch-bad { background:#392b3a; border-color:#7c6071; }
.branch-split strong { font-size:12px; }
.branch-split small { color:#afc1cd; font-size:11px; grid-column:1/-1; }
.apt-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.apt-columns>div { background:#1a3044; border:1px solid #36596d; border-radius:10px; padding:12px; min-width:0; }
.apt-columns code { display:block; margin:8px 0; }
.apt-columns small { color:#bad0dc; display:block; font-size:11px; line-height:1.5; }
.storage-stack { display:grid; grid-template-columns:minmax(0,1fr); max-width:480px; margin:auto; }
.storage-stack>div:not(.storage-arrow) { display:flex; justify-content:space-between; gap:12px; align-items:center; background:#1e3449; border:1px solid #496b80; border-radius:8px; padding:9px 12px; }
.storage-stack strong { font-size:12px; }
.storage-stack span { color:#b5c9d8; font-size:11px; text-align:right; }
.storage-stack .storage-arrow { color:#83ddd6; line-height:1; font-size:15px; text-align:center; padding:3px 0; }
.capacity-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin-top:13px; }
.capacity-pair>div { min-width:0; background:#172d3d; border:1px solid #3c5e70; border-radius:9px; padding:11px; }
.capacity-pair code { display:block; width:fit-content; margin:6px 0; }
.capacity-pair small { color:#afc4d4; display:block; font-size:11px; line-height:1.5; }
.vm-sequence { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.vm-sequence>div { display:flex; align-items:center; gap:9px; background:#203347; border:1px solid #3d5c70; padding:11px; min-width:0; border-radius:9px; }
.vm-sequence>div>span { flex:none; color:#80d8ce; font:800 11px ui-monospace,monospace; }
.vm-sequence>div strong { font-size:11px; line-height:1.45; }
.vm-sequence>div.vm-checkpoint { background:#193d3a; border-color:#477f78; }
.vm-sequence>div.vm-checkpoint span { color:#a8f5df; }
@media(max-width:650px) {
 .relationship-pair,.stream-branches,.branch-split,.apt-columns,.capacity-pair,.vm-sequence { grid-template-columns:1fr; }
 .ssh-columns { grid-template-columns:1fr; }
 .ssh-between { flex-direction:row; padding:3px 0; }
 .ssh-between span:first-child { transform:rotate(90deg); }
 .stream-pipeline { flex-direction:column; }
 .stream-pipeline>div { flex:0 1 auto; }
 .stream-pipeline>b { line-height:1; }
 .script-result { gap:5px; }
 .storage-stack>div:not(.storage-arrow) { align-items:flex-start; flex-direction:column; gap:5px; }
 .storage-stack span { text-align:left; }
}
