[hidden]{display:none!important} img{max-width:100%} html{color-scheme:light}
/* Layout: summary strip on top, then two alphabetical card grids (WordPress / Other), each card = screenshot + status chips; owner controls in a slide-over panel. */
:root{
  --bg:#f3f4f6; --surface:#ffffff; --fg:#1b2330; --muted:#5d6b7e; --line:#d9deE6;
  --accent:#0d7c8a; --accent-ink:#ffffff;
  --ok:#1f8a4c; --ok-bg:#e3f4ea; --warn:#b76c00; --warn-bg:#fff2d9; --bad:#c23b3b; --bad-bg:#fde5e5; --idle:#7b8794; --idle-bg:#eceff3;
  --display:"Barlow Condensed",Impact,"Arial Narrow",sans-serif; --body:"Barlow","Helvetica Neue",Arial,sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#131920; --surface:#1c242e; --fg:#e8ecf1; --muted:#9aa7b8; --line:#2d3845;
  --accent:#3ab4c3; --accent-ink:#0b1216;
  --ok:#4ccd7f; --ok-bg:#163522; --warn:#f0b24f; --warn-bg:#3d2e12; --bad:#f07070; --bad-bg:#3f1c1c; --idle:#8a97a8; --idle-bg:#242d38; color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#131920; --surface:#1c242e; --fg:#e8ecf1; --muted:#9aa7b8; --line:#2d3845;
  --accent:#3ab4c3; --accent-ink:#0b1216;
  --ok:#4ccd7f; --ok-bg:#163522; --warn:#f0b24f; --warn-bg:#3d2e12; --bad:#f07070; --bad-bg:#3f1c1c; --idle:#8a97a8; --idle-bg:#242d38; color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.45;margin:0}
.wrap{max-width:1280px;margin:0 auto;padding-block:20px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.05}
h1{font-size:34px;font-weight:700;letter-spacing:.01em}
h2{font-size:22px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:var(--muted);font-weight:600}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px}
a{color:var(--accent)}
button{font:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:18px}
header.top .sub{color:var(--muted);margin-top:4px}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.btn{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:6px;padding:8px 14px;font-weight:500}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.danger{color:var(--bad)}
.btn.small{padding:5px 10px;font-size:13px}
.btn[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}

.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:28px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-width:0}
.tile .n{font-family:var(--display);font-size:32px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tile .l{color:var(--muted);font-size:13px;margin-top:4px}
.tile.ok .n{color:var(--ok)} .tile.bad .n{color:var(--bad)} .tile.warn .n{color:var(--warn)}

section.group{margin-bottom:36px}
.group-head{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--line);padding-bottom:6px;margin-bottom:14px}
.group-head .count{font-family:var(--mono);font-size:13px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.empty{color:var(--muted);padding:18px;border:1px dashed var(--line);border-radius:8px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;min-width:0;border-top:4px solid var(--idle)}
.card[data-state="ok"]{border-top-color:var(--ok)}
.card[data-state="warn"]{border-top-color:var(--warn)}
.card[data-state="bad"]{border-top-color:var(--bad)}
.shot{aspect-ratio:16/10;max-width:100%;background:var(--idle-bg);position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.shot img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.shot .none{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center;padding:12px}
.card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.card .name{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card h3{font-size:20px;font-weight:600}
.card .url{font-family:var(--mono);font-size:12px;color:var(--muted);word-break:break-all;text-decoration:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--idle-bg);color:var(--idle);font-variant-numeric:tabular-nums}
.chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.warn{background:var(--warn-bg);color:var(--warn)} .chip.bad{background:var(--bad-bg);color:var(--bad)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.chip.plain::before{display:none}
.issues{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
.issues li{margin:2px 0}
.updates{font-size:13px;border-top:1px dashed var(--line);padding-top:8px}
.updates summary{cursor:pointer;font-weight:600;color:var(--warn)}
.updates table{width:100%;border-collapse:collapse;margin-top:6px;font-family:var(--mono);font-size:12px}
.updates td{padding:3px 0;border-bottom:1px solid var(--line);vertical-align:top}
.updates td:last-child{text-align:right;white-space:nowrap;color:var(--muted)}
.meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);font-family:var(--mono);flex-wrap:wrap}
.card .actions{display:flex;gap:6px;flex-wrap:wrap}

/* slide-over */
.panel{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--surface);border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.18);z-index:20;overflow:auto;padding-block:calc(20px + env(safe-area-inset-top,0px)) 32px;padding-left:20px;padding-right:max(20px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:14px}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:19}
.panel h2{color:var(--fg);text-transform:none;letter-spacing:0;font-size:26px}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:13px;font-weight:600}
.field .hint{font-size:12px;color:var(--muted)}
.field input,.field select,.field textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);width:100%}
.panel .row{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.notice{font-size:13px;padding:10px 12px;border-radius:6px;background:var(--warn-bg);color:var(--warn)}
.notice.ok{background:var(--ok-bg);color:var(--ok)}
.status-line{font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.card{transition:transform .15s ease}.card:hover{transform:translateY(-2px)}}
@media (max-width:480px){h1{font-size:28px}.grid{grid-template-columns:1fr}}
#lastCheckPre{white-space:pre-wrap;word-break:break-word;background:var(--bg);padding:10px;border-radius:6px;margin:0;font-size:12px}
