/* ═══════════════════════════════════════════════════════════════════════
   FULL-PAGE AUTH SPLASH
   ═══════════════════════════════════════════════════════════════════════ */
#vc-auth-splash {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .45s ease;
  pointer-events: none;
}
#vc-auth-splash.vcsp-visible { opacity: 1; pointer-events: all; }
#vc-auth-splash.vcsp-out { opacity: 0; pointer-events: none; }

.vcsp-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(50,10,80,.85) 0%, rgba(8,6,14,.98) 60%),
              radial-gradient(ellipse at 75% 70%, rgba(139,26,26,.3) 0%, transparent 55%);
}
.vcsp-noise {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: .5;
  pointer-events: none;
}

.vcsp-content {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 40px 24px;
  max-width: 460px; width: 100%;
}

.vcsp-sigil {
  font-size: 42px;
  color: var(--gold, #c9973a);
  opacity: .7;
  margin-bottom: 16px;
  animation: vcspFloat 4s ease-in-out infinite;
}
@keyframes vcspFloat {
  0%, 100% { transform: translateY(0); opacity: .7; }
  50% { transform: translateY(-6px); opacity: 1; }
}

.vcsp-wordmark {
  font-family: var(--font-display, 'Cinzel', serif);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 4px;
  color: var(--text, #e8e4dc);
  margin-bottom: 6px;
}
.vcsp-accent { color: var(--gold, #c9973a); }

.vcsp-sub {
  font-family: var(--font-mono, 'Share Tech Mono', monospace);
  font-size: 10px;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: rgba(201,151,58,.6);
  margin-bottom: 0;
}

.vcsp-divider {
  width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold, #c9973a), transparent);
  margin: 24px auto;
  opacity: .5;
}

.vcsp-desc {
  font-family: var(--font-body, 'Crimson Text', serif);
  font-size: 16px;
  color: rgba(232,228,220,.55);
  line-height: 1.6;
  margin-bottom: 32px;
}

.vcsp-btns {
  display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 280px;
}

.vcsp-btn {
  font-family: var(--font-display, 'Cinzel', serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  padding: 14px 28px;
  border-radius: 8px;
  cursor: pointer;
  transition: all .2s;
  border: 1px solid transparent;
}
.vcsp-btn--primary {
  background: linear-gradient(135deg, rgba(201,151,58,.25), rgba(139,26,139,.2));
  border-color: rgba(201,151,58,.5);
  color: var(--gold, #c9973a);
  box-shadow: 0 0 24px rgba(201,151,58,.12), inset 0 1px 0 rgba(201,151,58,.15);
}
.vcsp-btn--primary:hover {
  background: linear-gradient(135deg, rgba(201,151,58,.35), rgba(139,26,139,.3));
  border-color: rgba(201,151,58,.75);
  box-shadow: 0 0 40px rgba(201,151,58,.2), inset 0 1px 0 rgba(201,151,58,.25);
  transform: translateY(-1px);
}
.vcsp-btn--ghost {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.12);
  color: rgba(232,228,220,.55);
}
.vcsp-btn--ghost:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.22);
  color: rgba(232,228,220,.85);
}

.vcsp-features {
  display: flex;
  gap: 18px;
  margin-top: 36px;
  flex-wrap: wrap;
  justify-content: center;
}
.vcsp-feat {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  font-family: var(--font-mono, 'Share Tech Mono', monospace);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(232,228,220,.3);
  transition: color .2s;
}
.vcsp-feat span:first-child { font-size: 18px; opacity: .5; }
.vcsp-feat:hover { color: rgba(201,151,58,.6); }


/* ═══════════════════════════════════════════════════════════════════════
   SHELF BADGE STACK — overlay positioning container for card badges
   ═══════════════════════════════════════════════════════════════════════ */
.vc-lb-stack {
  position: absolute;
  top: 6px; left: 6px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 3px;
  pointer-events: none;
}
/* Dashboard hero cards need relative positioning for badge overlay */
.vc-dash-hero-card,
.vc-dash-poster-card,
.vc-dash-upcoming-item {
  position: relative;
}

/* ═══════════════════════════════════════════════════════════════════════
   QUICK-ADD MODAL
   ═══════════════════════════════════════════════════════════════════════ */
#vc-quick-add-modal {
  position: fixed; inset: 0; z-index: 20000;
  opacity: 0; transition: opacity .22s ease;
  pointer-events: none;
}
#vc-quick-add-modal.vc-qa-visible  { opacity: 1; pointer-events: all; }
#vc-quick-add-modal.vc-qa-out      { opacity: 0; pointer-events: none; }

.vc-qa-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.80); backdrop-filter: blur(10px);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: clamp(60px, 10vh, 120px);
}

.vc-qa-dialog {
  background: rgba(13,11,24,.97);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 14px;
  width: min(540px, 94vw);
  box-shadow: 0 28px 80px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.06);
  display: flex; flex-direction: column;
  overflow: hidden;
  transform: translateY(-8px); transition: transform .22s ease;
}
#vc-quick-add-modal.vc-qa-visible .vc-qa-dialog { transform: translateY(0); }

.vc-qa-topline {
  height: 2px; flex-shrink: 0;
  background: linear-gradient(90deg, transparent, var(--gold,#c9973a) 40%, rgba(196,154,255,.5) 75%, transparent);
}
.vc-qa-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 16px 20px 0; flex-shrink: 0;
}
.vc-qa-eyebrow {
  font-family: var(--font-vhs,monospace); font-size: 9px; font-weight: 800;
  letter-spacing: 2.5px; text-transform: uppercase; color: var(--gold,#c9973a);
  margin-bottom: 3px;
}
.vc-qa-subtitle {
  font-family: var(--font-display,'Cinzel',serif); font-size: 15px;
  font-weight: 700; color: var(--text,#e8e4dc);
}
.vc-qa-close {
  width: 28px; height: 28px; border-radius: 6px;
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.45); cursor: pointer; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  transition: all .14s; flex-shrink: 0;
}
.vc-qa-close:hover { border-color: rgba(255,80,80,.4); color: #e07070; }

.vc-qa-search-row {
  position: relative; padding: 14px 20px 12px; flex-shrink: 0;
}
.vc-qa-input {
  width: 100%; box-sizing: border-box;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13);
  border-radius: 9px; color: var(--text,#e8e4dc);
  font-family: var(--font-body,'Crimson Text',serif); font-size: 15px;
  padding: 11px 44px 11px 16px; outline: none;
  transition: border-color .14s;
}
.vc-qa-input:focus { border-color: rgba(201,151,58,.45); }
.vc-qa-input::placeholder { color: rgba(255,255,255,.3); font-style: italic; }
.vc-qa-spinner {
  position: absolute; right: 34px; top: 50%; transform: translateY(-50%);
  color: var(--gold,#c9973a); display: flex; align-items: center;
}

.vc-qa-results {
  max-height: 360px; overflow-y: auto; scrollbar-width: thin;
  padding: 0 12px 8px;
}
.vc-qa-hint {
  text-align: center; padding: 24px 0;
  font-family: var(--font-body,'Crimson Text',serif); font-style: italic;
  font-size: 13px; color: rgba(255,255,255,.3);
}
.vc-qa-row {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 10px; border-radius: 8px; cursor: pointer;
  transition: background .12s;
}
.vc-qa-row:hover, .vc-qa-row:focus { background: rgba(255,255,255,.06); outline: none; }
.vc-qa-cover {
  width: 42px; height: 56px; flex-shrink: 0;
  border-radius: 5px; overflow: hidden; position: relative;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
}
.vc-qa-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vc-qa-cover-empty {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: rgba(255,255,255,.3);
}
.vc-qa-cover .vc-lb-stack { top: 2px; left: 2px; }
.vc-qa-cover .vc-lb { font-size: 6px; padding: 1px 4px; letter-spacing: .5px; }
.vc-qa-info { flex: 1; min-width: 0; }
.vc-qa-name {
  font-family: var(--font-display,'Cinzel',serif); font-size: 12.5px;
  font-weight: 600; color: var(--text,#e8e4dc);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 3px;
}
.vc-qa-meta {
  font-family: var(--font-mono,'Share Tech Mono',monospace); font-size: 9px;
  color: rgba(255,255,255,.35); letter-spacing: .5px;
}
.vc-qa-arrow { font-size: 18px; color: rgba(255,255,255,.25); flex-shrink: 0; }
.vc-qa-row:hover .vc-qa-arrow { color: var(--gold,#c9973a); }

.vc-qa-footer {
  padding: 10px 20px 14px; border-top: 1px solid rgba(255,255,255,.06); flex-shrink: 0;
}
.vc-qa-footer-note {
  font-size: 10.5px; color: rgba(255,255,255,.3); font-style: italic;
  font-family: var(--font-body,'Crimson Text',serif);
}
.vc-qa-footer-note strong { color: rgba(255,255,255,.5); font-style: normal; }

/* ═══════════════════════════════════════════════════════════════════════
   FRANCHISE MANAGER MODAL
   ═══════════════════════════════════════════════════════════════════════ */
#vc-franchise-manager-modal {
  position: fixed; inset: 0; z-index: 20000;
  opacity: 0; transition: opacity .22s ease;
  pointer-events: none;
}
#vc-franchise-manager-modal.vc-fm-visible { opacity: 1; pointer-events: all; }
#vc-franchise-manager-modal.vc-fm-out     { opacity: 0; pointer-events: none; }

.vc-fm-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.80); backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.vc-fm-dialog {
  background: rgba(13,11,24,.97);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 14px;
  width: min(820px, 96vw); max-height: 88vh;
  box-shadow: 0 28px 80px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.06);
  display: flex; flex-direction: column;
  overflow: hidden;
  transform: translateY(6px); transition: transform .22s ease;
}
#vc-franchise-manager-modal.vc-fm-visible .vc-fm-dialog { transform: translateY(0); }

.vc-fm-topline {
  height: 2px; flex-shrink: 0;
  background: linear-gradient(90deg, transparent, rgba(160,100,240,.7) 40%, var(--gold,#c9973a) 75%, transparent);
}
.vc-fm-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 16px 22px 14px; border-bottom: 1px solid rgba(255,255,255,.06); flex-shrink: 0;
}
.vc-fm-eyebrow {
  font-family: var(--font-vhs,monospace); font-size: 9px; font-weight: 800;
  letter-spacing: 2.5px; text-transform: uppercase; color: var(--gold,#c9973a); margin-bottom: 3px;
}
.vc-fm-subtitle {
  font-family: var(--font-display,'Cinzel',serif); font-size: 15px;
  font-weight: 700; color: var(--text,#e8e4dc);
}
.vc-fm-close {
  width: 28px; height: 28px; border-radius: 6px;
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.45); cursor: pointer; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  transition: all .14s;
}
.vc-fm-close:hover { border-color: rgba(255,80,80,.4); color: #e07070; }

.vc-fm-body {
  display: grid; grid-template-columns: 1fr 280px;
  gap: 0; flex: 1; overflow: hidden;
}
.vc-fm-col {
  padding: 18px 22px;
  overflow-y: auto; scrollbar-width: thin;
}
.vc-fm-col + .vc-fm-col { border-left: 1px solid rgba(255,255,255,.06); }
.vc-fm-col-label {
  font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 800;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255,255,255,.3); margin-bottom: 12px;
}
.vc-fm-empty {
  font-family: var(--font-body,'Crimson Text',serif); font-style: italic;
  font-size: 13px; color: rgba(255,255,255,.3); padding: 12px 0;
}

/* Tagged games list */
.vc-fm-game-list { display: flex; flex-direction: column; gap: 8px; }
.vc-fm-game-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 8px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
  transition: border-color .12s;
}
.vc-fm-game-row:hover { border-color: rgba(255,255,255,.10); }
.vc-fm-cover {
  width: 34px; height: 46px; border-radius: 4px; object-fit: cover;
  flex-shrink: 0; border: 1px solid rgba(255,255,255,.08);
}
.vc-fm-cover-empty {
  width: 34px; height: 46px; border-radius: 4px; flex-shrink: 0;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: rgba(255,255,255,.3);
}
.vc-fm-game-info { flex: 1; min-width: 0; }
.vc-fm-game-name {
  font-family: var(--font-display,'Cinzel',serif); font-size: 11.5px;
  font-weight: 600; color: var(--text,#e8e4dc);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 6px;
}
.vc-fm-tags { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.vc-fm-add-tag-btn {
  font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700;
  letter-spacing: 1px; text-transform: uppercase;
  background: rgba(255,255,255,.04); border: 1px dashed rgba(255,255,255,.18);
  border-radius: 20px; color: rgba(255,255,255,.4);
  padding: 3px 8px; cursor: pointer; transition: all .12s;
}
.vc-fm-add-tag-btn:hover { border-color: var(--gold,#c9973a); color: var(--gold,#c9973a); background: rgba(201,151,58,.07); }

/* Custom presets list */
.vc-fm-custom-list { display: flex; flex-direction: column; gap: 5px; margin-bottom: 4px; }
.vc-fm-preset-row {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 10px; border-radius: 7px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
}
.vc-fm-preset-icon { font-size: 16px; flex-shrink: 0; }
.vc-fm-preset-label {
  font-family: var(--font-display,'Cinzel',serif); font-size: 12px; font-weight: 600;
  color: var(--text,#e8e4dc); flex: 1;
}
.vc-fm-preset-del {
  background: none; border: none; color: rgba(255,255,255,.3); cursor: pointer;
  font-size: 12px; padding: 0 2px; transition: color .12s; line-height: 1; flex-shrink: 0;
}
.vc-fm-preset-del:hover { color: #e07070; }

/* Create new section */
.vc-fm-create-section {}
.vc-fm-create-row { display: flex; gap: 8px; margin-bottom: 8px; }
.vc-fm-icon-input {
  width: 48px; flex-shrink: 0;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.11);
  border-radius: 8px; color: var(--text,#e8e4dc); font-size: 18px;
  text-align: center; padding: 7px 4px; outline: none;
  transition: border-color .14s;
}
.vc-fm-icon-input:focus { border-color: var(--gold,#c9973a); }
.vc-fm-label-input {
  flex: 1;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.11);
  border-radius: 8px; color: var(--text,#e8e4dc); font-size: 12px;
  padding: 9px 12px; font-family: inherit; outline: none;
  transition: border-color .14s;
}
.vc-fm-label-input:focus { border-color: var(--gold,#c9973a); }
.vc-fm-label-input::placeholder { color: rgba(255,255,255,.25); }
.vc-fm-create-btn { width: 100%; }


/* ═══════════════════════════════════════════════════════════════════════
   COPY LIST — edit + delete actions
   ═══════════════════════════════════════════════════════════════════════ */
.vc-copies-list-inner { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.vc-copy-list-row {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px; transition: border-color .12s;
}
.vc-copy-list-row:hover { border-color: rgba(255,255,255,.12); }
.vc-copy-list-main { flex: 1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.vc-copy-list-plat { font-family: var(--font-display,'Cinzel',serif); font-size: 12px; font-weight: 600; color: var(--text,#e8e4dc); }
.vc-copy-list-fmt  { font-size: 11px; color: rgba(255,255,255,.5); }
.vc-copy-list-cond { font-size: 10px; color: rgba(255,255,255,.4); }
.vc-copy-list-ed   { font-size: 10px; color: var(--gold,#c9973a); font-style: italic; }
.vc-copy-list-notes { font-size: 10px; color: rgba(255,255,255,.35); font-style: italic; padding: 2px 0 0; width: 100%; }
.vc-copy-list-actions {
  display: flex; gap: 4px; flex-shrink: 0;
}
.vc-copy-list-edit {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.45); border-radius: 5px;
  width: 26px; height: 26px; cursor: pointer; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  transition: all .12s;
}
.vc-copy-list-edit:hover { border-color: var(--gold,#c9973a); color: var(--gold,#c9973a); background: rgba(201,151,58,.1); }
/* Ensure del button still works alongside */
.vc-copy-list-del {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.35); border-radius: 5px;
  width: 26px; height: 26px; cursor: pointer; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  transition: all .12s;
}
.vc-copy-list-del:hover { border-color: rgba(200,60,60,.5); color: #e07070; background: rgba(200,60,60,.08); }

/* COPY EDIT MODAL retired — vcOpenCopyEditModal was folded into the one
   shared vcOpenCopyModal editor (docs/games-ownership-root-model-2026-08-22.md).
   .vc-ced-* rules removed, nothing references them anymore. */

/* ═══════════════════════════════════════════════════════════════════════
   COVEN HUB — Full redesign
   ═══════════════════════════════════════════════════════════════════════ */
.vc-coven-gate {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 280px; gap: 10px; text-align: center; padding: 40px;
}
.vc-coven-gate-sigil { font-size: 36px; margin-bottom: 4px; }
.vc-coven-gate-title { font-family: var(--font-display,'Cinzel',serif); font-size: 17px; font-weight: 700; color: var(--text,#e8e4dc); }
.vc-coven-gate-sub { font-size: 12px; color: rgba(255,255,255,.4); margin-bottom: 8px; }
.vc-coven-loading {
  display: flex; align-items: center; gap: 10px; justify-content: center;
  padding: 40px; font-family: var(--font-vhs,monospace); font-size: 10px;
  letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.35);
}
.vc-coven-loading-sigil { font-size: 20px; animation: vc-sigil-spin 3s linear infinite; }
@keyframes vc-sigil-spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

.vc-hub { display: flex; flex-direction: column; gap: 0; }
.vc-hub-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0 14px; border-bottom: 1px solid rgba(255,255,255,.06);
  margin-bottom: 0;
}
.vc-hub-head-left { display: flex; flex-direction: column; gap: 4px; }
.vc-hub-coven-name {
  font-family: var(--font-display,'Cinzel',serif); font-size: 20px;
  font-weight: 700; color: var(--text,#e8e4dc);
}
.vc-hub-coven-code {
  font-family: var(--font-vhs,monospace); font-size: 9px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.3);
}
.vc-hub-members-avatars { display: flex; gap: 4px; }
.vc-hub-avatar {
  width: 32px; height: 32px; border-radius: 7px;
  background: linear-gradient(135deg, var(--blood, #5a0a0a), var(--panel, #1a1218));
  border: 1px solid rgba(201,151,58,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; line-height: 1; flex-shrink: 0;
  color: var(--gold, #c9973a);
}

/* Tabs */
.vc-hub-tabs {
  display: flex; gap: 2px; padding: 12px 0 0; border-bottom: 1px solid rgba(255,255,255,.07);
  overflow-x: auto; scrollbar-width: none;
}
.vc-hub-tab {
  font-family: var(--font-vhs,monospace); font-size: 9px; font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase;
  padding: 8px 16px; border-radius: 6px 6px 0 0; border: none;
  background: rgba(255,255,255,.03); color: rgba(255,255,255,.4);
  cursor: pointer; transition: all .14s; white-space: nowrap;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.vc-hub-tab:hover { color: rgba(255,255,255,.7); background: rgba(255,255,255,.06); }
.vc-hub-tab.active { color: var(--gold,#c9973a); background: rgba(201,151,58,.07); border-bottom-color: var(--gold,#c9973a); }

.vc-hub-panel { display: none; padding: 18px 0; }
.vc-hub-panel.active { display: block; }
.vc-hub-empty {
  padding: 40px 0; text-align: center;
  font-family: var(--font-body,'Crimson Text',serif); font-style: italic;
  font-size: 14px; color: rgba(255,255,255,.35);
}

/* Sort bar */
.vc-hub-sortbar {
  display: flex; align-items: center; gap: 6px; margin-bottom: 16px;
  flex-wrap: wrap;
}
.vc-hub-sortbar-label {
  font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.3);
  margin-right: 4px;
}
.vc-hub-sortbtn {
  font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700;
  letter-spacing: 1px; text-transform: uppercase;
  padding: 5px 12px; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.4); cursor: pointer; transition: all .12s;
}
.vc-hub-sortbtn:hover { border-color: rgba(255,255,255,.25); color: rgba(255,255,255,.7); }
.vc-hub-sortbtn.active { border-color: var(--gold,#c9973a); color: var(--gold,#c9973a); background: rgba(201,151,58,.09); }

/* Activity feed */
.vc-act-day-sep {
  font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.25);
  padding: 14px 0 8px; border-bottom: 1px solid rgba(255,255,255,.05); margin-bottom: 4px;
}
.vc-act-row {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px;
  border-radius: 8px; cursor: pointer; transition: background .12s;
}
.vc-act-row:hover { background: rgba(255,255,255,.04); }
.vc-act-avatar {
  flex-shrink: 0; width: 36px; height: 36px;
  border-radius: 50%; background: rgba(201,151,58,.15); border: 1px solid rgba(201,151,58,.25);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; font-family: var(--font-display,'Cinzel',serif);
  color: var(--gold,#c9973a); overflow: hidden; text-align: center;
}
.vc-act-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.vc-act-cover {
  width: 34px; height: 46px; border-radius: 4px; overflow: hidden;
  flex-shrink: 0; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
}
.vc-act-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vc-act-cover-empty { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 14px; color: rgba(255,255,255,.3); }
.vc-act-body { flex: 1; min-width: 0; }
.vc-act-top { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; flex-wrap: nowrap; overflow: hidden; }
.vc-act-member { font-family: var(--font-vhs,monospace); font-size: 10px; font-weight: 700; letter-spacing: .5px; color: rgba(255,255,255,.7); white-space: nowrap; flex-shrink: 0; }
.vc-act-member.vc-act-me { color: var(--gold,#c9973a); }
.vc-act-badge { font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 2px 6px; border-radius: 3px; background: rgba(255,255,255,.06); }
.vc-act-badge--playing { color: #7de040; }
.vc-act-badge--done    { color: #c9973a; }
.vc-act-badge--locker  { color: rgba(255,255,255,.5); }
.vc-act-badge--wish    { color: #b070ee; }
.vc-act-badge--backlog { color: #c49a30; }
.vc-act-badge--drop      { color: #c06060; }
.vc-act-badge--witnessed { color: #78b4ff; }

/* ── Witness button active state ─────────────────────────────── */
.vc-lm-witness-btn.active {
  color: #78b4ff;
  border-color: rgba(120,180,255,.4);
  background: rgba(120,180,255,.08);
}

/* ── Witness Panel ───────────────────────────────────────────── */
.vc-wit-shared-block {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(120,180,255,.18);
  border-radius: 8px;
  background: rgba(120,180,255,.04);
}
.vc-wit-shared-label {
  font-family: var(--font-vhs, monospace);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #78b4ff;
  margin-bottom: 10px;
}
.vc-wit-shared-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.vc-wit-shared-card {
  width: 72px;
  cursor: pointer;
  position: relative;
}
.vc-wit-shared-card img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 5px;
  border: 1px solid rgba(120,180,255,.3);
  display: block;
}
.vc-wit-shared-viewers {
  font-family: var(--font-vhs, monospace);
  font-size: 7px;
  color: #78b4ff;
  text-align: center;
  margin-top: 3px;
}
.vc-wit-members {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.vc-wit-member-section {}
.vc-wit-member-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.vc-wit-avatar { font-size: 16px; }
.vc-wit-member-name {
  font-family: var(--font-occult, serif);
  font-size: 13px;
  color: var(--static, #ddd);
  flex: 1;
}
.vc-wit-role-badge {
  font-family: var(--font-vhs, monospace);
  font-size: 7px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #78b4ff;
  padding: 2px 6px;
  border: 1px solid rgba(120,180,255,.3);
  border-radius: 3px;
  background: rgba(120,180,255,.08);
}
.vc-wit-count {
  font-family: var(--font-vhs, monospace);
  font-size: 8px;
  color: var(--dust, #888);
}
.vc-wit-game-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.vc-wit-game-card {
  width: 68px;
  cursor: pointer;
  position: relative;
  transition: transform .15s;
}
.vc-wit-game-card:hover { transform: translateY(-2px); }
.vc-wit-game-card img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 5px;
  border: 1px solid rgba(255,255,255,.1);
  display: block;
}
.vc-wit-game-card--shared img {
  border-color: rgba(120,180,255,.4);
  box-shadow: 0 0 8px rgba(120,180,255,.2);
}
.vc-wit-shared-pip {
  position: absolute;
  top: 4px; right: 4px;
  font-size: 10px;
  background: rgba(0,0,0,.7);
  border-radius: 50%;
  width: 18px; height: 18px;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.vc-wit-card-name {
  font-family: var(--font-vhs, monospace);
  font-size: 7px;
  color: var(--dust, #888);
  text-align: center;
  margin-top: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vc-wit-cover-empty {
  width: 100%;
  aspect-ratio: 3/4;
  background: var(--chamber, #111);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  border-radius: 5px;
}
.vc-act-game { font-family: var(--font-display,'Cinzel',serif); font-size: 12px; font-weight: 600; color: var(--text,#e8e4dc); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vc-act-time { font-size: 10px; color: rgba(255,255,255,.25); margin-top: 2px; }

/* Now Playing grid */
.vc-np-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.vc-np-card {
  border-radius: 10px; overflow: hidden;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08);
  cursor: pointer; transition: all .15s;
}
.vc-np-card:hover { border-color: rgba(82,176,0,.4); background: rgba(82,176,0,.05); transform: translateY(-2px); }
.vc-np-cover { position: relative; aspect-ratio: 3/4; background: rgba(255,255,255,.04); }
.vc-np-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vc-np-cover-empty { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 32px; color: rgba(255,255,255,.2); }
.vc-np-pulse {
  position: absolute; top: 8px; right: 8px; width: 8px; height: 8px;
  border-radius: 50%; background: #52b000;
  box-shadow: 0 0 0 0 rgba(82,176,0,.6);
  animation: vc-pulse 2s infinite;
}
@keyframes vc-pulse { 0%{box-shadow:0 0 0 0 rgba(82,176,0,.6)} 70%{box-shadow:0 0 0 8px rgba(82,176,0,0)} 100%{box-shadow:0 0 0 0 rgba(82,176,0,0)} }
.vc-np-info { padding: 10px 12px 12px; }
.vc-np-avatar { font-size: 18px; margin-bottom: 4px; }
.vc-np-member { font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,.4); margin-bottom: 3px; }
.vc-np-game { font-family: var(--font-display,'Cinzel',serif); font-size: 11px; font-weight: 600; color: var(--text,#e8e4dc); }
.vc-np-since { font-size: 9px; color: rgba(82,176,0,.7); margin-top: 4px; font-family: var(--font-vhs,monospace); letter-spacing: .5px; }

/* Ranks */
.vc-lb-list { display: flex; flex-direction: column; gap: 6px; }
.vc-lb-row {
  display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  border-radius: 8px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
  transition: border-color .12s;
}
.vc-lb-row:hover { border-color: rgba(255,255,255,.12); }
.vc-lb-row--me { border-color: rgba(201,151,58,.25); background: rgba(201,151,58,.04); }
.vc-lb-medal { font-size: 20px; flex-shrink: 0; width: 28px; text-align: center; }
.vc-lb-rank-num { font-family: var(--font-vhs,monospace); font-size: 12px; color: rgba(255,255,255,.3); }
.vc-lb-avatar { font-size: 20px; flex-shrink: 0; }
.vc-lb-name { flex: 1; font-family: var(--font-display,'Cinzel',serif); font-size: 13px; font-weight: 600; color: var(--text,#e8e4dc); display: flex; align-items: center; gap: 6px; }
.vc-lb-stats { display: flex; gap: 10px; }
.vc-lb-stats span { font-family: var(--font-mono,'Share Tech Mono',monospace); font-size: 10px; color: rgba(255,255,255,.45); }
.vc-lb-score { font-family: var(--font-vhs,monospace); font-size: 13px; font-weight: 700; color: var(--gold,#c9973a); min-width: 48px; text-align: right; }
.vc-lb-note { font-size: 10px; color: rgba(255,255,255,.2); font-style: italic; margin-top: 10px; text-align: center; }

/* Members */
.vc-members-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }

.vc-member-card {
  padding: 20px 16px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  cursor: pointer;
  transition: transform .14s, border-color .14s, box-shadow .14s;
  text-align: center;
  position: relative;
  overflow: visible;
  display: flex; flex-direction: column; align-items: center;
  min-height: 220px;
}
.vc-member-card:hover { border-color: rgba(255,255,255,.15); transform: translateY(-2px); }
.vc-member-card--me { border-color: rgba(201,151,58,.25) !important; }

/* Avatar wrapper — clips overflow for rarity effects without clipping the edit button */
.vc-member-avatar-wrap {
  position: relative; margin-bottom: 10px;
}
.vc-member-avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blood, #5a0a0a), var(--panel, #1a1218));
  border: 2px solid rgba(201,151,58,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; line-height: 1;
  color: var(--gold, #c9973a);
  overflow: hidden;
  margin: 0 auto;
}
.vc-member-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }

.vc-member-name { font-family: var(--font-display,'Cinzel',serif); font-size: 12px; font-weight: 700; color: var(--text,#e8e4dc); margin-bottom: 4px; display: flex; align-items: center; justify-content: center; gap: 5px; }
.vc-member-quote { font-size: 10px; color: var(--dust); font-style: italic; margin: 0 0 10px; line-height: 1.4; opacity: .8; }
.vc-member-stats { display: flex; justify-content: center; gap: 12px; margin-bottom: 8px; }
.vc-member-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.vc-member-stat-val { font-family: var(--font-vhs,monospace); font-size: 18px; font-weight: 700; color: var(--text,#e8e4dc); }
.vc-member-stat-lbl { font-family: var(--font-vhs,monospace); font-size: 7px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,.3); }
.vc-member-common { font-size: 9px; color: rgba(255,255,255,.35); font-style: italic; font-family: var(--font-body,'Crimson Text',serif); margin-bottom: 6px; }

/* Pinned games */
.vc-member-pinned { display: flex; gap: 6px; justify-content: center; margin-top: auto; padding-top: 8px; }
.vc-member-pinned-cover { width: 36px; height: 48px; border-radius: 4px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.05); position: relative; flex-shrink: 0; }
.vc-member-pinned-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.vc-member-pinned-empty { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:12px; }

/* Edit button */
.vc-member-edit-btn {
  position: absolute; top: -6px; right: -6px;
  background: rgba(201,151,58,.25); border: 1px solid rgba(201,151,58,.6);
  color: var(--gold); border-radius: 5px;
  font-size: 10px; padding: 3px 9px; cursor: pointer;
  opacity: 0; transition: opacity .15s;
  font-family: var(--font-mono,monospace); letter-spacing: .5px;
  z-index: 20; pointer-events: all;
  white-space: nowrap;
}
.vc-member-card:hover .vc-member-edit-btn { opacity: 1; }

/* Rarity effects applied via ::before/::after clipped inside card */
.vc-member-card::before,
.vc-member-card::after {
  content: ''; position: absolute; inset: 0;
  pointer-events: none; border-radius: inherit; z-index: 0;
  overflow: hidden;
}

/* Shimmer */
.vc-card-shimmer::before { background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.06) 50%, transparent 60%); background-size: 200% 100%; animation: vc-shimmer 2.5s infinite; }
/* Holo */
.vc-card-holo::before { background: linear-gradient(125deg, rgba(255,0,128,.07) 0%, rgba(255,200,0,.07) 25%, rgba(0,255,128,.07) 50%, rgba(0,128,255,.07) 75%, rgba(200,0,255,.07) 100%); background-size: 300% 300%; animation: vc-holo 4s ease infinite; }
.vc-card-holo { border-color: rgba(180,120,255,.4) !important; }
/* Pulse */
.vc-card-pulse { animation: vc-pulse-glow 2.5s ease-in-out infinite; border-color: rgba(201,151,58,.5) !important; }
/* Foil */
.vc-card-foil::before { background: conic-gradient(rgba(255,0,0,.08),rgba(255,165,0,.08),rgba(255,255,0,.08),rgba(0,255,0,.08),rgba(0,0,255,.08),rgba(238,130,238,.08),rgba(255,0,0,.08)); animation: vc-foil-spin 6s linear infinite; }
.vc-card-foil { border-color: rgba(238,130,238,.5) !important; }
/* Particles */
.vc-card-particles::after { background-image: radial-gradient(circle, rgba(201,151,58,.6) 1px, transparent 1px), radial-gradient(circle, rgba(201,151,58,.4) 1px, transparent 1px); background-size: 60px 60px, 40px 40px; background-position: 0 0, 20px 20px; animation: vc-particles-drift 8s linear infinite; opacity: .4; }
/* Scanlines */
.vc-card-scanlines::before { background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.15) 2px, rgba(0,0,0,.15) 4px); }

/* Accent colors */
.vc-card-accent-gold   { border-color: rgba(201,151,58,.5) !important; background: linear-gradient(160deg, rgba(201,151,58,.07) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-blood  { border-color: rgba(160,30,30,.6) !important; background: linear-gradient(160deg, rgba(160,30,30,.12) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-arcane { border-color: rgba(120,80,200,.5) !important; background: linear-gradient(160deg, rgba(120,80,200,.09) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-toxic  { border-color: rgba(80,200,80,.4) !important; background: linear-gradient(160deg, rgba(80,200,80,.07) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-void   { border-color: rgba(60,60,80,.8) !important; background: linear-gradient(160deg, rgba(20,20,30,.5) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-frost  { border-color: rgba(100,180,255,.4) !important; background: linear-gradient(160deg, rgba(100,180,255,.07) 0%, rgba(255,255,255,.03) 60%) !important; }
.vc-card-accent-rose   { border-color: rgba(220,80,150,.4) !important; background: linear-gradient(160deg, rgba(220,80,150,.08) 0%, rgba(255,255,255,.03) 60%) !important; }

/* Wishlists */
/* Wishlist filter pills */
.vc-wish-filters {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-bottom: 18px;
}
.vc-wish-pill {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px; border-radius: 20px; cursor: pointer;
  font-family: var(--font-vhs, monospace); font-size: 10px; font-weight: 700;
  letter-spacing: .5px; text-transform: uppercase;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.5);
  transition: all .15s;
}
.vc-wish-pill:hover {
  border-color: rgba(201,151,58,.4); color: rgba(255,255,255,.8);
  background: rgba(201,151,58,.07);
}
.vc-wish-pill.active {
  background: rgba(201,151,58,.15); border-color: rgba(201,151,58,.5);
  color: var(--gold, #c9973a);
  box-shadow: 0 0 8px rgba(201,151,58,.15);
}
.vc-wish-pill--member { gap: 6px; }
.vc-wish-pill-av { font-size: 13px; line-height: 1; }
.vc-wish-pill-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
  background: rgba(255,255,255,.1); font-size: 9px;
  color: rgba(255,255,255,.5);
}
.vc-wish-pill.active .vc-wish-pill-count {
  background: rgba(201,151,58,.25); color: var(--gold, #c9973a);
}

.vc-wish-page { display: flex; flex-direction: column; gap: 24px; }
.vc-wish-member-section {}
.vc-wish-member-header { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.vc-wish-avatar { font-size: 20px; }
.vc-wish-member-name { font-family: var(--font-display,'Cinzel',serif); font-size: 13px; font-weight: 700; color: var(--text,#e8e4dc); flex: 1; }
.vc-wish-count { font-family: var(--font-vhs,monospace); font-size: 8px; font-weight: 700; letter-spacing: 1px; color: rgba(255,255,255,.3); text-transform: uppercase; }
.vc-wish-row { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; }
.vc-wish-card {
  flex-shrink: 0; width: 90px; border-radius: 6px; overflow: hidden; cursor: pointer;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  transition: all .13s;
}
.vc-wish-card:hover { border-color: rgba(160,100,240,.4); transform: translateY(-2px); }
.vc-wish-card img { width: 90px; height: 120px; object-fit: cover; display: block; }
.vc-wish-cover-empty { width: 90px; height: 120px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: rgba(255,255,255,.2); }
.vc-wish-card-name { font-size: 8px; font-family: var(--font-vhs,monospace); color: rgba(255,255,255,.4); padding: 4px 5px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ═══════════════════════════════════════════════════════════════════════
   COVEN VIEW LAYOUT FIX
   Hub renders its own header — give the page container top padding
   so content isn't flush against the top edge.
   ═══════════════════════════════════════════════════════════════════════ */
.vc-coven-page {
  padding-top: 28px !important;
  padding-bottom: 80px;
}
/* Coven hub head acts as the page header */
.vc-hub-head {
  padding-top: 4px;
}


/* ═══════════════════════════════════════════════════════════════════════
   LOCKER CARD MODAL
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Overlay ── */
.vc-locker-modal {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none; opacity: 0;
  transition: opacity .2s ease;
}
.vc-locker-modal.open { opacity: 1; pointer-events: auto; }

.vc-locker-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(4px);
}

/* ── Dialog ── */
.vc-locker-modal-dialog {
  position: relative; z-index: 1;
  width: calc(100% - 48px); max-width: 1000px;
  min-width: 0;
  max-height: 90vh;
  background: var(--bg, #0d0c14);
  border: 1px solid var(--border-bright, rgba(201,151,58,.35));
  border-radius: 16px;
  overflow-y: auto;
  display: flex; flex-direction: column;
  transform: scale(.97) translateY(12px);
  transition: transform .22s cubic-bezier(.22,1,.36,1);
  box-shadow: 0 24px 80px rgba(0,0,0,.75);
}
.vc-locker-modal.open .vc-locker-modal-dialog { transform: scale(1) translateY(0); }

/* ── Banner strip ──
   Source image is the same portrait cover used for the poster, not a
   separate wide banner asset -- stretched thin at the old 110px it read as
   an awkward crop (see Cyberpunk 2077 report). Taller + blurred/scaled
   reads as an intentional ambient backdrop instead of a mis-cropped
   poster, and gives the hero more room to breathe. */
.vc-lm-banner {
  height: 220px;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--void, #08070f);
}
.vc-lm-banner::before {
  content: '';
  position: absolute; inset: -20px;
  background: inherit; background-size: cover; background-position: center 20%;
  filter: blur(18px) saturate(1.15) brightness(.75);
  transform: scale(1.15);
}
.vc-lm-banner::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.35) 55%, var(--bg, #0d0c14) 100%);
}
.vc-lm-close {
  position: absolute; top: 10px; right: 12px; z-index: 2;
  background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.7); border-radius: 999px;
  width: 28px; height: 28px; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .15s, color .15s;
}
.vc-lm-close:hover { background: rgba(255,255,255,.12); color: #fff; }

/* ── Hero ── */
.vc-lm-hero {
  display: flex; gap: 16px;
  padding: 0 18px 16px;
  margin-top: -72px;
  position: relative; z-index: 1;
}
.vc-lm-cover {
  width: 180px; flex-shrink: 0;
  aspect-ratio: 3/4;
  border-radius: 6px; overflow: hidden;
  border: 1px solid var(--border-bright, rgba(201,151,58,.3));
  box-shadow: 0 4px 16px rgba(0,0,0,.55);
  background: var(--chamber, #1a1424);
}
.vc-lm-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vc-lm-cover-fallback {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; opacity: .4;
}

.vc-lm-hero-info { flex: 1; min-width: 0; max-width: 100%; overflow: hidden; padding-top: 68px; }
.vc-lm-title {
  font-family: var(--font-occult, 'Cinzel', serif);
  font-size: 16px; font-weight: 700;
  color: var(--text, #e8e4dc);
  margin: 0 0 4px; line-height: 1.2;
}
.vc-lm-year {
  font-family: var(--font-vhs, monospace);
  font-size: 10px; color: var(--gold, #c9973a);
  letter-spacing: .5px; margin-bottom: 6px;
}
.vc-lm-status-pill {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 999px;
  border: 1px solid var(--pill-color);
  background: color-mix(in srgb, var(--pill-color) 12%, transparent);
  color: var(--pill-color);
  font-family: var(--font-vhs, monospace);
  font-size: 9px; letter-spacing: .6px;
  text-transform: uppercase; margin-bottom: 8px;
}
.vc-lm-status-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--pill-color);
}
.vc-lm-franchise-row {
  display: flex; flex-wrap: wrap; gap: 5px; align-items: center;
  margin-bottom: 10px;
}
.vc-lm-summary {
  font-family: var(--font-body, 'Crimson Text', serif);
  font-size: 13px; line-height: 1.55;
  color: var(--fog, rgba(232,228,220,.55));
  margin: 0;
  min-height: 3lh;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Sections ── */
.vc-lm-section {
  padding: 14px 18px;
  border-top: 1px solid var(--border, rgba(255,255,255,.07));
}
.vc-lm-section-hdr {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.vc-lm-section-title {
  font-family: var(--font-vhs, monospace);
  font-size: 9px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--dust, rgba(232,228,220,.35));
}
.vc-lm-add-copy-btn {
  font-family: var(--font-vhs, monospace);
  font-size: 9px; letter-spacing: 1px; text-transform: uppercase;
  background: rgba(201,151,58,.1); border: 1px solid rgba(201,151,58,.3);
  color: var(--gold, #c9973a); border-radius: 5px;
  padding: 4px 10px; cursor: pointer;
  transition: background .15s, border-color .15s;
}
.vc-lm-add-copy-btn:hover { background: rgba(201,151,58,.2); border-color: rgba(201,151,58,.55); }

/* ── Copy rows ── */
.vc-lm-copy-group { margin-bottom: 6px; }
.vc-lm-copy-group:last-child { margin-bottom: 0; }
.vc-lm-copy-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 10px;
  background: var(--panel, rgba(255,255,255,.03));
  border: 1px solid var(--border, rgba(255,255,255,.07));
  border-radius: 8px;
  transition: border-color .15s;
}
.vc-lm-copy-group.open .vc-lm-copy-row {
  border-radius: 8px 8px 0 0; border-bottom-color: transparent;
}
.vc-lm-copy-row:hover { border-color: rgba(201,151,58,.28); }

/* ── Per-copy DLC / included-content shelf — always visible, no toggle ── */
.vc-lm-copy-dlc-panel {
  padding: 12px 14px 14px;
  background: rgba(0,0,0,.2); border: 1px solid var(--border, rgba(255,255,255,.07)); border-top: none;
  border-radius: 0 0 8px 8px;
}
.vc-lm-copy-group:has(.vc-lm-copy-dlc-panel) .vc-lm-copy-row {
  border-radius: 8px 8px 0 0; border-bottom-color: transparent;
}
.vc-lm-copy-dlc-label {
  font-family: var(--font-vhs, monospace); font-size: 9.5px; letter-spacing: 1px; text-transform: uppercase;
  color: var(--gold, #c9973a); margin-bottom: 10px; display: flex; align-items: center; gap: 6px;
}
.vc-lm-copy-dlc-label span {
  font-size: 8.5px; color: rgba(201,151,58,.7); background: rgba(201,151,58,.1);
  border: 1px solid rgba(201,151,58,.25); border-radius: 999px; padding: 1px 7px;
}
.vc-lm-copy-dlc-shelf { display: flex; flex-wrap: wrap; gap: 12px; }
.vc-lm-copy-dlc-card { width: 108px; flex-shrink: 0; cursor: pointer; }
.vc-lm-copy-dlc-card:focus-visible { outline: 2px solid var(--gold, #c9973a); outline-offset: 3px; border-radius: 8px; }
.vc-lm-copy-dlc-cover {
  width: 100%; aspect-ratio: 3/4; border-radius: 8px; overflow: hidden;
  background: rgba(0,0,0,.4); border: 1px solid rgba(255,255,255,.1); margin-bottom: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.vc-lm-copy-dlc-card:hover .vc-lm-copy-dlc-cover {
  border-color: rgba(201,151,58,.5); box-shadow: 0 6px 16px rgba(0,0,0,.45); transform: translateY(-2px);
}
.vc-lm-copy-dlc-card:hover .vc-lm-copy-dlc-name { color: var(--gold-pale, #f0d080); }
.vc-lm-copy-dlc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vc-lm-copy-dlc-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 26px; opacity: .3; }
.vc-lm-copy-dlc-name { font-size: 10.5px; line-height: 1.3; color: rgba(255,255,255,.78); text-align: center;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vc-lm-copy-dlc-card--skel .vc-lm-copy-dlc-cover {
  background: linear-gradient(100deg, rgba(255,255,255,.03) 30%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.03) 70%);
  background-size: 200% 100%; animation: vcDlcSkelShimmer 1.4s ease-in-out infinite;
}
@keyframes vcDlcSkelShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.vc-lm-copy-dlc-more {
  width: 108px; aspect-ratio: 3/4; flex-shrink: 0; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border-radius: 8px; background: rgba(201,151,58,.06); border: 1px dashed rgba(201,151,58,.3);
  color: var(--gold, #c9973a); font-family: var(--font-vhs, monospace); font-size: 15px; font-weight: 600;
  transition: background .15s, border-color .15s;
}
.vc-lm-copy-dlc-more span { font-size: 8.5px; letter-spacing: .5px; text-transform: uppercase; font-weight: 400; opacity: .75; }
.vc-lm-copy-dlc-more:hover { background: rgba(201,151,58,.12); border-color: rgba(201,151,58,.5); }

.vc-lm-copy-left { display: flex; align-items: center; gap: 10px; min-width: 0; }
.vc-lm-fmt-icon { font-size: 15px; flex-shrink: 0; }
.vc-lm-plat-icon { display: flex; align-items: center; flex-shrink: 0; opacity: .75; }
.vc-lm-copy-info { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; }
.vc-lm-copy-plat {
  font-family: var(--font-vhs, monospace);
  font-size: 10px; color: var(--text, #e8e4dc);
  letter-spacing: .3px;
}
.vc-lm-copy-edition {
  font-family: var(--font-vhs, monospace);
  font-size: 9px; color: var(--gold, #c9973a);
  padding: 1px 6px; border-radius: 999px;
  background: rgba(201,151,58,.1); border: 1px solid rgba(201,151,58,.25);
}
.vc-lm-copy-cond { display: inline-flex; }
.vc-lm-copy-notes {
  font-size: 10px; color: var(--fog, rgba(232,228,220,.45));
  font-style: italic; width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.vc-lm-copy-actions { display: flex; gap: 5px; flex-shrink: 0; }
.vc-lm-copy-btn {
  width: 26px; height: 26px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.45); border-radius: 5px; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.vc-lm-copy-btn:hover { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.25); }
.vc-lm-copy-btn--danger:hover { background: rgba(192,57,43,.2); border-color: rgba(192,57,43,.5); color: #ff8080; }

.vc-lm-no-copies {
  font-size: 12px; color: var(--fog, rgba(232,228,220,.4));
  padding: 8px 0; text-align: center;
}
.vc-lm-inline-link {
  background: none; border: none;
  color: var(--gold, #c9973a); cursor: pointer;
  font-size: 12px; text-decoration: underline; padding: 0;
}

/* ── Dupe banner ── */
.vc-lm-dupe-banner {
  background: rgba(240,180,40,.08);
  border: 1px solid rgba(240,180,40,.3);
  border-radius: 7px; padding: 9px 12px;
  font-size: 12px; color: #f0d080;
  margin-bottom: 10px;
}

/* ── Coven members ── */
.vc-lm-coven-members { display: flex; flex-direction: column; gap: 7px; }
.vc-lm-coven-member-row {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 10px;
  background: var(--panel, rgba(255,255,255,.03));
  border: 1px solid var(--border, rgba(255,255,255,.07));
  border-radius: 7px;
}
.vc-lm-coven-av {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--chamber, #1a1424);
  border: 1px solid var(--border-bright, rgba(201,151,58,.3));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-occult, 'Cinzel', serif);
  font-size: 12px; color: var(--gold, #c9973a);
  overflow: hidden; flex-shrink: 0;
}
.vc-lm-coven-av img { width: 100%; height: 100%; object-fit: cover; }
.vc-lm-coven-name {
  font-size: 13px; color: var(--text, #e8e4dc);
}

/* ── Action bar ── */
.vc-lm-action-bar {
  position: sticky; bottom: 0;
  display: flex; gap: 7px; flex-wrap: wrap;
  padding: 12px 18px 16px;
  background: linear-gradient(0deg, var(--bg, #0d0c14) 80%, transparent);
  border-top: 1px solid var(--border, rgba(255,255,255,.07));
}
.vc-lm-action-btn { flex-shrink: 0; }
.vc-lm-log-session-btn {
  margin-left: auto;
  border-color: var(--blood, #b35640) !important;
  color: var(--blood-bright, #e07040) !important;
}
.vc-lm-log-session-btn:hover {
  background: rgba(179,86,64,.15) !important;
  border-color: var(--blood-bright, #e07040) !important;
}
.vc-lm-remove-btn { color: rgba(255,255,255,.35) !important; }
.vc-lm-remove-btn:hover {
  background: rgba(192,57,43,.16) !important;
  border-color: rgba(192,57,43,.5) !important;
  color: #ff8080 !important;
}
.vc-lm-remove-btn:disabled { opacity: .5; cursor: default; }
.vc-lm-action-btn.active {
  background: rgba(201,151,58,.14);
  border-color: rgba(201,151,58,.45);
  color: var(--gold, #c9973a);
}

/* ── Light theme ── */
:root[data-vc-theme="light_academia"] .vc-locker-modal-dialog,
:root[data-vc-theme="hedgerow"] .vc-locker-modal-dialog {
  border-color: rgba(0,0,0,.18);
}
:root[data-vc-theme="light_academia"] .vc-lm-copy-row,
:root[data-vc-theme="hedgerow"] .vc-lm-copy-row {
  background: rgba(0,0,0,.04);
  border-color: rgba(0,0,0,.1);
}



/* ═══════════════════════════════════════════════════════════════════════
   GAME DETAILS MODAL — center offset for sidebar
   ═══════════════════════════════════════════════════════════════════════ */
/* game modal — no sidebar offset, center across full viewport */
#vc-game-modal {
  padding-left: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   FRANCHISE PICKER  (.vc-gfp-*)
   ═══════════════════════════════════════════════════════════════════════ */
.vc-gfp-dialog {
  background: var(--chamber, #120f1e);
  border: 1px solid var(--border-bright, rgba(201,151,58,.3));
  border-radius: 14px;
  width: min(600px, 94vw);
  max-height: 82vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 64px rgba(0,0,0,.88);
}

.vc-gfp-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,.07));
  flex-shrink: 0;
}
.vc-gfp-active-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.vc-gfp-no-tags {
  font-family: var(--font-vhs, monospace);
  font-size: 9px;
  color: var(--dust, rgba(232,228,220,.3));
  letter-spacing: 1px;
}
.vc-gfp-clear-btn {
  background: none;
  border: none;
  color: var(--dust, rgba(232,228,220,.35));
  font-family: var(--font-vhs, monospace);
  font-size: 9px;
  letter-spacing: .5px;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: color .14s;
}
.vc-gfp-clear-btn:hover { color: var(--fog, rgba(232,228,220,.6)); }
.vc-gfp-x {
  background: none;
  border: none;
  color: var(--fog, rgba(232,228,220,.4));
  font-size: 15px;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  flex-shrink: 0;
  transition: color .14s;
}
.vc-gfp-x:hover { color: var(--text, #e8e4dc); }

.vc-gfp-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 14px 16px;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}

.vc-gfp-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}
.vc-gfp-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,.1));
  background: var(--deep, #0d0c14);
  color: var(--fog, rgba(232,228,220,.6));
  font-family: var(--font-vhs, monospace);
  font-size: 11px;
  cursor: pointer;
  transition: border-color .14s, color .14s, background .14s;
}
.vc-gfp-pill:hover {
  border-color: rgba(201,151,58,.4);
  color: var(--text, #e8e4dc);
}
.vc-gfp-pill--active {
  background: rgba(201,151,58,.13);
  border-color: rgba(201,151,58,.55);
  color: var(--gold, #c9973a);
}

.vc-gfp-add-section {
  border-top: 1px solid var(--border, rgba(255,255,255,.07));
  padding-top: 14px;
  margin-top: 4px;
}
.vc-gfp-section-label {
  font-family: var(--font-vhs, monospace);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--dust, rgba(232,228,220,.3));
  margin-bottom: 10px;
}
.vc-gfp-add-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.vc-gfp-icon-btn {
  width: 40px;
  height: 38px;
  flex-shrink: 0;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border-bright, rgba(201,151,58,.25));
  border-radius: 8px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .14s, background .14s;
}
.vc-gfp-icon-btn:hover {
  border-color: var(--gold, #c9973a);
  background: rgba(201,151,58,.08);
}
.vc-gfp-icon-btn--right {
  width: 40px;
}
.vc-gfp-input {
  flex: 1;
  height: 38px;
  padding: 0 12px;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border, rgba(255,255,255,.1));
  border-radius: 8px;
  color: var(--text, #e8e4dc);
  font-family: var(--font-body, 'Crimson Text', serif);
  font-size: 13px;
  transition: border-color .14s;
}
.vc-gfp-input:focus {
  outline: none;
  border-color: rgba(201,151,58,.45);
}
.vc-gfp-input::placeholder { color: var(--dust, rgba(232,228,220,.3)); }
.vc-gfp-add-btn { width: 100%; }

/* ═══════════════════════════════════════════════════════════════════════
   ICON PICKER  (.vc-ip-*)
   ═══════════════════════════════════════════════════════════════════════ */
#vc-icon-picker-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events: none;
}
#vc-icon-picker-modal.vc-ip-visible {
  opacity: 1;
  pointer-events: auto;
}

.vc-ip-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.vc-ip-dialog {
  background: var(--chamber, #120f1e);
  border: 1px solid var(--border, rgba(255,255,255,.1));
  border-radius: 14px;
  width: min(680px, 96vw);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(0,0,0,.9);
}

.vc-ip-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,.07));
  flex-shrink: 0;
}
.vc-ip-title {
  font-family: var(--font-occult, 'Cinzel', serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--text, #e8e4dc);
  margin-bottom: 3px;
}
.vc-ip-sub {
  font-family: var(--font-vhs, monospace);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--dust, rgba(232,228,220,.35));
}
.vc-ip-close {
  background: none;
  border: none;
  color: var(--fog, rgba(232,228,220,.4));
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  transition: color .14s;
}
.vc-ip-close:hover { color: var(--text, #e8e4dc); }

.vc-ip-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 22px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,.07));
  flex-shrink: 0;
}
.vc-ip-tab {
  padding: 5px 14px;
  border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,.1));
  background: var(--deep, #0d0c14);
  color: var(--fog, rgba(232,228,220,.55));
  font-family: var(--font-vhs, monospace);
  font-size: 10px;
  letter-spacing: .5px;
  cursor: pointer;
  transition: border-color .14s, color .14s, background .14s;
}
.vc-ip-tab:hover {
  color: var(--text, #e8e4dc);
  border-color: rgba(201,151,58,.3);
}
.vc-ip-tab.active {
  background: rgba(201,151,58,.14);
  border-color: rgba(201,151,58,.55);
  color: var(--gold, #c9973a);
}

.vc-ip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(56px, 1fr));
  gap: 8px;
  padding: 16px 22px;
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.vc-ip-icon {
  width: 100%;
  aspect-ratio: 1;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border, rgba(255,255,255,.08));
  border-radius: 10px;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .14s, background .14s, transform .1s;
}
.vc-ip-icon:hover {
  border-color: rgba(201,151,58,.5);
  background: rgba(201,151,58,.1);
  transform: scale(1.08);
}

.vc-ip-upload-section {
  padding: 14px 22px 18px;
  border-top: 1px solid var(--border, rgba(255,255,255,.07));
  flex-shrink: 0;
}
.vc-ip-upload-label {
  font-family: var(--font-vhs, monospace);
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--dust, rgba(232,228,220,.3));
  margin-bottom: 10px;
}
.vc-ip-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  background: var(--deep, #0d0c14);
  border: 1px dashed var(--border-bright, rgba(201,151,58,.3));
  border-radius: 8px;
  color: var(--fog, rgba(232,228,220,.55));
  font-family: var(--font-vhs, monospace);
  font-size: 10px;
  cursor: pointer;
  transition: border-color .14s, color .14s;
}
.vc-ip-upload-btn:hover {
  border-color: var(--gold, #c9973a);
  color: var(--text, #e8e4dc);
}

/* ═══════════════════════════════════════════════════════════════════════
   FRANCHISE MANAGER v2  (.vc-fm2-*)
   ═══════════════════════════════════════════════════════════════════════ */
#vc-franchise-manager-modal {
  position: fixed;
  inset: 0;
  z-index: 9500;
}

.vc-fm2-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.82);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.vc-fm2-dialog {
  background: var(--chamber, #120f1e);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  width: min(780px, 96vw);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(0,0,0,.88), inset 0 1px 0 rgba(255,255,255,.05);
  opacity: 0;
  transform: translateY(8px) scale(.98);
  transition: opacity .22s ease, transform .22s ease;
}
#vc-franchise-manager-modal.vc-fm2-visible .vc-fm2-dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}
#vc-franchise-manager-modal.vc-fm2-out .vc-fm2-dialog {
  opacity: 0;
  transform: translateY(8px) scale(.98);
}

.vc-fm2-topline {
  height: 2px;
  flex-shrink: 0;
  background: linear-gradient(90deg, transparent, rgba(160,100,240,.7) 40%, var(--gold, #c9973a) 75%, transparent);
}

.vc-fm2-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 16px 24px 14px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  flex-shrink: 0;
}
.vc-fm2-eyebrow {
  font-family: var(--font-occult, 'Cinzel', serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--text, #e8e4dc);
  margin-bottom: 3px;
}
.vc-fm2-subtitle {
  font-family: var(--font-vhs, monospace);
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--dust, rgba(232,228,220,.35));
}
.vc-fm2-close {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.04);
  color: var(--fog, rgba(232,228,220,.4));
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .14s, color .14s;
}
.vc-fm2-close:hover { border-color: rgba(255,100,100,.4); color: #e07070; }

.vc-fm2-body {
  flex: 1;
  overflow-y: auto;
  padding: 22px 24px 28px;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}

.vc-fm2-section-label {
  font-family: var(--font-vhs, monospace);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--dust, rgba(232,228,220,.3));
  margin-bottom: 12px;
}

/* Custom badge chips */
.vc-fm2-custom-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.vc-fm2-badge-row {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 12px;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border, rgba(255,255,255,.1));
  border-radius: 999px;
  transition: border-color .14s;
}
.vc-fm2-badge-row:hover { border-color: rgba(201,151,58,.3); }
.vc-fm2-badge-icon { font-size: 15px; line-height: 1; }
.vc-fm2-badge-label {
  font-family: var(--font-vhs, monospace);
  font-size: 11px;
  color: var(--text, #e8e4dc);
}
.vc-fm2-badge-actions { display: flex; gap: 4px; }
.vc-fm2-icon-action {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  border: 1px solid transparent;
  background: rgba(255,255,255,.04);
  color: var(--fog, rgba(232,228,220,.4));
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .13s, border-color .13s, color .13s;
}
.vc-fm2-icon-action:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.18);
  color: var(--text, #e8e4dc);
}
.vc-fm2-icon-action--del:hover {
  background: rgba(192,57,43,.2);
  border-color: rgba(192,57,43,.45);
  color: #ff8080;
}

/* Create/edit form */
.vc-fm2-create-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.vc-fm2-icon-btn {
  width: 48px;
  height: 44px;
  flex-shrink: 0;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border-bright, rgba(201,151,58,.28));
  border-radius: 10px;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .14s, background .14s;
}
.vc-fm2-icon-btn:hover {
  border-color: var(--gold, #c9973a);
  background: rgba(201,151,58,.08);
}
.vc-fm2-input {
  flex: 1;
  height: 44px;
  padding: 0 14px;
  background: var(--deep, #0d0c14);
  border: 1px solid var(--border, rgba(255,255,255,.1));
  border-radius: 10px;
  color: var(--text, #e8e4dc);
  font-family: var(--font-body, 'Crimson Text', serif);
  font-size: 14px;
  transition: border-color .14s;
}
.vc-fm2-input:focus {
  outline: none;
  border-color: rgba(201,151,58,.45);
}
.vc-fm2-input::placeholder { color: var(--dust, rgba(232,228,220,.3)); }
.vc-fm2-add-btn {
  width: 100%;
  margin-bottom: 4px;
}

/* Edit form inline card */
.vc-fm2-edit-form {
  background: rgba(201,151,58,.06);
  border: 1px solid rgba(201,151,58,.22);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 16px;
}

/* Built-in badges */
.vc-fm2-builtin-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

/* Cleanup */
.vc-fm2-cleanup-desc {
  font-size: 13px;
  color: var(--fog, rgba(232,228,220,.5));
  margin-bottom: 12px;
  line-height: 1.5;
}
.vc-fm2-cleanup-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(179,86,64,.08);
  border: 1px solid rgba(179,86,64,.4);
  border-radius: 8px;
  color: var(--blood-bright, #e07040);
  font-family: var(--font-vhs, monospace);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .14s, border-color .14s;
  width: 100%;
  justify-content: center;
}
.vc-fm2-cleanup-btn:hover {
  background: rgba(179,86,64,.18);
  border-color: rgba(179,86,64,.7);
}

.vc-fm2-empty {
  font-size: 12px;
  color: var(--dust, rgba(232,228,220,.3));
  padding: 6px 0;
}



/* platform glow — see FX PANEL section below */


