:root { color-scheme:light; --navy:#0b1630; --ink:#f8f9f7; --muted:#ced2cf; --line:#49504f; --lime:#b4e43e; --yellow:#ffcd00; --panel:#101618; font-family:Arial,Helvetica,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:#fafbf9; color:var(--navy); min-height:100vh; }
a { color:inherit; }
button,input,textarea { font:inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #79ac18; outline-offset:4px; }
.domain-strip { display:block; text-align:center; background:#238516; color:#fff; padding:5px 16px; font-size:12px; letter-spacing:.14em; font-weight:700; text-decoration:none; }
.masthead { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:12px; min-height:136px; padding:8px clamp(16px,3vw,40px); background:#fff; }
.protocol-brand { display:block; justify-self:start; width:min(280px,100%); }
.protocol-logo { display:block; width:100%; height:auto; }
.company-logo { display:block; width:auto; height:122px; object-fit:contain; }
.site-nav { display:flex; justify-content:center; align-items:center; gap:26px; min-height:42px; border-block:1px solid #e0e3df; background:#fff; font-size:12px; }
.site-nav a { display:flex; align-items:center; min-height:42px; text-decoration:none; border-bottom:2px solid transparent; }
.site-nav a[aria-current] { border-bottom-color:var(--navy); }
.protocol-heading { text-align:center; padding:9px 16px 10px; }
h1 { margin:0 0 3px; font-size:clamp(1.7rem,3.2vw,2.25rem); letter-spacing:.06em; line-height:1.2; }
.protocol-heading p { margin:0; font-size:15px; line-height:1.5; }
main { width:min(1168px,100%); margin:0 auto; padding:0 34px calc(24px + env(safe-area-inset-bottom)); }
.card { position:relative; background:var(--panel); color:var(--ink); border:1px solid #202826; border-radius:12px; padding:16px clamp(18px,3.2vw,38px) 24px; }
.intake-content { position:relative; max-width:700px; margin:0 auto; }
.enforcer { position:absolute; right:18px; top:8px; width:100px; height:145px; object-fit:contain; pointer-events:none; }
.eyebrow { color:#f5dc72; font-size:13px; font-weight:700; letter-spacing:.065em; text-transform:uppercase; }
.intake-heading { text-align:center; }
.intake-heading h2 { margin:4px 0 3px; color:#d1e26a; font-size:clamp(1.55rem,3vw,2.15rem); line-height:1.2; }
.intro { margin:4px 0 10px; font-size:14px; line-height:1.45; }
.upload { position:relative; display:flex; align-items:center; justify-content:center; gap:13px; min-height:62px; border:2px dashed #92be39; border-radius:8px; padding:8px 18px; text-align:left; background:#202628; cursor:pointer; }
.upload:focus-within { outline:3px solid var(--yellow); outline-offset:3px; }
.upload-icon { width:40px; height:40px; object-fit:contain; padding:3px; border:2px solid #fff; border-radius:8px; background:#000; filter:brightness(8) contrast(1.6); box-shadow:0 0 0 1px rgba(255,255,255,.2); }
.upload strong { display:block; font-size:17px; }
.upload span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }
input[type=file] { position:absolute; width:1px; height:1px; opacity:0; }
.filename { min-height:28px; padding:5px 18px; background:#252b2d; border-radius:0 0 8px 8px; font-size:14px; overflow-wrap:anywhere; }
.notes-disclosure { margin:8px 0 4px; border-top:1px solid #39413f; padding-top:8px; }
.notes-disclosure > summary { display:none; }
.notes-disclosure:not([open]) > :not(summary) { display:block !important; }
summary { cursor:pointer; color:var(--lime); padding:8px 0; min-height:36px; }
.form-notes { display:block; font-size:14px; font-weight:650; color:#fff; }
textarea { width:100%; min-height:84px; padding:12px; border:1px solid #66716d; border-radius:8px; margin:6px 0 8px; background:#fff; color:#111820; }
button { min-height:44px; border:0; border-radius:8px; padding:10px 18px; font-weight:700; cursor:pointer; }
.primary { display:block; min-width:240px; margin:8px auto 0; background:var(--yellow); color:#101618; }
.primary:hover:not(:disabled) { background:#ffe24b; }
button:disabled { cursor:not-allowed; opacity:.55; }
.stages { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-width:780px; margin:15px auto 0; }
.stage { display:grid; grid-template-columns:31px 1fr; grid-template-rows:auto auto; align-items:center; column-gap:7px; border:1px solid #6d7771; border-radius:24px; padding:8px 10px; color:var(--muted); font-size:11px; }
.stage img { grid-row:1 / 3; width:31px; height:31px; object-fit:contain; padding:2px; border:1.5px solid #fff; border-radius:6px; background:#000; filter:brightness(8) contrast(1.6); }
.stage b { font-size:13px; font-weight:700; }
.stage span { margin-top:2px; }
.stage.active { border-color:var(--yellow); color:var(--yellow); }
.stage.done { border-color:var(--lime); background:var(--lime); color:#111820; }
.stage.done img,.stage.review img { border-color:#fff; background:#000; filter:brightness(8) contrast(1.6); }
.stage.review { background:var(--severity-yellow); color:var(--severity-ink); border-color:var(--severity-yellow); }
.result { display:none; margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.result.visible { display:block; }
.result h2 { margin:0 0 8px; color:#d1e26a; font-size:1.5rem; }
.result h3 { color:#fff; }
.notice { color:var(--muted); line-height:1.5; font-size:.9rem; }
#generated-file { overflow-wrap:anywhere; }
dl { display:grid; grid-template-columns:150px minmax(0,1fr); gap:7px 14px; font-size:.9rem; }
dt { color:var(--lime); }
dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.understand { margin-top:28px; }
.understand h3 { margin:0 0 6px; font-size:1.1rem; }
.understand-summary { margin:0 0 12px; color:var(--muted); font-size:.9rem; line-height:1.5; }
.matrix-wrap { overflow-x:auto; border:1px solid #c9ceca; border-radius:8px; background:#fff; color:#111820; }
table { width:100%; border-collapse:collapse; min-width:670px; font-size:.84rem; }
th,td { padding:11px 12px; border-bottom:1px solid #a3aaa7; text-align:left; vertical-align:top; }
th { background:#263331; color:#fff; font-size:.73rem; letter-spacing:.035em; text-transform:uppercase; }
tbody tr:last-child td { border-bottom:0; }
td:first-child { font-weight:700; }
.missing { color:#97231b; font-weight:700; }
.source,.source-label { color:#485850; }
.source-label { display:block; margin-top:5px; font-size:.76rem; font-weight:500; }
.matrix-wrap summary { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.severity-Yellow { background:var(--severity-yellow); }
.severity-Orange { background:var(--severity-orange); }
.severity-Red { background:var(--severity-red); }
[class^=severity-] { color:var(--severity-ink); }
.badge { display:inline-block; border-radius:5px; padding:5px 8px; font-size:.78rem; font-weight:750; background:#e8edf3; color:#263331; white-space:nowrap; }
.badge.Green { background:var(--severity-green); color:var(--severity-ink); }
.badge.Yellow { background:var(--severity-yellow); color:var(--severity-ink); }
.badge.Orange { background:var(--severity-orange); color:var(--severity-ink); }
.badge.Red { background:var(--severity-red); color:var(--severity-ink); }
.findings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.finding { border:1px solid var(--line); border-radius:9px; padding:16px; background:#1a2223; }
.finding h4 { margin:0 0 8px; color:#d1e26a; }
.finding p { font-size:.9rem; line-height:1.5; }
.wide { grid-column:1 / -1; }
.review-list { line-height:1.5; padding-left:22px; }
.review-list li { margin:6px 0; }
details { margin-top:8px; }
blockquote { margin:10px 0; padding:8px 12px; border-left:3px solid #829879; white-space:pre-wrap; overflow-wrap:anywhere; font-size:.84rem; }
.procedure { margin:28px 0; padding:20px; background:#202a22; border:1px solid #596b47; border-radius:10px; }
.procedure h3 { font-size:1.7rem; margin:6px 0 10px; }
.procedure p { line-height:1.5; }
#product-references { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr)); gap:14px; }
.product-logo { display:block; width:130px; height:140px; object-fit:contain; margin:0 auto 14px; }
.product-reference a { display:inline-flex; align-items:center; min-height:44px; color:#d1e26a; text-underline-offset:4px; }
.product-reference p { margin:3px 0; }
.reference-image { width:100%; height:auto; display:block; margin:16px 0; border-radius:6px; background:#fff; }
.condition-score { --score-color:#cbd0ca; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:20px; margin-top:16px; border:2px solid var(--score-color); border-radius:10px; background:var(--score-background); }
.condition-score.syscon-1 { --score-color:var(--syscon-1); }
.condition-score.syscon-2 { --score-color:var(--syscon-2); }
.condition-score.syscon-3 { --score-color:var(--syscon-3); }
.condition-score.syscon-4 { --score-color:var(--syscon-4); }
.condition-score.syscon-5 { --score-color:var(--syscon-5); }
.condition-score span { display:block; font-size:.9rem; line-height:1.4; color:var(--muted); }
.condition-score strong { display:block; color:var(--score-color); font-size:clamp(1.3rem,3.6vw,2.3rem); margin:6px 0; line-height:1.1; overflow-wrap:anywhere; }
.condition-score .score-label { font-size:.76rem; letter-spacing:.03em; text-transform:uppercase; }
.score-state { color:#f5dc72; font-weight:700; line-height:1.4; }
#score-limitations { color:var(--muted); font-size:.9rem; }
#score-contributions td:first-child { min-width:160px; }
.actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; }
.secondary { color:#fff; background:#30383a; border:1px solid #68726e; }
.secondary:hover { background:#424e48; }
.actions a { display:flex; justify-content:center; align-items:center; text-align:center; min-height:48px; border-radius:8px; padding:12px; font-weight:700; text-decoration:none; }
.actions [aria-disabled=true] { opacity:.48; pointer-events:none; }
.error { display:none; margin-top:14px; border-radius:8px; padding:12px; background:#ffe9e7; color:#8b2018; line-height:1.45; }
.error.visible { display:block; }
.build { margin-top:18px; font-size:.76rem; color:#647063; line-height:1.45; }
.card .build { color:var(--muted); }
.card a { text-underline-offset:3px; }
.build-footer { display:flex; justify-content:space-between; gap:14px; }
@media (max-width:1050px) { .enforcer { display:none; } }
@media (max-width:620px) {
  .domain-strip { font-size:10px; padding-top:calc(5px + env(safe-area-inset-top)); }
  .masthead { min-height:112px; padding:6px 16px; }
  .company-logo { height:100px; }
  .site-nav { gap:24px; }
  .protocol-heading { padding:13px 12px; }
  .protocol-heading p { font-size:12px; }
  main { padding-inline:12px; }
  .card { padding:18px 14px 22px; border-radius:10px; }
  .intro { font-size:13px; margin:9px 0 13px; }
  .eyebrow { font-size:11px; }
  .primary { width:100%; }
  .stages { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .findings { grid-template-columns:1fr; }
  dl { grid-template-columns:1fr; gap:3px; }
  dd { margin-bottom:8px; }
  .actions { grid-template-columns:1fr; }
  .procedure { padding:15px; }
  .result { margin-top:22px; }
  summary { min-height:44px; }
  .build-footer { display:block; }
}
