@import"https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;500;600;700&family=Noto+Sans+Arabic:wght@300;400;500;700&display=swap";:root{--bg: #000000;--bg-soft: #050805;--surface: rgba(255, 255, 255, .035);--surface-2: #101410;--surface-hover: rgba(0, 255, 65, .06);--border: #1f261f;--border-strong: #2c3a2c;--text: #e0e0e0;--text-muted: #9aa39a;--green: #00ff41;--green-dim: #0f7a2e;--red: #ff3333;--amber: #ffb020;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow: 0 4px 24px rgba(0, 0, 0, .6);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .7);--glow-green: 0 0 18px rgba(0, 255, 65, .28);--font-body: "Noto Sans Arabic", "Segoe UI", system-ui, sans-serif;--font-head: "Noto Naskh Arabic", "Noto Sans Arabic", serif;--mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Courier New", monospace;--page: 1140px}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;letter-spacing:0;line-height:1.35}h1{font-size:clamp(1.9rem,4.6vw,3rem)}h2{font-size:clamp(1.5rem,3vw,2.1rem)}h3{font-size:1.12rem}h4{font-size:1rem}p{color:var(--text)}code,.mono{font-family:var(--mono);direction:ltr;unicode-bidi:embed}a{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{position:relative;min-height:100dvh;display:flex;flex-direction:column}main{flex:1}.glow{position:fixed;inset:-30% -10% auto -10%;height:60vh;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 0%,rgba(0,255,65,.16),transparent 62%)}.scanlines{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.35;background:repeating-linear-gradient(to bottom,rgba(0,255,65,.045) 0 1px,transparent 1px 4px)}.section{position:relative;z-index:1;max-width:var(--page);margin:0 auto;padding:2.5rem 1.25rem}.section-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between;margin-bottom:1.5rem}.section-sub{color:var(--text-muted);max-width:62ch;font-size:.95rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);padding:1.35rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.62rem 1.3rem;border-radius:999px;border:1px solid transparent;font-family:var(--font-body);font-size:.92rem;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .2s ease,opacity .2s ease}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--green);color:#04120a;box-shadow:var(--glow-green)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 34px #00ff4159}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--green-dim)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){transform:translateY(-2px)}.btn-tiny{padding:.3rem .7rem;font-size:.78rem}.badge{display:inline-flex;align-items:center;gap:.32rem;font-size:.72rem;font-weight:700;padding:.18rem .62rem;border-radius:999px;background:#00ff411a;color:var(--green);border:1px solid rgba(0,255,65,.22)}.badge.green{background:#00ff4129;color:var(--green)}.badge.amber{background:#ffb0201f;color:var(--amber);border-color:#ffb02047}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-lessons{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.empty-state{text-align:center;color:var(--text-muted);display:grid;gap:.6rem;justify-items:center}.empty-icon{color:var(--green)}.navbar{position:sticky;top:0;z-index:20;background:#000000d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.nav-inner{max-width:var(--page);margin:0 auto;height:62px;padding:0 1.25rem;display:flex;align-items:center;gap:1rem}.nav-brand{display:flex;align-items:center;gap:.45rem;font-weight:700}.brand-icon{color:var(--green)}.brand-name{font-family:var(--mono);direction:ltr;letter-spacing:-.02em}.brand-tag{font-family:var(--mono);font-size:.68rem;color:var(--green);border:1px solid rgba(0,255,65,.3);border-radius:6px;padding:0 .3rem}.nav-links{display:flex;gap:.35rem;margin-inline-start:auto}.nav-link{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;color:var(--text-muted);font-family:var(--font-body);font-size:.9rem;font-weight:600;padding:.4rem .8rem;border-radius:999px;cursor:pointer;transition:color .2s ease,background .2s ease}.nav-link:hover{color:var(--text);background:var(--surface-hover)}.nav-link.active{color:var(--green);background:#00ff411a}.nav-meter{position:relative;width:74px;height:22px;border:1px solid var(--border-strong);border-radius:999px;overflow:hidden;display:grid;place-items:center}.nav-meter-bar{position:absolute;inset-inline-start:0;top:0;height:100%;background:#00ff4147;transition:width .4s ease}.nav-meter-text{position:relative;font-family:var(--mono);font-size:.68rem;color:var(--text)}.nav-toggle{display:none;background:transparent;border:1px solid var(--border-strong);color:var(--text);border-radius:8px;padding:.3rem;cursor:pointer}.nav-mobile{display:grid;gap:.25rem;padding:.6rem 1.25rem 1rem;border-top:1px solid var(--border)}.nav-mobile .nav-link{justify-content:flex-start}.hero{padding-top:3rem}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:2rem;align-items:center}.hero-badge{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.74rem;color:var(--green);letter-spacing:.04em;border:1px solid rgba(0,255,65,.28);border-radius:999px;padding:.25rem .75rem;margin-bottom:1rem}.hero-copy h1{margin-bottom:1rem}.hero-copy p{color:var(--text-muted);max-width:52ch;margin-bottom:1.6rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.4rem}.hero-facts{list-style:none;display:grid;gap:.45rem;font-size:.88rem;color:var(--text-muted)}.hero-facts li{display:flex;align-items:center;gap:.5rem}.hero-facts svg{color:var(--green);flex:none}.hero-side{display:grid;gap:1.25rem;justify-items:center}.ring{position:relative;display:grid;place-items:center}.ring svg{transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--border-strong);stroke-width:8}.ring-value{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(0,255,65,.5));transition:stroke-dashoffset .6s ease}.ring-label{position:absolute;display:grid;justify-items:center}.ring-label strong{font-family:var(--mono);font-size:1.6rem;color:var(--green)}.ring-label span{font-size:.75rem;color:var(--text-muted)}.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%}.mini-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;text-align:center}.mini-value{display:block;font-family:var(--mono);font-size:1.25rem;color:var(--green)}.mini-label{font-size:.78rem;color:var(--text-muted)}.stage-block{margin-bottom:2rem}.stage-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.9rem}.stage-num{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#00ff411f;color:var(--green);font-family:var(--mono);font-size:.85rem;border:1px solid rgba(0,255,65,.24)}.stage-head h3{font-size:1.14rem}.stage-count{margin-inline-start:auto;font-size:.8rem;color:var(--text-muted)}.lesson-card{text-align:start;cursor:pointer;display:grid;gap:.5rem;font-family:var(--font-body)}.lesson-card:hover{transform:translateY(-3px);border-color:var(--green-dim);box-shadow:var(--shadow-lg)}.lesson-card.done{border-color:#00ff4159}.lesson-card.wrong{border-color:#ffb0204d}.lesson-top{display:flex;align-items:center;justify-content:space-between}.lesson-id{font-family:var(--mono);font-size:.78rem;color:var(--green)}.ic-done{color:var(--green)}.ic-wrong{color:var(--amber)}.ic-todo{color:var(--border-strong)}.lesson-card h4{font-size:1.02rem}.lesson-snippet{font-size:.85rem;color:var(--text-muted)}.lesson-meta{display:flex;flex-wrap:wrap;gap:.4rem}.grid-tools{display:flex;align-items:center;gap:.6rem}.filter-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.tabs{display:inline-flex;gap:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.2rem}.tab{background:transparent;border:0;color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:.82rem;font-weight:600;padding:.3rem .85rem;border-radius:999px;transition:all .2s ease}.tab:hover{color:var(--text)}.tab.active{background:var(--green);color:#04120a}.continue-bar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(90deg,#00ff411f,#00ff4108);border:1px solid rgba(0,255,65,.28);border-radius:var(--radius);padding:.9rem 1.25rem;margin-bottom:1.75rem;cursor:pointer;color:var(--text);font-family:var(--font-body);text-align:start;transition:transform .18s ease,box-shadow .18s ease}.continue-bar:hover{transform:translateY(-2px);box-shadow:0 10px 34px #00ff412e}.continue-text{display:grid}.continue-text span{font-size:.82rem;color:var(--text-muted)}.continue-cta{display:inline-flex;align-items:center;gap:.3rem;color:var(--green);font-weight:700;font-size:.9rem}.lesson-view{max-width:880px}.back-btn{margin-bottom:1rem}.lesson-header{margin-bottom:1.25rem}.lesson-header-top{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.7rem}.lesson-header h2{display:flex;align-items:baseline;gap:.7rem}.lesson-id-big{font-family:var(--mono);font-size:1.1rem;color:var(--green)}.lesson-blocks{display:grid;gap:1rem}.block h3{display:flex;align-items:center;gap:.45rem;margin-bottom:.6rem;color:var(--green);font-size:1rem}.block p{color:var(--text);font-size:.96rem}.practice{list-style:none;display:grid;gap:.55rem;font-size:.9rem}.practice li{display:flex;gap:.5rem;color:var(--text-muted)}.practice li:before{content:"▸";color:var(--green)}.practice code{display:block;width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.82rem;color:var(--green);overflow-x:auto}.hint-line{display:flex;align-items:center;gap:.4rem;margin-top:.8rem;font-size:.85rem;color:var(--text-muted)}.hint-line svg{color:var(--amber)}.quiz-block{border-color:#00ff4133}.quiz-q{font-size:1rem;font-weight:600;margin-bottom:.9rem}.quiz-options{display:grid;gap:.55rem}.quiz-option{display:flex;align-items:center;gap:.7rem;width:100%;text-align:start;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .9rem;color:var(--text);cursor:pointer;font-family:var(--font-body);font-size:.92rem;transition:border-color .18s ease,background .18s ease,transform .15s ease}.quiz-option:hover:not(:disabled){transform:translateY(-1px);border-color:var(--green-dim)}.quiz-option:disabled{cursor:default}.opt-key{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;flex:none;background:#ffffff0f;font-family:var(--mono);font-size:.75rem}.opt-text{flex:1}.quiz-option.correct{border-color:var(--green);background:#00ff411a;color:var(--green)}.quiz-option.wrong{border-color:var(--red);background:#ff33331a}.quiz-option.reveal{border-color:var(--green-dim);border-style:dashed}.quiz-feedback{margin-top:.9rem;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.9rem;border:1px solid var(--border)}.quiz-feedback.ok{background:#00ff4114;border-color:#00ff414d}.quiz-feedback.bad{background:#ff333314;border-color:#ff33334d}.quiz-feedback strong{color:var(--green)}.quiz-feedback.bad strong{color:var(--red)}.retry{color:var(--text-muted)}.lesson-nav{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem}.tools-layout{display:grid;grid-template-columns:280px 1fr;gap:1.25rem;align-items:start}.tools-rail{display:grid;gap:.5rem}.tool-tab{display:flex;align-items:center;gap:.7rem;text-align:start;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem;color:var(--text);font-family:var(--font-body);transition:transform .15s ease,border-color .18s ease,background .18s ease}.tool-tab:hover{transform:translateY(-2px);border-color:var(--green-dim)}.tool-tab.active{border-color:var(--green);background:#00ff4112}.tool-tab svg{color:var(--green);flex:none}.tool-tab-text{display:grid;flex:1}.tool-tab-text strong{font-size:.92rem}.tool-tab-text small{font-size:.75rem;color:var(--text-muted)}.tool-dot{color:var(--green)}.tool-card{padding:1.5rem}.tool-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;justify-content:space-between;margin-bottom:1rem}.tool-card-head h3{display:flex;align-items:center;gap:.5rem}.tool-body{display:grid;gap:1rem}.field{display:grid;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}input,select,textarea{width:100%;padding:.6rem .9rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.92rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #00ff4126}input.error{border-color:var(--red)}textarea{resize:vertical;line-height:1.6}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.78rem;padding:.25rem .7rem;cursor:pointer;transition:all .18s ease}.chip:hover{color:var(--text);border-color:var(--green-dim)}.chip.active{color:var(--green);border-color:var(--green);background:#00ff4114}.alert{display:flex;align-items:flex-start;gap:.5rem;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.87rem;border:1px solid var(--border)}.alert svg{flex:none;margin-top:.2rem}.alert.error{background:#ff333314;border-color:#ff333352}.alert.error svg{color:var(--red)}.alert.info{background:#00ff410f;border-color:#00ff413d;color:var(--text-muted)}.alert.info svg{color:var(--green)}.result-panel{border:1px solid var(--border-strong);border-radius:var(--radius);padding:1.1rem;background:var(--surface-2);display:grid;gap:.9rem}.result-head{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem}.result-head svg{color:var(--green)}.result-head .btn{margin-inline-start:auto}.kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem}.kv{display:grid;gap:.15rem;background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .75rem}.kv-key{font-size:.75rem;color:var(--text-muted)}.kv-val{font-size:.92rem;color:var(--green);word-break:break-all}.tool-note{font-size:.82rem;color:var(--text-muted)}.scan-controls{display:grid;grid-template-columns:1fr 1.4fr;gap:.9rem}.scan-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}.scan-meta{font-size:.78rem;color:var(--text-muted)}.scan-progress{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.scan-progress span{display:block;height:100%;background:var(--green);transition:width .2s linear}.port-table{display:grid;gap:.3rem;max-height:340px;overflow-y:auto;padding-inline-end:.3rem}.port-row{display:grid;grid-template-columns:64px 1fr 90px;align-items:center;gap:.6rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .7rem;font-size:.86rem}.port-num{color:var(--green)}.port-service{color:var(--text-muted)}.port-state{text-align:center;font-size:.78rem;font-weight:700;border-radius:999px;padding:.1rem .4rem}.port-state.open{background:#00ff411f;color:var(--green)}.port-state.closed{background:#ffffff0d;color:var(--text-muted)}.port-state.filtered{background:#ffb0201f;color:var(--amber)}.rec-title{font-size:.92rem;margin-top:.2rem}.rec-list{list-style:none;display:grid;gap:.45rem;font-size:.87rem;color:var(--text-muted)}.rec-list li{display:flex;gap:.5rem}.rec-list li:before{content:"›";color:var(--green)}.bars{display:grid;gap:.6rem}.bar-row{display:grid;grid-template-columns:210px 1fr 120px;align-items:center;gap:.6rem;font-size:.82rem}.bar-label{color:var(--text-muted)}.bar-track{height:14px;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;overflow:hidden}.bar-track span{display:block;height:100%;transition:width .6s ease}.bar-track.fast span{background:linear-gradient(90deg,var(--green),rgba(0,255,65,.4))}.bar-track.slow span{background:linear-gradient(90deg,var(--amber),rgba(255,176,32,.4))}.bar-value{text-align:end;color:var(--text);font-size:.78rem}.bar-note{font-size:.78rem;color:var(--text-muted)}.hash-compare{display:grid;gap:.6rem}.hash-value{display:block;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:.76rem;color:var(--green);overflow-x:auto;white-space:nowrap}.skeleton-stack{display:grid;gap:.7rem}.skeleton{background:linear-gradient(90deg,#ffffff08 25%,#00ff4114,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}.log-tool{display:grid;gap:.8rem;margin-top:1rem}.log-head{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:600}.log-head svg{color:var(--green)}.log-table{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;font-size:.82rem}.log-row{display:grid;grid-template-columns:84px 70px 1fr 1fr;gap:.5rem;padding:.4rem .7rem;border-top:1px solid var(--border)}.log-row:first-child{border-top:0}.log-head-row{background:var(--surface-2);color:var(--text-muted);font-weight:700}.log-row .ok{color:var(--green)}.log-row .fail{color:var(--red)}.log-question{display:flex;align-items:center;gap:.4rem;font-size:.87rem;color:var(--text-muted)}.log-question svg{color:var(--green)}.log-choices{display:flex;flex-wrap:wrap;gap:.5rem}.log-choice{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:.82rem;padding:.3rem .8rem;cursor:pointer;transition:all .18s ease}.log-choice:hover{border-color:var(--green-dim);transform:translateY(-1px)}.log-choice.correct{border-color:var(--green);color:var(--green);background:#00ff411a}.log-choice.wrong{border-color:var(--red);color:var(--red)}.log-choice.reveal{border-style:dashed;border-color:var(--green-dim)}.log-feedback{padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:.87rem;border:1px solid var(--border)}.log-feedback.ok{background:#00ff4112;border-color:#00ff4147}.log-feedback.bad{background:#ff333312;border-color:#ff333347}.log-counts{list-style:none;display:grid;gap:.4rem;font-size:.8rem}.log-counts li{display:grid;grid-template-columns:130px 1fr 80px;align-items:center;gap:.6rem;color:var(--text-muted)}.count-bar{height:8px;background:#ffffff0a;border-radius:999px;overflow:hidden}.count-bar span{display:block;height:100%;background:var(--red);opacity:.65}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.25rem}.stat-card{display:grid;gap:.15rem;justify-items:start}.stat-card:hover{transform:translateY(-3px);border-color:var(--green-dim)}.stat-icon{color:var(--green)}.stat-card strong{font-family:var(--mono);font-size:1.7rem;color:var(--green)}.stat-card span{font-size:.82rem;color:var(--text-muted)}.stage-progress{margin-bottom:1.25rem;display:grid;gap:.7rem}.stage-bar-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 2fr 60px;align-items:center;gap:.7rem;font-size:.85rem}.stage-bar-name{color:var(--text-muted)}.stage-bar-track{height:10px;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;overflow:hidden}.stage-bar-track span{display:block;height:100%;background:var(--green);transition:width .5s ease}.stage-bar-count{color:var(--green);font-size:.8rem}.lesson-status,.notes-card,.report-card{margin-bottom:1.25rem;display:grid;gap:.9rem}.status-table{display:grid;gap:.35rem}.status-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:.7rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .75rem}.lesson-id-inline{color:var(--green);font-size:.8rem}.status-title{font-size:.9rem}.notes-card h3,.report-card h3{display:flex;align-items:center;gap:.45rem;font-size:1rem}.notes-card h3 svg{color:var(--green)}.notes-list{list-style:none;display:grid;gap:.7rem}.notes-list li{border-inline-start:2px solid var(--green-dim);padding-inline-start:.75rem}.notes-list .mono{color:var(--green);font-size:.78rem}.notes-list p{font-size:.9rem;color:var(--text-muted);white-space:pre-wrap}.report-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem}.report-actions{display:flex;flex-wrap:wrap;gap:.5rem}.report-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;font-family:var(--mono);font-size:.76rem;line-height:1.7;color:var(--text-muted);overflow-x:auto;max-height:360px;direction:rtl;white-space:pre-wrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:grid;place-items:center;padding:1rem}.modal{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:1.6rem;max-width:440px;width:100%;display:grid;gap:.9rem;box-shadow:var(--shadow-lg)}.modal p{color:var(--text-muted);font-size:.92rem}.modal-actions{display:flex;flex-wrap:wrap;gap:.6rem}.toast-wrap{position:fixed;bottom:1.25rem;inset-inline-start:1.25rem;z-index:100;display:grid;gap:.5rem}.toast{padding:.65rem 1.1rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;box-shadow:var(--shadow-lg);border:1px solid var(--border-strong);background:var(--surface-2)}.toast.success{background:#00ff4124;border-color:#00ff4166;color:var(--green)}.toast.error{background:#ff333324;border-color:#f336;color:#ff8a8a}.footer{position:relative;z-index:1;border-top:1px solid var(--border);margin-top:2rem;background:#0009}.footer-inner{max-width:var(--page);margin:0 auto;padding:1.75rem 1.25rem;display:grid;gap:.7rem}.footer-brand{display:flex;align-items:center;gap:.45rem;font-family:var(--mono);color:var(--green)}.footer-text{font-size:.85rem;color:var(--text-muted);max-width:70ch}.footer-list{list-style:none;display:grid;gap:.4rem;font-size:.8rem;color:var(--text-muted)}.footer-list li{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.footer-list svg{color:var(--green);flex:none}.footer-list code{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:.05rem .35rem;color:var(--green);font-size:.75rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-up{animation:fadeUp .45s ease both}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.glow{opacity:.7}}@media (max-width: 1024px){.hero-grid{grid-template-columns:1fr}.hero-side{justify-items:stretch}.tools-layout{grid-template-columns:1fr}.tools-rail{grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);overflow-x:auto;padding-bottom:.3rem}}@media (max-width: 768px){.navbar .nav-links{display:none}.nav-toggle{display:inline-flex}.nav-meter{margin-inline-start:auto}.bar-row{grid-template-columns:1fr;gap:.3rem}.bar-value{text-align:start}.log-row{grid-template-columns:1fr 1fr}.log-head-row{display:none}}@media (max-width: 640px){.section{padding:1.75rem 1rem}.scan-controls{grid-template-columns:1fr}.port-row{grid-template-columns:56px 1fr 78px;font-size:.8rem}.stage-bar-row{grid-template-columns:1fr 60px}.stage-bar-track{grid-column:1 / -1;order:3}.log-counts li{grid-template-columns:110px 1fr}.status-row{grid-template-columns:44px 1fr;row-gap:.3rem}.lesson-nav{flex-direction:column-reverse}.lesson-nav .btn{width:100%}.toast-wrap{inset-inline:1rem;bottom:1rem;justify-items:stretch}}.sqli-tool,.xss-tool,.hardening-tool,.triage-tool{display:grid;gap:.9rem}.sqli-tool.compact,.xss-tool.compact,.hardening-tool.compact,.triage-tool.compact{margin-top:1rem}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.code-pair{display:grid;gap:.6rem}.code-box{display:grid;gap:.35rem;padding:.75rem .9rem;background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;overflow-wrap:anywhere}.code-box.good{border-color:#00ff4152;background:#00ff410d}.code-box.bad{border-color:#f336;background:#ff33330f}.code-tag{display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.78rem}.code-box.good .code-tag{color:var(--green)}.code-box.bad .code-tag{color:var(--red)}.code-box small{color:var(--text-muted)}.plain-out{display:block;padding:.4rem .6rem;background:#00000073;border-radius:var(--radius-sm);color:var(--text);font-style:normal;overflow-wrap:anywhere}.verdict{font-size:.88rem;color:var(--text);border-inline-start:2px solid var(--green-dim);padding-inline-start:.7rem}.score-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.score-value{display:flex;align-items:baseline;gap:.3rem;font-family:var(--font-head);font-size:1.7rem;color:var(--green)}.score-value small{font-size:.85rem;color:var(--text-muted)}.bar{height:12px;background:#ffffff0d;border:1px solid var(--border);border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green));transition:width .5s ease}.btn-xs{padding:.35rem .7rem;font-size:.78rem;border-radius:999px}.check-list{list-style:none;display:grid;gap:.45rem}.check-row{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.6rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;font-size:.86rem;cursor:pointer}.check-row:hover{border-color:var(--green-dim);background:var(--surface-hover)}.check-row input{accent-color:var(--green);width:16px;height:16px;margin-top:.15rem}.check-w{color:var(--text-muted);font-size:.76rem;font-family:var(--mono)}.fix-plan{display:grid;gap:.5rem;padding:.8rem;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.fix-plan h4{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.fix-plan h4 svg{color:var(--green)}.alert-list{list-style:none;display:grid;gap:.6rem}.alert-card{display:grid;gap:.55rem;padding:.8rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05}.alert-card.ok{border-color:#00ff4159}.alert-card.bad{border-color:#ffb02066}.alert-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.alert-top .badge{display:inline-flex;align-items:center;gap:.3rem}.alert-text{font-size:.88rem;color:var(--text)}.alert-actions{display:flex;gap:.45rem}.alert-why{font-size:.82rem;color:var(--text-muted);border-inline-start:2px solid var(--green-dim);padding-inline-start:.6rem}@media (max-width: 720px){.bar-row{grid-template-columns:1fr}.check-row{grid-template-columns:auto 1fr}.check-w{grid-column:2}}.audit-list{list-style:none;display:grid;gap:.5rem}.audit-row{display:grid;gap:.35rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05}.audit-row.ok{border-color:#00ff414d}.audit-row.bad{border-color:#ffb02061}.audit-title{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:.88rem;font-weight:600;color:var(--text)}.audit-note{font-size:.82rem;color:var(--text-muted)}.mail-subject{font-size:.9rem;color:var(--text)}.code-inline{font-family:var(--mono);font-size:.8rem;color:var(--green);background:#00ff410f;border:1px solid var(--border);border-radius:6px;padding:.15rem .45rem;width:fit-content;max-width:100%;overflow-wrap:anywhere}.alert-why .rec-title{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:.35rem}.phish-tool,.cookie-tool,.secrets-tool,.evidence-tool{display:grid;gap:.9rem}.phish-tool .alert-why,.evidence-tool .alert-why{display:grid}
