:root{--bg: #0a0e0a;--bg2: #0d1410;--panel: #0f1712;--green: #00ff66;--green-dim: #3fae6b;--green-soft: #9dffc4;--text-soft: #cfe9d8;--text-bright: #eafff2;--amber: #ffb000;--red: #ff3b3b;--cyan: #22d3ee;--grid: rgba(0, 255, 102, .07);--border: rgba(0, 255, 102, .22);--mono: "Courier New", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(0,255,102,.06),transparent 60%),linear-gradient(180deg,#070a07,#0a0e0a);color:var(--green);font-family:var(--mono);font-size:14px;line-height:1.5;overflow-x:hidden;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000002e,#0000 4px);mix-blend-mode:overlay;opacity:.5}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:34px 34px;opacity:.6}::selection{background:var(--green);color:#000}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#060906}::-webkit-scrollbar-thumb{background:#0c3b1d;border:1px solid var(--border)}::-webkit-scrollbar-thumb:hover{background:#0f5a2c}a{color:var(--cyan);text-decoration:none}.wrap{position:relative;z-index:2;max-width:1300px;margin:0 auto;padding:18px}header{border:1px solid var(--border);background:linear-gradient(180deg,rgba(0,255,102,.05),transparent);padding:14px 18px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;box-shadow:0 0 0 1px #0006,0 0 40px #00ff660d inset}.brand{display:flex;align-items:center;gap:14px}.logo{width:52px;height:52px;border:1px solid var(--green);border-radius:8px;display:grid;place-items:center;font-size:22px;overflow:hidden;background:#0a140d;box-shadow:0 0 18px #00ff6659 inset,0 0 14px #00ff6640;animation:pulse 2.4s infinite}.logo img{width:100%;height:100%;object-fit:contain;padding:4px}.logo.logo-fallback:after{content:"⌬";font-size:24px;color:var(--green)}@keyframes pulse{0%,to{box-shadow:0 0 18px #00ff6640 inset,0 0 10px #0f63}50%{box-shadow:0 0 26px #00ff6680 inset,0 0 22px #00ff6673}}.brand h1{font-size:18px;letter-spacing:2px;text-shadow:0 0 10px rgba(0,255,102,.5)}.brand .sub{font-size:11px;color:var(--green-dim);letter-spacing:1px}.blink{animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.stats{display:flex;gap:18px;flex-wrap:wrap;font-size:11px}.stat b{display:block;font-size:18px;color:var(--green-soft);text-shadow:0 0 8px rgba(0,255,102,.4)}.stat span{color:var(--green-dim);letter-spacing:1px}nav{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.tab{background:var(--panel);border:1px solid var(--border);color:var(--green-dim);padding:9px 16px;border-radius:5px;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:1px;transition:.15s;text-transform:uppercase}.tab:hover{color:var(--green);border-color:var(--green);box-shadow:0 0 14px #0f63}.tab.active{background:linear-gradient(180deg,#00ff6629,#00ff660a);color:var(--green);border-color:var(--green);text-shadow:0 0 8px rgba(0,255,102,.5)}.view{display:none;animation:fade .3s ease}.view.active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:18px;margin-bottom:16px;position:relative}.panel h2{font-size:14px;letter-spacing:2px;margin-bottom:6px;color:var(--green-soft);text-shadow:0 0 8px rgba(0,255,102,.3)}.panel .desc{color:var(--text-soft);font-size:12.5px;margin-bottom:14px;line-height:1.65}.label{color:var(--green-dim);font-size:11px;letter-spacing:1px;text-transform:uppercase}.terminal-shell{border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:0 0 40px #00ff660f,0 14px 40px #0009}.term-bar{background:#0c130d;border-bottom:1px solid var(--border);padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--green-dim)}.dot{width:11px;height:11px;border-radius:50%}.dot.r{background:#ff5f57}.dot.y{background:#febc2e}.dot.g{background:#28c840}.term-title{margin-left:8px;letter-spacing:1px}.term-body{background:#060a07;height:440px;overflow-y:auto;padding:14px;font-size:13px;text-shadow:0 0 2px rgba(0,255,102,.25)}.term-line{white-space:pre-wrap;word-break:break-word}.term-input-row{display:flex;align-items:center;background:#060a07;border-top:1px solid var(--border);padding:8px 12px}.prompt{color:var(--green-soft);white-space:nowrap;margin-right:8px}#cmd{flex:1;background:transparent;border:none;outline:none;color:var(--green);font-family:var(--mono);font-size:13px;caret-color:var(--green)}.out-cmd{color:#fff}.out-info{color:var(--cyan)}.out-ok{color:var(--green)}.out-warn{color:var(--amber)}.out-err{color:var(--red)}.out-dim{color:var(--green-dim)}.cmdchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.chip{background:#00ff660f;border:1px solid var(--border);color:var(--green-dim);padding:5px 10px;border-radius:14px;font-size:11px;cursor:pointer;transition:.15s}.chip:hover{color:var(--green);border-color:var(--green);background:#00ff661f}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px}.sum-card{background:linear-gradient(180deg,#00ff660f,#00ff6603);border:1px solid var(--border);border-radius:8px;padding:16px;position:relative;overflow:hidden;transition:.2s}.sum-card:hover{border-color:var(--green);box-shadow:0 0 22px #00ff661f;transform:translateY(-2px)}.sum-card .sum-ic{font-size:22px;opacity:.9}.sum-card .sum-val{font-size:30px;font-weight:700;color:var(--text-bright);text-shadow:0 0 12px rgba(0,255,102,.5);line-height:1.1;margin-top:4px}.sum-card .sum-lbl{font-size:11px;color:var(--green-dim);letter-spacing:1px;text-transform:uppercase;margin-top:2px}.filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}.seg{display:flex;gap:4px;background:#060a07;border:1px solid var(--border);border-radius:6px;padding:4px}.seg button{background:transparent;border:none;color:var(--green-dim);font-family:var(--mono);font-size:11px;padding:5px 12px;border-radius:4px;cursor:pointer;letter-spacing:1px;transition:.12s}.seg button.on{background:#00ff6629;color:var(--green);box-shadow:0 0 8px #0f63}.seg button:hover{color:var(--green)}.outcomes{border:1px solid rgba(34,211,238,.3);background:#22d3ee0d;border-radius:6px;padding:14px;margin:14px 0}.outcomes .ol-head{font-size:11px;color:var(--cyan);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-weight:700}.outcomes ul{list-style:none}.outcomes li{font-size:12.5px;color:var(--text-soft);padding-left:22px;position:relative;margin-bottom:6px;line-height:1.6}.outcomes li:before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:700}.card .learn-mini{font-size:10px;color:var(--cyan);margin-top:6px;opacity:.85}.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.badge-card{text-align:center;border:1px solid var(--border);border-radius:8px;padding:18px;background:var(--panel);position:relative;opacity:.45;filter:grayscale(1);transition:.4s}.badge-card.earned{opacity:1;filter:none;border-color:var(--green);box-shadow:0 0 22px #00ff6626}.badge-card .b-medal{font-size:46px;line-height:1;margin-bottom:8px;display:inline-block}.badge-card.earned .b-medal{animation:bob 3s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(0,255,102,.6))}@keyframes bob{50%{transform:translateY(-6px)}}.badge-card h4{font-size:12px;letter-spacing:1px;color:var(--green-soft);margin-bottom:6px}.badge-card p{font-size:11px;color:var(--text-soft);line-height:1.5;min-height:32px}.badge-card .b-status{margin-top:10px;font-size:10px;letter-spacing:1px;padding:3px 10px;border-radius:10px;display:inline-block;border:1px solid var(--border);color:var(--green-dim)}.badge-card.earned .b-status{color:var(--green);border-color:var(--green);background:#00ff661a}.badge-card .b-prog{font-size:10px;color:var(--green-dim);margin-top:6px}.cert{border:2px solid var(--green);border-radius:10px;padding:30px;text-align:center;position:relative;background:radial-gradient(700px 300px at 50% 0,rgba(0,255,102,.08),transparent),var(--panel);box-shadow:0 0 40px #00ff661f inset}.cert.locked{border-color:var(--border);opacity:.6;filter:grayscale(.6)}.cert .seal{font-size:40px;margin-bottom:6px}.cert h3{font-size:20px;letter-spacing:3px;color:var(--text-bright);text-shadow:0 0 14px rgba(0,255,102,.5);margin-bottom:4px}.cert .cert-sub{font-size:11px;color:var(--green-dim);letter-spacing:2px;margin-bottom:16px}.cert .cert-name{font-size:24px;color:var(--green-soft);border-bottom:1px dashed var(--border);display:inline-block;padding:4px 30px 8px;margin:8px 0}.cert .cert-body{font-size:12px;color:var(--text-soft);line-height:1.7;max-width:520px;margin:14px auto}.cert .cert-foot{display:flex;justify-content:space-around;margin-top:20px;flex-wrap:wrap;gap:14px}.cert .cert-foot div{font-size:10px;color:var(--green-dim)}.cert .cert-foot b{display:block;color:var(--green-soft);font-size:12px;margin-bottom:2px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px;cursor:pointer;transition:.18s;position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:var(--green-dim);transition:.2s}.card:hover{transform:translateY(-3px);border-color:var(--green);box-shadow:0 8px 30px #00ff661f}.card:hover:before{background:var(--green);box-shadow:0 0 14px var(--green)}.card .ic{font-size:24px;margin-bottom:8px}.card h3{font-size:13px;letter-spacing:1px;color:var(--green-soft);margin-bottom:6px}.card p{font-size:11.5px;color:var(--text-soft);line-height:1.6;min-height:48px}.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:10px}.badge{padding:2px 8px;border:1px solid var(--border);border-radius:10px;letter-spacing:1px}.badge.easy{color:var(--green)}.badge.med{color:var(--amber);border-color:#ffb00066}.badge.hard{color:var(--red);border-color:#ff3b3b66}.done-tag{color:var(--green);font-size:10px}.card.completed{border-color:var(--green-dim)}.card.completed:before{background:var(--green)}.bar{height:8px;background:#0a140d;border:1px solid var(--border);border-radius:6px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green));box-shadow:0 0 12px #00ff6680;transition:width .6s ease;width:0}.lab-detail{display:none}.lab-detail.active{display:block}.lab-step{border:1px solid var(--border);border-radius:6px;padding:14px;margin-bottom:10px;background:#00ff6608}.lab-step .num{display:inline-block;width:24px;height:24px;border:1px solid var(--green);border-radius:50%;text-align:center;line-height:22px;margin-right:8px;font-size:12px}.codebox{background:#060a07;border:1px solid var(--border);border-radius:5px;padding:10px 12px;margin:8px 0;font-size:12px;color:var(--green-soft);overflow-x:auto;position:relative}.codebox .copy{position:absolute;right:8px;top:6px;font-size:10px;color:var(--green-dim);cursor:pointer;border:1px solid var(--border);padding:2px 6px;border-radius:4px}.codebox .copy:hover{color:var(--green);border-color:var(--green)}.btn{background:linear-gradient(180deg,#00ff6629,#00ff660a);border:1px solid var(--green);color:var(--green);padding:9px 18px;border-radius:5px;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:1px;transition:.15s;text-transform:uppercase}.btn:hover{box-shadow:0 0 18px #00ff6659;background:#00ff6638}.btn.ghost{background:transparent;border-color:var(--border);color:var(--green-dim)}.btn.ghost:hover{color:var(--green);border-color:var(--green)}.btn.danger{border-color:#ff3b3b80;color:var(--red)}.btn.danger:hover{box-shadow:0 0 18px #ff3b3b40;background:#ff3b3b1a}.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.quiz-q{font-size:14px;color:var(--green-soft);margin-bottom:16px;line-height:1.6}.opt{display:block;width:100%;text-align:left;background:#00ff6608;border:1px solid var(--border);color:var(--green);padding:12px 14px;border-radius:5px;margin-bottom:10px;cursor:pointer;font-family:var(--mono);font-size:13px;transition:.12s}.opt:hover{border-color:var(--green);background:#00ff6614}.opt.correct{border-color:var(--green);background:#00ff662e;color:#fff}.opt.wrong{border-color:var(--red);background:#ff3b3b24;color:#ffb4b4}.opt .k{color:var(--green-dim);margin-right:8px}.quiz-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--green-dim);margin-bottom:14px}.explain{border-left:3px solid var(--cyan);background:#22d3ee0f;padding:10px 12px;font-size:12px;color:var(--green-soft);margin-top:10px;display:none;border-radius:0 5px 5px 0}.explain.show{display:block}.prog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.ring-wrap{display:flex;align-items:center;gap:18px}.ach{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:6px;margin-bottom:8px;opacity:.4;transition:.3s}.ach.unlocked{opacity:1;background:#00ff660d;box-shadow:0 0 14px #00ff6614}.ach .e{font-size:22px}.ach .t b{display:block;color:var(--green-soft);font-size:12px}.ach .t span{font-size:10px;color:var(--green-dim)}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid rgba(0,255,102,.1)}th{color:var(--green-dim);letter-spacing:1px;font-size:11px}.pill{padding:2px 8px;border-radius:10px;font-size:10px;border:1px solid var(--border)}.study-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.search-box{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;background:#060a07;border:1px solid var(--border);border-radius:5px;padding:8px 12px}.search-box input{flex:1;background:transparent;border:none;outline:none;color:var(--green);font-family:var(--mono);font-size:13px}.study-stats{font-size:11px;color:var(--green-dim);letter-spacing:1px}.acc{border:1px solid var(--border);border-radius:6px;margin-bottom:10px;overflow:hidden;background:var(--panel)}.acc-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:.15s;-webkit-user-select:none;user-select:none}.acc-head:hover{background:#00ff660d}.acc-head .mod-no{width:30px;height:30px;min-width:30px;border:1px solid var(--green);border-radius:5px;display:grid;place-items:center;font-size:12px;color:var(--green-soft);box-shadow:0 0 10px #0f63 inset}.acc-head .mod-ic{font-size:20px}.acc-head .mod-t{flex:1}.acc-head .mod-t b{display:block;font-size:13px;letter-spacing:1px;color:var(--green-soft)}.acc-head .mod-t span{font-size:10px;color:var(--green-dim);letter-spacing:1px}.acc-head .chev{transition:.25s;color:var(--green-dim);font-size:14px}.acc.open .chev{transform:rotate(90deg);color:var(--green)}.acc.read .mod-no{background:#00ff6626}.acc-body{display:none;padding:0 18px 18px;border-top:1px solid rgba(0,255,102,.1)}.acc.open .acc-body{display:block;animation:fade .25s ease}.study-section{margin-top:16px}.study-section h4{font-size:12px;letter-spacing:1px;color:var(--cyan);text-transform:uppercase;margin-bottom:8px;border-left:3px solid var(--cyan);padding-left:8px}.study-section p{font-size:12.5px;color:var(--text-soft);line-height:1.75;margin-bottom:8px}.study-section ul{list-style:none;margin:6px 0 6px 4px}.study-section ul li{font-size:12.5px;color:var(--text-soft);line-height:1.75;padding-left:18px;position:relative;margin-bottom:4px}.study-section ul li:before{content:"▸";position:absolute;left:0;color:var(--green-dim)}.study-section ul li b,.study-section p b{color:var(--green-soft)}.study-section code{background:#060a07;border:1px solid var(--border);border-radius:3px;padding:1px 6px;color:var(--amber);font-size:12px}.keyterm{display:inline-block;background:#00ff660f;border:1px solid var(--border);border-radius:4px;padding:4px 10px;margin:3px 4px 3px 0;font-size:11px;color:var(--green-soft)}.keyterm b{color:var(--amber)}.tiprow{border-left:3px solid var(--amber);background:#ffb0000f;padding:10px 12px;border-radius:0 5px 5px 0;margin-top:8px}.tiprow .tlabel{font-size:10px;color:var(--amber);letter-spacing:1px;text-transform:uppercase}.tiprow p{font-size:12px;color:#ffe2a8;margin:4px 0 0}.toolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px}.toolchip{background:#060a07;border:1px solid var(--border);border-radius:5px;padding:8px 10px;font-size:11px}.toolchip b{color:var(--green-soft);display:block;font-size:11.5px}.toolchip span{color:var(--green-dim);font-size:10px}.acc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}.domain-tag{font-size:9px;padding:2px 7px;border:1px solid var(--border);border-radius:8px;color:var(--green-dim);letter-spacing:1px}.no-results{text-align:center;color:var(--green-dim);padding:30px;font-size:13px}.quickref{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:8px}.qr-card{background:#060a07;border:1px solid var(--border);border-radius:6px;padding:12px}.qr-card h5{font-size:11px;color:var(--amber);letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.qr-card table td{padding:4px 6px;font-size:11px;border-bottom:1px solid rgba(0,255,102,.08)}.qr-card table td:first-child{color:var(--green-soft);white-space:nowrap}.qr-card table td:last-child{color:var(--green-dim)}footer{text-align:center;color:var(--green-dim);font-size:11px;padding:24px 0 12px;letter-spacing:1px}.toast{position:fixed;bottom:22px;right:22px;z-index:10000;background:#0c160e;border:1px solid var(--green);color:var(--green);padding:12px 18px;border-radius:6px;font-size:12px;box-shadow:0 0 24px #00ff664d;transform:translate(140%);transition:.4s cubic-bezier(.2,.8,.2,1)}.toast.show{transform:none}.disclaimer{font-size:10px;color:var(--green-dim);border:1px dashed var(--border);padding:8px 12px;border-radius:5px;margin-top:8px}@media(max-width:640px){.term-body{height:340px}.stats{display:none}}
