:root{
  --bg:#f7fafc;
  --panel:#ffffff;
  --panel-soft:#eef6f7;
  --text:#111827;
  --muted:#334155;
  --line:#cbd5e1;
  --accent:#0f766e;
  --accent2:#7c2d12;
  --link:#0f766e;
  --link-hover:#0b4f4a;
  --btn:#115e59;
  --btntext:#ffffff;
  --danger:#b91c1c;
  --danger-text:#ffffff;
  --shadow:0 18px 45px rgba(15,23,42,.14);
  --row-bg:rgba(15,118,110,.07);
}
[data-theme='dark']{
  --bg:#08111f;
  --panel:#101c2d;
  --panel-soft:#172842;
  --text:#f8fafc;
  --muted:#e2e8f0;
  --line:#52657d;
  --accent:#5eead4;
  --accent2:#fdba74;
  --link:#67e8f9;
  --link-hover:#a5f3fc;
  --btn:#2dd4bf;
  --btntext:#06121f;
  --danger:#b91c1c;
  --danger-text:#fef2f2;
  --shadow:0 18px 45px rgba(0,0,0,.45);
  --row-bg:rgba(94,234,212,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,var(--bg),rgba(20,184,166,.12));color:var(--text);font-size:18px;line-height:1.58}
a{color:var(--link);font-weight:800;text-decoration-thickness:.12em;text-underline-offset:.18em}
a:hover,a:focus{color:var(--link-hover)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--panel);padding:.7rem;border-radius:.7rem;color:var(--text);z-index:20}
.topbar{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;align-items:center}
[data-theme='dark'] .topbar{background:rgba(8,17,31,.94)}
.brand{font-weight:900;font-size:1.15rem;display:flex;gap:.55rem;align-items:center}.brand a,nav a,.footer a{color:var(--text);text-decoration:none}
nav{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
nav a,.theme-btn{border:1px solid var(--line);background:var(--panel);padding:.55rem .75rem;border-radius:999px;color:var(--text);font-weight:800}
nav a:hover,nav a:focus,.theme-btn:hover,.theme-btn:focus{background:var(--panel-soft);color:var(--text)}
.pill{background:var(--btn)!important;color:var(--btntext)!important;border-color:transparent!important}.container{width:min(1180px,94vw);margin:2rem auto}
.hero{display:grid;grid-template-columns:1.08fr .92fr;gap:2rem;align-items:center}.eyebrow{color:var(--accent);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.hero h1{font-size:clamp(2.1rem,5vw,4.5rem);line-height:1.02;margin:.3rem 0}.lead{font-size:1.25rem;color:var(--muted);font-weight:650}
.actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:.72rem 1rem;border-radius:1rem;font-weight:900;cursor:pointer;font-size:1rem}.btn:hover,.btn:focus,button.btn:hover,button.btn:focus{background:var(--panel-soft);color:var(--text)}.btn.primary{background:var(--btn);color:var(--btntext);border-color:transparent}.btn.primary:hover,.btn.primary:focus{filter:brightness(1.04);color:var(--btntext)}.btn.danger{background:var(--danger);color:var(--danger-text);border:0}
.photo-grid{display:grid;gap:2.15rem}.impact-figure{margin:0;display:grid;gap:.7rem}.photo-grid img{width:100%;border-radius:1.4rem;box-shadow:var(--shadow);border:1px solid var(--line);background:var(--panel);display:block}.impact-figure figcaption{background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:.85rem 1rem;color:var(--text);font-weight:800;line-height:1.42;box-shadow:0 10px 24px rgba(15,23,42,.08)}.impact-figure figcaption strong{color:var(--accent);font-weight:900}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}.stats div,.card,.form-card{background:var(--panel);border:1px solid var(--line);border-radius:1.25rem;box-shadow:var(--shadow);padding:1.2rem}.stats b{display:block;font-size:2.2rem;color:var(--accent)}.stats span{color:var(--muted);font-weight:900}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:1rem;margin-top:1rem}.card h2{margin-top:0}.card p,.form-card p,.detail p{color:var(--text)}.card b,.detail b{color:var(--text)}
.form-card{max-width:760px;margin:auto}.form-card.wide{max-width:1080px}.form-card form,.filters{display:grid;gap:1rem}label{font-weight:900;color:var(--text)}input,textarea,select{width:100%;margin-top:.35rem;padding:.85rem;border-radius:.85rem;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:1rem}textarea{min-height:110px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.flash{padding:.85rem 1rem;border-radius:1rem;margin:.4rem 0;font-weight:900}.success{background:#dcfce7;color:#14532d}.danger{background:#fee2e2;color:#7f1d1d}.warning{background:#fef3c7;color:#78350f}.info{background:#dbeafe;color:#1e3a8a}
[data-theme='dark'] .success{background:#14532d;color:#dcfce7}[data-theme='dark'] .danger{background:#7f1d1d;color:#fee2e2}[data-theme='dark'] .warning{background:#78350f;color:#fef3c7}[data-theme='dark'] .info{background:#1e3a8a;color:#dbeafe}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);padding:.85rem .75rem;color:var(--text);background:var(--row-bg);border-radius:.8rem;margin-top:.55rem}.row span{color:var(--muted);font-weight:900}.row a{color:var(--link);font-weight:900;text-align:right}.row a:hover,.row a:focus{color:var(--link-hover)}
.scorebox,.score-large{border:2px dashed var(--accent);border-radius:1rem;padding:1rem;background:rgba(20,184,166,.1);font-weight:900}.score-large{display:inline-grid;margin:.5rem 0 1rem}.score-large b{font-size:2.8rem}.severity-low{border-left:8px solid #16a34a}.severity-moderate{border-left:8px solid #d97706}.severity-high{border-left:8px solid #ea580c}.severity-critical{border-left:8px solid #dc2626}.detail{max-width:1000px;margin:auto}.footer{text-align:center;color:var(--muted);padding:2rem;font-weight:700}.filters{grid-template-columns:repeat(5,minmax(130px,1fr));align-items:end}form{margin:0}
@media(max-width:850px){.hero,.grid2,.grid3,.form-grid,.stats{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.filters{grid-template-columns:1fr}.container{margin:1rem auto}body{font-size:17px}.row{align-items:flex-start;flex-direction:column}.row a{text-align:left}}
