
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Outfit:wght@300;400;500;600;700&display=swap');
:root{
  --black:#0a0a0a;--dark:#111111;--dark2:#1a1a1a;--dark3:#242424;
  --border:#2a2a2a;
  --orange:#FFD900;--orange-dim:#ccad00;
  --white:#f5f5f0;--white2:#c8c8c0;--gray:#666;
  --green:#22c55e;--yellow:#FFD900;--red:#ef4444;--blue:#FFD900;
  --discord:#5865f2;
  --radius:14px;--radius-sm:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;width:100%;background:var(--black);color:var(--white);font-family:'Outfit',sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit}
.screen{display:none;min-height:100dvh;flex-direction:column}
.screen.active{display:flex;animation:fadeUp .2s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes celebPop{0%{transform:scale(0) translateY(40px);opacity:0}60%{transform:scale(1.08) translateY(-8px);opacity:1}80%{transform:scale(.97) translateY(2px)}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes neonBlink{0%,100%{opacity:1;text-shadow:0 0 8px #FFD900,0 0 20px #FFD900,0 0 40px #FFD900}50%{opacity:.7;text-shadow:0 0 4px #FFD900,0 0 10px #FFD900}}
@keyframes confettiFall{0%{transform:translateY(-10px) rotate(0deg);opacity:1}100%{transform:translateY(120px) rotate(720deg);opacity:0}}

/* HOME */
.home-header{padding:48px 24px 28px;position:relative}
.home-logo{font-family:'Bebas Neue',sans-serif;font-size:52px;letter-spacing:2px;line-height:1}
.home-logo span{color:var(--orange)}
.home-sub{font-size:13px;font-weight:600;color:#FFD900;letter-spacing:5px;text-transform:uppercase;margin-top:6px;animation:neonBlink 1.8s ease-in-out infinite}
.admin-btn{position:absolute;top:48px;right:24px;width:42px;height:42px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}
.admin-btn:active{transform:scale(.9)}
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--orange),transparent);margin:0 24px 28px;opacity:.5}
.section-label{padding:0 24px 12px;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--gray)}
.search-box{margin:0 24px 16px;position:relative}
.search-box input{width:100%;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 16px 11px 40px;color:var(--white);font-size:14px;outline:none;transition:border-color .2s}
.search-box input:focus{border-color:var(--orange)}
.search-box input::placeholder{color:var(--gray)}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gray)}
#alumnos-list{flex:1;overflow-y:auto;padding:0 16px 40px;display:flex;flex-direction:column;gap:10px}
.alumno-btn{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);width:100%;text-align:left;transition:all .18s}
.alumno-btn:active{transform:scale(.98);border-color:var(--orange)}
.avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--orange-dim));display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#1a1a1a;flex-shrink:0;overflow:hidden;border:2px solid rgba(255,255,255,.1)}
.avatar img{width:100%;height:100%;object-fit:cover}
.ainfo{flex:1;display:flex;flex-direction:column;gap:1px}
.aname{font-size:16px;font-weight:600;color:var(--white)}
.aapellido{font-size:12px;color:var(--gray)}
.aarrow{color:var(--gray);font-size:18px}

/* LOGIN */
#screen-login{align-items:center;justify-content:center;padding:32px 24px}
.login-card{width:100%;max-width:380px;background:var(--dark2);border:1px solid var(--border);border-radius:20px;padding:36px 28px}
.login-logo{font-family:'Bebas Neue',sans-serif;font-size:36px;letter-spacing:2px;text-align:center;margin-bottom:4px}
.login-logo span{color:var(--orange)}
.login-sub{text-align:center;font-size:11px;color:var(--gray);letter-spacing:3px;text-transform:uppercase;margin-bottom:36px}
.field{margin-bottom:14px}
.field label{display:block;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:7px}
.field input,.field select{width:100%;background:var(--dark3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--white);font-size:15px;outline:none;transition:border-color .2s}
.field input:focus{border-color:var(--orange)}
#login-error{display:none;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:10px 14px;color:var(--red);font-size:13px;margin-bottom:14px}
.btn-login{width:100%;padding:14px;background:var(--orange);color:#1a1a1a;font-size:15px;font-weight:700;letter-spacing:1px;border-radius:var(--radius-sm);margin-top:8px;transition:all .2s}
.btn-login:active{background:var(--orange-dim);transform:scale(.98)}
.btn-back-link{display:block;text-align:center;margin-top:20px;font-size:13px;color:var(--gray);padding:8px}

/* ALUMNO SCREEN */
#screen-alumno{background:var(--black)}
.a-header{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--dark);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.btn-back{width:38px;height:38px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);font-size:18px;color:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.btn-back:active{transform:scale(.9)}
.a-header-info{flex:1;min-width:0}
.a-header-name{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a-header-sub{font-size:12px;color:var(--gray)}
.a-header-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid var(--border);flex-shrink:0}
.a-header-avatar img{width:100%;height:100%;object-fit:cover}
.tab-bar{display:flex;background:var(--dark2);border-bottom:1px solid var(--border);overflow-x:auto}
.tab-bar::-webkit-scrollbar{display:none}
.tab-btn{flex:1;min-width:72px;padding:13px 4px;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--gray);border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}
.tab-btn.active{color:var(--orange);border-bottom-color:var(--orange)}
.tab-content{display:none;flex:1;overflow-y:auto;padding:20px 16px 40px}
.tab-content.active{display:block}

/* OBJETIVOS */
.cat-section{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}
.cat-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--dark3);border-bottom:1px solid var(--border)}
.cat-icon{font-size:20px}
.cat-name{flex:1;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.cat-count{background:var(--orange);color:#1a1a1a;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}
.btn-del-cat{font-size:15px;color:var(--gray);padding:4px 6px}
.micro-list{padding:4px 0}

.objetivo-cat-block{border-color:rgba(255,211,0,.25)}
.objetivo-cat-summary{cursor:pointer;list-style:none;user-select:none}
.objetivo-cat-summary::-webkit-details-marker{display:none}
.objetivo-cat-summary::after{content:"▾";color:var(--gray);font-size:14px;margin-left:4px}
.objetivo-cat-block:not([open]) .objetivo-cat-summary::after{content:"▸"}
.cat-meta{font-size:11px;color:var(--gray);font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.objetivo-cat-body{padding:8px 0 12px}
.objetivo-subcat-block{margin:8px 12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.02);overflow:hidden}
.objetivo-subcat-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:rgba(255,255,255,.035);font-size:13px;font-weight:900;color:var(--white2);cursor:pointer;list-style:none;user-select:none}
.objetivo-subcat-summary::-webkit-details-marker{display:none}
.objetivo-subcat-summary::after{content:"▾";color:var(--gray);font-size:12px}
.objetivo-subcat-block:not([open]) .objetivo-subcat-summary::after{content:"▸"}
.objetivo-subcat-summary small{margin-left:auto;color:var(--gray);font-size:11px;font-weight:800;text-transform:uppercase}
.objetivo-subcat-list{padding:0}
.micro-item{display:flex;align-items:center;padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.04);gap:10px;transition:background .15s}
.micro-item:last-child{border-bottom:none}
.micro-item.dragging{opacity:.3;background:var(--dark3)}
.micro-item.drag-over{border-top:2px solid var(--orange)}
.drag-handle{color:var(--gray);font-size:16px;cursor:grab;flex-shrink:0;user-select:none}
.micro-name{font-size:14px;color:var(--white2);line-height:1.4;flex:1}
.micro-actions{display:flex;gap:6px;flex-shrink:0}
.btn-check{width:36px;height:36px;border-radius:50%;background:rgba(34,197,94,.1);border:2px solid rgba(34,197,94,.3);color:#22c55e;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s}
.btn-check:active{transform:scale(.88);background:rgba(34,197,94,.3)}
.btn-edit{width:32px;height:32px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);font-size:12px;display:flex;align-items:center;justify-content:center}
.btn-del-micro{width:32px;height:32px;border-radius:50%;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);color:var(--red);font-size:12px;display:flex;align-items:center;justify-content:center}
.btn-add-micro{display:block;width:calc(100% - 32px);margin:8px 16px 14px;padding:10px;background:transparent;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--gray);font-size:13px;text-align:center;transition:all .2s}
.btn-add-micro:active{border-color:var(--orange);color:var(--orange)}
.btn-add-cat{display:block;width:100%;padding:14px;background:transparent;border:2px dashed var(--border);border-radius:var(--radius);color:var(--gray);font-size:14px;font-weight:600;text-align:center;margin-top:8px;transition:all .2s}
.btn-add-cat:active{border-color:var(--orange);color:var(--orange)}
.objetivos-admin-actions{display:grid;gap:8px;margin-top:8px}.btn-clear-objetivos{display:block;width:100%;padding:14px;background:rgba(239,68,68,.08);border:2px dashed rgba(239,68,68,.35);border-radius:var(--radius);color:#ffb4b4;font-size:14px;font-weight:900;text-align:center;margin-top:8px;transition:all .2s}.btn-clear-objetivos:active{border-color:#ef4444;color:#fff;background:rgba(239,68,68,.18)}


/* LOGROS */
.logros-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.logros-title{font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.btn-add-logro{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--orange);border-radius:20px;font-size:13px;font-weight:700;color:#1a1a1a;transition:all .2s}
.btn-add-logro:active{transform:scale(.95);background:var(--orange-dim)}
.logro-card{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;animation:fadeUp .3s ease both}
.logro-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.logro-info{display:flex;flex-direction:column;gap:4px;flex:1}
.logro-cat{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange)}
.logro-name{font-size:15px;font-weight:600}
.logro-desc{font-size:13px;color:var(--white2);line-height:1.4}
.logro-date{font-size:12px;color:var(--gray);margin-top:2px}
.logro-actions{display:flex;gap:6px;flex-shrink:0}
.btn-edit-logro{font-size:16px;padding:4px;color:var(--gray)}
.logro-video{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;background:rgba(88,101,242,.1);border:1px solid rgba(88,101,242,.25);border-radius:var(--radius-sm)}
.discord-icon{font-size:16px;flex-shrink:0}
.logro-video a{color:#5865f2;font-size:13px;font-weight:500;text-decoration:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* TIMELINE DE LOGROS V22 */
.logros-header.timeline-head{align-items:center;margin-bottom:12px}
.timeline-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 12px}
.timeline-stat{background:var(--dark2);border:1px solid var(--border);border-radius:12px;padding:8px 10px}
.timeline-stat strong{display:block;color:var(--orange);font-size:17px;line-height:1}
.timeline-stat span{display:block;color:var(--gray);font-size:9px;text-transform:uppercase;letter-spacing:1.2px;margin-top:4px;font-weight:800}
.timeline-month{margin:15px 0 8px;display:flex;align-items:center;gap:8px}
.timeline-month::before,.timeline-month::after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(255,217,0,.35));flex:1}
.timeline-month::after{background:linear-gradient(90deg,rgba(255,217,0,.35),transparent)}
.timeline-month-label{background:rgba(255,217,0,.12);border:1px solid rgba(255,217,0,.25);color:var(--orange);border-radius:999px;padding:5px 11px;font-size:10px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap}
.timeline-list{position:relative;margin-left:7px;padding-left:18px}
.timeline-list::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--orange),rgba(255,217,0,.08));border-radius:2px}
.timeline-item{position:relative;margin:0 0 9px;background:var(--dark2);border:1px solid var(--border);border-radius:12px;padding:10px 12px 10px 14px;animation:fadeUp .2s ease both}
.timeline-dot{position:absolute;left:-18px;top:13px;width:13px;height:13px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,217,0,.14),0 0 14px rgba(255,217,0,.35)}
.timeline-item.diff-hard .timeline-dot{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.14),0 0 18px rgba(34,197,94,.35)}
.timeline-date{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.055);border:1px solid var(--border);border-radius:999px;padding:3px 8px;color:var(--white2);font-size:10px;font-weight:800;margin-bottom:6px}
.timeline-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.timeline-category{font-size:10px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase;color:var(--orange);margin-bottom:3px}
.timeline-title{font-size:15px;font-weight:900;color:var(--white);line-height:1.25}
.timeline-desc{font-size:11px;color:var(--white2);margin-top:4px;line-height:1.35;opacity:.82}
.timeline-actions{display:flex;gap:8px;flex-shrink:0}
.timeline-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.timeline-links a{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;background:rgba(88,101,242,.1);border:1px solid rgba(88,101,242,.25);border-radius:999px;color:#8ea0ff;text-decoration:none;font-size:10px;font-weight:800}
.timeline-links a.story{background:rgba(255,217,0,.08);border-color:rgba(255,217,0,.22);color:var(--orange)}
.timeline-xp{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
@media(max-width:520px){.timeline-summary{grid-template-columns:1fr}.timeline-main{flex-direction:column}.timeline-actions{align-self:flex-end}.timeline-list{margin-left:4px}}

/* NOTAS v2 - con título y agrupación */
.notas-list{display:flex;flex-direction:column;gap:12px}
.nota-card{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.nota-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--dark3);border-bottom:1px solid var(--border);gap:8px}
.nota-titulo{font-size:14px;font-weight:600;color:var(--white);flex:1}
.nota-fecha-badge{font-size:11px;color:var(--gray);white-space:nowrap}
.nota-body{padding:14px 16px;font-size:14px;color:var(--white2);line-height:1.6;white-space:pre-wrap;word-break:break-word}
.nota-card-actions{display:flex;gap:6px;flex-shrink:0}
.btn-nota-edit{font-size:14px;color:var(--gray);padding:2px 6px}
.notas-semana-label{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin:16px 0 8px;padding-left:4px}
.btn-add-nota{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--orange);border-radius:20px;font-size:13px;font-weight:700;color:#1a1a1a;transition:all .2s}
.btn-add-nota:active{transform:scale(.95)}
.notas-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.notas-title{font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}

/* ADMIN */
#screen-admin{background:var(--black)}
.adm-header{display:flex;align-items:center;gap:12px;padding:20px 20px 16px;background:var(--dark);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}
.adm-logo{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;flex:1}
.adm-logo span{color:var(--orange)}
.adm-tag{font-family:'Outfit',sans-serif;font-size:11px;font-weight:400;color:var(--gray);letter-spacing:2px;text-transform:uppercase}
.adm-logo .adm-version{font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;color:var(--gray);letter-spacing:.5px;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;padding:2px 8px;margin-left:4px;background:var(--dark2);vertical-align:middle;white-space:nowrap}
.adm-actions{display:flex;gap:8px;align-items:center}
.btn-icon{width:40px;height:40px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:17px;position:relative;transition:all .2s}
.btn-icon:active{transform:scale(.9)}
#notif-badge{display:none;position:absolute;top:-2px;right:-2px;width:18px;height:18px;background:var(--orange);border-radius:50%;font-size:10px;font-weight:700;color:#1a1a1a;align-items:center;justify-content:center}
.adm-content{flex:1;min-height:0;overflow-y:auto;padding:20px 16px 40px}
/* V223: causa raíz del scroll que se rompía con la ventana pequeña/minimizada.
   .screen usa min-height:100dvh (puede crecer con el contenido), así que
   .adm-content nunca llegaba a quedar realmente acotado y su overflow-y:auto no
   se activaba — con ventana grande "colaba" porque sobraba hueco de casualidad.
   Aquí SÍ fijamos la altura del panel admin para que .adm-content sea el único
   dueño del scroll, siempre, sin depender del tamaño de la ventana. Solo afecta
   a #screen-admin: el resto de pantallas (perfil, objetivos...) no se tocan. */
#screen-admin.screen.active{height:100dvh}
.adm-sec-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.adm-sec-title{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2px}
.btn-add-alum{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--orange);border-radius:20px;font-size:13px;font-weight:700;color:#1a1a1a;transition:all .2s}
.btn-add-alum:active{transform:scale(.95);background:var(--orange-dim)}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:10px 14px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm)}
.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--white2)}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.legend-dot.verde{background:#22c55e}
.legend-dot.amarillo{background:#FFD900}
.legend-dot.rojo{background:#ef4444}
.legend-dot.gris{background:var(--gray)}
.adm-search{margin-bottom:16px;position:relative}
.adm-search input{width:100%;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px 10px 38px;color:var(--white);font-size:14px;outline:none;transition:border-color .2s}
.adm-search input:focus{border-color:var(--orange)}
.adm-search input::placeholder{color:var(--gray)}
.adm-search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gray);font-size:14px}
.alumnos-grid{display:grid;grid-template-columns:repeat(10,minmax(118px,1fr));gap:12px;align-items:stretch}
@media(max-width:1320px){.alumnos-grid{grid-template-columns:repeat(8,minmax(118px,1fr))}}
@media(max-width:1040px){.alumnos-grid{grid-template-columns:repeat(6,minmax(118px,1fr))}}
@media(max-width:760px){.alumnos-grid{grid-template-columns:repeat(4,minmax(112px,1fr))}}
@media(max-width:520px){.alumnos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ADMIN TABS + LOGROS DASHBOARD */
.admin-tabs{display:flex;gap:8px;margin:-2px 0 18px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);padding:5px;position:relative;z-index:1;box-shadow:0 8px 22px rgba(0,0,0,.18)}
.admin-tab-btn{flex:1;padding:11px 10px;border-radius:10px;font-size:12px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--gray);transition:all .18s}
.admin-tab-btn.active{background:var(--orange);color:#1a1a1a;box-shadow:0 0 20px rgba(255,217,0,.15)}
.admin-tab-panel{display:none;animation:fadeUp .22s ease}
.admin-tab-panel.active{display:block}
.admin-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding:16px;background:linear-gradient(135deg,rgba(255,217,0,.12),rgba(17,17,17,.96));border:1px solid rgba(255,217,0,.22);border-radius:var(--radius)}
.admin-dashboard-title{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;color:var(--white);line-height:1}
.admin-dashboard-sub{font-size:12px;color:var(--gray);margin-top:4px;line-height:1.4}
.admin-refresh{padding:9px 13px;border-radius:20px;background:var(--dark3);border:1px solid var(--border);font-size:12px;font-weight:800;color:var(--orange);white-space:nowrap}

.admin-rank-panel{background:var(--dark2);border:1px solid var(--border);border-radius:18px;overflow:hidden;margin-bottom:18px;box-shadow:0 14px 34px rgba(0,0,0,.24)}
.admin-rank-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:linear-gradient(135deg,rgba(255,217,0,.12),rgba(36,36,36,.92));border-bottom:1px solid rgba(255,217,0,.14)}
.admin-rank-main-title{font-size:12px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--orange)}
.admin-rank-main-sub{font-size:11px;color:var(--gray);margin-top:2px}.admin-period-tabs{display:flex;gap:6px;background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:999px;padding:4px;flex-shrink:0}.admin-period-btn{padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;color:var(--gray);text-transform:uppercase;letter-spacing:.8px}.admin-period-btn.active{background:var(--orange);color:#1a1a1a}.admin-top-table{display:flex;flex-direction:column}.admin-top-head,.admin-top-row{display:grid;grid-template-columns:54px 1fr 66px 78px;gap:8px;align-items:center}.admin-top-head{padding:11px 14px;background:rgba(255,217,0,.075);border-bottom:1px solid rgba(255,217,0,.12);font-size:10px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;color:var(--orange)}.admin-top-row{padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.055);animation:fadeUp .24s ease both}.admin-top-row:last-child{border-bottom:none}.admin-top-pos{font-size:18px}.admin-top-person{display:flex;align-items:center;gap:10px;min-width:0}.admin-top-name{font-size:13px;font-weight:900;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-top-sub{font-size:10px;color:var(--gray);margin-top:2px}.admin-top-score{text-align:center;font-size:22px;font-weight:900;color:var(--orange)}.admin-top-date{text-align:right;font-size:11px;color:var(--gray)}
.admin-history-titlebar{margin:0 0 12px}.admin-ach-table{background:var(--dark2);border:1px solid var(--border);border-radius:18px;overflow:hidden}.admin-ach-head,.admin-ach-row{display:grid;grid-template-columns:1.15fr 1fr 100px;gap:8px;align-items:center}.admin-ach-head{padding:12px 14px;background:rgba(255,217,0,.1);border-bottom:1px solid rgba(255,217,0,.16);font-size:10px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:var(--orange)}.admin-ach-row{padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.055);animation:fadeUp .24s ease both;cursor:pointer;transition:background .18s,transform .18s}.admin-ach-row:hover,.admin-ach-row:active{background:rgba(255,217,0,.055);transform:translateX(2px)}.admin-ach-row:last-child{border-bottom:none}.admin-ach-main{min-width:0}.admin-ach-student{font-size:13px;font-weight:900;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ach-name{font-size:12px;color:var(--white2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ach-cat{font-size:11px;font-weight:800;color:var(--orange);min-width:0}.admin-ach-video{display:block;color:#5865f2;text-decoration:none;font-size:10px;font-weight:800;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ach-date{text-align:right;font-size:11px;color:var(--gray)}
@media(max-width:520px){.admin-rank-topbar{flex-direction:column;align-items:stretch}.admin-period-tabs{width:100%;justify-content:space-between}.admin-period-btn{flex:1}.admin-ach-head,.admin-ach-row{grid-template-columns:1fr 76px}.admin-ach-head span:nth-child(2),.admin-ach-cat{display:none}.admin-top-head,.admin-top-row{grid-template-columns:42px 1fr 48px}.admin-top-head span:nth-child(4),.admin-top-date{display:none}}



/* MAPA ADMIN PRO */
.alumno-card{display:flex;flex-direction:column;align-items:center;gap:7px;min-height:166px;padding:12px 9px;background:linear-gradient(180deg,rgba(36,36,36,.96),rgba(26,26,26,.96));border:1px solid var(--border);border-radius:18px;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden}
.alumno-card:hover{transform:translateY(-2px);border-color:rgba(255,217,0,.32);box-shadow:0 12px 26px rgba(0,0,0,.24)}
.alumno-card:active{transform:scale(.97);border-color:var(--orange)}
.alumno-card.needs-update{border-color:rgba(239,68,68,.28);box-shadow:0 10px 22px rgba(0,0,0,.22)}
.alumno-card.needs-update::before{display:none}
.alumno-card-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#1a1a1a;overflow:visible;position:relative;flex-shrink:0;margin-top:8px;background:linear-gradient(135deg,var(--orange),var(--orange-dim))}
.alumno-card-avatar .avatar-inner{width:100%;height:100%;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--orange),var(--orange-dim));position:relative;z-index:1}
.alumno-card-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.status-ring{position:absolute;inset:-7px;border-radius:50%;border:4px solid #555;z-index:2;pointer-events:none;transition:border-color .25s ease,box-shadow .25s ease;background:transparent}
.status-ring.verde,.alumno-card.status-verde .status-ring{border-color:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.10),0 0 16px rgba(34,197,94,.45)}
.status-ring.amarillo,.alumno-card.status-amarillo .status-ring{border-color:#FFD900;box-shadow:0 0 0 4px rgba(255,217,0,.10),0 0 16px rgba(255,217,0,.38)}
.status-ring.rojo,.alumno-card.status-rojo .status-ring{border-color:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.10),0 0 16px rgba(239,68,68,.38)}
.status-ring.gris,.alumno-card.status-gris .status-ring{border-color:#666;box-shadow:0 0 0 4px rgba(120,120,120,.08),0 0 10px rgba(120,120,120,.18)}
.alumno-card.status-verde .avatar-inner{box-shadow:0 0 0 1px rgba(34,197,94,.25)}
.alumno-card.status-amarillo .avatar-inner{box-shadow:0 0 0 1px rgba(255,217,0,.25)}
.alumno-card.status-rojo .avatar-inner{box-shadow:0 0 0 1px rgba(239,68,68,.25)}
.alumno-card.status-gris .avatar-inner{box-shadow:0 0 0 1px rgba(120,120,120,.18)}
.update-beacon{position:absolute;right:8px;top:8px;min-width:42px;height:24px;padding:0 8px;border-radius:999px;background:#ef4444;color:#fff;border:1px solid rgba(255,255,255,.16);font-size:10px;font-weight:1000;display:none;align-items:center;justify-content:center;box-shadow:0 0 0 0 rgba(239,68,68,.35);z-index:5;letter-spacing:.3px}
.alumno-card.needs-update .update-beacon{display:flex;animation:updatePulse 1.15s ease-in-out infinite}
@keyframes updatePulse{0%,100%{transform:scale(1);opacity:.92;box-shadow:0 0 0 0 rgba(239,68,68,.35)}50%{transform:scale(1.035);opacity:1;box-shadow:0 0 0 6px rgba(239,68,68,0)}}
.alumno-card-name{font-size:12px;font-weight:900;text-align:center;line-height:1.15;color:var(--white);word-break:normal;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.alumno-chiprow{display:flex;gap:5px;align-items:center;justify-content:center;width:100%;flex-wrap:wrap}
.alumno-chip{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:22px;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);font-size:10px;font-weight:1000;line-height:1;color:var(--white2);white-space:nowrap}
.alumno-chip.obj{background:rgba(255,217,0,.1);border-color:rgba(255,217,0,.24);color:var(--orange)}
.alumno-chip.obj.low{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.32);color:#ef4444}
.alumno-chip.obj.mid{background:rgba(255,217,0,.12);border-color:rgba(255,217,0,.28);color:#FFD900}
.alumno-chip.obj.high{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.28);color:#22c55e}
.alumno-chip.week.hot,.alumno-chip.month.hot{background:rgba(255,217,0,.11);border-color:rgba(255,217,0,.28);color:#FFD900}
.alumno-chip.week.zero,.alumno-chip.month.zero{color:var(--gray)}
.alumno-status-pill{font-size:9px;font-weight:1000;letter-spacing:.7px;text-transform:uppercase;color:var(--gray);margin-top:auto}
.alumno-status-pill.verde{color:#22c55e}.alumno-status-pill.amarillo{color:#FFD900}.alumno-status-pill.rojo{color:#ef4444}.alumno-status-pill.gris{color:#777}
.foto-btn{position:absolute;left:8px;top:8px;width:24px;height:24px;border-radius:50%;background:rgba(36,36,36,.9);border:1px solid var(--border);font-size:11px;display:flex;align-items:center;justify-content:center;z-index:6;color:var(--white2)}
.foto-btn:active{transform:scale(.9)}
.alumno-card[data-hidden="true"]{display:none}
.admin-obj-panel{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.admin-obj-head,.admin-obj-row{display:grid;grid-template-columns:52px 1fr 90px 86px;gap:10px;align-items:center;padding:12px 14px}
.admin-obj-head{background:var(--dark3);font-size:10px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase;color:var(--gray)}
.admin-obj-row{border-top:1px solid rgba(255,255,255,.05);cursor:pointer;transition:all .18s;animation:fadeUp .22s ease both}
.admin-obj-row:hover{background:rgba(255,217,0,.06)}
.admin-obj-rank{width:32px;height:32px;border-radius:50%;background:var(--dark3);display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--orange)}
.admin-obj-student{display:flex;align-items:center;gap:10px;min-width:0}
.admin-obj-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--orange-dim));color:#1a1a1a;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.admin-obj-avatar img{width:100%;height:100%;object-fit:cover}
.admin-obj-name{font-weight:800;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-obj-sub{font-size:11px;color:var(--gray)}
.admin-obj-count{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:1px;color:var(--orange);text-align:center}
.admin-obj-state{text-align:center;font-size:11px;font-weight:900;border-radius:999px;padding:6px 8px;background:var(--dark3);color:var(--white2)}
.admin-obj-state.low{background:rgba(239,68,68,.14);color:#ef4444}.admin-obj-state.mid{background:rgba(255,217,0,.12);color:#FFD900}.admin-obj-state.high{background:rgba(34,197,94,.12);color:#22c55e}
.admin-map-help{font-size:12px;color:var(--gray);margin:-8px 0 14px;line-height:1.45}.admin-map-help strong{color:var(--orange)}
@media(max-width:560px){.admin-obj-head,.admin-obj-row{grid-template-columns:42px 1fr 58px}.admin-obj-head span:nth-child(4),.admin-obj-state{display:none}.admin-obj-count{font-size:22px}.obj-count-badge{min-width:22px;height:22px;font-size:10px}}



/* ADMIN ENLACES */
.links-category{margin-top:18px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:18px;padding:14px;overflow:hidden}
.links-category-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;font-weight:1000;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.links-category-head .dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 14px currentColor}
.links-category.excel .links-category-head{color:#22c55e}.links-category.excel .dot{background:#22c55e}
.links-category.miro .links-category-head{color:#FFD900}.links-category.miro .dot{background:#FFD900}
.links-category.docs .links-category-head{color:#3b82f6}.links-category.docs .dot{background:#3b82f6}
.links-category.apps .links-category-head{color:#a855f7}.links-category.apps .dot{background:#a855f7}
.links-category.notion .links-category-head{color:#ffffff}.links-category.notion .dot{background:#ffffff}
.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.quick-link-card{display:flex;align-items:center;gap:12px;min-height:78px;padding:12px 42px 12px 12px;background:linear-gradient(145deg,var(--dark2),var(--dark));border:1px solid var(--border);border-radius:16px;text-decoration:none;color:var(--white);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;position:relative;overflow:hidden}
.quick-link-card::after{content:'↗';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--gray);font-weight:900;transition:opacity .15s}
.quick-link-card:hover,.quick-link-card:active{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.quick-link-card:hover::after{opacity:.35}
.quick-link-card.excel{border-color:rgba(34,197,94,.28);background:linear-gradient(145deg,rgba(34,197,94,.12),var(--dark2))}
.quick-link-card.excel:hover{border-color:rgba(34,197,94,.72)}
.quick-link-card.miro{border-color:rgba(255,217,0,.34);background:linear-gradient(145deg,rgba(255,217,0,.14),var(--dark2))}
.quick-link-card.miro:hover{border-color:rgba(255,217,0,.78)}
.quick-link-card.docs{border-color:rgba(59,130,246,.32);background:linear-gradient(145deg,rgba(59,130,246,.13),var(--dark2))}
.quick-link-card.docs:hover{border-color:rgba(59,130,246,.72)}
.quick-link-card.apps{border-color:rgba(168,85,247,.35);background:linear-gradient(145deg,rgba(168,85,247,.14),var(--dark2))}
.quick-link-card.apps:hover{border-color:rgba(168,85,247,.78)}
.ql-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.quick-link-card.excel .ql-icon{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.24)}
.quick-link-card.miro .ql-icon{background:rgba(255,217,0,.16);border-color:rgba(255,217,0,.26)}
.quick-link-card.docs .ql-icon{background:rgba(59,130,246,.14);border-color:rgba(59,130,246,.26)}
.quick-link-card.apps .ql-icon{background:rgba(168,85,247,.14);border-color:rgba(168,85,247,.28)}
.ql-text{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}
.quick-link-card strong{font-size:13px;line-height:1.3;text-transform:uppercase;letter-spacing:.5px;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.quick-link-card em{font-size:11px;color:var(--gray);font-style:normal}
@media(max-width:680px){.links-grid{grid-template-columns:1fr}.quick-link-card{min-height:72px}.links-category{padding:12px}}
.links-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.btn-add-link{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;background:var(--orange);color:#1a1a1a;border-radius:999px;font-size:12px;font-weight:1000;letter-spacing:.8px;text-transform:uppercase;box-shadow:0 8px 22px rgba(255,217,0,.12)}
.btn-add-link:active{transform:scale(.96)}
.quick-link-card.custom-link{padding-right:42px}
.btn-del-link{display:none}
.btn-edit-link{position:absolute;right:40px;top:50%;transform:translateY(-50%) scale(.96);width:30px;height:30px;border-radius:50%;background:rgba(255,217,0,.16);border:1px solid rgba(255,217,0,.38);color:#FFD900;font-size:13px;display:flex;align-items:center;justify-content:center;z-index:2;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s}
.quick-link-card:hover .btn-edit-link,.quick-link-card:focus-within .btn-edit-link{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}
.quick-link-card.editable-link{padding-right:42px}
.btn-link-cat{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;background:var(--dark3);border:1px solid var(--border);color:var(--white2);border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.6px;text-transform:uppercase}
.btn-link-cat:active{transform:scale(.96)}
.links-category-head{justify-content:flex-start}
.links-cat-title{display:flex;align-items:center;gap:10px;min-width:0}
.links-cat-actions{display:none}
.btn-edit-cat,.btn-del-cat-link{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--white2);font-size:12px}
.btn-del-cat-link{color:#ef4444;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}
.cat-manager-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}.cat-manager-item{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:12px 14px;background:var(--dark3);border:1px solid var(--border);border-radius:12px}.cat-manager-name{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:1px}.cat-manager-name .dot{width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor}.btn-cat-manage{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--white2);font-size:13px}.btn-cat-manage.del{color:#ef4444;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}
/* V218: histórico de llamadas del expediente */
.exp-llamadas-list{display:flex;flex-direction:column;gap:8px;margin-top:4px;max-height:60vh;overflow-y:auto}
.exp-llamada-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--dark3);border:1px solid var(--border);border-radius:12px}
.exp-llamada-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.exp-llamada-fecha{font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.04em}
.exp-llamada-titulo{font-size:13px;font-weight:700;color:var(--white2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exp-llamada-autor{font-size:10px;color:var(--muted)}
/* V219: el expediente ya está abierto (z-index:200) cuando se pulsa "Llamadas";
   sin esto, el nuevo modal se pintaba detrás y parecía que "no hacía nada". */
#modal-expediente-llamadas{z-index:210}
.exp-llamada-item{cursor:pointer;transition:background .15s,border-color .15s}
.exp-llamada-item:hover{background:var(--dark4,rgba(255,255,255,.04))}
.exp-llamada-item.exp-llamada-item-empty{cursor:default}
@keyframes expJumpHighlight{0%,100%{box-shadow:none}30%,70%{box-shadow:0 0 0 3px var(--yellow)}}
.exp-jump-highlight{animation:expJumpHighlight 1.6s ease}
.exp-ha-btn.llamada{color:#a78bfa}
.links-empty{padding:18px 12px;color:var(--gray);font-size:13px;text-align:center;border:1px dashed var(--border);border-radius:12px}

.quick-link-card.notion{border-color:rgba(255,255,255,.28);background:linear-gradient(145deg,rgba(255,255,255,.10),var(--dark2))}
.quick-link-card.notion:hover{border-color:rgba(255,255,255,.70)}
.quick-link-card.notion .ql-icon{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
.links-category.orange .links-category-head{color:#f97316}.links-category.orange .dot{background:#f97316}
.quick-link-card.orange{border-color:rgba(249,115,22,.35);background:linear-gradient(145deg,rgba(249,115,22,.14),var(--dark2))}.quick-link-card.orange:hover{border-color:rgba(249,115,22,.78)}.quick-link-card.orange .ql-icon{background:rgba(249,115,22,.14);border-color:rgba(249,115,22,.28)}
.links-category.red .links-category-head{color:#ef4444}.links-category.red .dot{background:#ef4444}
.quick-link-card.red{border-color:rgba(239,68,68,.35);background:linear-gradient(145deg,rgba(239,68,68,.13),var(--dark2))}.quick-link-card.red:hover{border-color:rgba(239,68,68,.78)}.quick-link-card.red .ql-icon{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.28)}
.links-category.cyan .links-category-head{color:#06b6d4}.links-category.cyan .dot{background:#06b6d4}
.quick-link-card.cyan{border-color:rgba(6,182,212,.35);background:linear-gradient(145deg,rgba(6,182,212,.13),var(--dark2))}.quick-link-card.cyan:hover{border-color:rgba(6,182,212,.78)}.quick-link-card.cyan .ql-icon{background:rgba(6,182,212,.14);border-color:rgba(6,182,212,.28)}
.links-category.pink .links-category-head{color:#ec4899}.links-category.pink .dot{background:#ec4899}
.quick-link-card.pink{border-color:rgba(236,72,153,.35);background:linear-gradient(145deg,rgba(236,72,153,.13),var(--dark2))}.quick-link-card.pink:hover{border-color:rgba(236,72,153,.78)}.quick-link-card.pink .ql-icon{background:rgba(236,72,153,.14);border-color:rgba(236,72,153,.28)}
.links-category.teal .links-category-head{color:#14b8a6}.links-category.teal .dot{background:#14b8a6}
.quick-link-card.teal{border-color:rgba(20,184,166,.35);background:linear-gradient(145deg,rgba(20,184,166,.13),var(--dark2))}.quick-link-card.teal:hover{border-color:rgba(20,184,166,.78)}.quick-link-card.teal .ql-icon{background:rgba(20,184,166,.14);border-color:rgba(20,184,166,.28)}
@media(max-width:680px){.links-admin-actions{justify-content:stretch}.btn-add-link{width:100%;justify-content:center}}


/* NOTIF */
#notif-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,100vw);background:var(--dark);border-left:1px solid var(--border);z-index:100;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
#notif-panel.open{transform:translateX(0)}
.notif-hdr{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border)}
.notif-title{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:2px}
.notif-acts{display:flex;gap:8px;align-items:center}
.btn-read-all{font-size:11px;font-weight:600;color:var(--orange);padding:6px 12px;border:1px solid var(--orange);border-radius:20px}
.btn-close-n{width:32px;height:32px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);color:var(--white);font-size:16px;display:flex;align-items:center;justify-content:center}
#notif-list{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.notif-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);gap:10px}
.notif-item.nueva{background:rgba(255,217,0,.07);border-color:rgba(255,217,0,.2)}
.notif-item.leida{background:var(--dark2);opacity:.55}
.notif-body{display:flex;gap:10px;align-items:flex-start;flex:1}
.notif-ico{font-size:20px;flex-shrink:0}
.notif-txt{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--white2)}
.notif-txt strong{color:var(--white);font-weight:700}
.notif-txt em{color:var(--orange);font-style:normal}
.notif-date{font-size:11px;color:var(--gray);margin-top:2px}
.btn-read-one{width:28px;height:28px;border-radius:50%;background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);color:#22c55e;font-size:12px;font-weight:700;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.notif-empty{text-align:center;color:var(--gray);font-size:13px;padding:40px 0}

/* MODALS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:200;align-items:flex-end;justify-content:center}
.modal-overlay.open{display:flex;animation:fadeUp .2s ease}
.modal-card{width:100%;max-width:480px;background:var(--dark2);border:1px solid var(--border);border-radius:20px 20px 0 0;padding:28px 24px 40px;display:flex;flex-direction:column;gap:14px;max-height:92dvh;overflow-y:auto}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2px}
.modal-subtitle{font-size:13px;color:var(--gray);margin-top:-8px}
.modal-field{display:flex;flex-direction:column;gap:6px}
.modal-field label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.modal-field input,.modal-field select,.modal-field textarea{background:var(--dark3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--white);font-size:14px;outline:none;transition:border-color .2s;width:100%}
.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--orange)}
.modal-field select option{background:var(--dark3)}
.modal-field textarea{resize:vertical;min-height:70px}
.discord-field{background:rgba(88,101,242,.08);border:1px solid rgba(88,101,242,.25) !important;border-radius:var(--radius-sm);padding:12px 14px;color:var(--white);font-size:14px;outline:none;width:100%}
.discord-field:focus{border-color:#5865f2 !important}
.discord-label{color:#5865f2 !important}
.modal-actions{display:flex;gap:10px;margin-top:4px}
.btn-modal-ok{flex:1;padding:13px;background:var(--orange);color:#1a1a1a;font-size:15px;font-weight:700;border-radius:var(--radius-sm);transition:all .2s}
.btn-modal-ok:active{background:var(--orange-dim)}
.btn-modal-cancel{flex:1;padding:13px;background:var(--dark3);border:1px solid var(--border);color:var(--gray);font-size:15px;border-radius:var(--radius-sm)}
.btn-modal-skip{padding:13px 16px;background:transparent;border:1px solid var(--border);color:var(--gray);font-size:14px;border-radius:var(--radius-sm)}

/* CELEBRACIÓN */
#celeb-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.7);align-items:center;justify-content:center;padding:24px}
#celeb-overlay.open{display:flex}
.celeb-card{background:var(--dark2);border:2px solid var(--orange);border-radius:24px;padding:32px 28px;max-width:360px;width:100%;text-align:center;animation:celebPop .5s cubic-bezier(.34,1.56,.64,1) both;position:relative;overflow:hidden}
.celeb-emoji{font-size:56px;margin-bottom:12px;display:block}
.celeb-titulo{font-family:'Bebas Neue',sans-serif;font-size:32px;letter-spacing:2px;color:var(--orange);margin-bottom:8px}
.celeb-nombre{font-size:18px;font-weight:700;color:var(--white);margin-bottom:16px}
.celeb-logro{font-size:14px;font-weight:600;color:var(--orange);background:rgba(255,217,0,.1);padding:8px 16px;border-radius:20px;margin-bottom:16px;display:inline-block}
.celeb-frase{font-size:14px;color:var(--white2);line-height:1.6;margin-bottom:24px;font-style:italic}
.celeb-btn{width:100%;padding:14px;background:var(--orange);color:#1a1a1a;font-size:16px;font-weight:700;border-radius:var(--radius-sm);letter-spacing:1px}
.confetti-piece{position:absolute;width:8px;height:8px;border-radius:2px;animation:confettiFall 1s ease-out both}


/* NOTAS OCULTAS */
.nota-oculta-card{background:linear-gradient(135deg,rgba(255,217,0,.06),rgba(255,255,255,.02));border:1px solid rgba(255,217,0,.18);border-radius:var(--radius);overflow:hidden;margin-bottom:10px}
.nota-oculta-card.fijada{border-color:rgba(255,217,0,.48);box-shadow:0 0 0 1px rgba(255,217,0,.08)}
.nota-oculta-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:rgba(255,217,0,.05);border-bottom:1px solid rgba(255,217,0,.12)}
.nota-oculta-title{font-size:14px;font-weight:800;color:var(--white)}
.nota-oculta-body{padding:12px 16px;font-size:14px;color:var(--white2);line-height:1.55;white-space:pre-wrap;word-break:break-word}
.nota-oculta-meta{padding:0 16px 12px;font-size:11px;color:var(--gray)}
.notas-ocultas-warning{font-size:12px;color:var(--orange);background:rgba(255,217,0,.08);border:1px solid rgba(255,217,0,.18);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px}

/* PLANIFICACIÓN */
.plan-meta{font-size:11px;color:var(--gray);margin-bottom:16px;padding:8px 12px;background:var(--dark2);border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;flex-direction:column;gap:3px}
.plan-meta span{color:var(--orange);font-weight:600}
.plan-meta-titulo{font-size:13px;font-weight:700;color:var(--white2)}
.plan-info-header{margin-bottom:16px;padding:12px 16px;background:linear-gradient(135deg,rgba(255,217,0,.1),rgba(255,217,0,.05));border:1px solid rgba(255,217,0,.2);border-radius:var(--radius);display:flex;align-items:center;gap:10px}
.plan-info-icon{font-size:22px}
.plan-info-text{display:flex;flex-direction:column;gap:2px}
.plan-info-title{font-size:14px;font-weight:700;color:var(--white)}
.plan-info-sub{font-size:12px;color:var(--gray)}
.plan-dia{margin-bottom:14px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
/* V244: la cabecera del día pasa de una sola fila a una columna — nombre +
   total de minutos en la fila de arriba, subtítulo opcional del día debajo. */
.plan-dia-header{padding:12px 16px;background:var(--dark3);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:3px}
.plan-dia-nombre-fila{display:flex;align-items:baseline;gap:8px}
.plan-dia-nombre{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;color:var(--white)}
.plan-dia-total{font-size:12px;font-weight:600;color:var(--gray)}
.plan-dia-subtitulo{font-size:12px;color:var(--gray);font-style:italic}
.plan-bloques{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:14px}
.plan-bloque{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;font-size:13px;font-weight:700;color:white;position:relative}
.plan-bloque-nombre{font-size:13px;font-weight:700;letter-spacing:.5px}
.plan-bloque-mins{font-size:11px;font-weight:400;opacity:.85}
.plan-bloque-del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.2);color:white;font-size:10px;display:none;align-items:center;justify-content:center;cursor:pointer}
.plan-bloque:hover .plan-bloque-del{display:flex}
.plan-empty-dia{padding:14px;color:var(--gray);font-size:13px;font-style:italic}

/* V244: bloque con "enfoque" — tarjeta de dos pisos (elegida entre 3
   mockups: "A — tarjeta unida"). El pill de color arriba (misma clase de
   color bc-* que el pill normal), la nota debajo en una franja oscura
   dentro del mismo borde. Un bloque sin enfoque sigue usando .plan-bloque
   (el pill simple, sin tocar). */
.plan-bloque-card{display:inline-flex;flex-direction:column;max-width:220px;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.plan-bloque-card-head{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:700;color:white}
.plan-bloque-card-nota{padding:7px 10px 8px;font-size:11.5px;line-height:1.4;color:rgba(255,255,255,.82);background:rgba(0,0,0,.28);white-space:pre-wrap}

/* V240: bloques ya colocados en el editor — arrastrables, duración editable al
   clic. V243: el panel de "enfoque" pasó de :hover (frágil — se cerraba al
   mover el cursor hacia el propio panel) a clic para abrir/cerrar, con el
   mismo icono que antes servía solo de indicador. */
.plan-bloque-editable{cursor:grab}
.plan-bloque-editable.dragging{opacity:.4;cursor:grabbing}
.plan-bloque-editable.drag-over{outline:2px dashed rgba(255,255,255,.5);outline-offset:2px}
.plan-bloque-editable .plan-bloque-mins{cursor:pointer}
.plan-bloque-editable .plan-bloque-mins:hover{text-decoration:underline}
.plan-bloque-mins-input{width:44px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.3);border-radius:4px;color:white;font-size:11px;padding:1px 4px;outline:none;text-align:center}
.plan-bloque-enfoque-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;margin-left:5px;flex-shrink:0;
  border-radius:50%;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.28);
  font-size:9px;line-height:1;cursor:pointer;vertical-align:middle;
}
.plan-bloque-enfoque-icon:hover,
.plan-bloque-enfoque-icon:focus{background:rgba(0,0,0,.55);outline:none}
.plan-bloque-enfoque-icon--activo{background:rgba(255,138,0,.35);border-color:rgba(255,138,0,.6)}
.plan-bloque-enfoque{
  display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:5;
  width:220px;padding:8px;border-radius:8px;
  background:var(--dark3,#1a1a1a);border:1px solid rgba(255,255,255,.18);
  box-shadow:0 6px 18px rgba(0,0,0,.35);
  cursor:default;
}
.plan-bloque-enfoque.open{display:block}
.plan-bloque-enfoque-label{font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gray);margin-bottom:4px}
.plan-bloque-enfoque-input{width:100%;min-height:54px;resize:vertical;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:6px;color:white;font-size:12px;font-weight:400;padding:6px;outline:none;font-family:inherit}
.plan-bloque-enfoque-input:focus{border-color:var(--orange,#ff8a00)}

/* V243 probó la nota de "enfoque" como una lista aparte debajo de los
   bloques (.plan-dia-notas) — descartado en V244: el usuario pidió que la
   nota quedara pegada a SU bloque, no en una lista separada. Ver
   .plan-bloque-card más arriba, la solución elegida (mockup "A"). */
.bc-hnv{background:#7c3aed}.bc-env{background:#db2777}.bc-pistol{background:#16a34a}
.bc-movilidad{background:#0891b2}.bc-tiron{background:#ea580c}.bc-front{background:#ca8a04}
.bc-hit{background:#dc2626}.bc-back{background:#7f1d1d}.bc-lsit{background:#1d4ed8}
.bc-dragon{background:#065f46}.bc-animalflow{background:#6d28d9}.bc-tnv{background:#b45309}
.bc-basicos{background:#FFD900;color:#1a1a1a !important}.bc-mu{background:#0f766e}.bc-custom{background:#374151}
.plan-editor{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px}
.plan-editor-header{padding:12px 16px;background:var(--dark3);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}
.plan-editor-dia-input{background:transparent;border:none;outline:none;color:var(--white);font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;flex:1;min-width:80px}
.plan-editor-dia-input::placeholder{color:var(--gray)}
/* V244: total de minutos del día (editor) — mismo span que se recalcula en
   caliente vía pintarTotalDia(); y subtítulo opcional del día, debajo de la
   cabecera, fuera de la fila del nombre para no competir por espacio con
   el botón de borrar día. */
.plan-editor-dia-total{font-size:12px;font-weight:600;color:var(--gray);white-space:nowrap}
.plan-editor-dia-subtitulo-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);outline:none;color:var(--white2);font-size:12px;padding:8px 16px;font-style:italic}
.plan-editor-dia-subtitulo-input::placeholder{color:var(--gray);font-style:italic}
.plan-editor-dia-subtitulo-input:focus{border-bottom-color:var(--orange)}
.plan-editor-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
/* Título de la planificación entera (opcional) — encima de la lista de días. */
.plan-titulo-input{width:100%;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;color:var(--white);font-size:14px;font-weight:600;padding:12px 14px;margin-bottom:14px}
.plan-titulo-input::placeholder{color:var(--gray);font-weight:400}
.plan-titulo-input:focus{border-color:var(--orange)}
.plan-bloques-editor{display:flex;flex-wrap:wrap;gap:8px;min-height:36px}
.plan-bloque-picker{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--dark3);border-radius:var(--radius-sm);border:1px solid var(--border)}
.picker-label{width:100%;font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:2px}
.picker-bloque{padding:5px 10px;border-radius:6px;font-size:12px;font-weight:700;color:white;cursor:pointer;transition:transform .15s;border:none}
.picker-bloque:active{transform:scale(.92)}
.picker-mins{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}
.picker-mins span{font-size:11px;color:var(--gray)}
.min-btn{padding:5px 10px;background:var(--dark3);border:1px solid var(--border);border-radius:6px;color:var(--white2);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
.min-btn.sel{background:var(--orange);border-color:var(--orange);color:#1a1a1a}
.min-custom-input{width:52px;background:var(--dark3);border:1px solid var(--border);border-radius:6px;padding:5px 8px;color:var(--white);font-size:12px;outline:none;text-align:center}
.min-custom-input:focus{border-color:var(--orange)}
.plan-add-bloque-custom{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.plan-custom-input{flex:1;min-width:100px;background:var(--dark3);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--white);font-size:12px;outline:none}
.plan-custom-input:focus{border-color:var(--orange)}
.btn-add-custom-bloque{padding:6px 12px;background:var(--dark3);border:1px solid var(--border);border-radius:6px;color:var(--orange);font-size:12px;font-weight:600}
.plan-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.btn-plan{padding:10px 16px;border-radius:20px;font-size:13px;font-weight:700;transition:all .2s}
.btn-plan.primary{background:var(--orange);color:#1a1a1a}
.btn-plan.primary:active{background:var(--orange-dim)}
.btn-plan.secondary{background:var(--dark2);border:1px solid var(--border);color:var(--white2)}
.btn-add-dia{display:flex;align-items:center;gap:6px;width:100%;padding:12px 16px;background:transparent;border:2px dashed var(--border);border-radius:var(--radius);color:var(--gray);font-size:14px;font-weight:600;justify-content:center;margin-top:4px;transition:all .2s}
.btn-add-dia:active{border-color:var(--orange);color:var(--orange)}
.plan-hist-title{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray);margin:20px 0 10px}
/* V243: cada item del historial pasa de ser una sola fila a un wrapper que
   puede expandirse — clicar la fila (no solo "Editar") muestra el plan en
   solo lectura sin entrar en modo edición. */
.plan-hist-item{background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden}
.plan-hist-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:8px;cursor:pointer}
.plan-hist-row:hover{background:rgba(255,255,255,.03)}
.plan-hist-row:focus{outline:none;background:rgba(255,255,255,.05)}
.plan-hist-info{flex:1;display:flex;flex-direction:column;gap:2px}
.plan-hist-fecha{font-size:13px;font-weight:600;color:var(--white2)}
.plan-hist-fecha-sec{font-size:11px;color:var(--gray)}
.plan-hist-dias{font-size:11px;color:var(--gray)}
.plan-hist-chev{font-size:10px;color:var(--gray);transition:transform .18s;flex-shrink:0}
.plan-hist-item.open .plan-hist-chev{transform:rotate(90deg)}
.plan-hist-actions{display:flex;gap:6px}
.btn-hist-view{padding:5px 10px;background:var(--dark3);border:1px solid var(--border);border-radius:6px;font-size:11px;color:var(--white2)}
.btn-hist-del{padding:5px 10px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);border-radius:6px;font-size:11px;color:var(--red)}
.plan-hist-preview{padding:0 14px 14px;border-top:1px solid var(--border)}


/* HOME HUB: alumnos + logros + ranking */
.home-tabs{display:flex;margin:0 24px 18px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);padding:4px;gap:4px}
.home-tab-btn{flex:1;padding:10px 8px;border-radius:10px;font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--gray);transition:all .18s}
.home-tab-btn.active{background:var(--orange);color:#1a1a1a}
.home-panel{display:none;flex:1;overflow-y:auto}
.home-panel.active{display:flex;flex-direction:column}
.home-feed{padding:0 16px 40px;display:flex;flex-direction:column;gap:10px}
.home-feed-header{padding:0 24px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.home-feed-title{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--gray)}
.home-ranking-tabs{display:flex;gap:6px}
.rank-period-btn{padding:6px 10px;background:var(--dark2);border:1px solid var(--border);border-radius:20px;color:var(--gray);font-size:11px;font-weight:700}
.rank-period-btn.active{background:var(--orange);border-color:var(--orange);color:#1a1a1a}
/* Ranking visual tipo tabla */
.leaderboard-panel{margin:0 16px 20px;background:linear-gradient(180deg,rgba(255,217,0,.08),rgba(17,17,17,.98));border:1px solid rgba(255,217,0,.22);border-radius:18px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.28)}
.leaderboard-head{display:grid;grid-template-columns:48px 1fr 72px 86px 86px;gap:8px;align-items:center;padding:12px 14px;background:rgba(255,217,0,.12);border-bottom:1px solid rgba(255,217,0,.18);font-size:10px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:var(--orange)}
.leader-row{display:grid;grid-template-columns:48px 1fr 72px 86px 86px;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.055);animation:fadeUp .28s ease both;transition:background .18s,transform .18s}
.leader-row:last-child{border-bottom:none}.leader-row:active{transform:scale(.99);background:rgba(255,217,0,.06)}
.leader-pos{width:34px;height:34px;border-radius:12px;background:var(--dark3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:var(--orange)}
.leader-row:nth-child(2) .leader-pos{background:linear-gradient(135deg,#FFD900,#b89400);color:#1a1a1a;border-color:#FFD900;box-shadow:0 0 18px rgba(255,217,0,.28)}
.leader-row:nth-child(3) .leader-pos{background:linear-gradient(135deg,#d7d7d7,#777);color:#111;border-color:#d7d7d7}
.leader-row:nth-child(4) .leader-pos{background:linear-gradient(135deg,#c47a2c,#6b3414);color:#fff;border-color:#c47a2c}
.leader-person{display:flex;align-items:center;gap:10px;min-width:0}.leader-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--orange-dim));display:flex;align-items:center;justify-content:center;color:#1a1a1a;font-size:12px;font-weight:900;overflow:hidden;flex-shrink:0}.leader-avatar img{width:100%;height:100%;object-fit:cover}.leader-name{font-size:13px;font-weight:900;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-sub{font-size:10px;color:var(--gray);margin-top:1px}.leader-score{font-size:20px;font-weight:900;color:var(--orange);text-align:center}.leader-score{display:flex;flex-direction:column;align-items:center;line-height:1.05}.leader-score span{font-size:20px;font-weight:900;color:var(--orange)}.leader-score small{font-size:10px;color:var(--gray);margin-top:4px}.leader-score.xp span{color:#fff176}.leader-date{font-size:11px;color:var(--white2);text-align:right}.leader-empty{padding:26px;text-align:center;color:var(--gray);font-size:13px}
/* Top Logros agrupado */
.history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 16px 12px;padding:12px 14px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius)}
.history-title{font-size:11px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}.history-tabs{display:flex;gap:6px;flex-wrap:wrap}.history-period-btn{padding:6px 10px;background:var(--dark3);border:1px solid var(--border);border-radius:20px;color:var(--gray);font-size:11px;font-weight:800}.history-period-btn.active{background:var(--orange);border-color:var(--orange);color:#1a1a1a}.history-group{margin:0 16px 14px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.history-group-title{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:var(--dark3);border-bottom:1px solid var(--border);font-size:12px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;color:var(--orange)}.history-count{font-size:11px;color:#1a1a1a;background:var(--orange);padding:2px 8px;border-radius:20px}.feed-card{background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.055);border-radius:0;padding:13px 14px;display:flex;align-items:flex-start;gap:12px;animation:fadeUp .22s ease both}.feed-card:last-child{border-bottom:none}.feed-ico{font-size:22px;line-height:1}.feed-info{flex:1;min-width:0}.feed-name{font-size:14px;font-weight:900;color:var(--white);line-height:1.25}.feed-ach{font-size:13px;color:var(--white2);margin-top:2px;line-height:1.35}.feed-meta{font-size:11px;color:var(--gray);margin-top:4px}.btn-photo-header{width:40px;height:40px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);font-size:17px;color:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* UTILS */
.loading{text-align:center;color:var(--gray);font-size:14px;padding:40px 0}
.error-msg{text-align:center;color:var(--red);font-size:13px;padding:20px;background:rgba(239,68,68,.08);border-radius:var(--radius-sm);margin:16px 0;line-height:1.6}
.empty{text-align:center;color:var(--gray);font-size:15px;padding:60px 20px;line-height:1.8}
#toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark3);border:1px solid var(--orange);color:var(--white);padding:12px 24px;border-radius:40px;font-size:14px;font-weight:500;z-index:999;opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;pointer-events:none;max-width:90vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}


/* ADMIN V9 DASHBOARD */
.admin-radar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.radar-card{background:linear-gradient(135deg,var(--dark2),var(--dark3));border:1px solid var(--border);border-radius:16px;padding:13px 14px;min-height:88px;position:relative;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.radar-card:before{content:"";position:absolute;inset:auto -30px -35px auto;width:90px;height:90px;border-radius:50%;background:rgba(255,217,0,.08)}
.radar-card span{display:block;font-size:10px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:var(--gray)}
.radar-card strong{display:block;font-family:'Bebas Neue',sans-serif;font-size:34px;line-height:1;color:var(--orange);margin:7px 0 2px}
.radar-card em{font-style:normal;font-size:11px;color:var(--white2)}
.radar-card.danger strong{color:#ef4444}.radar-card.warn strong{color:#FFD900}.radar-card.good strong{color:#22c55e}
.admin-filterbar{display:flex;gap:8px;overflow-x:auto;margin:0 0 12px;padding-bottom:2px}.admin-filterbar::-webkit-scrollbar{display:none}
.admin-filter{white-space:nowrap;padding:8px 12px;border-radius:999px;background:var(--dark2);border:1px solid var(--border);color:var(--gray);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}
/* V224: toggle Alumnos/Skool — deliberadamente distinto de .admin-filter (pastillas
   grises) para que se lea como un cambio de ESPACIO, no como un filtro más. */
.admin-view-toggle{display:flex;gap:8px;margin:14px 0}
.admin-view-toggle-btn{padding:9px 18px;border-radius:12px;background:var(--dark2);border:1px solid var(--border);color:var(--gray);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;transition:all .15s}
.admin-view-toggle-btn.active{background:rgba(255,217,0,.15);border-color:var(--yellow);color:var(--yellow)}
/* V228: panel de Estadísticas */
.stat-toggle-row{display:flex;gap:8px;margin-bottom:16px}
.stat-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:22px}
.stat-card{background:var(--dark2);border:1px solid var(--border);border-radius:14px;padding:16px 10px;text-align:center;display:flex;flex-direction:column;gap:4px}
.stat-card-num{font-size:26px;font-weight:900}
.stat-card-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--gray)}
.stat-section{margin-bottom:22px}
.stat-section-title{font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--white2);margin-bottom:10px}
.stat-section-sub{font-size:10px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0}
.stat-list{display:flex;flex-direction:column;gap:6px}
.stat-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;background:var(--dark2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap}
.stat-list-name{font-size:13px;font-weight:700;color:var(--white2)}
.stat-list-meta{font-size:11px;color:var(--muted)}
.stat-list-meta a{color:var(--yellow)}
.stat-overdue{color:#f09595;font-weight:800}
.stat-empty{color:var(--muted);font-size:12px;font-style:italic;padding:10px 0}
/* V231: notificación compacta (sustituye la lista de 40 nombres siempre abierta) */
.stat-notif{background:var(--dark2);border:1px solid var(--border);border-radius:14px;padding:2px 16px;margin-bottom:16px}
.stat-notif-summary{list-style:none;cursor:pointer;padding:12px 0;font-size:13px;font-weight:800;color:#fbbf24;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stat-notif-summary::-webkit-details-marker{display:none}
.stat-notif-summary::after{content:'▸';margin-left:auto;color:var(--muted);transition:transform .15s}
.stat-notif[open] .stat-notif-summary::after{transform:rotate(90deg)}
.stat-notif-sub{font-size:11px;font-weight:600;color:var(--muted)}
.stat-notif-body{max-height:320px;overflow-y:auto;padding-bottom:12px}
#chart-cumples-bar,#chart-renovaciones-bar,#chart-llamadas-line{cursor:pointer}
/* V233: cumpleaños por mes — nombres y fechas directamente, sin gráfico de barras */
.stat-cumples-meses{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.stat-cumple-mes-card{background:var(--dark3);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.stat-cumple-mes-nombre{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:#FFD900;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.stat-cumple-mes-count{background:rgba(255,217,0,.15);color:#FFD900;border-radius:999px;padding:1px 7px;font-size:10px}
.stat-cumple-persona{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid rgba(255,255,255,.05);cursor:pointer;font-size:12px}
.stat-cumple-persona:first-of-type{border-top:none}
.stat-cumple-persona:hover{color:#FFD900}
.stat-cumple-persona-fecha{color:var(--muted);font-size:11px;white-space:nowrap}
#admin-panel-estadisticas{max-width:1200px;margin:0 auto}
/* V229: tarjetas de gráfico */
.stat-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.stat-chart-card{background:var(--dark2);border:1px solid var(--border);border-radius:16px;padding:16px}
.stat-chart-wide{margin-bottom:22px}
.stat-chart-wrap{height:240px;position:relative}
.stat-chart-wrap-wide{height:220px}
.stat-chart-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:4px}
.stat-period-select{background:var(--dark3);border:1px solid var(--border);color:var(--white2);border-radius:10px;padding:6px 10px;font-size:11px;font-weight:700}
@media (max-width:820px){ .stat-charts-row{grid-template-columns:1fr} }
.admin-filter.active{background:var(--orange);border-color:var(--orange);color:#1a1a1a}
.alumno-card[data-hidden="true"]{display:none}
.alumno-card-last{font-size:9px;color:var(--gray);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-4px}
.admin-quick-panel{display:none;margin-top:16px;background:var(--dark2);border:1px solid rgba(255,217,0,.22);border-radius:18px;padding:14px;box-shadow:0 12px 28px rgba(0,0,0,.28)}
.admin-quick-panel.open{display:block;animation:fadeUp .22s ease}.quick-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.quick-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--orange-dim));display:flex;align-items:center;justify-content:center;color:#1a1a1a;font-weight:900;overflow:hidden}.quick-avatar img{width:100%;height:100%;object-fit:cover}.quick-title{font-size:16px;font-weight:900}.quick-sub{font-size:12px;color:var(--gray)}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.quick-stat{background:var(--dark3);border:1px solid var(--border);border-radius:12px;padding:10px;text-align:center}.quick-stat strong{display:block;color:var(--orange);font-size:20px}.quick-stat span{font-size:10px;color:var(--gray);font-weight:800;text-transform:uppercase;letter-spacing:.9px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-actions button{flex:1;min-width:110px;padding:10px 12px;border-radius:10px;background:var(--dark3);border:1px solid var(--border);color:var(--white2);font-size:12px;font-weight:900}.quick-actions button.primary{background:var(--orange);color:#1a1a1a;border-color:var(--orange)}
.admin-alert-panel{display:flex;flex-direction:column;gap:10px}.admin-alert-item{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;background:var(--dark2);border:1px solid var(--border);border-radius:16px;padding:13px 14px;animation:fadeUp .22s ease both}.admin-alert-item.danger{border-color:rgba(239,68,68,.32);background:rgba(239,68,68,.07)}.admin-alert-item.warn{border-color:rgba(255,217,0,.28);background:rgba(255,217,0,.055)}.admin-alert-ico{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--dark3);font-size:20px}.admin-alert-name{font-size:14px;font-weight:900}.admin-alert-text{font-size:12px;color:var(--white2);margin-top:2px}.admin-alert-meta{font-size:11px;color:var(--gray);margin-top:3px}.admin-alert-action{padding:8px 12px;border-radius:999px;background:var(--orange);color:#1a1a1a;font-size:11px;font-weight:900;white-space:nowrap}
@media(max-width:720px){.admin-radar{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:420px){.admin-radar{grid-template-columns:1fr}.admin-alert-item{grid-template-columns:42px 1fr}.admin-alert-action{grid-column:1/-1}}


/* XP / NIVELES */
.xp-panel{margin:12px 16px 0;background:linear-gradient(135deg,rgba(255,217,0,.12),rgba(255,217,0,.035));border:1px solid rgba(255,217,0,.24);border-radius:var(--radius);padding:14px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;animation:fadeUp .22s ease both}
.xp-badge{width:58px;height:58px;border-radius:18px;background:var(--orange);color:#1a1a1a;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;box-shadow:0 0 18px rgba(255,217,0,.18)}
.xp-badge span{font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.xp-badge strong{font-size:22px;line-height:1}
.xp-info{min-width:0}.xp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.xp-title{font-size:14px;font-weight:800}.xp-total{font-size:12px;color:var(--orange);font-weight:800;white-space:nowrap}
.xp-bar{height:10px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.xp-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--orange-dim),var(--orange));border-radius:999px;transition:width .5s cubic-bezier(.2,.9,.2,1)}
.xp-next{font-size:11px;color:var(--gray);margin-top:6px}.xp-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:rgba(255,217,0,.12);border:1px solid rgba(255,217,0,.25);border-radius:999px;color:var(--orange);font-size:11px;font-weight:800;margin-top:6px;margin-right:6px}
.logro-xp-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.logro-xp-pill{font-size:11px;font-weight:800;color:#1a1a1a;background:var(--orange);border-radius:999px;padding:4px 8px}.logro-xp-pill.bonus{background:#22c55e;color:#07170c}.logro-xp-pill.type{background:var(--dark3);border:1px solid var(--border);color:var(--white2)}
.admin-top-score small{display:block;font-size:10px;color:var(--gray);font-weight:600;margin-top:2px}.admin-xp-note{font-size:11px;color:var(--gray);margin-top:6px}.level-table{margin-top:12px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.level-row{display:grid;grid-template-columns:70px 1fr 82px;gap:8px;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.045);font-size:12px}.level-row:last-child{border-bottom:none}.level-row b{color:var(--orange)}

/* BADGES / XP V12 */
.badges-panel{margin:10px 16px 0;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;animation:fadeUp .22s ease both}
.badges-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.badges-title{font-size:12px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--orange)}
.badges-count{font-size:11px;color:var(--gray);font-weight:700}
.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}
.badge-item{background:var(--dark3);border:1px solid var(--border);border-radius:12px;padding:9px 6px;text-align:center;min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:transform .15s,border-color .15s,opacity .15s}
.badge-item.unlocked{border-color:rgba(255,217,0,.45);box-shadow:0 0 12px rgba(255,217,0,.08)}
.badge-item.locked{opacity:.34;filter:grayscale(1)}
.badge-item:active{transform:scale(.96)}
.badge-emoji{font-size:22px;line-height:1}
.badge-name{font-size:10px;font-weight:800;line-height:1.15;color:var(--white2)}
.badge-need{font-size:9px;color:var(--gray);line-height:1.1}
.admin-top-head.v12,.admin-top-row.v12{grid-template-columns:46px 1.5fr .65fr .75fr .75fr}
.admin-top-score strong{display:block;color:var(--orange);font-size:15px}.admin-top-score small{display:block}.xp-mini-label{font-size:10px;color:var(--gray);text-transform:uppercase;letter-spacing:1px;font-weight:800}
.xp-type-help{font-size:11px;color:var(--gray);line-height:1.4;margin-top:4px}

/* V13 OBJETIVOS XP / INSIGNIAS DESBLOQUEABLES */
.micro-main{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.micro-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.micro-xp-pill{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:3px 8px;border-radius:999px;background:rgba(255,217,0,.12);border:1px solid rgba(255,217,0,.28);color:var(--orange);font-size:10px;font-weight:900;letter-spacing:.3px}
.xp-micro10{background:rgba(59,130,246,.14)!important;border-color:rgba(59,130,246,.45)!important;color:#60a5fa!important}
.xp-micro25{background:rgba(255,217,0,.14)!important;border-color:rgba(255,217,0,.45)!important;color:#FFD900!important}
.xp-dificil{background:rgba(34,197,94,.14)!important;border-color:rgba(34,197,94,.45)!important;color:#22c55e!important}
.logro-xp-pill.xp-micro10,.logro-xp-pill.xp-micro25,.logro-xp-pill.xp-dificil{color:inherit}
.micro-pending-pill{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:3px 8px;border-radius:999px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:#ef4444;font-size:10px;font-weight:900;letter-spacing:.3px}
.micro-proposed-pill{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:3px 8px;border-radius:999px;background:rgba(88,101,242,.12);border:1px solid rgba(88,101,242,.28);color:#8ea0ff;font-size:10px;font-weight:900;letter-spacing:.3px}
.obj-xp-values{background:var(--dark3);border:1px solid var(--border);border-radius:12px;padding:10px 12px;color:var(--white2);font-size:12px;line-height:1.5}
.obj-xp-values b{color:var(--orange)}
.badge-item{cursor:pointer;position:relative}
.badge-item.locked .badge-emoji{filter:grayscale(1)}
.badges-summary{margin:10px 16px 0;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:fadeUp .22s ease both}
.badges-summary-info{flex:1;min-width:0}.badges-summary-title{font-size:12px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}.badges-summary-meta{font-size:12px;color:var(--white2);font-weight:700}.badges-summary-bar{height:7px;background:var(--dark3);border-radius:999px;overflow:hidden;margin-top:8px}.badges-summary-fill{height:100%;width:0;background:linear-gradient(90deg,var(--orange),#fff176);border-radius:999px;transition:width .35s ease}.btn-badges-open{padding:10px 14px;background:var(--orange);color:#1a1a1a;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}

.badges-modal-card{width:min(940px,calc(100vw - 24px));max-height:88dvh;background:var(--dark2);border:1px solid rgba(255,217,0,.35);border-radius:22px;padding:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 80px rgba(0,0,0,.55)}
.badges-modal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 4px 14px;border-bottom:1px solid var(--border);margin-bottom:14px}
.badges-modal-title{font-size:14px;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:var(--orange)}
.badges-modal-body{overflow-y:auto;padding-right:4px}.badges-modal-body .badges-panel{margin:0;background:transparent;border:none;padding:0}.btn-badges-close{width:36px;height:36px;border-radius:50%;background:var(--dark3);border:1px solid var(--border);color:var(--white);font-size:18px;font-weight:900}
@media(max-width:560px){.badges-summary{flex-direction:column;align-items:stretch}.btn-badges-open{width:100%;padding:13px}.badges-modal-card{max-height:92dvh}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}}
/* V24 PANEL XP + INSIGNIAS UNIFICADO */
.xp-badges-mini{min-width:230px;background:rgba(255,217,0,.06);border:1px solid rgba(255,217,0,.2);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:7px}
.xp-badges-mini-title{font-size:10px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--orange)}
.xp-badges-mini-meta{font-size:12px;color:var(--white2);font-weight:800;line-height:1.3}
.xp-badges-mini-bar{height:7px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden}
.xp-badges-mini-fill{height:100%;width:0;background:linear-gradient(90deg,var(--orange),#fff176);border-radius:999px;transition:width .35s ease}
.xp-badges-mini-btn{align-self:flex-start;padding:8px 12px;background:var(--orange);color:#1a1a1a;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}
@media(max-width:760px){.xp-panel{grid-template-columns:auto 1fr}.xp-badges-mini{grid-column:1/-1;min-width:0}.xp-badges-mini-btn{width:100%;padding:11px}}

.story-field{background:rgba(255,217,0,.08);border:1px solid rgba(255,217,0,.24) !important;border-radius:var(--radius-sm);padding:12px 14px;color:var(--white);font-size:14px;outline:none;width:100%}
.story-help{font-size:11px;color:var(--white2);line-height:1.45;background:rgba(255,217,0,.06);border:1px solid rgba(255,217,0,.16);border-radius:10px;padding:10px;margin-top:6px}



/* V33 ADMIN MINIMAL - compacto y limpio */
#admin-panel-mapa .adm-sec-header{margin-bottom:8px;align-items:center}
#admin-panel-mapa .adm-sec-title{font-size:24px;letter-spacing:2px}
#admin-panel-mapa .btn-add-alum{padding:8px 14px;font-size:12px}
.admin-radar{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 10px}
.radar-card{min-height:58px!important;padding:10px 12px!important;border-radius:13px!important;box-shadow:none!important;background:var(--dark2)!important}
.radar-card:before{display:none!important}
.radar-card span{font-size:9px!important;letter-spacing:1.4px!important;color:var(--gray)!important}
.radar-card strong{font-size:26px!important;margin:4px 0 0!important;line-height:1!important}
.radar-card em{display:none!important}
.admin-filterbar{gap:6px;margin:0 0 8px!important;padding-bottom:0!important}
.admin-filter{padding:7px 11px!important;font-size:10px!important;letter-spacing:.7px!important}
.legend{padding:8px 10px!important;margin:0 0 8px!important;gap:10px!important;border-radius:10px!important}
.legend-item{font-size:11px!important}
.legend-dot{width:8px!important;height:8px!important}
.admin-map-help{display:none!important}
.adm-search{margin-bottom:10px!important}
.adm-search input{padding:9px 12px 9px 36px!important;font-size:13px!important;border-radius:10px!important}
@media(max-width:720px){.admin-radar{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* V34 solicitudes de objetivos */
.tab-mini-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 6px;border-radius:999px;background:#ef4444;color:white;font-size:10px;font-weight:900;vertical-align:middle;animation:pulse 1.4s infinite}
.update-beacon.request{background:#ef4444;color:white;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.update-beacon.objective{background:var(--orange);color:#1a1a1a;box-shadow:0 0 0 3px rgba(255,217,0,.12)}
.alumno-request-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);color:#ff6b6b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.6px}
.proposals-box{margin-bottom:14px;background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(255,217,0,.04));border:1px solid rgba(239,68,68,.25);border-radius:14px;overflow:hidden}
.proposals-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:rgba(239,68,68,.08);border-bottom:1px solid rgba(255,255,255,.06)}
.proposals-title{font-size:12px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;color:#ff6b6b}
.proposals-count{min-width:24px;height:24px;border-radius:999px;background:#ef4444;color:white;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}
.proposal-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border-top:1px solid rgba(255,255,255,.05)}
.proposal-item:first-child{border-top:none}
.proposal-main{min-width:0}.proposal-student{font-weight:900;color:var(--white);font-size:14px}.proposal-obj{color:var(--orange);font-weight:900;margin-top:2px}.proposal-meta{color:var(--gray);font-size:11px;margin-top:3px}
.proposal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.btn-proposal{padding:8px 12px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid var(--border);background:var(--dark3);color:var(--white2)}
.btn-proposal.ok{background:var(--orange);border-color:var(--orange);color:#1a1a1a}.btn-proposal.del{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.25);color:#ef4444}
@media(max-width:620px){.proposal-item{grid-template-columns:1fr}.proposal-actions{justify-content:flex-start}}



/* V41 RADAR OPERATIVO */
.status-ring.naranja,.alumno-card.status-naranja .status-ring{border-color:#f97316;box-shadow:0 0 0 4px rgba(249,115,22,.10),0 0 16px rgba(249,115,22,.38)}
.status-ring.morado,.alumno-card.status-morado .status-ring{border-color:#a855f7;box-shadow:0 0 0 4px rgba(168,85,247,.10),0 0 16px rgba(168,85,247,.38)}
.alumno-card.status-naranja .avatar-inner{box-shadow:0 0 0 1px rgba(249,115,22,.25)}
.alumno-card.status-morado .avatar-inner{box-shadow:0 0 0 1px rgba(168,85,247,.25)}
.op-badge{position:absolute;right:8px;top:8px;min-width:32px;height:32px;border-radius:13px;display:none;align-items:center;justify-content:center;font-size:17px;font-weight:1000;z-index:7;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(0,0,0,.32)}
.op-badge.show{display:flex}.op-badge.apatico{background:rgba(255,217,0,.95);color:#1a1a1a;animation:updatePulse 1.5s ease-in-out infinite}.op-badge.llamada{background:#3b82f6;color:white}.op-badge.nuevo{background:#22c55e;color:#05150a}.op-badge.actualizar{background:#ef4444;color:white}.op-badge.lesionado{background:#ef4444;color:white}.op-badge.pausa{background:#64748b;color:white}.op-badge.renovar{background:#f97316;color:white}.op-badge.rutina{background:#a855f7;color:white}
.alumno-op-label{font-size:10px;font-weight:1000;letter-spacing:.8px;text-transform:uppercase;color:var(--white);background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:4px 8px;line-height:1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alumno-op-label.apatico{color:#FFD900;border-color:rgba(255,217,0,.25);background:rgba(255,217,0,.08)}.alumno-op-label.llamada{color:#60a5fa;border-color:rgba(59,130,246,.26);background:rgba(59,130,246,.08)}.alumno-op-label.nuevo{color:#22c55e;border-color:rgba(34,197,94,.25);background:rgba(34,197,94,.08)}.alumno-op-label.actualizar{color:#ef4444;border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.08)}.alumno-op-label.lesionado{color:#ff6b6b}.alumno-op-label.pausa{color:#94a3b8}
.alumno-card-meta{font-size:10px;color:var(--white2);text-align:center;line-height:1.25;max-width:100%;min-height:26px}.alumno-card-meta strong{color:var(--orange)}
.alumno-alert-line{font-size:9px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;color:var(--gray);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alumno-alert-line.warn{color:#f97316}.alumno-alert-line.danger{color:#ef4444}.alumno-alert-line.good{color:#22c55e}
.admin-filter-sections{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}.filter-section{display:grid;grid-template-columns:82px 1fr;gap:8px;align-items:center}.filter-section>span{font-size:10px;font-weight:1000;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray)}.filter-section .admin-filterbar{margin:0!important}
@media(max-width:640px){.filter-section{grid-template-columns:1fr}.filter-section>span{padding-left:2px}}



/* V43 OPERATIVO / EXPEDIENTE NOTION INTERNO */
.operativo-mini-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.operativo-help{font-size:11px;color:var(--gray);line-height:1.45;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:10px;padding:10px}
.modal-card-wide{max-width:860px}
.expediente-modal-card{gap:0}

/* ── V200 EXPEDIENTE MODAL PRO ───────────────────── */
/* Override solo para el modal expediente: centrado, ancho, sin sheet */
#modal-expediente.modal-overlay{align-items:center}
#modal-expediente .modal-card{
  width:min(98vw,1600px);
  max-width:min(98vw,1600px);
  border-radius:20px;
  padding:0;
  gap:0;
  height:96dvh;
  max-height:96dvh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
/* Header fijo con nombre alumno */
.exp-modal-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
  flex-shrink:0;
}
.exp-modal-avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--orange);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#111;
  flex-shrink:0;overflow:hidden;
}
.exp-modal-avatar img{width:100%;height:100%;object-fit:cover}
.exp-modal-nombre{font-size:15px;font-weight:900;color:#fff;line-height:1.2}
.exp-modal-sub{font-size:11px;color:var(--muted);margin-top:1px}
.exp-modal-close{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:32px;height:32px;color:var(--white2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s}
.exp-modal-close:hover{background:rgba(255,255,255,.08)}
/* Stats bar */
.exp-modal-stats-bar{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:rgba(255,255,255,.02);
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
}
.exp-modal-stat{padding:10px 14px;text-align:center;border-right:1px solid rgba(255,255,255,.06)}
.exp-modal-stat:last-child{border-right:0}
.exp-modal-stat strong{display:block;font-size:18px;font-weight:900;color:var(--orange);line-height:1}
.exp-modal-stat span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:3px}
/* Toolbar */
.exp-modal-toolbar{
  display:flex;align-items:center;gap:10px;
  padding:10px 20px;
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
  flex-wrap:wrap;
}
/* Layout 2 columnas: sidebar + contenido */
.exp-modal-body{
  display:grid;
  grid-template-columns:200px 1fr;
  flex:1;
  min-height:0;
  overflow:hidden;
  position:relative;
}
/* Sidebar filtros */
.exp-modal-sidebar{
  background:rgba(255,255,255,.018);
  border-right:1px solid rgba(255,255,255,.07);
  padding:14px 10px;
  overflow-y:auto;
  flex-shrink:0;
}
.exp-sidebar-title{
  font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px;padding:0 6px;
}
.exp-sidebar-filter{
  display:flex;align-items:center;gap:8px;
  padding:7px 8px;border-radius:8px;
  font-size:11px;font-weight:700;color:var(--white2);
  cursor:pointer;transition:background .1s;
  border:0;background:transparent;width:100%;text-align:left;
}
.exp-sidebar-filter:hover{background:rgba(255,255,255,.06)}
.exp-sidebar-filter.active{background:rgba(255,217,0,.1);color:var(--orange)}
.exp-sidebar-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.exp-sidebar-count{margin-left:auto;font-size:10px;color:var(--muted);font-weight:700}
.exp-sidebar-filter.active .exp-sidebar-count{color:var(--orange)}

/* ── V203 BÚSQUEDA CON RESALTADO ── */
mark.exp-search-hl{
  background:rgba(255,217,0,.32);
  color:#ffd900;
  border-radius:3px;
  padding:0 2px;
  font-weight:inherit;
}
.exp-search-bar input{
  font-size:13px;
}
/* Panel derecho: lista */
.exp-modal-content{
  overflow-y:auto;
  padding:16px;
  display:flex;flex-direction:column;gap:0;
}
/* Editor expandible */
.exp-modal-editor-wrap{
  padding:0 20px 16px;
  border-top:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
  background:rgba(255,255,255,.012);
}
/* Ocultar elementos legacy del modal que ahora están en el nuevo header */
#modal-expediente .modal-title{display:none!important}
#modal-expediente .modal-subtitle{display:none!important}
#modal-expediente #expediente-resumen{display:none!important}
#modal-expediente .expediente-toolbar.expediente-toolbar-pro{display:none!important}
/* Responsive móvil */
@media(max-width:680px){
  #modal-expediente.modal-overlay{align-items:flex-end}
  #modal-expediente .modal-card{
    border-radius:20px 20px 0 0;
    max-height:92dvh;
    width:100%;
  }
  .exp-modal-body{grid-template-columns:1fr}
  .exp-modal-sidebar{display:none}
  .exp-modal-stats-bar{grid-template-columns:repeat(2,1fr)}
  .exp-modal-toolbar{padding:8px 14px}
  .exp-modal-content{padding:10px}
}
.expediente-resumen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:14px;padding:10px}
.expediente-resumen-card{background:var(--dark3);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px;text-align:center}
.expediente-resumen-card strong{display:block;color:var(--orange);font-size:20px;line-height:1}
.expediente-resumen-card span{display:block;color:var(--gray);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:1px;margin-top:5px}
.expediente-editor-box{background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:16px;padding:12px}

/* ── V203 QUICK TYPE SELECTOR ── */
.exp-type-picker{
  display:flex;flex-direction:column;gap:10px;
  padding:20px 24px;
  background:var(--dark2);
  border:0;
  border-radius:0;
  margin:0;
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  z-index:10;
  overflow-y:auto;
}
.exp-type-picker-title{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.exp-type-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.exp-type-btn{
  display:flex;align-items:center;gap:7px;
  padding:8px 10px;border-radius:10px;
  background:rgba(255,255,255,.04);
  border:0.5px solid rgba(255,255,255,.1);
  color:var(--white2);font-size:12px;font-weight:700;
  cursor:pointer;transition:background .1s,border-color .1s;
  text-align:left;
}
.exp-type-btn:hover{background:rgba(255,217,0,.1);border-color:rgba(255,217,0,.35);color:var(--yellow)}
.exp-type-btn.selected{background:rgba(255,217,0,.15);border-color:rgba(255,217,0,.55);color:var(--yellow)}
.exp-type-btn .exp-type-icon{font-size:16px;flex-shrink:0}
.expediente-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px;font-weight:1000;letter-spacing:1.6px;text-transform:uppercase;color:var(--orange)}
.btn-expediente-clear{padding:6px 10px;border-radius:999px;background:var(--dark3);border:1px solid var(--border);color:var(--white2);font-size:11px;font-weight:900}
.expediente-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.expediente-accordion{background:var(--dark2);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.expediente-accordion summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.015));font-size:12px;font-weight:1000;letter-spacing:1.6px;text-transform:uppercase;color:var(--white)}
.expediente-accordion summary::-webkit-details-marker{display:none}
.expediente-accordion summary .left{display:flex;align-items:center;gap:10px;min-width:0}.expediente-accordion summary .count{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px 8px;font-size:10px;color:var(--white2)}
.expediente-accordion summary .chev{color:var(--gray);transition:transform .18s}.expediente-accordion[open] summary .chev{transform:rotate(90deg)}
.expediente-accordion.info{border-color:rgba(255,217,0,.25)}.expediente-accordion.tarea{border-color:rgba(34,197,94,.24)}.expediente-accordion.pago{border-color:rgba(34,197,94,.28)}.expediente-accordion.llamada{border-color:rgba(59,130,246,.25)}.expediente-accordion.formulario{border-color:rgba(168,85,247,.25)}.expediente-accordion.protocolo{border-color:rgba(255,217,0,.2)}.expediente-accordion.lesion{border-color:rgba(239,68,68,.32)}.expediente-accordion.clases{border-color:rgba(236,72,153,.25)}.expediente-accordion.onboarding{border-color:rgba(249,115,22,.3)}.expediente-accordion.pausa{border-color:rgba(100,116,139,.35)}.expediente-accordion.mensaje{border-color:rgba(6,182,212,.3)}.expediente-accordion.plan{border-color:rgba(59,130,246,.3)}
.expediente-items{padding:10px;display:flex;flex-direction:column;gap:8px}
.expediente-item{background:var(--dark3);border:1px solid var(--border);border-radius:14px;padding:12px}
.expediente-item.pin{border-color:rgba(255,217,0,.42);background:linear-gradient(135deg,rgba(255,217,0,.08),var(--dark3))}
.expediente-item.sev-rojo{border-color:rgba(239,68,68,.42)}.expediente-item.sev-naranja{border-color:rgba(249,115,22,.42)}.expediente-item.sev-amarillo{border-color:rgba(255,217,0,.38)}.expediente-item.sev-azul{border-color:rgba(59,130,246,.38)}
.expediente-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}
.expediente-title{font-size:13px;font-weight:900;color:var(--white);line-height:1.25}
.expediente-meta{font-size:10px;color:var(--gray);font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-top:2px}
.severity-dot{display:inline-flex;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px}.severity-dot.rojo{background:#ef4444}.severity-dot.naranja{background:#f97316}.severity-dot.amarillo{background:#FFD900}.severity-dot.azul{background:#3b82f6}
.expediente-body{font-size:12px;color:var(--white2);line-height:1.45;white-space:pre-wrap}
.expediente-link{display:inline-flex;margin-top:8px;color:#60a5fa;font-size:11px;font-weight:900;text-decoration:none;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.22);border-radius:999px;padding:6px 9px}
.expediente-actions{display:flex;gap:6px;flex-shrink:0}
.expediente-actions button{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--white2);font-size:12px}.expediente-actions button.edit{color:var(--orange);background:rgba(255,217,0,.08);border-color:rgba(255,217,0,.24)}
.expediente-actions button.del{color:#ef4444;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}
@media(max-width:760px){.expediente-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.operativo-mini-form{grid-template-columns:1fr}.expediente-resumen{grid-template-columns:1fr}}

/* V45 Expediente: editor bajo botón y bloques no vacíos */
.expediente-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 4px;padding:10px 12px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:14px}
.expediente-toolbar span{font-size:11px;color:var(--gray);font-weight:800;letter-spacing:.3px}
.expediente-editor-box{display:none}
.expediente-editor-box.open{
  display:block;
  animation:fadeUp .18s ease both;
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  z-index:10;
  overflow-y:auto;
  overflow-x:hidden;
  scroll-behavior:smooth;
  background:var(--dark2);
  border-radius:0;
  padding:20px;
  border:0;
}
.expediente-history{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.expediente-history-title{font-size:10px;color:var(--orange);font-weight:1000;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:2px}
.expediente-update{display:flex;flex-direction:column;gap:8px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:12px 14px}
.upd-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.upd-meta b{color:var(--white);font-size:13px;white-space:nowrap}.upd-meta span{color:var(--gray);font-size:12px}
.upd-pain-box{display:inline-flex;flex-direction:column;gap:2px;border-radius:12px;padding:9px 13px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}.upd-pain-box span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gray);font-weight:900}.upd-pain-box strong{font-size:26px;line-height:1;font-weight:1000}
.upd-pain-box.upd-pain-rojo{border-color:rgba(255,75,75,.38);background:rgba(255,75,75,.08)}.upd-pain-box.upd-pain-rojo strong{color:#ff8080}
.upd-pain-box.upd-pain-naranja{border-color:rgba(249,115,22,.38);background:rgba(249,115,22,.08)}.upd-pain-box.upd-pain-naranja strong{color:#fdba74}
.upd-pain-box.upd-pain-amarillo{border-color:rgba(255,211,0,.38);background:rgba(255,211,0,.08)}.upd-pain-box.upd-pain-amarillo strong{color:var(--yellow)}
.upd-pain-box.upd-pain-azul{border-color:rgba(70,140,255,.38);background:rgba(70,140,255,.08)}.upd-pain-box.upd-pain-azul strong{color:#9bc0ff}
.upd-estado{margin:0;font-size:12px;color:var(--white2)}.upd-contenido{margin:0;font-size:13px;color:var(--white2);line-height:1.5;white-space:pre-wrap}
@media(max-width:620px){.expediente-toolbar{flex-direction:column;align-items:stretch}.upd-pain-box strong{font-size:22px}}

/* V46 — Expediente timeline interno tipo Notion */
.expediente-toolbar{margin:10px 0 8px!important}
.expediente-timeline{display:flex;flex-direction:column;gap:0;margin-top:8px}

/* ── V203 TIMELINE VISUAL ── */
.expediente-entry{position:relative}
/* Línea conectora via CSS puro — sin tocar el DOM */
.expediente-timeline>.expediente-entry:not(:last-child)::after{
  content:'';
  position:absolute;
  left:31px;
  top:44px;
  bottom:0;
  width:2px;
  background:rgba(255,255,255,.07);
  z-index:0;
  pointer-events:none;
}
/* V212: acotado a > summary — antes se colaba en los summaries anidados (cajon principal y actualizaciones) */
.expediente-entry > summary{padding-top:14px;padding-bottom:14px}
.exp-tl-dot-wrap{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  width:20px;height:20px;
  flex-shrink:0;
  z-index:1;
}
.exp-tl-dot-ring{
  width:12px;height:12px;border-radius:50%;
  border:2px solid rgba(255,255,255,.15);
  background:var(--dark2);
  display:flex;align-items:center;justify-content:center;
  transition:border-color .15s;
}
.expediente-entry:hover .exp-tl-dot-ring,
.expediente-entry[open] .exp-tl-dot-ring{border-color:rgba(255,255,255,.4)}
.exp-tl-dot-inner{
  width:6px;height:6px;border-radius:50%;
  background:var(--orange);
}
/* Colores del dot por categoría */
.exp-tl-dot-inner.info{background:#FFD900}
.exp-tl-dot-inner.tarea{background:#22c55e}
.exp-tl-dot-inner.pago{background:#ec4899}
.exp-tl-dot-inner.llamada{background:#a78bfa}
.exp-tl-dot-inner.formulario{background:#fb923c}
.exp-tl-dot-inner.protocolo{background:#60a5fa}
.exp-tl-dot-inner.lesion{background:#ef4444}
.exp-tl-dot-inner.clases{background:#4ade80}
.exp-tl-dot-inner.onboarding{background:#fb923c}
.exp-tl-dot-inner.pausa{background:#94a3b8}
.exp-tl-dot-inner.mensaje{background:#38bdf8}
.exp-tl-dot-inner.plan{background:#60a5fa}
.exp-tl-dot-inner.actualizacion_planificacion{background:#94a3b8}
.exp-tl-dot-inner.morosidad{background:#ef4444}
.exp-tl-dot-inner.conflicto{background:#f97316}
.exp-tl-dot-inner.ghosting{background:#6b7280}
.exp-tl-dot-inner.cambio_fisico{background:#34d399}
/* Dot más grande en entradas de lesión con dolor alto */
.expediente-entry.sev-rojo .exp-tl-dot-inner{background:#ef4444;width:8px;height:8px}
.expediente-entry.pin .exp-tl-dot-inner{background:#FFD900;width:8px;height:8px}
.expediente-entry{background:var(--dark2);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .16s,background .16s,transform .16s}
.expediente-entry[open]{background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border-color:rgba(255,217,0,.22)}
.expediente-entry.pin{border-color:rgba(255,217,0,.42)}
.expediente-entry.dragging{opacity:.4;transform:scale(.98)}
/* V212: acotado a > summary. Esta regla es la cabecera de la ENTRADA. Al ser selector de
   descendencia pisaba tambien .exp-main-collapse-summary (flex en columna -> align-items:center
   centraba en HORIZONTAL) y .upd-summary (padding/gap/dot). Ahora solo aplica a la cabecera. */
.expediente-entry > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:12px 13px;color:var(--white);font-size:13px;font-weight:900;position:relative}

/* ── V203 ENTRY LAYOUT ── */
.exp-entry-main-col{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.exp-entry-title-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.exp-entry-title{font-size:14px;font-weight:900;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exp-entry-fecha{font-size:11px;font-weight:600;color:var(--muted);margin-left:auto;white-space:nowrap;flex-shrink:0}
.exp-sneak-preview{font-size:12px;font-weight:400;color:rgba(255,255,255,.38);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:1.3;max-width:100%}

/* ── V203 HOVER ACTIONS ── */
.exp-hover-actions{
  /* Antes solo se veían con :hover del ratón (invisibles/inaccesibles en táctil).
     Ahora siempre visibles y pulsables, en cualquier dispositivo. */
  display:flex;align-items:center;gap:4px;
  opacity:1;pointer-events:auto;
  flex-shrink:0;
  margin-left:4px;
}
.exp-ha-btn{
  background:rgba(255,255,255,.06);
  border:0.5px solid rgba(255,255,255,.12);
  border-radius:7px;
  padding:6px 8px;
  min-width:30px;min-height:30px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:13px;
  cursor:pointer;
  color:var(--white2);
  transition:background .1s,border-color .1s;
  line-height:1;
}
.exp-ha-btn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}
.exp-ha-btn.del:hover{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.4)}

/* Cuerpo abierto: tipografía más grande */
.expediente-entry-body{padding:0 13px 13px 46px;border-top:1px solid rgba(255,255,255,.055)}
.expediente-body.exp-md{font-size:13px;line-height:1.65;color:rgba(255,255,255,.78)}
.expediente-meta{font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;margin-bottom:6px}
.expediente-entry > summary::-webkit-details-marker{display:none}
.expediente-line-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1;line-height:1.25}
.expediente-line-main b{color:var(--white2);font-size:12px;white-space:nowrap}
.expediente-line-main span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.expediente-entry .chev{color:var(--gray);font-size:12px;transition:transform .16s;flex-shrink:0}
.expediente-entry[open] .chev{transform:rotate(90deg)}
.expediente-drag{color:var(--gray);cursor:grab;user-select:none;flex-shrink:0}
.expediente-entry-body{padding:0 13px 13px 40px;border-top:1px solid rgba(255,255,255,.055)}
.expediente-entry-body .expediente-meta{margin-top:9px}
.expediente-entry-body .expediente-actions{margin-top:10px;justify-content:flex-start;flex-wrap:wrap}
.expediente-entry-body .expediente-actions button{width:auto;height:auto;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}
.expediente-cat-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0;background:var(--orange);box-shadow:0 0 12px currentColor}
.expediente-cat-dot.info{background:#FFD900;color:#FFD900}.expediente-cat-dot.tarea{background:#22c55e;color:#22c55e}.expediente-cat-dot.pago{background:#22c55e;color:#22c55e}.expediente-cat-dot.llamada{background:#3b82f6;color:#3b82f6}.expediente-cat-dot.formulario{background:#a855f7;color:#a855f7}.expediente-cat-dot.protocolo{background:#FFD900;color:#FFD900}.expediente-cat-dot.clases{background:#ec4899;color:#ec4899}.expediente-cat-dot.onboarding{background:#f97316;color:#f97316}.expediente-cat-dot.pausa{background:#64748b;color:#64748b}.expediente-cat-dot.mensaje{background:#06b6d4;color:#06b6d4}.expediente-cat-dot.plan{background:#3b82f6;color:#3b82f6}
@media(max-width:620px){.expediente-entry-body{padding-left:13px}.expediente-line-main b{display:none}.quick-actions button{min-width:130px}}
@media(max-width:480px){.exp-ha-btn{min-width:26px;min-height:26px;padding:5px 6px;font-size:12px}.exp-hover-actions{gap:2px}}
/* Móvil: textarea expediente más grande */
@media(max-width:680px){
  #modal-expediente-contenido{min-height:180px!important}
  .exp-modal-editor-wrap{padding:0 12px 12px}
  .expediente-editor-box{margin:0 -4px}
}

/* V47 — bloques inteligentes expediente */
.admin-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.smart-help{font-size:12px;color:var(--white2);background:rgba(255,217,0,.06);border:1px solid rgba(255,217,0,.18);border-radius:12px;padding:10px 12px;margin-bottom:10px;line-height:1.45}
.smart-field{display:none}
.format-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 2px}
.format-toolbar button{padding:6px 10px;border-radius:999px;background:var(--dark3);border:1px solid var(--border);color:var(--white2);font-size:11px;font-weight:900}
.format-toolbar button:active{transform:scale(.96);border-color:var(--orange);color:var(--orange)}
.expediente-subblock{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.075);border-radius:12px;padding:10px 12px;margin-top:8px}
.expediente-subblock b{display:block;color:var(--orange);font-size:11px;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:5px}
.expediente-subblock p{margin:0;color:var(--white2);font-size:12px;line-height:1.45;white-space:pre-wrap}
.expediente-body.muted{color:var(--gray);font-style:italic}
.expediente-toolbar .btn-link-cat{padding:9px 12px}
@media(max-width:620px){.admin-header-actions{width:100%;justify-content:stretch}.admin-header-actions .btn-add-alum{flex:1}.format-toolbar button{flex:1}}

/* V48 — expediente: fotos comprimidas y campos obligatorios limpios */
.expediente-file-help{font-size:11px;color:var(--gray);line-height:1.35;margin-top:4px}
.expediente-fotos-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.expediente-foto-thumb{width:70px;height:70px;border-radius:12px;object-fit:cover;border:1px solid rgba(255,255,255,.12);background:var(--dark3)}
/* ── V205 MULTI-FOTO ── */
.exp-foto-thumb-wrap{position:relative;display:inline-flex;flex-shrink:0}
.exp-fotos-pendientes-cont{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.exp-fotos-pendientes-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 2px;width:100%}
.exp-foto-del-btn{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:#ef4444;border:0;color:#fff;font-size:10px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;z-index:1}
.exp-foto-del-btn:hover{background:#dc2626}
.tarea-foto-thumb-wrap{position:relative;display:inline-flex;flex-shrink:0}
.tarea-foto-thumb-mini{max-height:80px;border-radius:6px;object-fit:cover;cursor:zoom-in;border:1px solid var(--border)}
.tarea-foto-del-mini{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:#ef4444;border:0;color:#fff;font-size:10px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;z-index:1}
.tarea-foto-del-mini:hover{background:#dc2626}
.tarea-fotos-wrap{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.expediente-fotos-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.expediente-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.expediente-photos a,.expediente-photo-btn{display:block;width:78px;height:78px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:var(--dark3);padding:0;cursor:pointer}
.expediente-photos img,.expediente-photo-btn img{width:100%;height:100%;object-fit:cover;display:block}
.expediente-photo-btn:active{transform:scale(.97)}
.expediente-photo-viewer{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:18px}
.expediente-photo-viewer.show{display:flex}
.expediente-photo-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(3px)}
.expediente-photo-dialog{position:relative;width:min(96vw,980px);max-height:92vh;background:var(--dark2);border:1px solid rgba(255,211,0,.45);border-radius:20px;box-shadow:0 18px 60px rgba(0,0,0,.65);padding:12px;display:flex;flex-direction:column;gap:10px}
.expediente-photo-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);padding:4px 4px 0}
.expediente-photo-top strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expediente-photo-top button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;font-size:20px;cursor:pointer}
#expediente-photo-large{max-width:100%;max-height:72vh;object-fit:contain;border-radius:14px;background:#000}
.expediente-photo-actions{display:flex;gap:10px;flex-wrap:wrap}
.expediente-photo-actions a,.expediente-photo-actions button{flex:1;min-width:170px;text-align:center;text-decoration:none;border-radius:14px;padding:13px 16px;font-weight:900;background:var(--yellow);color:#111;border:0;cursor:pointer;font:inherit}
.expediente-photo-actions a:last-child,.expediente-photo-actions button:last-child{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.12)}
.expediente-required{border-color:rgba(239,68,68,.42)!important}


/* V50 — ficha rápida compacta y acciones visuales */
.admin-quick-panel{padding:10px!important;border-radius:14px!important}
.quick-head{margin-bottom:8px!important;gap:10px!important}
.quick-avatar{width:44px!important;height:44px!important}
.quick-title{font-size:14px!important;line-height:1.1!important}
.quick-sub{font-size:10.5px!important;line-height:1.25!important}
.quick-stats{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:6px!important;margin:8px 0!important}
.quick-stat{padding:7px 6px!important;border-radius:9px!important;min-height:54px!important}
.quick-stat strong{font-size:17px!important;line-height:1.05!important}
.quick-stat span{font-size:8.5px!important;letter-spacing:1px!important;margin-top:3px!important;display:block}
.quick-actions-v50{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:7px!important;margin-top:8px!important}
.quick-actions-v50 .quick-action-btn{min-width:0!important;width:100%!important;padding:9px 7px!important;border-radius:10px!important;font-size:10.5px!important;font-weight:1000!important;letter-spacing:.2px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;color:var(--white)!important;border:1px solid transparent!important;box-shadow:none!important;line-height:1.1!important}
.quick-actions-v50 .quick-action-btn span{font-size:13px!important;line-height:1!important}
.quick-action-btn.profile{background:var(--orange)!important;color:#1a1a1a!important;border-color:var(--orange)!important}
.quick-action-btn.plan{background:rgba(59,130,246,.14)!important;border-color:rgba(59,130,246,.35)!important;color:#93c5fd!important}
.quick-action-btn.logros{background:rgba(255,217,0,.10)!important;border-color:rgba(255,217,0,.32)!important;color:var(--orange)!important}
.quick-action-btn.expediente{background:rgba(168,85,247,.14)!important;border-color:rgba(168,85,247,.35)!important;color:#d8b4fe!important}
.quick-action-btn.estado{background:rgba(34,197,94,.12)!important;border-color:rgba(34,197,94,.32)!important;color:#86efac!important}
.quick-action-btn.fechas{background:rgba(249,115,22,.14)!important;border-color:rgba(249,115,22,.35)!important;color:#fdba74!important}
.quick-action-btn:active{transform:scale(.97)}
@media(max-width:980px){.quick-stats{grid-template-columns:repeat(3,1fr)!important}.quick-actions-v50{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:520px){.quick-stats{grid-template-columns:repeat(2,1fr)!important}.quick-actions-v50{grid-template-columns:repeat(2,1fr)!important}}

/* V54 VIDA STREET */
.alumno-chip.vida{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:var(--white2)}
.alumno-chip.month{background:rgba(255,217,0,.08);border-color:rgba(255,217,0,.20);color:#FFD900}
.quick-stat strong{font-size:18px}

/* V56 — Tarjetas admin horizontales tipo CRM */
#admin-panel-mapa .alumnos-grid{
  grid-template-columns:repeat(4,minmax(280px,1fr));
  gap:14px;
  align-items:stretch;
}
@media(max-width:1500px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(3,minmax(280px,1fr));}}
@media(max-width:1050px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(2,minmax(260px,1fr));}}
@media(max-width:680px){#admin-panel-mapa .alumnos-grid{grid-template-columns:1fr;}}

#admin-panel-mapa .alumno-card{
  min-height:132px;
  display:grid;
  grid-template-columns:86px 1fr 32px;
  grid-template-rows:auto auto auto auto;
  column-gap:12px;
  row-gap:5px;
  align-items:center;
  padding:14px 14px 12px;
  border-radius:16px;
  background:linear-gradient(145deg,rgba(36,36,36,.96),rgba(18,18,18,.98));
  text-align:left;
}
#admin-panel-mapa .alumno-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
}
#admin-panel-mapa .foto-btn{
  left:10px;
  top:10px;
  width:20px;
  height:20px;
  font-size:9px;
  opacity:.62;
}
#admin-panel-mapa .alumno-card-avatar{
  grid-column:1;
  grid-row:1 / span 4;
  width:72px;
  height:72px;
  margin:0 auto;
  font-size:19px;
}
#admin-panel-mapa .status-ring{
  inset:-6px;
  border-width:4px;
}
#admin-panel-mapa .op-badge{
  grid-column:3;
  grid-row:1;
  position:static;
  justify-self:end;
  align-self:start;
  width:30px;
  height:30px;
  border-radius:50%;
  font-size:15px;
  margin:0;
}
#admin-panel-mapa .alumno-card-name{
  grid-column:2;
  grid-row:1;
  font-size:15px;
  line-height:1.15;
  text-align:left;
  margin:0;
  max-width:100%;
}
#admin-panel-mapa .alumno-op-label{
  grid-column:2;
  grid-row:2;
  justify-self:start;
  margin:0;
  padding:3px 9px;
  font-size:10px;
  border-radius:999px;
}
#admin-panel-mapa .alumno-chiprow{
  grid-column:2 / span 2;
  grid-row:3;
  justify-content:flex-start;
  gap:6px;
  margin-top:2px;
}
#admin-panel-mapa .alumno-chip{
  min-height:22px;
  padding:4px 8px;
  font-size:10px;
  border-radius:999px;
}
#admin-panel-mapa .alumno-chip.vida{
  background:rgba(168,85,247,.10);
  border-color:rgba(168,85,247,.28);
  color:#d8b4fe;
}
#admin-panel-mapa .alumno-card-meta{
  grid-column:2 / span 2;
  grid-row:4;
  text-align:left;
  font-size:11px;
  margin:1px 0 0;
  min-height:auto;
}
#admin-panel-mapa .alumno-card-meta strong{
  color:var(--orange);
}
#admin-panel-mapa .alumno-alert-line{
  grid-column:2 / span 2;
  justify-self:start;
  margin-top:2px;
  font-size:10px;
  letter-spacing:.3px;
}
#admin-panel-mapa .alumno-request-pill{
  min-height:22px;
  padding:4px 8px;
  font-size:9px;
}


/* V58 — Tarjetas verticales compact premium estrechas (8-9 por fila aprox). Sobrescribe V56/V57. */
#admin-panel-mapa .alumnos-grid{
  grid-template-columns:repeat(auto-fill,minmax(126px,1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
}
@media(min-width:1700px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(9,minmax(124px,1fr)) !important;}}
@media(max-width:1699px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(8,minmax(124px,1fr)) !important;}}
@media(max-width:1420px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(7,minmax(124px,1fr)) !important;}}
@media(max-width:1180px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(6,minmax(120px,1fr)) !important;}}
@media(max-width:940px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(4,minmax(135px,1fr)) !important;}}
@media(max-width:720px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(3,minmax(130px,1fr)) !important;}}
@media(max-width:520px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}

#admin-panel-mapa .alumno-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
  min-height:206px !important;
  padding:10px 6px 9px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(34,34,34,.96),rgba(18,18,18,.98)) !important;
  row-gap:0 !important;
  column-gap:0 !important;
  position:relative !important;
  overflow:hidden !important;
}
#admin-panel-mapa .alumno-card:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34) !important;
}
#admin-panel-mapa .foto-btn{
  position:absolute !important;
  left:9px !important;
  top:9px !important;
  width:18px !important;
  height:18px !important;
  font-size:8px !important;
  opacity:.55 !important;
}
#admin-panel-mapa .alumno-card-avatar{
  width:64px !important;
  height:64px !important;
  margin:7px auto 6px !important;
  font-size:18px !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .status-ring{
  inset:-6px !important;
  border-width:4px !important;
}
#admin-panel-mapa .op-badge{
  position:absolute !important;
  right:8px !important;
  top:8px !important;
  width:28px !important;
  height:28px !important;
  border-radius:50% !important;
  font-size:15px !important;
  margin:0 !important;
  z-index:3 !important;
}
#admin-panel-mapa .alumno-card-name{
  font-size:11px !important;
  line-height:1.1 !important;
  text-align:center !important;
  margin:1px 0 4px !important;
  max-width:100% !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .alumno-op-label{
  justify-self:center !important;
  margin:0 0 6px !important;
  padding:3px 7px !important;
  font-size:8px !important;
  border-radius:999px !important;
  max-width:100% !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .alumno-chiprow{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  align-items:center !important;
  gap:4px !important;
  width:100% !important;
  margin:0 0 6px !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .alumno-chip{
  min-height:20px !important;
  padding:3px 6px !important;
  font-size:8px !important;
  border-radius:999px !important;
}
#admin-panel-mapa .alumno-chip.month{color:#FFD900 !important;background:rgba(255,217,0,.09) !important;border-color:rgba(255,217,0,.22) !important;}
#admin-panel-mapa .alumno-chip.vida{background:rgba(168,85,247,.10) !important;border-color:rgba(168,85,247,.28) !important;color:#d8b4fe !important;}
#admin-panel-mapa .alumno-card-meta{
  text-align:center !important;
  font-size:9px !important;
  line-height:1.2 !important;
  margin:0 0 5px !important;
  min-height:14px !important;
  width:100% !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .alumno-card-meta strong{color:var(--orange) !important;}
#admin-panel-mapa .alumno-alert-line{
  justify-self:center !important;
  margin-top:auto !important;
  font-size:9px !important;
  letter-spacing:.25px !important;
  max-width:100% !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
#admin-panel-mapa .alumno-request-pill{
  min-height:20px !important;
  padding:3px 7px !important;
  font-size:8px !important;
}


/* V59 — Tarjetas verticales más estrechas, 9 por fila, nombre + mote grande */
#admin-panel-mapa .alumnos-grid{
  grid-template-columns:repeat(9,minmax(104px,1fr)) !important;
  gap:9px !important;
}
@media(max-width:1650px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(8,minmax(104px,1fr)) !important;}}
@media(max-width:1420px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(7,minmax(104px,1fr)) !important;}}
@media(max-width:1180px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(6,minmax(108px,1fr)) !important;}}
@media(max-width:940px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(4,minmax(120px,1fr)) !important;}}
@media(max-width:620px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(3,minmax(105px,1fr)) !important;}}
@media(max-width:460px){#admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}

#admin-panel-mapa .alumno-card{
  min-height:202px !important;
  padding:9px 5px 8px !important;
  border-radius:17px !important;
}
#admin-panel-mapa .alumno-card-avatar{
  width:60px !important;
  height:60px !important;
  margin:6px auto 7px !important;
  font-size:18px !important;
}
#admin-panel-mapa .op-badge{
  width:30px !important;
  height:30px !important;
  font-size:16px !important;
  right:7px !important;
  top:7px !important;
}
#admin-panel-mapa .alumno-card-name{
  font-size:13px !important;
  line-height:1.05 !important;
  margin:2px 0 5px !important;
  letter-spacing:-.15px !important;
  font-weight:1000 !important;
}
#admin-panel-mapa .alumno-op-label{
  font-size:9.5px !important;
  padding:4px 8px !important;
  margin-bottom:6px !important;
  letter-spacing:.55px !important;
}
#admin-panel-mapa .alumno-chiprow{gap:4px !important;margin-bottom:6px !important;}
#admin-panel-mapa .alumno-chip{
  min-height:19px !important;
  padding:3px 5px !important;
  font-size:8.5px !important;
}
#admin-panel-mapa .alumno-card-meta{font-size:9px !important;margin-bottom:4px !important;}
#admin-panel-mapa .alumno-alert-line{font-size:8.5px !important;}


/* V61 FIX CLICK TARJETAS: los overlays visuales no bloquean abrir la ficha */
#admin-grid .alumno-card{ cursor:pointer; }
#admin-grid .alumno-card .op-badge,
#admin-grid .alumno-card .alumno-card-avatar,
#admin-grid .alumno-card .status-ring,
#admin-grid .alumno-card .avatar-inner,
#admin-grid .alumno-card .alumno-card-name,
#admin-grid .alumno-card .alumno-op-label,
#admin-grid .alumno-card .alumno-chiprow,
#admin-grid .alumno-card .alumno-chip,
#admin-grid .alumno-card .alumno-card-meta,
#admin-grid .alumno-card .alumno-alert-line{ pointer-events:none; }
#admin-grid .alumno-card .foto-btn{ pointer-events:auto; }

/* V62: ficha rápida al clicar tarjeta. Los overlays no bloquean el click general. */
#admin-grid .alumno-card .op-badge,
#admin-grid .alumno-card .status-ring,
#admin-grid .alumno-card .alumno-chip,
#admin-grid .alumno-card .alumno-op-label,
#admin-grid .alumno-card .alumno-card-meta,
#admin-grid .alumno-card .alumno-alert-line { pointer-events:none; }
#admin-grid .alumno-card .foto-btn { pointer-events:auto; }

/* V63 - ficha flotante arriba del grid */
.admin-quick-panel-top{
  margin:14px 0 16px 0!important;
  position:sticky;
  top:8px;
  z-index:20;
}
.admin-quick-panel.open{
  display:block;
}
.admin-quick-panel-top.open{
  box-shadow:0 18px 55px rgba(0,0,0,.46), 0 0 0 1px rgba(255,217,0,.12);
}

/* V64: rutina y renovación separadas en tarjeta */
.alumno-date-stack{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:24px;margin-top:-2px;max-width:100%;}
.alumno-date-line{font-size:8.5px;line-height:1.1;font-weight:950;text-transform:uppercase;letter-spacing:.2px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.alumno-date-line.ok{color:#22c55e;}
.alumno-date-line.warn{color:#f97316;}
.alumno-date-line.danger{color:#ff4747;}
.alumno-date-line.muted{color:#777;}
#admin-panel-mapa .alumno-date-stack{min-height:25px;margin-top:-1px;}
#admin-panel-mapa .alumno-date-line{font-size:8px;}

/* V65 · Colores operativos por urgencia: rutina, renovación y Vida Street */
.alumno-date-line.danger{color:#ff4747!important;text-shadow:0 0 8px rgba(239,68,68,.38)}
.alumno-date-line.orange{color:#fb923c!important;text-shadow:0 0 8px rgba(249,115,22,.30)}
.alumno-date-line.warn{color:#FFD900!important;text-shadow:0 0 8px rgba(255,217,0,.25)}
.alumno-date-line.ok{color:#22c55e!important;text-shadow:0 0 8px rgba(34,197,94,.25)}
.alumno-date-line.cool{color:#38bdf8!important;text-shadow:0 0 8px rgba(56,189,248,.26)}
.alumno-date-line.muted{color:#777!important}
.alumno-chip.vida.danger{background:rgba(239,68,68,.13)!important;border-color:rgba(239,68,68,.42)!important;color:#ff6b6b!important}
.alumno-chip.vida.orange{background:rgba(249,115,22,.13)!important;border-color:rgba(249,115,22,.42)!important;color:#fb923c!important}
.alumno-chip.vida.warn{background:rgba(255,217,0,.10)!important;border-color:rgba(255,217,0,.35)!important;color:#FFD900!important}
.alumno-chip.vida.ok{background:rgba(34,197,94,.12)!important;border-color:rgba(34,197,94,.35)!important;color:#22c55e!important}
.alumno-chip.vida.cool{background:rgba(56,189,248,.12)!important;border-color:rgba(56,189,248,.36)!important;color:#38bdf8!important}
.alumno-chip.vida.muted{background:rgba(120,120,120,.08)!important;border-color:rgba(120,120,120,.22)!important;color:#888!important}


/* V67 dropdown ordenación CRM */
.admin-sort-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:max-content;max-width:100%;margin:12px 0 10px;padding:10px 12px;border:1px solid rgba(255,217,0,.45);background:rgba(255,217,0,.045);border-radius:12px;}
.admin-sort-row label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--yellow);font-weight:900;}
.admin-sort-row select{min-width:220px;background:#1b1b1b;color:#fff;border:1px solid #333;border-radius:999px;padding:10px 36px 10px 14px;font-weight:900;outline:none;cursor:pointer;}
.admin-sort-row select:focus{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(255,217,0,.12);}


/* V69 — Identidad clara: nombre grande, mote y apellidos */
#admin-panel-mapa .alumno-card{min-height:218px !important;}
#admin-panel-mapa .alumno-card-identity{width:100%;min-height:39px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin:1px 0 4px;pointer-events:none;}
#admin-panel-mapa .alumno-card-name{font-size:14px !important;line-height:1 !important;letter-spacing:.2px !important;text-transform:uppercase !important;margin:0 0 2px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
#admin-panel-mapa .alumno-card-mote{font-size:9.5px;font-weight:950;color:#FFD900;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
#admin-panel-mapa .alumno-card-apellido{font-size:8.8px;font-weight:800;color:#9ca3af;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
#admin-grid .alumno-card .alumno-card-identity,
#admin-grid .alumno-card .alumno-card-mote,
#admin-grid .alumno-card .alumno-card-apellido{pointer-events:none;}


/* V72 · Archivados / borrado total */
.quick-action-btn.archivo{border-color:rgba(148,163,184,.35);color:#cbd5e1;background:rgba(148,163,184,.08)}
.quick-action-btn.peligro{border-color:rgba(239,68,68,.38);color:#ef4444;background:rgba(239,68,68,.08)}
.quick-action-btn.harbiz{border-color:rgba(99,210,255,.45)!important;color:#7dd3fc!important;background:rgba(56,189,248,.1)!important}
.quick-action-btn.harbiz.sin-url{opacity:.45;border-style:dashed}
.quick-action-btn.excel-plan{border-color:rgba(34,197,94,.45)!important;color:#86efac!important;background:rgba(34,197,94,.1)!important}
.quick-action-btn.looms-plan{border-color:rgba(168,85,247,.45)!important;color:#d8b4fe!important;background:rgba(168,85,247,.1)!important}
/* V221: la fila de acciones del alumno (showQuickAlumno) puede estar dentro de un
   panel que ya tiene su propio z-index alto; este modal debe ganar siempre. */
#modal-looms-planificacion{z-index:210}
#modal-stat-detail{z-index:210}
.admin-archived-panel{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.archived-row{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(255,255,255,.04)}
.archived-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#111;border:2px solid rgba(255,217,0,.35);overflow:hidden;font-weight:900;color:var(--yellow)}
.archived-avatar img{width:100%;height:100%;object-fit:cover}
.archived-main{min-width:0;display:flex;flex-direction:column;gap:3px}.archived-main strong{color:var(--white);font-size:14px}.archived-main span{color:var(--gray);font-size:12px}.archived-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.archived-actions .quick-action-btn{padding:9px 10px;min-height:auto}
@media(max-width:720px){.archived-row{grid-template-columns:44px 1fr}.archived-actions{grid-column:1/-1;justify-content:stretch}.archived-actions .quick-action-btn{flex:1}}


/* V74 — alumno seleccionado + perfil editable + archivados visible */
#admin-panel-mapa .alumno-card.selected-admin-card{
  border-color:#FFD900 !important;
  box-shadow:0 0 0 2px rgba(255,217,0,.72),0 0 24px rgba(255,217,0,.38) !important;
  background:linear-gradient(180deg,rgba(255,217,0,.13),rgba(21,21,21,.96)) !important;
  animation:saSelectedPulse 1.05s ease-in-out infinite;
}
#admin-panel-mapa .alumno-card.selected-admin-card .alumno-card-name,
#admin-panel-mapa .alumno-card.selected-admin-card .alumno-card-mote{
  color:#FFD900 !important;
  text-shadow:0 0 10px rgba(255,217,0,.45);
}
@keyframes saSelectedPulse{
  0%,100%{transform:translateY(-2px);filter:brightness(1)}
  50%{transform:translateY(-4px);filter:brightness(1.22)}
}
.profile-edit-card{background:var(--dark2);border:1px solid rgba(255,217,0,.20);border-radius:18px;padding:16px;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.profile-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.profile-edit-grid .modal-field.full{grid-column:1/-1}
.profile-edit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.profile-edit-actions button{flex:1;min-width:160px;border-radius:12px;padding:12px;font-weight:950;text-transform:uppercase;letter-spacing:.7px}
.profile-save-btn{background:var(--orange);color:#1a1a1a;border:1px solid var(--orange)}
.profile-open-state-btn{background:var(--dark3);color:var(--white2);border:1px solid var(--border)}
@media(max-width:720px){.profile-edit-grid{grid-template-columns:1fr}}
.admin-tab-btn[data-admin-tab="archivados"]{border:1px solid rgba(255,217,0,.22)}


/* V75 — alerta visual de cumpleaños en tarjetas y panel rápido */
#admin-panel-mapa .alumno-card.birthday-alert-card{
  position:relative;
  border-color:#38bdf8 !important;
  box-shadow:0 0 0 2px rgba(56,189,248,.55),0 0 24px rgba(56,189,248,.32) !important;
  animation:saBirthdayPulse 1s ease-in-out infinite;
}
#admin-panel-mapa .alumno-card.birthday-alert-today{
  border-color:#ef4444 !important;
  box-shadow:0 0 0 2px rgba(239,68,68,.72),0 0 30px rgba(239,68,68,.42) !important;
  animation:saBirthdayTodayPulse .82s ease-in-out infinite;
}
#admin-panel-mapa .alumno-card.birthday-alert-card .alumno-card-name::after{
  content:' 🎂';
  display:inline-block;
  animation:saCakeBounce .75s ease-in-out infinite;
}
.birthday-alert-line{
  margin-top:8px;
  padding:7px 9px;
  border-radius:12px;
  text-align:center;
  font-weight:1000;
  font-size:11px;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.birthday-alert-line.soon{background:rgba(56,189,248,.14);border:1px solid rgba(56,189,248,.55);color:#7dd3fc}
.birthday-alert-line.today{background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.65);color:#fecaca}
.quick-birthday-alert{
  margin:12px 0;
  padding:11px 13px;
  border-radius:15px;
  font-weight:1000;
  text-align:center;
  letter-spacing:.6px;
  text-transform:uppercase;
  animation:saBirthdayPulse 1s ease-in-out infinite;
}
.quick-birthday-alert.soon{background:rgba(56,189,248,.14);border:1px solid rgba(56,189,248,.5);color:#7dd3fc}
.quick-birthday-alert.today{background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.65);color:#fecaca;animation:saBirthdayTodayPulse .82s ease-in-out infinite}
@keyframes saBirthdayPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.28)}}
@keyframes saBirthdayTodayPulse{0%,100%{filter:brightness(1);transform:translateY(-1px)}50%{filter:brightness(1.35);transform:translateY(-4px)}}
@keyframes saCakeBounce{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-3px) rotate(-8deg)}}


/* V76 — Backups / Snapshots */
.backup-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:14px 0}.backup-card{background:linear-gradient(180deg,#151515,#0d0d0d);border:1px solid rgba(255,209,0,.22);border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}.backup-card-main{border-color:rgba(255,209,0,.55)}.backup-title{font-weight:900;color:#ffd100;font-size:16px;margin-bottom:6px}.backup-sub{color:#d7d7d7;font-size:12px;line-height:1.45;margin-bottom:12px}.backup-btn,.backup-quick-panel button{border:0;border-radius:999px;background:#222;color:#fff;font-weight:900;padding:11px 14px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:.15s}.backup-btn:hover,.backup-quick-panel button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,209,0,.38)}.backup-btn.primary{background:#ffd100;color:#080808}.backup-btn.danger{background:#451313;color:#fff;border:1px solid rgba(255,80,80,.4)}.backup-btn.full{width:100%;margin-top:14px}.backup-quick-panel{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 14px}.backup-note,.backup-status{font-size:12px;color:#bbb;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}.backup-status:empty{display:none}.backup-modal-card{width:min(920px,94vw);max-height:86vh;overflow:auto;background:#101010;color:#fff;border:1px solid rgba(255,209,0,.35);border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.7)}.backup-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px;border-bottom:1px solid rgba(255,255,255,.08)}.backup-modal-title{font-size:20px;font-weight:1000;color:#ffd100}.backup-modal-sub{font-size:12px;color:#bbb;margin-top:3px}.backup-modal-body{padding:18px}.snapshot-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.snapshot-tools input{flex:1;min-width:220px;background:#080808;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:11px 14px}.snapshot-tools button{border:0;border-radius:999px;background:#252525;color:#fff;font-weight:800;padding:10px 12px}.snapshot-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.snapshot-section-title{color:#ffd100;font-weight:900;margin-bottom:8px}.snapshot-list{background:#080808;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px;max-height:320px;overflow:auto}.snapshot-list label,.import-mode-box label{display:flex;gap:8px;align-items:center;padding:8px;border-radius:10px;color:#eee;font-size:13px}.snapshot-list label:hover,.import-mode-box label:hover{background:rgba(255,209,0,.08)}.import-summary{background:#080808;border:1px solid rgba(255,209,0,.18);border-radius:16px;padding:14px;color:#eee;font-size:13px;line-height:1.6}.import-summary b{color:#ffd100}.import-mode-box{margin-top:12px;background:#0a0a0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px}.import-errors{margin-top:12px;color:#ffb3b3;font-size:12px;white-space:pre-wrap}@media(max-width:720px){.snapshot-grid{grid-template-columns:1fr}.backup-panel{grid-template-columns:1fr}}

/* V77 — panel profesional de alertas y navegación limpia */
.alert-time-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.alert-time-btn{border:1px solid rgba(255,217,0,.22);background:#151515;color:#eee;border-radius:999px;padding:10px 14px;font-weight:950;cursor:pointer}.alert-time-btn.active{background:#ffd900;color:#111;border-color:#ffd900;box-shadow:0 0 18px rgba(255,217,0,.22)}.admin-alert-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0 14px}.alert-summary-card{background:linear-gradient(180deg,#171717,#0d0d0d);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px}.alert-summary-card strong{display:block;font-size:24px;color:#ffd900}.alert-summary-card span{font-size:11px;color:#aaa;text-transform:uppercase;font-weight:900;letter-spacing:.5px}.alert-day-section{margin:14px 0;background:#0d0d0d;border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden}.alert-day-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;background:#151515;border-bottom:1px solid rgba(255,255,255,.07);font-weight:1000;color:#ffd900;text-transform:uppercase;letter-spacing:.6px}.alert-day-title em{font-style:normal;color:#aaa;font-size:12px}.alert-item{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.alert-item:last-child{border-bottom:0}.alert-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#1f1f1f;font-size:18px}.alert-main strong{display:block;color:#fff;font-size:14px}.alert-main span{display:block;color:#bbb;font-size:12px;margin-top:2px}.alert-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.alert-actions button{border:0;border-radius:999px;padding:8px 10px;background:#252525;color:#eee;font-weight:900;cursor:pointer}.alert-actions button:hover{background:#ffd900;color:#111}.alert-item.danger{background:rgba(239,68,68,.07)}.alert-item.warn{background:rgba(255,217,0,.06)}.alert-item.info{background:rgba(56,189,248,.06)}.alert-item.good{background:rgba(34,197,94,.06)}.alert-priority{font-size:10px;font-weight:1000;text-transform:uppercase;letter-spacing:.5px;padding:5px 7px;border-radius:999px}.alert-priority.danger{background:rgba(239,68,68,.18);color:#fecaca}.alert-priority.warn{background:rgba(255,217,0,.16);color:#ffd900}.alert-priority.info{background:rgba(56,189,248,.16);color:#7dd3fc}.alert-empty{padding:18px;color:#aaa;text-align:center}.admin-smart-tips{margin:12px 0;padding:12px 14px;border-radius:16px;background:rgba(255,217,0,.07);border:1px solid rgba(255,217,0,.2);color:#ddd;font-size:12px;line-height:1.45}.admin-smart-tips strong{color:#ffd900}.admin-tab-btn[data-admin-tab="enlaces"]{order:-2}.admin-tab-btn[data-admin-tab="mapa"]{order:-1}
@media(max-width:720px){.alert-item{grid-template-columns:32px 1fr}.alert-actions{grid-column:1/-1;justify-content:flex-start}}

/* V78 · Street Animal admin visual polish */
.admin-tabs{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;background:rgba(17,17,17,.92);backdrop-filter:blur(12px);border-color:rgba(255,217,0,.16);box-shadow:0 14px 40px rgba(0,0,0,.34)}
.admin-tab-btn{border:1px solid transparent;background:rgba(255,255,255,.03)}.admin-tab-btn.active{background:linear-gradient(135deg,#FFD900,#f7c600);border-color:rgba(255,255,255,.18)}
.admin-dashboard-head{border-radius:22px;background:radial-gradient(circle at top left,rgba(255,217,0,.22),transparent 44%),linear-gradient(135deg,rgba(25,25,25,.98),rgba(10,10,10,.98));box-shadow:0 18px 42px rgba(0,0,0,.32)}
.v78-alert-dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 16px}.v78-alert-card{padding:16px;border-radius:20px;border:1px solid var(--border);background:var(--dark2);text-align:left;box-shadow:0 12px 28px rgba(0,0,0,.25);transition:.18s}.v78-alert-card span{display:block;font-size:12px;font-weight:900;letter-spacing:1px;color:var(--white2)}.v78-alert-card strong{display:block;font-family:'Bebas Neue',sans-serif;font-size:42px;line-height:1;margin-top:8px}.v78-alert-card em{font-size:12px;color:var(--gray);font-style:normal}.v78-alert-card.danger{border-color:rgba(239,68,68,.42)}.v78-alert-card.danger strong{color:#ef4444}.v78-alert-card.blue{border-color:rgba(59,130,246,.42)}.v78-alert-card.blue strong{color:#60a5fa}.v78-alert-card.warn{border-color:rgba(255,217,0,.42)}.v78-alert-card.warn strong{color:#FFD900}.v78-alert-card.active{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,217,0,.28),0 18px 44px rgba(0,0,0,.38)}
.v78-alert-row{grid-template-columns:54px 1fr auto;border-radius:18px}.v78-alert-row.danger{border-color:rgba(239,68,68,.42);background:linear-gradient(90deg,rgba(239,68,68,.12),rgba(17,17,17,.94))}.v78-alert-row.blue{border-color:rgba(59,130,246,.42);background:linear-gradient(90deg,rgba(59,130,246,.12),rgba(17,17,17,.94))}.v78-alert-row.good{border-color:rgba(34,197,94,.42);background:linear-gradient(90deg,rgba(34,197,94,.12),rgba(17,17,17,.94))}.v78-alert-row button{padding:9px 13px;border-radius:999px;background:var(--orange);color:#111;font-weight:900}.v78-chipline{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.v78-chipline span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;color:#111;background:#FFD900;border-radius:999px;padding:4px 7px}
.selected-admin-card{border-color:#FFD900!important;box-shadow:0 0 0 2px rgba(255,217,0,.28),0 0 28px rgba(255,217,0,.30)!important;animation:v78SelectedPulse 1.05s infinite}.selected-admin-card:after{content:'SELECCIONADO';position:absolute;top:8px;left:8px;font-size:9px;font-weight:900;letter-spacing:.8px;color:#111;background:#FFD900;border-radius:999px;padding:4px 7px}@keyframes v78SelectedPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}.v78-selected-panel{border-color:rgba(255,217,0,.45)!important;box-shadow:0 18px 40px rgba(255,217,0,.10)}.v78-panel-ribbon{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;padding:7px 11px;border-radius:999px;background:#FFD900;color:#111;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}
.v78-kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px}.v78-kanban-col{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;min-height:220px}.v78-col-head{padding:14px;background:linear-gradient(135deg,rgba(255,217,0,.12),rgba(255,255,255,.02));border-bottom:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:1fr auto;gap:4px}.v78-col-head strong{font-size:13px;text-transform:uppercase;letter-spacing:1px}.v78-col-head span{background:#FFD900;color:#111;font-weight:900;border-radius:999px;padding:3px 8px;font-size:11px}.v78-col-head em{grid-column:1/-1;color:var(--gray);font-style:normal;font-size:11px}.v78-col-body{display:flex;flex-direction:column;gap:8px;padding:10px}.v78-objective-student{text-align:left;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(0,0,0,.24);padding:11px;transition:.16s}.v78-objective-student:hover{border-color:rgba(255,217,0,.35);transform:translateY(-1px)}.v78-obj-name{display:block;color:var(--white);font-weight:900}.v78-obj-name em{color:#FFD900;font-style:normal}.v78-obj-metrics{display:block;margin-top:5px;color:var(--white2);font-size:11px}.v78-obj-metrics b{color:#FFD900}
.v78-reward-hints{background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(17,17,17,.96));border:1px solid rgba(34,197,94,.24);border-radius:20px;padding:14px;margin:0 0 16px}.v78-reward-title{font-size:13px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:#86efac;margin-bottom:10px}.v78-reward-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v78-reward-grid button{text-align:left;border:1px solid rgba(34,197,94,.22);border-radius:16px;background:rgba(0,0,0,.24);padding:12px}.v78-reward-grid strong{display:block;color:#fff}.v78-reward-grid span{display:block;color:#cbd5e1;font-size:11px;margin-top:4px}.v78-reward-grid em{display:inline-block;margin-top:8px;color:#111;background:#86efac;border-radius:999px;padding:4px 7px;font-size:10px;font-style:normal;font-weight:900}.archived-admin-card{opacity:.92;border-style:dashed!important}.archive-stamp{position:absolute;top:8px;right:8px;background:#64748b;color:#fff;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}.archive-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.archive-actions button{font-size:10px;padding:7px 9px}
@media(max-width:900px){.admin-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.v78-alert-dashboard,.v78-kanban,.v78-reward-grid{grid-template-columns:1fr}.v78-alert-row{grid-template-columns:44px 1fr}}



/* V80 — Rediseño operativo PRO: menos saturación, chips tácticos, prioridades y pausa hasta */
#admin-panel-mapa .alumno-card{
  min-height:238px !important;
  padding:14px 10px 12px !important;
  gap:7px !important;
  background:linear-gradient(180deg,rgba(31,31,31,.98),rgba(11,11,11,.98)) !important;
  border-color:rgba(255,255,255,.09) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 10px 24px rgba(0,0,0,.28) !important;
}
#admin-panel-mapa .alumno-card:hover{transform:translateY(-3px);border-color:rgba(255,217,0,.24) !important;}
#admin-panel-mapa .alumno-card.attention-max{border-color:rgba(239,68,68,.58)!important;box-shadow:0 0 0 1px rgba(239,68,68,.24),0 14px 32px rgba(239,68,68,.10)!important;}
#admin-panel-mapa .alumno-card.attention-high{border-color:rgba(249,115,22,.45)!important;box-shadow:0 0 0 1px rgba(249,115,22,.18),0 14px 30px rgba(249,115,22,.08)!important;}
#admin-panel-mapa .alumno-card.attention-medium{border-color:rgba(255,217,0,.34)!important;}
#admin-panel-mapa .alumno-card.attention-low{border-color:rgba(255,255,255,.08)!important;}
#admin-panel-mapa .alumno-card.selected-admin-card{
  transform:scale(1.025);
  border-color:#FFD900!important;
  box-shadow:0 0 0 2px rgba(255,217,0,.42),0 0 34px rgba(255,217,0,.34),0 18px 42px rgba(0,0,0,.45)!important;
  animation:v80SelectedBreath 1.45s ease-in-out infinite;
}
@keyframes v80SelectedBreath{0%,100%{filter:brightness(1);transform:scale(1.018)}50%{filter:brightness(1.18);transform:scale(1.035)}}
#admin-panel-mapa .alumno-card-avatar{width:70px!important;height:70px!important;margin-top:9px!important;}
#admin-panel-mapa .alumno-card-name{font-size:15px!important;letter-spacing:.5px!important;line-height:.95!important;}
#admin-panel-mapa .alumno-card-mote{font-size:10px!important;color:#FFD900!important;max-width:96%!important;}
#admin-panel-mapa .alumno-card-apellido{font-size:9px!important;color:#a1a1aa!important;}
#admin-panel-mapa .alumno-op-label{margin-top:2px!important;padding:5px 10px!important;border-radius:999px!important;background:rgba(255,255,255,.075)!important;border:1px solid rgba(255,255,255,.08)!important;font-size:10px!important;font-weight:1000!important;letter-spacing:.55px!important;text-transform:uppercase!important;color:#e5e7eb!important;}
#admin-panel-mapa .alumno-op-label.llamada,#admin-panel-mapa .alumno-op-label.whatsapp,#admin-panel-mapa .alumno-op-label.no_atiende{background:rgba(239,68,68,.16)!important;border-color:rgba(239,68,68,.35)!important;color:#fecaca!important;}
#admin-panel-mapa .alumno-op-label.actualizar,#admin-panel-mapa .alumno-op-label.lesionado{background:rgba(249,115,22,.13)!important;border-color:rgba(249,115,22,.32)!important;color:#fed7aa!important;}
#admin-panel-mapa .alumno-op-label.pausa{background:rgba(148,163,184,.13)!important;border-color:rgba(148,163,184,.28)!important;color:#cbd5e1!important;}
#admin-panel-mapa .alumno-chiprow{gap:5px!important;margin:3px 0 0!important;justify-content:center!important;}
#admin-panel-mapa .alumno-chip,#admin-panel-mapa .alumno-request-pill{height:22px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:999px!important;padding:0 8px!important;font-size:9.5px!important;font-weight:1000!important;letter-spacing:.25px!important;background:rgba(255,255,255,.07)!important;color:#e5e7eb!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:none!important;}
#admin-panel-mapa .alumno-chip.obj.low,#admin-panel-mapa .alumno-request-pill{background:rgba(255,217,0,.13)!important;color:#FFD900!important;border-color:rgba(255,217,0,.32)!important;}
#admin-panel-mapa .alumno-chip.month.hot{background:rgba(34,197,94,.12)!important;color:#86efac!important;border-color:rgba(34,197,94,.28)!important;}
#admin-panel-mapa .alumno-chip.vida{background:rgba(59,130,246,.10)!important;color:#bfdbfe!important;border-color:rgba(59,130,246,.22)!important;}
#admin-panel-mapa .alumno-card-meta{min-height:auto!important;font-size:9.5px!important;color:#a1a1aa!important;margin-top:1px!important;}
#admin-panel-mapa .alumno-date-stack{display:flex!important;flex-direction:column!important;gap:3px!important;width:100%!important;margin-top:2px!important;}
#admin-panel-mapa .alumno-date-line{width:100%!important;text-align:center!important;font-size:9.5px!important;font-weight:950!important;letter-spacing:.25px!important;border-radius:9px!important;padding:3px 5px!important;background:rgba(255,255,255,.045)!important;color:#d4d4d8!important;border:1px solid rgba(255,255,255,.06)!important;}
#admin-panel-mapa .alumno-date-line.danger{background:rgba(239,68,68,.13)!important;color:#fecaca!important;border-color:rgba(239,68,68,.30)!important;}
#admin-panel-mapa .alumno-date-line.warn{background:rgba(249,115,22,.12)!important;color:#fed7aa!important;border-color:rgba(249,115,22,.28)!important;}
#admin-panel-mapa .alumno-date-line.pause{background:rgba(148,163,184,.12)!important;color:#e2e8f0!important;border-color:rgba(148,163,184,.24)!important;}
.sa-smart-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;width:100%;min-height:18px;margin-top:1px;}
.sa-smart-badges span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:999px;padding:3px 7px;font-size:8.5px;font-weight:1000;letter-spacing:.3px;text-transform:uppercase;background:rgba(255,217,0,.12);border:1px solid rgba(255,217,0,.22);color:#ffe766;}
#admin-panel-mapa .alumno-alert-line{font-size:9px!important;margin-top:1px!important;padding:4px 7px!important;border-radius:999px!important;}
.quick-head.v80{position:relative;padding-top:34px;}
.v80-attention{position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:1000;text-transform:uppercase;letter-spacing:.7px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#e5e7eb;}
.v80-attention.max{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.34);color:#fecaca;}
.v80-attention.high{background:rgba(249,115,22,.15);border-color:rgba(249,115,22,.32);color:#fed7aa;}
.v80-attention.medium{background:rgba(255,217,0,.13);border-color:rgba(255,217,0,.30);color:#FFD900;}
.v80-attention.low{background:rgba(34,197,94,.11);border-color:rgba(34,197,94,.24);color:#86efac;}
.quick-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important;}
.quick-stat{border-radius:16px!important;background:rgba(255,255,255,.045)!important;border:1px solid rgba(255,255,255,.075)!important;}
.quick-stat strong{font-size:20px!important;}
@media(max-width:900px){#admin-panel-mapa .alumno-card{min-height:226px!important}.quick-head.v80{padding-top:42px}}

/* V81 — Limpieza visual: sin duplicados y estados operativos con color clásico */
#admin-panel-mapa .sa-smart-badges span:empty{display:none!important;}

/* Estado visible como antes: activo verde, pausa azul, actualizar/lesionado rojo, apático amarillo, crítico morado/rojo */
#admin-panel-mapa .alumno-op-label{
  box-shadow:none!important;
}
#admin-panel-mapa .alumno-op-label.activo{
  background:rgba(34,197,94,.13)!important;
  border-color:rgba(34,197,94,.34)!important;
  color:#86efac!important;
}
#admin-panel-mapa .alumno-op-label.pausa{
  background:rgba(59,130,246,.16)!important;
  border-color:rgba(59,130,246,.38)!important;
  color:#bfdbfe!important;
}
#admin-panel-mapa .alumno-op-label.actualizar,
#admin-panel-mapa .alumno-op-label.lesionado{
  background:rgba(239,68,68,.16)!important;
  border-color:rgba(239,68,68,.42)!important;
  color:#fecaca!important;
}
#admin-panel-mapa .alumno-op-label.apatico{
  background:rgba(255,217,0,.16)!important;
  border-color:rgba(255,217,0,.38)!important;
  color:#FFD900!important;
}
#admin-panel-mapa .alumno-op-label.llamada,
#admin-panel-mapa .alumno-op-label.whatsapp,
#admin-panel-mapa .alumno-op-label.no_atiende{
  background:linear-gradient(135deg,rgba(239,68,68,.22),rgba(168,85,247,.16))!important;
  border-color:rgba(239,68,68,.46)!important;
  color:#fecaca!important;
}
#admin-panel-mapa .alumno-op-label.nuevo{
  background:rgba(34,197,94,.13)!important;
  border-color:rgba(34,197,94,.30)!important;
  color:#bbf7d0!important;
}

#admin-panel-mapa .op-badge.pausa{background:#3b82f6!important;color:#fff!important;}
#admin-panel-mapa .op-badge.actualizar,#admin-panel-mapa .op-badge.lesionado{background:#ef4444!important;color:#fff!important;}
#admin-panel-mapa .op-badge.apatico{background:#FFD900!important;color:#111!important;}
#admin-panel-mapa .op-badge.llamada,#admin-panel-mapa .op-badge.whatsapp,#admin-panel-mapa .op-badge.no_atiende{background:linear-gradient(135deg,#ef4444,#7c3aed)!important;color:#fff!important;}

/* Mantener barras grandes de rutina/renovación como fuente única */
#admin-panel-mapa .alumno-date-stack{margin-top:4px!important;}
#admin-panel-mapa .sa-smart-badges{margin-top:4px!important;}

/* V82 · Panel seleccionado limpio: sin cinta redundante ni atención alta */
.quick-head.v82{display:flex!important;align-items:center!important;gap:14px!important;margin-bottom:14px!important;padding-top:0!important;}
.quick-head.v82 .quick-main{min-width:0;flex:1;}
.quick-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.quick-title-row .quick-title{font-size:18px!important;line-height:1.05!important;font-weight:1000!important;}
.quick-state-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:1000;text-transform:uppercase;letter-spacing:.65px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);color:#e5e7eb;white-space:nowrap;}
.quick-state-pill.activo{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.32);color:#86efac;}
.quick-state-pill.pausa{background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.38);color:#bfdbfe;}
.quick-state-pill.actualizar,.quick-state-pill.lesionado{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.38);color:#fecaca;}
.quick-state-pill.apatico{background:rgba(255,217,0,.14);border-color:rgba(255,217,0,.36);color:#FFD900;}
.quick-state-pill.llamada,.quick-state-pill.whatsapp,.quick-state-pill.no_atiende{background:linear-gradient(135deg,rgba(239,68,68,.24),rgba(124,58,237,.20));border-color:rgba(239,68,68,.42);color:#fff;}
.quick-state-pill.nuevo{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.28);color:#bbf7d0;}
.v80-attention{display:none!important;}
.v78-selected-panel .v78-panel-ribbon:not(:first-child){display:none!important;}
@media(max-width:700px){.quick-title-row{align-items:flex-start;flex-direction:column;gap:6px}.quick-title-row .quick-title{font-size:16px!important}}


/* V83 — Estado operativo limpio: sin punto de prioridad mezclado */
#admin-panel-mapa .alumno-op-label{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}
#admin-panel-mapa .alumno-card[data-estado="pausa"]{
  border-color:rgba(59,130,246,.30)!important;
}
#admin-panel-mapa .alumno-card[data-estado="activo"].attention-high .alumno-op-label.activo,
#admin-panel-mapa .alumno-card[data-estado="activo"].attention-medium .alumno-op-label.activo{
  background:rgba(34,197,94,.13)!important;
  border-color:rgba(34,197,94,.34)!important;
  color:#86efac!important;
}


/* V86 — mejoras enlaces rápidos y modal operativo */
.links-category.favoritos{border-color:rgba(255,217,0,.38);background:linear-gradient(135deg,rgba(255,217,0,.09),rgba(255,255,255,.025));box-shadow:0 0 0 1px rgba(255,217,0,.08),0 18px 50px rgba(0,0,0,.25)}
.links-cat-help{margin-left:auto;color:var(--gray);font-size:10px;letter-spacing:.8px;text-transform:none;font-weight:800}
.btn-fav-link{position:absolute;right:74px;top:50%;transform:translateY(-50%) scale(.96);width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#777;font-size:13px;display:flex;align-items:center;justify-content:center;z-index:2;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s,color .16s,background .16s,border-color .16s}
.quick-link-card:hover .btn-fav-link,.quick-link-card:focus-within .btn-fav-link,.btn-fav-link.on{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}
.btn-fav-link.on{color:#FFD900;background:rgba(255,217,0,.18);border-color:rgba(255,217,0,.42);box-shadow:0 0 18px rgba(255,217,0,.18)}
.quick-link-card.editable-link{padding-right:82px}
.modal-check.favorite-check{display:flex;align-items:center;gap:10px;margin-top:2px;padding:11px 12px;border:1px solid rgba(255,217,0,.18);border-radius:12px;background:rgba(255,217,0,.06);color:#FFD900;font-size:12px;font-weight:900;letter-spacing:.6px;text-transform:uppercase}
.modal-check.favorite-check input{accent-color:#FFD900}
#modal-alumno-operativo .modal-field label{color:#FFD900;font-weight:1000;text-shadow:0 0 10px rgba(255,217,0,.18)}
@media(max-width:680px){.links-cat-help{display:none}.btn-fav-link{opacity:1;pointer-events:auto}}

/* === V87 FIX BUSCADOR ADMIN === */
.adm-search-icon{pointer-events:auto!important;cursor:text!important}
.adm-search input{position:relative;z-index:2}
.adm-search{cursor:text}


/* === V88 BUSCADOR ADMIN VISIBLE Y FUNCIONAL === */
.adm-search{position:relative!important;display:block!important;}
.adm-search-icon{display:flex!important;align-items:center!important;justify-content:center!important;position:absolute!important;left:14px!important;top:50%!important;transform:translateY(-50%)!important;z-index:5!important;opacity:1!important;color:#ffd400!important;font-size:15px!important;line-height:1!important;pointer-events:auto!important;}
.adm-search input{padding-left:42px!important;border-color:#ffd400!important;caret-color:#ffd400!important;}
.adm-search input:focus{border-color:#ffd400!important;box-shadow:0 0 0 2px rgba(255,212,0,.18)!important;}
#admin-grid .alumno-card[data-hidden="true"]{display:none!important;}

/* V90 — Expediente operativo multioperador */
.expediente-toolbar-pro{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.expediente-operator-label{display:inline-flex!important;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,217,0,.22);border-radius:999px;background:rgba(255,217,0,.08);color:var(--yellow)!important;font-size:11px!important;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.expediente-operator-label select{background:#151515;color:#fff;border:1px solid rgba(255,217,0,.32);border-radius:999px;padding:6px 10px;font-weight:900;outline:none}
.expediente-key-section{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#151515 0%,rgba(21,21,21,.94) 100%);border:1px solid rgba(255,217,0,.25);border-radius:18px;padding:12px;margin-bottom:12px;box-shadow:0 0 24px rgba(255,217,0,.08)}
.expediente-group-title{font-weight:1000;letter-spacing:.09em;text-transform:uppercase;color:#fff;margin:2px 0 10px;font-size:13px}
.expediente-group-title.fixed{color:var(--yellow);text-shadow:0 0 10px rgba(255,217,0,.25)}
.expediente-key-empty{padding:14px;border:1px dashed rgba(255,217,0,.25);border-radius:14px;color:rgba(255,255,255,.62);font-weight:800}
.expediente-group{border:1px solid rgba(255,255,255,.10);border-radius:18px;margin:12px 0;background:rgba(255,255,255,.025);overflow:hidden}
.expediente-group>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:1000;color:#fff;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.035)}
.expediente-group>summary::-webkit-details-marker{display:none}
.expediente-group>summary b{background:rgba(255,217,0,.12);border:1px solid rgba(255,217,0,.22);color:var(--yellow);border-radius:999px;padding:4px 9px;font-size:11px}
.expediente-group .expediente-timeline{padding:10px}
.expediente-meta{display:flex!important;gap:8px!important;flex-wrap:wrap!important;align-items:center!important;color:rgba(255,255,255,.66)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.03em!important}
.expediente-meta span{padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.expediente-actions button{border-radius:999px!important}


/* V93 — Iconos operativos más legibles */
#admin-panel-mapa .op-badge{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  border-radius:50%!important;
  font-family:Arial, Helvetica, sans-serif!important;
  font-weight:1000!important;
  line-height:1!important;
  text-shadow:none!important;
  letter-spacing:0!important;
}
#admin-panel-mapa .op-badge.llamada{background:linear-gradient(135deg,#dc2626,#7c2d12)!important;color:#fff!important;border-color:rgba(255,255,255,.32)!important;font-size:20px!important;}
#admin-panel-mapa .op-badge.whatsapp{background:linear-gradient(135deg,#16a34a,#065f46)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;font-size:10px!important;}
#admin-panel-mapa .op-badge.no_atiende{background:linear-gradient(135deg,#991b1b,#111827)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;font-size:10px!important;}
#admin-panel-mapa .op-badge.apatico{background:#FFD900!important;color:#111!important;border:2px solid rgba(0,0,0,.22)!important;font-size:22px!important;}
#admin-panel-mapa .op-badge.actualizar{background:#ef4444!important;color:#fff!important;font-size:21px!important;}
#admin-panel-mapa .op-badge.lesionado{background:#ef4444!important;color:#fff!important;font-size:22px!important;}
#admin-panel-mapa .op-badge.pausa{background:#3b82f6!important;color:#fff!important;font-size:18px!important;}
#admin-panel-mapa .op-badge.nuevo{background:#22c55e!important;color:#07160b!important;font-size:15px!important;}
.quick-state-pill{font-family:Arial, Helvetica, sans-serif!important;}
.quick-state-pill.llamada,.quick-state-pill.whatsapp,.quick-state-pill.no_atiende{font-weight:1000!important;}


/* V94 — Estado Standby operativo */
#admin-panel-mapa .op-badge.standby,.op-badge.standby{background:linear-gradient(135deg,#334155,#0f172a)!important;color:#e2e8f0!important;border-color:rgba(226,232,240,.28)!important;font-size:10px!important;letter-spacing:.4px!important;}
#admin-panel-mapa .alumno-op-label.standby,.alumno-op-label.standby{background:rgba(100,116,139,.15)!important;border-color:rgba(148,163,184,.32)!important;color:#cbd5e1!important;}
.quick-state-pill.standby{background:rgba(100,116,139,.18);border-color:rgba(148,163,184,.38);color:#e2e8f0;}
.alumno-date-line.standby{background:rgba(100,116,139,.16)!important;border-color:rgba(148,163,184,.30)!important;color:#e2e8f0!important;}
#modal-alumno-operativo .modal-field.standby-hidden{display:none!important;}
.operativo-standby-help{border-color:rgba(148,163,184,.28)!important;background:rgba(100,116,139,.12)!important;color:#e2e8f0!important;margin-bottom:10px;}

/* V95 — bloque expediente rápido dentro de estado operativo */
.operativo-expediente-block{margin-top:14px;padding:14px;border:1px solid rgba(255,217,0,.22);border-radius:18px;background:rgba(255,217,0,.035)}
.operativo-expediente-block .modal-field label{color:#FFD900!important}
#modal-operativo-exp-help{margin-bottom:12px}


/* === V98 · MODO MÓVIL TÁCTICO ===
   Mejora de uso en móvil sin cambiar lógica ni Firebase:
   navegación tipo dock, filtros deslizables, buscador sticky,
   cards compactas táctiles y ficha rápida como bottom sheet. */
.mobile-quick-close{display:none}
@media (max-width:720px){
  html,body{overflow-x:hidden;}
  #screen-admin{padding-bottom:86px;}
  .adm-header{
    position:sticky;top:0;z-index:80;
    min-height:54px;padding:10px 12px;
    background:rgba(12,12,12,.96);backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(255,217,0,.16);
  }
  .adm-logo{font-size:20px;letter-spacing:1.4px;white-space:nowrap;}
  .adm-tag{font-size:10px;margin-left:5px;}
  .adm-version{font-size:9px;padding:1px 6px;margin-left:4px;}
  .adm-actions{gap:7px}.btn-icon{width:38px;height:38px;min-width:38px}
  .adm-content{padding:10px 10px 96px;}

  .admin-tabs{
    position:fixed!important;left:8px;right:8px;bottom:8px;z-index:120;
    display:flex;gap:6px;overflow-x:auto;white-space:nowrap;
    padding:7px;background:rgba(15,15,15,.96);backdrop-filter:blur(14px);
    border:1px solid rgba(255,217,0,.22);border-radius:18px;
    box-shadow:0 -12px 34px rgba(0,0,0,.55);
    scrollbar-width:none;
  }
  .admin-tabs::-webkit-scrollbar{display:none;}
  .admin-tab-btn{
    flex:0 0 auto;min-width:92px;padding:10px 12px!important;
    font-size:10px!important;border-radius:13px!important;letter-spacing:.7px;
  }
  .admin-tab-btn.active{box-shadow:0 0 0 1px rgba(255,217,0,.22),0 0 20px rgba(255,217,0,.18)}

  #admin-panel-mapa .adm-sec-header{gap:10px;align-items:flex-start;margin-bottom:10px;}
  #admin-panel-mapa .adm-sec-title{font-size:24px;line-height:1;}
  .admin-header-actions{width:100%;display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
  .admin-header-actions::-webkit-scrollbar{display:none;}
  .admin-header-actions .btn-add-alum{flex:0 0 auto;min-height:38px;padding:9px 12px;font-size:10px;border-radius:999px;}

  .admin-radar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 10px;}
  .radar-card{min-height:72px;padding:10px;border-radius:14px;}
  .radar-card span{font-size:9px;letter-spacing:1.6px}.radar-card strong{font-size:24px}.radar-card em{display:none;}

  .admin-filter-sections{gap:9px;margin:10px 0;}
  .filter-section{padding:0;border:0;background:transparent;}
  .filter-section>span{display:block;margin:0 0 6px 2px;color:var(--yellow);font-size:9px;letter-spacing:1.8px;}
  .admin-filterbar{display:flex;gap:7px;overflow-x:auto;white-space:nowrap;padding:0 0 4px;scrollbar-width:none;}
  .admin-filterbar::-webkit-scrollbar{display:none;}
  .admin-filter{flex:0 0 auto;min-height:36px;padding:9px 12px!important;border-radius:999px!important;font-size:9.5px!important;letter-spacing:.75px;}

  .admin-sort-row{position:sticky;top:56px;z-index:70;width:auto;margin:9px 0;padding:9px;border-radius:14px;background:rgba(18,18,18,.94);backdrop-filter:blur(10px);}
  .admin-sort-row label{font-size:9px;letter-spacing:1.6px;}
  .admin-sort-row select{width:100%;min-width:0;min-height:40px;font-size:12px;}

  .legend,.admin-map-help{display:none!important;}
  .adm-search{position:sticky;top:118px;z-index:68;margin:8px 0 10px;background:rgba(14,14,14,.96);backdrop-filter:blur(10px);border-radius:14px;}
  .adm-search input{min-height:46px;font-size:14px;padding-left:42px;}
  .adm-search-icon{left:14px;font-size:17px;opacity:1;}

  #admin-panel-mapa .alumnos-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  #admin-panel-mapa .alumno-card{
    min-height:178px!important;padding:9px 6px 8px!important;border-radius:16px!important;
    touch-action:manipulation;
  }
  #admin-panel-mapa .alumno-card-avatar{width:54px!important;height:54px!important;margin:5px auto 6px!important;font-size:16px!important;}
  #admin-panel-mapa .status-ring{inset:-5px!important;border-width:3px!important;}
  #admin-panel-mapa .op-badge{width:28px!important;height:28px!important;right:7px!important;top:7px!important;font-size:15px!important;}
  #admin-panel-mapa .foto-btn{width:20px!important;height:20px!important;left:7px!important;top:7px!important;opacity:.7!important;}
  #admin-panel-mapa .alumno-card-name{font-size:12px!important;line-height:1.05!important;margin:1px 0 3px!important;}
  #admin-panel-mapa .alumno-card-mote{font-size:8.5px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #admin-panel-mapa .alumno-card-apellido{font-size:8px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #admin-panel-mapa .alumno-op-label{font-size:8.5px!important;padding:3px 7px!important;margin-bottom:5px!important;}
  #admin-panel-mapa .alumno-chip{font-size:8px!important;min-height:18px!important;padding:3px 5px!important;}
  #admin-panel-mapa .alumno-date-stack{gap:2px!important;margin-top:0!important;}
  #admin-panel-mapa .alumno-date-line{font-size:7.5px!important;max-width:100%;}
  #admin-panel-mapa .alumno-alert-line{font-size:7.6px!important;line-height:1.15!important;}

  .admin-quick-panel-top.open{
    position:fixed!important;left:10px!important;right:10px!important;bottom:76px!important;top:auto!important;
    max-height:58vh;overflow:auto;z-index:150;margin:0!important;
    border-radius:22px!important;border:1px solid rgba(255,217,0,.38)!important;
    background:linear-gradient(180deg,rgba(28,28,28,.98),rgba(12,12,12,.98))!important;
    box-shadow:0 -18px 50px rgba(0,0,0,.68),0 0 0 999px rgba(0,0,0,.42)!important;
    padding:14px!important;
  }
  .mobile-quick-close{
    display:flex;position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:999px;
    align-items:center;justify-content:center;background:#2a2a2a;color:#fff;border:1px solid rgba(255,255,255,.12);
    font-size:22px;font-weight:900;z-index:2;
  }
  .quick-head{padding-right:38px;align-items:center;}
  .quick-title{font-size:16px!important;line-height:1.1;}
  .quick-sub{font-size:11px!important;line-height:1.25;}
  .quick-stats{grid-template-columns:repeat(2,1fr)!important;gap:7px!important;}
  .quick-stat{padding:10px 8px!important;border-radius:14px!important;}
  .quick-stat strong{font-size:22px!important;}
  .quick-actions,.quick-actions-v50{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .quick-actions button,.quick-action-btn{min-height:42px!important;border-radius:14px!important;font-size:11px!important;}
  body.mobile-quick-open{overflow:hidden;}
}
@media (max-width:380px){
  #admin-panel-mapa .alumnos-grid{grid-template-columns:1fr!important;}
  #admin-panel-mapa .alumno-card{min-height:160px!important;}
}

/* === V99 · FIX MÓVIL TÁCTICO LEGIBLE ===
   Sustituye el dock inferior de V98 por pestañas superiores compactas.
   Evita columnas gigantes, overlays oscuros y botones estirados en iPhone/Android. */
@media (max-width:720px){
  #screen-admin{padding-bottom:22px!important;}
  .adm-content{padding:10px 10px 22px!important;}
  .admin-tabs{
    position:sticky!important;
    top:56px!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    z-index:75!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:7px!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:8px 0 12px!important;
    padding:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    background:rgba(14,14,14,.96)!important;
    border:1px solid rgba(255,217,0,.22)!important;
    border-radius:18px!important;
    box-shadow:0 10px 26px rgba(0,0,0,.42)!important;
    transform:none!important;
    backdrop-filter:blur(12px)!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }
  .admin-tabs::-webkit-scrollbar{display:none!important;}
  .admin-tab-btn{
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:104px!important;
    max-width:150px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0 13px!important;
    border-radius:14px!important;
    font-size:10px!important;
    line-height:1!important;
    letter-spacing:.8px!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
    opacity:1!important;
  }
  .admin-tab-btn.active{
    background:#FFD900!important;
    color:#111!important;
    box-shadow:0 0 0 1px rgba(255,255,255,.12),0 0 16px rgba(255,217,0,.20)!important;
  }
  .admin-tab-btn .badge,
  .admin-tab-btn [class*="badge"]{
    position:static!important;
    margin-left:6px!important;
    transform:none!important;
  }
  .admin-sort-row{top:112px!important;}
  .adm-search{top:174px!important;}
}

@media (max-width:430px){
  .adm-logo{font-size:18px!important;}
  .adm-tag{font-size:9px!important;}
  .adm-version{display:none!important;}
  .admin-tab-btn{min-width:96px!important;height:40px!important;min-height:40px!important;max-height:40px!important;font-size:9.5px!important;}
  .admin-tabs{top:54px!important;border-radius:16px!important;}
  .admin-sort-row{top:108px!important;}
  .adm-search{top:168px!important;}
}

/* === V100 · FIX MÓVIL SIN SOLAPES ===
   Corrige los tres problemas detectados en móvil:
   1) pestañas montadas sobre títulos,
   2) botones de cabecera pisando textos,
   3) buscador sticky encima de tarjetas. */
@media (max-width:720px){
  .adm-header{
    position:sticky!important;
    top:0!important;
    z-index:90!important;
  }

  .admin-tabs{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    z-index:20!important;
    margin:14px 0 18px!important;
    transform:none!important;
    box-shadow:0 8px 22px rgba(0,0,0,.35)!important;
  }

  .adm-panel,
  .admin-panel,
  .tab-panel{
    position:relative!important;
    z-index:1!important;
    padding-top:0!important;
    margin-top:0!important;
  }

  .adm-sec-header{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:12px!important;
    margin:0 0 16px!important;
    padding:16px 14px!important;
    border-radius:22px!important;
  }
  .adm-sec-title{
    font-size:24px!important;
    line-height:1.05!important;
    margin:0!important;
    max-width:100%!important;
    word-break:normal!important;
  }
  .adm-sec-sub,
  .adm-sec-desc{
    font-size:13px!important;
    line-height:1.35!important;
    max-width:100%!important;
  }
  .admin-header-actions{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    align-items:center!important;
    gap:9px!important;
    overflow:visible!important;
    padding:0!important;
  }
  .admin-header-actions .btn-add-alum,
  .admin-header-actions button,
  .links-admin-actions button,
  .btn-add-link{
    flex:1 1 150px!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:42px!important;
    padding:10px 12px!important;
    white-space:nowrap!important;
    border-radius:999px!important;
  }

  .admin-sort-row{
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    margin:14px 0 14px!important;
  }
  .adm-search{
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    margin:14px 0 18px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .adm-search input{
    width:100%!important;
    min-height:50px!important;
    box-sizing:border-box!important;
    padding-left:46px!important;
  }
  .adm-search-icon{
    z-index:4!important;
    pointer-events:none!important;
  }

  #admin-panel-mapa .alumnos-grid{
    margin-top:6px!important;
    position:relative!important;
    z-index:1!important;
  }
  #admin-panel-mapa .alumno-card.selected::before,
  #admin-panel-mapa .alumno-card.seleccionado::before{
    max-width:88%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .links-admin-actions{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:9px!important;
    justify-content:flex-start!important;
  }
  #admin-panel-enlaces .adm-sec-header,
  #admin-panel-links .adm-sec-header{
    overflow:hidden!important;
  }
  #admin-panel-enlaces .links-grid,
  #admin-panel-links .links-grid,
  .quick-links-section,
  .links-category{
    position:relative!important;
    z-index:1!important;
  }
}

@media (max-width:430px){
  .admin-tabs{margin-top:12px!important;margin-bottom:16px!important;}
  .admin-header-actions .btn-add-alum,
  .admin-header-actions button,
  .links-admin-actions button,
  .btn-add-link{
    flex:1 1 100%!important;
  }
  .adm-sec-header{padding:14px 12px!important;}
  .adm-sec-title{font-size:22px!important;}
}


/* V101 · Fechas operativas por color + validación anti-error */
.operativo-date-grid-v101 .sa-date-field{
  position:relative;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:10px;
  background:rgba(255,255,255,.035);
}
.operativo-date-grid-v101 .sa-date-field label{
  display:flex;
  align-items:center;
  gap:7px;
  letter-spacing:.16em;
  font-weight:950;
}
.sa-date-field .sa-date-ico{font-size:1.05rem;filter:drop-shadow(0 0 8px currentColor)}
.sa-date-field small{
  display:block;
  margin-top:7px;
  font-size:.72rem;
  line-height:1.25;
  color:rgba(255,255,255,.55);
  font-weight:700;
}
.sa-date-field input{border-width:1.5px!important;font-weight:900;}
.sa-date-field.renewal{border-color:rgba(59,130,246,.42); box-shadow:inset 0 0 0 1px rgba(59,130,246,.08)}
.sa-date-field.renewal label,.sa-date-field.renewal .sa-date-ico{color:#60a5fa!important}.sa-date-field.renewal input:focus{border-color:#60a5fa!important;box-shadow:0 0 0 2px rgba(59,130,246,.25)!important}
.sa-date-field.routine{border-color:rgba(249,115,22,.42); box-shadow:inset 0 0 0 1px rgba(249,115,22,.08)}
.sa-date-field.routine label,.sa-date-field.routine .sa-date-ico{color:#fb923c!important}.sa-date-field.routine input:focus{border-color:#fb923c!important;box-shadow:0 0 0 2px rgba(249,115,22,.25)!important}
.sa-date-field.pause{border-color:rgba(168,85,247,.42); box-shadow:inset 0 0 0 1px rgba(168,85,247,.08)}
.sa-date-field.pause label,.sa-date-field.pause .sa-date-ico{color:#c084fc!important}.sa-date-field.pause input:focus{border-color:#c084fc!important;box-shadow:0 0 0 2px rgba(168,85,247,.25)!important}
.sa-date-field.entry{border-color:rgba(34,197,94,.42); box-shadow:inset 0 0 0 1px rgba(34,197,94,.08)}
.sa-date-field.entry label,.sa-date-field.entry .sa-date-ico{color:#4ade80!important}.sa-date-field.entry input:focus{border-color:#4ade80!important;box-shadow:0 0 0 2px rgba(34,197,94,.25)!important}
.sa-date-warnings-v101{margin:12px 0 0;gap:8px;}
.sa-date-warning{padding:10px 12px;border-radius:12px;font-weight:900;font-size:.8rem;line-height:1.35;background:rgba(255,217,0,.10);border:1px solid rgba(255,217,0,.32);color:#FFD900;}
.sa-date-warning.renewal{background:rgba(59,130,246,.10);border-color:rgba(59,130,246,.38);color:#93c5fd}
.sa-date-warning.routine{background:rgba(249,115,22,.10);border-color:rgba(249,115,22,.38);color:#fdba74}
.sa-date-warning.pause{background:rgba(168,85,247,.10);border-color:rgba(168,85,247,.38);color:#d8b4fe}
.sa-date-warning.standby{background:rgba(148,163,184,.10);border-color:rgba(148,163,184,.38);color:#cbd5e1}
@media(max-width:720px){.operativo-date-grid-v101 .sa-date-field{padding:12px}.sa-date-field small{font-size:.75rem}}

/* V102 — expediente rápido plegable en modal operativo */
.btn-expediente-toggle{
  width:100%;
  border:none;
  border-radius:14px;
  padding:14px 16px;
  background:linear-gradient(135deg,#ffd900,#ffb800);
  color:#0b0b0b;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 0 18px rgba(255,217,0,.18);
}
.btn-expediente-toggle:hover{filter:brightness(1.04)}
.operativo-exp-editor{margin-top:14px;animation:saExpDrop .18s ease-out both}
@keyframes saExpDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}


/* V104 - Fix editor planificación visible y usable */
#plan-editor-section{display:block;position:relative;z-index:2;margin-top:16px;width:100%;clear:both;}
#plan-editor-section[style*="display: none"]{display:none!important;}
#plan-editor-wrap{width:100%;min-height:120px;padding-bottom:24px;}
.plan-editor{display:block;width:100%;}
.btn-add-dia{min-height:44px;}
.bc-warm{background:rgba(255,153,0,.16)!important;border-color:rgba(255,153,0,.45)!important;color:#ffbd59!important;}
.bc-strength{background:rgba(255,60,60,.14)!important;border-color:rgba(255,60,60,.42)!important;color:#ff7373!important;}
.bc-skill{background:rgba(0,170,255,.14)!important;border-color:rgba(0,170,255,.42)!important;color:#7ad7ff!important;}
.bc-core{background:rgba(255,211,0,.14)!important;border-color:rgba(255,211,0,.45)!important;color:#ffd900!important;}
.bc-mobility{background:rgba(46,204,113,.14)!important;border-color:rgba(46,204,113,.42)!important;color:#54e68c!important;}
.bc-cardio{background:rgba(155,89,182,.14)!important;border-color:rgba(155,89,182,.42)!important;color:#c48cff!important;}
.bc-stretch{background:rgba(52,152,219,.14)!important;border-color:rgba(52,152,219,.42)!important;color:#75c7ff!important;}
/* V240: paleta ampliada para las nuevas etiquetas de bloque (BNV/CNV/.../HIIT/GYM/DADO/
   SKNV/FBNV) — mismo patrón que las 7 anteriores, solo se añaden 6 tonos más para que
   el picker siga siendo legible con más del doble de opciones. */
.bc-teal{background:rgba(20,184,166,.14)!important;border-color:rgba(20,184,166,.42)!important;color:#5eead4!important;}
.bc-pink{background:rgba(236,72,153,.14)!important;border-color:rgba(236,72,153,.42)!important;color:#f9a8d4!important;}
.bc-indigo{background:rgba(99,102,241,.14)!important;border-color:rgba(99,102,241,.42)!important;color:#a5b4fc!important;}
.bc-lime{background:rgba(163,230,53,.14)!important;border-color:rgba(163,230,53,.42)!important;color:#d9f99d!important;}
.bc-amber{background:rgba(245,158,11,.14)!important;border-color:rgba(245,158,11,.42)!important;color:#fcd34d!important;}
.bc-slate{background:rgba(148,163,184,.14)!important;border-color:rgba(148,163,184,.42)!important;color:#cbd5e1!important;}
.bc-custom{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.18)!important;color:#fff!important;}
@media(max-width:700px){
  .plan-admin-actions{display:grid;grid-template-columns:1fr;gap:10px;}
  .plan-editor-body{gap:14px;}
  .plan-bloque-picker{overflow:visible;}
  .picker-bloque,.min-btn,.btn-add-dia,.btn-plan{touch-action:manipulation;}
}


/* V105 — Alertas operativas más claras */
.alert-summary-card.v105{border:1px solid rgba(255,217,0,.22);background:linear-gradient(180deg,rgba(255,217,0,.08),rgba(255,255,255,.03));}
.alert-summary-card.v105.danger strong{color:#ff4b4b;}
.alert-summary-card.v105.renewal strong{color:#58a6ff;}
.alert-summary-card.v105.routine strong{color:#ff9f1c;}
.alert-day-section.v105{border:1px solid rgba(255,217,0,.18);border-radius:18px;padding:12px;margin:14px 0;background:rgba(255,255,255,.025);}
.alert-item.v105{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border-radius:16px;padding:12px;border:1px solid rgba(255,255,255,.09);background:rgba(20,20,20,.9);}
.alert-item.v105 + .alert-item.v105{margin-top:10px;}
.alert-item.v105.critical{border-color:rgba(255,45,45,.55);box-shadow:0 0 0 1px rgba(255,45,45,.12),0 0 18px rgba(255,45,45,.08);}
.alert-item.v105.danger{border-color:rgba(255,95,60,.45);}
.alert-item.v105.warn{border-color:rgba(255,159,28,.42);}
.alert-item.v105.alert-type-renovacion{background:linear-gradient(90deg,rgba(40,105,255,.12),rgba(20,20,20,.92));}
.alert-item.v105.alert-type-rutina{background:linear-gradient(90deg,rgba(255,145,0,.12),rgba(20,20,20,.92));}
.alert-item.v105 .alert-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font-size:22px;}
.alert-item.v105 .alert-main strong{display:block;font-size:14px;letter-spacing:.02em;color:#fff;}
.alert-item.v105 .alert-main span{display:block;margin-top:3px;color:rgba(255,255,255,.62);font-size:12px;line-height:1.35;}
.alert-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.alert-actions.v105{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.alert-actions.v105 button{border:1px solid rgba(255,217,0,.25);background:rgba(255,217,0,.12);color:#ffd900;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;}
.alert-actions.v105 button:first-child{background:#ffd900;color:#111;}
@media(max-width:720px){
  .alert-item.v105{grid-template-columns:auto 1fr;}
  .alert-side{grid-column:1/-1;align-items:flex-start;}
  .alert-actions.v105{justify-content:flex-start;}
}

/* V121 · Renovación: colores por tramo en panel operativo */
@keyframes saRenovarBlink{0%,100%{opacity:1;box-shadow:0 0 0 rgba(239,68,68,0)}50%{opacity:.55;box-shadow:0 0 12px rgba(239,68,68,.45)}}
#admin-panel-mapa .alumno-date-line.renovacion.danger{background:rgba(239,68,68,.18)!important;color:#fecaca!important;border-color:rgba(239,68,68,.55)!important;animation:saRenovarBlink 1.15s ease-in-out infinite;}
#admin-panel-mapa .alumno-date-line.renovacion.orange{background:rgba(249,115,22,.15)!important;color:#fed7aa!important;border-color:rgba(249,115,22,.42)!important;}
#admin-panel-mapa .alumno-date-line.renovacion.warn{background:rgba(255,217,0,.13)!important;color:#fff1a6!important;border-color:rgba(255,217,0,.40)!important;}
#admin-panel-mapa .alumno-date-line.renovacion.cool{background:rgba(56,189,248,.12)!important;color:#bae6fd!important;border-color:rgba(56,189,248,.34)!important;}

/* V124 - color del marco de tarjeta por estado operativo */
.alumno-card.frame-green{border-color:rgba(34,197,94,.72);box-shadow:0 0 0 1px rgba(34,197,94,.18),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-red{border-color:rgba(239,68,68,.82);box-shadow:0 0 0 1px rgba(239,68,68,.22),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-blue{border-color:rgba(59,130,246,.78);box-shadow:0 0 0 1px rgba(59,130,246,.20),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-yellow{border-color:rgba(255,217,0,.85);box-shadow:0 0 0 1px rgba(255,217,0,.22),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-purple{border-color:rgba(168,85,247,.82);box-shadow:0 0 0 1px rgba(168,85,247,.22),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-orange{border-color:rgba(249,115,22,.62);box-shadow:0 0 0 1px rgba(249,115,22,.16),0 10px 24px rgba(0,0,0,.24)}
.alumno-card.frame-green:hover{border-color:rgba(34,197,94,.95)}
.alumno-card.frame-red:hover{border-color:rgba(239,68,68,.98)}
.alumno-card.frame-blue:hover{border-color:rgba(59,130,246,.98)}
.alumno-card.frame-yellow:hover{border-color:rgba(255,217,0,1)}
.alumno-card.frame-purple:hover{border-color:rgba(168,85,247,.98)}


/* V125 — Marco de tarjeta por estado con prioridad sobre atención */
#admin-panel-mapa .alumno-card.frame-green{border-color:rgba(34,197,94,.86)!important;box-shadow:0 0 0 1px rgba(34,197,94,.22),0 10px 24px rgba(0,0,0,.24)!important;}
#admin-panel-mapa .alumno-card.frame-red{border-color:rgba(239,68,68,.90)!important;box-shadow:0 0 0 1px rgba(239,68,68,.26),0 10px 24px rgba(0,0,0,.24)!important;}
#admin-panel-mapa .alumno-card.frame-blue{border-color:rgba(59,130,246,.86)!important;box-shadow:0 0 0 1px rgba(59,130,246,.24),0 10px 24px rgba(0,0,0,.24)!important;}
#admin-panel-mapa .alumno-card.frame-yellow{border-color:rgba(255,217,0,.90)!important;box-shadow:0 0 0 1px rgba(255,217,0,.26),0 10px 24px rgba(0,0,0,.24)!important;}
#admin-panel-mapa .alumno-card.frame-purple{border-color:rgba(168,85,247,.90)!important;box-shadow:0 0 0 1px rgba(168,85,247,.26),0 10px 24px rgba(0,0,0,.24)!important;}
#admin-panel-mapa .alumno-card.frame-orange{border-color:rgba(249,115,22,.62)!important;box-shadow:0 0 0 1px rgba(249,115,22,.16),0 10px 24px rgba(0,0,0,.24)!important;}

/* V134 — propuesta de objetivos alumno */
.student-propose-wrap{margin:0 0 14px;display:grid;gap:8px}
.btn-student-propose{width:100%;padding:16px 18px;border:0;border-radius:18px;background:linear-gradient(135deg,#ffd900,#ffbe00);color:#111;font-size:15px;font-weight:1000;letter-spacing:.3px;text-align:center;box-shadow:0 10px 26px rgba(255,217,0,.18),inset 0 0 0 1px rgba(255,255,255,.24);transition:transform .15s,box-shadow .15s}
.btn-student-propose:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(255,217,0,.28),inset 0 0 0 1px rgba(255,255,255,.32)}
.btn-student-propose:active{transform:translateY(0)}
.student-propose-hint{font-size:12px;line-height:1.45;color:#bdbdbd;background:rgba(255,217,0,.06);border:1px solid rgba(255,217,0,.16);border-radius:14px;padding:10px 12px}
.modal-proponer-card{max-width:560px;border-color:rgba(255,217,0,.32);box-shadow:0 -18px 60px rgba(255,217,0,.08)}
.proponer-info-box{background:linear-gradient(180deg,rgba(255,217,0,.09),rgba(255,255,255,.03));border:1px solid rgba(255,217,0,.18);border-radius:16px;padding:14px;color:#e8e8e8;font-size:13px;line-height:1.55}
.proponer-info-box p{margin:0 0 9px}.proponer-info-box p:last-child{margin-bottom:0}.proponer-info-box ul{margin:6px 0 10px 18px;padding:0}.proponer-info-box li{margin:4px 0}.proponer-love{color:#ffd900;font-weight:900}.proponer-label{font-size:11px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;color:#8e8e8e}.proponer-textarea{width:100%;min-height:110px;background:#141414;border:1px solid rgba(255,255,255,.12);border-radius:16px;color:#fff;padding:13px 14px;resize:vertical;outline:none;font-size:14px;line-height:1.45}.proponer-textarea:focus{border-color:#ffd900;box-shadow:0 0 0 3px rgba(255,217,0,.08)}

/* V138 · subcategorías de objetivos */
.micro-subcat-pill{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
}

/* XP V148 · sistema completo */
.xp-sinxp{background:rgba(148,163,184,.12)!important;border-color:rgba(148,163,184,.4)!important;color:#cbd5e1!important}
.xp-video2{background:rgba(221,214,254,.18)!important;border-color:rgba(221,214,254,.55)!important;color:#ddd6fe!important}
.xp-historia7{background:rgba(250,204,21,.16)!important;border-color:rgba(250,204,21,.55)!important;color:#facc15!important}
.xp-formulario5,.xp-reto20,.xp-testimonioPost20,.xp-recomendacion200,.xp-testimonioLargo100{background:rgba(255,112,67,.16)!important;border-color:rgba(255,112,67,.55)!important;color:#ff7043!important}

/* V151 Reset XP admin */
.btn-add-alum.danger-soft{background:rgba(255,75,75,.12)!important;border:1px solid rgba(255,75,75,.45)!important;color:#ff7777!important}
.reset-xp-card{max-width:720px}
.reset-xp-actions{display:flex;gap:10px;margin:10px 0 12px;flex-wrap:wrap}
.btn-mini{border:1px solid rgba(255,214,0,.35);background:#1f1f1f;color:var(--yellow);border-radius:14px;padding:10px 14px;font-weight:900;cursor:pointer}
.reset-xp-list{max-height:360px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(0,0,0,.18);padding:8px;margin:10px 0 16px}
.reset-xp-row{display:flex;align-items:center;gap:12px;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer}
.reset-xp-row:last-child{border-bottom:0}
.reset-xp-row input{width:20px;height:20px;accent-color:var(--yellow);flex:0 0 auto}
.reset-xp-row b{display:block;color:var(--white);font-size:14px}
.reset-xp-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.btn-modal-ok.danger{background:#ff3b3b!important;color:#fff!important}
.xp-chip.danger{border-color:rgba(255,75,75,.55)!important;color:#ff7777!important;background:rgba(255,75,75,.10)!important}

/* V152 — Estado principal + etiquetas operativas */
.op-tags-editor{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.op-tag-choice{display:inline-flex;align-items:center;gap:6px;padding:9px 11px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--gray);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;cursor:pointer;user-select:none}
.op-tag-choice input{display:none}
.op-tag-choice.active{background:rgba(255,122,0,.18);border-color:rgba(255,122,0,.85);color:#fff;box-shadow:0 0 0 1px rgba(255,122,0,.15) inset}
.alumno-tagline{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin:4px 0 2px}
.alumno-tagline span{font-size:8.5px;font-weight:1000;letter-spacing:.45px;text-transform:uppercase;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.06);border-radius:999px;padding:3px 5px;color:rgba(255,255,255,.78)}


/* V160 — ACTUALIZAR como estado principal rojo parpadeante */
@keyframes saUpdateFramePulse{0%,100%{box-shadow:0 0 0 1px rgba(239,68,68,.35),0 0 12px rgba(239,68,68,.22),0 10px 24px rgba(0,0,0,.24)}50%{box-shadow:0 0 0 2px rgba(239,68,68,.85),0 0 26px rgba(239,68,68,.60),0 10px 24px rgba(0,0,0,.24)}}
#admin-panel-mapa .alumno-card.state-update-primary,
#admin-panel-mapa .alumno-card.frame-red.state-update-primary{border-color:rgba(239,68,68,.95)!important;animation:saUpdateFramePulse 1.2s ease-in-out infinite!important;}
#admin-panel-mapa .alumno-card.state-update-primary .op-badge.actualizar{display:flex!important;background:#ef4444!important;color:#fff!important;animation:updatePulse 1.1s ease-in-out infinite!important;}
#admin-panel-mapa .alumno-card.state-update-primary .alumno-op-label.actualizar{background:rgba(239,68,68,.18)!important;border-color:rgba(239,68,68,.48)!important;color:#fecaca!important;}


/* V161 · prioridad visual estado principal Actualizar */
#admin-panel-mapa .alumno-card.state-update-primary,
#admin-panel-mapa .alumno-card.frame-red.state-update-primary{
  border-color:#ef4444!important;
  box-shadow:0 0 0 1px rgba(239,68,68,.55),0 0 22px rgba(239,68,68,.22)!important;
  animation:updatePulse 1.15s ease-in-out infinite!important;
}
#admin-panel-mapa .alumno-card.state-update-primary .alumno-op-label.actualizar{
  background:rgba(239,68,68,.18)!important;
  color:#fecaca!important;
  border-color:rgba(239,68,68,.75)!important;
}
#admin-panel-mapa .alumno-card.state-update-primary .op-badge.actualizar{
  display:flex!important;background:#ef4444!important;color:#fff!important;
}

/* V164 — Expediente: categoría visible en entradas fijadas/listas */
.expediente-cat-pill{display:inline-flex;align-items:center;max-width:150px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.82);font-size:9px;font-weight:1000;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.expediente-cat-pill.lesion{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35);color:#fecaca}
.expediente-cat-pill.pausa{background:rgba(59,130,246,.13);border-color:rgba(59,130,246,.34);color:#bfdbfe}
.expediente-cat-pill.plan{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3);color:#bfdbfe}
.expediente-cat-pill.info{background:rgba(255,217,0,.10);border-color:rgba(255,217,0,.28);color:var(--yellow)}
.expediente-cat-pill.mensaje{background:rgba(6,182,212,.12);border-color:rgba(6,182,212,.3);color:#a5f3fc}
.expediente-cat-pill.llamada{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3);color:#bfdbfe}
.expediente-cat-pill.pago,.expediente-cat-pill.tarea{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3);color:#bbf7d0}
.expediente-cat-pill.formulario{background:rgba(168,85,247,.13);border-color:rgba(168,85,247,.32);color:#e9d5ff}
@media(max-width:620px){.expediente-cat-pill{max-width:96px;font-size:8px;padding:2px 6px}}

/* V167 - acciones de actualizaciones de expediente */
.expediente-update-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.expediente-update-delete{border:1px solid rgba(255,80,80,.45);background:rgba(120,20,20,.22);color:#ffb3b3;border-radius:999px;padding:7px 12px;font-weight:900;cursor:pointer}
.expediente-update-delete:hover{background:rgba(180,35,35,.35);color:#fff}

/* V172 · Expediente: edición de actualizaciones y dolor destacado */
.expediente-update-edit{border:1px solid rgba(255,211,0,.45);background:rgba(255,211,0,.12);color:var(--yellow);border-radius:999px;padding:7px 12px;font-weight:900;cursor:pointer}
.expediente-update-edit:hover{background:rgba(255,211,0,.22);color:#fff}
.expediente-pain-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-weight:1000;font-size:11px;letter-spacing:.04em;text-transform:uppercase;border:1px solid rgba(255,255,255,.18);white-space:nowrap}
.expediente-pain-badge.pain-verde{background:rgba(33,210,111,.15);color:#45e887;border-color:rgba(33,210,111,.45)}
.expediente-pain-badge.pain-amarillo{background:rgba(255,211,0,.16);color:var(--yellow);border-color:rgba(255,211,0,.45)}
.expediente-pain-badge.pain-rojo{background:rgba(255,75,75,.18);color:#ff8080;border-color:rgba(255,75,75,.55)}
.expediente-pain-badge.pain-azul{background:rgba(70,140,255,.16);color:#9bc0ff;border-color:rgba(70,140,255,.45)}
.expediente-clases-minibadge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-weight:800;font-size:11px;letter-spacing:.04em;white-space:nowrap;margin-left:2px}
.lesion-pain-big{margin:10px 0 8px;display:inline-flex;flex-direction:column;gap:3px;border:1px solid rgba(255,211,0,.32);background:rgba(255,211,0,.08);border-radius:14px;padding:10px 14px;box-shadow:0 0 18px rgba(255,211,0,.08)}
.lesion-pain-big span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gray);font-weight:900}
.lesion-pain-big strong{font-size:30px;line-height:1;color:var(--yellow);font-weight:1000}
@media(max-width:620px){.lesion-pain-big strong{font-size:24px}.expediente-pain-badge{font-size:10px;padding:4px 8px}}

/* ═══════════════════════════════════════════════
   V178 — MARCAS PERSONALES
   ═══════════════════════════════════════════════ */

/* Toolbar */
.marcas-toolbar {
  display: flex;
  justify-content: flex-end;
  padding: 0 0 12px;
}
.btn-add-marca {
  background: var(--orange);
  color: #1a1a1a;
  border: 0;
  border-radius: 999px;
  padding: 10px 20px;
  font-weight: 900;
  font-size: 13px;
  cursor: pointer;
  letter-spacing: .02em;
  transition: opacity .15s;
}
.btn-add-marca:active { opacity: .8; }

/* Secciones */
.marcas-section-title {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--muted);
  margin: 18px 0 10px;
}
.marcas-section-title.pending-title {
  color: rgba(255, 217, 0, .7);
  margin-top: 28px;
}

/* Grid */
.marcas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 8px;
}

/* Tarjeta */
.marca-card {
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 16px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;
}
.marca-card.marca-pending {
  border-color: rgba(255, 217, 0, .3);
  background: rgba(255, 217, 0, .04);
}
.marca-pending-badge {
  font-size: 10px;
  font-weight: 900;
  color: rgba(255, 217, 0, .8);
  letter-spacing: .04em;
  margin-bottom: 2px;
}
.marca-nombre {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.marca-valor-wrap {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 32px;
  line-height: 1.1;
  color: var(--white);
  display: flex;
  align-items: baseline;
  gap: 5px;
}
.marca-unidad {
  font-family: inherit;
  font-size: 14px;
  color: var(--muted);
}
.marca-desc {
  font-size: 12px;
  color: var(--gray);
  margin-top: 2px;
}
.marca-nota {
  font-size: 12px;
  color: #ff9f57;
  font-style: italic;
  margin-top: 2px;
}

/* Acciones en tarjeta */
.marca-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.marca-btn-edit {
  border: 1px solid rgba(255, 217, 0, .35);
  background: rgba(255, 217, 0, .07);
  color: var(--yellow);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.marca-btn-del {
  border: 1px solid rgba(255, 80, 80, .35);
  background: rgba(255, 80, 80, .07);
  color: #ff8080;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.marca-btn-aprobar {
  border: 1px solid rgba(50, 210, 120, .45);
  background: rgba(50, 210, 120, .1);
  color: #45e887;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.marca-btn-rechazar {
  border: 1px solid rgba(255, 80, 80, .35);
  background: rgba(255, 80, 80, .07);
  color: #ff8080;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

/* Modal marcas */
.marca-modal-card {
  max-width: 480px;
  border-radius: 20px !important;
  border-color: rgba(255, 217, 0, .22);
}
.marca-label {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #ffd900;
  display: block;
  margin-bottom: 6px;
}
.marca-check-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--white2);
  cursor: pointer;
}
.marca-check-label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--yellow);
  flex: 0 0 auto;
}

@media (max-width: 480px) {
  .marcas-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .marca-valor-wrap { font-size: 28px; }
}

/* V182 — Pills de solicitudes en tarjeta admin */
.alumno-request-pill { cursor: pointer; }
.alumno-request-pill:hover { opacity: .8; }
.alumno-request-pill.marcas-pill {
  background: rgba(255,217,0,.1);
  border-color: rgba(255,217,0,.3);
  color: #ffd900;
}

/* V182 — Panel de solicitudes inline en tarjeta admin */
.sa-solicitudes-panel {
  margin-top: 10px;
  padding: 10px;
  background: rgba(255,255,255,.04);
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sa-sol-title {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 2px;
}
.sa-sol-btn {
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  text-align: left;
  transition: opacity .15s;
}
.sa-sol-btn:hover { opacity: .8; }
.sa-sol-btn.obj {
  background: rgba(59,130,246,.15);
  color: #7dd3fc;
  border: 1px solid rgba(59,130,246,.25);
}
.sa-sol-btn.marca {
  background: rgba(255,217,0,.1);
  color: #ffd900;
  border: 1px solid rgba(255,217,0,.25);
}

/* V184 — Tab Solicitudes en panel Alertas */
.alert-time-btn[data-alert-period="solicitudes"] {
  border-color: rgba(255, 217, 0, .35);
  color: #ffd900;
}
.alert-time-btn[data-alert-period="solicitudes"].active {
  background: rgba(255, 217, 0, .15);
  border-color: #ffd900;
  color: #ffd900;
}
.alert-actions.sol button {
  font-size: 11px;
  padding: 5px 10px;
}
.alert-type-solicitudes_marcas { border-left-color: #ffd900 !important; }
.alert-type-solicitudes_obj    { border-left-color: #7dd3fc !important; }

/* ═══════════════════════════════════════════════
   V184 — PROTOCOLOS
   ═══════════════════════════════════════════════ */

/* Sección contenedora */
.protocolos-section {
  margin-top: 32px;
  border-top: 1px solid var(--border);
  padding-top: 24px;
}
.protocolos-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.protocolos-title {
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--white);
}
.protocolos-sub {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}
.btn-add-protocolo {
  background: var(--orange);
  color: #1a1a1a;
  border: 0;
  border-radius: 999px;
  padding: 9px 18px;
  font-weight: 900;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
  flex-shrink: 0;
}
.btn-add-protocolo:active { opacity: .8; }

/* Grid de cards */
#protocolos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

/* Card individual */
.protocolo-card {
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform .15s, box-shadow .15s;
}
.protocolo-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0,0,0,.4);
}

/* Imagen */
.protocolo-img-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  cursor: pointer;
  background: #111;
}
.protocolo-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity .2s;
}
.protocolo-img-wrap:hover img { opacity: .85; }
.protocolo-img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  background: rgba(255,255,255,.04);
}
.protocolo-zoom-hint {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 900;
  color: #fff;
  background: rgba(0,0,0,.0);
  opacity: 0;
  transition: opacity .2s, background .2s;
}
.protocolo-img-wrap:hover .protocolo-zoom-hint {
  opacity: 1;
  background: rgba(0,0,0,.45);
}

/* Info */
.protocolo-info {
  padding: 12px 14px 10px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.protocolo-nombre {
  font-size: 13px;
  font-weight: 900;
  color: var(--white);
  line-height: 1.3;
}
.protocolo-nota-prev {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Badges de categoría */
.protocolo-cat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 999px;
  width: fit-content;
}
.protocolo-cat-operativo { background: rgba(59,130,246,.15); color: #7dd3fc; border: 1px solid rgba(59,130,246,.25); }
.protocolo-cat-ventas    { background: rgba(34,197,94,.12);  color: #86efac; border: 1px solid rgba(34,197,94,.2); }
.protocolo-cat-equipo    { background: rgba(168,85,247,.12); color: #c4b5fd; border: 1px solid rgba(168,85,247,.2); }
.protocolo-cat-alumnos   { background: rgba(249,115,22,.12); color: #fdba74; border: 1px solid rgba(249,115,22,.2); }
.protocolo-cat-contenido { background: rgba(236,72,153,.12); color: #f9a8d4; border: 1px solid rgba(236,72,153,.2); }
.protocolo-cat-general   { background: rgba(255,255,255,.07); color: var(--muted); border: 1px solid var(--border); }

/* Botón editar en card */
.protocolo-edit-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0,0,0,.65);
  border: 1px solid rgba(255,255,255,.15);
  color: #fff;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 12px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s;
  backdrop-filter: blur(4px);
}
.protocolo-card:hover .protocolo-edit-btn { opacity: 1; }

/* Lightbox */
#protocolo-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: fadeIn .18s ease;
}
.lightbox-inner {
  position: relative;
  max-width: 96vw;
  max-height: 94vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.lightbox-close {
  position: absolute;
  top: -44px;
  right: 0;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 15px;
  cursor: pointer;
  font-weight: 900;
}
.lightbox-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
}
#lightbox-nombre {
  font-size: 16px;
  font-weight: 900;
  color: #fff;
}
#protocolo-lightbox img {
  max-width: 100%;
  max-height: 80vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.6);
  object-fit: contain;
}
.lightbox-nota {
  font-size: 13px;
  color: rgba(255,255,255,.7);
  text-align: center;
  max-width: 600px;
  line-height: 1.5;
}

/* Modal protocolo */
.protocolo-modal-card {
  max-width: 500px;
  border-radius: 20px !important;
}
.protocolo-img-preview,
.protocolo-img-actual {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.protocolo-img-preview img,
.protocolo-img-actual img {
  width: 80px;
  height: 60px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--border);
}
.protocolo-img-actual span {
  font-size: 12px;
  color: var(--muted);
}
.btn-remove-img {
  background: rgba(239,68,68,.12);
  border: 1px solid rgba(239,68,68,.25);
  color: #ff8080;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
}
.protocolo-progress-bar {
  height: 6px;
  background: rgba(255,255,255,.1);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 8px;
}
#protocolo-progress-fill {
  height: 100%;
  background: var(--yellow);
  border-radius: 999px;
  width: 0;
  transition: width .2s;
}

@media (max-width: 600px) {
  #protocolos-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
  .lightbox-close { top: -40px; }
}

/* V188 — Subcategorías de Skills en marcas */
.marcas-subcat-header {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--yellow);
  opacity: .75;
  margin: 14px 0 8px;
  padding-left: 2px;
}
.marcas-grid-subcat {
  margin-bottom: 4px;
}

/* ═══════════════════════════════════════════════
   V188 — PREMIOS DEL MES
   ═══════════════════════════════════════════════ */

.premios-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0 20px;
}
.premios-mes-titulo {
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 1px;
  color: var(--white);
}
.btn-editar-premios {
  background: rgba(255,217,0,.12);
  border: 1px solid rgba(255,217,0,.3);
  color: #ffd900;
  border-radius: 999px;
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: opacity .15s;
}
.btn-editar-premios:hover { opacity: .8; }

.premios-periodo {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 24px;
}

.premios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  max-width: 900px;
  margin: 0 auto;
}

/* Card base */
.premio-card {
  border-radius: 22px;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  position: relative;
  overflow: hidden;
  border: 1px solid transparent;
}
.premio-card::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .08;
  border-radius: inherit;
}

/* Oro */
.premio-card.gold {
  background: linear-gradient(145deg, rgba(255,200,0,.12), rgba(255,160,0,.06));
  border-color: rgba(255,200,0,.35);
  box-shadow: 0 8px 32px rgba(255,185,0,.12);
}
.premio-card.gold .premio-medal { filter: drop-shadow(0 4px 12px rgba(255,185,0,.5)); }

/* Plata */
.premio-card.silver {
  background: linear-gradient(145deg, rgba(180,180,200,.12), rgba(140,140,160,.06));
  border-color: rgba(180,180,200,.3);
  box-shadow: 0 8px 32px rgba(160,160,180,.08);
}

/* Bronce */
.premio-card.bronze {
  background: linear-gradient(145deg, rgba(180,100,40,.12), rgba(140,80,30,.06));
  border-color: rgba(180,100,40,.3);
  box-shadow: 0 8px 32px rgba(160,90,30,.08);
}

.premio-medal {
  font-size: 48px;
  line-height: 1;
  margin-bottom: 4px;
}
.premio-rank {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
}
.premio-nombre {
  font-size: 22px;
  font-weight: 900;
  color: var(--white);
  line-height: 1.2;
  margin-top: 4px;
}
.premio-motivo {
  font-size: 13px;
  color: var(--gray);
  font-style: italic;
  line-height: 1.4;
}
.premio-descripcion {
  font-size: 12px;
  font-weight: 700;
  color: #ffd900;
  margin-top: 4px;
  background: rgba(255,217,0,.08);
  border: 1px solid rgba(255,217,0,.2);
  border-radius: 999px;
  padding: 5px 12px;
}

.premios-empty {
  text-align: center;
  color: var(--muted);
  font-size: 14px;
  padding: 40px 20px;
  line-height: 1.6;
}

/* Modal premios */
.premios-modal-card {
  max-width: 520px;
  border-radius: 20px !important;
  max-height: 88dvh;
  overflow-y: auto;
}
.premios-edit-section {
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 16px;
}
.premios-edit-section.gold   { background: rgba(255,200,0,.06);   border: 1px solid rgba(255,200,0,.2); }
.premios-edit-section.silver { background: rgba(180,180,200,.06); border: 1px solid rgba(180,180,200,.2); }
.premios-edit-section.bronze { background: rgba(180,100,40,.06);  border: 1px solid rgba(180,100,40,.2); }
.premios-edit-label {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--white2);
  margin-bottom: 10px;
}

@media (max-width: 600px) {
  .premios-grid { grid-template-columns: 1fr; max-width: 100%; }
  .premio-medal { font-size: 40px; }
  .premio-nombre { font-size: 20px; }
}

/* ═══════════════════════════════════════════════
   V190 — PREMIOS PANEL ADMIN
   ═══════════════════════════════════════════════ */

.premios-mes-card {
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 18px 20px;
  margin-bottom: 16px;
  transition: border-color .2s;
}
.premios-mes-card.activo {
  border-color: rgba(255,217,0,.4);
  background: rgba(255,217,0,.03);
}
.premios-mes-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.premios-mes-info { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.premios-mes-periodo {
  font-size: 16px;
  font-weight: 900;
  color: var(--white);
}
.premios-activo-badge {
  font-size: 11px;
  font-weight: 900;
  background: rgba(255,217,0,.12);
  color: #ffd900;
  border: 1px solid rgba(255,217,0,.3);
  border-radius: 999px;
  padding: 3px 10px;
}
.premios-mes-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.premios-btn-activar {
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.25);
  color: #86efac;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.premios-btn-add-premio {
  background: rgba(255,217,0,.1);
  border: 1px solid rgba(255,217,0,.25);
  color: #ffd900;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.premios-btn-del-mes {
  background: rgba(239,68,68,.1);
  border: 1px solid rgba(239,68,68,.2);
  color: #f87171;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
}

/* Lista de premios dentro del mes */
.premios-lista { display: flex; flex-direction: column; gap: 8px; }
.premios-lista-empty { font-size: 12px; color: var(--muted); padding: 8px 0; }
.premio-admin-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 14px;
}
.premio-admin-emoji { font-size: 22px; flex-shrink: 0; }
.premio-admin-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.premio-admin-info strong { font-size: 14px; color: var(--white); }
.premio-admin-info span  { font-size: 12px; color: var(--gray); }
.premio-admin-btns { display: flex; gap: 6px; flex-shrink: 0; }
.premio-admin-btns button {
  background: rgba(255,255,255,.07);
  border: 1px solid var(--border);
  color: var(--white2);
  border-radius: 8px;
  padding: 5px 9px;
  font-size: 13px;
  cursor: pointer;
}
.premios-admin-empty {
  text-align: center;
  color: var(--muted);
  padding: 32px 0;
  font-size: 14px;
}

/* Vista alumno — premio card extra */
.premio-card.extra {
  background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border-color: rgba(255,255,255,.12);
}

  50%       { opacity: .45; box-shadow: none; }
}

/* V191 — Colores y parpadeos por etiqueta */

/* Parpadeo reutilizable */
@keyframes tag-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}

/* LLAMADA — rojo, parpadea */
.alumno-tagline span.tag-llamada {
  background: rgba(239,68,68,.18);
  border-color: rgba(239,68,68,.5);
  color: #fca5a5;
  animation: tag-blink 1.4s ease-in-out infinite;
}
/* WHATSAPP — verde, parpadea */
.alumno-tagline span.tag-whatsapp {
  background: rgba(34,197,94,.15);
  border-color: rgba(34,197,94,.45);
  color: #86efac;
  animation: tag-blink 1.4s ease-in-out infinite;
}
/* NO ATIENDE — naranja, parpadea */
.alumno-tagline span.tag-no_atiende {
  background: rgba(249,115,22,.15);
  border-color: rgba(249,115,22,.45);
  color: #fdba74;
  animation: tag-blink 1.4s ease-in-out infinite;
}
/* LOOM — morado, parpadea (ya existía, unificamos) */
.alumno-tagline span.tag-loom,
.alumno-tagline span.loom-tag {
  background: rgba(168,85,247,.18);
  border-color: rgba(168,85,247,.5);
  color: #c4b5fd;
  animation: tag-blink 1.6s ease-in-out infinite;
}
/* APÁTICO — amarillo, sin parpadeo */
.alumno-tagline span.tag-apatico {
  background: rgba(234,179,8,.13);
  border-color: rgba(234,179,8,.4);
  color: #fde047;
}
/* NUEVO — azul, sin parpadeo */
.alumno-tagline span.tag-nuevo {
  background: rgba(59,130,246,.13);
  border-color: rgba(59,130,246,.4);
  color: #93c5fd;
}
/* LESIONADO — rosa, sin parpadeo */
.alumno-tagline span.tag-lesionado {
  background: rgba(236,72,153,.13);
  border-color: rgba(236,72,153,.4);
  color: #f9a8d4;
}
/* RECOMPENSAR — dorado, sin parpadeo */
.alumno-tagline span.tag-recompensar {
  background: rgba(255,200,0,.13);
  border-color: rgba(255,200,0,.4);
  color: #ffd700;
}
/* MIMO — verde agua, sin parpadeo */
.alumno-tagline span.tag-mimo {
  background: rgba(20,184,166,.13);
  border-color: rgba(20,184,166,.4);
  color: #5eead4;
}

/* ═══════════════════════════════════════════════
   V192 — TAREAS DE EMPRESA
   ═══════════════════════════════════════════════ */

/* Etiqueta de fila */
.tareas-fila-label {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 10px;
}

/* Fila de columnas */
.tareas-fila {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  overflow-x: auto;
  padding-bottom: 4px;
}
.tareas-fila::-webkit-scrollbar { height: 4px; }
.tareas-fila::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* Columna */
.tareas-col {
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 260px;
  flex: 1;
}
.tareas-col-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.prio-urgente    > .tareas-col-head { background: rgba(239,68,68,.15); color: #fca5a5; }
.prio-importante > .tareas-col-head { background: rgba(234,179,8,.13); color: #fde047; }
.prio-cuando     > .tareas-col-head { background: rgba(34,197,94,.12); color: #86efac; }
.prio-extra      > .tareas-col-head { background: rgba(99,102,241,.12); color: #a5b4fc; }

.tareas-col-count {
  background: rgba(255,255,255,.1);
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 11px;
}
.tareas-col-del {
  background: none;
  border: none;
  color: rgba(255,255,255,.3);
  cursor: pointer;
  font-size: 12px;
  padding: 0 2px;
  transition: color .15s;
}
.tareas-col-del:hover { color: #f87171; }

/* Drop zone highlight */
.tareas-col-list {
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 60px;
  transition: background .15s;
}
.tareas-col-list.drag-over {
  background: rgba(255,255,255,.04);
  border-radius: 8px;
}

.tareas-add-inline {
  margin: 0 10px 10px;
  background: rgba(255,255,255,.04);
  border: 1px dashed var(--border);
  color: var(--muted);
  border-radius: 10px;
  padding: 7px;
  font-size: 12px;
  cursor: pointer;
  text-align: center;
  transition: opacity .15s;
}
.tareas-add-inline:hover { opacity: .7; }

/* Botón añadir columna */
.tareas-add-col-btn {
  margin-top: 14px;
  background: rgba(99,102,241,.1);
  border: 1px dashed rgba(99,102,241,.3);
  color: #a5b4fc;
  border-radius: 12px;
  padding: 9px 20px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: opacity .15s;
  display: inline-block;
}
.tareas-add-col-btn:hover { opacity: .8; }

/* Tarjeta de tarea */
.tarea-card {
  background: var(--dark);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  cursor: default;
  transition: box-shadow .15s, opacity .15s;
}
.tarea-card.dragging { opacity: .45; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
/* V213: línea de inserción — marca la posición exacta donde va a caer la tarea */
.tarea-drop-line {
  height: 2px;
  margin: 3px 0;
  border-radius: 2px;
  background: var(--yellow);
  box-shadow: 0 0 6px rgba(255,217,0,.6);
  pointer-events: none;
}
.tarea-card.completada { opacity: .6; cursor: default; }

.tarea-card-head {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  cursor: grab;
}
.tarea-card-head:active { cursor: grabbing; }
.tarea-prio-badge {
  font-size: 12px;
  flex-shrink: 0;
  margin-top: 1px;
}
.tarea-titulo {
  font-size: 13px;
  font-weight: 800;
  color: var(--white);
  line-height: 1.3;
  flex: 1;
  letter-spacing: .1px;
}
.tarea-edit-btn {
  background: none;
  border: none;
  font-size: 12px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s;
  padding: 0;
  flex-shrink: 0;
}
.tarea-card:hover .tarea-edit-btn { opacity: 1; }

/* Fechas */
.tarea-fecha {
  font-size: 9px;
  font-weight: 900;
  padding: 2px 6px;
  border-radius: 999px;
  width: fit-content;
  letter-spacing: .2px;
}
.fecha-ok      { background: rgba(34,197,94,.12);  color: #86efac; border: 1px solid rgba(34,197,94,.25); }
.fecha-proxima { background: rgba(234,179,8,.14);  color: #fde047; border: 1px solid rgba(234,179,8,.35); }
.fecha-hoy     { background: rgba(249,115,22,.15); color: #fb923c; border: 1px solid rgba(249,115,22,.4); font-weight:900; animation: fecha-hoy-pulse 1.8s ease-in-out infinite; }
.fecha-vencida { background: rgba(239,68,68,.18);  color: #ff6b6b; border: 1px solid rgba(239,68,68,.5); font-weight:900; animation: fecha-vencida-blink 1.2s ease-in-out infinite; }
.fecha-sin     { display: none; }

@keyframes fecha-hoy-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .6; }
}
@keyframes fecha-vencida-blink {
  0%, 100% { opacity: 1; background: rgba(239,68,68,.18); }
  50%       { opacity: .7; background: rgba(239,68,68,.32); }
}

/* Descripción colapsable */
.tarea-desc-wrap {
  font-size: 12px;
  color: var(--muted);
}
.tarea-desc-wrap summary, .tarea-subs-wrap summary {
  cursor: pointer;
  color: var(--gray);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .4px;
  list-style: none;
  user-select: none;
}
.tarea-desc-wrap p,
.tarea-desc-content {
  margin-top: 8px;
  line-height: 1.6;
  white-space: pre-wrap;
  font-size: 12px;
  color: var(--white2);
  background: rgba(255,255,255,.04);
  border-radius: 8px;
  padding: 8px 10px;
}

/* Subtareas */
.tarea-subs-wrap { font-size: 12px; }
.tarea-subs-list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.tarea-sub-item {
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  padding: 3px 0;
  color: var(--white2);
}
.tarea-sub-item.hecha span {
  text-decoration: line-through;
  color: var(--muted);
}
.tarea-sub-item input[type="checkbox"] { flex-shrink: 0; accent-color: #86efac; }

/* Subtareas en modal */
.tarea-sub-edit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,.05);
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 12px;
  color: var(--white2);
}

/* Footer card */
.tarea-card-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1px;
}
.tarea-done-btn {
  background: rgba(34,197,94,.1);
  border: 1px solid rgba(34,197,94,.25);
  color: #86efac;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.tarea-completada-fecha { font-size: 11px; color: var(--muted); }
.tarea-reopen-btn {
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 11px;
  cursor: pointer;
  margin-top: 4px;
}

/* Historial completadas */
.tareas-completadas-wrap { border-top: 1px solid var(--border); padding-top: 16px; }
.tareas-completadas-toggle {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
  padding: 4px 0;
}
#tareas-completadas-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px,1fr));
  gap: 10px;
  margin-top: 12px;
}
.tareas-empty { font-size: 12px; color: var(--muted); padding: 10px 0; text-align: center; }

/* MEJORA 1+5: barra de progreso y badge de subtareas */
.subs-badge {
  font-size: 10px;
  font-weight: 900;
  padding: 2px 7px;
  border-radius: 999px;
  flex-shrink: 0;
}
.subs-badge-none    { background: rgba(255,255,255,.07); color: var(--muted); }
.subs-badge-partial { background: rgba(234,179,8,.12);  color: #fde047; border: 1px solid rgba(234,179,8,.25); }
.subs-badge-done    { background: rgba(34,197,94,.12);  color: #86efac; border: 1px solid rgba(34,197,94,.25); }

.tarea-subs-wrap summary {
  display: flex;
  align-items: center;
  gap: 8px;
}
.subs-progress-bar {
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,.1);
  border-radius: 999px;
  overflow: hidden;
}
.subs-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #fde047, #86efac);
  border-radius: 999px;
  transition: width .3s ease;
}

/* MEJORA 3: fecha sin asignar */
.fecha-sin { background: rgba(255,255,255,.05); color: var(--muted); border: 1px solid var(--border); }

@media (max-width: 700px) {
  .tareas-fila { flex-direction: column; }
  .tareas-col { min-width: 100%; }
}

/* V192d — Asignados y notas largas */
.tarea-asignados-picker {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.asignado-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s;
}
.asignado-btn.active[data-persona="Jonas"] { background: rgba(255,217,0,.15); border-color: #ffd900; color: #ffd900; }
.asignado-btn.active[data-persona="Sebas"] { background: rgba(125,211,252,.12); border-color: #7dd3fc; color: #7dd3fc; }
.asignado-btn.active[data-persona="Jorge"] { background: rgba(134,239,172,.12); border-color: #86efac; color: #86efac; }

.tarea-asignados-row { display: flex; flex-wrap: wrap; gap: 5px; }

/* Meta row: persona + fecha en una línea */
.tarea-meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: -1px;
}
.tarea-asignado-badge {
  font-size: 9px;
  font-weight: 900;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid;
  background: rgba(255,255,255,.05);
  letter-spacing: .3px;
}

/* V192f — Botones reordenar tareas */
.tarea-reorder-btns {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}
.tarea-order-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 11px;
  cursor: pointer;
  line-height: 1;
  transition: opacity .15s;
}
.tarea-order-btn:hover { opacity: .7; color: var(--white); }

/* V192g — Selector de persona en tareas */
.tareas-persona-selector {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.tareas-persona-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  transition: all .15s;
  letter-spacing: .3px;
}
.tareas-persona-btn:hover { opacity: .8; }
.tareas-persona-btn.active { background: rgba(255,217,0,.12); border-color: #ffd900; color: #ffd900; }
.tareas-persona-btn[data-persona="Jonas"].active { background: rgba(255,217,0,.12); border-color: #ffd900; color: #ffd900; }
.tareas-persona-btn[data-persona="Sebas"].active { background: rgba(125,211,252,.12); border-color: #7dd3fc; color: #7dd3fc; }
.tareas-persona-btn[data-persona="Jorge"].active { background: rgba(134,239,172,.12); border-color: #86efac; color: #86efac; }

/* V192h — Notas en subtareas */
.tarea-sub-row {
  display: flex;
  flex-direction: column;
}
.tarea-sub-main {
  display: flex;
  align-items: flex-start;
  gap: 7px;
}
.tarea-sub-check {
  flex-shrink: 0;
  margin-top: 3px;
  accent-color: #86efac;
  cursor: pointer;
}
.tarea-sub-details {
  flex: 1;
  min-width: 0;
}
.tarea-sub-summary {
  font-size: 12px;
  color: var(--white2);
  cursor: pointer;
  list-style: none;
  padding: 2px 0;
  line-height: 1.4;
  user-select: none;
}
.tarea-sub-summary::after {
  content: ' ✎';
  font-size: 10px;
  color: var(--muted);
  opacity: 0;
  transition: opacity .15s;
}
.tarea-sub-details:hover .tarea-sub-summary::after { opacity: 1; }
.tarea-sub-summary.hecha {
  text-decoration: line-through;
  color: var(--muted);
}
.tarea-sub-nota {
  width: 100%;
  margin-top: 6px;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 11px;
  color: var(--white2);
  resize: vertical;
  font-family: inherit;
  line-height: 1.5;
  box-sizing: border-box;
  transition: border-color .15s;
}
.tarea-sub-nota:focus {
  outline: none;
  border-color: rgba(255,217,0,.4);
}
.tarea-sub-nota::placeholder { color: var(--muted); }

/* V192i — Foto en tareas */
.tarea-foto-wrap {
  position: relative;
  width: fit-content;
}
.tarea-foto-thumb {
  max-width: 100%;
  max-height: 140px;
  border-radius: 8px;
  border: 1px solid var(--border);
  object-fit: cover;
  cursor: zoom-in;
  display: block;
  transition: opacity .15s;
}
.tarea-foto-thumb:hover { opacity: .88; }
.tarea-foto-del {
  position: absolute;
  top: 5px;
  right: 5px;
  background: rgba(0,0,0,.7);
  border: none;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 11px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s;
  backdrop-filter: blur(4px);
}
.tarea-foto-wrap:hover .tarea-foto-del { opacity: 1; }

/* V192k — Zona de paste para fotos */
.tarea-paste-zone {
  border: 2px dashed rgba(255,217,0,.3);
  border-radius: 12px;
  padding: 18px 16px;
  text-align: center;
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  transition: border-color .15s, background .15s;
  background: rgba(255,255,255,.03);
  user-select: none;
}
.tarea-paste-zone:hover {
  border-color: rgba(255,217,0,.55);
  background: rgba(255,217,0,.04);
  color: var(--white2);
}
.tarea-paste-zone:focus {
  outline: none;
  border-color: #ffd900;
}

/* V192n — Ctrl+V hint en expediente */
.expediente-paste-hint {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 4px;
}
.expediente-paste-hint kbd {
  background: rgba(255,255,255,.1);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 1px 6px;
  font-size: 11px;
  font-family: inherit;
  color: var(--white2);
}

/* ═══════════════════════════════════════════════
   V193 — Markdown en expediente
   ═══════════════════════════════════════════════ */
.exp-md { line-height: 1.65; }
.exp-md-h1 { font-size: 18px; font-weight: 900; color: var(--white); margin: 14px 0 6px; border-bottom: 1px solid rgba(255,255,255,.1); padding-bottom: 4px; }
.exp-md-h2 { font-size: 15px; font-weight: 800; color: var(--white); margin: 12px 0 4px; }
.exp-md-h3 { font-size: 13px; font-weight: 700; color: var(--orange); margin: 10px 0 3px; text-transform: uppercase; letter-spacing: .5px; }
.exp-md-p  { margin: 0 0 8px; color: var(--white2); font-size: 13px; }
.exp-md-ul { margin: 4px 0 8px 16px; padding: 0; color: var(--white2); font-size: 13px; }
.exp-md-ul li { margin-bottom: 3px; }
.exp-md-hr { border: none; border-top: 1px solid rgba(255,255,255,.12); margin: 12px 0; }

/* Chivato markdown en modal */
.exp-md-chivato {
  background: rgba(255,217,0,.05);
  border: 1px solid rgba(255,217,0,.15);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
  font-size: 11px;
  color: var(--muted);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px 16px;
}
.exp-md-chivato-title {
  grid-column: 1/-1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,217,0,.5);
  margin-bottom: 4px;
}
.exp-md-chivato code {
  background: rgba(255,255,255,.08);
  border-radius: 4px;
  padding: 1px 5px;
  font-family: monospace;
  font-size: 11px;
  color: var(--white2);
}

/* V193d — Barra de herramientas Markdown */
.exp-toolbar {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 6px 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border);
  border-bottom: none;
  border-radius: 10px 10px 0 0;
}
.exp-tb-btn {
  background: rgba(255,255,255,.07);
  border: 1px solid var(--border);
  color: var(--white2);
  border-radius: 6px;
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background .12s, color .12s;
  font-family: inherit;
  min-width: 32px;
}
.exp-tb-btn:hover {
  background: rgba(255,217,0,.15);
  border-color: rgba(255,217,0,.3);
  color: #ffd900;
}
.exp-tb-sep {
  width: 1px;
  height: 18px;
  background: var(--border);
  margin: 0 3px;
}
.exp-tb-color{ min-width:26px; padding:4px 8px; font-size:15px; line-height:1 }
.exp-tb-preview-toggle.active{ background:rgba(255,217,0,.18); border-color:rgba(255,217,0,.4); color:#ffd900 }
/* Textarea conectado a la toolbar */
#modal-expediente-contenido {
  border-radius: 0 !important;
  border-top: none !important;
  border-bottom: none !important;
  min-height: 260px;
  max-height: 420px;
  resize: vertical;
  overflow-y: auto;
  line-height: 1.65;
  font-size: 13px;
}
/* V222: vista previa en vivo — mismo marco visual que el textarea, pegada debajo */
.exp-md-preview{
  border: 1px solid var(--border);
  border-top: 1px dashed var(--border);
  border-radius: 0 0 10px 10px;
  padding: 12px 14px;
  background: rgba(255,255,255,.02);
  max-height: 260px;
  overflow-y: auto;
  font-size: 13px;
  line-height: 1.6;
  color: var(--white2);
}
.exp-md-preview-empty{ color:var(--muted); font-style:italic }
.exp-md-color-rojo{ color:#ef4444; font-weight:700 }
.exp-md-color-verde{ color:#22c55e; font-weight:700 }
.exp-md-color-amarillo{ color:#FFD900; font-weight:700 }
.exp-md-color-azul{ color:#7dd3fc; font-weight:700 }
.exp-md-link{ color:#FFD900; text-decoration:underline; text-underline-offset:2px }
.exp-md-link:hover{ color:#fff2a8 }

/* ── V204 EXPEDIENTE: meta header mejorado + histórico ── */
.expediente-entry-body{padding:0 16px 16px 46px;border-top:1px solid rgba(255,255,255,.055)}
.exp-entry-meta-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 0 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  margin-bottom:12px;
}
.exp-meta-chip{
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.055);
  border:0.5px solid rgba(255,255,255,.1);
  border-radius:6px;
  padding:4px 9px;
  font-size:11px;font-weight:700;color:var(--white2);
}
.exp-meta-chip .exp-meta-icon{font-size:12px;opacity:.7}
.exp-meta-chip.operator{background:rgba(255,217,0,.08);border-color:rgba(255,217,0,.2);color:var(--yellow)}
.exp-meta-chip.date-chip{background:rgba(96,165,250,.08);border-color:rgba(96,165,250,.2);color:#93c5fd}
.exp-meta-chip.updated{color:var(--muted);font-weight:600}
/* Historial de actualizaciones mejorado */
.exp-history-wrap{margin-top:14px;border-top:1px solid rgba(255,255,255,.06);padding-top:12px}
.exp-history-title{font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.exp-main-collapse{border:0.5px solid rgba(255,255,255,.07);border-left:2px solid rgba(255,255,255,.12);border-radius:8px;margin-bottom:12px;overflow:hidden;background:rgba(255,255,255,.02);transition:background .12s,border-color .12s}
.exp-main-collapse:hover{background:rgba(255,255,255,.04);border-left-color:rgba(255,217,0,.35)}
.exp-main-collapse[open]{background:rgba(255,255,255,.03);border-left-color:rgba(255,217,0,.55)}
/* V212: el cajon de Informacion principal replica EXACTAMENTE la geometria de .upd-summary
   (dot + cuerpo en columna + chevron a la derecha). Lo unico que cambia es el color (dorado
   en vez de azul) y el texto. Ver .upd-summary / .upd-summary-body / .upd-chev mas abajo. */
.exp-main-collapse-summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:flex-start;gap:8px;padding:9px 12px 9px 10px;text-align:left}
.exp-main-collapse-summary::-webkit-details-marker{display:none}
.exp-main-dot-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;background:var(--yellow)}
.exp-main-collapse-summary-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}
.exp-main-collapse-label{font-size:13px;font-weight:900;color:var(--yellow);text-transform:uppercase;letter-spacing:.04em;line-height:1.3}
.exp-main-collapse-chev{color:var(--muted);font-size:9px;flex-shrink:0;margin-top:4px;transition:transform .15s}
.exp-main-collapse-preview{font-size:12px;font-weight:400;color:rgba(255,255,255,.5);line-height:1.45}
.exp-main-collapse[open] .exp-main-collapse-preview{display:none}
.exp-main-collapse[open] .exp-main-collapse-chev{transform:rotate(90deg)}
.exp-main-collapse-body{padding:0 12px 12px 30px}
.exp-line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.exp-photo-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.05);border:0.5px solid rgba(255,255,255,.12);border-radius:999px;padding:2px 8px;margin-top:2px;width:fit-content}
.exp-entry-rel-time{font-size:10px;color:var(--muted);font-weight:600;white-space:nowrap;flex-shrink:0}
.exp-history-item{
  display:flex;gap:10px;
  padding:8px 0;
  border-bottom:0.5px solid rgba(255,255,255,.04);
  position:relative;padding-left:16px;
}
.exp-history-item:last-child{border-bottom:0}
.exp-history-item::before{
  content:'';position:absolute;left:4px;top:14px;
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.2);
  border:1.5px solid rgba(255,255,255,.12);
  flex-shrink:0;
}
.exp-history-dot-line{
  position:absolute;left:7px;top:21px;bottom:-1px;
  width:1px;background:rgba(255,255,255,.05);
}
.exp-history-item:last-child .exp-history-dot-line{display:none}
.exp-history-content{flex:1;min-width:0}

/* V211 — Fila de identidad (autor + tipo de nota) en información principal y actualizaciones.
   Dorado = nota original ("Principal"), azul = nota posterior ("Actualización").
   Reutiliza la paleta existente: var(--yellow) y el azul de los chips de fecha. */
.exp-id-row{display:flex;align-items:center;gap:7px;margin-bottom:6px;flex-wrap:wrap}
.exp-id-avatar{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;flex-shrink:0}
.exp-id-avatar.principal{background:var(--yellow);color:#1a1400}
.exp-id-avatar.update{background:rgba(96,165,250,.18);color:#93c5fd}
.exp-id-pill{font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;flex-shrink:0}
.exp-id-pill.principal{background:var(--yellow);color:#1a1400}
.exp-id-pill.update{background:rgba(96,165,250,.18);color:#93c5fd;border:0.5px solid rgba(96,165,250,.3)}
.exp-id-meta{font-size:10px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.exp-history-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.exp-history-author{font-size:11px;font-weight:800;color:var(--yellow)}
.exp-history-date{font-size:10px;color:var(--muted)}
.exp-history-text{font-size:12px;color:rgba(255,255,255,.65);line-height:1.5;white-space:pre-wrap}

/* V194 — Etiqueta Moroso */
.alumno-tagline span.tag-moroso {
  background: rgba(239,68,68,.2);
  border-color: rgba(239,68,68,.6);
  color: #ff4444;
  font-weight: 900;
  animation: tag-blink 1s ease-in-out infinite;
}
/* Chip moroso en panel operativo y expediente */
.op-tag-choice.moroso-active,
.expediente-cat-badge.moroso {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.5);
  color: #ff4444;
  animation: tag-blink 1s ease-in-out infinite;
}

/* V194b — Morosidad y conflicto en expediente */
.expediente-cat-dot.morosidad { background:#ef4444; color:#ef4444; }
.expediente-cat-dot.conflicto { background:#f97316; color:#f97316; }
.expediente-cat-pill.morosidad { background:rgba(239,68,68,.18); border-color:rgba(239,68,68,.5); color:#ff6b6b; animation:moroso-blink 1s ease-in-out infinite; }
.expediente-cat-pill.conflicto { background:rgba(249,115,22,.14); border-color:rgba(249,115,22,.4); color:#fdba74; }

/* Morosidad parpadea en rojo */
.expediente-cat-dot.moroso-dot {
  background: #ef4444 !important;
  animation: moroso-blink 1s ease-in-out infinite;
  box-shadow: 0 0 6px rgba(239,68,68,.6);
}
@keyframes moroso-blink {
  0%, 100% { opacity: 1; box-shadow: 0 0 6px rgba(239,68,68,.6); }
  50%       { opacity: .4; box-shadow: none; }
}

/* V194f — Etiqueta Ghosting */
.alumno-tagline span.tag-ghosting {
  background: rgba(139,92,246,.18);
  border-color: rgba(139,92,246,.5);
  color: #c4b5fd;
  font-weight: 900;
  animation: tag-blink 1.5s ease-in-out infinite;
}

/* V194g — Ghosting en expediente */
.expediente-cat-dot.ghosting { background:#a855f7; color:#a855f7; animation: moroso-blink 1.5s ease-in-out infinite; }
.expediente-cat-pill.ghosting { background:rgba(139,92,246,.15); border-color:rgba(139,92,246,.4); color:#c4b5fd; animation: moroso-blink 1.5s ease-in-out infinite; }

/* V194k — Zoom hacia cursor + drag en lightbox */
.lightbox-canvas {
  overflow: hidden;
  width: 100%;
  max-height: 75vh;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  position: relative;
}
.lightbox-canvas:active { cursor: grabbing; }
#lightbox-img {
  max-width: 100%;
  max-height: 75vh;
  transform-origin: center center;
  user-select: none;
  pointer-events: none;
}
.lightbox-zoom-btns {
  display: flex;
  gap: 4px;
  margin-left: auto;
}
/* V214: botón de descarga — hereda la geometría de los de zoom, con acento dorado */
.lightbox-zoom-btns button.lightbox-download-btn {
  background: rgba(255,217,0,.14);
  border-color: rgba(255,217,0,.4);
  margin-left: 6px;
}
.lightbox-zoom-btns button.lightbox-download-btn:hover {
  background: rgba(255,217,0,.28);
}
.lightbox-zoom-btns button {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  color: var(--white);
  border-radius: 8px;
  width: 32px;
  height: 32px;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
  transition: background .12s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox-zoom-btns button:hover { background: rgba(255,217,0,.2); color: #ffd900; }

/* ═══════════════════════════════════════════════
   V195f — Protocolo Calendario Operativo (rediseño visual)
   ═══════════════════════════════════════════════ */

.pcal-section-label {
  font-size: 10px; font-weight: 900; letter-spacing: 2.5px;
  text-transform: uppercase; color: var(--muted); margin: 20px 0 12px;
  display: flex; align-items: center; gap: 8px;
}
.pcal-section-label::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}

/* ── Grids ─────────────────────────────────────── */
.pcal-grid-semana {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  align-items: start;
}
.pcal-grid-finmes {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 10px;
  align-items: start;
}
.pcal-fila-especial { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 1200px) {
  .pcal-grid-semana { grid-template-columns: repeat(3,1fr); }
  .pcal-grid-finmes { grid-template-columns: repeat(4,1fr); }
}
@media (max-width: 700px) {
  .pcal-grid-semana, .pcal-grid-finmes { grid-template-columns: 1fr; }
}

/* ── Columna ───────────────────────────────────── */
.pcal-col {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: border-color .2s;
}
.pcal-col.pcal-hoy {
  border-color: rgba(255,217,0,.5);
  background: rgba(255,217,0,.04);
  box-shadow: 0 0 0 1px rgba(255,217,0,.12), 0 4px 20px rgba(255,217,0,.06);
}

/* ── Cabecera del día ──────────────────────────── */
.pcal-col-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px 10px;
  border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.03);
}
.pcal-col.pcal-hoy .pcal-col-head {
  background: rgba(255,217,0,.07);
}
.pcal-dia-titulo {
  font-size: 13px;
  font-weight: 900;
  color: var(--white);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.pcal-hoy-badge {
  background: #ffd900; color: #1a1a1a;
  font-size: 9px; font-weight: 900;
  padding: 2px 8px; border-radius: 999px; letter-spacing: 1.5px;
}

/* ── Lista de tareas ───────────────────────────── */
.pcal-tareas-list {
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

/* ── Cabecera de categoría ─────────────────────── */
.pcal-cat-header {
  padding: 4px 8px;
  border-radius: 6px;
  margin: 4px 0 2px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 5px;
}

/* ── Tarea individual ──────────────────────────── */
.pcal-tarea {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 8px 10px;
  background: rgba(255,255,255,.04);
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.07);
  border-left-width: 2px;
  border-left-style: solid;
  position: relative;
  transition: background .12s;
}
.pcal-tarea:hover {
  background: rgba(255,255,255,.07);
}

/* Badge de persona — círculo con inicial */
.pcal-persona-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 900;
  padding: 3px 9px 3px 4px;
  border-radius: 999px;
  border: 1px solid;
  width: fit-content;
  letter-spacing: .3px;
}
.pcal-persona-badge::before {
  content: attr(data-inicial);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: currentColor;
  color: #1a1a1a;
  font-size: 9px;
  font-weight: 900;
  flex-shrink: 0;
}

/* Texto de tarea — más grande y legible */
.pcal-tarea-texto {
  font-size: 13px !important;
  color: var(--white);
  line-height: 1.5;
  font-weight: 400;
}

/* Botones de edición */
.pcal-tarea-btns {
  display: flex; gap: 3px;
  position: absolute; top: 6px; right: 6px;
  opacity: 0; transition: opacity .15s;
}
.pcal-tarea:hover .pcal-tarea-btns { opacity: 1; }
.pcal-tarea-btns button {
  background: rgba(255,255,255,.1); border: 1px solid var(--border);
  border-radius: 6px; padding: 2px 6px; font-size: 11px; cursor: pointer;
  color: var(--white2);
}
.pcal-tarea-btns button:hover { background: rgba(255,255,255,.18); }

.pcal-empty-col {
  font-size: 12px; color: var(--muted); padding: 12px 4px; text-align: center;
}
.pcal-add-btn {
  margin: 4px 8px 10px;
  background: rgba(255,255,255,.03); border: 1px dashed rgba(255,255,255,.1);
  color: var(--muted); border-radius: 10px; padding: 8px;
  font-size: 12px; cursor: pointer; text-align: center;
  transition: all .15s;
}
.pcal-add-btn:hover { background: rgba(255,255,255,.07); color: var(--white2); border-color: rgba(255,255,255,.2); }

/* V195e — Panel gestión categorías */
.pcal-cats-panel {
  margin-top: 28px;
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  max-width: 480px;
}
.pcal-cats-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--white2);
  border-bottom: 1px solid var(--border);
}
.pcal-cat-add-btn {
  background: rgba(255,217,0,.1);
  border: 1px solid rgba(255,217,0,.25);
  color: #ffd900;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.pcal-cat-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: background .12s;
}
.pcal-cat-row:hover { background: rgba(255,255,255,.03); }
.pcal-cat-dot-sm {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.pcal-cat-row-label {
  flex: 1;
  font-size: 12px;
  color: var(--white2);
}
.pcal-cat-row-btns {
  display: flex;
  gap: 4px;
  opacity: 0;
  transition: opacity .15s;
}
.pcal-cat-row:hover .pcal-cat-row-btns { opacity: 1; }
.pcal-cat-row-btns button {
  background: rgba(255,255,255,.07);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 3px 7px;
  font-size: 12px;
  cursor: pointer;
}

/* Onboarding — estado principal naranja */
.alumno-op-label.onboarding { background:rgba(249,115,22,.15); color:#fb923c; border:1px solid rgba(249,115,22,.35); }
.op-badge.onboarding { background:rgba(249,115,22,.2); color:#fb923c; border-color:rgba(249,115,22,.4); }
.frame-onboarding .status-ring { box-shadow:0 0 0 3px #fb923c; }
.frame-onboarding { border-color:rgba(249,115,22,.35); }
.quick-state-pill.onboarding { background:rgba(249,115,22,.15); color:#fb923c; border:1px solid rgba(249,115,22,.35); }

/* Cambio físico — expediente y etiqueta */
.expediente-cat-dot.cambio_fisico { background:#fb923c; color:#fb923c; }
.expediente-cat-pill.cambio_fisico { background:rgba(251,146,60,.14); border-color:rgba(251,146,60,.4); color:#fdba74; }
.cf-metricas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
  margin: 8px 0;
}
.cf-metrica {
  background: rgba(251,146,60,.08);
  border: 1px solid rgba(251,146,60,.2);
  border-radius: 10px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cf-metrica-label { font-size: 10px; color: var(--muted); font-weight: 700; letter-spacing: .5px; }
.cf-metrica-val   { font-size: 15px; font-weight: 900; color: #fdba74; }

/* ═══════════════════════════════════════════════
   V197 — Protocolos de pasos
   ═══════════════════════════════════════════════ */

/* Subpestañas */
.proto-subtabs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}
.proto-subtab {
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.proto-subtab:hover { color: var(--white2); border-color: rgba(255,255,255,.2); }
.proto-subtab.active {
  background: rgba(255,217,0,.12);
  border-color: rgba(255,217,0,.4);
  color: #ffd900;
}
.proto-subtab-add {
  background: rgba(99,102,241,.1);
  border-color: rgba(99,102,241,.3);
  color: #a5b4fc;
}
.proto-subtab-add:hover { background: rgba(99,102,241,.18); color: #c7d2fe; }

/* Header del protocolo */
.proto-pasos-header {
  margin-bottom: 20px;
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.proto-pasos-titulo {
  font-size: 22px;
  font-weight: 900;
  color: var(--white);
  cursor: pointer;
  border-bottom: 2px dashed rgba(255,255,255,.15);
  padding-bottom: 2px;
  transition: border-color .15s;
}
.proto-pasos-titulo:hover { border-color: rgba(255,217,0,.5); color: #ffd900; }
.proto-pasos-hint { font-size: 11px; color: var(--muted); }

/* Lista de pasos */
.proto-pasos-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  counter-reset: pasos;
}
.proto-paso {
  background: var(--dark2);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .15s;
}
.proto-paso:hover { border-color: rgba(255,255,255,.15); }

.proto-paso-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(255,255,255,.03);
  border-bottom: 1px solid var(--border);
}
.proto-paso-num {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #ffd900;
  background: rgba(255,217,0,.1);
  border: 1px solid rgba(255,217,0,.25);
  border-radius: 999px;
  padding: 2px 10px;
  flex-shrink: 0;
}
.proto-paso-titulo {
  flex: 1;
  font-size: 14px;
  font-weight: 800;
  color: var(--white);
}
.proto-paso-btns {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.proto-paso-btns button {
  background: rgba(255,255,255,.07);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 4px 9px;
  font-size: 12px;
  cursor: pointer;
  color: var(--white2);
  transition: background .12s;
}
.proto-paso-btns button:hover { background: rgba(255,255,255,.14); }

.proto-paso-desc {
  padding: 10px 16px 6px;
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
  line-height: 1.5;
}

/* Texto copiable */
.proto-paso-texto-wrap {
  position: relative;
  padding: 10px 16px 14px;
}
.proto-paso-texto {
  background: rgba(0,0,0,.3);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 13px;
  color: var(--white2);
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.6;
  margin: 0 0 8px;
}
.proto-copy-btn {
  background: rgba(255,217,0,.1);
  border: 1px solid rgba(255,217,0,.25);
  color: #ffd900;
  border-radius: 999px;
  padding: 5px 16px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s;
}
.proto-copy-btn:hover { background: rgba(255,217,0,.2); }

.proto-empty {
  text-align: center;
  color: var(--muted);
  padding: 40px 20px;
  font-size: 14px;
  background: var(--dark2);
  border: 1px dashed var(--border);
  border-radius: 16px;
}

/* ═══════════════════════════════════════════════
   V197b — Cards de pasos horizontal
   ═══════════════════════════════════════════════ */
.proto-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  align-items: start;
}
.proto-card {
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  padding: 16px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .15s, box-shadow .15s;
  min-height: 140px;
}
.proto-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
}
.proto-card-num {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  border: 1px solid;
  border-radius: 999px;
  padding: 2px 10px;
  width: fit-content;
}
.proto-card-titulo {
  font-size: 14px;
  font-weight: 800;
  color: var(--white);
  line-height: 1.3;
  flex: 1;
}
.proto-card-desc {
  font-size: 11px;
  color: var(--muted);
  font-style: italic;
  line-height: 1.4;
}
.proto-card-footer {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 4px;
  flex-wrap: wrap;
}
.proto-card-edit {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 7px;
  padding: 3px 8px;
  font-size: 11px;
  cursor: pointer;
  color: var(--white2);
  transition: background .12s;
}
.proto-card-edit:hover { background: rgba(255,255,255,.16); }
.proto-card-hint {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255,255,255,.4);
  letter-spacing: .3px;
}

/* V197c — Modal paso mejorado */
.mpp-card {
  max-width: 660px;
  max-height: 88dvh;
  overflow-y: auto;
  border-radius: 20px;
}
.mpp-desc {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 14px;
  font-style: italic;
}
.mpp-texto {
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 16px 18px;
  font-size: 13px;
  color: var(--white2);
  line-height: 1.7;
  margin-bottom: 16px;
  word-break: break-word;
}
.mpp-texto p {
  margin: 0 0 2px;
  min-height: 1em;
}
.mpp-texto p:empty { margin-bottom: 8px; }

/* ═══════════════════════════════════════════════
   V198 — Actualizaciones colapsables + secciones
   ═══════════════════════════════════════════════ */

/* Actualización colapsable */
/* ── V204c ACTUALIZACIONES REDISEÑADAS ── */
.upd-collapsible {
  border: 0.5px solid rgba(255,255,255,.07);
  border-left: 2px solid rgba(255,255,255,.12);
  border-radius: 8px;
  margin-bottom: 5px;
  overflow: hidden;
  background: rgba(255,255,255,.025);
  transition: background .12s, border-color .12s;
}
.upd-collapsible:hover { background: rgba(255,255,255,.045); border-left-color: rgba(255,217,0,.4); }
.upd-collapsible[open] { background: rgba(255,255,255,.04); border-left-color: rgba(255,217,0,.6); }

/* Summary */
.upd-summary {
  padding: 9px 12px 9px 10px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  text-align: left;
}
.upd-summary::-webkit-details-marker { display: none; }

/* Dot indicador */
.upd-dot-indicator {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
  background: rgba(255,255,255,.3);
}
.upd-dot-indicator.sev-rojo { background: #ef4444; }
.upd-dot-indicator.sev-amarillo { background: var(--yellow); }
.upd-dot-indicator.sev-verde { background: #4ade80; }
.upd-dot-indicator.sev-azul { background: #60a5fa; }

/* Cuerpo del summary */
.upd-summary-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  text-align: left;
}

/* Subtítulo — protagonista */
.upd-subtitulo {
  font-size: 13px;
  font-weight: 900;
  color: var(--yellow);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.3;
}

/* Preview — primera línea del contenido */
.upd-preview {
  font-size: 12px;
  color: rgba(255,255,255,.45);
  margin: 0;
  max-width: 100%;
  font-style: italic;
  line-height: 1.4;
}
.upd-collapsible[open] .upd-preview { display: none; }

/* V211: .upd-meta-str eliminada — la sustituye .exp-id-row / .exp-id-meta */

/* Chevron */
.upd-chev {
  font-size: 9px;
  color: var(--muted);
  flex-shrink: 0;
  margin-top: 4px;
  transition: transform .15s;
}
.upd-collapsible[open] .upd-chev { transform: rotate(90deg); }

/* Badge de sección (legacy, por si existe) */
.upd-seccion-badge {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .3px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(99,102,241,.18);
  border: 1px solid rgba(99,102,241,.4);
  color: #c4b5fd;
}

/* Cuerpo expandido */
.upd-body {
  padding: 10px 14px 12px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.upd-contenido-full {
  font-size: 13px;
  color: var(--white2);
  line-height: 1.65;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Agrupación por sección en el historial */
.expediente-history-seccion {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #a5b4fc;
  padding: 8px 0 4px;
  border-bottom: 1px solid rgba(99,102,241,.2);
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ═══════════════════════════════════════════════
   V199 — Buscador expediente + grupos colapsables + clases
   ═══════════════════════════════════════════════ */

/* Buscador */
.exp-search-bar {
  margin-bottom: 14px;
}
.exp-search-bar input {
  width: 100%;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 16px;
  font-size: 13px;
  color: var(--white);
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color .15s;
}
.exp-search-bar input:focus {
  outline: none;
  border-color: rgba(255,217,0,.4);
  background: rgba(255,217,0,.04);
}
.exp-search-bar input::placeholder { color: var(--muted); }

/* Grupos colapsables mejorados */
.expediente-group > summary,
.expediente-group-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  background: rgba(255,255,255,.03);
  border-radius: 10px;
  transition: background .12s;
}
.expediente-group > summary:hover,
.expediente-group-summary:hover { background: rgba(255,255,255,.07); }
.expediente-group > summary::-webkit-details-marker,
.expediente-group-summary::-webkit-details-marker { display: none; }
.expediente-group-label { font-size: 12px; font-weight: 900; color: var(--white2); letter-spacing: .5px; }
.expediente-group-count {
  background: rgba(255,255,255,.1);
  border-radius: 999px;
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
}

/* Clases regalo mejorado */
.clases-subblock { padding: 14px 16px !important; }
.clases-header { font-size: 13px; font-weight: 900; color: var(--white); margin-bottom: 12px; }
.clases-stats {
  display: flex;
  gap: 16px;
  margin-bottom: 10px;
}
.clases-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex: 1;
  background: rgba(255,255,255,.04);
  border-radius: 10px;
  padding: 10px 6px;
}
.clases-num { font-size: 22px; font-weight: 900; }
.clases-label { font-size: 10px; color: var(--muted); font-weight: 700; letter-spacing: .5px; }
.clases-barra {
  height: 6px;
  background: rgba(255,255,255,.08);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 4px;
}
.clases-barra-fill { height: 100%; border-radius: 999px; transition: width .4s ease; }
.clases-done { font-size: 12px; color: #4ade80; text-align: center; margin-top: 8px; font-weight: 700; }
.clases-usada-row { display: block; border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; margin-bottom: 6px; background: rgba(255,255,255,.015); }
.clases-usada-summary { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; cursor: pointer; list-style: none; }
.clases-usada-summary::-webkit-details-marker { display: none; }
.clases-usada-summary::before { content: '▸'; color: var(--muted); font-size: 11px; transition: transform .15s; }
.clases-usada-row[open] .clases-usada-summary::before { transform: rotate(90deg); }
.clases-usada-body { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border); display: flex; flex-direction: column; gap: 8px; }
.clases-usada-sin-resumen { color: var(--muted); font-size: 12px; font-style: italic; }
.clases-usada-num {
  background: rgba(96,165,250,.15);
  color: #93c5fd;
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 900;
}

/* V199c — Badge clases en card + botón marcar */
.alumno-clases-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(96,165,250,.12);
  border: 1px solid rgba(96,165,250,.3);
  color: #93c5fd;
  border-radius: 999px;
  padding: 2px 9px;
  font-size: 10px;
  font-weight: 900;
  margin: 2px 6px 4px;
}
.clases-marcar-btn {
  display: block;
  width: 100%;
  margin-top: 10px;
  background: rgba(74,222,128,.1);
  border: 1px solid rgba(74,222,128,.3);
  color: #4ade80;
  border-radius: 10px;
  padding: 9px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  transition: background .15s;
}
.clases-marcar-btn:hover { background: rgba(74,222,128,.18); }

/* ── V206 TIMELINE CRONOLÓGICO ── */
.exp-view-toggle{display:flex;gap:4px;margin-left:auto;background:rgba(255,255,255,.06);border-radius:8px;padding:3px}
.exp-view-btn{background:transparent;border:0;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;transition:background .1s,color .1s}
.exp-view-btn.active{background:rgba(255,255,255,.1);color:var(--white)}
.exp-view-btn:hover{color:var(--white2)}

/* Grupos por mes */
.exp-tl-month-group{margin-bottom:12px}
.exp-tl-month-header{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;
  background:rgba(255,255,255,.04);
  border:0.5px solid rgba(255,255,255,.08);
  border-radius:10px;
  cursor:pointer;
  user-select:none;
  transition:background .1s;
}
.exp-tl-month-header:hover{background:rgba(255,255,255,.07)}
.exp-tl-month-label{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--yellow)}
.exp-tl-month-count{font-size:11px;color:var(--muted);margin-left:auto}
.exp-tl-month-chev{font-size:9px;color:var(--muted);transition:transform .15s}
.exp-tl-month-group.open .exp-tl-month-chev{transform:rotate(90deg)}
.exp-tl-month-body{display:none;padding:6px 0 0 16px;border-left:2px solid rgba(255,255,255,.07);margin-left:18px}
.exp-tl-month-group.open .exp-tl-month-body{display:block}

/* Item de timeline */
.exp-tl-chron-item{
  display:flex;gap:10px;
  padding:8px 10px;
  border-radius:8px;
  cursor:pointer;
  transition:background .1s;
  margin-bottom:4px;
  position:relative;
}
.exp-tl-chron-item:hover{background:rgba(255,255,255,.04)}
.exp-tl-chron-left{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;width:50px}
.exp-tl-chron-dia{font-size:10px;font-weight:700;color:var(--muted);text-transform:capitalize;white-space:nowrap}
.exp-tl-chron-body{flex:1;min-width:0}
.exp-tl-chron-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:3px}
.exp-tl-chron-title{font-size:13px;font-weight:700;color:var(--white);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-tl-chron-autor{font-size:10px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.exp-tl-chron-sneak{font-size:11px;color:rgba(255,255,255,.38);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.exp-tl-chron-actions{display:none;gap:4px}
.exp-tl-chron-item.open .exp-tl-chron-actions{display:flex}
.exp-tl-chron-item.open .exp-tl-chron-sneak{white-space:normal;overflow:visible;text-overflow:unset}

/* V237: fila de actualización dentro del timeline — mismo esqueleto que la
   entrada principal, ligeramente atenuada para distinguirla de un vistazo. */
.exp-tl-chron-item--update{opacity:.88}
.exp-tl-dot-ring--update{border-style:dashed}
.exp-tl-chron-update-tag{font-size:10px;font-weight:700;color:var(--muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}

.admin-alert-briefing{margin:4px 0 18px}.admin-alert-briefing:empty{margin:0}.briefing-section .pcal-tarea{margin:0 14px 8px}

/* ── V215: Protocolo con fases + Clase presencial ───────────────────────── */
/* La fase replica la mecánica visual del dolor: badge en la cabecera, caja grande
   en la ficha y caja pequeña en cada actualización. Sin escala /10: es libre. */
.expediente-cat-pill.protocolo_fase{background:rgba(255,217,0,.16);color:#FFD900;border:0.5px solid rgba(255,217,0,.35)}
.expediente-cat-pill.clase_presencial{background:rgba(34,211,238,.16);color:#67e8f9;border:0.5px solid rgba(34,211,238,.35)}
.expediente-cat-dot.protocolo_fase{background:#FFD900}
.expediente-cat-dot.clase_presencial{background:#22d3ee}
.exp-tl-dot-inner.protocolo_fase{background:#FFD900}
.exp-tl-dot-inner.clase_presencial{background:#22d3ee}

.expediente-fase-badge{font-size:10px;font-weight:900;padding:2px 8px;border-radius:999px;background:var(--yellow);color:#1a1400;letter-spacing:.04em;flex-shrink:0}
.expediente-subcat-badge{font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.7);border:0.5px solid rgba(255,255,255,.14);flex-shrink:0}
.expediente-presencial-badge{font-size:10px;font-weight:900;padding:2px 8px;border-radius:999px;background:rgba(34,211,238,.16);color:#67e8f9;border:0.5px solid rgba(34,211,238,.35);flex-shrink:0}

.proto-subcat-pill{display:inline-block;margin-left:8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.7)}
.proto-fase-big,.presencial-big{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:10px;padding:12px 14px;border-radius:10px;
  background:rgba(255,217,0,.08);border:1px solid rgba(255,217,0,.25);
}
.proto-fase-big span,.presencial-big span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.proto-fase-big strong,.presencial-big strong{font-size:34px;font-weight:900;line-height:1;color:var(--yellow)}
.presencial-big{background:rgba(34,211,238,.08);border-color:rgba(34,211,238,.25)}
.presencial-big strong{color:#67e8f9}
.presencial-hint{margin-top:8px;font-size:11px;color:var(--muted);font-style:italic}

/* V216: la caja grande de la entrada principal es la fase HISTÓRICA (la del día en que
   se abrió el protocolo). La fase global actual va debajo, en una línea aparte, y en el
   badge de la cabecera. */
.proto-fase-actual{margin-top:8px;font-size:12px;font-weight:700;color:var(--muted)}
.proto-fase-actual strong{color:var(--yellow);font-weight:900}
.proto-tipo-hint{margin-top:6px;font-size:11px;color:var(--muted)}

.upd-fase-box{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:6px 0;padding:7px 10px;border-radius:8px;
  background:rgba(255,217,0,.08);border:0.5px solid rgba(255,217,0,.25);
}
.upd-fase-box span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.upd-fase-box strong{font-size:20px;font-weight:900;line-height:1;color:var(--yellow)}

/* ── V238: Panel de Certificación ────────────────────────────────────── */
.adm-cert-btn{background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:8px;
  padding:3px 8px;font-size:13px;cursor:pointer;margin-left:6px;vertical-align:middle;transition:background .15s}
.adm-cert-btn:hover{background:rgba(255,217,0,.12);border-color:rgba(255,217,0,.35)}

#screen-certificacion{padding:20px 18px 60px;max-width:900px;margin:0 auto;width:100%}
.cert-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.cert-title{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:1px;display:flex;align-items:center;gap:8px}
.cert-sub{font-size:12px;color:var(--gray);margin-top:4px;max-width:520px}
.cert-back-btn{background:rgba(167,139,250,.14);border:1px solid rgba(167,139,250,.4);color:#c4b5fd;
  border-radius:10px;padding:8px 14px;font-size:12px;font-weight:800;cursor:pointer}

.cert-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.cert-badge{background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.35);color:#86efac;
  border-radius:999px;padding:6px 12px;font-size:11px;font-weight:800}

.cert-run-btn{display:block;width:100%;max-width:340px;margin:0 auto 14px;background:#4ade80;color:#052e16;
  border:0;border-radius:12px;padding:14px 20px;font-size:14px;font-weight:900;text-transform:uppercase;
  letter-spacing:.04em;cursor:pointer;transition:opacity .15s}
.cert-run-btn:disabled{opacity:.65;cursor:wait}
.cert-progress-track{height:5px;border-radius:99px;background:var(--dark2);overflow:hidden;margin-bottom:22px}
.cert-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#a78bfa,#4ade80);transition:width .3s}

.cert-modulos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:20px}
.cert-mod-card{border-radius:12px;padding:12px 14px;border:1px solid rgba(74,222,128,.3);background:rgba(74,222,128,.06)}
.cert-mod-card.fail{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
.cert-mod-title{font-size:12px;font-weight:800;margin-bottom:4px}
.cert-mod-card.ok .cert-mod-title{color:#86efac}
.cert-mod-card.fail .cert-mod-title{color:#fca5a5}
.cert-mod-count{font-size:16px;font-weight:900;font-family:ui-monospace,monospace}
.cert-mod-card.ok .cert-mod-count{color:#4ade80}
.cert-mod-card.fail .cert-mod-count{color:#ef4444}
.cert-fail-detail{font-size:10px;color:#fca5a5;margin-top:6px;line-height:1.4}

.cert-resumen-box{border-radius:14px;padding:16px;margin-bottom:20px;font-family:ui-monospace,monospace;font-size:12px}
.cert-resumen-box.ok{border:1px solid rgba(74,222,128,.4);background:rgba(74,222,128,.07)}
.cert-resumen-box.fail{border:1px solid rgba(239,68,68,.4);background:rgba(239,68,68,.07)}
.cert-resumen-title{font-family:'Outfit',sans-serif;font-size:14px;font-weight:900;margin-bottom:8px}
.cert-resumen-box.ok .cert-resumen-title{color:#4ade80}
.cert-resumen-box.fail .cert-resumen-title{color:#ef4444}
.cert-resumen-line{color:var(--white2);line-height:1.7}

/* ═══ V248 ENTRENAMIENTOS (calendario + registro; colores de La Bestia) ═══ */
#entrenos-container{margin-top:22px;--pat:#FFD900;--pat-bg:rgba(255,217,0,.10)}
.entreno-titulo-seccion{font-family:'Outfit',sans-serif;font-size:18px;font-weight:900;margin-bottom:12px}
.entreno-admin{margin-bottom:12px}
.entreno-gold{color:#FFD900;font-weight:700}
.pat-core{--pat:#25D366;--pat-bg:rgba(37,211,102,.12)}
.pat-empuje{--pat:#FF8C00;--pat-bg:rgba(255,140,0,.12)}
.pat-tiron{--pat:#FF3B30;--pat-bg:rgba(255,59,48,.12)}
.pat-piernas{--pat:#2D9CFF;--pat-bg:rgba(45,156,255,.12)}
.pat-otro{--pat:#FFD900;--pat-bg:rgba(255,217,0,.10)}
.entreno-cal{background:#0d0d0d;border:1px solid #2a2400;border-radius:14px;padding:12px;margin-bottom:14px}
.entreno-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.entreno-cal-mes{font-weight:800;color:#FFD900;font-size:16px}
.entreno-cal-nav{width:36px;height:36px;border-radius:10px;background:#161616;color:#FFD900;font-size:22px;line-height:1}
.entreno-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.entreno-cal-dow{text-align:center;font-size:11px;color:#9a9a9a;padding:2px 0}
.entreno-cal-vacio{min-height:42px}
.entreno-cal-dia{min-height:42px;border-radius:9px;background:#141414;color:#d8d8d0;font-size:13px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid transparent}
.entreno-cal-dia.tiene{background:#1a1a1a;color:#fff;font-weight:700}
.entreno-cal-dia.hoy{border-color:#FFD900;color:#FFD900}
.entreno-cal-dia.sel{background:#FFD900;color:#050505;border-color:#FFD900}
.entreno-cal-dia.hecho::after{content:"✓";position:absolute;top:2px;right:4px;font-size:10px;color:#25D366}
.entreno-cal-dia.sel.hecho::after{color:#050505}
.entreno-cal-puntos{display:flex;gap:3px}
.entreno-cal-puntos .punto{width:6px;height:6px;border-radius:50%;background:var(--pat);display:block}
.entreno-cal-dia.sel .punto{outline:1px solid #050505}
.entreno-cal-resumen{display:flex;justify-content:space-between;font-size:12px;color:#c8c8c0;margin-top:10px}
.entreno-dia-fecha{font-size:13px;color:#c8c8c0;margin:4px 2px 8px}
.entreno-sesion{border:1px solid color-mix(in srgb,var(--pat) 45%,#1f1f1f);border-left:4px solid var(--pat);border-radius:14px;margin-bottom:10px;background:linear-gradient(180deg,var(--pat-bg),#0d0d0d 70%);overflow:hidden}
.entreno-sesion-head{display:flex;gap:8px;align-items:center;width:100%;padding:12px 14px;background:none;color:#fff;text-align:left}
.entreno-chev{display:inline-block;color:var(--pat);font-size:22px;line-height:1;transition:transform .15s}
.entreno-sesion.abierta .entreno-chev{transform:rotate(90deg)}
.entreno-titulo{font-weight:800;flex:1;min-width:0}
.entreno-progreso{font-size:12px;color:#c8c8c0;font-variant-numeric:tabular-nums}
.entreno-chip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--pat-bg);color:var(--pat);border:1px solid var(--pat)}
.entreno-chip-hecho{--pat:#25D366;--pat-bg:rgba(37,211,102,.14)}
.entreno-sesion-cuerpo{display:none;padding:0 14px 14px}
.entreno-sesion.abierta .entreno-sesion-cuerpo{display:block}
.entreno-sesion.completada{opacity:.72}
.entreno-desc{margin:4px 0 10px;font-size:13px;color:#c8c8c0}
.entreno-desc-txt{white-space:pre-wrap;margin-top:6px;line-height:1.5}
.entreno-ej{padding:12px;border-left:3px solid var(--pat);margin-top:10px;background:#0d0d0d;border-radius:10px}
.entreno-ej.completo{border-left-color:#25D366}
.entreno-ej-head{display:flex;gap:10px;align-items:flex-start}
.entreno-ej-num{min-width:26px;height:26px;border-radius:50%;background:var(--pat-bg);color:var(--pat);border:1px solid var(--pat);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}
.entreno-ej-quien{flex:1;min-width:0}
.entreno-ej-nombre{font-weight:700}
.entreno-ej-estado{color:#25D366;font-size:18px}
.entreno-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.entreno-pill{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:#161616;color:#d8d8d0;border:1px solid #2a2a2a}
.entreno-pill-descanso{color:#2D9CFF;border-color:#2D9CFF;background:rgba(45,156,255,.10)}
.entreno-ej-notas{font-size:13px;color:#c8c8c0;margin-top:6px;white-space:pre-wrap}
.entreno-series{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.entreno-serie-fila{display:flex;align-items:center;gap:10px}
.entreno-serie-n{flex:1;font-size:13px;color:#c8c8c0;font-weight:700}
.entreno-serie-fila input{width:84px;height:40px;text-align:center;border-radius:10px;background:#161616;border:1px solid #2a2a2a;color:#fff;font-size:16px;font-weight:700}
.entreno-serie-fila input:focus{outline:none;border-color:var(--pat)}
.entreno-serie-ok{width:44px;height:40px;border-radius:10px;background:#161616;color:#666;border:1px solid #2a2a2a;font-size:18px;font-weight:800}
.entreno-serie-ok.hecha{background:#25D366;color:#050505;border-color:#25D366}
.entreno-previo{font-size:12px;color:var(--pat);margin-top:8px}
.entreno-timer-fila{display:flex;align-items:center;gap:10px;margin-top:10px}
.entreno-timer{font-size:24px;font-weight:800;color:#2D9CFF;min-width:74px;font-variant-numeric:tabular-nums}
.entreno-timer-fin{color:#25D366}
.entreno-btn-timer{background:#2D9CFF;color:#050505;font-weight:800;border-radius:10px;padding:9px 14px}
.entreno-btn-hecho{background:#FFD900;color:#050505;font-weight:800;border-radius:10px;padding:9px 14px;width:100%;margin-top:12px}
.entreno-btn-video{background:#161616;color:#FFD900;border:1px solid #2a2400;border-radius:10px;padding:8px 12px;font-weight:700;margin-top:8px}
.entreno-video{margin-top:4px}
.entreno-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;margin-top:8px}
.entreno-sin-video{font-size:12px;color:#666}
.entreno-esfuerzo{margin-top:14px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.entreno-esfuerzo-t{font-size:12px;color:#c8c8c0;margin-bottom:6px}
.entreno-esfuerzo-fila{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}
.entreno-esf-btn{height:34px;border-radius:8px;background:#161616;color:#d8d8d0;font-weight:700;font-size:13px}
.entreno-esf-btn.activo{background:#FFD900;color:#050505}
.entreno-link{color:#FFD900;font-weight:700}
.entreno-btn-del{margin-top:12px;font-size:12px;color:#ef4444;background:none;border:1px solid #3a1a1a;border-radius:8px;padding:6px 10px}
.entreno-aviso{font-size:12px;color:#ff8c00;margin-top:8px}
.entreno-editor{display:flex;flex-direction:column;gap:10px}
.entreno-ed-campo{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.entreno-ed-etq{font-size:11px;color:#9a9a9a;font-weight:700}
.entreno-editor input,.entreno-editor textarea{background:#161616;border:1px solid #2a2a2a;border-radius:9px;color:#fff;padding:9px 10px;font-size:14px;width:100%;box-sizing:border-box}
.entreno-editor input:focus,.entreno-editor textarea:focus{outline:none;border-color:#FFD900}
.entreno-ed-lista{display:flex;flex-direction:column;gap:10px}
.entreno-ed-ej{display:flex;flex-direction:column;gap:8px;padding:12px;border-left:3px solid var(--pat);background:#0d0d0d;border-radius:10px}
.entreno-ed-ej-cab{display:flex;align-items:center;gap:6px}
.entreno-ed-ej-tipo{flex:1;font-size:12px;font-weight:800;color:var(--pat)}
.entreno-ed-mini{width:32px;height:32px;border-radius:8px;background:#161616;color:#FFD900;font-weight:800}
.entreno-ed-fila{display:flex;gap:8px}
.entreno-ed-acciones{display:flex;gap:8px;flex-wrap:wrap}
.entreno-ed-acciones .entreno-btn-del{margin-top:8px}
.entreno-ed-acciones .entreno-btn-hecho{margin-top:8px;width:auto;flex:1}
.entreno-admin{display:flex;gap:8px;flex-wrap:wrap}
.entreno-btn-nuevo{background:#FFD900;color:#050505}

/* ═══ V249 — Maquetador de entrenamientos (admin) + miniaturas de vídeo ═══ */
.entreno-miniatura{position:relative;display:block;width:100%;max-width:360px;padding:0;border:1px solid #2a2400;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:16/9}
.entreno-miniatura img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85}
.entreno-play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border-radius:50%;background:rgba(255,217,0,.95);color:#050505;font-size:22px;display:flex;align-items:center;justify-content:center;padding-left:4px;box-shadow:0 4px 14px rgba(0,0,0,.5)}
.entreno-miniatura:hover .entreno-play{transform:scale(1.08)}
.entreno-maq-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.entreno-maq-top .entreno-titulo-seccion{margin-bottom:0}
.entreno-modo{display:flex;gap:4px;background:#0d0d0d;border:1px solid #2a2400;border-radius:12px;padding:3px}
.entreno-modo-btn{background:none;color:#bdbdbd;border:0;border-radius:9px;padding:7px 12px;font-weight:800;font-size:13px;cursor:pointer}
.entreno-modo-btn.activo{background:#FFD900;color:#050505}
.entreno-maq-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:900px){
  .entreno-maq-grid{grid-template-columns:minmax(300px,380px) 1fr;align-items:start}
  .entreno-maq-izq{position:sticky;top:8px}
}
.entreno-maq-izq{display:flex;flex-direction:column;gap:12px;min-width:0}
.entreno-maq-dia{display:flex;flex-direction:column;gap:12px;min-width:0}
.entreno-maq-dia-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.entreno-maq-dia-cab .entreno-dia-fecha{margin:0}
.entreno-maq-sub{font-family:'Outfit',sans-serif;font-weight:900;font-size:14px;margin-bottom:8px}
.entreno-maq-plantillas{background:#0d0d0d;border:1px solid #2a2400;border-radius:14px;padding:12px}
.entreno-maq-plantilla{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #1d1d1d}
.entreno-maq-pl-info{flex:1;min-width:0}
.entreno-maq-pl-nombre{font-weight:800;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entreno-maq-pl-meta{font-size:11px;color:#9a9a9a}
.entreno-maq-plantilla .entreno-btn-video{margin-top:0;padding:6px 10px;font-size:12px}
.entreno-maq-sesion{border-left:4px solid var(--pat);background:var(--pat-bg);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}
.entreno-maq-sesion-cab{display:flex;align-items:center;gap:8px}
.entreno-maq-sesion input,.entreno-maq-sesion textarea{background:#161616;border:1px solid #2a2a2a;border-radius:9px;color:#fff;padding:8px 10px;font-size:14px;width:100%;box-sizing:border-box;font-family:inherit}
.entreno-maq-sesion input:focus,.entreno-maq-sesion textarea:focus{outline:none;border-color:#FFD900}
.entreno-maq-sesion-cab input{font-weight:800;font-size:15px}
.entreno-maq-asa{cursor:grab;color:#9a9a9a;font-size:20px;line-height:1;padding:4px 2px;user-select:none;touch-action:none}
.entreno-maq-asa:active{cursor:grabbing}
.entreno-maq-estado{font-size:11px;color:#9a9a9a;white-space:nowrap;min-width:70px;text-align:right}
.entreno-maq-estado.ok{color:#25D366}
.entreno-maq-estado.aviso{color:#ff8c00;white-space:normal}
.entreno-maq-estado.error{color:#ef4444}
.entreno-maq-lista{display:flex;flex-direction:column;gap:8px}
.entreno-maq-ej{display:flex;align-items:flex-start;gap:8px;padding:10px;background:#0d0d0d;border-left:3px solid var(--pat);border-radius:10px}
.entreno-maq-ej.arrastrando{opacity:.4}
.entreno-maq-ej.sobre,.entreno-maq-soltar.sobre{outline:2px dashed #FFD900;outline-offset:2px}
.entreno-maq-ej-cuerpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.entreno-maq-nums{display:grid;grid-template-columns:70px 1fr 100px;gap:6px}
.entreno-maq-mini{display:flex;flex-direction:column;gap:2px;min-width:0}
.entreno-maq-video{display:flex;align-items:center;gap:8px}
.entreno-maq-mini-img{width:96px;height:54px;object-fit:cover;border-radius:8px;flex:none;border:1px solid #2a2400}
.entreno-maq-botones{display:flex;flex-direction:column;gap:4px}
.entreno-maq-soltar{font-size:11px;color:#6a6a6a;text-align:center;padding:6px;border:1px dashed #2a2a2a;border-radius:8px}
.entreno-maq-copia{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.entreno-maq-copia input{width:auto}
.entreno-cal-dia.sobre{outline:2px dashed #FFD900;outline-offset:-2px}
@media (max-width:560px){
  .entreno-maq-nums{grid-template-columns:60px 1fr 80px}
  .entreno-maq-ej{padding:8px}
}

/* ===== V250: maquetador simple tipo Harbiz (colores CRM) ===== */
.entreno-lateral{display:flex;flex-direction:column;gap:8px}
.entreno-lat-tabs{display:flex;gap:4px;border-bottom:1px solid #2a2400}
.entreno-lat-tab{flex:1;background:transparent;border:0;border-bottom:3px solid transparent;color:#aaa;padding:8px 4px;font-weight:700;cursor:pointer}
.entreno-lat-tab.activo{color:#FFD900;border-bottom-color:#FFD900}
.entreno-lat-buscar{width:100%;box-sizing:border-box;background:#0d0d0d;border:1px solid #2a2400;border-radius:8px;color:#fff;padding:9px 10px}
.entreno-lat-buscar:focus{outline:none;border-color:#FFD900}
.entreno-lat-lista{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.entreno-lat-ayuda{font-size:12px;color:#999}
.entreno-lat-previa{margin:0 0 4px;padding:6px 8px 6px 26px;background:#0d0d0d;border-radius:8px;font-size:12px;color:#ccc}
.entreno-maq-pl-info{cursor:pointer;min-width:0}
.entreno-lat-ej{display:flex;align-items:center;gap:8px;background:#0d0d0d;border:1px solid #1d1d1d;border-radius:8px;padding:5px;color:#fff;text-align:left;cursor:pointer}
.entreno-lat-ej:hover{border-color:#FFD900}
.entreno-lat-ej img{width:56px;height:32px;object-fit:cover;border-radius:5px;flex:none}
.entreno-lat-ej-n{font-size:12px;line-height:1.2}
.entreno-maq-linea{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.entreno-maq-linea > input{flex:1 1 180px;min-width:0}
.entreno-maq-linea .entreno-maq-nums{display:grid;grid-template-columns:56px 80px 70px;gap:6px;flex:none}
.entreno-maq-thumb{position:relative;width:64px;height:36px;flex:none;border-radius:6px;overflow:hidden;background:#1a1a1a;cursor:pointer;display:flex;align-items:center;justify-content:center}
.entreno-maq-thumb img{width:100%;height:100%;object-fit:cover}
.entreno-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;text-shadow:0 0 4px #000;background:rgba(0,0,0,.25)}
.entreno-sin-video{color:#555;font-size:14px}
.entreno-maq-extras{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.entreno-maq-extras[hidden]{display:none}
.entreno-maq-desc{resize:none;transition:height .15s}
.entreno-maq-ej{padding:6px 8px;align-items:center}
@media (max-width:560px){
  .entreno-maq-linea .entreno-maq-nums{grid-template-columns:50px 1fr 60px;width:100%}
}

/* V251: semanas A/B y mover bloques entre días */
.plan-semana-titulo{display:flex;align-items:center;gap:10px;margin:18px 0 8px;font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:2px;color:var(--white2)}
.plan-semana-titulo.actual{color:var(--orange)}
.plan-semana-tag{font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;letter-spacing:1px;padding:2px 8px;border-radius:99px;background:var(--dark3);color:var(--white2)}
.plan-semana-titulo.actual .plan-semana-tag{background:var(--orange);color:#000}
.plan-ab-box{margin:12px 0;padding:12px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--radius-sm)}
.plan-ab-toggle{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}
.plan-ab-toggle input{width:18px;height:18px;accent-color:var(--orange)}
.plan-ab-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.plan-ab-tab{padding:8px 16px;border-radius:8px;background:var(--dark3);color:var(--white2);font-weight:700;font-size:13px;letter-spacing:1px;border:1px solid var(--border)}
.plan-ab-tab.sel{background:var(--orange);color:#000;border-color:var(--orange)}
.plan-ab-dup{padding:8px 14px;font-size:12px}
.plan-ab-ancla{margin-top:10px;font-size:13px;color:var(--white2);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.plan-ab-ancla input{background:var(--dark3);color:var(--white);border:1px solid var(--border);border-radius:6px;padding:5px 8px}
.plan-ab-aviso{margin-top:8px;font-size:12px;color:var(--gray)}
.plan-editor.drop-target{outline:2px dashed var(--orange);outline-offset:-2px;background:rgba(255,217,0,.06)}
.plan-bloque-mover{margin-top:8px;font-size:12px;color:var(--white2)}
.plan-bloque-mover select{background:var(--dark3);color:var(--white);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12px;max-width:100%}

/* V252: semanas A/B intercaladas día a día (A amarillo, B negro) */
.plan-ab-filtro{display:flex;align-items:center;gap:8px;margin:14px 0 10px;flex-wrap:wrap}
.plan-ab-filtro-lbl{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;color:var(--orange);margin-right:auto}
.plan-ab-filtro-btn{background:var(--dark3);color:var(--white2);border:1px solid var(--border);border-radius:99px;padding:5px 14px;font-size:12px;font-weight:700;cursor:pointer}
.plan-ab-filtro-btn.sel{background:var(--orange);color:#111;border-color:var(--orange)}
.plan-par{margin-bottom:16px}
.plan-par .plan-dia{margin-bottom:6px}
.plan-sem-badge{margin-left:auto;font-family:'Outfit',sans-serif;font-size:10px;font-weight:800;letter-spacing:1px;padding:2px 9px;border-radius:99px}
.plan-dia.sem-a{background:var(--orange);border-color:var(--orange)}
.plan-dia.sem-a .plan-dia-header{background:#e6c200;border-bottom:1px solid rgba(0,0,0,.2)}
.plan-dia.sem-a .plan-dia-nombre,.plan-dia.sem-a .plan-dia-total,.plan-dia.sem-a .plan-dia-subtitulo{color:#111}
.plan-dia.sem-a .plan-sem-badge{background:#111;color:var(--orange)}
.plan-dia.sem-a .plan-bloque,.plan-dia.sem-a .plan-bloque-card{background:#111 !important;box-shadow:none !important;border:1px solid #111}
.plan-dia.sem-a .plan-bloque-card-head{background:transparent}
.plan-dia.sem-a .plan-empty-dia{color:#111}
.plan-dia.sem-b{background:var(--black);border-color:#333}
.plan-dia.sem-b .plan-dia-header{background:#000}
.plan-dia.sem-b .plan-sem-badge{background:var(--dark3);color:var(--white2)}
.plan-dia.es-actual .plan-sem-badge{outline:2px solid currentColor}
.plan-ab-wrap.solo-a .sem-b,.plan-ab-wrap.solo-b .sem-a{display:none}

/* V253: semanas A/B — interruptor Semana A / B / Ambas (diseño 1) con total de minutos por línea */
.pab-barra{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 14px}
.pab-toggle{display:inline-flex;background:var(--dark3);border-radius:99px;padding:4px}
.pab-toggle button{border:0;background:transparent;color:var(--gray);border-radius:99px;padding:8px 20px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.pab-toggle button.on{background:var(--orange);color:#1a1a1a}
.pab-hint{font-size:13px;color:var(--gray)}
.pab-dia{margin:0 0 20px}
.pab-dia-nombre{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;color:var(--white);margin:0 0 8px}
.pab-fila{display:flex;align-items:flex-start;gap:12px;padding:8px 12px;margin:0 0 6px;background:var(--dark2);border-radius:12px;transition:opacity .15s}
.pab-letra{width:22px;flex:none;font-size:16px;font-weight:800;color:var(--orange);padding-top:7px}
.pab-b .pab-letra{color:var(--gray)}
.pab-bloques{flex:1;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.pab-total{flex:none;font-size:14px;font-weight:700;color:var(--white2);padding-top:8px;white-space:nowrap}
.pab-sub{flex-basis:100%;font-size:12px;color:var(--gray);font-style:italic}
.pab-wrap.sel-a .pab-b,.pab-wrap.sel-b .pab-a{opacity:.28}
@media (max-width:560px){.pab-fila{flex-wrap:wrap}.pab-total{order:2;margin-left:34px;padding-top:0}.pab-bloques{flex-basis:calc(100% - 40px)}.pab-toggle button{padding:8px 14px}}

/* ═════════ V254: maquetador estilo Harbiz (tabla + biblioteca a la derecha + modo claro) ═════════ */
.em-v254{--em-bg:#0a0a0a;--em-card:#141414;--em-card2:#1b1b1b;--em-line:#2a2a2a;--em-text:#f2f2f2;--em-mut:#9a9a9a;--em-input:#0d0d0d;--em-acc:#FFD900;--em-acc-t:#111;color:var(--em-text)}
.em-v254.entreno-claro{--em-bg:#f4f5f7;--em-card:#ffffff;--em-card2:#f0f1f4;--em-line:#d9dce2;--em-text:#1b1e24;--em-mut:#5f6673;--em-input:#ffffff;--em-acc:#e0b800;--em-acc-t:#111}
.em-v254.entreno-claro{background:var(--em-bg);padding:12px;border-radius:14px}
.em-top-der{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.em-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:16px;align-items:start}
.em-main{min-width:0;display:flex;flex-direction:column;gap:12px}
.em-cal-det>summary{cursor:pointer;font-weight:700;padding:6px 2px;color:var(--em-text)}
.em-lib{position:sticky;top:8px;max-height:calc(100vh - 24px);display:flex;flex-direction:column;gap:8px;background:var(--em-card);border:1px solid var(--em-line);border-radius:14px;padding:12px;overflow:hidden}
.em-lib-titulo{font-weight:800;font-size:15px}
.em-lib-lista{overflow-y:auto;flex:1;min-height:200px;display:flex;flex-direction:column;gap:6px;padding-right:2px}
.em-lib .entreno-lat-buscar,.em-lib input[type=search]{width:100%;background:var(--em-input);color:var(--em-text);border:1px solid var(--em-line);border-radius:10px;padding:9px 10px}
.em-chips{display:flex;flex-wrap:wrap;gap:5px}
.em-chip{background:var(--em-card2);color:var(--em-text);border:1px solid var(--em-line);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;cursor:pointer}
.em-chip.on{background:var(--em-acc);color:var(--em-acc-t);border-color:var(--em-acc)}
.em-card{display:flex;align-items:center;gap:8px;background:var(--em-card2);border:1px solid var(--em-line);border-radius:10px;padding:6px;cursor:grab}
.em-card.arrastrando{opacity:.4}
.em-card-th{width:72px;height:44px;flex:none;border-radius:6px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;color:#888}
.em-card-th img{width:100%;height:100%;object-fit:cover}
.em-card-info{flex:1;min-width:0}
.em-card-n{font-size:12.5px;font-weight:700;line-height:1.2;word-break:break-word}
.em-card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}
.em-tag{font-size:10px;color:var(--em-mut);background:var(--em-card);border:1px solid var(--em-line);border-radius:6px;padding:0 5px}
.em-card-mas{flex:none;width:30px;height:30px;border-radius:50%;border:0;background:var(--em-acc);color:var(--em-acc-t);font-size:20px;font-weight:800;line-height:1;cursor:pointer}
/* tabla de ejercicios */
.em-tabla{display:flex;flex-direction:column;gap:6px}
.em-fila{display:grid;grid-template-columns:22px 24px minmax(220px,2.4fr) 62px minmax(70px,.8fr) 110px minmax(110px,1.6fr) 132px;gap:8px;align-items:center}
.em-th{font-size:10.5px;letter-spacing:.06em;font-weight:800;color:var(--em-mut);padding:0 10px;border:1px solid transparent;border-left:4px solid transparent}
.em-th>div:nth-child(3){padding-left:72px}
.em-ej{background:var(--em-card);border:1px solid var(--em-line);border-left:4px solid var(--pat,#555);border-radius:10px;padding:6px 10px;position:relative}
.em-ej.arrastrando{opacity:.4}
.em-ej.sobre,.em-v254 .entreno-maq-soltar.sobre{outline:2px dashed var(--em-acc);outline-offset:2px}
.em-ej-nom{display:flex;align-items:center;gap:8px;min-width:0}
.em-ej-nom input{flex:1;min-width:0}
.em-ej input,.em-ej select,.em-v254 .entreno-maq-sesion input,.em-v254 .entreno-maq-sesion textarea,.em-v254 .entreno-maq-sesion select{background:var(--em-input);color:var(--em-text);border:1px solid var(--em-line);border-radius:8px;padding:6px 8px;min-width:0;width:100%;box-sizing:border-box;font-size:13px}
.em-botones{display:flex;gap:3px}
.em-extras{grid-column:3 / -1;display:flex;gap:8px;align-items:center}
.em-extras[hidden]{display:none}
.em-enlace{grid-column:3 / 8;display:flex;gap:8px}
.em-v254 .entreno-maq-thumb{width:64px;height:40px;flex:none}
.em-v254 .entreno-maq-soltar{border:2px dashed var(--em-line);color:var(--em-mut);border-radius:10px;padding:14px;text-align:center;font-size:12.5px}
/* modo claro: reestilo de las piezas heredadas */
.entreno-claro .entreno-maq-sesion,.entreno-claro .entreno-maq-dia,.entreno-claro .entreno-cal,.entreno-claro .entreno-cal-wrap{background:var(--em-card);color:var(--em-text);border-color:var(--em-line)}
.entreno-claro .entreno-cal-dia,.entreno-claro .entreno-cal button{background:var(--em-card2);color:var(--em-text);border-color:var(--em-line)}
.entreno-claro .entreno-cal-dia.sel,.entreno-claro .entreno-cal .sel{background:var(--em-acc);color:var(--em-acc-t)}
.entreno-claro .entreno-dia-fecha,.entreno-claro .entreno-titulo-seccion,.entreno-claro .entreno-ed-etq{color:var(--em-text)}
.entreno-claro .entreno-btn-video,.entreno-claro .entreno-ed-mini,.entreno-claro .entreno-modo-btn,.entreno-claro .entreno-lat-tab{background:var(--em-card2);color:var(--em-text);border:1px solid var(--em-line)}
.entreno-claro .entreno-modo-btn.activo,.entreno-claro .entreno-lat-tab.activo{background:var(--em-acc);color:var(--em-acc-t)}
.entreno-claro .entreno-maq-plantillas,.entreno-claro .entreno-lateral{background:transparent;color:var(--em-text)}
.entreno-claro .empty,.entreno-claro .entreno-lat-ayuda,.entreno-claro .entreno-maq-estado{color:var(--em-mut)}
.entreno-claro input,.entreno-claro textarea,.entreno-claro select{background:var(--em-input);color:var(--em-text);border:1px solid var(--em-line)}
@media (max-width:980px){
  .em-grid{grid-template-columns:1fr}
  .em-lib{position:static;max-height:none}
  .em-th{display:none}
  .em-fila{grid-template-columns:20px 22px 1fr 1fr;}
  .em-ej-nom{grid-column:1 / -1}
  .em-extras{grid-column:1 / -1}
  .em-enlace{grid-column:1 / -1}
}

.entreno-claro .entreno-modo{background:var(--em-card2);border:1px solid var(--em-line)}
.entreno-claro .em-ej-nom input{font-weight:600}

/* ═════════ V256: bloques, descripción ampliada y reproductor de vídeo ═════════ */
/* descripción */
.em-desc-box{margin:8px 0 12px;display:flex;flex-direction:column;gap:6px}
.em-desc-cab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.em-desc-etq{font-size:10.5px;letter-spacing:.06em;font-weight:800;text-transform:uppercase;color:var(--em-mut)}
.em-v254 .entreno-maq-desc.em-desc{resize:vertical;min-height:96px;max-height:80vh;line-height:1.5;font-size:14px;padding:10px 12px;overflow-y:auto;transition:none}
.em-desc-cuenta{align-self:flex-end;font-size:10.5px;color:var(--em-mut)}
/* bloque en la maqueta */
.em-fila.em-bloque{grid-template-columns:22px 1fr auto;background:linear-gradient(90deg,rgba(255,217,0,.16),transparent 70%);border:1px solid var(--em-line);border-left:4px solid var(--em-acc);border-radius:10px;padding:8px 10px;margin-top:10px;align-items:start}
.em-bloque-cuerpo{display:flex;flex-direction:column;gap:5px;min-width:0}
.em-v254 .em-bloque input.em-bloque-tit{font-weight:800;font-size:14px;letter-spacing:.05em;text-transform:uppercase;background:transparent;border:1px solid transparent;border-bottom:1px dashed var(--em-line);border-radius:6px;color:var(--em-text);padding:5px 6px;width:100%;box-sizing:border-box}
.em-v254 .em-bloque input.em-bloque-tit:focus{border-color:var(--em-acc);outline:0;background:var(--em-input)}
.em-v254 .em-bloque input.em-bloque-des{font-size:12.5px;background:transparent;border:1px solid transparent;color:var(--em-mut);padding:4px 6px;width:100%;box-sizing:border-box}
.em-v254 .em-bloque input.em-bloque-des:focus{border-color:var(--em-line);outline:0;background:var(--em-input);color:var(--em-text)}
.em-bloque.arrastrando{opacity:.4}
.em-bloque.sobre{outline:2px dashed var(--em-acc);outline-offset:2px}
/* miniaturas que se pueden reproducir */
.em-card-th.reproducible{position:relative;cursor:pointer}
.em-card-th.reproducible .entreno-play{opacity:.85;transition:opacity .15s}
.em-card-th.reproducible:hover .entreno-play{opacity:1;background:rgba(0,0,0,.42)}
/* vista del alumno: cabecera de bloque */
.entreno-bloque{margin:14px 0 6px;padding:8px 12px;border-left:4px solid #FFD900;background:rgba(255,217,0,.10);border-radius:6px}
.entreno-bloque-t{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:13px}
.entreno-bloque-d{font-size:12.5px;opacity:.75;margin-top:2px;white-space:pre-wrap}
/* reproductor en panel */
.em-vid-fondo{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;padding:16px;animation:emVidIn .15s ease-out}
@keyframes emVidIn{from{opacity:0}to{opacity:1}}
.em-vid-panel{width:min(900px,100%);max-height:100%;background:#141414;color:#fff;border:1px solid #333;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.6);display:flex;flex-direction:column;overflow:hidden}
.em-vid-cab{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #2a2a2a}
.em-vid-tit{flex:1;min-width:0;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-vid-cnt{font-size:12px;color:#aaa}
.em-vid-x{border:0;background:#2a2a2a;color:#fff;width:32px;height:32px;border-radius:50%;font-size:15px;cursor:pointer}
.em-vid-x:hover{background:#FFD900;color:#111}
.em-vid-marco{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.em-vid-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.em-vid-pie{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px}
.em-vid-btn{background:#2a2a2a;color:#fff;border:1px solid #3a3a3a;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.em-vid-btn:hover:not(:disabled){background:#FFD900;color:#111;border-color:#FFD900}
.em-vid-btn:disabled{opacity:.35;cursor:default}
.em-vid-btn[hidden]{display:none}
@media (max-width:980px){
  .em-fila.em-bloque{grid-template-columns:20px 1fr}
  .em-fila.em-bloque .em-botones{grid-column:1 / -1}
  .em-vid-fondo{padding:8px}
}

/* ═════ V257: duración en vivo, superseries, plegar, selección, copiar a varios días ═════ */
.em-dur{position:sticky;top:0;z-index:20;background:#16161a;border:1px solid #FFD900;border-radius:10px;padding:10px 12px;margin:8px 0;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.entreno-claro .em-dur{background:#fffbe6;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.em-dur-fila{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.em-dur-total{font-size:22px;font-weight:800;color:#FFD900}
.entreno-claro .em-dur-total{color:#7a6400}
.em-dur-sub{font-size:12px;opacity:.8}
.em-dur-chips{display:flex;flex-wrap:wrap;gap:6px}
.em-dur-chip{font-size:12px;font-weight:700;padding:4px 9px;border-radius:999px;border:1px solid #555;background:#222;color:#ddd}
.em-dur-chip.ok{background:#1f6f3a;border-color:#2ecc71;color:#fff}
.em-dur-chip.falta{background:#6b5a00;border-color:#FFD900;color:#fff}
.em-dur-chip.sobra{background:#7a2323;border-color:#e74c3c;color:#fff}
.em-dur-chip.vacio{opacity:.6}
.em-dur-det{margin-top:6px;font-size:12px}
.em-dur-det summary{cursor:pointer;opacity:.85}
.em-dur-lin{display:flex;justify-content:space-between;gap:10px;padding:2px 0;border-bottom:1px dashed rgba(255,255,255,.12)}
.em-dur-aviso{color:#ffb347;padding:2px 0}
.em-dur-acc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.em-dur-ayuda{font-size:11px;opacity:.6}
.em-sel-barra{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;padding:6px 8px;border-radius:8px;background:rgba(255,217,0,.15)}
.em-sel-barra[hidden]{display:none}
.em-sel-n{font-weight:700;font-size:12px}
.em-oculta{display:none!important}
.em-fila.plegado .em-bloque-tit{opacity:.7}
.em-bloque-tiempo{font-size:12px;opacity:.85;margin-right:6px;white-space:nowrap}
.entreno-ej-num.em-selec{cursor:pointer;border-radius:6px}
.em-fila.seleccionado{outline:2px solid #FFD900;outline-offset:-2px;background:rgba(255,217,0,.08)}
.em-fila.em-grupo{border-left:4px solid var(--g,#FFD900)}
.em-fila.em-g-0{--g:#FFD900}.em-fila.em-g-1{--g:#4dabf7}.em-fila.em-g-2{--g:#51cf66}.em-fila.em-g-3{--g:#ff8787}.em-fila.em-g-4{--g:#da77f2}.em-fila.em-g-5{--g:#ffa94d}
.em-sel-grupo{min-width:130px}
.em-mini-num{width:70px}
.em-mini-tempo{width:90px}
.em-ultima{font-size:12px;opacity:.75;flex-basis:100%}
.em-vid-info{padding:8px 12px;border-top:1px solid rgba(255,255,255,.12)}
.em-vid-datos{font-size:13px;font-weight:600;margin-bottom:6px}
.em-vid-edit{display:flex;gap:8px;flex-wrap:wrap}
.em-vid-edit input{flex:1;min-width:140px}
.em-multi{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.em-multi-chips{display:flex;flex-wrap:wrap;gap:4px}
.em-multi-chip{font-size:12px;padding:3px 8px;border-radius:999px;background:#333;color:#fff;cursor:pointer}
.entreno-claro .em-multi-chip{background:#ddd;color:#222}
.dia.sobre,.sobre{outline:2px dashed #FFD900}
@media (max-width:700px){.em-dur{padding:8px}.em-dur-total{font-size:18px}.em-dur-ayuda{display:none}}

/* ===== V257: clave del alumno, valoración final y estadísticas ===== */
.clave-fondo{position:fixed;inset:0;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;z-index:10000;padding:16px}
.clave-caja{background:#161616;border:1px solid rgba(255,217,0,.35);border-radius:16px;padding:22px 20px;width:100%;max-width:340px;box-shadow:0 12px 40px rgba(0,0,0,.6)}
.clave-titulo{font-size:20px;font-weight:800;color:#FFD900;margin-bottom:4px}
.clave-sub{font-size:13px;color:#cfcfc6;margin-bottom:14px}
.clave-input{width:100%;box-sizing:border-box;background:#0d0d0d;border:1px solid rgba(255,255,255,.18);border-radius:10px;color:#fff;padding:12px;font-size:18px;letter-spacing:2px;text-align:center}
.clave-input:focus{outline:none;border-color:#FFD900}
.clave-ayuda{font-size:11px;color:#8d8d86;margin-top:8px;text-align:center}
.clave-error{font-size:13px;color:#ff6b6b;margin-top:8px;text-align:center;font-weight:600}
.clave-fila{display:flex;gap:8px;margin-top:16px}
.clave-btn{flex:1;background:#FFD900;color:#111;border:0;border-radius:10px;padding:12px;font-weight:800;font-size:15px;cursor:pointer}
.clave-btn.sec{background:transparent;color:#cfcfc6;border:1px solid rgba(255,255,255,.2);font-weight:600}

.entreno-valora{margin-top:16px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.entreno-valora-t{font-size:15px;font-weight:800;color:#FFD900;margin-bottom:2px}
.entreno-valora-estado{font-size:12px;color:#9d9d96;margin:6px 0 8px}
.entreno-valora-q{margin-top:10px}
.entreno-valora-qt{font-size:13px;color:#e8e8e0;margin-bottom:6px}
.entreno-valora-ops{display:flex;gap:6px;flex-wrap:wrap}
.entreno-valora-op{flex:1 1 0;min-width:52px;background:#1d1d1d;color:#e8e8e0;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:9px 6px;font-size:14px;cursor:pointer}
.entreno-valora-op.activo{background:#FFD900;color:#111;border-color:#FFD900;font-weight:800}
.entreno-valora-txt{width:100%;box-sizing:border-box;margin-top:12px;background:#0d0d0d;border:1px solid rgba(255,255,255,.16);border-radius:10px;color:#fff;padding:10px;font:inherit;font-size:14px;resize:vertical}
.entreno-valora-txt:focus{outline:none;border-color:#FFD900}

.entreno-stats .est-clave{background:rgba(255,217,0,.1);border:1px solid rgba(255,217,0,.35);color:#FFD900;border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:12px;font-weight:600}
.est-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.est-card{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px}
.est-card.ok{border-color:rgba(80,200,120,.55)} .est-card.med{border-color:rgba(255,217,0,.55)} .est-card.mal{border-color:rgba(255,107,107,.6)}
.est-valor{font-size:22px;font-weight:800;color:#fff}
.est-etq{font-size:11px;color:#a8a8a0;margin-top:2px}
.est-bloque{background:#141414;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;margin-bottom:12px}
.est-t{font-size:14px;font-weight:800;color:#FFD900;margin-bottom:8px}
.est-mes{display:grid;grid-template-columns:70px 1fr 110px;gap:8px;align-items:center;font-size:12px;margin:4px 0;color:#d6d6ce}
.est-barra{height:8px;background:#262626;border-radius:6px;overflow:hidden;display:block}
.est-barra-rel{display:block;height:100%;background:#FFD900}
.est-basicos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.est-basico{background:#1b1b1b;border-radius:10px;padding:10px;border:1px solid rgba(255,217,0,.3)}
.est-basico.vacio{opacity:.5;border-color:rgba(255,255,255,.1)}
.est-basico-n{font-size:12px;color:#cfcfc6}
.est-basico-v{font-size:24px;font-weight:800;color:#FFD900}
.est-basico-d{font-size:10px;color:#8d8d86;line-height:1.3}
.est-filtro{width:100%;box-sizing:border-box;background:#0d0d0d;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#fff;padding:8px 10px;margin-bottom:8px}
.est-tabla{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow:auto}
.est-fila{display:grid;grid-template-columns:minmax(120px,2.2fr) 48px 56px 44px minmax(100px,2fr);gap:8px;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px;color:#e0e0d8;align-items:center}
.est-fila.est-cab{position:sticky;top:0;background:#141414;color:#9d9d96;font-weight:700}
.est-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-pr{color:#FFD900;font-weight:800}
.est-evo{color:#a8a8a0;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-val{background:#1a1a1a;border-radius:10px;padding:10px;margin-bottom:8px;border-left:3px solid #FFD900}
.est-val.alerta{border-left-color:#ff6b6b;background:#241616}
.est-val-cab{font-size:12px;font-weight:700;color:#fff}
.est-val-meta{font-size:12px;color:#b8b8b0;margin-top:2px}
.est-val-com{font-size:13px;color:#f0f0e8;margin-top:6px;font-style:italic}
@media (max-width:560px){.est-fila{grid-template-columns:minmax(90px,2fr) 36px 46px 38px 1fr;font-size:11px}.est-mes{grid-template-columns:58px 1fr 92px}}
/* V257: botones del panel de duración y de la selección (anulan el ancho fijo de .entreno-ed-mini) */
.em-dur-btn,.em-sel-barra button,.em-multi button{width:auto;height:auto;min-height:28px;padding:4px 10px;white-space:nowrap;font-size:12px;border:1px solid rgba(255,217,0,.35)}

/* V258: botón descargar Excel del mes */
.entreno-excel-btn{display:block;width:100%;margin:8px 0 10px;padding:12px 14px;min-height:44px;border:0;border-radius:10px;background:#FFD900;color:#1a1a1a;font-weight:700;font-size:15px;cursor:pointer}
.entreno-excel-btn:active{transform:scale(.98)}
