:root{--ink:#14202b;--mut:#5b6773;--line:#d9dee3;--bg:#f6f7f9;--good:#0f7a4a;--bad:#b42318;--warn:#a15c07;--acc:#1d4ed8}
*{box-sizing:border-box}
body{margin:0;font:1rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:#fff}
.wrap{max-width:1040px;margin:0 auto;padding:18px 16px 40px}
h1{font-size:1.75rem;line-height:1.2;margin:.2em 0 .4em}
h2{font-size:1.3rem;margin:1.4em 0 .5em}
h3{font-size:1.05rem;margin:1.2em 0 .4em}
.lede{font-size:1.05rem;margin:.2em 0 1em}
#out{border:2px solid var(--ink);border-radius:12px;padding:14px 16px;background:var(--bg)}
#out h2{margin-top:0}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 12px}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.tiles{grid-template-columns:minmax(0,1fr)}}
.tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.tile span{display:block;font-size:.85rem;color:var(--mut)}
.tile b{display:block;font-size:1.6rem;line-height:1.2}
.tile i{display:block;font-style:normal;font-size:.85rem;color:var(--mut)}
.tile.hot{border-color:var(--bad)} .tile.hot b{color:var(--bad)}
.tile.warn{border-color:var(--warn)} .tile.warn b{color:var(--warn)}
.curve svg{width:100%;height:120px;background:#fff;border:1px solid var(--line);border-radius:8px}
.curve .eq{fill:none;stroke:var(--acc);stroke-width:2.2}
.curve .zero{stroke:#9aa4ae;stroke-dasharray:4 4}
.curve .brk{fill:var(--bad)}
.scroll{overflow-x:auto}
.res{border-collapse:collapse;width:100%;background:#fff;font-size:.92rem}
.res th,.res td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.res thead th{background:#eef1f4;font-size:.85rem}
.res small{display:block;color:var(--mut);font-size:.8125rem}
.res tr.bad td.v,.res td.bad{color:var(--bad);font-weight:600}
.res tr.good td.v,.res td.good{color:var(--good);font-weight:600}
.res tr.bad{background:#fff5f4}
.res tr.grp th{background:#f1f3f5;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}
.flags{padding-left:0;list-style:none}
.flags li{border-left:4px solid var(--line);padding:6px 10px;margin:6px 0;background:#fff}
.flags li.bad{border-color:var(--bad)} .flags li.warn{border-color:var(--warn)}
.flags small{display:block;color:var(--mut)}
.summary{background:#fff;border:1px dashed var(--line);padding:10px;border-radius:8px}
.buyline{margin-top:12px;padding:12px;border-radius:10px;background:#fff;border:1px solid var(--acc)}
.btn{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;padding:10px 16px;border-radius:8px;font-weight:600}
.btn2{display:inline-block;background:#fff;color:var(--ink);border:1px solid #9aa4ae;padding:8px 12px;border-radius:8px;font:inherit;font-size:.92rem;cursor:pointer}
.link{background:none;border:0;color:var(--acc);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
fieldset{border:1px solid var(--line);border-radius:10px;margin:16px 0;padding:10px 14px}
legend{font-weight:700;padding:0 6px}
label{display:block;font-size:.92rem;margin:6px 0}
input,select,textarea{display:block;width:100%;font:inherit;padding:7px 9px;border:1px solid #9aa4ae;border-radius:7px;background:#fff;color:var(--ink);font-size:max(1rem,1em)}
textarea{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1rem;white-space:pre;overflow-x:auto}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:700px){.row3{grid-template-columns:minmax(0,1fr)}}
.small{font-size:.85rem;color:var(--mut)}
.fix{border-left:4px solid var(--acc);padding:8px 12px;background:var(--bg)}
.law li{margin:6px 0}
.pro-tools{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.file{position:relative;overflow:hidden}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.note{border:1px solid var(--acc);background:#eef3ff;padding:10px;border-radius:8px}
.key{margin:14px 0;padding:10px;border:1px dashed var(--line);border-radius:8px}
.key input{display:inline-block;width:auto;min-width:260px}
details{border-bottom:1px solid var(--line);padding:8px 0}
summary{cursor:pointer;font-weight:600}
.foot{margin-top:28px}
#print-report{display:none}
@media print{
  body>*:not(#print-report){display:none!important}
  #print-report{display:block;padding:0 6mm;font-size:11pt}
  #print-report table{border-collapse:collapse;width:100%}
  #print-report th,#print-report td{border-bottom:1px solid #ccc;padding:3px 5px;text-align:left}
  #print-report .curve svg{width:100%;height:110px}
  #print-report .eq{fill:none;stroke:#1d4ed8;stroke-width:2}
  #print-report .zero{stroke:#999;stroke-dasharray:4 4}
  #print-report .brk{fill:#b42318}
}
