:root{
  --blue:#1d6fe8;
  --blue-dark:#1555b6;
  --blue-soft:#eef6ff;
  --ink:#142033;
  --muted:#64748b;
  --line:#dce4ee;
  --panel:#ffffff;
  --bg:#f4f7fb;
  --critical:#c62828;
  --critical-bg:#fff3f3;
  --attention:#b66a00;
  --attention-bg:#fff8e8;
  --manual:#5b56a5;
  --manual-bg:#f4f2ff;
  --success:#16794c;
  --success-bg:#eefaf4;
  --shadow:0 18px 50px rgba(29,53,87,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
}
a{color:var(--blue-dark)}
button,input{font:inherit}
button{cursor:pointer}
.shell{width:min(1120px,calc(100% - 32px));margin-inline:auto}
.skip-link{
  position:fixed;left:16px;top:-70px;z-index:9999;
  padding:12px 16px;background:#fff;color:#000;border:3px solid #ffbf47;border-radius:8px
}
.skip-link:focus{top:16px}
.site-header{
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20
}
.header-inner{
  min-height:72px;
  display:flex;align-items:center;justify-content:space-between;gap:20px
}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{width:42px;height:42px;color:var(--blue);flex:none}
.brand-mark svg{display:block;width:100%;height:100%}
.brand-name{font-weight:800;font-size:18px;line-height:1.1}
.brand-sub{font-size:11px;color:var(--muted);margin-top:3px}
.sbs-link{font-size:13px;font-weight:700;text-decoration:none}
.sbs-link:hover{text-decoration:underline}
.hero{
  background:
    radial-gradient(circle at 75% 15%,rgba(59,130,246,.18),transparent 30%),
    linear-gradient(135deg,#0f1f38 0%,#173b73 62%,#1d6fe8 140%);
  color:#fff;
  padding:76px 0 68px
}
.hero-inner{max-width:900px;margin-inline:auto}
.eyebrow{
  margin:0 0 8px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--blue);
}
.hero .eyebrow{color:#9ecbff}
h1,h2,h3,p{overflow-wrap:anywhere}
h1{
  margin:0;
  max-width:760px;
  font-size:clamp(36px,6vw,64px);
  line-height:1.02;
  letter-spacing:-.035em
}
.hero-copy{
  max-width:790px;
  margin:20px 0 30px;
  color:#dceaff;
  font-size:18px
}
.scan-form{
  max-width:860px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.25);
  border-radius:16px;
  padding:18px;
  backdrop-filter:blur(6px)
}
.scan-form label{display:block;font-weight:800;margin:0 0 8px}
.scan-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.scan-row input{
  width:100%;
  min-height:54px;
  padding:0 16px;
  border:2px solid transparent;
  border-radius:10px;
  color:#152238;
  background:#fff;
  outline:none
}
.scan-row input:focus{border-color:#8fc5ff;box-shadow:0 0 0 4px rgba(143,197,255,.18)}
.scan-row button{
  min-width:172px;
  min-height:54px;
  border:0;
  border-radius:10px;
  padding:0 20px;
  background:#fff;
  color:#1555b6;
  font-weight:800;
  display:flex;align-items:center;justify-content:center;gap:10px
}
.scan-row button:hover{background:#eef6ff}
.scan-row button:disabled{opacity:.75;cursor:wait}
.form-note{font-size:12px;color:#c9ddf8;margin:9px 2px 0}
.legal-note{
  max-width:860px;
  margin-top:14px;
  font-size:12px;
  color:#d6e6fb
}
.spinner{
  width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(21,85,182,.25);border-top-color:#1555b6;
  display:none;animation:spin .75s linear infinite
}
.loading .spinner{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.status-region{padding-top:24px}
.status-box{
  border-radius:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 8px 24px rgba(29,53,87,.05)
}
.status-box.error{border-color:#efb6b6;background:#fff5f5;color:#8a1f1f}
.status-box.info{border-color:#bad8ff;background:#f3f8ff;color:#214c80}
.results{padding:26px 0 64px}
.result-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  margin-bottom:18px
}
.result-head h2,.panel-heading h2{margin:0;font-size:26px;line-height:1.2}
.result-meta{margin:7px 0 0;color:var(--muted);font-size:13px}
.secondary-button{
  border:1px solid #bed3ec;
  border-radius:9px;
  background:#fff;
  color:#245c99;
  padding:10px 14px;
  font-weight:700
}
.secondary-button:hover{background:#f4f9ff}
.score-grid{
  display:grid;
  grid-template-columns:2fr repeat(3,1fr);
  gap:12px;
  margin-bottom:18px
}
.score-card{
  min-height:126px;
  padding:18px;
  border-radius:15px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  display:flex;flex-direction:column;justify-content:center
}
.score-card>strong{font-size:32px;line-height:1}
.score-card>span:last-child{margin-top:7px;color:var(--muted);font-size:12px}
.score-main{background:linear-gradient(135deg,#10213d,#184985);color:#fff;border-color:transparent}
.score-label{font-size:12px;color:#cfe4ff;font-weight:700}
.score-value-wrap{display:flex;align-items:baseline;gap:5px;margin-top:4px}
.score-value{font-size:58px;line-height:1}
.score-value-wrap span{font-size:16px;color:#cfe4ff}
.score-message{margin:6px 0 0;color:#dceaff;font-size:12px}
.summary-icon{width:11px;height:11px;border-radius:50%;margin-bottom:10px}
.critical-dot{background:var(--critical)}
.attention-dot{background:var(--attention)}
.manual-dot{background:var(--manual)}
.panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:20px
}
.tested-panel{margin-bottom:18px}
.panel-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
  margin-bottom:16px
}
.panel-heading.compact{margin-bottom:12px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filter{
  border:1px solid #ced9e6;
  border-radius:999px;
  background:#fff;
  padding:7px 11px;
  font-size:11px;
  font-weight:800;
  color:#556477
}
.filter.active{background:#eaf4ff;color:#1555b6;border-color:#9fcaff}
.findings-list{display:grid;gap:10px}
.finding{
  border:1px solid var(--line);
  border-left-width:5px;
  border-radius:12px;
  overflow:hidden
}
.finding.critical{border-left-color:var(--critical)}
.finding.attention{border-left-color:var(--attention)}
.finding-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  padding:13px 14px;
  background:#fbfcfe
}
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;padding:4px 8px;
  font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase
}
.badge.critical{background:var(--critical-bg);color:var(--critical)}
.badge.attention{background:var(--attention-bg);color:var(--attention)}
.finding-title{font-weight:800;font-size:14px}
.finding-count{font-size:12px;color:var(--muted);font-weight:700}
.finding-body{padding:14px}
.finding-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:14px
}
.detail-label{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  font-weight:900;
  color:#728196;
  letter-spacing:.08em;
  text-transform:uppercase
}
.finding-body p{margin:0;font-size:13px;color:#344256}
.criterion{
  display:inline-block;
  margin-top:7px;
  color:#1555b6;
  font-size:11px;
  font-weight:800
}
.examples{display:grid;gap:7px}
.example{
  border:1px solid #e0e6ed;
  border-radius:8px;
  background:#f8fafc;
  padding:9px 10px
}
.selector{
  display:block;
  font-family:Consolas,"Courier New",monospace;
  font-size:11px;
  font-weight:700;
  color:#253448
}
.snippet{
  display:block;
  margin-top:3px;
  font-family:Consolas,"Courier New",monospace;
  font-size:10px;
  color:#6a7687;
  white-space:pre-wrap
}
.more-examples{font-size:11px;color:var(--muted);margin-top:7px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.check-list li{
  position:relative;
  padding:9px 10px 9px 34px;
  border-radius:9px;
  background:var(--success-bg);
  color:#245a43;
  font-size:12px
}
.check-list li::before{
  content:"✓";
  position:absolute;left:11px;top:8px;
  font-weight:900;color:var(--success)
}
.manual-list{display:grid;gap:9px}
.manual-item{
  border-radius:10px;
  border:1px solid #dfdcf9;
  background:var(--manual-bg);
  padding:11px 12px
}
.manual-item strong{display:block;font-size:12px;color:#474289;margin-bottom:4px}
.manual-item p{margin:0;font-size:11px;color:#5e5b78}
.manual-how{margin-top:5px!important;color:#36324f!important}
.empty-state{
  border:1px dashed #bdd5c8;
  background:#f3fbf6;
  color:#356348;
  border-radius:10px;
  padding:18px;
  text-align:center;
  font-size:13px
}
.result-disclaimer{
  margin-top:18px;
  border:1px solid #cdd9e7;
  border-radius:12px;
  padding:14px 16px;
  background:#edf4fb;
  color:#44556a;
  font-size:12px
}
.site-footer{
  background:#0e1b2e;
  color:#b9c8db;
  padding:24px 0;
  font-size:12px;
  text-align:center
}
.site-footer a{color:#fff;font-weight:800;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
@media(max-width:900px){
  .score-grid{grid-template-columns:1fr 1fr}
  .score-main{grid-column:1/-1}
  .two-column{grid-template-columns:1fr}
}
@media(max-width:680px){
  .shell{width:min(100% - 22px,1120px)}
  .site-header{position:static}
  .header-inner{min-height:64px}
  .sbs-link{display:none}
  .hero{padding:48px 0 44px}
  .hero-copy{font-size:16px}
  .scan-row{grid-template-columns:1fr}
  .scan-row button{width:100%}
  .result-head{align-items:flex-start;flex-direction:column}
  .score-grid{grid-template-columns:1fr 1fr}
  .panel{padding:15px}
  .panel-heading{align-items:flex-start;flex-direction:column}
  .finding-head{grid-template-columns:1fr auto}
  .finding-head .badge{grid-column:1/-1;justify-self:start}
  .finding-grid{grid-template-columns:1fr}
}
@media(max-width:420px){
  .score-grid{grid-template-columns:1fr}
  .score-main{grid-column:auto}
  .filters{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .filter:first-child{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .spinner{animation:none}
}
