:root{--pis-primary:#7B2CFF;--pis-accent:#D050FF;--pis-background:#0B0712;--pis-surface:#211035;--pis-text:#FFFFFF}

/* Tema por fiesta: administrador, reproductor e invitado comparten la misma identidad. */
.party-bg{background:radial-gradient(circle at top left,var(--pis-primary) 0,var(--pis-surface) 38%,var(--pis-background) 100%)}
.party-bg .text-white{color:var(--pis-text)!important}
.player-screen{background:radial-gradient(circle at top right,var(--pis-primary) 0,var(--pis-surface) 34%,var(--pis-background) 78%);color:var(--pis-text)!important}
.glass-card{background:var(--pis-surface);color:var(--pis-text);border-color:rgba(255,255,255,.12)}
.player-screen .upcoming-number{background:var(--pis-primary)}
.player-screen .badge.text-bg-success{background-color:var(--pis-primary)!important}

.admin-fiesta-shell{background:radial-gradient(circle at 14% 6%,var(--pis-surface) 0,var(--pis-background) 48%,#050407 115%);color:var(--pis-text)}
.admin-fiesta-glow-one{background:var(--pis-primary)}
.admin-fiesta-glow-two{background:var(--pis-accent)}
.admin-brand-mark span{background:linear-gradient(180deg,var(--pis-accent),var(--pis-primary))}
.admin-section-kicker,.admin-event-quote{color:var(--pis-accent)}
.admin-event-hero{background:linear-gradient(135deg,var(--pis-surface),var(--pis-background))}
.admin-control-panel{background:linear-gradient(145deg,var(--pis-surface),var(--pis-background))}
.admin-now-equalizer span{background:var(--pis-accent)}
.admin-command-button{color:var(--pis-text)}
.admin-command-button:hover{border-color:var(--pis-accent)}
.admin-command-icon{border-color:var(--pis-accent);color:var(--pis-text)}
.admin-btn-primary{background:linear-gradient(135deg,var(--pis-primary),var(--pis-accent));color:var(--pis-text)}
.admin-btn-soft{color:var(--pis-text)}
.admin-btn-soft:hover{border-color:var(--pis-accent);color:var(--pis-text)}
.admin-switch .form-check-input:checked{background-color:var(--pis-primary);border-color:var(--pis-primary)}
.admin-input-group .form-control:focus{border-color:var(--pis-accent);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--pis-accent) 22%,transparent)}
.admin-count-pill{background:var(--pis-primary)}
.admin-dark-table{--bs-table-color:var(--pis-text);color:var(--pis-text)}
.admin-dark-table tbody td{color:var(--pis-text)}
.admin-fiesta-shell .admin-subtle,.admin-fiesta-shell .admin-helper,.admin-fiesta-shell .admin-event-copy{color:var(--pis-text);opacity:.62}
.admin-fiesta-shell .admin-form-label,.admin-fiesta-shell .admin-switch .form-check-label{color:var(--pis-text);opacity:.78}
.admin-fiesta-shell .form-control{background:rgba(0,0,0,.20);border-color:rgba(255,255,255,.11);color:var(--pis-text)}
.admin-fiesta-shell .form-control::placeholder{color:color-mix(in srgb,var(--pis-text) 44%,transparent)}
.admin-fiesta-shell .form-control:focus{background:rgba(0,0,0,.25);border-color:var(--pis-accent);color:var(--pis-text);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--pis-accent) 22%,transparent)}

/* Botones y acentos de la vista de invitados. */
.party-bg .btn-primary{--bs-btn-bg:var(--pis-primary);--bs-btn-border-color:var(--pis-primary);--bs-btn-hover-bg:var(--pis-accent);--bs-btn-hover-border-color:var(--pis-accent)}
.party-bg .btn-danger{--bs-btn-bg:var(--pis-primary);--bs-btn-border-color:var(--pis-primary);--bs-btn-hover-bg:var(--pis-accent);--bs-btn-hover-border-color:var(--pis-accent)}
.party-bg .search-video-card:hover,.party-bg .search-video-card:focus-visible{border-color:var(--pis-primary);box-shadow:0 14px 34px color-mix(in srgb,var(--pis-primary) 20%,transparent)}
.party-bg .search-video-action{background:var(--pis-primary)}

/* Nueva composicion del administrador. */
.admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.75fr);gap:1rem;align-items:start}
.admin-main-stack,.admin-side-stack{display:grid;gap:1rem;min-width:0}
.admin-side-stack{position:sticky;top:1rem}
.admin-compact-panel{padding:1.1rem}
.admin-access-row{display:flex;gap:.65rem;align-items:center}
.admin-access-row .form-control{min-width:0;background:rgba(0,0,0,.20);border-color:rgba(255,255,255,.11);color:var(--pis-text)}
.admin-access-row .form-control:focus{border-color:var(--pis-accent);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--pis-accent) 22%,transparent)}
.admin-theme-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.admin-theme-preset{display:flex;align-items:center;gap:.45rem;padding:.55rem .6rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);color:var(--pis-text);font-size:.72rem;text-align:left}
.admin-theme-preset:hover{border-color:var(--pis-accent)}
.admin-theme-dots{display:flex;gap:2px;flex-shrink:0}
.admin-theme-dots span{width:10px;height:10px;border-radius:50%;display:block;border:1px solid rgba(255,255,255,.25)}
.admin-color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.admin-color-field{display:grid;grid-template-columns:42px 1fr;gap:.55rem;align-items:center}
.admin-color-field input[type=color]{width:42px;height:38px;padding:2px;border-radius:.65rem;border:1px solid rgba(255,255,255,.12);background:transparent}
.admin-color-field .form-control{background:rgba(0,0,0,.20);border-color:rgba(255,255,255,.11);color:var(--pis-text)}
.admin-color-field .form-control:focus{background:rgba(0,0,0,.25);border-color:var(--pis-accent);color:var(--pis-text);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--pis-accent) 22%,transparent)}
.admin-theme-preview{border-radius:1rem;padding:1rem;background:linear-gradient(135deg,var(--preview-surface,var(--pis-surface)),var(--preview-background,var(--pis-background)));border:1px solid rgba(255,255,255,.08);color:var(--preview-text,var(--pis-text));position:relative;overflow:hidden}
.admin-theme-preview:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-50px;top:-55px;background:var(--preview-primary,var(--pis-primary));filter:blur(28px);opacity:.32}
.admin-theme-preview>*{position:relative;z-index:1}
.admin-theme-preview .preview-chip{display:inline-flex;padding:.28rem .55rem;border-radius:999px;background:var(--preview-primary,var(--pis-primary));color:var(--preview-text,var(--pis-text));font-size:.65rem;font-weight:800}
.admin-theme-preview .preview-accent{color:var(--preview-accent,var(--pis-accent))}
.admin-brand-panel{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:1rem}
.admin-promo-card{display:flex;align-items:center;gap:1rem;padding:.9rem;border-radius:1rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.admin-promo-thumb-wrap{flex:0 0 132px;width:132px}
.admin-promo-thumb{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:.7rem;background:rgba(255,255,255,.06)}
.admin-empty-card{padding:1.1rem;border-radius:1rem;border:1px dashed rgba(255,255,255,.15);color:var(--pis-text);opacity:.6}

@media(max-width:1199.98px){.admin-dashboard-grid{grid-template-columns:1fr}.admin-side-stack{position:static}.admin-brand-panel{grid-template-columns:1fr}}
@media(max-width:767.98px){.admin-theme-presets{grid-template-columns:1fr}.admin-color-grid{grid-template-columns:1fr}.admin-access-row{align-items:stretch;flex-direction:column}.admin-access-row .btn{width:100%}.admin-promo-card{align-items:flex-start;flex-direction:column}.admin-promo-thumb-wrap{width:100%;flex-basis:auto}}
