:root{
  --base:#08080d;
  --surface:#11111a;
  --surface-raised:#191925;
  --surface-muted:#222231;
  --text:#f6f7fb;
  --text-muted:#a5a7b6;
  --line:#363746;
  --accent-pink:#ff3aa7;
  --accent-blue:#38a8ff;
  --accent-lemon:#f5ff3d;
  --accent-green:#a8ff3e;
  --accent-cyan:#32f1ff;
  --accent-violet:#b57bff;
  --accent-orange:#ff9a4d;
  --accent-pink-soft:#ff8dcb;
  --accent-blue-soft:#8bd0ff;
  --accent-pink-wash:rgba(255,58,167,.14);
  --accent-blue-wash:rgba(56,168,255,.14);
  --accent-green-wash:rgba(168,255,62,.13);
  --accent-lemon-wash:rgba(245,255,61,.13);
  --danger:#ff8b9d;
  --dark:var(--base);
  --panel:var(--surface-raised);
  --paper:var(--surface-raised);
  --ink:var(--text);
  --muted:var(--text-muted);
  --lime:var(--accent-pink);
  --orange:var(--accent-blue);
  --sand:#d9dbe5;
}
body,.sidebar{background:var(--base)}
.sidebar{background:#0d0d14}.nav-link:hover,.nav-link.active,.audience-badge,.plan-total{background:var(--accent-pink-wash);color:var(--accent-pink)}
.brand-mark,.primary-button,#toast,.filter-button.active{background:var(--accent-pink);color:var(--base)}
.primary-button:hover{background:var(--accent-blue);color:var(--base)}
.secondary-button{background:var(--accent-blue-wash);color:var(--accent-blue)}
.status-dot{box-shadow:0 0 0 3px var(--accent-pink-wash)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-wash)}
.game-card,.class-card,.detail-hero,.session-hero{background:var(--surface-raised);color:var(--text)}
.game-card h2,.class-card h2,.game-card p,.class-card>p,.session-heading p,.back,.card-link,.session-hero,.session-heading p,.session-curriculum span{color:var(--text)}
.game-card footer,.class-card footer,.session-curriculum{border-color:var(--line)}
.tag,.class-type-badge,.virtual-badge{background:var(--surface-muted);color:var(--text-muted)}
.framework-item-badge{display:inline-flex;width:max-content;border:1px solid color-mix(in srgb,var(--framework-accent) 58%,transparent);border-radius:99px;background:color-mix(in srgb,var(--framework-accent) 16%,transparent);color:var(--framework-accent);padding:5px 8px;font:700 9px 'DM Mono';letter-spacing:.4px;text-transform:uppercase}
.persisted-badge{background:var(--accent-pink);color:var(--base)}
.detail-hero:after{color:#20202c}.detail-meta span{background:var(--surface-muted);color:var(--text)}
.player-b{border-left-color:var(--accent-blue)}.player-b .detail-item span,.partial-badge{color:var(--accent-blue-soft)}
.partial-badge{background:var(--accent-blue-wash)}.override-badge,.cycle-conflict-count{background:var(--accent-pink-wash);color:var(--accent-pink-soft)}
.danger-button,.form-error{color:var(--danger);border-color:rgba(255,139,157,.45)}
.schedule-slot-card:hover,.similar-game-card:hover{border-color:var(--accent-blue)}
.class-progress-item.complete{border-color:var(--accent-pink);background:var(--accent-pink-wash)}
.plan-position,.cycle-order{background:var(--accent-blue-wash);color:var(--accent-blue)}
.cycle-ready-count{background:var(--accent-pink-wash);color:var(--accent-pink)}
.similar-game-card,.similar-games-empty{background:var(--surface);border-color:var(--line)}
.similarity-score{background:var(--accent-pink-wash);color:var(--accent-pink)}
.similar-game-meta span{background:var(--surface-muted);color:var(--text-muted)}
.similar-game-open{color:var(--text)}
