/* Automated reports (reports-auto.js, docs/REPORTS.md): the Reports page, the schedule editor and runner drawer, run history, the customer-page panel, and the in-page report layout (the HTML mirror of the PDF).
   Foundation language: hairline rules, mono for figures, status as words. Both themes use the app's variables; nothing here is a default browser control (controls.css styles checkboxes and selects). */
.rp-page .ph h1{display:flex;align-items:center;gap:8px}
.rp-page .ph .sp{flex:1}
.rp-banner{margin:0 0 12px;max-width:900px}
.rp-tabs{margin:2px 0 14px;max-width:100%;overflow-x:auto}
.rp-intro{margin:0 0 12px;max-width:80ch}
.rp-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:0 0 16px}
.rp-type{display:grid;gap:6px;align-content:start;text-align:left;border:1px solid var(--bd);border-radius:var(--r);background:var(--sf);padding:12px 14px;cursor:pointer;font:inherit;color:inherit;min-width:0}
.rp-type:hover{border-color:var(--ink3);background:var(--sf2)}
.rp-type:focus-visible,.rp-t tr.rp-go:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.rp-type b{font:600 14px var(--font)}
.rp-type .rp-tags{display:flex;gap:6px;flex-wrap:wrap}
.rp-type p{margin:0;color:var(--ink2);font-size:12.5px}
.rp-tag{display:inline-block;font:600 10.5px var(--mono);letter-spacing:.05em;color:var(--ink3);border:1px solid var(--bd2);border-radius:var(--r);padding:1px 6px}
.rp-tag.t-warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,var(--bd2))}
.rp-tag.t-money{color:var(--acc);border-color:color-mix(in srgb,var(--acc) 45%,var(--bd2))}
.rp-t td.r,.rp-t th.r{text-align:right}
.rp-t td.m{font-family:var(--mono)}
.rp-t td .st{white-space:nowrap}
.rp-t tr.rp-go{cursor:pointer}
.rp-t tr.rp-go:hover td{background:var(--sel)}
.rp-t td b{font-weight:600}
.rp-t td .v{display:block}
.rp-t .rp-sub{display:block;color:var(--ink3);font-size:11.5px}
.rp-empty{border:1px dashed var(--bd2);border-radius:var(--r);padding:18px;color:var(--ink2);max-width:640px}
.rp-empty b{display:block;color:var(--ink);margin-bottom:4px}
.rp-empty .btn{margin-top:10px}
.rp-foot{margin-top:10px;max-width:90ch}

/* the drawer: a panel from the right (wide for a report), a full sheet on phones */
.rp-drawer{position:fixed;inset:0;z-index:40}
.rp-drawer[hidden]{display:none}
.rp-dr-bg{position:absolute;inset:0;background:var(--scrim,rgba(0,0,0,.45))}
.rp-dr-panel{position:absolute;top:0;right:0;bottom:0;width:min(520px,100%);background:var(--sf);border-left:1px solid var(--bd2);overflow:auto;padding:0 0 28px;display:flex;flex-direction:column}
.rp-drawer.wide .rp-dr-panel{width:min(1040px,100%)}
.rp-dr-h{position:sticky;top:0;z-index:2;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--sf);border-bottom:1px solid var(--bd)}
.rp-dr-t{display:flex;gap:10px;align-items:center;min-width:0;font:600 15px var(--font);flex-wrap:wrap}
.rp-dr-b{padding:14px 18px;display:grid;gap:14px;align-content:start}
.rp-form{display:grid;gap:12px}
.rp-row{display:grid;gap:4px;min-width:0}
.rp-row>label,.rp-lbl{font:600 10.5px var(--font);letter-spacing:.07em;text-transform:uppercase;color:var(--ink3)}
.rp-row .sel,.rp-row input[type=text],.rp-row textarea{width:100%;box-sizing:border-box}
.rp-row textarea{min-height:84px;resize:vertical;font:13px/1.45 var(--font);color:var(--ink);background:var(--sf);border:1px solid var(--bd2);border-radius:var(--r);padding:8px 10px}
.rp-row input[type=text]{height:32px;font:13px var(--font);color:var(--ink);background:var(--sf);border:1px solid var(--bd2);border-radius:var(--r);padding:0 10px}
.rp-row input[type=text]:focus,.rp-row textarea:focus{outline:2px solid var(--acc);outline-offset:-1px}
.rp-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rp-3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:10px}
.rp-2>*,.rp-3>*,.rp-row .sel{min-width:0}
.rp-hint{color:var(--ink3);font-size:12px;margin:0}
.rp-chips{display:flex;gap:6px;flex-wrap:wrap}
.rp-chip{border:1px solid var(--bd2);border-radius:var(--r);background:var(--sf2);padding:1px 7px;font:12px var(--mono);cursor:pointer;color:var(--ink2)}
.rp-chip:hover{border-color:var(--acc);color:var(--acc)}
.rp-checks{display:grid;gap:6px}
.rp-checks label{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer;min-height:26px}
.rp-checks label small{color:var(--ink3);font-size:11.5px}
.rp-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rp-actions .sp{flex:1}
.rp-msg{min-height:1px;margin:0;font-size:12.5px}
.rp-confirm{border:1px solid color-mix(in srgb,var(--warn) 45%,var(--bd));background:var(--warnBg);border-radius:var(--r);padding:12px 14px;display:grid;gap:8px}
.rp-confirm ul{margin:0;padding-left:18px;display:grid;gap:2px}
.rp-confirm .rp-notes{color:var(--ink2);font-size:12.5px}
.rp-ok{border:1px solid color-mix(in srgb,var(--ok) 45%,var(--bd));background:var(--okBg);border-radius:var(--r);padding:10px 14px}
.rp-kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 12px;margin:0;font-size:12.5px}
.rp-kv dt{color:var(--ink3)}
.rp-kv dd{margin:0;overflow-wrap:anywhere}
.rp-view{padding:0 18px 8px}
.rp-viewbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 18px;border-bottom:1px solid var(--bd);background:var(--sf2)}
.rp-viewbar .sp{flex:1}
body.rp-dr-open{overflow:hidden}
.rp-cust{border:1px solid var(--bd);border-radius:var(--r);background:var(--sf);padding:12px 14px;display:grid;gap:10px}
.rp-cust .sh{margin:0}
.rp-cust .rp-line1{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rp-cust .rp-runs{display:grid;gap:4px;font-size:12.5px}
.rp-cust .rp-runs a{color:var(--acc)}

/* the report itself (the HTML mirror of the PDF) */
.rp-doc{max-width:860px;margin:14px auto 0;background:var(--sf);color:var(--ink);border:1px solid var(--bd2);border-radius:var(--r);padding:26px 30px 30px;box-shadow:0 1px 0 var(--bd)}
.rp-doc .rp-l,.rp-cover .rp-l{font:600 10.5px var(--font);letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.rp-cover{border-bottom:3px solid var(--acc);padding-bottom:16px;margin-bottom:6px}
.rp-cover h1{font:400 28px/1.15 var(--font);margin:6px 0 2px;text-wrap:balance}
.rp-cover .rp-sub{margin:0 0 12px;font-size:15px;color:var(--acc)}
.rp-cover dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px;margin:0}
.rp-cover dt{font:600 10px var(--font);letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.rp-cover dd{margin:2px 0 0;font-size:14px}
.rp-sec{margin:22px 0 0}
.rp-sec>header{display:flex;gap:10px;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:4px}
.rp-sec>header h2{font:600 16px var(--font);margin:0;flex:1}
.rp-meta{font-size:11px;color:var(--ink3);margin:5px 0 10px}
.rp-sum{font-size:14.5px;line-height:1.6;margin:0 0 12px}
.rp-note{border-left:3px solid var(--bd2);margin:8px 0;padding:2px 0 2px 10px;font-size:12.5px;color:var(--ink2)}
.rp-note.t-warn{border-color:var(--warn);color:var(--warn)}.rp-note.t-ok{border-color:var(--ok);color:var(--ok)}.rp-note.t-crit{border-color:var(--crit);color:var(--crit)}
.rp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0 12px}
.rp-card{border:1px solid var(--bd);border-radius:var(--r);padding:9px 11px;display:grid;gap:2px;align-content:start;min-width:0;border-left-width:3px}
.rp-card .rp-l{font:600 10px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.rp-card .rp-v{font:600 19px/1.25 var(--mono);overflow-wrap:anywhere}
.rp-card .rp-s{font-size:11.5px;color:var(--ink3)}
.rp-card.t-ok{border-left-color:var(--ok)}.rp-card.t-ok .rp-v{color:var(--ok)}
.rp-card.t-warn{border-left-color:var(--warn)}.rp-card.t-warn .rp-v{color:var(--warn)}
.rp-card.t-crit{border-left-color:var(--crit)}.rp-card.t-crit .rp-v{color:var(--crit)}
.rp-dt{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:auto;margin:6px 0 12px}
.rp-dt th{position:static;font:600 10px var(--font);letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);text-align:left;padding:6px 8px;border-bottom:1.5px solid var(--ink);background:none;white-space:nowrap}
.rp-dt td{padding:6px 8px;height:auto;border-bottom:1px solid var(--bd);vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.rp-dt .r{text-align:right;font-family:var(--mono)}
.rp-tw{overflow-x:auto}
.rp-drawer .sr,.rp-page .sr,.rp-cust .sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rp-bars{display:grid;gap:5px;margin:8px 0 12px}
.rp-bar{display:grid;grid-template-columns:minmax(120px,36%) 1fr 90px;gap:8px;align-items:center;font-size:12.5px}
.rp-bl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-bt{height:10px;background:var(--sf3);border-radius:2px;overflow:hidden}
.rp-bt i{display:block;height:100%;background:var(--acc)}
.rp-bt i.b-crit{background:var(--crit)}.rp-bt i.b-warn{background:var(--warn)}.rp-bt i.b-ok{background:var(--ok)}
.rp-bd{font:12px var(--mono);text-align:right}
.rp-strip{margin:8px 0 12px;display:grid;gap:4px}
.rp-cells{display:flex;gap:2px;flex-wrap:wrap}
.rp-cells i{display:block;width:14px;height:16px;border-radius:2px;background:var(--bd2)}
.rp-cells i.c-u{background:var(--ok)}.rp-cells i.c-d{background:var(--warn)}.rp-cells i.c-x{background:var(--crit)}.rp-cells i.c-n{background:var(--bd2)}
.rp-cap{font-size:11.5px;color:var(--ink3)}
.rp-line{margin:8px 0 12px}
.rp-line svg{display:block;width:100%;height:150px;overflow:visible}
.rp-line svg text{font:10px var(--mono);fill:var(--ink3)}
.rp-line svg .g{stroke:var(--bd2);stroke-width:.6;stroke-dasharray:3 3}
.rp-line svg .ln{fill:none;stroke:var(--acc);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.rp-list{margin:6px 0 12px;padding-left:18px;display:grid;gap:4px}
.rp-list .rp-s{display:block;font-size:11.5px;color:var(--ink3)}
.rp-recs{display:grid;gap:8px;margin:8px 0}
.rp-rec{display:grid;grid-template-columns:62px 1fr;gap:10px;border:1px solid var(--bd);border-radius:var(--r);padding:9px 12px}
.rp-rec .rp-lv{font:700 10.5px var(--mono);letter-spacing:.05em;padding-top:2px}
.rp-rec.l-crit .rp-lv{color:var(--crit)}.rp-rec.l-warn .rp-lv{color:var(--warn)}.rp-rec.l-info .rp-lv{color:var(--acc)}
.rp-rec b{font-weight:600}
.rp-rec p{margin:3px 0 0;color:var(--ink2);font-size:12.5px;line-height:1.5}
.rp-rec code{display:block;margin-top:4px;font:11.5px var(--mono);color:var(--ink3);overflow-wrap:anywhere}

@media print{.rp-drawer .rp-dr-h,.rp-viewbar{display:none}.rp-doc{border:0;box-shadow:none}}
@media (max-width:719px){
  .rp-types{grid-template-columns:1fr}
  .rp-dr-panel,.rp-drawer.wide .rp-dr-panel{width:100%;border-left:0}
  .rp-2,.rp-3{grid-template-columns:1fr}
  .rp-doc{padding:16px 14px 20px;border-left:0;border-right:0;border-radius:0;margin-top:6px}
  .rp-view{padding:0}
  .rp-cover h1{font-size:23px}
  .rp-bar{grid-template-columns:1fr 70px;grid-template-areas:"l d" "t t"}
  .rp-bl{grid-area:l;white-space:normal}.rp-bd{grid-area:d}.rp-bt{grid-area:t}
  .rp-kv{grid-template-columns:96px minmax(0,1fr)}
  /* phone: each row of the lists is a card (the first cell on top, the rest labelled by data-l) */
  .rp-t.rp-cards-m,.rp-t.rp-cards-m tbody,.rp-t.rp-cards-m tr,.rp-t.rp-cards-m td{display:block;width:auto;box-sizing:border-box}
  .rp-t.rp-cards-m thead{display:none}
  .rp-t.rp-cards-m tr{border:1px solid var(--bd);border-radius:var(--r);background:var(--sf);margin:0 0 10px;padding:8px 12px}
  .rp-t.rp-cards-m td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0;padding:4px 0;text-align:right;white-space:normal;background:none!important}
  .rp-t.rp-cards-m td::before{content:attr(data-l);color:var(--ink3);font:600 10.5px var(--font);letter-spacing:.06em;text-transform:uppercase;text-align:left;flex:none}
  .rp-t.rp-cards-m td[data-l=""]::before{content:none}
  .rp-t.rp-cards-m td.first{order:-1;display:block;text-align:left;font-size:14px}
  .rp-t.rp-cards-m td.first::before{content:none}
  .rp-t.rp-cards-m td .rp-sub{text-align:right}
  .rp-doc .rp-dt td{display:block;padding:3px 0;border:0}
  .rp-doc .rp-dt thead{display:none}
  .rp-doc .rp-dt tr{display:block;border:1px solid var(--bd);border-radius:var(--r);margin:0 0 8px;padding:6px 10px}
  .rp-doc .rp-dt td::before{content:attr(data-l);display:block;margin-bottom:1px;font:600 10px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
  .rp-doc .rp-dt .r{text-align:left}
}
