/* ============================================================================
 * HOODY THEME — the one central visual identity for the whole app family.
 * Served from ONE url; every app <link>s it and NEVER copies it.
 * Change this file → every app adopts on next load. Fail-safe if it fails to load.
 * Palette + type stolen faithfully from the Data Room ADMIN (grey / volt-yellow, sharp, Geist+Oxanium).
 * ==========================================================================*/
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&family=Oxanium:wght@500;600;700;800&display=swap');

:root{
  --bg:#DEDEDE; --fg:#101010;
  --primary:#EEFF22; --primary-soft:#F2FF8E;         /* the volt-yellow accent */
  --card:#E8E8E8; --card-2:#F8F8F8;
  --muted:#6B6B6B; --border:#D6D6D6; --border-strong:#5C5C5C;
  --link:#0741ff; --danger:#d4183d;
  --shadow:0 10px 22px rgba(0,0,0,.12); --shadow-sm:0 2px 8px rgba(0,0,0,.08);
  --font-sans:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Geist Mono','SF Mono',ui-monospace,monospace;
  --font-heading:'Oxanium',var(--font-sans);
  --radius:0;                                         /* Hoody admin = sharp corners */
  --volt:var(--primary); --volt-tint:var(--primary-soft);
  --volt-dim:rgba(238,255,34,.28); --volt-glow:rgba(238,255,34,.18);
  --black:#101010; --white:#fff; --fg-sec:#303030; --fg-muted:var(--muted);
  --border-v:rgba(16,16,16,.4);
  --font:var(--font-heading); --mono:var(--font-mono);
  color-scheme:light;
}

.h-body{ margin:0; background:var(--bg); color:var(--fg); font-family:var(--font-sans); font-weight:400;
  line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
.h-body ::-webkit-scrollbar{width:9px;height:9px}
.h-body ::-webkit-scrollbar-track{background:var(--card)}
.h-body ::-webkit-scrollbar-thumb{background:var(--border-strong)}
.h-body ::-webkit-scrollbar-thumb:hover{background:var(--fg)}

/* headings — Oxanium, tight, a touch of tracking */
.h-h1{font-family:var(--font-heading);font-size:clamp(1.6rem,4vw,2.3rem);font-weight:800;line-height:1.05;letter-spacing:-.01em;margin:0;color:var(--fg)}
.h-h2{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;margin:0;color:var(--fg)}
.h-tag{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-sec)}
.h-mut{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}

/* nav / header — light bar, sharp bottom border */
.h-nav{position:sticky;top:0;z-index:100;background:var(--card-2);border-bottom:2px solid var(--fg);
  padding:.85rem 2rem;display:flex;align-items:center;gap:14px}
.h-logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.h-logo-mark{display:inline-block;width:86px;height:22px;background:var(--fg);
  -webkit-mask:url('hoody-logo.svg') no-repeat left center/contain; mask:url('hoody-logo.svg') no-repeat left center/contain}

/* card — light, sharp, subtle shadow, volt hover accent */
.h-card{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.15rem;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .16s,border-color .2s;position:relative}
.h-card:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}

/* buttons — sharp. primary = volt-yellow fill, dark text. */
.h-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;
  font-family:var(--font-sans);font-weight:600;font-size:.82rem;letter-spacing:.01em;
  padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--card);color:var(--fg);
  transition:all .15s}
.h-btn:hover{border-color:var(--fg);background:#fff}
.h-btn--volt{background:var(--primary);border-color:var(--fg);color:var(--black);font-weight:700}
.h-btn--volt:hover{background:var(--primary-soft);box-shadow:2px 2px 0 var(--fg)}
.h-btn--link{background:var(--link);border-color:var(--fg);color:#fff}
.h-btn--link:hover{background:#0a4bff;box-shadow:2px 2px 0 var(--fg)}
.h-btn--ghost{background:transparent;border-color:var(--border);color:var(--fg-sec)}
.h-btn--ghost:hover{border-color:var(--fg);color:var(--fg);background:var(--card)}

/* pill / chip */
.h-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.68rem;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;color:var(--fg-sec);border:1px solid var(--border-strong);
  border-radius:var(--radius);padding:.24rem .6rem;background:var(--card)}
.h-pill .v{color:#101010;background:var(--primary);padding:0 .3em;font-weight:700}

/* status dot */
.h-dot{width:9px;height:9px;border-radius:50%;background:var(--muted);display:inline-block;border:1px solid var(--fg)}
.h-dot--on{background:var(--primary)}
.h-dot--off{background:var(--danger)}

/* table */
.h-table{width:100%;border-collapse:collapse;font-size:.85rem}
.h-table thead{background:var(--primary-soft)}
.h-table th{font-family:var(--font-heading);font-weight:700;font-size:.74rem;letter-spacing:.02em;text-align:left;
  padding:.7rem 1rem;color:var(--fg);border-bottom:2px solid var(--fg)}
.h-table td{padding:.65rem 1rem;border-bottom:1px solid var(--border);color:var(--fg-sec)}
.h-table tr:hover td{background:var(--card)}
