/* AthletiSync Client widgets — every color is a variable so Elementor Style controls (and Site Settings globals) drive it.
 *
 * How theming works (v2.8):
 *   .hc                      base palette (DARK — unchanged from earlier versions so existing pages and shortcodes look the same)
 *   .hc--light / .hc-theme-light .hc    light preset (the default for NEW widgets; the widget's "Theme" control adds hc-theme-* on the wrapper)
 *   .hc--dark  / .hc-theme-dark  .hc    explicit dark preset
 *   .hc--inherit / .hc-theme-inherit .hc  transparent cards, text/links follow the page, accent follows Elementor's global accent
 *   Brand colours from Settings → Branding are injected as a tiny inline `.hc{--hc-accent:…}` block (see Views\View::brand_css()).
 *   Per-widget Style controls write `{{WRAPPER}} .hc{--hc-*:…}` which always wins over the presets (higher specificity, no !important).
 *
 * Every element-level var below falls back to a base var, so setting only the 6 base vars restyles everything;
 * the element vars exist so a site can fine-tune e.g. badges or tabs without touching the rest. */
.hc{
  --hc-surface:#141715;--hc-line:#262B28;--hc-accent:#35B44A;--hc-ink:#F4F6F3;--hc-muted:#A9B0AC;--hc-radius:0px;
  --hc-seat-open:var(--hc-accent);--hc-seat-taken:#2A3230;--hc-full:#3E3411;--hc-full-ink:#FFD84D;
  --hc-btn-bg:var(--hc-accent);--hc-btn-ink:#06140A;
  /* element-level (all fall back to the base vars above) */
  --hc-heading:var(--hc-ink);--hc-body-ink:var(--hc-ink);--hc-meta-ink:var(--hc-muted);
  --hc-link:var(--hc-accent);--hc-link-hover:var(--hc-link);
  --hc-btn-bg-hover:var(--hc-btn-bg);--hc-btn-ink-hover:var(--hc-btn-ink);--hc-btn-radius:var(--hc-radius);--hc-btn-shadow:none;--hc-btn-shadow-hover:var(--hc-btn-shadow);
  --hc-ghost-bg:transparent;--hc-ghost-ink:var(--hc-ink);--hc-ghost-line:var(--hc-line);--hc-ghost-bg-hover:var(--hc-ghost-bg);--hc-ghost-ink-hover:var(--hc-ghost-ink);--hc-ghost-line-hover:var(--hc-ghost-line);
  --hc-input-bg:var(--hc-surface);--hc-input-ink:var(--hc-ink);--hc-input-line:var(--hc-line);--hc-input-focus:var(--hc-accent);--hc-input-radius:var(--hc-radius);--hc-input-placeholder:var(--hc-muted);
  --hc-badge-bg:var(--hc-seat-taken);--hc-badge-ink:var(--hc-muted);--hc-badge-radius:var(--hc-radius);
  --hc-badge-open-bg:var(--hc-accent);--hc-badge-open-ink:var(--hc-btn-ink);
  --hc-badge-full-bg:var(--hc-full);--hc-badge-full-ink:var(--hc-full-ink);
  --hc-badge-wait-bg:var(--hc-badge-full-bg);--hc-badge-wait-ink:var(--hc-badge-full-ink);
  --hc-badge-enrolled-bg:var(--hc-badge-open-bg);--hc-badge-enrolled-ink:var(--hc-badge-open-ink);
  --hc-tab-bg:transparent;--hc-tab-ink:var(--hc-muted);--hc-tab-line:var(--hc-line);--hc-tab-on-bg:var(--hc-ink);--hc-tab-on-ink:var(--hc-surface);--hc-tab-on-line:var(--hc-tab-on-bg);--hc-tab-radius:var(--hc-radius);
  --hc-divider:var(--hc-line);--hc-table-head:var(--hc-muted);--hc-table-stripe:transparent;
  --hc-empty-ink:var(--hc-muted);
  --hc-card-shadow:none;--hc-card-shadow-hover:var(--hc-card-shadow);--hc-card-line-hover:var(--hc-accent);--hc-card-padding:18px 20px;
  --hc-ok-bg:#123a1c;--hc-ok-ink:#b8f0c4;--hc-error-bg:#3a1414;--hc-error-ink:#ffb4b4;
  --hc-modal-bg:var(--hc-surface);--hc-modal-ink:var(--hc-ink);--hc-modal-backdrop:rgba(0,0,0,.72);
  --hc-child-color:var(--hc-accent);
  color:var(--hc-ink)
}
/* Many elements below (.hc-field, .hc-btn, …) set their own `display`, which — per the CSS cascade —
   beats the user-agent stylesheet's `[hidden]{display:none}` even though nothing here looks more specific.
   Without this, JS that does `el.hidden = true` on one of them (e.g. the sign-in "check your email" swap)
   silently has no visual effect. Re-assert it once, scoped to `.hc`, so every current and future widget gets it. */
.hc [hidden]{display:none!important}
/* ---- presets ---- (keep these selectors at 2 classes max so Elementor's {{WRAPPER}} .hc overrides still win) */
.hc--light,.hc-theme-light .hc{
  --hc-surface:#FFFFFF;--hc-line:#E3E7E4;--hc-ink:#111814;--hc-muted:#5B665F;--hc-radius:8px;
  --hc-seat-taken:#D8DDD9;--hc-full:#FFF1C2;--hc-full-ink:#6B4E00;--hc-btn-ink:#FFFFFF;
  --hc-link:color-mix(in srgb,var(--hc-accent) 78%,#000);--hc-link-hover:color-mix(in srgb,var(--hc-accent) 60%,#000);
  --hc-btn-bg-hover:color-mix(in srgb,var(--hc-btn-bg) 88%,#000);--hc-ghost-line-hover:var(--hc-accent);
  --hc-badge-ink:#38423C;--hc-tab-on-bg:#111814;--hc-tab-on-ink:#FFFFFF;--hc-table-stripe:#F6F8F6;
  --hc-card-shadow:0 1px 2px rgba(16,24,20,.05);--hc-card-shadow-hover:0 6px 18px rgba(16,24,20,.10);
  --hc-ok-bg:#E6F6EA;--hc-ok-ink:#145A2A;--hc-error-bg:#FCE8E8;--hc-error-ink:#8A1C1C;--hc-modal-backdrop:rgba(17,24,20,.55)
}
.hc--dark,.hc-theme-dark .hc{
  --hc-surface:#141715;--hc-line:#262B28;--hc-ink:#F4F6F3;--hc-muted:#A9B0AC;--hc-seat-taken:#2A3230;--hc-full:#3E3411;--hc-full-ink:#FFD84D;--hc-btn-ink:#06140A;
  --hc-btn-bg-hover:color-mix(in srgb,var(--hc-btn-bg) 85%,#fff);--hc-ghost-line-hover:var(--hc-accent)
}
.hc--inherit,.hc-theme-inherit .hc{
  --hc-surface:transparent;--hc-ink:currentColor;--hc-muted:color-mix(in srgb,currentColor 62%,transparent);--hc-line:color-mix(in srgb,currentColor 18%,transparent);
  --hc-seat-taken:color-mix(in srgb,currentColor 14%,transparent);--hc-accent:var(--e-global-color-accent,#35B44A);--hc-full:#FFF1C2;--hc-full-ink:#6B4E00;
  --hc-tab-on-bg:var(--hc-accent);--hc-tab-on-ink:var(--hc-btn-ink);--hc-input-bg:Canvas;--hc-input-ink:CanvasText;--hc-modal-bg:Canvas;--hc-modal-ink:CanvasText;
  --hc-ok-bg:#E6F6EA;--hc-ok-ink:#145A2A;--hc-error-bg:#FCE8E8;--hc-error-ink:#8A1C1C;--hc-card-shadow:none
}
.hc *{box-sizing:border-box}
.hc-card{background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-radius);padding:var(--hc-card-padding);box-shadow:var(--hc-card-shadow);transition:box-shadow .15s,border-color .15s}
a.hc-card:hover,button.hc-card:hover,.hc-card.is-clickable:hover{box-shadow:var(--hc-card-shadow-hover);border-color:var(--hc-card-line-hover)}
.hc-session-list{display:grid;gap:var(--hc-session-list-gap, 10px)}
.hc-day{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--hc-meta-ink);margin:8px 0 0}
.hc-slot{display:grid;grid-template-columns:auto 1fr auto auto;gap:var(--hc-slot-gap, 18px);align-items:center}
.hc-time{font-size:var(--hc-time-size, 28px);line-height:1;font-weight:700;color:var(--hc-heading)}
.hc-time small{display:block;font-size:11px;letter-spacing:.12em;color:var(--hc-meta-ink);margin-top:6px;font-weight:600}
.hc-title{font-weight:600;color:var(--hc-heading)}
.hc-body{color:var(--hc-body-ink)}
.hc-muted{color:var(--hc-muted);font-weight:400}
.hc-seats{display:flex;gap:var(--hc-seats-gap, 4px);align-items:center;margin-top:8px}
.hc-seats i{width:12px;height:16px;transform:skewX(-12deg);background:var(--hc-seat-open)}
.hc-seats i.taken{background:var(--hc-seat-taken)}
.hc-seats-dots .hc-seats i{width:9px;height:9px;border-radius:50%;transform:none}
.hc-seats-text .hc-seats i{display:none}
.hc-seats .hc-label{margin-left:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--hc-meta-ink)}
.hc-slot.is-full .hc-seats .hc-label{color:var(--hc-full-ink)}
.hc-btn{display:inline-block;background:var(--hc-btn-bg);color:var(--hc-btn-ink);padding:10px 16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:14px;border:2px solid var(--hc-btn-bg);text-decoration:none;border-radius:var(--hc-btn-radius);box-shadow:var(--hc-btn-shadow);transition:background .15s,color .15s,border-color .15s,box-shadow .15s;min-height:44px;line-height:1.4}
.hc-btn:hover,.hc-btn:focus-visible{background:var(--hc-btn-bg-hover);color:var(--hc-btn-ink-hover);border-color:var(--hc-btn-bg-hover);box-shadow:var(--hc-btn-shadow-hover)}
.hc-btn--ghost{background:var(--hc-ghost-bg);color:var(--hc-ghost-ink);border-color:var(--hc-ghost-line);box-shadow:none}
.hc-btn--ghost:hover,.hc-btn--ghost:focus-visible{background:var(--hc-ghost-bg-hover);color:var(--hc-ghost-ink-hover);border-color:var(--hc-ghost-line-hover);box-shadow:none}
.hc-btn:focus-visible,.hc-tab:focus-visible,.hc-chip:focus-visible,.hc-link:focus-visible{outline:2px solid var(--hc-accent);outline-offset:2px}
@media (max-width:600px){.hc-slot{grid-template-columns:1fr 1fr}.hc-slot .hc-btn{grid-column:1/-1;text-align:center}}

/* teams */
.hc-roster-heading{margin:0 0 10px;color:var(--hc-muted)}
.hc-roster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--hc-roster-grid-gap, 10px)}
.hc-roster-cols-2 .hc-roster-grid{grid-template-columns:repeat(2,1fr)}
.hc-roster-cols-4 .hc-roster-grid{grid-template-columns:repeat(4,1fr)}
.hc-player{display:flex;gap:var(--hc-player-gap, 14px);align-items:center}
.hc-jersey{font-size:var(--hc-jersey-size, 22px);color:var(--hc-accent);min-width:40px}
.hc-role{font-size:13px;margin-top:2px}
.hc-grade{margin-top:6px}
.hc-team-schedule{display:grid;gap:var(--hc-team-schedule-gap, 10px)}
.hc-month{margin:8px 0 0;color:var(--hc-muted)}
.hc-event{grid-template-columns:auto 1fr auto;display:grid;gap:var(--hc-event-gap, 18px);align-items:center}
.hc-badge{display:inline-block;padding:3px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;border-radius:var(--hc-badge-radius);background:var(--hc-badge-bg);color:var(--hc-badge-ink)}
.hc-badge--kind{background:transparent;border:1px solid var(--hc-line);color:var(--hc-muted);margin-right:6px}
.hc-badge--win{background:var(--hc-badge-open-bg);color:var(--hc-badge-open-ink)}
.hc-badge--loss{background:var(--hc-badge-full-bg);color:var(--hc-badge-full-ink)}
.hc-badge--tie{background:var(--hc-badge-bg);color:var(--hc-ink)}
.hc-pass-card{max-width:360px;display:grid;gap:var(--hc-pass-gap, 10px)}
.hc-pass-name{font-size:var(--hc-pass-name-size, 20px)}
.hc-pass-price{font-size:var(--hc-pass-price-size, 32px)}
.hc-pass-price small{display:block;font-size:12px;letter-spacing:.08em;color:var(--hc-meta-ink);margin-top:4px;font-weight:600}
.hc-pass-note{margin:0}
@media (max-width:600px){.hc-roster-grid,.hc-roster-cols-2 .hc-roster-grid,.hc-roster-cols-4 .hc-roster-grid{grid-template-columns:1fr 1fr}.hc-event{grid-template-columns:1fr 1fr}.hc-event .hc-badge--win,.hc-event .hc-badge--loss,.hc-event .hc-badge--tie{grid-column:1/-1}}

/* ---------- shared UI (tabs, forms, modal) ---------- */
.hc-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.hc-tab{background:var(--hc-tab-bg);border:1px solid var(--hc-tab-line);color:var(--hc-tab-ink);padding:10px 16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px;cursor:pointer;border-radius:var(--hc-tab-radius);font-family:inherit;min-height:44px;transition:background .15s,color .15s,border-color .15s}
.hc-tab:hover{border-color:var(--hc-accent);color:var(--hc-ink)}
.hc-tab.is-on{background:var(--hc-tab-on-bg);color:var(--hc-tab-on-ink);border-color:var(--hc-tab-on-line)}
.hc-pane{display:none}.hc-pane.is-on{display:block}
.hc-daystrip{display:flex;gap:var(--hc-daystrip-gap, 6px);overflow-x:auto;padding-bottom:6px;margin:0 0 var(--hc-daystrip-margin-bottom, 14px);scrollbar-width:none}
.hc-daybtn{flex:0 0 auto;min-width:var(--hc-daybtn-min-width, 64px);background:var(--hc-surface);border:1px solid var(--hc-line);color:var(--hc-ink);padding:var(--hc-daybtn-padding, 10px 8px);cursor:pointer;display:grid;gap:4px;justify-items:center;border-radius:var(--hc-radius);font-family:inherit}
.hc-daybtn strong{font-size:var(--hc-daybtn-number-size, 20px);line-height:1}.hc-daybtn .hc-label{font-size:var(--hc-daybtn-label-size, 10px);letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted)}
.hc-daybtn:hover{border-color:var(--hc-accent)}
.hc-daybtn.is-on{border-color:var(--hc-accent);box-shadow:inset 0 -3px 0 var(--hc-accent)}
.hc-daybtn.is-empty{opacity:.45}
.hc-intro{margin:0 0 14px;color:var(--hc-muted)}
.hc-fine{font-size:12px;margin:10px 0 0}
.hc-accent{color:var(--hc-accent)}
.hc-input{width:100%;background:var(--hc-input-bg);border:1px solid var(--hc-input-line);color:var(--hc-input-ink);padding:11px 12px;font:inherit;font-size:15px;border-radius:var(--hc-input-radius);min-height:44px}
.hc-input::placeholder{color:var(--hc-input-placeholder);opacity:.8}
.hc-input:focus{outline:2px solid var(--hc-input-focus);outline-offset:0}
.hc-input.is-invalid{border-color:var(--hc-error-ink);outline-color:var(--hc-error-ink)}
.hc-input--sm{max-width:120px}
select.hc-input{appearance:auto}
textarea.hc-input{min-height:80px}
.hc-field{display:grid;gap:6px;margin:0 0 14px}
.hc-field .hc-label,.hc-card>.hc-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--hc-meta-ink);display:block;margin-bottom:8px}
.hc-field-error{font-size:12px;color:var(--hc-error-ink);margin:0}
.hc-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:8px 0;cursor:pointer}
.hc-check input{margin-top:3px;accent-color:var(--hc-accent)}
.hc-check.is-done{opacity:.6}
.hc-error{background:var(--hc-error-bg);color:var(--hc-error-ink);padding:10px 12px;font-size:14px;margin:0 0 12px;border-radius:var(--hc-radius)}
.hc-ok{background:var(--hc-ok-bg);color:var(--hc-ok-ink);padding:10px 12px;font-size:14px;margin:0 0 12px;border-radius:var(--hc-radius)}
.hc-btn--wide{width:100%;text-align:center}
.hc-btn--sm{padding:7px 12px;font-size:12px;min-height:36px}
.hc-btn[disabled]{opacity:.5;cursor:wait}
.hc-btn.is-busy{opacity:.7;pointer-events:none}
button.hc-btn{cursor:pointer;font-family:inherit}
.hc-link{background:none;border:0;padding:0;color:var(--hc-link);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.hc-link:hover{text-decoration:underline;color:var(--hc-link-hover)}
.hc-row{margin:0 0 12px}
.hc-slots{display:flex;flex-wrap:wrap;gap:8px;min-height:44px}
.hc-slotbtn{background:var(--hc-surface);border:1px solid var(--hc-line);color:var(--hc-ink);padding:10px 14px;font-weight:700;cursor:pointer;border-radius:var(--hc-radius);font-family:inherit;min-height:44px}
.hc-slotbtn:hover,.hc-slotbtn.is-on{border-color:var(--hc-accent);color:var(--hc-accent)}
.hc-packs,.hc-pricing,.hc-staff{display:grid;gap:var(--hc-grid-gap, 12px);grid-template-columns:repeat(3,1fr)}
.hc-cols-2{grid-template-columns:repeat(2,1fr)}.hc-cols-4{grid-template-columns:repeat(4,1fr)}
.hc-pack,.hc-price-card,.hc-coach{display:grid;gap:var(--hc-card-inner-gap, 8px);align-content:start;position:relative}
.hc-price-card.is-featured{border-color:var(--hc-accent);box-shadow:inset 0 3px 0 var(--hc-accent)}
.hc-price-lg{font-size:var(--hc-price-size, 36px);font-weight:800;line-height:1;color:var(--hc-heading)}
.hc-badge--accent{background:var(--hc-badge-enrolled-bg);color:var(--hc-badge-enrolled-ink)}
.hc-badge--warn{background:var(--hc-badge-wait-bg);color:var(--hc-badge-wait-ink)}
.hc-badge--open{background:var(--hc-badge-open-bg);color:var(--hc-badge-open-ink)}
.hc-title-lg{font-size:var(--hc-title-lg-size, 24px);line-height:1.15;margin:0}
.hc-grid-2{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin:0 0 12px}
.hc-account .hc-card{margin:0 0 12px}
.hc-account-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--hc-account-head-gap, 12px)}
.hc-line{padding:8px 0;border-top:1px solid var(--hc-divider);font-size:14px}
.hc-line:first-of-type{border-top:0}
.hc-line--split{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.hc-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hc-sub{margin-top:14px;padding-top:12px;border-top:1px solid var(--hc-divider)}
.hc-bar{height:8px;background:var(--hc-seat-taken);margin:8px 0;border-radius:var(--hc-radius);overflow:hidden}.hc-bar i{display:block;height:100%;background:var(--hc-accent)}
.hc-player-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 0;border-top:1px solid var(--hc-divider)}
.hc-player-row .hc-input{flex:1 1 140px;width:auto}
.hc-player-row--new{border-top:1px dashed var(--hc-divider);margin-top:6px}
.hc-doc-body{max-height:var(--hc-doc-max-height, 320px);overflow:auto;padding-right:8px}
.hc-doc-body h3{margin-top:0}
.hc-players{display:grid;gap:4px}
.hc-facts{display:flex;gap:var(--hc-facts-gap, 18px);flex-wrap:wrap;margin-top:14px}
.hc-facts div{display:grid;gap:2px}.hc-facts strong{font-size:var(--hc-facts-number-size, 26px);line-height:1}.hc-facts .hc-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted)}
.hc-program{display:grid;gap:var(--hc-program-gap, 12px);grid-template-columns:1.2fr 1fr}
.hc-choice{display:grid;gap:8px;margin:0 0 14px}
.hc-option{display:flex;gap:12px;align-items:center;border:1px solid var(--hc-line);padding:var(--hc-option-padding, 12px);cursor:pointer;border-radius:var(--hc-radius)}
.hc-option:hover{border-color:var(--hc-accent)}
.hc-option.is-on{border-color:var(--hc-accent)}
.hc-option input{accent-color:var(--hc-accent)}
.hc-option span{flex:1;display:grid}.hc-option em{font-style:normal;font-size:12px;color:var(--hc-muted)}.hc-option b{font-size:var(--hc-option-price-size, 18px);white-space:nowrap}
.hc-availability{display:flex;gap:var(--hc-availability-gap, 8px);flex-wrap:wrap}
.hc-pill{display:inline-flex;align-items:center;gap:var(--hc-pill-gap, 8px);background:var(--hc-surface);border:1px solid var(--hc-line);color:var(--hc-ink);padding:var(--hc-pill-padding, 8px 14px);font-size:var(--hc-pill-font-size, 14px);text-decoration:none;border-radius:999px}
.hc-pill:hover{border-color:var(--hc-accent)}
.hc-pill .hc-dot{width:var(--hc-dot-size, 8px);height:var(--hc-dot-size, 8px);border-radius:50%;background:var(--hc-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--hc-accent) 25%,transparent)}
.hc-pill .hc-dot.is-full,.hc-pill.is-full .hc-dot{background:var(--hc-full-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--hc-full-ink) 20%,transparent)}
.hc-coach-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--hc-radius);background:var(--hc-seat-taken)}
.hc-count{display:flex;gap:var(--hc-count-gap, 10px);align-items:baseline;margin:6px 0 10px}.hc-count span{font-size:var(--hc-count-number-size, 34px);font-weight:800;line-height:1}.hc-count small{font-size:var(--hc-count-label-size, 11px);letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted)}
.hc-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--hc-modal-backdrop)}
.hc-modal .hc-dialog{width:100%;max-width:520px;max-height:92vh;overflow:auto;background:var(--hc-modal-bg);border:1px solid var(--hc-line);color:var(--hc-modal-ink);padding:22px;border-radius:var(--hc-radius);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.hc-dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.hc-dialog-head .hc-title{font-size:18px}
.hc-close{background:none;border:0;color:var(--hc-muted);font-size:22px;line-height:1;cursor:pointer;min-width:44px;min-height:44px;margin:-10px -14px 0 0}
.hc-steps{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted);margin:0 0 12px}
.hc-summary{display:grid;gap:6px;margin:0 0 14px;font-size:14px}.hc-summary div{display:flex;justify-content:space-between;gap:12px}.hc-summary .hc-total{border-top:1px solid var(--hc-divider);padding-top:8px;font-weight:800;font-size:16px}
.hc-testcard{display:grid;gap:8px}.hc-testcard .hc-row2{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.hc-testnote{font-size:12px;color:var(--hc-muted);border:1px dashed var(--hc-line);padding:8px 10px}
.hc-empty{color:var(--hc-empty-ink)}
.hc-empty-state{text-align:center;padding:28px 16px;color:var(--hc-empty-ink);display:grid;gap:10px;justify-items:center}
.hc-empty-state .hc-title{color:var(--hc-heading)}
.hc-table{width:100%;border-collapse:collapse;font-size:14px}
.hc-table th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--hc-table-head);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--hc-divider)}
.hc-table td{padding:10px 6px;border-top:1px solid var(--hc-divider);vertical-align:middle}
.hc-table tbody tr:nth-child(even) td{background:var(--hc-table-stripe)}
@media (max-width:760px){.hc-packs,.hc-pricing,.hc-staff,.hc-cols-2,.hc-cols-4{grid-template-columns:1fr 1fr}.hc-grid-2,.hc-program{grid-template-columns:1fr}}
@media (max-width:480px){.hc-packs,.hc-pricing,.hc-staff,.hc-cols-2,.hc-cols-4{grid-template-columns:1fr}}

/* theme/kit link colors must not override buttons and links inside widgets */
.hc a.hc-btn,.hc a.hc-btn:focus,.hc button.hc-btn{color:var(--hc-btn-ink);text-decoration:none}
.hc a.hc-btn:hover{color:var(--hc-btn-ink-hover);text-decoration:none}
.hc a.hc-btn--ghost,.hc button.hc-btn--ghost{color:var(--hc-ghost-ink)}
.hc a.hc-btn--ghost:hover,.hc button.hc-btn--ghost:hover{color:var(--hc-ghost-ink-hover)}
.hc a.hc-link,.hc button.hc-link{color:var(--hc-link)}
.hc a.hc-link:hover,.hc button.hc-link:hover{color:var(--hc-link-hover)}
.hc a.hc-pill{color:var(--hc-ink)}

/* ---------- Events: booker Week/Month/All-upcoming + Org Calendar (Modules\Events) ---------- */
.hc-viewtoggle{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.hc-tab--sm{padding:7px 12px;font-size:11px;min-height:36px}
.hc-bview{margin:0 0 4px}
.hc-month-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.hc-month-head strong{font-size:14px;letter-spacing:.04em}
.hc-month-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--hc-month-grid-gap, 4px);margin:0 0 4px;text-align:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--hc-muted)}
.hc-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--hc-month-grid-gap, 4px)}
.hc-month-cell{background:var(--hc-surface);border:1px solid var(--hc-line);color:var(--hc-ink);min-height:var(--hc-month-cell-min-height, 52px);padding:var(--hc-month-cell-padding, 6px 4px);display:grid;align-content:start;justify-items:center;gap:4px;cursor:pointer;border-radius:var(--hc-radius);font:inherit}
.hc-month-cell.is-blank{background:transparent;border-color:transparent;cursor:default}
.hc-month-cell.is-empty{opacity:.55}
.hc-month-cell.is-today strong{color:var(--hc-accent)}
.hc-month-cell.is-on{border-color:var(--hc-accent);box-shadow:inset 0 0 0 1px var(--hc-accent)}
.hc-month-cell strong{font-size:14px;font-weight:700}
.hc-month-dot{color:var(--hc-accent);font-size:8px;letter-spacing:2px}
.hc-upcoming-list{display:grid}
@media (max-width:600px){.hc-month-cell{min-height:40px;padding:4px 2px}.hc-month-grid,.hc-month-dow{gap:2px}}

.hc-org-calendar .hc-cal-filters{display:grid;gap:10px;margin:0 0 14px}
.hc-cal-chips{display:flex;gap:6px;flex-wrap:wrap}
.hc-chip{background:transparent;border:1px solid var(--hc-line);color:var(--hc-muted);padding:var(--hc-chip-padding, 7px 12px);font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;border-radius:999px;font-family:inherit;min-height:36px}
.hc-chip:hover{border-color:var(--hc-accent)}
.hc-chip.is-on{border-color:var(--hc-accent);color:var(--hc-accent)}
.hc-cal-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.hc-cal-row .hc-input{width:auto;flex:0 0 auto;min-width:120px}
.hc-cal-row input[type=number]{max-width:84px;min-width:0}
.hc-cal-agenda{display:grid;gap:8px}
.hc-cal-item{width:100%;text-align:left;background:var(--hc-surface);border:1px solid var(--hc-line);border-left:4px solid var(--hc-cal-dot,var(--hc-accent));color:var(--hc-ink);padding:var(--hc-cal-item-padding, 14px 16px);display:grid;grid-template-columns:auto 1fr;gap:var(--hc-cal-item-gap, 16px);align-items:center;cursor:pointer;border-radius:var(--hc-radius);font:inherit}
.hc-cal-item .hc-time{font-size:var(--hc-cal-time-size, 18px)}
.hc-cal-item .hc-title{font-weight:600;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hc-cal-links{display:grid;gap:8px;margin:14px 0}
@media (max-width:600px){.hc-cal-item{grid-template-columns:1fr}.hc-cal-row .hc-input{min-width:0;flex:1 1 46%}}

/* ---- Player hub ---- */
.hc-player-hub .hc-hub-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.hc-player-hub .hc-hub-switch{display:flex;gap:6px;flex-wrap:wrap}
.hc-player-hub .hc-hub-switch a.hc-chip{text-decoration:none}
.hc-player-hub .hc-hub-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}
.hc-avatar{display:inline-flex;align-items:center;justify-content:center;width:var(--hc-avatar-size, 40px);height:var(--hc-avatar-size, 40px);border-radius:50%;background:var(--hc-child-color,var(--hc-accent));color:#fff;font-weight:800;font-size:var(--hc-avatar-font-size, 18px);flex:0 0 auto}
.hc-avatar--lg{width:64px;height:64px;font-size:28px}
.hc-hub-stats{display:grid;grid-template-columns:repeat(4,auto);gap:var(--hc-hub-stats-gap, 16px)}
.hc-stat{text-align:center}.hc-stat strong{display:block;font-size:var(--hc-stat-number-size, 22px);line-height:1.1;color:var(--hc-heading)}.hc-stat span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--hc-muted)}
.hc-hub-attention{border-color:var(--hc-full-ink)}
.hc-vol-cta{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hc-cal-links--row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.hc-cal-links--row .hc-btn{width:auto}
.hc-player-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--hc-player-cards-gap, 12px)}
a.hc-player-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;text-decoration:none;color:inherit}
a.hc-player-card .hc-title{display:block}
.hc-account .hc-player{display:block;padding:10px 0;border-top:1px solid var(--hc-divider)}
.hc-account .hc-player .hc-line--split{margin-bottom:4px}
.hc-player .hc-line--split a.hc-title{text-decoration:none}
@media (max-width:760px){.hc-player-hub .hc-hub-head{grid-template-columns:auto 1fr}.hc-hub-stats{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}.hc-player-cards{grid-template-columns:1fr}}

/* ---- Chat ---- */
.hc-chat-board{--hc-chat-h:520px;display:grid;gap:12px}
.hc-chat-gate .hc-card{max-width:480px}
.hc-chat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.hc-chat-head-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.hc-chat-mute-toggle{margin:0;font-size:12px}
.hc-chat-mute-toggle input{margin:0}
.hc-chat-log{background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-radius);padding:var(--hc-chat-log-padding, 14px);height:var(--hc-chat-h);max-height:var(--hc-chat-h);overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.hc-chat-more{align-self:center;margin:0 0 10px}
.hc-chat-msgs{display:flex;flex-direction:column;gap:var(--hc-chat-msg-gap, 12px)}
.hc-chat-empty{text-align:center;margin:auto 0}
.hc-chat-unread-divider{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--hc-accent)}
.hc-chat-unread-divider::before,.hc-chat-unread-divider::after{content:"";flex:1;height:1px;background:var(--hc-accent);opacity:.4}
.hc-chat-msg{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
.hc-chat-msg-body{min-width:0}
.hc-chat-msg-meta{font-size:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:2px}
.hc-chat-msg-text{white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.5}
.hc-chat-msg--staff .hc-chat-msg-meta strong{color:var(--hc-accent)}
.hc-chat-msg.is-pinned{background:color-mix(in srgb,var(--hc-accent) 8%,transparent);border-radius:var(--hc-radius);padding:6px 8px;margin:0 -8px}
.hc-chat-thumb{max-width:var(--hc-chat-thumb-size, 220px);max-height:var(--hc-chat-thumb-size, 220px);border-radius:var(--hc-radius);margin-top:6px;display:block;border:1px solid var(--hc-line)}
.hc-chat-msg-actions{display:flex;gap:10px;margin-top:4px;opacity:.7}
.hc-chat-msg-actions .hc-link{font-size:11px}
.hc-chat-composer{display:flex;gap:8px;align-items:center}
.hc-chat-composer .hc-input{flex:1}
.hc-chat-attach-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--hc-chat-attach-size, 38px);height:var(--hc-chat-attach-size, 38px);border:1px solid var(--hc-line);border-radius:var(--hc-radius);cursor:pointer;flex:0 0 auto;background:var(--hc-surface)}
.hc-chat-attach-preview{display:flex;align-items:center;gap:8px}
.hc-chat-locked{text-align:center}
.hc-chat-hub-card .hc-line{border-top:1px solid var(--hc-divider);padding:8px 0}
.hc-chat-channel-row.is-on{background:var(--hc-seat-taken)}
@media (max-width:600px){.hc-chat-board{--hc-chat-h:70vh}.hc-chat-thumb{max-width:160px;max-height:160px}}

/* ---- Promos ---- */
.hc-promo{margin:0 0 14px}
.hc-promo-box{border:1px solid var(--hc-line);border-radius:var(--hc-radius);padding:10px 14px;background:var(--hc-surface)}
.hc-promo-box summary{cursor:pointer;list-style:none}
.hc-promo-box summary::-webkit-details-marker{display:none}
.hc-promo-row{display:flex;gap:8px;margin-top:10px}
.hc-promo-row .hc-promo-input{flex:1 1 auto;text-transform:uppercase}
.hc-promo-row .hc-btn{width:auto;padding:10px 14px}
.hc-promo-result{margin:10px 0 0;font-size:13px;color:var(--hc-muted)}
.hc-promo-result.is-ok{color:var(--hc-accent)}
.hc-promo-result.is-err{color:var(--hc-error-ink)}

/* ---- Rsvp ---- */
.hc-rsvp-card-actions{margin-top:8px;display:grid;gap:6px}
.hc-rsvp-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hc-rsvp-btn.is-on{border-color:var(--hc-accent);color:var(--hc-accent)}
.hc-rsvp-summary{margin-top:2px}
.hc-rsvp-hub-card .hc-actions,.hc-account [data-hc-rsvp-account] .hc-actions{display:flex;gap:6px;flex-wrap:wrap}
[data-hc-rsvp-account] .hc-sub{padding:8px 0;border-top:1px solid var(--hc-divider)}

/* ---- Registration ---- */
.hc-reg-group{margin:14px 0 6px}
.hc-reg-group:first-child{margin-top:0}
.hc-reg-card .hc-line{border-top:1px solid var(--hc-divider);padding:6px 0}
.hc-reg-card .hc-line:first-of-type{border-top:none}
[data-hc-reg-form]{display:grid;gap:10px;margin-top:8px}
[data-hc-reg-team-export] .hc-player-row{align-items:center}
[data-hc-reg-sizes-out]{margin-top:8px}
[data-hc-rsvp-account] .hc-sub:first-of-type{border-top:none}

/* ---- Offers ---- */
.hc-offers-card .hc-offer{border-top:1px solid var(--hc-divider);padding:12px 0}
.hc-offers-card .hc-offer:first-of-type{border-top:none}
.hc-offer-checklist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:13px}
.hc-offer-checklist li{display:flex;gap:6px;align-items:baseline}
.hc-offer-checklist li.is-done{color:var(--hc-muted)}
.hc-offers-notice{margin:0 0 14px}
.hc-offers-coach-panel [data-hc-offers-open] .hc-line,.hc-offers-coach-panel [data-hc-offers-roster] .hc-line{border-top:1px solid var(--hc-divider);padding:8px 0}
.hc-offers-coach-panel [data-hc-offers-open] .hc-line:first-of-type,.hc-offers-coach-panel [data-hc-offers-roster] .hc-line:first-of-type{border-top:none}
.hc-offers-coach-panel [data-hc-offers-summary]{margin:6px 0 10px;line-height:2}
.hc-offers-coach-panel [data-hc-offers-summary] .hc-badge{margin-right:2px}
.hc-offers-cap{margin:0 0 14px}
.hc-offers-cap .hc-bar{max-width:260px;margin:0 0 4px}
.hc-offers-section{margin-top:16px}
.hc-offers-section-heading{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted);border-bottom:1px solid var(--hc-divider);padding-bottom:6px;margin-bottom:2px}
.hc-offers-flash{background:var(--hc-badge-full-bg);color:var(--hc-badge-full-ink);padding:10px 12px;font-size:13px;margin:10px 0;border-radius:var(--hc-radius)}
.hc-jersey-conflict-warn{background:var(--hc-badge-full-bg);color:var(--hc-badge-full-ink);padding:8px 10px;font-size:12px;border-radius:var(--hc-radius);margin-top:-4px}

/* ---- Teams (v2.3 — Team Directory & Team Page) ---- */
.hc-badge--full{background:var(--hc-badge-full-bg);color:var(--hc-badge-full-ink)}
.hc-badge--muted{background:transparent;border:1px solid var(--hc-line);color:var(--hc-muted)}
.hc-directory-heading{margin-bottom:10px}
.hc-directory-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.hc-directory-filters .hc-input{width:auto;min-width:150px}
.hc-directory-grid{display:grid;gap:var(--hc-directory-grid-gap, 16px);grid-template-columns:repeat(3,1fr)}
.hc-team-directory-cols-2 .hc-directory-grid{grid-template-columns:repeat(2,1fr)}
@media (max-width:760px){.hc-directory-grid,.hc-team-directory-cols-2 .hc-directory-grid{grid-template-columns:1fr}}
.hc-team-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.hc-team-card[hidden]{display:none}
.hc-team-card-band{position:relative;height:var(--hc-team-card-band-height, 120px);display:flex;align-items:flex-start;justify-content:flex-end}
.hc-team-card-band img{width:100%;height:100%;object-fit:cover}
.hc-team-mine{position:absolute;top:8px;right:8px}
.hc-team-card .hc-body{padding:var(--hc-team-card-body-padding, 14px 16px 16px);display:flex;flex-direction:column;gap:4px}
.hc-team-meta{margin-bottom:2px}
.hc-team-coach{display:flex;align-items:center;gap:8px;margin:6px 0}
.hc-team-coach-photo{width:28px;height:28px;border-radius:999px;object-fit:cover}
.hc-team-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.hc-team-ctas{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hc-team-gated{text-align:center;padding:20px}
.hc-team-gated .hc-btn{margin-top:8px}
.hc-team-header{padding:0;overflow:hidden;display:flex;flex-direction:column;margin-bottom:14px}
.hc-team-header-band{height:var(--hc-team-header-band-height, 160px)}
.hc-team-header-band img{width:100%;height:100%;object-fit:cover}
.hc-team-header .hc-body{padding:var(--hc-team-header-body-padding, 16px 20px 20px);display:flex;flex-direction:column;gap:6px}
.hc-team-name{font-size:var(--hc-team-name-size, 26px)}
.hc-team-facts{display:flex;flex-wrap:wrap;gap:var(--hc-team-facts-gap, 12px);margin-top:4px}
.hc-team-interested{display:flex;align-items:center;gap:10px;margin-top:10px}
.hc-team-about,.hc-team-tryouts,.hc-team-offer-banner{margin-bottom:14px}
.hc-team-offer-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-color:var(--hc-accent)}
.hc-team-tryout-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.hc-team-my-players{margin-bottom:14px}
.hc-team-my-player{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--hc-divider)}
.hc-team-my-player:first-of-type{border-top:none}
.hc-team-tabs{margin-bottom:14px;flex-wrap:wrap}
.hc-team-pane{display:none}
.hc-team-pane.is-on{display:block}
.hc-team-chat-locked{text-align:center;padding:20px}
.hc-team-vol-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--hc-divider)}
.hc-team-vol-row:first-of-type{border-top:none}
@media (max-width:480px){.hc-team-status,.hc-team-ctas,.hc-directory-filters{flex-wrap:wrap}}

/* ---- Tryouts ---- */
.hc-tryout .hc-actions{display:flex;flex-wrap:wrap;gap:var(--hc-tryout-actions-gap, 10px);align-items:center;margin-top:8px}
.hc-tryout-resume{border-color:var(--hc-accent);display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.hc-tryout-hub-card .hc-line{padding:4px 0}
@media (max-width:480px){.hc-tryout{grid-template-columns:1fr}}

/* ---- v2.5 (Agent H) — team documents + season record (team page + coach panel) ---- */
.hc-team-documents{margin-bottom:14px}
.hc-team-doc-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.hc-team-doc-list li{padding:8px 0}
.hc-team-season-record{margin-top:4px}
.hc-coach-season-record{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.hc-coach-season-record th,.hc-coach-season-record td{padding:6px 8px;border-top:1px solid var(--hc-divider);text-align:left}
.hc-coach-season-record th{color:var(--hc-table-head);font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase}

/* ---- v2.5.3 — coaches/staff bio directory + single bio page ---- */
.hc-staff-group{margin-bottom:var(--hc-staff-group-gap, 24px)}
.hc-staff-group:last-child{margin-bottom:0}
.hc-staff-group-title{margin-bottom:10px}
.hc-coach.hc-card{display:grid;gap:8px;align-content:start;text-decoration:none;color:inherit}
a.hc-coach.hc-card:hover{border-color:var(--hc-card-line-hover)}
.hc-staff-bio-header{padding:0;overflow:hidden;display:flex;gap:var(--hc-staffbio-gap, 20px)}
.hc-staff-bio-photo-wrap{width:var(--hc-staffbio-photo-width, 180px);flex:0 0 var(--hc-staffbio-photo-width, 180px)}
.hc-staff-bio-photo-wrap .hc-coach-photo{border-radius:0}
.hc-staff-bio-header .hc-body{padding:var(--hc-staffbio-body-padding, 18px 20px 20px 0);display:flex;flex-direction:column;gap:8px}
.hc-staff-bio-text p{margin:0 0 10px}
.hc-staff-bio-text p:last-child{margin-bottom:0}
.hc-staff-bio-teams{margin-top:4px}
@media (max-width:560px){.hc-staff-bio-header{flex-direction:column}.hc-staff-bio-photo-wrap{width:100%;flex-basis:auto;aspect-ratio:1}.hc-staff-bio-header .hc-body{padding:16px 20px 20px}}

/* ---- v2.8 — family dashboard (account overview), child colour chips, completeness meter, devices, toasts ---- */
.hc-child-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px 3px 6px;border:1px solid var(--hc-line);border-radius:999px;text-decoration:none;color:var(--hc-ink);background:var(--hc-surface)}
.hc-child-chip::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--hc-child-color,var(--hc-accent));flex:0 0 auto}
.hc-child-chip:hover{border-color:var(--hc-child-color,var(--hc-accent))}
.hc-child-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.hc-upcoming{display:grid;gap:0}
.hc-upcoming .hc-day{margin:12px 0 2px}
.hc-upcoming .hc-day:first-child{margin-top:0}
.hc-up{display:grid;grid-template-columns:4px auto 1fr;gap:12px;align-items:start;padding:10px 0;border-top:1px solid var(--hc-divider)}
.hc-up:first-of-type,.hc-day+.hc-up{border-top:0}
.hc-up-bar{width:4px;align-self:stretch;border-radius:2px;background:var(--hc-child-color,var(--hc-accent))}
.hc-up-time{font-weight:700;min-width:64px;line-height:1.3}
.hc-up-time small{display:block;font-size:11px;font-weight:600;color:var(--hc-meta-ink)}
.hc-up-body{min-width:0}
.hc-up-title{font-weight:600;color:var(--hc-heading)}
.hc-up-meta{font-size:13px;color:var(--hc-muted);margin-top:2px}
.hc-up-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:13px}
.hc-up.is-past{opacity:.6}
.hc-up .hc-badge{vertical-align:middle}
.hc-meter{display:grid;gap:6px;margin:8px 0 4px}
.hc-meter-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px}
.hc-meter-head strong{color:var(--hc-heading)}
.hc-meter-list{list-style:none;margin:6px 0 0;padding:0;display:flex;gap:8px 10px;flex-wrap:wrap;font-size:13px}
.hc-meter-list li{display:inline-flex;gap:5px;align-items:center}
/* Both states are chips, colored the same way the rest of the site already codes status — green/open for
   done (matches "Registered ✓" badges) and amber/full for todo (matches the "MISSING: …" badge right above
   this list and "Full" badges elsewhere) — rather than inventing a third color language just for this list. */
.hc-meter-list li.is-done{background:var(--hc-badge-open-bg);color:var(--hc-badge-open-ink);border-radius:999px;padding:4px 12px 4px 10px}
.hc-meter-list li.is-done::before{content:"✓";color:inherit;font-weight:800}
.hc-meter-list li.is-todo{background:var(--hc-full);border-radius:999px;padding:4px 12px 4px 10px;transition:background .15s}
.hc-meter-list li.is-todo::before{content:"○";color:var(--hc-full-ink)}
.hc-meter-list li.is-todo button.hc-link{color:var(--hc-full-ink)}
.hc-meter-list li.is-todo:hover,.hc-meter-list li.is-todo:focus-within{background:var(--hc-full-ink)}
.hc-meter-list li.is-todo:hover::before,.hc-meter-list li.is-todo:focus-within::before,
.hc-meter-list li.is-todo:hover button.hc-link,.hc-meter-list li.is-todo:focus-within button.hc-link{color:var(--hc-full)}
.hc-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hc-quick-actions .hc-btn{width:auto}
.hc-device{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--hc-divider);font-size:14px}
.hc-device:first-of-type{border-top:0}
.hc-toast-wrap{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:100000;display:grid;gap:8px;width:min(92vw,420px);pointer-events:none}
.hc-toast{pointer-events:auto;background:var(--hc-ok-bg);color:var(--hc-ok-ink);border:1px solid color-mix(in srgb,var(--hc-ok-ink) 30%,transparent);padding:12px 16px;border-radius:var(--hc-radius);box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:14px;font-weight:600;display:flex;gap:10px;align-items:center;animation:hc-toast-in .2s ease-out}
.hc-toast--error{background:var(--hc-error-bg);color:var(--hc-error-ink);border-color:color-mix(in srgb,var(--hc-error-ink) 30%,transparent)}
.hc-toast--info{background:var(--hc-surface);color:var(--hc-ink);border-color:var(--hc-line)}
.hc-toast .hc-close{margin:0;min-width:32px;min-height:32px;margin-left:auto;color:inherit}
@keyframes hc-toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hc-account .hc-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.hc-account .hc-tabs .hc-tab{flex:0 0 auto}
.hc-history{display:grid}
.hc-history .hc-line{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.hc-brand-logo{max-height:48px;width:auto;display:block;margin:0 0 10px}
@media (max-width:600px){
  .hc-account-head{flex-direction:column}
  .hc-account-head .hc-btn{align-self:flex-start}
  .hc-line--split{flex-direction:column;align-items:flex-start;gap:6px}
  .hc-line--split>.hc-actions{width:100%}
  .hc-actions{gap:10px 16px}
  .hc-up{grid-template-columns:4px 1fr}
  .hc-up-time{grid-column:2}.hc-up-body{grid-column:2}
  .hc-player-row .hc-input,.hc-player-row .hc-input--sm{flex:1 1 100%;max-width:none}
  .hc-player-row .hc-btn{width:100%;text-align:center}
  .hc-hub-stats{grid-template-columns:1fr 1fr}
  .hc-modal{padding:0;align-items:flex-end}
  .hc-modal .hc-dialog{max-height:94vh;border-radius:var(--hc-radius) var(--hc-radius) 0 0}
}

/* ---- v2.8 — printable receipt (account?receipt=ID) ---- */
.hc-receipt{max-width:640px}
.hc-receipt .hc-receipt-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:16px}
.hc-receipt table{width:100%;border-collapse:collapse;margin:12px 0}
.hc-receipt td,.hc-receipt th{padding:8px 0;border-top:1px solid var(--hc-divider);text-align:left;font-size:14px}
.hc-receipt th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--hc-table-head);border-top:0}
.hc-receipt .hc-receipt-total td{font-weight:800;font-size:16px}
.hc-receipt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
@media print{
  .hc-receipt-actions,.hc-account>.hc-tabs,.hc-account>.hc-account-head .hc-btn{display:none!important}
  .hc,.hc--dark,.hc-theme-dark .hc{--hc-surface:#fff;--hc-ink:#000;--hc-muted:#444;--hc-line:#ccc;--hc-card-shadow:none;color:#000}
  .hc-card{break-inside:avoid}
}
