:root{--navy:#10182f;--blue:#4b91c7;--sky:#dceef9;--orange:#f07a12;--white:#fff;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--bg:#f5f8fb;--green:#1f9d62;--red:#c2413c;--yellow:#d89716}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:white;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 6px 22px;border-bottom:1px solid #ffffff22}.brand img{width:54px;height:54px;object-fit:contain;background:white;border-radius:50%;padding:4px}.brand small{display:block;color:#b8d9ee;margin-top:3px}.sidebar nav{display:grid;gap:7px;margin-top:18px}.sidebar nav a{padding:9px 10px;border-radius:13px;color:#eef7ff;display:flex;align-items:center;gap:10px;min-height:47px;transition:background .18s ease,transform .18s ease}.sidebar nav a:hover{background:#ffffff13;transform:translateX(2px)}.sidebar nav a.disabled{opacity:.58}.sidebar nav a>span{font-size:14px;font-weight:700;background:none;padding:0;border-radius:0;margin:0;line-height:1.15}.sidebar nav a.disabled em{display:inline-block;font-style:normal;font-size:9px;background:var(--orange);color:#fff;padding:2px 5px;border-radius:8px;margin-left:4px}.sidebar-foot{margin-top:auto;display:grid;gap:6px;padding:15px 10px;border-top:1px solid #ffffff22}.sidebar-foot a{color:#b8d9ee}.main{min-width:0}.topbar{height:88px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar h1{margin:0;color:var(--navy);font-size:25px}.topbar p{margin:4px 0 0;color:var(--muted)}.status{display:flex;align-items:center;gap:8px;font-size:14px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.online{background:var(--green)}.offline{background:var(--orange)}.content{padding:26px;max-width:1450px;margin:auto}.hero{background:linear-gradient(110deg,var(--navy),#1d3f65);color:white;border-radius:22px;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.hero h2{font-size:29px;margin:6px 0 8px}.hero p{max-width:720px;color:#dceaf5}.eyebrow{font-size:12px;letter-spacing:1.2px;color:#9dd3f5}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 24px #243b5320;margin-bottom:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi span,.kpi small{color:var(--muted)}.kpi strong{display:block;color:var(--navy);font-size:34px;margin:7px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick a{border:1px solid var(--line);padding:15px;border-radius:12px;background:#fbfdff}.btn{border:0;border-radius:11px;padding:12px 16px;font-weight:700;cursor:pointer}.btn.primary,.btn.secondary{background:var(--navy);color:white}.btn.accent{background:var(--orange);color:white}.btn.small{padding:8px 10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#374151}.full{grid-column:1/-1}input,select{width:100%;border:1px solid #cfd8e3;border-radius:10px;padding:12px 13px;font-size:15px;background:white}input:focus,select:focus{outline:2px solid #6db7e455;border-color:var(--blue)}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}.section-title>div{display:flex;align-items:center;gap:10px}.section-title h3{margin:0;color:var(--navy)}.section-title p{margin:0;color:var(--muted);font-size:13px}.step{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--orange);color:white;font-weight:800}.search-line{display:flex;gap:10px}.results{margin-top:12px}.result-item{border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:8px}.actions{display:flex;justify-content:flex-end}.alert{border-radius:10px;padding:12px 14px;margin:10px 0}.alert.success{background:#e9f8f0;color:#146c43}.alert.error{background:#fdecec;color:#a83232}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--navy);background:#f7fbfe}.pill{padding:4px 8px;border-radius:999px;font-size:11px}.pill.ok{background:#e7f8ef;color:#16734a}.pill.warn{background:#fff4d7;color:#966b09}.empty{padding:20px;text-align:center;color:var(--muted)}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,var(--navy),#326d9a)}.login-card{width:min(440px,92vw);background:white;border-radius:24px;padding:32px;text-align:center;box-shadow:0 30px 70px #0005}.login-card img{width:110px}.login-card h1{font-size:19px;color:var(--navy);margin:12px 0 2px}.login-card h2{font-size:16px;margin:0 0 4px;color:var(--blue)}.login-card form{display:grid;gap:14px;text-align:left;margin:24px 0 16px}.login-card label{display:grid;gap:6px;font-size:13px;font-weight:700}.paiguarito-btn{position:fixed;right:24px;bottom:22px;border:0;background:white;border-radius:18px;box-shadow:0 10px 35px #0003;padding:7px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--navy);font-weight:800}.paiguarito-btn img{width:52px;height:52px;object-fit:contain}.chat-panel{display:none;position:fixed;right:24px;bottom:92px;width:min(390px,calc(100vw - 30px));height:510px;background:white;border-radius:20px;box-shadow:0 20px 60px #0004;overflow:hidden;z-index:10;border:1px solid var(--line)}.chat-panel.open{display:grid;grid-template-rows:auto 1fr auto}.chat-head{background:var(--navy);color:white;padding:11px;display:flex;align-items:center;gap:10px}.chat-head img{width:48px;height:48px;object-fit:contain;background:white;border-radius:50%}.chat-head div{display:grid}.chat-head small{color:#bfe1f5}.chat-head button{margin-left:auto;background:none;border:0;color:white;font-size:26px}.chat-body{padding:15px;overflow:auto;background:#f7fbfe}.bot-msg,.user-msg{padding:10px 12px;border-radius:12px;margin-bottom:10px;font-size:14px}.bot-msg{background:white;border:1px solid var(--line)}.user-msg{background:var(--sky);margin-left:35px}.chat-form{display:flex;padding:10px;border-top:1px solid var(--line)}.chat-form input{border-radius:10px 0 0 10px}.chat-form button{border:0;background:var(--orange);color:white;padding:0 13px;border-radius:0 10px 10px 0;font-weight:700}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative}.kpis,.grid2{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}@media(max-width:600px){.kpis,.grid2,.quick{grid-template-columns:1fr}.topbar{padding:0 16px}.content{padding:15px}.hero{align-items:flex-start;flex-direction:column}.paiguarito-btn span{display:none}}
textarea{width:100%;border:1px solid #cfd8e3;border-radius:10px;padding:12px 13px;font-size:15px;background:white;font-family:inherit;resize:vertical}textarea:focus{outline:2px solid #6db7e455;border-color:var(--blue)}
.institution-rule{border-left:5px solid var(--orange);display:flex;gap:12px;align-items:flex-start}.institution-rule b{color:var(--navy);white-space:nowrap}.institution-rule span{color:var(--muted)}
.subsection{background:var(--sky);padding:9px 12px;border-radius:10px;color:var(--navy);margin-top:3px}.field-help{font-weight:400;color:var(--muted);line-height:1.35}.interactive{display:flex;justify-content:space-between;align-items:center;gap:10px}.interactive div{display:grid;gap:4px}.interactive small{color:var(--muted)}
.sticky-actions{position:sticky;bottom:0;background:white;border-top:1px solid var(--line);padding:14px 0 2px;z-index:3}.btn.ghost{background:#eef2f6;color:var(--navy)}.btn.danger{background:#b83a35;color:white}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.hero.compact{padding:22px}.hero.compact h2{font-size:24px}.hero-actions{margin-left:auto}.status-large{display:inline-block;background:white;color:var(--navy);padding:9px 14px;border-radius:999px;font-weight:800}.detail-list{display:grid;grid-template-columns:160px 1fr;gap:10px 12px}.detail-list dt{color:var(--muted);font-weight:700}.detail-list dd{margin:0;font-weight:600}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.filter-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}.filter-actions{display:flex;gap:8px}.document-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}.doc-card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:9px;box-shadow:0 8px 24px #243b5320}.doc-card b{color:var(--navy);font-size:17px}.doc-card span{color:var(--muted)}.doc-card strong{color:var(--orange)}
.modal{display:none;position:fixed;inset:0;background:#0008;z-index:50;align-items:center;justify-content:center;padding:16px}.modal.open{display:flex}.modal-card{width:min(520px,96vw);background:white;border-radius:18px;padding:22px;display:grid;gap:14px;box-shadow:0 30px 80px #0005}.modal-card label{display:grid;gap:6px;font-weight:700;font-size:13px}.modal-card h3{margin:0;color:var(--navy)}
@media(max-width:900px){.filter-grid{grid-template-columns:1fr 1fr}.document-grid{grid-template-columns:1fr}.institution-rule{display:grid}.institution-rule b{white-space:normal}}
@media(max-width:600px){.filter-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}.detail-list dd{margin-bottom:6px}.interactive{align-items:flex-start;flex-direction:column}}
.alert.warn{background:#fff4d7;color:#7a5908;border:1px solid #f1d58a}
.station-chip{border:1px solid var(--line);background:#f7fbfe;color:var(--navy);padding:7px 10px;border-radius:999px;cursor:pointer;font-weight:700}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.admin-tabs button{border:1px solid var(--line);background:white;color:var(--navy);padding:10px 13px;border-radius:12px;font-weight:700;cursor:pointer}.admin-tabs button.active{background:var(--navy);color:white;border-color:var(--navy)}.admin-pane{display:none}.admin-pane.active{display:block}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.card small{color:var(--muted)}
/* v0.5 · sincronización offline y reportes */
.nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f47c00;color:#fff;font-size:11px;font-weight:800;margin-left:5px}.sync-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.sync-kpis>div{border:1px solid #dfe7f0;background:#f7fbff;border-radius:12px;padding:14px}.sync-kpis b{display:block;font-size:24px;color:#10182f}.sync-kpis span{font-size:12px;color:#64748b}.badge.pending,.badge.warn{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.pending{background:#fff4cc;color:#7a5700}.badge.warn{background:#ffe3dd;color:#9b2d17}.alert.warn{background:#fff7db;border-color:#edc55f;color:#6b4e00}
.duplicate-group{border:1px solid #d7dde7;border-radius:12px;margin:14px 0;overflow:hidden;background:#fff}.duplicate-title{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#f7f9fc;border-bottom:1px solid #e6eaf0}.duplicate-title span,.muted{color:#6d7683}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters label{min-width:180px}.filters select,.filters input{width:100%}.pill.danger{background:#ffe4e4;color:#8f1f1f}

/* v0.7 · cupos, familias, movimientos y reportes configurables */
.kpis.v07{grid-template-columns:repeat(6,1fr)}.course-bars{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.course-bar>div:first-child{display:flex;justify-content:space-between;gap:10px}.course-bar span{font-weight:800;color:var(--navy)}.bar{height:9px;background:#e8eef4;border-radius:999px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--orange));border-radius:999px}.family-card{padding:0;overflow:hidden}.family-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;background:#f7fbfe}.family-head h3{margin:0;color:var(--navy)}.family-head p{margin:5px 0 0;color:var(--muted)}.family-count{background:var(--sky);color:var(--navy);padding:7px 10px;border-radius:999px;font-weight:800}.report-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.report-columns label{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#fbfdff}.report-columns input{width:auto}.capacity-box{margin-top:8px;padding:10px 12px;border-radius:10px;background:#eef8ff;color:var(--navy);font-size:13px}.capacity-box.full{background:#ffe6df;color:#8a2d1e}@media(max-width:1100px){.kpis.v07{grid-template-columns:repeat(3,1fr)}.report-columns{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.kpis.v07,.course-bars,.report-columns{grid-template-columns:1fr}}

/* v0.8 · expediente visible y documentos institucionales */
.big-success{display:grid;gap:5px;font-size:15px;border:1px solid #a9dec2}.big-success b{font-size:18px;color:#0e6a40}.doc-intro{border-left:5px solid var(--blue)}.required-documents .doc-card{border-top:4px solid var(--orange)}.mini-docs .doc-card{padding:16px;min-height:105px}.mini-docs .doc-card b{font-size:14px}.expediente-card{border:2px solid #d8e7f1;background:linear-gradient(180deg,#fff,#f9fcff)}


/* v0.8.2 · sistema visual con iconos institucionales */
.nav-icon{width:30px;height:30px;object-fit:cover;border-radius:9px;flex:0 0 auto;box-shadow:0 2px 8px #0002}.page-title-wrap{display:flex;align-items:center;gap:13px}.page-head-icon{width:48px;height:48px;border-radius:14px;object-fit:cover;box-shadow:0 5px 16px #16365a24;border:1px solid #d8e5ef}.topbar{height:96px}.quick{grid-template-columns:repeat(2,1fr)}.quick a{display:flex;align-items:center;gap:12px;padding:13px;background:linear-gradient(180deg,#fff,#f8fbff);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.quick a:hover{transform:translateY(-2px);box-shadow:0 8px 20px #102a4320;border-color:#c9ddeb}.quick-icon{width:46px;height:46px;border-radius:13px;object-fit:cover;box-shadow:0 4px 12px #1b4b7720;flex:0 0 auto}.quick-label{font-weight:800;color:var(--navy);font-size:14px}.kpi{position:relative;overflow:hidden;min-height:150px;padding-right:78px}.kpi-icon{position:absolute;right:15px;top:16px;width:54px;height:54px;border-radius:16px;object-fit:cover;box-shadow:0 5px 15px #173b5d1c}.page-banner{display:flex;align-items:center;gap:16px;padding:18px 20px;background:linear-gradient(115deg,#fff,#f5faff);border:1px solid var(--line);border-radius:18px;margin-bottom:18px;box-shadow:0 7px 22px #243b5312}.page-banner img{width:64px;height:64px;border-radius:18px;object-fit:cover;box-shadow:0 5px 16px #173b5d22}.page-banner h2{margin:0 0 4px;color:var(--navy);font-size:22px}.page-banner p{margin:0;color:var(--muted)}.doc-card{grid-template-columns:58px 1fr;column-gap:13px;align-items:center}.doc-card .doc-icon{grid-row:1/4;width:58px;height:58px;border-radius:15px;object-fit:cover;box-shadow:0 4px 14px #173b5d20}.doc-card b,.doc-card span,.doc-card strong{grid-column:2}.admin-tabs button{display:flex;align-items:center;gap:7px}.admin-tabs img{width:25px;height:25px;border-radius:7px;object-fit:cover}.feature-card-title{display:flex;align-items:center;gap:10px}.feature-card-title img{width:42px;height:42px;border-radius:12px;object-fit:cover}.btn-with-icon{display:inline-flex;align-items:center;gap:8px}.btn-with-icon img{width:25px;height:25px;border-radius:7px;object-fit:cover}.hero-icon{width:82px;height:82px;border-radius:20px;object-fit:cover;box-shadow:0 8px 20px #0003;margin-right:12px}.hero.with-icon>div:first-child{display:flex;align-items:center}.report-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-tool{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.report-tool img{width:52px;height:52px;border-radius:14px;object-fit:cover}.report-tool b{display:block;color:var(--navy);margin-bottom:3px}.report-tool small{color:var(--muted)}
@media(max-width:900px){.page-head-icon{width:42px;height:42px}.report-tool-grid{grid-template-columns:1fr}.kpi{padding-right:70px}.quick{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.page-head-icon{display:none}.quick{grid-template-columns:1fr}.page-banner img{width:52px;height:52px}.page-banner{align-items:flex-start}.doc-card{grid-template-columns:48px 1fr}.doc-card .doc-icon{width:48px;height:48px}}

/* v0.9.0-beta1 · Calificaciones Fase 1 */
.calif-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.calif-card-grid{display:grid;grid-template-columns:1fr;gap:16px}.calif-course-card{padding:0;overflow:hidden}.calif-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px;background:linear-gradient(110deg,#f5fbff,#fff)}.calif-card-head h3{margin:4px 0 0;color:var(--navy)}.calif-ambitos{display:grid}.calif-ambito-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--line)}.calif-ambito-row small{display:block;margin-top:4px;color:var(--muted)}
.calif-toolbar{position:sticky;top:0;z-index:15}.calif-toolbar-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.calif-toolbar-row label{display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--navy)}.calif-toolbar-row select{min-width:145px}.calif-counts{padding:9px 12px;border-radius:10px;background:#f2f7fb;color:#526273;font-size:13px}.calif-help{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.45}
.matrix-card{padding:0;overflow:hidden}.calif-matrix-wrap{overflow:auto;max-height:68vh;border-radius:16px}.calif-matrix{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:12px}.calif-matrix th,.calif-matrix td{border-right:1px solid #e1e7ee;border-bottom:1px solid #e1e7ee;padding:8px;background:#fff;vertical-align:middle}.calif-matrix thead th{position:sticky;top:0;z-index:8;background:#eef5fa;color:#17243a;min-width:170px;max-width:230px;text-align:center}.calif-matrix thead th.sticky-name{z-index:12}.calif-matrix .sticky-name{position:sticky;left:0;z-index:6;min-width:260px;max-width:260px;background:#f8fbfd;text-align:left;box-shadow:3px 0 5px #102a4310}.calif-matrix tbody tr:hover td{background:#fbfdff}.calif-matrix tbody tr:hover .sticky-name{background:#f0f7fb}.calif-matrix .sticky-name small{display:block;margin-top:4px;color:#788595}.criterion-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#0f766e;color:#fff;font-weight:900;margin-bottom:5px}.criterion-text{display:block;font-weight:800;line-height:1.25;max-height:72px;overflow:auto}.calif-matrix th small{display:block;margin-top:6px;font-weight:500;color:#657386;line-height:1.25;max-height:70px;overflow:auto}.grade-cell{min-width:105px;width:100%;border:1px solid #cbd6e0;border-radius:9px;padding:8px 6px;background:#fff;font-weight:800;text-align:center;color:#17324c}.grade-cell.changed{outline:2px solid #f59e0b;outline-offset:1px;background:#fff9e9}
.modal-backdrop[hidden]{display:none}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:#0b1728aa;display:grid;place-items:center;padding:20px}.paste-card{width:min(760px,96vw)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head button{border:0;background:#eef2f6;border-radius:9px;width:36px;height:36px;font-size:24px;cursor:pointer}.paste-card textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid #cbd6e0;border-radius:12px;padding:12px;resize:vertical}
@media(max-width:800px){.calif-ambito-row,.calif-card-head{align-items:flex-start;flex-direction:column}.calif-matrix .sticky-name{min-width:210px;max-width:210px}.calif-toolbar{position:relative}.calif-matrix-wrap{max-height:72vh}}
/* Calificaciones beta4: selector completo de cursos */
.sidebar{height:100vh;position:sticky;top:0;overflow-y:auto}
.course-selector-title{margin:8px 0 16px}.course-selector-title h3{margin:0;color:var(--navy);font-size:21px}.course-selector-title p{margin:5px 0 0;color:var(--muted)}
.calif-all-courses{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.calif-all-courses .calif-course-card{margin-bottom:0;display:flex;flex-direction:column}
.calif-all-courses .calif-card-head{min-height:112px}
.calif-card-head small{display:block;margin-top:5px;color:var(--muted);font-weight:700}
.calif-course-action{display:flex;flex-direction:column;gap:12px;padding:16px 20px 20px;flex:1;justify-content:flex-end}
.calif-course-action p{margin:0;color:var(--muted);font-size:13px}
.calif-main-btn{display:inline-flex!important;align-items:center;justify-content:center;text-align:center;font-weight:800;line-height:1.2;min-height:42px}
.top-course-actions{margin:-8px 0 16px;justify-content:flex-start}
@media(max-width:1180px){.calif-all-courses{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.calif-all-courses{grid-template-columns:1fr}.sidebar{height:auto;position:relative;overflow:visible}}

/* v0.9.0-beta5 · navegación de Calificaciones por subniveles */
.grading-nav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.grading-nav-card{margin:0;padding:20px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:14px 16px;align-items:center;min-height:230px;background:linear-gradient(180deg,#fff,#f9fcff)}
.grading-nav-icon{width:72px;height:72px;border-radius:20px;background:#edf7ff;display:grid;place-items:center;align-self:start;box-shadow:inset 0 0 0 1px #dbeaf5}
.grading-nav-icon img{width:58px;height:58px;border-radius:16px;object-fit:cover}
.grading-nav-body{min-width:0;align-self:start}.grading-nav-body h3{margin:5px 0 7px;color:var(--navy);font-size:22px;line-height:1.05}.grading-nav-body p{margin:0;color:var(--muted);line-height:1.35}
.grading-nav-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.grading-nav-meta span{font-size:12px;font-weight:800;color:#476178;background:#eef5fa;border-radius:999px;padding:6px 9px}
.grading-nav-btn{grid-column:1/-1;display:flex!important;align-items:center;justify-content:center;text-align:center;font-size:15px;font-weight:900;min-height:46px}
.grading-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:3px 0 14px;color:#617286;font-size:13px}.grading-breadcrumb a{color:#2f74a5;font-weight:800}.grading-breadcrumb b{color:var(--navy)}
.compact-card{min-height:205px}.grading-course-badge{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#0f2748,#3479ac);color:#fff;display:grid;place-items:center;font-weight:900;font-size:22px;align-self:start}
.grading-parallels{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}.parallel-card{min-height:190px}.grading-parallel-letter{width:72px;height:72px;border-radius:22px;background:linear-gradient(145deg,#f07a12,#ff9a3d);color:#fff;display:grid;place-items:center;font-weight:900;font-size:34px;box-shadow:0 8px 20px #f07a1230;align-self:start}
.grading-back{margin-top:20px;justify-content:flex-start}
@media(max-width:1100px){.grading-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.grading-nav-grid,.grading-parallels{grid-template-columns:1fr}.grading-nav-card{min-height:unset}.grading-nav-body h3{font-size:20px}}

/* v0.9.0-beta6 · estructura académica, distributivo y reglas */
.hero-subsection{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:2px 0 16px;padding:18px 20px;border-radius:16px;background:linear-gradient(115deg,#eef7ff,#fff);border:1px solid #d7e8f5}.hero-subsection h3{margin:4px 0 5px;color:var(--navy);font-size:22px}.hero-subsection p{margin:0;color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.academic-kpis .kpi{min-height:104px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 18px #243b5312}.academic-kpis .kpi span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.academic-kpis .kpi b{display:block;margin-top:7px;color:var(--navy);font-size:30px}.academic-kpis .warn-kpi{border-color:#f0c96a;background:#fffaf0}.academic-kpis .warn-kpi b{color:#a36500}
.academic-toolbar{display:flex;gap:14px;align-items:center;margin:0 0 14px}.academic-toolbar input{max-width:480px}.academic-toolbar label{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:800;color:var(--navy);white-space:nowrap}.academic-toolbar label input{width:auto}
.needs-review td{background:#fffaf0}.pill.danger{background:#fdeaea;color:#a53030}.muted{color:var(--muted)}
.grading-rule-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 18px}.grading-rule-strip>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;box-shadow:0 4px 14px #243b530f}.grading-rule-strip span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.grading-rule-strip b{display:block;color:var(--navy);margin-top:4px;font-size:16px}.grading-rule-strip .wide-rule{grid-column:span 5}
.academic-structure-table small{color:var(--muted)}
@media(max-width:1000px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grading-rule-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.grading-rule-strip .wide-rule{grid-column:span 2}}
@media(max-width:650px){.kpi-grid,.grading-rule-strip{grid-template-columns:1fr}.grading-rule-strip .wide-rule{grid-column:auto}.academic-toolbar{align-items:stretch;flex-direction:column}.academic-toolbar input{max-width:none}}

/* v0.9.0-beta6-r2 · administración organizada por período y subnivel */
.admin-filter-card{padding:18px 20px}.admin-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;align-items:end}.admin-filter-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--navy)}.admin-filter-grid select,.admin-filter-grid input{width:100%}.filter-empty{padding:18px;text-align:center;color:var(--muted);font-weight:700;background:#f8fbfd;border-radius:12px}.review-card{border-color:#f0c96a;background:#fffdf7}.teacher-merge-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #f1e5bf}.teacher-merge-row:first-of-type{border-top:0}.teacher-merge-row>div:first-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.teacher-merge-row span{color:var(--muted)}.backup-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#f6f9fc;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}.backup-summary span{color:var(--muted)}.audit-filter-grid{margin-bottom:14px}.admin-pane table tr[style*="display: none"]{display:none!important}.admin-pane .form-grid small{font-weight:500;color:var(--muted);line-height:1.35}.admin-tabs{position:sticky;top:0;z-index:20;background:var(--bg);padding:8px 0}
@media(max-width:780px){.admin-filter-grid{grid-template-columns:1fr}.teacher-merge-row{align-items:flex-start;flex-direction:column}}
.account-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:14px 0 16px}.account-kpis>div{background:#f6f9fc;border:1px solid var(--line);border-radius:14px;padding:13px 14px;display:grid;gap:4px}.account-kpis small{color:var(--muted);font-weight:700}.account-kpis b{font-size:25px;color:var(--navy)}.credentials-box{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.credentials-box code{font-size:13px;font-weight:800;background:#f1f5f9;border-radius:7px;padding:5px 7px}.credentials-box .table-wrap{margin-top:12px}.account-batch-card button[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.account-kpis{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:560px){.account-kpis{grid-template-columns:1fr}}
/* beta6-r11 · panel del tutor */
.meta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:-6px 0 18px;font-size:13px;color:#4b5563}.tutor-grid{align-items:start}.tutor-course-card{border-top:4px solid var(--blue)}.kpi-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.mini-kpi{background:#f6f9fc;border:1px solid var(--line);border-radius:12px;padding:12px}.mini-kpi span{display:block;font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.4px}.mini-kpi b{display:block;margin-top:5px;color:var(--navy);font-size:16px}.tutor-functions{margin:13px 0;padding:12px;border-radius:12px;background:#f8fbfe;border:1px solid var(--line)}.tutor-functions>b{display:block;color:var(--navy);margin-bottom:7px}.function-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line)}.function-row:first-of-type{border-top:0}.function-row span{font-weight:700}.function-row small{white-space:nowrap}.tutor-actions{margin-top:14px}.tutor-rule{border-left:5px solid var(--orange)}.empty-state{text-align:center;color:var(--muted)}@media(max-width:700px){.kpi-strip{grid-template-columns:1fr}.tutor-actions .btn{width:100%;text-align:center}}

/* v0.9.0-beta7 · libro cuantitativo real */
.quant-rule-strip{margin-top:2px}.text-green{color:var(--green)!important}.quant-toolbar{padding:18px 20px}.quant-toolbar-row{display:flex;justify-content:space-between;align-items:end;gap:16px}.quant-toolbar-row>label{display:grid;gap:6px;min-width:190px;font-size:12px;font-weight:800;color:var(--navy)}.quant-toolbar-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.quant-help{margin:12px 0 0}.quant-matrix-wrap{overflow:auto;max-height:68vh;border:1px solid var(--line);border-radius:14px}.quant-matrix{min-width:1250px}.quant-matrix th{position:sticky;top:0;z-index:4;text-align:center;vertical-align:bottom;font-size:12px}.quant-matrix td{text-align:center;vertical-align:middle}.quant-matrix .sticky-student{position:sticky;left:0;z-index:3;background:#fff;text-align:left;min-width:260px;max-width:310px;box-shadow:6px 0 10px #17243a0a}.quant-matrix thead .sticky-student{z-index:6;background:#f7fbfe}.quant-matrix .sticky-student small{display:block;color:var(--muted);margin-top:4px;font-weight:500}.form-head span{display:block;color:var(--green);font-size:10px;letter-spacing:.45px}.form-head b{display:block;min-width:90px;max-width:140px;white-space:normal}.sum-head{background:#fff8ed!important}.quant-input{width:84px;padding:8px 7px;text-align:center;border-radius:8px}.quant-input.changed{border-color:var(--orange);box-shadow:0 0 0 2px #f07a1220}.quant-input.invalid-grade{border-color:var(--red);background:#fff0f0}.calc-cell{font-weight:800;color:var(--navy);min-width:74px}.final-grade{font-size:16px;background:#edf8f1}.final-grade.low-grade{background:#fdecec;color:#b03030}.formative-cell{min-width:125px}.formative-meta{display:grid;gap:5px;justify-items:center;margin-top:5px}.sumative-cell{min-width:130px}.sumative-meta{display:grid;gap:5px;justify-items:center;margin-top:5px}.effective-note{font-size:10px;color:var(--muted)}.mini-link{border:0;background:transparent;color:#1e6f9f;text-decoration:underline;font-size:11px;font-weight:800;cursor:pointer;padding:2px}.mini-link:disabled{opacity:.45;cursor:not-allowed}.quant-policy-card p{margin:8px 0;line-height:1.45}.quant-card .section-title{margin-bottom:12px}.modal-card.paste-card{width:min(720px,96vw)}
@media(max-width:900px){.quant-toolbar-row{align-items:stretch;flex-direction:column}.quant-toolbar-actions{justify-content:flex-start}.quant-toolbar-actions .btn{flex:1}.quant-matrix-wrap{max-height:none}}
.closure-pills{display:flex;gap:5px;flex-wrap:wrap}.closure-pills .pill{white-space:nowrap}


/* ==========================================================
   SIGE-PAIGUARA v0.9.0-beta8-r6
   Ajuste responsive del panel principal.
   Evita que los iconos oculten textos al reducir la ventana.
   ========================================================== */
.kpi,.quick a,.quick-label{min-width:0}
.kpi span,.kpi small,.quick-label{overflow-wrap:anywhere;word-break:normal}
.quick a{overflow:hidden}
.quick-label{display:block;line-height:1.2}

@media (max-width:1200px) and (min-width:901px){
  .content{padding:20px}
  .kpis.v07{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2{grid-template-columns:1fr}
  .quick{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{min-height:132px;padding:18px 82px 18px 18px}
  .kpi-icon{right:14px;top:14px;width:48px;height:48px}
  .quick a{min-height:72px}
}

@media (max-width:1050px) and (min-width:901px){
  .hero{padding:22px;flex-wrap:wrap}
  .hero.with-icon>div:first-child,.hero.with-icon>div:first-child>div{min-width:0}
  .hero h2{font-size:25px;line-height:1.12}
  .hero p{overflow-wrap:anywhere}
  .topbar{padding:0 18px}
}

@media (max-width:900px){
  .sidebar{height:auto;position:relative;overflow:visible}
  .kpis.v07{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2{grid-template-columns:1fr}
  .quick{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{min-width:0;padding-right:82px}
}

@media (max-width:650px){
  .kpis.v07,.quick{grid-template-columns:1fr}
  .kpi{padding-right:76px}
  .quick a{align-items:center}
  .quick-icon{width:42px;height:42px}
  .quick-label{font-size:13px}
}

/* ==========================================================
   SIGE-PAIGUARA v0.9.0-beta8-r7
   Menú lateral compacto en ventanas angostas.
   Corrige el caso en que, al reducir Chrome, el sidebar pasaba
   a ocupar todo el ancho y ocultaba el contenido principal.
   ========================================================== */
@media (max-width:900px){
  /* Mantener siempre dos columnas: barra compacta + contenido */
  .app-shell{
    grid-template-columns:78px minmax(0,1fr) !important;
    min-height:100vh;
  }

  /* Sidebar compacto y fijo visualmente */
  .sidebar{
    width:78px;
    min-width:78px;
    height:100vh !important;
    position:sticky !important;
    top:0;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:12px 8px;
    z-index:30;
  }

  /* Solo escudo en la cabecera */
  .brand{
    justify-content:center;
    gap:0;
    padding:0 0 14px;
  }
  .brand img{
    width:48px !important;
    height:48px !important;
    flex:0 0 48px;
  }
  .brand>div{
    display:none !important;
  }

  /* Navegación: solo iconos, centrados y sin superposición */
  .sidebar nav{
    gap:6px;
    margin-top:12px;
  }
  .sidebar nav a{
    width:100%;
    min-width:0;
    min-height:46px;
    padding:8px 4px;
    justify-content:center;
    gap:0;
    overflow:hidden;
  }
  .sidebar nav a:hover{
    transform:none;
  }
  .sidebar nav a .nav-icon,
  .sidebar nav a>img{
    width:31px !important;
    height:31px !important;
    flex:0 0 31px;
    object-fit:contain;
  }
  .sidebar nav a>span{
    display:none !important;
  }

  /* Pie compacto. Se conserva la salida sin ocupar ancho */
  .sidebar-foot{
    padding:10px 0 4px;
    place-items:center;
    gap:4px;
  }
  .sidebar-foot small{
    display:none !important;
  }
  .sidebar-foot a{
    width:46px;
    height:42px;
    display:grid;
    place-items:center;
    overflow:hidden;
    font-size:0;
    border-radius:12px;
    color:#b8d9ee;
  }
  .sidebar-foot a::before{
    content:"↪";
    font-size:25px;
    line-height:1;
    font-weight:800;
  }
  .sidebar-foot a:hover{
    background:#ffffff13;
  }

  /* El contenido debe poder encogerse sin salirse de la pantalla */
  .main,
  .topbar,
  .content{
    min-width:0;
    max-width:100%;
  }
  .topbar{
    height:auto;
    min-height:76px;
    padding:10px 14px;
    gap:10px;
  }
  .topbar>div{
    min-width:0;
  }
  .topbar h1{
    font-size:21px;
    line-height:1.08;
    overflow-wrap:anywhere;
  }
  .topbar p{
    font-size:12px;
    overflow-wrap:anywhere;
  }
  .status{
    flex:0 0 auto;
    font-size:12px;
  }
  .content{
    padding:14px;
    overflow-x:hidden;
  }

  /* PAIGUARITO compacto para no tapar tarjetas o formularios */
  .paiguarito-btn{
    right:12px;
    bottom:12px;
    width:58px;
    height:58px;
    padding:4px;
    border-radius:17px;
    justify-content:center;
    z-index:40;
  }
  .paiguarito-btn img{
    width:46px !important;
    height:46px !important;
  }
  .paiguarito-btn span{
    display:none !important;
  }
  .chat-panel{
    right:10px;
    bottom:78px;
    width:min(390px,calc(100vw - 98px));
    max-width:calc(100vw - 98px);
  }
}

@media (max-width:600px){
  .app-shell{
    grid-template-columns:66px minmax(0,1fr) !important;
  }
  .sidebar{
    width:66px;
    min-width:66px;
    padding:10px 6px;
  }
  .brand img{
    width:43px !important;
    height:43px !important;
    flex-basis:43px;
  }
  .sidebar nav a{
    min-height:43px;
    padding:6px 2px;
  }
  .sidebar nav a .nav-icon,
  .sidebar nav a>img{
    width:28px !important;
    height:28px !important;
    flex-basis:28px;
  }
  .content{
    padding:10px;
  }
  .topbar{
    padding:8px 10px;
  }
  .status{
    display:none;
  }
  .chat-panel{
    width:calc(100vw - 84px);
    max-width:calc(100vw - 84px);
  }
}

/* v0.9.0-beta8-r8 · diferenciación Representantes / Grupos familiares */
.family-help{padding:16px 18px;background:#f8fbfe}.family-help-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.family-help-grid>div{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.family-help-grid strong{color:var(--navy)}.family-help-grid span{color:var(--muted);font-size:13px;line-height:1.35}.family-title-block{min-width:0}.family-kicker{display:block;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:4px}.family-rep-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:6px}.pill.info{background:#e8f4fb;color:#245f87}.family-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.family-group-card table td:first-child{min-width:210px}.family-group-card table td:last-child{white-space:nowrap}@media(max-width:900px){.family-help-grid{grid-template-columns:1fr}.family-head{align-items:flex-start;flex-direction:column}.family-head-actions{justify-content:flex-start}}


/* ==========================================================
   SIGE-PAIGUARA v0.9.0-beta8-r13
   Calificaciones: botones legibles en ventanas angostas y
   corrección del campo oculto en mejora formativa.
   ========================================================== */
[hidden]{display:none!important}

/* La tabla académica conserva un ancho útil. En ventanas pequeñas
   se desplaza horizontalmente en lugar de aplastar el botón Libro. */
.academic-structure-table{min-width:900px}
.academic-structure-table th:last-child,
.academic-structure-table td:last-child{
  min-width:118px;
  width:118px;
  text-align:center;
  white-space:nowrap;
}
.academic-structure-table td:last-child .btn{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:100px;
  max-width:none;
  white-space:nowrap;
  text-align:center;
  font-weight:800;
  line-height:1.15;
}
.table-wrap{-webkit-overflow-scrolling:touch}

/* En el modal de mejora formativa el campo de refuerzo separado no
   debe reaparecer por las reglas de display de los labels. */
#reinforcementLabel[hidden]{display:none!important}
#formativeImprovementHelp{margin-top:-4px}
.modal-card .row-actions{display:flex;gap:10px;flex-wrap:wrap}
.modal-card .row-actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:128px;
  white-space:nowrap;
  text-align:center;
  font-weight:800;
}

@media(max-width:900px){
  .academic-structure-table{min-width:860px}
}

/* r14 - visibilidad de mejora sumativa del examen */
.exam-improve-action{border:0;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:900;line-height:1.15;cursor:pointer;white-space:normal;min-width:94px;max-width:122px;text-align:center}.exam-improve-action.direct{background:#e8f4ff;color:#145a86}.exam-improve-action.reinforce{background:#fff1d8;color:#8a5a00}.exam-improve-action:disabled{opacity:.45;cursor:not-allowed}.exam-improve-status{display:inline-block;font-size:9px;font-weight:800;color:var(--muted);line-height:1.15;max-width:110px}.exam-improve-status.pending{color:#a24f00;background:#fff4e4;border-radius:7px;padding:4px 6px}

/* beta8-r15 · alineación del libro y mensajes de mejora */
.quant-matrix tbody .formative-cell,
.quant-matrix tbody .sumative-cell{
  vertical-align:top!important;
  padding-top:14px;
}
.quant-matrix tbody .formative-cell .quant-input,
.quant-matrix tbody .sumative-cell .quant-input{
  display:block;
  margin:0 auto;
}
.quant-matrix tbody .formative-meta,
.quant-matrix tbody .sumative-meta{
  min-height:48px;
  align-content:start;
}
.grade-meta-placeholder{
  display:block;
  height:17px;
  min-height:17px;
  visibility:hidden;
}
.exam-improve-status.empty{
  display:block;
  min-height:14px;
  visibility:hidden;
}

/* beta8-r16 · mejora de examen visible y sincronizada tras guardar */
.exam-auto-improve[hidden]{display:none!important}
.sumative-meta .exam-auto-improve{margin-top:0}
.exam-auto-status{min-height:24px;display:flex;align-items:center;justify-content:center;text-align:center}
@media(max-width:1350px){
  .exam-improve-action{min-width:88px;max-width:112px;padding:6px 7px;font-size:9px}
  .exam-auto-status{font-size:8px;max-width:104px}
}

/* beta8-r17 · estado explícito de la mejora del examen */
.exam-auto-status:not(.empty){
  min-width:104px;
  max-width:126px;
  padding:4px 6px;
  border-radius:7px;
  background:#f4f6f8;
  color:var(--muted);
}

/* beta8-r26 · 1.º EGB: estructura cualitativa unificada y agrupada */
.pill.neutral{background:#eef2f6;color:#596577}
.qualitative-components-card>p{margin-top:-4px;color:var(--muted)}
.qual-subject-group{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:16px;background:#fff}
.qual-subject-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;background:#f5f9fc;border-bottom:1px solid var(--line)}
.qual-subject-head b{display:block;color:var(--navy);font-size:15px}
.qual-subject-head small{display:block;color:var(--muted);margin-top:4px}
.qual-subject-table{margin:0}
.qual-subject-table th,.qual-subject-table td{padding:10px 12px}
.qual-subject-table th:first-child,.qual-subject-table td:first-child{width:54px;text-align:center}
.qual-subject-table th:nth-child(3),.qual-subject-table td:nth-child(3){width:90px;text-align:center}
.qual-subject-table th:last-child,.qual-subject-table td:last-child{width:190px;text-align:right}
.academic-structure-table th:first-child,.academic-structure-table td:first-child{width:52px;text-align:center}
@media(max-width:900px){.qual-subject-table{min-width:700px}}

/* beta8-r29 · gestión centralizada de estados, cierre y reapertura */
.course-state-toolbar{padding:18px 20px}.course-state-toolbar-row{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.course-state-toolbar-row h3{margin:0 0 4px}.course-state-toolbar-row p{margin:0;color:var(--muted);max-width:850px}.course-state-toolbar-row label{min-width:180px;font-weight:800}.course-state-toolbar-row select{width:100%;margin-top:6px}
.managed-subjects-table{min-width:1250px}.managed-subjects-table th:nth-child(5),.managed-subjects-table th:nth-child(6),.managed-subjects-table th:nth-child(7),.managed-subjects-table td:nth-child(5),.managed-subjects-table td:nth-child(6),.managed-subjects-table td:nth-child(7){min-width:145px;text-align:center}.managed-subjects-table th:nth-child(8),.managed-subjects-table td:nth-child(8){min-width:150px;text-align:center}.managed-subjects-table td:last-child{min-width:250px;width:auto;white-space:normal}
.managed-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.managed-actions .btn{min-width:auto!important}.managed-actions .pill{white-space:nowrap}.managed-qual-head{align-items:flex-start;flex-wrap:wrap}.qual-group-states{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:center}.managed-qual-group .qual-subject-table th:nth-child(4),.managed-qual-group .qual-subject-table td:nth-child(4){min-width:210px;text-align:left}.managed-qual-group .qual-subject-table th:last-child,.managed-qual-group .qual-subject-table td:last-child{min-width:185px}.other-teachers-table{min-width:960px}.other-teachers-table th:nth-child(n+4):nth-child(-n+6),.other-teachers-table td:nth-child(n+4):nth-child(-n+6){min-width:145px;text-align:center}
@media(max-width:900px){.course-state-toolbar-row{align-items:stretch}.course-state-toolbar-row label{width:100%}.managed-qual-head{display:block}.qual-group-states,.managed-qual-head .managed-actions{margin-top:10px;justify-content:flex-start}}


/* beta8-r32 · cierre visible y notificaciones de solicitudes */
.nav-badge.notify{background:#e53935;color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.16);font-size:10px;min-width:19px;height:19px;vertical-align:middle}
.close-disabled{opacity:.48!important;cursor:not-allowed!important;filter:grayscale(.15)}
.close-requirement{display:block;max-width:190px;color:var(--muted);font-size:10px;line-height:1.2;text-align:right}
.managed-qual-head .close-requirement{max-width:220px}
@media(max-width:900px){.close-requirement{text-align:left;max-width:none}}

/* r39 · asistencia trimestral */
.attendance-controls{display:grid;grid-template-columns:minmax(180px,240px) repeat(2,minmax(170px,1fr));gap:12px;align-items:end;margin:12px 0}.attendance-controls label{font-weight:800;color:var(--navy)}.attendance-controls select{margin-top:6px}.attendance-table input[type=number]{width:96px;min-width:80px;text-align:center}.attendance-table .att-total,.attendance-table .att-pct{font-weight:800;color:var(--navy);white-space:nowrap}.attendance-table tr.attendance-invalid{background:#fff1f2}.attendance-days-grid input[readonly]{background:#f3f6f9;font-weight:800}.attendance-summary-card .alert{margin-top:12px}@media(max-width:900px){.attendance-controls{grid-template-columns:1fr}.attendance-table{min-width:900px}}
