/* CND | Seguimiento de alumnos — exclusivo del panel administrativo */
.cnd-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.cnd-tabs button{border:1px solid #bfd7dc;background:#fff;color:#214a59;border-radius:12px;padding:11px 17px;font-weight:750}.cnd-tabs button.active{background:#0c7770;border-color:#0c7770;color:#fff;box-shadow:0 4px 14px #0d756f29}.cnd-tabs button:focus-visible{outline:3px solid #81dad1;outline-offset:2px}
.an-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin:0 0 18px}.an-top h2{font-size:25px;margin:0}.an-top p{margin:2px 0 0}.an-actions{display:flex;gap:9px;flex-wrap:wrap}.an-btn{border:1px solid #b8d4dc;border-radius:11px;padding:10px 13px;background:#fff;color:#123b54;font-weight:700}.an-btn.primary{background:#086f6c;border-color:#086f6c;color:#fff}.an-btn:disabled{opacity:.55;cursor:wait}
.an-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:17px}.an-kpi{padding:19px;background:white;border-radius:16px;border:1px solid #d6e7ed;box-shadow:0 5px 20px #0b4c6510;min-width:0}.an-kpi small{color:#61798a;display:block;font-weight:700;letter-spacing:.02em}.an-kpi strong{font-size:31px;display:block;font-variant-numeric:tabular-nums;line-height:1.2;margin:6px 0 4px}.an-kpi em{font-style:normal;color:#6d8796;font-size:12px}.an-kpi .good{color:#00765b}.an-kpi .bad{color:#bb2751}
.an-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(295px,.85fr);gap:16px}.an-panel{background:#fff;border:1px solid #d6e7ed;border-radius:16px;padding:19px;min-width:0;margin-bottom:16px}.an-panel h3{font-size:17px;margin:0 0 12px}.an-panel .hint{color:#708597;font-size:12px}.an-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;gap:10px;margin-bottom:12px}.an-toolbar input,.an-toolbar select{margin:0}.an-table-wrap{overflow-x:auto}.an-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}.an-table th{color:#658294;font-weight:800;text-transform:uppercase;letter-spacing:.035em;font-size:11px;padding:11px 9px;text-align:left;border-bottom:1px solid #dcebf0}.an-table td{padding:11px 9px;border-bottom:1px solid #ebf2f4}.an-table tbody tr:hover{background:#f2faf9}.an-name{display:block;font-weight:750;color:#123c55}.an-sub{display:block;color:#768c9b;font-size:11px;white-space:normal}.an-pill{display:inline-block;font-weight:800;font-size:11px;padding:4px 9px;border-radius:999px;background:#eef3f5;color:#627685}.an-pill.ok{background:#e3f5ee;color:#006f50}.an-pill.fail{background:#feeaf0;color:#aa254b}.an-pill.wait{background:#fff5dc;color:#9c741d}.an-mini{background:none;border:none;color:#007b77;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.an-ach{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f4}.an-ach:last-child{border-bottom:0}.an-ach-title{min-width:0;flex:1}.an-ach-title strong{display:block;font-size:13px}.an-ach-title small{display:block;color:#68818d;font-size:11px}.an-ach-num{font-size:13px;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}.an-track{height:6px;background:#e5eff1;border-radius:99px;overflow:hidden;margin-top:5px}.an-fill{height:100%;border-radius:99px;background:#0a9b88;max-width:100%}.an-info{background:#edf6fa;border:1px solid #d0e6f0;border-radius:12px;padding:13px;color:#365669;font-size:13px;margin-bottom:16px}.an-empty{color:#708697;text-align:center;padding:25px}.an-prof-head{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;justify-content:space-between}.an-prof-title{font-size:22px;font-weight:850}.an-back{background:none;border:0;color:#007d7a;text-decoration:underline;font-weight:800;padding:4px 0;cursor:pointer}.an-prof-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}.an-prof-kpis>div{background:#f3f8fa;border-radius:12px;padding:13px}.an-prof-kpis strong{display:block;font-size:22px;line-height:1.25}.an-prof-kpis span{font-size:11px;color:#677e90}.an-hist{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #e5edef}.an-hist-details{min-width:0;flex:1}.an-hist-details strong{display:block;font-size:13px;overflow-wrap:anywhere}.an-hist-details small{display:block;color:#6c8395}.an-hist-right{text-align:right}.an-hist-right strong{display:block;font-size:17px}.an-hist-right strong.good{color:#08745b}.an-hist-right strong.bad{color:#be3156}.an-hist-right small{color:#7e8f9b;font-size:11px}.an-csv-menu{display:flex;gap:8px;flex-wrap:wrap}.an-profile{margin-top:15px}
@media(max-width:980px){.an-grid{grid-template-columns:1fr}.an-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.an-toolbar{grid-template-columns:1fr 1fr}.an-toolbar input{grid-column:1/-1}.an-prof-kpis{grid-template-columns:repeat(2,1fr)}.an-panel{padding:13px}.an-top h2{font-size:21px}.an-kpi strong{font-size:24px}.an-tabs button{flex:1}}
@media print{.an-actions,.an-toolbar,.cnd-tabs,.an-mini,.top button{display:none!important}.an-panel,.an-kpi{box-shadow:none}body{background:#fff}}

.an-trend{height:160px;display:flex;align-items:flex-end;gap:10px;margin-top:20px;border-bottom:1px solid #cfe0e5;padding-bottom:7px}.an-week{flex:1;display:flex;align-items:center;flex-direction:column;min-width:0;height:100%;justify-content:flex-end}.an-stack{display:flex;flex-direction:column-reverse;justify-content:flex-start;gap:2px;width:min(100%,48px);height:125px;align-items:stretch}.an-stack .ok{background:#11a28a;border-radius:4px 4px 0 0;min-height:0}.an-stack .fail{background:#d85f78;border-radius:4px 4px 0 0;min-height:0}.an-week small{font-size:10px;color:#758c9c;white-space:nowrap;margin-top:5px}.an-legend{display:flex;gap:14px;font-size:12px;color:#6e8593;margin-top:12px}.an-dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;background:#11a28a}.an-dot.fail{background:#d85f78}

/* Fase estadísticas: ranking oficial y exclusiones administradas por alumno */
.an-ranking-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:9px}
.an-ranking-head h3{margin-bottom:5px}
.an-ranking-controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.an-ranking-controls select{width:auto;max-width:100%;min-width:220px;margin:0}
.an-ranking-count{font-size:12px;color:#507182;font-weight:750;margin:7px 0 17px}
.an-ranking-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.an-ranking-cols>div{min-width:0}.an-ranking-cols h4{font-size:14px;color:#20495e;margin:6px 0 13px}
.an-ranking-item{display:flex;align-items:center;gap:10px;border-bottom:1px solid #e5edf0;padding:10px 2px;min-width:0}
.an-ranking-no{width:22px;flex:none;font-variant-numeric:tabular-nums;font-size:12px;font-weight:850;color:#7d929c;text-align:center}
.an-ranking-main{flex:1;min-width:0}.an-ranking-main strong{font-size:12px;line-height:1.3;color:#193f54;display:block;white-space:normal;overflow-wrap:anywhere}
.an-ranking-main small,.an-ranking-value small{display:block;font-size:11px;color:#78929f;margin-top:3px}
.an-ranking-track{background:#eaf1f3;border-radius:99px;height:6px;overflow:hidden;margin:8px 0 1px}
.an-ranking-track>div{height:100%;border-radius:99px}
.an-ranking-track .bad{background:#d55672}.an-ranking-track .good{background:#12a18b}
.an-ranking-value{text-align:right;white-space:nowrap;flex:none;font-size:12px}
.an-ranking-value strong{font-weight:850}.an-ranking-value.bad strong{color:#b82b50}.an-ranking-value.good strong{color:#08775a}
.an-mode-box{display:grid;gap:9px;background:#eef9f8;border:1px solid #b9ddda;border-radius:13px;padding:15px;margin:16px 0}
.an-mode-box label{font-size:14px}.an-mode-box .hint{margin:5px 0 0}
.an-mode-box select{width:100%;max-width:480px;margin:0}.an-mode-feedback{font-size:12px;color:#316572;margin:0}
@media(max-width:830px){.an-ranking-cols{grid-template-columns:1fr}}
@media(max-width:520px){.an-ranking-controls{width:100%}.an-ranking-controls select{width:100%}}

/* V3: alumnado plegable, buscador persistente y logros por titulación */
.an-accordion-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:0 0 4px;background:none;border:0;cursor:pointer;color:#123b54}
.an-accordion-toggle strong{display:block;font-size:18px}.an-accordion-toggle small{display:block;font-size:12px;color:#708899;margin-top:5px}.an-accordion-toggle>span:last-child{font-size:28px;color:#087871;line-height:1}
.an-students-panel .an-toolbar{margin-top:16px;position:relative;background:#fff;z-index:2}
.an-students-panel .an-table-wrap{max-height:min(50vh,440px);overflow:auto;border:1px solid #e1edf0;border-radius:10px}
.an-students-panel .an-table{min-width:560px}.an-students-panel .an-table thead th{position:sticky;top:0;background:#f2f7f8;z-index:1}
.an-ach-tabs{display:flex;gap:7px;overflow-x:auto;padding:3px 0 13px;scrollbar-width:thin}
.an-ach-tabs button{flex:none;border:1px solid #c6dce1;background:#f7fafb;color:#345669;border-radius:10px;font-weight:750;padding:9px 12px;cursor:pointer;font-size:12px}
.an-ach-tabs button.active{background:#0d766e;color:#fff;border-color:#0d766e}
.an-ach-tabs button:focus-visible,.an-accordion-toggle:focus-visible{outline:3px solid #86d9d4;outline-offset:3px}
.an-danger-zone{margin-top:20px;border:1px solid #f0c6cf;background:#fff8f9;padding:18px;border-radius:15px}
.an-danger-zone-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.an-danger-zone h3{color:#9a2945;font-size:17px;margin:0 0 5px}.an-danger-zone p{color:#81535c;font-size:13px;max-width:700px;margin:5px 0}
.an-btn.an-delete-open{color:#9e2845;border-color:#dca1af}
.an-delete-confirm{max-width:600px;border-top:1px solid #f0c6cf;margin-top:15px;padding-top:15px}
.an-delete-confirm label{display:block;margin:11px 0 5px;color:#762d40;font-size:13px}
.an-delete-confirm input{width:100%;max-width:480px;box-sizing:border-box;margin:0}
.an-delete-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}
.an-btn.an-danger-confirm{background:#b12a4b;border-color:#b12a4b;color:#fff}
.an-btn.an-danger-confirm:disabled{opacity:.4;cursor:not-allowed}
.an-delete-status{font-size:12px;color:#8d3546;margin:10px 0 0;overflow-wrap:anywhere}
@media(max-width:620px){.an-danger-zone{padding:13px}.an-ach-tabs button{font-size:11px}.an-accordion-toggle strong{font-size:16px}}

/* Panel_V-2.2: avisos informativos de una sola línea y legibles en móvil. */
#analyticsView>.an-info{font-size:clamp(11px,2.6vw,13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:9px 11px;}

/* CND 9.0 — pestañas de estadística por titulación, solo interfaz admin */
.an-course-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 18px;padding:5px;border:1px solid #d2dfeb;background:#f3f7fb;border-radius:16px}
.an-course-switcher button{border:1px solid transparent;padding:14px 15px;background:transparent;border-radius:12px;font-size:15px;font-weight:800;color:#425c70;cursor:pointer;transition:background .15s,border-color .15s;min-width:0}
.an-course-switcher button.active{background:linear-gradient(130deg,#16447b,#1762a0);color:#fff;box-shadow:0 6px 18px rgba(20,68,120,.16)}
.an-course-switcher button#anCoursePnbTab.active{background:linear-gradient(130deg,#0f5f5a,#1b8a7a);color:#fff}
.an-course-switcher button#anCourseEspTab.active{background:linear-gradient(130deg,#2a2f6b,#4a3f8f);color:#fff}
.an-course-switcher button#anCourseTemasTab.active{background:linear-gradient(130deg,#0f5f5a,#1b8a7a);color:#fff}
.an-course-switcher button#anCoursePyTab.active{background:linear-gradient(130deg,#1b3157,#846522);border-color:#b69955;color:#fff}
.an-course-switcher button:focus-visible{outline:3px solid #cfb46c;outline-offset:2px}
.an-py-scope .an-grid{grid-template-columns:1fr}
.an-py-scope .an-ranking-head{border-top:3px solid #c6a252;padding-top:14px}
#anCourse.hidden,#anRankingPanel.hidden,#anPerAchievementsPanel.hidden{display:none!important}
@media(max-width:430px){.an-course-switcher{gap:6px;padding:4px}.an-course-switcher button{padding:13px 6px;font-size:13px}.an-top h2{font-size:23px}}

.an-temas-table{min-width:720px}.an-temas-table td:first-child{font-weight:700;color:#173b5a}.an-temas-table tr.an-carta td{background:#f4fbfa}
#anTemasPanel .an-table-wrap{overflow:auto;border:1px solid #e1edf0;border-radius:10px}
.an-help-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf3f5}.an-help-item:last-child{border-bottom:0}
.an-help-item strong{display:block;color:#173b5a}.an-help-item small{color:#5f7686}.an-help-right{display:flex;align-items:center;gap:10px;white-space:nowrap}
.an-topic-progress{height:7px;background:#e6eff3;border-radius:9px;overflow:hidden;margin-top:5px;min-width:70px}.an-topic-progress div{height:100%;background:linear-gradient(90deg,#1b8a7a,#2bb39c)}
@media(max-width:430px){.an-help-item{flex-direction:column;align-items:flex-start}}

.an-mode-switch{display:inline-flex;gap:6px;margin:-6px 0 16px;padding:4px;border:1px solid #d2dfeb;border-radius:12px;background:#f3f7fb}
.an-mode-switch button{border:0;background:transparent;border-radius:9px;padding:9px 14px;font-weight:800;font-size:14px;color:#425c70;cursor:pointer}
.an-mode-switch button.active{background:#fff;color:#16447b;box-shadow:0 2px 8px rgba(20,68,120,.14)}
.an-mode-switch button:focus-visible{outline:3px solid #cfb46c;outline-offset:2px}
@media(max-width:640px){.an-course-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.an-mode-switch{display:flex}.an-mode-switch button{flex:1}}
