/* round 7 module (esd), built by B19: existing variables only, no hex colours.
   F27 ESD and environment log — tiles, out-of-range alerts, strap tests, temperature / humidity gauges, ionizer checks, monthly report;
   .esd-printdoc styles the printed evidence report (its window links css/app.css + this file). */
.esd-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.esd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.esd-alert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--red-l);border:1px solid var(--red-bd,var(--red));border-left:5px solid var(--red);border-radius:10px;padding:9px 14px;margin-bottom:12px;font-size:12.5px}
.esd-alert b{color:var(--red-t,var(--red))} .esd-alert .r{margin-left:auto;display:flex;gap:8px}
.esd-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:1250px){.esd-grid{grid-template-columns:1fr}}
.esd-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.esd-card{margin:0;padding:0;overflow:hidden}
.esd-grid>.esd-card{margin-bottom:14px}
.esd-head{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:11px 16px;border-bottom:1px solid var(--rule2);min-width:0}
.esd-head h3{margin:0;font-size:16px;font-weight:700;white-space:nowrap} .esd-head .sp{flex:1} .esd-head .btn{flex:none}
.esd-meta{font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.esd-fbar{display:flex;gap:6px;flex-wrap:wrap;padding:8px 16px;border-bottom:1px solid var(--rule2)}
.esd-chip{border:1px solid var(--rule);background:var(--paper2);border-radius:999px;height:24px;padding:0 10px;font:inherit;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}
.esd-chip.on{background:var(--dark);border-color:var(--dark);color:var(--on-accent)}
.esd-scroll{overflow-x:auto}   /* R10 fix: the strap list flows in the page (no inner scroll box) */
table.esd-tbl{width:100%;border-collapse:collapse;font-size:13px}
.esd-tbl th{position:sticky;top:0;background:var(--paper2);text-align:left;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);font-weight:700;padding:7px 8px;border-bottom:1px solid var(--rule);white-space:nowrap;z-index:1}
.esd-tbl td{padding:5px 8px;border-bottom:1px solid var(--rule2);vertical-align:middle}
.esd-tbl td.mono{white-space:nowrap;font-size:12px} .esd-tbl td.esd-tm{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink2)}
.esd-tbl tr.esd-bad td{background:var(--red-l)}
.esd-rd{font-size:11.5px;color:var(--ink2)} .esd-nt{font-size:12px;color:var(--ink3)}
.esd-tbl .pill,.esd-ar .pill{white-space:nowrap}
.esd-pf{font:800 11px var(--mono);padding:2px 7px;border-radius:5px;white-space:nowrap}
.esd-pf.p{background:var(--green-l);color:var(--green-t,var(--green))} .esd-pf.f{background:var(--red);color:var(--red-ink,var(--on-accent))} .esd-pf.n{background:var(--grey-l);color:var(--ink2)}
.esd-q{white-space:nowrap;text-align:right} .esd-q .btn{margin-left:4px;opacity:.9} .esd-tbl tr:hover .esd-q .btn{opacity:1}
.esd-note{margin:8px 16px 12px;color:var(--ink2);font-size:12px;line-height:1.4}
.esd-env{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 14px}
@media (max-width:700px){.esd-env{grid-template-columns:1fr}}
.esd-ar{border:1px solid var(--rule);border-radius:10px;padding:8px 10px;background:var(--paper2)}
.esd-ar.o{border-color:var(--red-bd,var(--red));background:var(--red-l)}
.esd-ar h5{margin:0 0 5px;font-size:13px;display:flex;justify-content:space-between;align-items:center;gap:6px}
.esd-gauge{display:grid;grid-template-columns:40px minmax(0,1fr) 64px;gap:6px;align-items:center;font-size:11.5px;margin-top:3px}
.esd-gauge .k{color:var(--ink2);font-weight:600}
.esd-gauge .trk{position:relative;height:8px;background:var(--rule);border-radius:4px}
.esd-band{position:absolute;top:0;bottom:0;background:var(--green-bd,var(--green-l));border-radius:4px}
.esd-gauge .dot{position:absolute;top:-3px;width:4px;height:14px;margin-left:-2px;background:var(--ink);border-radius:2px}
.esd-gauge .dot.o{background:var(--red)}
.esd-gauge .v{font-weight:700;font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap} .esd-gauge .v.o{color:var(--red-t,var(--red))}
.esd-arf{font-size:11.5px;color:var(--ink2);margin-top:5px}
.esd-foot{margin:0;padding:0 16px 12px;font-size:11.5px;color:var(--ink2)}
.esd-rep{margin-top:14px}
.esd-rh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px} .esd-rh h3{margin:0;font-size:16px;font-weight:700;white-space:nowrap} .esd-rh .sp{flex:1} .esd-rh input[type=month]{height:26px;padding:0 8px;font-size:12px}
.esd-st{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.esd-st>div{border:1px solid var(--rule2);border-radius:8px;padding:8px 10px;min-width:0}
.esd-st b{display:block;font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.esd-st span{display:block;font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1100px){.esd-st{grid-template-columns:repeat(3,minmax(0,1fr))}}
.esd-mact{display:flex;align-items:center;gap:8px;margin-top:14px} .esd-mact .sp{flex:1}
.esd-notes{margin-top:10px}
.esd-bands input{width:100%;min-width:60px}
/* printed evidence report */
body.esd-printdoc{background:var(--paper);color:var(--ink);font-family:var(--font);padding:24px 32px;font-size:12.5px}
.esd-printdoc h1{font-size:19px;margin:0 0 4px} .esd-printdoc h2{font-size:14px;margin:18px 0 6px;border-bottom:1px solid var(--rule);padding-bottom:3px}
.esd-printdoc table{border-collapse:collapse;width:100%;font-size:11.5px} .esd-printdoc th,.esd-printdoc td{border:1px solid var(--rule);padding:4px 6px;text-align:left;vertical-align:top}
.esd-printdoc th{background:var(--paper2);font-weight:700}
.esd-pmeta{color:var(--ink2);font-size:11px;margin:0 0 8px}
.esd-sign{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:36px}
.esd-sign div{font-size:11px;color:var(--ink2)} .esd-sign span{display:block;border-bottom:1px solid var(--ink);height:28px}
@media print{body.esd-printdoc{padding:0}}
.esd-card>p.small,.esd-env>p.small{padding:12px 16px;margin:0}
/* v1 polish (V1-H): the evidence report prints black on white, rows never split (its Letter @page is in the print window, js/esd.js) */
@media print{body.esd-printdoc{background:white;color:black} .esd-printdoc th,.esd-printdoc td{border-color:black} .esd-printdoc tr{page-break-inside:avoid} .esd-printdoc h2{page-break-after:avoid}}
/* v1 polish (V1-H): the My Work "ESD log" banner button is a real touch target on tablets and touch screens */
@media (max-width:1100px),(pointer:coarse){.esd-mwban .btn{min-height:44px;padding-left:16px;padding-right:16px}}

/* R10 (G10): strap rows stay one line */
.esd-tbl td{white-space:nowrap} .esd-tbl td:first-child{max-width:190px;overflow:hidden;text-overflow:ellipsis} .esd-tbl .esd-rd{margin-left:4px}
