/* The coverage explainer modal — shared by the dashboard and the dashcam so
 * one plate's state reads identically wherever you opened it from. Dark-only,
 * same palette as both hosts. */
/* Above the plate sheet (z-index 90): the explainer is usually opened FROM
 * the sheet, and at 80 it rendered behind it — a button that did nothing. */
.covmodal{display:none;position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.62);
  align-items:center;justify-content:center;padding:24px}
.covmodal.open{display:flex}
.covmodal-box{width:min(560px,100%);max-height:82vh;overflow-y:auto;background:#10131c;
  border:1px solid #2a3348;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.55);
  color:#e6e9f0;font-family:Inter,sans-serif}
.covmodal-head{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid #1d2333}
.covmodal-head .word{font-family:Poppins,sans-serif;font-size:15px;letter-spacing:1px}
.covmodal-head .word.green{color:#8ee4a0}
.covmodal-head .word.amber{color:#fcd77d}
.covmodal-head .word.red{color:#ff9a9a}
.covmodal-head .word.magenta{color:#f0abfc}
.covmodal-head .word.grey{color:#a3b0c2}
.covmodal-head .plate{font-family:Poppins,sans-serif;font-size:13px;letter-spacing:.5px;color:#94a3b8}
.covmodal-head .x{margin-left:auto;background:none;border:1px solid #2a3348;color:#94a3b8;
  border-radius:8px;width:28px;height:28px;cursor:pointer;font:inherit;line-height:1}
.covmodal-head .x:hover{color:#e6e9f0}
.covmodal-body{padding:14px 16px 16px}
.covmodal-body p{margin:0 0 10px;font-size:13px;line-height:1.55}
.covmodal-body .means{color:#e6e9f0}
.covmodal-body .implies{color:#94a3b8}
.covmodal-body h4{margin:14px 0 8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:#64748b;font-weight:600}
.covmodal-body .steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.covmodal-body .steps li{display:flex;gap:9px;font-size:12.5px;line-height:1.5;color:#cbd5e1}
.covmodal-body .steps .n{flex:0 0 18px;height:18px;border-radius:50%;background:#1c2740;color:#e6e9f0;
  font-size:10.5px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.covmodal-body .nums{display:grid;grid-template-columns:1fr auto;gap:3px 12px;font-size:12px}
.covmodal-body .nums .k{color:#94a3b8}
.covmodal-body .nums .v{font-family:ui-monospace,Menlo,monospace;text-align:right;color:#e6e9f0}
.covmodal-body .nums .v.bad{color:#f87171;font-weight:700}
.covmodal-body .nums .v.warn{color:#fcd34d}
.covmodal-body .nums .v.ok{color:#4ade80}
.covmodal-body .nums .v.dim{color:#64748b}
/* explainer table — the declared-level matrix, current level highlighted */
.exptable{width:100%;border-collapse:collapse;margin:12px 0 4px;font-size:12px}
.exptable th{text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:#64748b;font-weight:600;padding:0 8px 6px 0;border-bottom:1px solid #1d2333}
.exptable td{padding:6px 8px 6px 0;border-bottom:1px solid #161c2b;color:#cbd5e1;vertical-align:top}
.exptable td:first-child{font-family:Poppins,sans-serif;letter-spacing:.04em;white-space:nowrap;color:#94a3b8}
.exptable tr.on td{background:#12251a;color:#e6e9f0}
.exptable tr.on td:first-child{color:#8ee4a0;font-weight:600}
.expnote{font-size:11px !important;color:#64748b !important;line-height:1.5 !important;margin-top:12px !important}
.covmodal-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.covmodal-acts a{background:#141926;border:1px solid #2a3348;border-radius:8px;padding:6px 12px;
  font-size:12px;color:#e6e9f0;text-decoration:none;white-space:nowrap}
.covmodal-acts a:hover{border-color:#4ade80}
