:root{
  --ink:#12171E; --ink2:#2B3743; --mute:#5F6E7B;
  --flag:#B4271A; --flagbg:#FBEBE9;
  --coach:#9A6100; --coachbg:#FDF4E5;
  --good:#0E6A58; --goodbg:#E9F3F0;
  --line:#C6D0D8; --soft:#E3E9ED;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:Georgia,"Times New Roman",ui-serif,serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:#8792A0;color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55}
.page{background:#fff;max-width:820px;margin:24px auto;padding:0 0 40px;box-shadow:0 6px 30px rgba(0,0,0,.25)}
.toolbar{max-width:820px;margin:16px auto 0;display:flex;gap:8px}
.toolbar button{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff;cursor:pointer}
.toolbar button.ghost{background:#fff;color:var(--ink)}

.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}
.pad{padding:0 48px}

/* masthead */
.mast{background:var(--ink);color:#fff;padding:34px 48px 26px}
.mast .eyebrow{color:#8CA0AF}
.mast h1{font-family:var(--mono);font-size:34px;font-weight:700;letter-spacing:-.02em;margin:8px 0 8px}
.mast p{color:#B7C4CE;max-width:60ch;margin:0;font-size:13px}
.meta{background:var(--ink2);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:16px 48px}
.meta .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#93A6B4}
.meta .val{font-family:var(--mono);font-size:14px;margin-top:4px}

/* verdict + tally */
.verdict{margin:22px 48px 0;border:1px solid #E4B9B4;border-left:5px solid var(--flag);background:var(--flagbg);border-radius:3px;padding:16px 18px}
.verdict.pass{border-color:#BFDCD4;border-left-color:var(--good);background:var(--goodbg)}
.verdict.coach{border-color:#EBD7AE;border-left-color:var(--coach);background:var(--coachbg)}
.verdict .eyebrow{color:var(--flag)}
.verdict.pass .eyebrow{color:var(--good)} .verdict.coach .eyebrow{color:var(--coach)}
.verdict h2{font-size:22px;margin:6px 0 8px;color:var(--flag)}
.verdict.pass h2{color:var(--good)} .verdict.coach h2{color:var(--coach)}
.verdict p{margin:0;font-size:13px;color:var(--ink2)}
.tally{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden;margin:16px 48px 0}
.tally div{background:#fff;padding:16px;text-align:center}
.tally .n{font-family:var(--mono);font-size:30px;font-weight:700}
.tally .n.flag{color:var(--flag)} .tally .n.good{color:var(--good)}
.tally .k{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:6px}

/* sections */
section{margin-top:30px}
.hr{border-top:2px solid var(--ink);margin:0 48px}
h3.sec{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:17px;margin:16px 48px 4px}
h3.sec .key{font-family:var(--mono);font-size:11px;font-weight:700;color:#fff;background:var(--ink);padding:2px 7px;border-radius:2px}
.lede{margin:0 48px 12px;color:var(--mute);font-size:12px}

.callout{margin:0 48px 12px;border-left:4px solid var(--good);background:var(--goodbg);padding:12px 14px;border-radius:0 3px 3px 0}
.callout.flag{border-color:var(--flag);background:var(--flagbg)}
.callout.coach{border-color:var(--coach);background:var(--coachbg)}
.callout .eyebrow{color:var(--good)} .callout.flag .eyebrow{color:var(--flag)} .callout.coach .eyebrow{color:var(--coach)}
.quote{font-family:var(--mono);font-size:12.5px;color:var(--ink2);margin:6px 0 0;padding-left:10px;border-left:2px solid var(--line)}

table.std{width:calc(100% - 96px);margin:0 48px;border-collapse:collapse;font-size:13px}
table.std th{text-align:left;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:0 8px 7px;border-bottom:2px solid var(--ink)}
table.std td{padding:9px 8px;border-bottom:1px solid var(--soft);vertical-align:top}
table.std td.said{font-family:var(--mono);color:var(--flag)}
table.std td.req{font-family:var(--mono);color:var(--good)}
.chip{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:2px}
.chip.pass{background:var(--goodbg);color:var(--good)} .chip.fail{background:var(--flag);color:#fff}
.chip.marginal{background:var(--coachbg);color:var(--coach)} .chip.na{background:var(--soft);color:var(--mute)}

/* score rows with segmented meters */
.qrow{display:grid;grid-template-columns:34px 150px 1fr;gap:14px;align-items:start;margin:0 48px;padding:12px 0;border-bottom:1px solid var(--soft)}
.qrow .score{font-family:var(--mono);font-size:22px;font-weight:700}
.meter{display:flex;gap:4px;margin-top:6px}
.meter i{height:12px;flex:1;background:var(--soft);border-radius:1px}
.meter i.on{background:var(--ink)}
.meter i.on.low{background:var(--flag)}
.qrow .lbl{font-weight:700;font-size:13px}
.qrow .note{color:var(--mute);font-size:12px}
.avg{font-family:var(--mono);margin:12px 48px 0;font-size:14px}

.checks{margin:0 48px}
.checks div{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--soft);font-size:13px}
.checks .box{width:14px;height:14px;border:1.5px solid var(--ink2);border-radius:2px;flex-shrink:0;margin-top:2px}
.coach-list{margin:0 48px;padding:0;list-style:none;counter-reset:c}
.coach-list li{counter-increment:c;padding:9px 0 9px 40px;position:relative;border-bottom:1px solid var(--soft);font-size:13px}
.coach-list li::before{content:counter(c,decimal-leading-zero);position:absolute;left:0;font-family:var(--mono);font-weight:700;color:var(--flag)}
.foot{margin:26px 48px 0;padding-top:14px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;color:var(--mute);line-height:1.6}

@media print{
  body{background:#fff}
  .toolbar{display:none}
  .page{box-shadow:none;margin:0;max-width:none}
  section{break-inside:avoid}
  @page{margin:14mm}
}
