/* Grouped class directory — unique stylesheet; does not alter flat staging page. */
body { margin:0; font-family:Figtree,system-ui,sans-serif; background:#120d1b; color:#fff; }
.wrap { max-width:1100px; margin:0 auto; padding:1.25rem 1rem 4rem; }
.banner { position:sticky; top:0; z-index:50; background:#952ee2; color:#fff; text-align:center; padding:.65rem 1rem; font-weight:600; }
.banner a { color:#68f942; }
h1 { font-family:"Bricolage Grotesque",system-ui,sans-serif; font-weight:800; font-size:clamp(1.8rem,4vw,2.6rem); margin:1.2rem 0 .4rem; }
.layout-tag { font-size:.55em; font-weight:700; color:#d7a6ff; vertical-align:middle; }
.disclaimer { background:rgba(149,46,226,.15); border:1px solid rgba(149,46,226,.45); border-radius:1rem; padding:1rem 1.1rem; margin:1rem 0 1.5rem; line-height:1.55; }
.toolbar { display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-end; margin:1rem 0 1rem; }
.toolbar a.back, .toolbar a.compare { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; font-weight:700; padding:.65rem 1.1rem; text-decoration:none; }
.toolbar a.back { background:#68f942; color:#120d1b; }
.toolbar a.compare { border:1px solid rgba(255,255,255,.25); color:#fff; }
.filters { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); margin:1rem 0; padding:1rem; border:1px solid rgba(255,255,255,.14); border-radius:1rem; background:rgba(255,255,255,.03); }
.filters label { display:flex; flex-direction:column; gap:.35rem; font-size:.8rem; font-weight:700; letter-spacing:.02em; text-transform:uppercase; color:rgba(255,255,255,.75); }
.filters select, .filters input[type="search"] { border-radius:.75rem; border:1px solid rgba(255,255,255,.18); background:#1a1224; color:#fff; padding:.65rem .75rem; font:600 14px/1.2 Figtree,system-ui,sans-serif; text-transform:none; letter-spacing:0; }
.filters .filter-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; }
.filters button { border-radius:999px; border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; font-weight:700; padding:.65rem 1rem; cursor:pointer; }
.filters button#clear-filters { background:#952ee2; border-color:#952ee2; }
.status-row { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin:.5rem 0 1rem; font-size:.95rem; }
.status-row strong { color:#68f942; }
.age-help { font-size:.82rem; color:rgba(255,255,255,.65); margin:0 0 1rem; line-height:1.45; }
.empty { border:1px dashed rgba(255,255,255,.25); border-radius:1rem; padding:1.25rem; color:#ffb86b; margin:1rem 0; }
.level { margin:2.25rem 0; padding-top:.25rem; border-top:1px solid rgba(255,255,255,.08); }
.level:first-of-type { border-top:none; }
.level > h2 { font-family:"Bricolage Grotesque",system-ui,sans-serif; font-size:1.45rem; margin:0 0 1rem; }
.day-group { margin:0 0 1.35rem; }
.day-heading { font-family:Figtree,system-ui,sans-serif; font-size:1.05rem; font-weight:700; margin:0 0 .65rem; color:#d7a6ff; letter-spacing:.01em; }
.count { color:rgba(255,255,255,.55); font-size:.9rem; font-weight:600; }
.grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.card { border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); border-radius:1.25rem; padding:1.1rem 1.15rem; }
.card.is-hidden, .level.is-hidden, .day-group.is-hidden, [hidden] { display:none !important; }
.card h4 { margin:0 0 .4rem; font-size:1.05rem; line-height:1.35; }
.meta { color:rgba(255,255,255,.72); font-size:.9rem; margin:.25rem 0; }
.chips { margin:.4rem 0; display:flex; flex-wrap:wrap; gap:.35rem; }
.chip { display:inline-flex; border-radius:999px; border:1px solid rgba(104,249,66,.45); padding:.15rem .55rem; font-size:.75rem; font-weight:700; color:#68f942; }
.chip.specialty { border-color:rgba(149,46,226,.7); color:#d7a6ff; }
.notes { margin:.5rem 0 0; padding-left:1.1rem; color:#ffb86b; font-size:.82rem; line-height:1.4; }
.book-btn { display:inline-flex; margin-top:.55rem; border-radius:999px; background:#68f942; color:#120d1b; font-weight:700; text-decoration:none; padding:.55rem 1rem; }
.toc { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.toc a { border-radius:999px; border:1px solid rgba(255,255,255,.18); padding:.35rem .75rem; color:#fff; text-decoration:none; font-size:.85rem; font-weight:600; }
.data-asof { font-size:.85rem; color:rgba(255,255,255,.65); line-height:1.45; }
