:root{--bg:#0b1020;--panel:#11182d;--panel2:#151f38;--text:#ecf3ff;--muted:#8fa2c1;--line:#253352;--blue:#4b8cff;--cyan:#44d1d8;--green:#35c98b;--yellow:#f4bf4f;--orange:#ff8a4c;--red:#f45b69;--critical:#c8385a;--shadow:0 18px 55px rgba(0,0,0,.28)}*{box-sizing:border-box}html,body{margin:0;background:linear-gradient(145deg,#08101e,#0b1327 45%,#0a1020);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100%}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:255px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:26px 20px;background:rgba(8,13,27,.92);border-right:1px solid rgba(255,255,255,.07);backdrop-filter:blur(16px);display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin-bottom:34px}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;color:white;font-weight:900;box-shadow:0 10px 30px rgba(75,140,255,.25)}.brand b{display:block;font-size:18px}.brand small{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav a{padding:12px 13px;border-radius:12px;color:#aebbd1;display:flex;gap:12px;align-items:center;font-weight:650;font-size:14px}.sidebar nav a span{width:20px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:linear-gradient(90deg,rgba(75,140,255,.18),rgba(68,209,216,.08));color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--blue)}.sidebar-foot{margin-top:auto;padding-top:20px;display:flex;flex-direction:column;gap:8px;color:var(--muted)}.sidebar-foot a{font-size:13px;color:#c8d8f2}.legal-chip{padding:8px 10px;border:1px solid rgba(53,201,139,.25);background:rgba(53,201,139,.08);color:#80e2b9;border-radius:10px;font-size:11px}.main{min-width:0}.topbar{padding:25px 34px 18px;display:flex;align-items:center;gap:20px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(10,16,32,.55);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.topbar h1{font-size:23px;margin:0 0 4px}.topbar p{margin:0;color:var(--muted);font-size:13px}.topbar>div{flex:1}.menu-toggle{display:none;border:0;background:transparent;color:white;font-size:24px}.content{padding:30px 34px 60px;max-width:1500px;margin:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);padding:10px 15px;border-radius:11px;font-weight:750;font-size:13px;background:#151f38;color:#eaf2ff;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#397cf0,#4f98ff);border-color:transparent;box-shadow:0 8px 24px rgba(75,140,255,.22)}.btn-secondary{background:#121a30}.btn-danger{background:rgba(244,91,105,.12);border-color:rgba(244,91,105,.35);color:#ff9ba4}.btn-sm{padding:7px 10px;font-size:12px}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:linear-gradient(160deg,rgba(20,31,55,.95),rgba(14,22,41,.95));border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.stat{display:flex;align-items:center;justify-content:space-between}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:30px;display:block;margin-top:5px}.stat-icon{width:45px;height:45px;border-radius:13px;background:rgba(75,140,255,.13);display:grid;place-items:center;font-size:20px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:28px 0 14px}.section-title h2{font-size:17px;margin:0}.section-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.table-wrap{overflow:auto;border-radius:16px;border:1px solid var(--line);background:rgba(17,24,45,.8)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:13px 15px;text-align:left;border-bottom:1px solid rgba(255,255,255,.055)}th{color:#8da0bf;font-size:11px;text-transform:uppercase;letter-spacing:.08em;background:rgba(8,14,28,.6)}tr:last-child td{border-bottom:0}tr:hover td{background:rgba(255,255,255,.018)}.badge{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.badge-critical{background:rgba(200,56,90,.18);color:#ff8fab}.badge-high{background:rgba(244,91,105,.16);color:#ff9ba4}.badge-medium{background:rgba(244,191,79,.16);color:#ffd575}.badge-low{background:rgba(75,140,255,.16);color:#84b1ff}.badge-info{background:rgba(143,162,193,.15);color:#bac7da}.badge-completed{background:rgba(53,201,139,.16);color:#74e2b5}.badge-running,.badge-pending{background:rgba(75,140,255,.16);color:#8bb8ff}.badge-failed{background:rgba(244,91,105,.16);color:#ff9ba4}.badge-verified{background:rgba(53,201,139,.16);color:#72dbae}.badge-unverified{background:rgba(244,191,79,.15);color:#ffd575}.score{font-weight:900;font-size:16px}.good{color:var(--green)!important}.warn{color:var(--yellow)!important}.bad{color:var(--red)!important}.muted{color:var(--muted)!important}.form-card{max-width:940px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:750;color:#b8c7de}.field input,.field select,.field textarea{width:100%;background:#0c1428;border:1px solid #2b3a5d;color:white;border-radius:11px;padding:11px 12px;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#4d8dff;box-shadow:0 0 0 3px rgba(75,140,255,.12)}.help{font-size:11px;color:var(--muted);line-height:1.5}.alert{padding:12px 14px;border-radius:11px;margin-bottom:16px;font-size:13px}.alert-error{border:1px solid rgba(244,91,105,.3);background:rgba(244,91,105,.1);color:#ffc0c6}.alert-success{border:1px solid rgba(53,201,139,.3);background:rgba(53,201,139,.1);color:#a4f1d2}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.profile{position:relative}.profile input{position:absolute;opacity:0}.profile label{display:block;height:100%;padding:16px;border:1px solid var(--line);border-radius:14px;background:#0d162a;cursor:pointer}.profile input:checked+label{border-color:var(--blue);box-shadow:0 0 0 3px rgba(75,140,255,.1);background:rgba(75,140,255,.08)}.profile b{display:block;margin-bottom:6px}.profile small{color:var(--muted);line-height:1.5}.checkbox{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:12px;background:#0d162a;border:1px solid var(--line);font-size:12px;color:#c4d0e3}.checkbox input{width:auto;margin-top:2px}.codebox{background:#070c16;border:1px solid #263657;color:#bcd4ff;border-radius:12px;padding:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow:auto}.empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.tool-list{display:grid;gap:10px}.tool{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;background:#0d162a}.tool b{font-size:13px}.tool small{display:block;color:var(--muted);margin-top:3px}.pill-ok,.pill-no{font-size:10px;font-weight:800;padding:5px 8px;border-radius:99px}.pill-ok{background:rgba(53,201,139,.15);color:#75e2b5}.pill-no{background:rgba(244,91,105,.13);color:#ff9ba4}.progress-shell{height:9px;border-radius:99px;background:#090f1e;overflow:hidden;border:1px solid #202f4c}.progress-bar{height:100%;width:35%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:99px;animation:pulsebar 2s ease-in-out infinite}@keyframes pulsebar{0%,100%{opacity:.65;transform:translateX(-20%)}50%{opacity:1;transform:translateX(160%)}}.logbox{background:#060b14;border:1px solid #1f2b44;border-radius:12px;padding:12px;max-height:310px;overflow:auto;font-family:ui-monospace,monospace;font-size:11px;color:#a9bcd9;white-space:pre-wrap}.report-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:14px}.report-paper{background:#f7f9fc;color:#172033;border-radius:20px;padding:38px;box-shadow:0 25px 80px rgba(0,0,0,.3)}.report-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:25px;border-bottom:1px solid #dfe6f0}.report-hero h2{font-size:34px;margin:5px 0 7px;color:#0c1830}.report-hero p{color:#67748a;font-size:12px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:850;color:#557096}.score-ring{width:100px;height:100px;border:11px solid #dfe6f0;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;flex:none}.score-ring.good{border-color:#35c98b}.score-ring.warn{border-color:#f4bf4f}.score-ring.bad{border-color:#f45b69}.score-ring strong{font-size:28px;color:inherit}.score-ring span{font-size:10px;color:#7d8ba0}.report-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}.metric-card{padding:13px;border:1px solid #e1e7ef;border-radius:12px;background:#fff}.metric-card span{font-size:10px;color:#728198;display:block}.metric-card b{font-size:22px;color:#25334a}.severity-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.sev{padding:12px;border-radius:11px;background:#fff;border:1px solid #e2e8f0}.sev b{font-size:20px;display:block}.sev span{font-size:10px;color:#718096}.sev.critical b{color:#c8385a}.sev.high b{color:#e34f60}.sev.medium b{color:#d69a23}.sev.low b{color:#4b8cff}.sev.info b{color:#7c8ba2}.report-section{margin-top:30px}.report-section h3{margin:0 0 12px;color:#17233a;font-size:19px}.report-section p{font-size:12px;line-height:1.65;color:#4f5f75}.section-heading{display:flex;align-items:end;justify-content:space-between}.callout{padding:13px 15px;border-radius:10px;font-size:12px;margin-top:12px}.callout.danger{background:#fff0f2;border-left:4px solid #d9465f}.callout.warning{background:#fff9e9;border-left:4px solid #e5ad31}.callout.success{background:#edfff7;border-left:4px solid #35b77f}.finding{background:#fff;border:1px solid #dfe6f0;border-radius:14px;padding:18px;margin:12px 0;break-inside:avoid}.finding-head{display:flex;justify-content:space-between;align-items:center}.scanner-tag{font-size:9px;color:#718096;font-weight:800;margin-left:7px}.cvss{font-size:10px;font-weight:800;background:#edf1f7;padding:5px 7px;border-radius:7px}.finding h4{color:#17233a;margin:13px 0;font-size:15px}.finding-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.finding h5{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#65758b;margin:0 0 6px}.finding .solution{border-left:3px solid #35c98b;padding-left:12px}.affected,.meta-line{font-size:10px;color:#66768d;margin-top:10px;word-break:break-all}.finding details{margin-top:10px}.finding summary{cursor:pointer;font-size:10px;font-weight:800;color:#4d6690}.finding pre{white-space:pre-wrap;word-break:break-word;background:#111827;color:#dce8f8;padding:10px;border-radius:8px;font-size:9px;max-height:240px;overflow:auto}.methodology{border-top:1px solid #dfe6f0;padding-top:20px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:linear-gradient(160deg,#151f38,#0e172b);border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.login-card .brand{justify-content:center;margin-bottom:24px}.login-card h1{text-align:center;font-size:21px}.login-card>p{text-align:center;color:var(--muted);font-size:12px;margin-bottom:22px}.login-card .btn{width:100%;margin-top:12px}.mini-bars{display:flex;gap:4px;height:40px;align-items:end}.mini-bars i{width:5px;border-radius:3px 3px 0 0;background:linear-gradient(var(--cyan),var(--blue));opacity:.8}@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3,.profile-grid{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:repeat(3,1fr)}.finding-columns{grid-template-columns:1fr}}@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;left:-280px;width:255px;z-index:50;transition:.2s}.sidebar.open{left:0}.menu-toggle{display:block}.topbar{padding:18px}.topbar .btn{display:none}.content{padding:20px}.grid-4,.grid-3,.profile-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.report-paper{padding:20px;border-radius:14px}.report-hero{align-items:flex-start}.report-grid,.severity-strip{grid-template-columns:repeat(2,1fr)}}@media print{body{background:white}.sidebar,.topbar,.report-toolbar{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.report-paper{box-shadow:none;border-radius:0;padding:12mm}.finding{break-inside:avoid}.report-grid{grid-template-columns:repeat(5,1fr)}}

/* WebSentinel AI 1.1.0 · auth/security hardening */
[hidden]{display:none!important}.field-gap{margin-top:12px}.form-submit{margin-top:14px}.btn-block{width:100%}.card-spaced{margin-top:18px}.card-title{font-size:16px;margin-top:0}.text-small{font-size:12px}.stat-status{font-size:18px!important}.stat-medium{font-size:17px!important}.stat-small{font-size:14px!important;line-height:1.35}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.domain-summary-grid{grid-template-columns:1.4fr 1fr 1fr}.domain-title{margin:7px 0}.btn-domain-scan{margin-top:17px}.domains-grid{grid-template-columns:1fr 2fr}.section-title-flush{margin-top:0}.tools-grid{grid-template-columns:1.3fr 1fr 1fr}.filter-card{margin-bottom:16px}.reports-filter-grid{grid-template-columns:2fr 1fr auto}.field-end{justify-content:end}.profile-section{margin-top:20px}.profile-section-label{font-size:12px;font-weight:750}.profile-grid-spaced{margin-top:8px}.checkbox-spaced{margin-top:18px}.alert-spaced{margin-top:14px}.alert-info{background:rgba(75,140,255,.08);border:1px solid rgba(75,140,255,.2);color:#c7d9f8}.scan-submit{margin-top:6px}.log-title{font-size:12px;margin-top:20px;color:#8fa2c1}.logout-form{margin:0}.link-button{appearance:none;background:none;border:0;padding:0;color:#c8d8f2;font:inherit;font-size:13px;cursor:pointer;text-align:left}.link-button:hover{text-decoration:underline}
.auth-bg{position:relative;overflow:hidden}.auth-bg:before,.auth-bg:after{content:"";position:fixed;border-radius:999px;filter:blur(80px);pointer-events:none;opacity:.2}.auth-bg:before{width:360px;height:360px;background:#4b8cff;top:-110px;left:-90px}.auth-bg:after{width:320px;height:320px;background:#44d1d8;right:-100px;bottom:-130px}.auth-card{position:relative;z-index:1}.auth-card-wide{width:min(590px,100%)}.auth-brand{justify-content:center;margin-bottom:18px}.auth-kicker{text-align:center;font-size:10px;letter-spacing:.18em;font-weight:900;color:#70a2ff;margin-bottom:8px}.auth-submit{width:100%;margin-top:14px}.auth-features{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px}.auth-features span{font-size:10px;color:#9fb3d4;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);padding:6px 8px;border-radius:999px}.auth-back{display:block;text-align:center;margin-top:18px;color:#93a8ca;font-size:12px}.otp-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.28em;text-align:center;font-size:22px;font-weight:850}.otp-input.compact{max-width:220px}.auth-recovery{margin-top:18px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}.auth-recovery summary,.otpauth-details summary{cursor:pointer;color:#aebfd9;font-size:12px}.setup-steps{display:grid;gap:10px;margin:16px 0}.setup-steps>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;color:#c6d3e7;font-size:12px;line-height:1.5}.setup-steps b{width:28px;height:28px;border-radius:9px;background:rgba(75,140,255,.15);color:#8ab5ff;display:grid;place-items:center}.secret-box{background:#070c16;border:1px solid #31476f;border-radius:14px;padding:16px;text-align:center;margin:12px 0}.secret-box code{font-size:16px;font-weight:800;letter-spacing:.12em;color:#d6e6ff;word-break:break-all}.code-wrap{white-space:normal;word-break:break-all;margin-top:10px}.auth-note{margin-top:16px;padding:11px 12px;border-radius:11px;background:rgba(244,191,79,.08);border:1px solid rgba(244,191,79,.2);color:#e9d39c;font-size:11px;line-height:1.5}.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.recovery-grid code{background:#070c16;border:1px solid #263657;border-radius:10px;padding:10px 12px;text-align:center;font-size:13px;color:#d6e6ff;letter-spacing:.06em}.security-summary{margin-bottom:18px}.security-grid{grid-template-columns:1fr 1fr;margin-top:18px}.codes-warning{margin-top:16px;margin-bottom:8px}.compact-grid{grid-template-columns:1fr 1fr}.security-grid .card{min-width:0}
@media(max-width:1000px){.domain-summary-grid,.domains-grid,.tools-grid,.reports-filter-grid,.security-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.domain-summary-grid,.domains-grid,.tools-grid,.reports-filter-grid,.security-grid{grid-template-columns:1fr}.recovery-grid{grid-template-columns:1fr}.otp-input.compact{max-width:none}}


/* WebSentinel AI 1.2.0 · asynchronous worker pool */
.scan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.progress-label{font-size:22px;font-weight:900;color:#8bb8ff;min-width:54px;text-align:right}.progress-determinate{height:11px;margin-top:14px}.progress-determinate .progress-value{animation:none;transform:none;opacity:1;transition:width .45s ease;width:0}.scan-head .card-title{margin-bottom:5px}
@media(max-width:760px){.scan-head{gap:10px}.progress-label{font-size:18px}}

/* MFA QR setup */
.mfa-qr-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:18px 0;align-items:start}.mfa-qr-panel,.mfa-manual-panel{min-width:0;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;box-sizing:border-box}.mfa-qr-panel{text-align:center}.mfa-qr-title{font-size:12px;font-weight:850;color:#d8e6fb;margin-bottom:12px}.mfa-qr-frame{width:min(100%,244px);aspect-ratio:1/1;margin:0 auto;padding:12px;box-sizing:border-box;overflow:hidden;background:#fff;border-radius:16px;display:grid;place-items:center;box-shadow:0 18px 42px rgba(0,0,0,.24)}.mfa-qr-hint{margin-top:10px;color:#8fa5c8;font-size:10px;line-height:1.5}.mfa-manual-panel .secret-box{margin-top:10px}.mfa-manual-panel .help{margin:0;color:#9fb3d4}@media(max-width:700px){.mfa-qr-layout{grid-template-columns:1fr}.mfa-qr-frame{width:min(100%,244px)}}

/* WebSentinel AI 1.3.5 · MFA QR entirely local in browser */
.mfa-qr-target{width:220px;height:220px;max-width:100%;max-height:100%;display:block;overflow:hidden;line-height:0}.mfa-qr-target canvas,.mfa-qr-target img{width:220px!important;height:220px!important;max-width:100%!important;max-height:100%!important;object-fit:contain}.mfa-qr-fallback{color:#24344f;font-size:12px;line-height:1.5;text-align:center}.mfa-regenerate-form{margin-top:14px}.mfa-regenerate-form .btn{width:100%}
