/* Complemento aislado para el flujo de cumpleaños. */
.vsg-birthday-modal__field small {
    margin-top: 2px;
    color: #8da6c5;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.35;
}

.vsg-birthday-modal__error {
    position: relative;
    z-index: 1;
    margin: 12px 0 0;
    padding: 9px 11px;
    color: #fecdd3;
    border: 1px solid rgba(251, 113, 133, .42);
    border-radius: 10px;
    background: rgba(136, 19, 55, .16);
    font-size: .76rem;
    line-height: 1.35;
}

/* Persistencia visual del lateral: se carga en todas las rutas. */
.admin-menu-toggle { grid-template-columns:30px minmax(0,1fr) 24px; min-height:44px; padding:7px 10px 7px 7px; border-color:rgba(125,211,252,.25); border-radius:14px; background:linear-gradient(135deg,rgba(8,32,58,.9),rgba(11,18,41,.9)); font-size:.69rem; letter-spacing:.055em; box-shadow:inset 0 1px rgba(255,255,255,.07),0 11px 24px rgba(1,6,20,.22); }
.admin-menu-toggle::before { content:'⚙'; width:30px; height:30px; border:1px solid rgba(125,211,252,.3); border-radius:10px; background:linear-gradient(135deg,rgba(56,189,248,.2),rgba(59,130,246,.12)); color:#a5edff; font-size:1rem; text-shadow:0 0 12px rgba(125,211,252,.45); }
.admin-menu-toggle:hover { border-color:rgba(103,232,249,.58); background:linear-gradient(135deg,rgba(14,80,120,.62),rgba(30,41,96,.62)); box-shadow:inset 0 1px rgba(255,255,255,.1),0 14px 28px rgba(14,165,233,.2); }
.admin-menu-toggle-icon { width:24px; height:24px; border:1px solid rgba(125,211,252,.2); border-radius:8px; background:rgba(2,6,23,.45); transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.admin-menu:not(.is-collapsed) .admin-menu-toggle-icon { transform:rotate(90deg); border-color:rgba(103,232,249,.52); background:rgba(56,189,248,.14); }
.nav-bell-btn-embedded { top:-6px; right:0; width:34px; height:34px; border-radius:11px; background:linear-gradient(145deg,rgba(15,43,76,.98),rgba(6,17,37,.98)); border:1px solid rgba(125,211,252,.38); box-shadow:inset 0 1px rgba(255,255,255,.1),0 5px 13px rgba(0,0,0,.38); color:#b9efff; font-size:0; }
.nav-bell-btn-embedded::before { content:''; width:13px; height:14px; border:2px solid currentColor; border-radius:8px 8px 4px 4px; box-sizing:border-box; box-shadow:inset 0 -2px rgba(125,211,252,.16); }
.nav-bell-btn-embedded::after { content:''; position:absolute; bottom:6px; width:5px; height:2px; border-radius:999px; background:currentColor; box-shadow:0 2px 0 -1px currentColor; }
.nav-bell-btn-embedded:hover,.nav-bell-btn-embedded:focus-visible { transform:translateY(-1px); border-color:rgba(103,232,249,.78); background:linear-gradient(145deg,rgba(15,93,137,.92),rgba(9,49,86,.94)); box-shadow:inset 0 1px rgba(255,255,255,.13),0 8px 18px rgba(14,165,233,.24); outline:none; }

/* El drawer móvil tenía reglas !important posteriores que neutralizaban el
   estilo anterior. Este selector representa el componente real y conserva
   una lectura inequívoca en cualquier ruta. */
#adminMenu .admin-menu-toggle { display:grid !important; grid-template-columns:34px minmax(0,1fr) 28px !important; align-items:center !important; width:100% !important; min-height:52px !important; height:auto !important; margin:8px 0 5px !important; padding:7px 9px !important; border:1px solid rgba(93,211,255,.36) !important; border-radius:15px !important; background:radial-gradient(circle at 92% 12%,rgba(139,92,246,.3),transparent 38%),linear-gradient(135deg,rgba(8,40,72,.98),rgba(8,17,40,.98)) !important; box-shadow:inset 0 1px rgba(255,255,255,.1),0 12px 26px rgba(1,10,30,.32) !important; color:#e9f9ff !important; animation:vsg-admin-breathe 3s ease-in-out infinite; }
#adminMenu .admin-menu-toggle::before { content:'⚙' !important; display:grid !important; place-items:center !important; width:34px !important; height:34px !important; border:1px solid rgba(125,232,255,.46) !important; border-radius:11px !important; background:linear-gradient(145deg,rgba(56,189,248,.28),rgba(37,99,235,.18)) !important; color:#d9f8ff !important; font-size:1.08rem !important; text-shadow:0 0 14px rgba(103,232,249,.62) !important; }
#adminMenu .admin-menu-toggle > span:first-child { display:grid; gap:1px; min-width:0; color:#f4fbff; font-size:.72rem; font-weight:900; letter-spacing:.035em; text-align:left; text-transform:none; }
#adminMenu .admin-menu-toggle > span:first-child::after { content:none; display:none; }
#adminMenu .admin-menu-toggle-icon { display:grid !important; place-items:center !important; width:28px !important; height:28px !important; min-width:28px !important; border:1px solid rgba(125,211,252,.25) !important; border-radius:9px !important; background:rgba(2,7,23,.42) !important; color:#b9efff !important; }
#adminMenu .admin-menu-toggle:hover,#adminMenu:not(.is-collapsed) .admin-menu-toggle { border-color:rgba(125,232,255,.74) !important; background:radial-gradient(circle at 92% 12%,rgba(168,85,247,.42),transparent 42%),linear-gradient(135deg,rgba(9,65,103,.98),rgba(13,25,61,.98)) !important; box-shadow:inset 0 1px rgba(255,255,255,.13),0 15px 30px rgba(14,165,233,.27) !important; }
#adminMenu:not(.is-collapsed) .admin-menu-toggle-icon { transform:rotate(90deg) !important; border-color:rgba(125,232,255,.58) !important; background:rgba(56,189,248,.18) !important; }
@keyframes vsg-admin-breathe { 0%,100% { box-shadow:inset 0 1px rgba(255,255,255,.1),0 12px 26px rgba(1,10,30,.32); } 50% { box-shadow:inset 0 1px rgba(255,255,255,.14),0 14px 30px rgba(14,165,233,.32),0 0 0 3px rgba(56,189,248,.035); } }

/* Una campana conocida es más rápida de reconocer que una silueta abstracta.
   El contador conserva su posición y prioridad visual. */
#userNotifBellBtn.nav-bell-btn-embedded { display:grid !important; place-items:center !important; width:38px !important; height:38px !important; border-radius:12px !important; font-size:0 !important; border-color:rgba(125,211,252,.45) !important; }
#userNotifBellBtn.nav-bell-btn-embedded::before { content:'🔔' !important; display:block !important; width:auto !important; height:auto !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; font-size:18px !important; line-height:1 !important; filter:drop-shadow(0 2px 3px rgba(0,0,0,.35)); }
#userNotifBellBtn.nav-bell-btn-embedded::after { display:none !important; }
#userNotifBellBtn .nav-notif-count { z-index:2; top:-6px; right:-6px; min-width:18px; height:18px; line-height:18px; border:2px solid #071426; box-sizing:content-box; }
@media (prefers-reduced-motion:reduce) { #adminMenu .admin-menu-toggle { animation:none; } }
