:root{
  --bg:#f4f7fb; --panel:#fff; --text:#172033; --muted:#6b7280; --line:#dde4ee;
  --brand:#244b36; --brand2:#356b4d; --ok:#e8f6ed; --warn:#fff5d8; --bad:#fdeaea; --info:#eef5ff;
  --shadow:0 10px 30px rgba(24,39,75,.08); --r:16px;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e8efe9,#f7f9fc)}
.login-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:30px;box-shadow:var(--shadow);border:1px solid #e5eaf1}
.logo{width:58px;height:58px;border-radius:16px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;margin-bottom:16px}
h1,h2,h3{margin:0 0 10px}.sub{color:var(--muted);line-height:1.45}.field{display:grid;gap:6px;margin:14px 0}.field label{font-size:13px;font-weight:700;color:#4b5563}
.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #cfd8e5;border-radius:10px;background:#fff}.field textarea{min-height:90px;resize:vertical}
.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.btn.primary{background:var(--brand);color:#fff}.btn.secondary{background:#edf2f7;color:#253047}.btn.danger{background:#8b2525;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}
.demo{margin-top:18px;padding:12px;background:#f7f9fc;border:1px dashed #c9d4e2;border-radius:12px;font-size:13px;line-height:1.55}
.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#173528;color:#eef7f1;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{font-weight:800;font-size:20px;padding:4px 8px 18px}.brand-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.brand-line img{width:46px;height:46px;object-fit:contain;flex:none}.brand small{display:block;font-size:11px;font-weight:500;color:#a9c2b4;margin-top:4px}
.nav{display:grid;gap:7px}.nav button{border:0;background:transparent;color:#dceae2;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer}.nav button:hover,.nav button.active{background:#28513d;color:#fff}.sidebar .foot{position:absolute;left:16px;right:16px;bottom:18px;font-size:12px;color:#a9c2b4}
.nav-heading{padding:15px 12px 3px;color:#fff;font-size:13px;font-weight:800;letter-spacing:.07em}.nav-heading:first-child{padding-top:3px}
.main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:3}.who{font-size:13px;color:var(--muted)}.who strong{color:var(--text)}
.content{padding:24px;max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:18px;flex-wrap:wrap}.page-head p{margin:3px 0 0;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 5px 18px rgba(24,39,75,.04);padding:18px}.metric{font-size:28px;font-weight:800}.metric-label{font-size:13px;color:var(--muted);margin-top:3px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 5px 18px rgba(24,39,75,.04);margin-bottom:18px;overflow:hidden}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.panel-body{padding:18px}.filters{display:flex;gap:10px;flex-wrap:wrap}.filters select{padding:9px 11px;border:1px solid #cfd8e5;border-radius:9px;background:#fff}
.table-wrap{overflow:auto}.grade-table{border-collapse:separate;border-spacing:0;width:100%;min-width:850px;font-size:13px}.grade-table th,.grade-table td{border-right:1px solid #e2e7ef;border-bottom:1px solid #e2e7ef;padding:8px 9px;text-align:center}.grade-table th:first-child,.grade-table td:first-child{border-left:1px solid #e2e7ef}.grade-table thead th{position:sticky;top:0;background:#edf3ef;z-index:1;font-weight:800}.grade-table td.name{text-align:left;min-width:210px;font-weight:650}.grade-table td.control{font-family:Consolas,monospace;color:#5c6678}
.grade-input{width:62px;text-align:center;border:1px solid #afc4b6;border-radius:7px;padding:6px;background:#fff}.locked{color:#6b7280;background:#f6f7f9}.g-ok{background:var(--ok)}.g-warn{background:var(--warn)}.g-bad{background:var(--bad);font-weight:800}.g-empty{background:#fafafa;color:#9ca3af}.clickable{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.badge.ok{background:var(--ok);color:#176239}.badge.warn{background:var(--warn);color:#795b00}.badge.bad{background:var(--bad);color:#8e2929}.badge.info{background:var(--info);color:#2556a4}
.assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.assignment{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}.assignment h3{font-size:16px}.assignment .meta{color:var(--muted);font-size:13px;line-height:1.5}.assignment .actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.list{display:grid;gap:8px}.row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eef1f5}.row:last-child{border-bottom:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid #e0e6ee;border-radius:9px;background:#fafbfd}.check input{margin-top:2px}
.notice{padding:12px 14px;border-radius:10px;background:#eef5ff;border:1px solid #d2e3ff;color:#24446f;font-size:13px;line-height:1.5}.error{background:#fff0f0;border-color:#f3caca;color:#8b2525}.success{background:#edf9f1;border-color:#cbead5;color:#23643b}
.modal-back{position:fixed;inset:0;background:rgba(13,20,31,.55);display:grid;place-items:center;padding:18px;z-index:20}.modal{background:#fff;width:min(780px,100%);max-height:90vh;overflow:auto;border-radius:18px;box-shadow:var(--shadow)}.modal-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.modal-body{padding:18px}.x{border:0;background:#edf2f7;border-radius:8px;width:32px;height:32px;cursor:pointer}
.print-sheet{background:#fff;border:1px solid #ccd5e1;padding:28px;max-width:1000px;margin:auto;color:#111}.print-head{text-align:center;border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:16px}.print-head h2{font-size:18px}.kv{display:grid;grid-template-columns:180px 1fr;border:1px solid #222;border-bottom:0}.kv div{padding:8px;border-bottom:1px solid #222}.kv div:nth-child(odd){font-weight:700;border-right:1px solid #222;background:#f2f2f2}.stats4{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #222;margin:14px 0}.stats4 div{padding:10px;text-align:center;border-right:1px solid #222}.stats4 div:last-child{border-right:0}.section-print{border:1px solid #222;margin-top:12px}.section-print h3{font-size:13px;margin:0;padding:8px;background:#eaeaea;border-bottom:1px solid #222}.section-print p{padding:10px;margin:0;min-height:45px;white-space:pre-line}.print-actions{display:flex;gap:8px;justify-content:center;margin:18px 0}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.assignment-grid{grid-template-columns:1fr 1fr}.shell{grid-template-columns:78px 1fr}.sidebar{padding:18px 8px}.brand{font-size:0}.brand:before{content:'S307';font-size:15px}.brand small{display:none}.nav button{font-size:0;text-align:center}.nav button:before{font-size:20px}.nav button[data-icon]:before{content:attr(data-icon)}.sidebar .foot{display:none}}
@media(max-width:700px){.content{padding:14px}.topbar{padding:0 14px}.cards{grid-template-columns:1fr 1fr}.assignment-grid,.form-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.shell{display:block}.sidebar{position:static;height:auto;display:flex;overflow:auto;gap:7px}.brand,.sidebar .foot{display:none}.nav{display:flex}.nav button{white-space:nowrap;font-size:0}.nav button:before{font-size:20px}.main{width:100%}.stats4{grid-template-columns:1fr 1fr}.stats4 div{border-bottom:1px solid #222}}
@media print{body{background:#fff}.sidebar,.topbar,.page-head,.print-actions,.no-print{display:none!important}.shell{display:block}.content{padding:0}.panel{border:0;box-shadow:none}.print-sheet{border:0;padding:0;max-width:none}.panel-head{display:none}.panel-body{padding:0}}

/* V0.2 · Catálogos personalizables por docente */
.rubric-help{margin-bottom:16px}.rubric-grid{align-items:start}.rubric-card{border:1px solid #dfe6ee;border-radius:14px;padding:14px;background:#fff;box-shadow:0 3px 12px rgba(24,39,75,.035)}
.rubric-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}.rubric-title-row h3{font-size:17px;margin:0}.rubric-count{flex:0 0 auto;font-size:12px;font-weight:800;border-radius:999px;padding:4px 8px;background:#eef5ff;color:#2556a4}.rubric-count.full{background:#edf9f1;color:#23643b}
.rubric-tools{margin-top:10px;padding-top:10px;border-top:1px dashed #d7e0ea;display:grid;gap:8px}.rubric-tool-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.rubric-new{flex:1 1 190px;min-width:0;padding:8px 10px;border:1px solid #cfd8e5;border-radius:8px}.rubric-remove{flex:1 1 190px;min-width:0;padding:8px 10px;border:1px solid #cfd8e5;border-radius:8px;background:#fff}
.btn.mini{padding:8px 10px;font-size:12px}.btn.danger-outline{background:#fff3f3;color:#8b2525;border:1px solid #efc4c4}.rubric-note{font-size:11px;color:#637083;line-height:1.45}.rubric-note.pending{color:#8a6200;font-weight:700}.rubric-note span{font-weight:400;color:#778196}.rubric-options{min-height:112px}
@media(max-width:900px){.rubric-tool-row .btn{flex:0 0 auto}}@media(max-width:560px){.rubric-new,.rubric-remove{flex-basis:100%}.rubric-tool-row .btn{flex:1 1 auto}}

/* V0.3 · Escudo institucional + índice de aprobación en ficha imprimible */
.print-head-logo{display:grid;grid-template-columns:112px 1fr 112px;align-items:center;gap:12px;text-align:center}
.print-head-text{text-align:center}.print-logo-wrap{display:flex;align-items:center;justify-content:center}.print-logo{width:100px;max-height:100px;object-fit:contain;display:block}.print-logo-spacer{width:112px;height:1px}
.stats5{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #222;margin:14px 0}.stats5 div{padding:10px 6px;text-align:center;border-right:1px solid #222;font-size:13px}.stats5 div:last-child{border-right:0}.stats5 b{font-size:16px}.print-footnote{font-size:11px;line-height:1.35}
@media(max-width:850px){.print-head-logo{grid-template-columns:90px 1fr 90px}.print-logo{width:82px;max-height:82px}.print-logo-spacer{width:90px}.stats5{grid-template-columns:repeat(3,1fr)}.stats5 div{border-bottom:1px solid #222}.stats5 div:nth-child(3n){border-right:0}.stats5 div:last-child{border-bottom:0}}
@media(max-width:560px){.print-head-logo{grid-template-columns:70px 1fr 70px;gap:6px}.print-logo{width:64px;max-height:64px}.print-logo-spacer{width:70px}.stats5{grid-template-columns:1fr 1fr}.stats5 div:nth-child(3n){border-right:1px solid #222}.stats5 div:nth-child(2n){border-right:0}.stats5 div:last-child{grid-column:1/-1;border-right:0}}
@media print{.print-head-logo{grid-template-columns:105px 1fr 105px}.print-logo{width:92px;max-height:92px}.print-logo-spacer{width:105px}.stats5{grid-template-columns:repeat(5,1fr)}.stats5 div{font-size:11px;padding:8px 4px;border-bottom:0}.stats5 b{font-size:14px}.print-head-text h2{font-size:16px}.print-head-text>div{font-size:12px}}


/* V0.5 · Exportación/impresión de calificaciones con encabezado institucional y colores */
.grade-head-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.grade-head-actions .filters{margin:0}
.grades-print-sheet{max-width:1400px}.grade-print-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #222;border-right:0;margin:12px 0 8px}.grade-print-meta>div{padding:7px 9px;border-right:1px solid #222;font-size:12px}.grade-print-note{font-size:11px;margin:0 0 9px;color:#333}.grade-print-table-wrap{overflow:auto}.grade-print-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:10px;color:#111}.grade-print-table th,.grade-print-table td{border:1px solid #aeb8c4;padding:5px 5px;text-align:center;vertical-align:middle}.grade-print-table th{background:#edf3ef;font-weight:800;line-height:1.15}.grade-print-table .print-name{text-align:left;font-weight:650;min-width:170px}.grade-print-table .print-control{font-family:Consolas,monospace;white-space:nowrap}.grade-print-table tbody tr{break-inside:avoid;page-break-inside:avoid}.grade-print-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;font-size:10px}.legend-chip{border:1px solid #cfd6df;border-radius:6px;padding:4px 7px;font-weight:700}
.grade-print-table .g-ok,.legend-chip.g-ok{background:#e8f6ed!important}.grade-print-table .g-warn,.legend-chip.g-warn{background:#fff5d8!important}.grade-print-table .g-bad,.legend-chip.g-bad{background:#fdeaea!important}.grade-print-table .g-empty,.legend-chip.g-empty{background:#fafafa!important;color:#777!important}
@media(max-width:850px){.grade-print-meta{grid-template-columns:1fr 1fr}.grade-print-meta>div{border-bottom:1px solid #222}.grade-print-meta>div:nth-child(2n){border-right:1px solid #222}}
@media print{
  body.printing-grades,.printing-grades *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
  .printing-grades .grades-print-panel{margin:0!important;overflow:visible!important}
  .printing-grades .grades-print-sheet{font-family:Arial,Helvetica,sans-serif!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .printing-grades .print-head{margin-bottom:9px!important;padding-bottom:8px!important}
  .printing-grades .print-head-logo{grid-template-columns:90px 1fr 90px!important;gap:8px!important}
  .printing-grades .print-logo{width:78px!important;max-height:78px!important}
  .printing-grades .print-logo-spacer{width:90px!important}
  .printing-grades .print-head-text h2{font-size:13px!important;margin-bottom:5px!important}
  .printing-grades .print-head-text>div{font-size:9.5px!important}
  .printing-grades .grade-print-meta{margin:7px 0 5px!important;grid-template-columns:repeat(4,1fr)!important}
  .printing-grades .grade-print-meta>div{font-size:8.5px!important;padding:4px 5px!important;border-bottom:0!important}
  .printing-grades .grade-print-note{font-size:8px!important;margin-bottom:5px!important}
  .printing-grades .grade-print-table{font-size:7.7px!important;width:100%!important;table-layout:fixed!important}
  .printing-grades .grade-print-table th,.printing-grades .grade-print-table td{padding:3.3px 2.5px!important;line-height:1.08!important}
  .printing-grades .grade-print-table th:nth-child(1){width:3.2%!important}.printing-grades .grade-print-table th:nth-child(2){width:8.2%!important}.printing-grades .grade-print-table th:nth-child(3){width:21%!important}.printing-grades .grade-print-table th:last-child{width:7%!important}
  .printing-grades .grade-print-table .print-name{min-width:0!important;text-align:left!important}
  .printing-grades .grade-print-legend{font-size:7.5px!important;margin-top:5px!important;gap:5px!important}.printing-grades .legend-chip{padding:2px 4px!important}
  .printing-grades .g-ok{background:#e8f6ed!important}.printing-grades .g-warn{background:#fff5d8!important}.printing-grades .g-bad{background:#fdeaea!important}.printing-grades .g-empty{background:#fafafa!important}
}


/* V0.6 · Análisis por asignatura, filtros de atención y exportación PDF */
.analysis-head-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.analysis-head-actions .filters{margin:0}
.analysis-table-wrap{overflow:auto;border:1px solid #dbe3ec;border-radius:12px}.analysis-table{width:100%;border-collapse:collapse;min-width:880px;font-size:13px}.analysis-table th,.analysis-table td{padding:11px 10px;border-right:1px solid #dbe3ec;border-bottom:1px solid #dbe3ec;text-align:center;vertical-align:middle}.analysis-table th:last-child,.analysis-table td:last-child{border-right:0}.analysis-table tbody tr:last-child td{border-bottom:0}.analysis-table th{background:#eef4f1;color:#142033;font-size:12px;line-height:1.25}.analysis-table .analysis-subject{text-align:left;min-width:190px;background:#fff}.analysis-table .analysis-subject .who{margin-top:3px}
.analysis-ok{background:#e8f6ed!important;color:#145c34!important;font-weight:800}.analysis-warn{background:#fff3cf!important;color:#765400!important;font-weight:800}.analysis-bad{background:#fdeaea!important;color:#8a2020!important;font-weight:800}
.attention-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.attention-filter{border:1px solid #d3dce7;background:#f8fafc;color:#263548;border-radius:10px;padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:700}.attention-filter b{min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#e8eef5;display:grid;place-items:center;font-size:12px}.attention-filter.active{background:#245f43;color:#fff;border-color:#245f43}.attention-filter.active b{background:#fff;color:#245f43}
.attention-list{border:1px solid #e0e6ee;border-radius:12px;overflow:hidden}.attention-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid #e5ebf2}.attention-row:last-child{border-bottom:0}.attention-main{min-width:0}.failed-subjects{margin-top:5px;font-size:12px;color:#445266;line-height:1.4}
.analysis-print-sheet{max-width:1400px}.analysis-print-meta{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #222;border-right:0;margin:10px 0 8px}.analysis-print-meta>div{border-right:1px solid #222;padding:6px 8px;font-size:11px}.analysis-print-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:8px 0 10px}.analysis-print-cards>div{border:1px solid #cfd8e2;border-radius:8px;text-align:center;padding:7px;background:#f8fafc}.analysis-print-cards b{display:block;font-size:17px}.analysis-print-cards span{font-size:9px;color:#526174}.analysis-print-section{margin-top:10px}.analysis-print-section>h3{font-size:11px;margin:0;padding:6px 8px;background:#e9ecef;border:1px solid #222;border-bottom:0}.analysis-print-table{min-width:0!important;border-radius:0!important}.analysis-print-table th,.analysis-print-table td{border-color:#aeb8c4!important;padding:5px 5px!important;font-size:9px!important}.analysis-print-table th{font-size:8.3px!important}.analysis-filter-caption{font-size:9px;border:1px solid #cfd6df;border-bottom:0;padding:6px 8px;background:#f8fafc}.attention-print-table{width:100%;border-collapse:collapse;font-size:9px}.attention-print-table th,.attention-print-table td{border:1px solid #aeb8c4;padding:5px 6px;vertical-align:top}.attention-print-table th{background:#eef4f1;text-align:left;font-size:8.5px}.attention-print-table th:nth-child(2),.attention-print-table td:nth-child(2),.attention-print-table th:nth-child(3),.attention-print-table td:nth-child(3){text-align:center}
@media(max-width:780px){.analysis-head-actions{width:100%}.analysis-print-meta{grid-template-columns:1fr 1fr}.analysis-print-cards{grid-template-columns:1fr 1fr}.attention-row{align-items:flex-start}.attention-filter{flex:1 1 140px;justify-content:space-between}}
@media print{
 body.printing-analysis,.printing-analysis *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
 .printing-analysis .analysis-print-panel{margin:0!important;overflow:visible!important}.printing-analysis .analysis-print-sheet{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;font-family:Arial,Helvetica,sans-serif!important}
 .printing-analysis .print-head{margin-bottom:7px!important;padding-bottom:7px!important}.printing-analysis .print-head-logo{grid-template-columns:88px 1fr 88px!important;gap:7px!important}.printing-analysis .print-logo{width:76px!important;max-height:76px!important}.printing-analysis .print-logo-spacer{width:88px!important}.printing-analysis .print-head-text h2{font-size:12px!important;margin-bottom:4px!important}.printing-analysis .print-head-text>div{font-size:9px!important}
 .printing-analysis .analysis-print-meta{grid-template-columns:repeat(4,1fr)!important;margin:6px 0!important}.printing-analysis .analysis-print-meta>div{font-size:8px!important;padding:4px!important}.printing-analysis .analysis-print-cards{grid-template-columns:repeat(4,1fr)!important;gap:5px!important;margin:6px 0!important}.printing-analysis .analysis-print-cards>div{padding:4px!important;border-radius:5px!important}.printing-analysis .analysis-print-cards b{font-size:13px!important}.printing-analysis .analysis-print-cards span{font-size:7.5px!important}
 .printing-analysis .analysis-print-section{margin-top:7px!important}.printing-analysis .analysis-print-section>h3{font-size:8.5px!important;padding:4px 5px!important}.printing-analysis .analysis-print-table th,.printing-analysis .analysis-print-table td{font-size:7.4px!important;padding:3.5px 3px!important;line-height:1.08!important}.printing-analysis .analysis-print-table th{font-size:7px!important}.printing-analysis .analysis-subject .who{font-size:6.8px!important}.printing-analysis .analysis-filter-caption{font-size:7.2px!important;padding:4px 5px!important}.printing-analysis .attention-print-table{font-size:7.2px!important}.printing-analysis .attention-print-table th,.printing-analysis .attention-print-table td{font-size:7.2px!important;padding:3.5px 4px!important;line-height:1.1!important}
 .printing-analysis .analysis-ok{background:#e8f6ed!important}.printing-analysis .analysis-warn{background:#fff3cf!important}.printing-analysis .analysis-bad{background:#fdeaea!important}
}


/* V0.7 · Selector de orientación para PDF del análisis */
.analysis-print-toolbar{display:flex;justify-content:center;align-items:flex-end;gap:12px;flex-wrap:wrap}
.orientation-picker{display:flex;align-items:center;gap:8px;border:1px solid #d6dee8;background:#f8fafc;border-radius:10px;padding:7px 10px;font-size:12px;color:#263548}
.orientation-picker>span{font-weight:800}.orientation-picker select{border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:6px 28px 6px 8px;font:inherit}.orientation-picker small{color:#66758a;min-width:83px}
.analysis-print-sheet.orientation-landscape{max-width:1400px}
.analysis-print-sheet.orientation-portrait{max-width:860px}
@media print{
 body.printing-analysis.analysis-portrait .analysis-print-sheet{width:100%!important;max-width:none!important}
 body.printing-analysis.analysis-portrait .print-head-logo{grid-template-columns:72px 1fr 72px!important;gap:5px!important}
 body.printing-analysis.analysis-portrait .print-logo{width:62px!important;max-height:62px!important}
 body.printing-analysis.analysis-portrait .print-logo-spacer{width:72px!important}
 body.printing-analysis.analysis-portrait .print-head-text h2{font-size:10px!important;margin-bottom:3px!important}
 body.printing-analysis.analysis-portrait .print-head-text>div{font-size:7.3px!important}
 body.printing-analysis.analysis-portrait .analysis-print-meta>div{font-size:6.8px!important;padding:3px!important}
 body.printing-analysis.analysis-portrait .analysis-print-cards{gap:3px!important;margin:4px 0!important}
 body.printing-analysis.analysis-portrait .analysis-print-cards>div{padding:3px!important}
 body.printing-analysis.analysis-portrait .analysis-print-cards b{font-size:11px!important}
 body.printing-analysis.analysis-portrait .analysis-print-cards span{font-size:6.3px!important}
 body.printing-analysis.analysis-portrait .analysis-print-section{margin-top:5px!important}
 body.printing-analysis.analysis-portrait .analysis-print-section>h3{font-size:7.3px!important;padding:3px 4px!important}
 body.printing-analysis.analysis-portrait .analysis-print-table{table-layout:fixed!important;width:100%!important}
 body.printing-analysis.analysis-portrait .analysis-print-table th,body.printing-analysis.analysis-portrait .analysis-print-table td{font-size:5.9px!important;padding:2.4px 1.8px!important;line-height:1.05!important;word-break:normal!important}
 body.printing-analysis.analysis-portrait .analysis-print-table th{font-size:5.5px!important}
 body.printing-analysis.analysis-portrait .analysis-print-table th:first-child,body.printing-analysis.analysis-portrait .analysis-print-table td:first-child{width:25%!important}
 body.printing-analysis.analysis-portrait .analysis-subject .who{font-size:5.2px!important}
 body.printing-analysis.analysis-portrait .analysis-filter-caption{font-size:6px!important;padding:3px 4px!important}
 body.printing-analysis.analysis-portrait .attention-print-table{table-layout:fixed!important;width:100%!important}
 body.printing-analysis.analysis-portrait .attention-print-table th,body.printing-analysis.analysis-portrait .attention-print-table td{font-size:6px!important;padding:2.7px 3px!important;line-height:1.06!important}
 body.printing-analysis.analysis-portrait .attention-print-table th:nth-child(1){width:31%!important}
 body.printing-analysis.analysis-portrait .attention-print-table th:nth-child(2){width:12%!important}
 body.printing-analysis.analysis-portrait .attention-print-table th:nth-child(3){width:24%!important}
 body.printing-analysis.analysis-portrait .attention-print-table th:nth-child(4){width:33%!important}
}


/* V0.8 · Orientación disponible en todas las vistas imprimibles */
.grades-print-sheet.orientation-landscape{max-width:1400px}
.grades-print-sheet.orientation-portrait{max-width:860px}
.ficha-print-sheet.orientation-portrait{max-width:1000px}
.ficha-print-sheet.orientation-landscape{max-width:1400px}
@media print{
 body.printing-grades.grades-portrait .grades-print-sheet{width:100%!important;max-width:none!important}
 body.printing-grades.grades-portrait .print-head-logo{grid-template-columns:68px 1fr 68px!important;gap:4px!important}
 body.printing-grades.grades-portrait .print-logo{width:58px!important;max-height:58px!important}
 body.printing-grades.grades-portrait .print-logo-spacer{width:68px!important}
 body.printing-grades.grades-portrait .print-head-text h2{font-size:9.5px!important;margin-bottom:2px!important}
 body.printing-grades.grades-portrait .print-head-text>div{font-size:6.8px!important}
 body.printing-grades.grades-portrait .grade-print-meta>div{font-size:6.2px!important;padding:2.8px 2px!important}
 body.printing-grades.grades-portrait .grade-print-note{font-size:6.2px!important;margin-bottom:3px!important}
 body.printing-grades.grades-portrait .grade-print-table{font-size:5.45px!important;table-layout:fixed!important}
 body.printing-grades.grades-portrait .grade-print-table th,body.printing-grades.grades-portrait .grade-print-table td{padding:2.1px 1.3px!important;line-height:1.02!important}
 body.printing-grades.grades-portrait .grade-print-table th:nth-child(1){width:3.5%!important}
 body.printing-grades.grades-portrait .grade-print-table th:nth-child(2){width:10%!important}
 body.printing-grades.grades-portrait .grade-print-table th:nth-child(3){width:24%!important}
 body.printing-grades.grades-portrait .grade-print-table th:last-child{width:8%!important}
 body.printing-grades.grades-portrait .grade-print-legend{font-size:5.8px!important;gap:3px!important}.printing-grades.grades-portrait .legend-chip{padding:1.5px 3px!important}

 body.printing-ficha,.printing-ficha *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
 body.printing-ficha .ficha-print-panel{margin:0!important;overflow:visible!important}
 body.printing-ficha .ficha-print-sheet{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;font-family:Arial,Helvetica,sans-serif!important}
 body.printing-ficha.ficha-landscape .print-head{margin-bottom:8px!important;padding-bottom:7px!important}
 body.printing-ficha.ficha-landscape .print-head-logo{grid-template-columns:82px 1fr 82px!important;gap:6px!important}
 body.printing-ficha.ficha-landscape .print-logo{width:70px!important;max-height:70px!important}
 body.printing-ficha.ficha-landscape .print-logo-spacer{width:82px!important}
 body.printing-ficha.ficha-landscape .print-head-text h2{font-size:12px!important;margin-bottom:3px!important}
 body.printing-ficha.ficha-landscape .print-head-text>div{font-size:8.5px!important}
 body.printing-ficha.ficha-landscape .kv{grid-template-columns:140px 1fr!important}.printing-ficha.ficha-landscape .kv div{padding:5px!important;font-size:9px!important}
 body.printing-ficha.ficha-landscape .stats5{margin:8px 0!important}.printing-ficha.ficha-landscape .stats5 div{padding:5px 3px!important;font-size:9px!important}.printing-ficha.ficha-landscape .stats5 b{font-size:12px!important}
 body.printing-ficha.ficha-landscape .print-footnote{font-size:8px!important}
 body.printing-ficha.ficha-landscape .section-print{margin-top:7px!important}.printing-ficha.ficha-landscape .section-print h3{font-size:9px!important;padding:5px!important}.printing-ficha.ficha-landscape .section-print p{font-size:9px!important;min-height:28px!important;padding:6px!important;line-height:1.2!important}
}

/* Administración V0.9 */
.semester-set{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.semester-set label{border:1px solid #cfdae7;border-radius:12px;padding:10px 14px;background:#fff;cursor:pointer;font-weight:700}.semester-set label.selected{border-color:#215f46;background:#eaf5ef;color:#174d36}
.academic-grade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.academic-grade-card{border:1px solid #d7e0e9;border-radius:14px;padding:15px;background:#fbfcfd}.academic-grade-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.academic-grade-title b{font-size:16px}.admin-field{display:flex;flex-direction:column;gap:5px;margin:8px 0}.admin-field span{font-size:12px;font-weight:700;color:#405265}.admin-field select{border:1px solid #c9d5e2;border-radius:9px;padding:9px;background:white}.career-counts{display:grid;gap:7px}.career-count{display:grid;grid-template-columns:1fr 78px;gap:8px;align-items:center;border-top:1px solid #edf1f4;padding-top:7px}.career-count span{font-size:13px}.career-count select{border:1px solid #c9d5e2;border-radius:8px;padding:7px;background:white}.academic-example{font-size:12px;color:#5e6f80;margin-top:10px;line-height:1.5}.preview-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px;margin-bottom:8px}.preview-title span{font-size:12px;color:#637384}.generated-preview{display:flex;flex-wrap:wrap;gap:7px;padding:12px;border:1px dashed #bfcbd7;border-radius:12px;background:#f8fafc}.group-pill{padding:6px 9px;border-radius:999px;background:#e8f3ed;color:#174d36;font-size:12px;font-weight:700}.academic-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.replace-check{font-size:12px;color:#6b3f30}.replace-check small{display:block;margin-left:22px;color:#8a6a61}
.import-instructions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.import-instructions>div{border:1px solid #dae2e9;border-radius:11px;padding:12px;background:#f8fafb}.import-instructions b{display:block;color:#174d36;font-size:12px}.import-instructions span{display:block;font-size:12px;color:#5f7080;margin-top:4px}.file-drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:76px;border:2px dashed #b8c7d5;border-radius:14px;background:#fbfcfd;cursor:pointer;margin-bottom:12px}.file-drop input{display:none}.file-drop b{color:#174d36}.file-drop span{font-size:12px;color:#70808f}.import-file-ok{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;background:#eaf5ef;margin-bottom:10px}.import-file-ok span{font-size:12px;color:#587266}.import-mapping{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.import-preview{margin-top:14px;border-top:1px solid #e1e7ec;padding-top:14px}.import-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.import-kpis>div{text-align:center;padding:10px;border:1px solid #dce4eb;border-radius:10px;background:#fff}.import-kpis b{display:block;font-size:20px}.import-kpis span{font-size:11px;color:#687988}.import-errors{border:1px solid #efc5c5;background:#fff5f5;color:#812525;border-radius:10px;padding:12px}.import-errors ul{margin:8px 0 0 18px;padding:0;font-size:12px;line-height:1.5}.notice.success{background:#eaf5ef;border-color:#b9ddc9;color:#174d36}.admin-assignment-list{max-height:430px;overflow:auto}
@media(max-width:1050px){.academic-grade-grid,.import-instructions,.import-mapping{grid-template-columns:1fr}.import-kpis{grid-template-columns:repeat(2,1fr)}}
.template-format-note{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:12px 14px;border:1px solid #d8e4dc;border-radius:12px;background:#f5faf7;color:#31483d}.template-format-note b{color:#174d36}.template-format-note span{font-size:13px}.template-format-note small{color:#6b7c73}.template-actions{display:flex;gap:8px;flex-wrap:wrap}.import-sheet-list{border:1px solid #dce4eb;border-radius:12px;padding:12px;margin:10px 0;background:#fbfcfd}.import-sheet-list>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:#405265;font-size:12px}.group-pill.sheet-found{background:#e8f3ed;color:#174d36}.group-pill.sheet-missing{background:#fdeaea;color:#8b2525;border:1px solid #efc1c1}
@media(max-width:700px){.template-actions{width:100%}.template-actions .btn{flex:1 1 100%}}


/* V0.11 · Seguridad de acceso docente y administración agrupada */
.password-change-card{max-width:520px}.password-change-card .notice{margin:14px 0}.security-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#f5f8fb;border:1px solid #d6e0e9;color:#526474;font-size:12px;line-height:1.45}.teacher-admin-table-wrap{overflow:auto}.teacher-admin-table{width:100%;border-collapse:collapse;min-width:920px}.teacher-admin-table th,.teacher-admin-table td{border-bottom:1px solid #e1e7ed;padding:12px 10px;text-align:left;vertical-align:top}.teacher-admin-table th{background:#f4f7f9;color:#334a5e;font-size:12px}.teacher-admin-table code{display:inline-block;padding:5px 7px;border-radius:7px;background:#eef3f6;color:#173f31;font-weight:700}.teacher-subjects{display:grid;gap:5px}.teacher-subjects>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,.8fr);gap:10px;padding:6px 8px;border-radius:8px;background:#f8fafb;border:1px solid #e4e9ee}.teacher-subjects b{font-size:12px}.teacher-subjects span{font-size:11px;color:#617282}.reset-password-btn{white-space:nowrap}.badge.warn{background:#fff0c9;color:#765500;border:1px solid #ecd58c}.teacher-admin-table .who{margin-top:5px;max-width:260px}
@media(max-width:900px){.teacher-admin-table{min-width:760px}.teacher-subjects>div{grid-template-columns:1fr}}

/* V0.12 · modos de importación y eliminación de asignaciones */
.import-mode-box{border:1px solid #d8e1e9;border-radius:13px;background:#f8fafb;padding:13px;margin:4px 0 14px}.import-mode-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.import-mode-title span{font-size:12px;color:#667887}.import-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.import-mode-option{display:flex;gap:10px;align-items:flex-start;border:1px solid #d4dee6;border-radius:11px;padding:12px;background:#fff;cursor:pointer}.import-mode-option.selected{border-color:#4f8b6e;box-shadow:0 0 0 2px #dfeee6}.import-mode-option.replace.selected{border-color:#b85d5d;box-shadow:0 0 0 2px #f4dddd}.import-mode-option input{margin-top:3px}.import-mode-option b{display:block;color:#173f31}.import-mode-option.replace b{color:#8b2525}.import-mode-option span{display:block;font-size:12px;line-height:1.45;color:#667887;margin-top:3px}.import-replace-warning{background:#fff4f4!important;border-color:#edc5c5!important;color:#842929!important;margin:10px 0}.teacher-subjects>div.teacher-subject-row{display:flex;grid-template-columns:none;justify-content:space-between;align-items:center;gap:10px}.teacher-subject-label{display:flex;flex-direction:column;min-width:0}.assignment-delete{border:1px solid #e4bcbc;background:#fff7f7;color:#8b2525;border-radius:7px;padding:6px 8px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.assignment-delete:hover{background:#ffeaea}.btn.danger{background:#9f2929;color:#fff;border-color:#9f2929}
@media(max-width:800px){.import-mode-options{grid-template-columns:1fr}.import-mode-title{align-items:flex-start;flex-direction:column}}

/* V0.14 · matrícula de alumnos */
.template-actions.standalone{display:flex;justify-content:flex-end;margin:12px 0 16px}.student-group-counts{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 12px}.student-group-counts span{border:1px solid #dbe5ee;background:#f8fbfd;border-radius:999px;padding:6px 10px;font-size:12px;color:#3e5365}.student-admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.student-admin-group{border:1px solid #dbe4ed;border-radius:12px;background:#fbfcfd;padding:12px}.student-admin-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e7edf2;padding-bottom:8px;margin-bottom:8px}.student-admin-group-head>div{display:flex;align-items:center;gap:10px;min-width:0}.student-admin-group-head span{font-size:12px;color:#60758a}.attendance-download-btn{border:1px solid #b8d1c4;background:#edf6f1;color:#174d36;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.attendance-download-btn:hover{background:#dfeee6}.attendance-download-btn:focus{outline:3px solid rgba(23,77,54,.18);outline-offset:2px}.student-mini-list{display:flex;flex-direction:column;gap:5px}.student-mini-list span{font-size:12px;color:#24384a}.student-mini-list small{color:#73879a;margin-left:6px}.student-mini-list em{font-size:11px;color:#6d8191;font-style:normal;margin-top:4px}

/* V0.15 · buscador de asignaciones */
.assignments-panel-head{gap:16px;flex-wrap:wrap}.assignment-search-wrap{position:relative;display:flex;align-items:center;min-width:320px;max-width:520px;flex:0 1 440px}.assignment-search{width:100%;height:42px;border:1px solid #cfdbe4;border-radius:11px;padding:0 42px 0 38px;background:#fff;font:inherit;color:#10251d;outline:none;transition:.15s}.assignment-search:focus{border-color:#4b8569;box-shadow:0 0 0 3px rgba(43,105,75,.12)}.assignment-search-icon{position:absolute;left:13px;color:#667b70;font-size:20px;pointer-events:none;line-height:1}.assignment-search-clear{position:absolute;right:8px;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#6c7a73;font-size:21px;cursor:pointer}.assignment-search-clear:hover{background:#eef4f1;color:#174d36}.assignment-search-status{font-size:12px;color:#687988;margin-bottom:12px}.assignment-no-results{margin-top:12px}.assignment-search-item{transition:opacity .12s ease}
@media(max-width:700px){.assignment-search-wrap{min-width:100%;max-width:none;flex-basis:100%}.assignments-panel-head{align-items:stretch}}
\n\n/* V0.17 · Impresión de calificaciones a escala visual 100% y aprovechamiento total de hoja */
@media print{
  /* El navegador mantiene escala 100%; dimensionamos el documento directamente en milímetros. */
  body.printing-grades{margin:0!important;padding:0!important}
  body.printing-grades.grades-landscape .grades-print-sheet{
    width:287mm!important;max-width:287mm!important;min-width:287mm!important;
    margin:0 auto!important;padding:0!important;
  }
  body.printing-grades.grades-portrait .grades-print-sheet{
    width:200mm!important;max-width:200mm!important;min-width:200mm!important;
    margin:0 auto!important;padding:0!important;
  }
  .printing-grades .grade-print-table-wrap{overflow:visible!important;width:100%!important}
  .printing-grades .grade-print-table{width:100%!important;max-width:100%!important;border-collapse:collapse!important}
  .printing-grades .grade-print-table thead{display:table-header-group!important}
  .printing-grades .grade-print-table tbody tr{
    height:var(--grade-row-height,3mm)!important;
    min-height:var(--grade-row-height,3mm)!important;
  }
  .printing-grades .grade-print-table tbody td{
    height:var(--grade-row-height,3mm)!important;
  }
  /* Horizontal: más legible y ocupa prácticamente toda la hoja A4. */
  body.printing-grades.grades-landscape .print-head{margin-bottom:7px!important;padding-bottom:6px!important}
  body.printing-grades.grades-landscape .print-head-logo{grid-template-columns:96px 1fr 96px!important;gap:8px!important}
  body.printing-grades.grades-landscape .print-logo{width:84px!important;max-height:84px!important}
  body.printing-grades.grades-landscape .print-logo-spacer{width:96px!important}
  body.printing-grades.grades-landscape .print-head-text h2{font-size:14px!important;line-height:1.12!important;margin-bottom:4px!important}
  body.printing-grades.grades-landscape .print-head-text>div{font-size:10px!important;line-height:1.15!important}
  body.printing-grades.grades-landscape .grade-print-meta{margin:6px 0 4px!important}
  body.printing-grades.grades-landscape .grade-print-meta>div{font-size:9px!important;padding:4px 5px!important}
  body.printing-grades.grades-landscape .grade-print-note{font-size:8.5px!important;margin:0 0 4px!important}
  body.printing-grades.grades-landscape .grade-print-table{font-size:9px!important;table-layout:fixed!important}
  body.printing-grades.grades-landscape .grade-print-table th{font-size:8.2px!important;padding:3px 2px!important;line-height:1.08!important}
  body.printing-grades.grades-landscape .grade-print-table td{font-size:8.7px!important;padding:1.5px 2px!important;line-height:1.02!important}
  body.printing-grades.grades-landscape .grade-print-table th:nth-child(1){width:3%!important}
  body.printing-grades.grades-landscape .grade-print-table th:nth-child(2){width:8%!important}
  body.printing-grades.grades-landscape .grade-print-table th:nth-child(3){width:20%!important}
  body.printing-grades.grades-landscape .grade-print-table th:last-child{width:7%!important}
  body.printing-grades.grades-landscape .grade-print-legend{font-size:8px!important;margin-top:4px!important;gap:4px!important}
  body.printing-grades.grades-landscape .legend-chip{padding:2px 4px!important}

  /* Vertical: aprovecha los 200 mm disponibles y aumenta notablemente el tamaño respecto de V0.16. */
  body.printing-grades.grades-portrait .print-head{margin-bottom:6px!important;padding-bottom:5px!important}
  body.printing-grades.grades-portrait .print-head-logo{grid-template-columns:72px 1fr 72px!important;gap:5px!important}
  body.printing-grades.grades-portrait .print-logo{width:64px!important;max-height:64px!important}
  body.printing-grades.grades-portrait .print-logo-spacer{width:72px!important}
  body.printing-grades.grades-portrait .print-head-text h2{font-size:10.5px!important;line-height:1.08!important;margin-bottom:2px!important}
  body.printing-grades.grades-portrait .print-head-text>div{font-size:7.5px!important;line-height:1.08!important}
  body.printing-grades.grades-portrait .grade-print-meta{margin:4px 0 3px!important}
  body.printing-grades.grades-portrait .grade-print-meta>div{font-size:6.9px!important;padding:3px 2px!important}
  body.printing-grades.grades-portrait .grade-print-note{font-size:6.8px!important;margin:0 0 3px!important}
  body.printing-grades.grades-portrait .grade-print-table{font-size:6.7px!important;table-layout:fixed!important}
  body.printing-grades.grades-portrait .grade-print-table th{font-size:6.25px!important;padding:2.5px 1.2px!important;line-height:1.02!important}
  body.printing-grades.grades-portrait .grade-print-table td{font-size:6.7px!important;padding:1.2px 1px!important;line-height:1!important}
  body.printing-grades.grades-portrait .grade-print-table th:nth-child(1){width:3.5%!important}
  body.printing-grades.grades-portrait .grade-print-table th:nth-child(2){width:10%!important}
  body.printing-grades.grades-portrait .grade-print-table th:nth-child(3){width:23%!important}
  body.printing-grades.grades-portrait .grade-print-table th:last-child{width:8%!important}
  body.printing-grades.grades-portrait .grade-print-legend{font-size:6.5px!important;margin-top:3px!important;gap:3px!important}
  body.printing-grades.grades-portrait .legend-chip{padding:1.5px 3px!important}
}

/* V0.21 · Boleta institucional V2.2 · PDF único por grupo / general */
.boleta-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.boleta-head-actions select{border:1px solid #cbd7e1;border-radius:10px;background:#fff;padding:10px 12px;font:inherit}.boleta-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.boleta-config-grid label{display:flex;flex-direction:column;gap:5px}.boleta-config-grid label.wide{grid-column:span 2}.boleta-config-grid span{font-size:12px;font-weight:700;color:#405265}.boleta-config-grid input{border:1px solid #cbd7e1;border-radius:9px;padding:9px 10px;font:inherit;background:#fff}.boleta-config-actions{display:flex;justify-content:flex-end;margin-top:12px}.boleta-list-head{gap:16px;flex-wrap:wrap}.boleta-student-table-wrap{overflow:auto}.boleta-student-table{min-width:760px}.boleta-student-table .name{font-weight:700}.boleta-print-panel{background:#eef2f6}.boleta-documents{display:grid;gap:18px;justify-items:center}.boleta-sheet{background:#fff;border:1px solid #d5dce2;font-family:Arial,Helvetica,sans-serif;color:#171717;box-sizing:border-box;position:relative;display:flex;flex-direction:column}.boleta-documents.orientation-portrait .boleta-sheet{width:min(100%,794px);min-height:1123px;padding:32px 34px 24px}.boleta-documents.orientation-landscape .boleta-sheet{width:min(100%,1123px);min-height:794px;padding:26px 34px 20px}
.boleta-green-rule{height:5px;background:#1f5a42;margin-bottom:14px}.boleta-v22-header{display:grid;grid-template-columns:165px 1fr 135px;align-items:center;gap:14px}.boleta-v22-sep{display:flex;align-items:center;justify-content:flex-start}.boleta-v22-sep img{display:block;width:148px;height:auto;max-width:100%;object-fit:contain}.boleta-v22-crest{display:flex;align-items:center;justify-content:flex-end}.boleta-v22-crest img{display:block;width:118px;height:auto;max-width:100%;object-fit:contain}.boleta-v22-heading{text-align:center;min-width:0}.boleta-v22-system{font-size:13px;font-weight:800;line-height:1.2}.boleta-v22-school{font-size:15px;font-weight:900;line-height:1.15;margin-top:2px}.boleta-v22-title{font-size:30px;font-weight:900;line-height:1.05;margin-top:5px;color:#3d3d3d;letter-spacing:.15px}.boleta-v22-period{font-size:13px;color:#5e5e5e;margin-top:3px}.boleta-v22-divider{border-top:1.4px solid #606060;margin:18px 0 4px}
.boleta-v22-meta{display:grid;grid-template-columns:1fr 1fr}.boleta-v22-meta>div{display:grid;grid-template-columns:max-content 1fr;align-items:center;gap:6px;padding:8px 5px;border-bottom:1px solid #d7d7d7;font-size:13px}.boleta-v22-meta>div:nth-child(odd){padding-right:18px}.boleta-v22-meta>div:nth-child(even){padding-left:18px}.boleta-v22-meta b{font-weight:900}.boleta-v22-student{display:grid;grid-template-columns:145px 1fr 108px 1fr;border:1px solid #b7cac1;border-bottom:0;background:#f2f7f4;margin-top:8px}.boleta-v22-student>div{padding:10px 9px;border-right:1px solid #b7cac1;border-bottom:1px solid #b7cac1;font-size:13px;display:flex;align-items:center}.boleta-v22-student>div:nth-child(4n){border-right:0}.boleta-v22-student .label{font-weight:900;color:#1f5a42}.boleta-v22-student .student-name{font-weight:900}.boleta-v22-student .small-label{line-height:1.05}
.boleta-grade-table.boleta-v22-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:14px}.boleta-grade-table.boleta-v22-table th,.boleta-grade-table.boleta-v22-table td{border:1px solid #858585;padding:7px 7px;font-size:12.5px;line-height:1.1}.boleta-grade-table.boleta-v22-table th{background:#e8f0ec;font-weight:900;text-align:center}.boleta-grade-table.boleta-v22-table th:not(:first-child){width:58px}.boleta-subject-name{font-weight:800}.boleta-grade-cell{text-align:center;font-size:13px!important;font-weight:900}.boleta-current-cell{background:#e9f4ee;color:#174d36}.boleta-fail-cell{background:#f8e6e6!important;color:#9d2222!important}.boleta-empty-cell{color:#999;font-weight:500}.boleta-v22-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-top:0}.boleta-v22-summary .summary-box{min-height:65px;border:1px solid #d4dadd;border-top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.boleta-v22-summary strong{font-size:23px;line-height:1;font-weight:900}.boleta-v22-summary span{font-size:10.5px;font-weight:800;color:#626262;margin-top:5px}.boleta-v22-summary .avg{background:#f2f5f4}.boleta-v22-summary .ok{background:#edf7f1;color:#155f3b}.boleta-v22-summary .bad{background:#faeeee;color:#a52828}
.boleta-v22-bottom{margin-top:auto;padding-top:54px}.boleta-v22-sign-seal{display:grid;grid-template-columns:1.25fr .85fr;gap:72px;align-items:end;padding:0 24px}.boleta-v22-sign,.boleta-v22-seal{text-align:center;font-size:12px}.boleta-v22-sign .sign-line,.boleta-v22-seal .seal-line{border-top:1.5px solid #555;margin-bottom:5px}.boleta-v22-sign b,.boleta-v22-seal b{display:block;font-size:12px}.boleta-v22-sign span{display:block;font-weight:800;margin-top:2px}.boleta-v22-seal .seal-space{height:34px}.boleta-v22-footer{border-top:3px solid #8c8c8c;margin-top:9px;padding:8px 5px 0;display:flex;justify-content:space-between;gap:16px;font-size:11px;font-weight:800}
.boleta-documents.orientation-landscape .boleta-v22-header{grid-template-columns:185px 1fr 145px}.boleta-documents.orientation-landscape .boleta-v22-sep img{width:168px}.boleta-documents.orientation-landscape .boleta-v22-crest img{width:126px}.boleta-documents.orientation-landscape .boleta-v22-title{font-size:32px}.boleta-documents.orientation-landscape .boleta-v22-meta>div{padding-top:5px;padding-bottom:5px}.boleta-documents.orientation-landscape .boleta-grade-table.boleta-v22-table th,.boleta-documents.orientation-landscape .boleta-grade-table.boleta-v22-table td{padding:5px 7px}.boleta-documents.orientation-landscape .boleta-v22-bottom{padding-top:25px}
.boleta-sheet.subjects-few .boleta-grade-table.boleta-v22-table th,.boleta-sheet.subjects-few .boleta-grade-table.boleta-v22-table td{padding-top:10px;padding-bottom:10px;font-size:13px}.boleta-sheet.subjects-few .boleta-grade-cell{font-size:14px!important}.boleta-sheet.subjects-many .boleta-grade-table.boleta-v22-table th,.boleta-sheet.subjects-many .boleta-grade-table.boleta-v22-table td{padding-top:5px;padding-bottom:5px;font-size:11.5px}.boleta-sheet.subjects-very-many .boleta-grade-table.boleta-v22-table th,.boleta-sheet.subjects-very-many .boleta-grade-table.boleta-v22-table td{padding-top:4px;padding-bottom:4px;font-size:10.5px}.boleta-sheet.subjects-very-many .boleta-v22-bottom{padding-top:28px}
@media(max-width:900px){.boleta-config-grid{grid-template-columns:1fr 1fr}.boleta-config-grid label.wide{grid-column:span 2}.boleta-head-actions{align-items:stretch}.boleta-head-actions select,.boleta-head-actions button{flex:1 1 180px}.boleta-documents.orientation-portrait .boleta-sheet,.boleta-documents.orientation-landscape .boleta-sheet{width:100%;min-height:0;padding:20px}.boleta-v22-header{grid-template-columns:110px 1fr 90px}.boleta-v22-sep img{width:105px}.boleta-v22-crest img{width:82px}.boleta-v22-title{font-size:22px}.boleta-v22-system{font-size:10px}.boleta-v22-school{font-size:11px}.boleta-v22-meta{grid-template-columns:1fr}.boleta-v22-meta>div:nth-child(n){padding-left:4px;padding-right:4px}.boleta-v22-student{grid-template-columns:115px 1fr}.boleta-v22-student>div:nth-child(n){border-right:1px solid #b7cac1}.boleta-v22-sign-seal{gap:26px;padding:0}.boleta-v22-footer{font-size:9px}}

@media print{
 body.printing-boletas,.printing-boletas *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
 body.printing-boletas{margin:0!important;padding:0!important;background:#fff!important}
 body.printing-boletas .shell,body.printing-boletas .main,body.printing-boletas .content,body.printing-boletas .panel,body.printing-boletas .panel-body{display:block!important;margin:0!important;padding:0!important;background:#fff!important;border:0!important;box-shadow:none!important;max-width:none!important;width:auto!important}
 body.printing-boletas .sidebar,body.printing-boletas .topbar,body.printing-boletas .no-print,body.printing-boletas .print-actions{display:none!important}
 body.printing-boletas .boleta-documents{display:block!important;margin:0!important;padding:0!important}
 body.printing-boletas .boleta-sheet{border:0!important;box-shadow:none!important;margin:0!important;page-break-after:always!important;break-after:page!important;overflow:hidden!important;box-sizing:border-box!important}
 body.printing-boletas .boleta-sheet:last-child{page-break-after:auto!important;break-after:auto!important}

 body.printing-boletas.boletas-portrait .boleta-sheet{width:210mm!important;min-width:210mm!important;max-width:210mm!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;padding:10mm 11mm 7mm!important}
 body.printing-boletas.boletas-portrait .boleta-green-rule{height:1.2mm!important;margin-bottom:3.5mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-header{grid-template-columns:42mm 1fr 31mm!important;gap:3mm!important;min-height:25mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sep img{width:40mm!important;height:auto!important;max-height:none!important;object-fit:contain!important}
 body.printing-boletas.boletas-portrait .boleta-v22-crest img{width:28mm!important;height:auto!important;max-height:none!important;object-fit:contain!important}
 body.printing-boletas.boletas-portrait .boleta-v22-system{font-size:8.6pt!important;line-height:1.05!important}
 body.printing-boletas.boletas-portrait .boleta-v22-school{font-size:10.2pt!important;line-height:1.05!important;margin-top:.8mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-title{font-size:22pt!important;line-height:1!important;margin-top:1.4mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-period{font-size:8.7pt!important;margin-top:1mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-divider{margin:5mm 0 1mm!important;border-top:.35mm solid #606060!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta>div{padding:2.1mm 1mm!important;font-size:8.6pt!important;gap:1.5mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta>div:nth-child(odd){padding-right:4mm!important} body.printing-boletas.boletas-portrait .boleta-v22-meta>div:nth-child(even){padding-left:4mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-student{grid-template-columns:30mm 1fr 24mm 1fr!important;margin-top:2mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-student>div{padding:2.2mm 1.8mm!important;font-size:8.5pt!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table{margin-top:4mm!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table td{padding:1.7mm 1.4mm!important;font-size:8.1pt!important;line-height:1.02!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table th:not(:first-child){width:14mm!important}
 body.printing-boletas.boletas-portrait .boleta-grade-cell{font-size:8.8pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-summary .summary-box{min-height:14mm!important}.boleta-v22-summary strong{font-size:15pt!important}.boleta-v22-summary span{font-size:7.2pt!important;margin-top:1.2mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-bottom{padding-top:0!important;margin-top:auto!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign-seal{grid-template-columns:1.2fr .85fr!important;gap:16mm!important;padding:0 6mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign,body.printing-boletas.boletas-portrait .boleta-v22-seal{font-size:7.6pt!important}.boleta-v22-seal .seal-space{height:12mm!important}.boleta-v22-sign b,.boleta-v22-seal b{font-size:8.2pt!important}.boleta-v22-sign span{font-size:7.7pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-footer{border-top:.8mm solid #8c8c8c!important;margin-top:2mm!important;padding:2mm 1mm 0!important;font-size:7.5pt!important}
 body.printing-boletas.boletas-portrait .subjects-many .boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-portrait .subjects-many .boleta-grade-table.boleta-v22-table td{padding-top:1.25mm!important;padding-bottom:1.25mm!important;font-size:7.6pt!important}
 body.printing-boletas.boletas-portrait .subjects-very-many .boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-portrait .subjects-very-many .boleta-grade-table.boleta-v22-table td{padding-top:1mm!important;padding-bottom:1mm!important;font-size:7.1pt!important}

 body.printing-boletas.boletas-landscape .boleta-sheet{width:297mm!important;min-width:297mm!important;max-width:297mm!important;height:210mm!important;min-height:210mm!important;max-height:210mm!important;padding:7mm 9mm 5mm!important}
 body.printing-boletas.boletas-landscape .boleta-green-rule{height:1mm!important;margin-bottom:2mm!important}
 body.printing-boletas.boletas-landscape .boleta-v22-header{grid-template-columns:50mm 1fr 34mm!important;gap:4mm!important;min-height:20mm!important}
 body.printing-boletas.boletas-landscape .boleta-v22-sep img{width:47mm!important;height:auto!important;max-height:none!important;object-fit:contain!important}
 body.printing-boletas.boletas-landscape .boleta-v22-crest img{width:29mm!important;height:auto!important;max-height:none!important;object-fit:contain!important}
 body.printing-boletas.boletas-landscape .boleta-v22-system{font-size:8.4pt!important}.boleta-v22-school{font-size:10pt!important}.boleta-v22-title{font-size:21pt!important}.boleta-v22-period{font-size:8pt!important}
 body.printing-boletas.boletas-landscape .boleta-v22-divider{margin:3mm 0 .5mm!important}.boleta-v22-meta>div{padding:1.2mm 1mm!important;font-size:7.8pt!important}.boleta-v22-student{margin-top:1mm!important}.boleta-v22-student>div{padding:1.4mm!important;font-size:7.6pt!important}
 body.printing-boletas.boletas-landscape .boleta-grade-table.boleta-v22-table{margin-top:2.3mm!important}.boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-landscape .boleta-grade-table.boleta-v22-table td{padding:1mm 1.4mm!important;font-size:7.4pt!important}.boleta-grade-cell{font-size:8pt!important}.boleta-v22-summary .summary-box{min-height:10mm!important}.boleta-v22-summary strong{font-size:12pt!important}.boleta-v22-summary span{font-size:6.8pt!important}
 body.printing-boletas.boletas-landscape .boleta-v22-sign-seal{gap:18mm!important;padding:0 8mm!important}.boleta-v22-seal .seal-space{height:6mm!important}.boleta-v22-sign,.boleta-v22-seal{font-size:7pt!important}.boleta-v22-footer{font-size:7pt!important;margin-top:1mm!important;padding-top:1mm!important}
 /* V0.20: reproducir en papel la composición aprobada en Word V2.2 */
 body.printing-boletas.boletas-portrait .boleta-sheet{padding:6.35mm 8.65mm 6.35mm!important}
 body.printing-boletas.boletas-portrait .boleta-green-rule{height:1.2mm!important;margin-bottom:3.2mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-header{grid-template-columns:40mm 1fr 30mm!important;gap:3mm!important;min-height:26.5mm!important;align-items:center!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sep{justify-content:flex-start!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sep img{width:38mm!important;height:auto!important;max-height:25mm!important;object-fit:contain!important}
 body.printing-boletas.boletas-portrait .boleta-v22-crest img{width:27mm!important;height:auto!important;max-height:25mm!important;object-fit:contain!important}
 body.printing-boletas.boletas-portrait .boleta-v22-system{font-size:8pt!important;line-height:1.08!important}
 body.printing-boletas.boletas-portrait .boleta-v22-school{font-size:10.7pt!important;line-height:1.06!important;margin-top:.6mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-title{font-size:19.5pt!important;line-height:1!important;margin-top:1.3mm!important;color:#3d3d3d!important}
 body.printing-boletas.boletas-portrait .boleta-v22-period{font-size:8.4pt!important;margin-top:.9mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-divider{margin:3.2mm 0 0!important;border-top:.35mm solid #606060!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta{display:grid!important;grid-template-columns:1fr 1fr!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta>div{display:grid!important;grid-template-columns:max-content 1fr!important;min-height:7.8mm!important;padding:1.2mm 1.6mm!important;font-size:8.8pt!important;line-height:1.05!important;gap:1.4mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta>div:nth-child(odd){padding-left:1.6mm!important;padding-right:4mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta>div:nth-child(even){padding-left:4mm!important;padding-right:1.6mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-meta b{font-size:8.6pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-student{display:grid!important;grid-template-columns:30mm 1fr 24mm 1fr!important;margin-top:2.2mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-student>div{min-height:9.6mm!important;padding:1.8mm 2mm!important;font-size:9pt!important;line-height:1.05!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table{margin-top:3.3mm!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table td{padding:2mm 1.5mm!important;font-size:8.55pt!important;line-height:1!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table th{font-size:8.4pt!important}
 body.printing-boletas.boletas-portrait .boleta-grade-table.boleta-v22-table th:not(:first-child){width:14mm!important}
 body.printing-boletas.boletas-portrait .boleta-grade-cell{font-size:9.2pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-summary .summary-box{min-height:15.7mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-summary strong{font-size:13pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-summary span{font-size:7.2pt!important;margin-top:1.1mm!important}
 body.printing-boletas.boletas-portrait .subjects-few .boleta-grade-table.boleta-v22-table th,body.printing-boletas.boletas-portrait .subjects-few .boleta-grade-table.boleta-v22-table td{padding-top:3.2mm!important;padding-bottom:3.2mm!important;font-size:9pt!important}
 body.printing-boletas.boletas-portrait .subjects-few .boleta-grade-cell{font-size:9.7pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-bottom{padding-top:0!important;margin-top:auto!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign-seal{grid-template-columns:1.2fr .85fr!important;gap:16mm!important;padding:0 6mm!important;min-height:48mm!important;align-items:end!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign,body.printing-boletas.boletas-portrait .boleta-v22-seal{font-size:7.8pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-seal .seal-space{height:17mm!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign b,body.printing-boletas.boletas-portrait .boleta-v22-seal b{font-size:8.2pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-sign span{font-size:7.7pt!important}
 body.printing-boletas.boletas-portrait .boleta-v22-footer{border-top:.8mm solid #8c8c8c!important;margin-top:2.3mm!important;padding:2mm 1mm 0!important;font-size:7.5pt!important}

}


/* V0.21 · generación masiva de boletas */
.boleta-batch-all{border-color:#1e5b42!important;color:#174b36!important;background:#f1f7f4!important}.boleta-batch-notice{margin:0 0 12px;border-left:4px solid #1f5a42;background:#eef7f2}.boleta-head-actions .btn{white-space:nowrap}

/* V0.23 · Analítica y seguimiento administrativo */
.admin-analytics-panel{border-color:#c9ddd4}
.admin-analytics-head{align-items:flex-start;gap:16px;flex-wrap:wrap}
.admin-analytics-partial{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;font-weight:700}
.admin-analytics-partial select{min-height:38px;border:1px solid #c8d6df;border-radius:9px;padding:6px 30px 6px 10px;background:#fff;color:#10243d;font-size:13px}
.admin-analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.admin-analytics-kpi{border:1px solid #d7e1e8;border-radius:12px;padding:14px;background:#fff;min-width:0}
.admin-analytics-kpi>span{display:block;font-size:11px;color:#607086;margin-bottom:5px}
.admin-analytics-kpi>strong{display:block;font-size:24px;line-height:1.1;color:#10243d}
.admin-analytics-kpi>small{display:block;color:#6b7788;margin-top:7px;line-height:1.35}
.admin-analytics-kpi.interpretation strong{font-size:16px;margin-top:4px}
.admin-analytics-kpi.interpretation.good{background:#f0f8f3;border-color:#c8e3d1}
.admin-analytics-kpi.interpretation.watch{background:#fff9e8;border-color:#f1dfaa}
.admin-analytics-kpi.interpretation.warn{background:#fff4df;border-color:#efcc87}
.admin-analytics-kpi.interpretation.bad{background:#fff0f0;border-color:#edc4c4}
.admin-analytics-kpi.interpretation.neutral{background:#f4f6f8}
.mini-progress{height:7px;border-radius:999px;background:#e9eef2;overflow:hidden;margin-top:10px}
.mini-progress i{display:block;height:100%;border-radius:inherit}
.mini-progress.approval i{background:#2d7a50}.mini-progress.failure i{background:#b83c3c}
.admin-analytics-block{margin-top:16px;border:1px solid #dce4e9;border-radius:12px;overflow:hidden;background:#fff}
.admin-analytics-block-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;background:#f7faf8;border-bottom:1px solid #dce4e9}
.admin-analytics-block-head h3{margin:0;font-size:14px}.admin-analytics-block-head span{font-size:11px;color:#687789}
.admin-analytics-table-wrap{overflow-x:auto}
.admin-analytics-table{width:100%;border-collapse:collapse;min-width:920px;font-size:12px}
.admin-analytics-table th{padding:9px 10px;text-align:left;background:#eef4f1;border-bottom:1px solid #d8e2dd;font-size:10px;text-transform:uppercase;letter-spacing:.02em;color:#314b40}
.admin-analytics-table td{padding:10px;border-bottom:1px solid #edf1f3;vertical-align:middle}
.admin-analytics-table tr:last-child td{border-bottom:0}
.admin-analytics-rate{display:grid;grid-template-columns:minmax(90px,1fr) 55px;gap:8px;align-items:center;min-width:150px}
.admin-analytics-rate-track{height:8px;border-radius:99px;background:#ebeff2;overflow:hidden}
.admin-analytics-rate-track span{display:block;height:100%;border-radius:inherit}
.admin-analytics-rate.approval .admin-analytics-rate-track span{background:#2f8055}
.admin-analytics-rate.failure .admin-analytics-rate-track span{background:#bc4141}
.admin-analytics-rate b{text-align:right;font-size:11px}
.admin-analytics-interpret{display:flex;flex-direction:column;gap:3px;border-left:4px solid #a7b1ba;padding:5px 8px;border-radius:4px;min-width:245px}
.admin-analytics-interpret b{font-size:11px}.admin-analytics-interpret span{font-size:10px;line-height:1.35;color:#657184}
.admin-analytics-interpret.good{border-color:#2f8055;background:#f1f8f4}.admin-analytics-interpret.watch{border-color:#c99a22;background:#fff9e8}.admin-analytics-interpret.warn{border-color:#df8125;background:#fff5e9}.admin-analytics-interpret.bad{border-color:#b83c3c;background:#fff1f1}.admin-analytics-interpret.neutral{background:#f5f6f7}
.admin-analytics-note{margin-top:14px}
@media(max-width:1000px){.admin-analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.admin-analytics-kpis{grid-template-columns:1fr}.admin-analytics-partial{margin-left:0;width:100%;justify-content:space-between}.admin-analytics-partial select{flex:1}.admin-analytics-block-head{align-items:flex-start}}

/* V0.24 · Analítica gráfica administrativa */
.admin-analytics-visual{display:grid;gap:14px;margin:4px 0 20px}
.admin-analytics-visual-top{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);gap:14px;align-items:stretch}
.admin-analytics-visual-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-chart-card{border:1px solid #d7e2dd;border-radius:14px;background:#fff;padding:14px;min-width:0}
.admin-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.admin-chart-head h3{margin:0;color:#173d2e;font-size:14px}
.admin-chart-head span{display:block;margin-top:3px;color:#718077;font-size:10px;line-height:1.3}
.admin-chart-legend{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:9px;color:#6b7780;white-space:nowrap}
.admin-chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-left:4px}.admin-chart-legend i.approval{background:#2f8055}.admin-chart-legend i.failure{background:#bc4141}
.admin-chart-bars{display:grid;gap:8px}
.admin-chart-row{display:grid;grid-template-columns:minmax(118px,180px) minmax(0,1fr);gap:10px;align-items:center}
.admin-chart-label{min-width:0}.admin-chart-label b{display:block;font-size:10px;color:#183026;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-chart-label span{display:block;font-size:8.5px;color:#819087;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.admin-chart-plot{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:7px;align-items:center;min-width:0}
.admin-chart-stack{height:14px;background:#edf1ef;border-radius:999px;overflow:hidden;display:flex;box-shadow:inset 0 0 0 1px #e0e6e2}
.admin-chart-stack span{height:100%;display:block}.admin-chart-stack .approval{background:#2f8055}.admin-chart-stack .failure{background:#bc4141}.admin-chart-stack.empty{background:repeating-linear-gradient(135deg,#edf1ef,#edf1ef 5px,#f7f9f8 5px,#f7f9f8 10px)}
.admin-chart-values{display:flex;justify-content:flex-end;gap:7px;font-size:9px;white-space:nowrap}.admin-chart-values b{color:#276f4a}.admin-chart-values strong{color:#a93535}
.admin-chart-reading{margin-top:12px;border-left:4px solid #8aa99a;background:#f6faf8;padding:8px 10px;border-radius:5px;font-size:10px;line-height:1.4;color:#53645b}
.admin-chart-reading.good{border-color:#2f8055;background:#f1f8f4}.admin-chart-reading.watch{border-color:#c99a22;background:#fff9e8}.admin-chart-reading.warn{border-color:#df8125;background:#fff5e9}.admin-chart-reading.bad{border-color:#b83c3c;background:#fff1f1}.admin-chart-reading.neutral{background:#f5f6f7}
.admin-overall-graphic{display:grid;grid-template-columns:150px minmax(0,1fr);gap:15px;align-items:center;padding:6px 0}
.admin-donut{width:138px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;margin:auto}
.admin-donut:after{content:"";position:absolute;inset:22px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #e3e9e5}
.admin-donut>div{position:relative;z-index:1;text-align:center}.admin-donut strong{display:block;font-size:24px;line-height:1;color:#183b2d}.admin-donut span{display:block;margin-top:4px;font-size:9px;color:#738078;text-transform:uppercase;letter-spacing:.03em}
.admin-overall-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-overall-stat{border:1px solid #e1e8e4;border-radius:9px;padding:8px;background:#fafcfb}.admin-overall-stat span{display:block;font-size:8.5px;color:#728078}.admin-overall-stat b{display:block;font-size:16px;color:#18382b;margin-top:2px}.admin-overall-stat.approval b{color:#276f4a}.admin-overall-stat.failure b{color:#a93535}
.admin-chart-card.groups .admin-chart-row{grid-template-columns:minmax(130px,190px) minmax(0,1fr)}
.admin-analytics-detail-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:24px 2px 4px;padding-top:16px;border-top:1px solid #dfe7e3}.admin-analytics-detail-title b{font-size:15px;color:#173d2e}.admin-analytics-detail-title span{font-size:10px;color:#718077}
@media(max-width:1120px){.admin-analytics-visual-top{grid-template-columns:1fr}.admin-chart-card.overall .admin-overall-graphic{grid-template-columns:140px 1fr}}
@media(max-width:850px){.admin-analytics-visual-bottom{grid-template-columns:1fr}.admin-chart-row{grid-template-columns:120px minmax(0,1fr)}.admin-chart-plot{grid-template-columns:minmax(0,1fr) 82px}}
@media(max-width:620px){.admin-chart-card{padding:11px}.admin-chart-head{flex-direction:column}.admin-chart-row{grid-template-columns:1fr;gap:4px}.admin-chart-plot{grid-template-columns:minmax(0,1fr) 84px}.admin-overall-graphic{grid-template-columns:1fr}.admin-overall-side{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-donut{width:120px}.admin-analytics-detail-title{align-items:flex-start;flex-direction:column}}

/* ===== V0.28 · Estabilización / métricas consistentes ===== */
.analysis-summary-cards{grid-template-columns:repeat(5,minmax(0,1fr))}
.analysis-denominator-note{padding:8px 10px;font-size:11px;color:#5f6d67;background:#f7faf8;border-top:1px solid #dbe3ec}
.admin-analytics-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.admin-analytics-rate.capture .admin-analytics-rate-track span{background:#4f7798}
.admin-overall-stat.capture{background:#eef4f8;border-color:#d7e3ec}
.admin-overall-stat.capture b{color:#315f7e}
@media(max-width:1100px){.analysis-summary-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.analysis-summary-cards{grid-template-columns:1fr 1fr}}
@media print{
  .printing-analysis .analysis-print-cards{grid-template-columns:repeat(5,1fr)!important}
  .printing-analysis.analysis-portrait .analysis-print-cards{grid-template-columns:repeat(5,1fr)!important}
  .analysis-denominator-note{font-size:7px!important;padding:3px 4px!important}
}

/* ===== V0.29 · Criterios de evaluación ponderados ===== */
.criteria-options{min-height:0}
.criteria-check{align-items:center;justify-content:space-between;gap:10px;padding:7px 9px}
.criteria-choice{display:flex;align-items:center;gap:7px;min-width:0;flex:1 1 auto}
.criteria-choice span{line-height:1.25}
.criteria-percent-wrap{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.criteria-percent{width:72px;padding:6px 7px;border:1px solid #bdc9d7;border-radius:7px;text-align:right;font-weight:800;background:#fff;color:#10243b}
.criteria-percent:disabled{background:#f1f4f6;color:#a0a8b3;border-color:#dde3e8}
.criteria-percent-wrap b{font-size:12px;color:#516170}
.criteria-weight-status{margin-top:8px;border:1px solid #e2c9a0;background:#fff8ea;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:#7b5608}
.criteria-weight-status.ok{border-color:#b8ddc6;background:#eef9f2;color:#1c6638}
.criteria-weight-status.bad{border-color:#efc2c2;background:#fff1f1;color:#8a2828}
.criteria-weight-status span{font-weight:500}
.criteria-print-table{width:100%;border-collapse:collapse;margin:8px 0 2px;font-size:10px}
.criteria-print-table th,.criteria-print-table td{border:1px solid #a9b2bb;padding:5px 7px;text-align:left}
.criteria-print-table th{background:#edf3ef;font-size:9px;text-transform:uppercase;letter-spacing:.02em}
.criteria-print-table th:last-child,.criteria-print-table td:last-child{width:22%;text-align:center}
.criteria-total-row td{background:#f6f8f7}
@media(max-width:700px){.criteria-check{align-items:flex-start}.criteria-percent{width:66px}}
@media print{.criteria-print-table{font-size:9.2pt}.criteria-print-table th{font-size:8.5pt}}

/* ===== V0.30 · Captura por asignatura ===== */
.grade-table th.selected-subject{box-shadow:inset 0 -4px 0 #1f6b45;background:#e3f1e9}
.grade-table td.selected-subject{box-shadow:inset 2px 0 0 rgba(31,107,69,.18),inset -2px 0 0 rgba(31,107,69,.18)}
#gradeSubjectSel{min-width:210px;max-width:330px;font-weight:700;border-color:#8cb5a1;background:#f7fbf9}
@media(max-width:760px){#gradeSubjectSel{min-width:100%;max-width:none}}

/* ===== Capacidad instalada V0.31 ===== */
.capacity-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.capacity-kpi{background:#fff;border:1px solid #dce5df;border-radius:14px;padding:18px;min-width:0}
.capacity-kpi span{display:block;font-size:13px;color:#63736b;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.capacity-kpi strong{display:block;font-size:34px;line-height:1;margin:9px 0 6px;color:#173f2e}
.capacity-kpi small{display:block;color:#6f7f77;font-size:12px}
.capacity-kpi.men{border-top:4px solid #4d89b8}.capacity-kpi.women{border-top:4px solid #b66b93}
.capacity-warning{margin-bottom:14px}
.capacity-panel{margin-top:14px}
.capacity-table{width:100%;border-collapse:collapse;font-size:15px}
.capacity-table th,.capacity-table td{border:1px solid #bfcac4;padding:10px 14px;text-align:center}
.capacity-table th:first-child,.capacity-table td:first-child{text-align:left}
.capacity-table thead th{background:#f2f5f3;color:#173f2e;font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.04em}
.capacity-table tr.capacity-lower td{background:#dbeccb}
.capacity-table tr.capacity-middle td{background:#d7e8f6}
.capacity-table tr.capacity-upper td{background:#f7d8bd}
.capacity-table tr.capacity-total td{background:#174d36;color:#fff;font-size:16px}
.capacity-semester-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.capacity-semester{border:1px solid #cfd9d3;border-radius:12px;padding:16px}
.capacity-semester.capacity-lower{background:#edf6e7}.capacity-semester.capacity-middle{background:#eef6fb}.capacity-semester.capacity-upper{background:#fff2e7}
.capacity-semester>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.capacity-semester>div:first-child b{font-size:18px}.capacity-semester>div:first-child span{color:#65756d}
.capacity-sex-split{display:flex;gap:10px;flex-wrap:wrap}.capacity-sex-split span{background:#fff;border:1px solid #d7dfda;border-radius:999px;padding:7px 11px;font-size:12px}.capacity-sex-split b{font-size:15px;color:#174d36}
@media(max-width:900px){.capacity-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.capacity-semester-grid{grid-template-columns:1fr}}
@media(max-width:520px){.capacity-kpis{grid-template-columns:1fr}.capacity-table{font-size:13px}.capacity-table th,.capacity-table td{padding:8px}}

/* ===== SISA 307 V1.0 RC · Reorganización UX ===== */
.nav button{display:flex;align-items:center;gap:9px}.nav-icon{width:20px;text-align:center;flex:0 0 20px}.nav-label{min-width:0}.role-pill{display:inline-flex;margin:0 7px;padding:3px 8px;border-radius:999px;background:#eef5f1;color:#28513d;font-size:10px;font-weight:800}.top-user{display:flex;align-items:center;gap:5px}.demo-compact{margin-top:14px;border:1px solid #d8e1e8;border-radius:9px;padding:8px 10px;background:#f7faf8}.demo-compact summary{cursor:pointer;font-weight:800;color:#315746}.demo-compact>div{margin-top:8px;line-height:1.55;font-size:12px}
.home-partial-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.home-partial-picker select{min-height:40px;border:1px solid #cbd7df;border-radius:9px;padding:7px 30px 7px 10px;background:#fff}.home-kpis{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:14px}.work-list{display:grid;gap:8px}.work-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(120px,1fr) 55px auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf1ef}.work-row:last-child{border-bottom:0}.work-row>div:first-child b,.work-row>div:first-child span{display:block}.work-row>div:first-child span{font-size:11px;color:#6a7980;margin-top:2px}.capture-meter,.monitor-progress{height:9px;border-radius:99px;background:#e7ece9;overflow:hidden;min-width:90px}.capture-meter i,.monitor-progress i{display:block;height:100%;background:#2f8055;border-radius:inherit}.priority-list{display:grid;gap:7px}.priority-student{border:1px solid #dce4df;background:#fff;border-radius:10px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;color:#183226}.priority-student span b,.priority-student span small{display:block}.priority-student span small{color:#708079;margin-top:2px}.priority-student strong{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff0e2;color:#984d12}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.grade-status-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0}.grade-status-line>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.save-status{font-size:12px;font-weight:800;color:#52635b}.save-status.saving{color:#9b6c13}.save-status.saved{color:#236a43}.student-record-kpis{grid-template-columns:repeat(3,1fr)!important}.student-followup-block{margin-top:16px;border-top:1px solid #dce4df;padding-top:13px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.followup-history{border-left:4px solid #6c9a80;padding:7px 10px;margin:7px 0;background:#f7faf8;border-radius:4px}.followup-history b,.followup-history span{display:block}.followup-history span{font-size:10px;color:#718078;margin-top:2px}.followup-history p{margin:5px 0 0;font-size:12px;line-height:1.45}
.rubric-title-actions{display:flex;align-items:center;gap:7px}.rubric-customize{border:0;background:#eef4f1;color:#28513d;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:800;cursor:pointer}.rubric-tools{display:none;margin-top:10px;padding-top:10px;border-top:1px dashed #d6dfda}.rubric-tools.open{display:block}.form-actions-sticky{position:sticky;bottom:8px;display:flex;gap:8px;flex-wrap:wrap;background:rgba(255,255,255,.94);border:1px solid #d9e3dd;border-radius:11px;padding:10px;margin-top:12px;backdrop-filter:blur(5px);z-index:3}
.general-actions{display:flex;gap:8px;flex-wrap:wrap}.general-analysis:not(.show-details) .admin-analytics-detail-title,.general-analysis:not(.show-details) .admin-analytics-block{display:none}.general-analysis.show-details .admin-analytics-block{display:block}
.monitor-table{width:100%;border-collapse:collapse;min-width:850px;font-size:12px}.monitor-table th,.monitor-table td{padding:9px 10px;border-bottom:1px solid #e5ebea;text-align:left;vertical-align:middle}.monitor-table th{background:#edf4f0;color:#244838;font-size:10px;text-transform:uppercase}.monitor-table td:nth-child(4){min-width:190px}.monitor-table .monitor-progress{margin-bottom:5px}
.followup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.followup-card{border:1px solid #dce4df;border-radius:12px;padding:13px;background:#fff}.followup-card.priority{border-left:5px solid #b84444}.followup-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.followup-card-head span:not(.badge){display:block;color:#6d7d75;font-size:11px;margin-top:3px}.followup-card p{font-size:12px;color:#4f6158;line-height:1.4;min-height:34px}.followup-last{font-size:10px;color:#6d7a75;background:#f7f9f8;border-radius:7px;padding:6px 8px;margin:8px 0}.followup-modal textarea{min-height:125px}
.capacity-v1 .capacity-input{width:82px;padding:6px;border:1px solid #aebdb5;border-radius:7px;text-align:center}.occupancy{display:inline-flex;padding:5px 9px;border-radius:999px;font-weight:800;background:#edf7f1;color:#246b43}.occupancy.high{background:#fff4d8;color:#8b6210}.occupancy.over{background:#fde7e7;color:#a33434}
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:5px;background:#eaf0ed;border-radius:11px}.admin-tabs button{border:0;background:transparent;padding:9px 13px;border-radius:8px;color:#43574d;font-weight:800;cursor:pointer}.admin-tabs button.active{background:#fff;color:#174d36;box-shadow:0 1px 3px #0001}.admin-tab-body{display:grid;gap:14px}.admin-overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.admin-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-shortcuts button{border:1px solid #d6e1db;border-radius:10px;background:#f8fbf9;padding:13px;text-align:left;font-weight:800;color:#244c39;cursor:pointer}.system-status{display:grid;grid-template-columns:1fr 1fr;gap:8px}.system-status>div{border:1px solid #e0e7e3;border-radius:10px;padding:11px;background:#fbfcfb}.system-status span,.system-status b{display:block}.system-status span{font-size:10px;color:#728079}.system-status b{font-size:20px;margin-top:4px;color:#1f4c37}.partial-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.partial-control-card{border:1px solid #d9e3de;border-radius:12px;padding:14px;background:#fff}.partial-control-card.closed{background:#faf4f4;border-color:#e3cece}.partial-control-card>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;flex-wrap:wrap}.partial-control-card label{display:grid;gap:4px;font-size:10px;color:#6a786f;margin:11px 0}.partial-control-card input{border:1px solid #ccd8d1;border-radius:8px;padding:8px}.partial-capture{margin-top:12px;border-top:1px solid #edf1ef;padding-top:10px}.partial-capture span,.partial-capture strong{display:block}.partial-capture span{font-size:10px;color:#718078}.partial-capture strong{font-size:24px;color:#174d36;margin-top:3px}.backup-list{display:grid;gap:7px}.backup-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid #e1e7e4;padding:9px;border-radius:9px}.backup-list span b,.backup-list span small{display:block}.backup-list span small{color:#718078;margin-top:3px}.audit-list{display:grid;gap:5px;max-height:360px;overflow:auto}.audit-list>div{display:grid;grid-template-columns:145px 190px 1fr;gap:9px;padding:7px 5px;border-bottom:1px solid #edf1ef;font-size:11px}.audit-list time{color:#6f7c76}.danger-zone{border-color:#ebcece}

@media(max-width:1000px){.dashboard-grid,.admin-overview-grid{grid-template-columns:1fr}.partial-control-grid{grid-template-columns:1fr 1fr}.followup-grid{grid-template-columns:1fr}.nav button{justify-content:center}.nav-label{display:none}}
@media(max-width:700px){.sidebar{padding:6px 8px!important;border-bottom:1px solid #264b39}.nav{width:max-content;gap:4px!important}.nav button{font-size:10px!important;display:flex!important;flex-direction:column!important;gap:2px!important;min-width:68px;padding:7px 8px!important}.nav button:before{display:none!important}.nav-icon{font-size:18px!important;width:auto}.nav-label{display:block!important;font-size:9px!important;line-height:1.1}.top-user .role-pill{display:none}.dashboard-grid,.admin-overview-grid{grid-template-columns:1fr}.work-row{grid-template-columns:1fr 58px auto}.work-row .capture-meter{grid-column:1/-1;grid-row:2}.partial-control-grid{grid-template-columns:1fr}.admin-shortcuts{grid-template-columns:1fr}.system-status{grid-template-columns:1fr 1fr}.audit-list>div{grid-template-columns:1fr}.backup-list>div{grid-template-columns:1fr 1fr}.backup-list>div>span{grid-column:1/-1}.student-record-kpis{grid-template-columns:1fr 1fr!important}.general-actions{width:100%}.general-actions .btn{flex:1 1 100%}}

/* V1.1.2 · Lista de grupo docente */
.teacher-group-list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;margin-top:18px}.teacher-group-list-card{background:#fff;border:1px solid var(--line,#d9e2e8);border-radius:16px;padding:18px;box-shadow:0 3px 10px rgba(16,44,32,.05)}.teacher-group-list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e8edf0;padding-bottom:12px}.teacher-group-list-head h3{margin:0 0 4px;font-size:20px}.teacher-group-list-head span{color:#607080;font-size:14px}.teacher-group-subjects{margin:13px 0;color:#31463b;line-height:1.45}.teacher-group-preview{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#536271;background:#f7f9fa;border-radius:10px;padding:10px 12px}.teacher-group-preview em{margin-top:3px;color:#1c5b3e;font-style:normal;font-weight:700}@media(max-width:700px){.teacher-group-list-grid{grid-template-columns:1fr}.teacher-group-list-head{align-items:flex-start;flex-direction:column}.teacher-group-list-head .btn{width:100%}}

/* ===== V1.1.3 · Comparativa entre parciales ===== */
.analytics-comparison-section{margin:24px 0 6px;padding-top:20px;border-top:2px solid #dbe7e1;display:grid;gap:14px}
.comparison-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:0 2px}
.comparison-section-head h2{margin:3px 0 5px;font-size:20px;color:#153b2c}.comparison-section-head p{margin:0;color:#66776e;font-size:11px;line-height:1.45;max-width:800px}.comparison-eyebrow{font-size:9px;font-weight:800;letter-spacing:.13em;color:#2f8055}
.comparison-horizon{display:flex;align-items:center;gap:6px;white-space:nowrap}.comparison-horizon span{display:grid;place-items:center;min-width:38px;height:30px;border-radius:9px;font-size:11px;font-weight:800;border:1px solid #cfe0d7;background:#f5faf7;color:#174d36}.comparison-horizon span.p2{background:#eef3fa;border-color:#ccd9e9;color:#315c80}.comparison-horizon span.p3{background:#fff7e8;border-color:#ead8ae;color:#8b6420}.comparison-horizon i{font-style:normal;color:#9aa9a1}
.comparison-card{border:1px solid #d7e2dd;border-radius:14px;background:#fff;overflow:hidden}.comparison-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 14px;background:#f8fbf9;border-bottom:1px solid #dfe8e3}.comparison-card-head h3{margin:0;color:#173d2e;font-size:14px}.comparison-card-head span{display:block;margin-top:3px;color:#738178;font-size:10px}
.comparison-subject-head label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;color:#385346}.comparison-subject-head select{min-width:210px;border:1px solid #c8d7cf;border-radius:8px;background:white;padding:7px 28px 7px 9px;color:#173d2e}
.comparison-table-wrap{overflow:auto;max-height:520px}.comparison-table{width:100%;border-collapse:separate;border-spacing:0;min-width:820px;font-size:11px}.comparison-table th{position:sticky;top:0;z-index:2;background:#edf4f0;color:#315044;text-align:left;padding:9px 11px;border-bottom:1px solid #d8e3de;font-size:9px;text-transform:uppercase;letter-spacing:.035em}.comparison-table td{padding:9px 11px;border-bottom:1px solid #edf2ef;vertical-align:middle}.comparison-table tbody tr:hover{background:#fbfdfc}.comparison-label{min-width:185px;max-width:250px}.comparison-label b{display:block;color:#173126;font-size:10.5px}.comparison-label span{display:block;color:#829087;font-size:8.5px;margin-top:2px}
.partial-compare-cell{min-width:155px}.partial-compare-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.partial-compare-top b{font-size:9px;color:#6d7c74}.partial-compare-top strong{font-size:13px;color:#276f4a}.partial-compare-stack{height:8px;border-radius:99px;background:#edf1ef;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #e2e8e4}.partial-compare-stack .approval{background:#2f8055}.partial-compare-stack .failure{background:#bc4141}.partial-compare-cell small,.partial-compare-cell em{display:block;font-style:normal;font-size:8.5px;color:#6e7d75;margin-top:4px;white-space:nowrap}.partial-compare-cell em{color:#87948e;margin-top:2px}.partial-compare-cell.empty strong{color:#9ca8a2}.partial-compare-cell.empty small{white-space:normal}
.comparison-trend{min-width:125px;border-left:4px solid #9aa8a1;border-radius:5px;background:#f5f7f6;padding:6px 8px}.comparison-trend b{display:block;font-size:10px}.comparison-trend span{display:block;font-size:8.5px;color:#6c7973;margin-top:2px}.comparison-trend.good{border-color:#2f8055;background:#f0f8f3;color:#236643}.comparison-trend.bad{border-color:#bc4141;background:#fff2f2;color:#a33b3b}.comparison-trend.neutral{border-color:#9aa8a1;color:#5f6c66}
.comparison-reading{padding:9px 13px;background:#f7faf8;border-top:1px solid #e0e8e4;color:#53665c;font-size:10px;line-height:1.4}.comparison-note{font-size:10px}
@media(max-width:760px){.comparison-section-head{align-items:flex-start;flex-direction:column}.comparison-subject-head{flex-direction:column}.comparison-subject-head label{width:100%;justify-content:space-between}.comparison-subject-head select{min-width:0;flex:1}.comparison-table-wrap{max-height:430px}}

/* ===== SISA 307 V2.0 · Capa profesional UI/UX ===== */
:root{--focus:#0f6cbd;--critical:#a32323;--priority:#b85c00;--watch:#9a7400;--muted:#65736c}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.clickable:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 65%,transparent);outline-offset:2px}
.login-school-logo{width:88px;height:88px;object-fit:contain;display:block;margin:0 auto 8px}.login-card .demo small{display:block;margin-top:8px;line-height:1.45}.workspace-switch,.home-workspace-tabs,.view-toggle{display:flex;gap:4px;background:#edf3ef;border:1px solid #d9e4dd;border-radius:10px;padding:4px}.workspace-switch button,.home-workspace-tabs button,.view-toggle button{border:0;background:transparent;border-radius:7px;padding:7px 11px;font-weight:700;color:#405048;cursor:pointer}.workspace-switch button.active,.home-workspace-tabs button.active,.view-toggle button.active{background:#fff;color:#144b35;box-shadow:0 1px 4px #0001}.home-workspace-tabs{width:max-content;margin-bottom:14px}
.alert-kpis .alert-critical,.card.alert-critical{border-color:#e8bcbc;background:#fff9f9}.alert-kpis .alert-priority,.card.alert-priority{border-color:#edd0ad;background:#fffbf4}.alert-kpis .alert-watch,.card.alert-watch{border-color:#eadfa8;background:#fffdf4}
.alert-filterbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.alert-filterbar label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#53625a}.alert-filterbar select{min-width:180px}.alert-student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}.alert-student-card{border:1px solid #dae4de;border-left:6px solid #6c7a73;border-radius:12px;background:#fff;padding:14px}.alert-student-card.sev-critical,.student-alert-banner.sev-critical{border-left-color:var(--critical)}.alert-student-card.sev-priority,.student-alert-banner.sev-priority{border-left-color:var(--priority)}.alert-student-card.sev-watch,.student-alert-banner.sev-watch{border-left-color:#c59b16}.alert-student-card.sev-data,.student-alert-banner.sev-data{border-left-color:#88958f}.alert-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.alert-card-head>div{display:flex;flex-direction:column;gap:3px}.severity-label{font-size:12px;font-weight:800}.linklike{border:0;background:transparent;padding:0;text-align:left;cursor:pointer;color:#0d1e16;font-size:15px;text-decoration:underline dotted}.case-pill{display:inline-flex;align-items:center;background:#eef3f0;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;white-space:nowrap}.case-pill.overdue{background:#fae5e5;color:#8b2020}.alert-card-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}.alert-card-metrics span{background:#f6f9f7;padding:7px;border-radius:7px;font-size:11px;display:flex;flex-direction:column;gap:2px}.alert-reasons,.alert-failed{font-size:12px;line-height:1.45;color:#405049;margin-top:6px}.alert-card-actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.student-alert-banner{border:1px solid #dbe5df;border-left:6px solid #6c7a73;border-radius:10px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.student-alert-banner>span{font-size:23px}.student-alert-banner div{display:flex;flex-direction:column;gap:3px}.student-alert-banner small{line-height:1.4}.case-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.followup-history>div:first-child{display:flex;align-items:center;gap:8px;justify-content:space-between}
.alert-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}.alert-settings-grid label{background:#f8faf9;border:1px solid #dfe8e2;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;font-weight:700}.alert-settings-grid label small{font-weight:400;color:#66736d;line-height:1.35}.quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.quality-item{display:flex;gap:12px;border:1px solid #dfe7e2;border-left:5px solid #738078;border-radius:10px;padding:12px;background:#fff}.quality-item.critical{border-left-color:#b32626}.quality-item.warning{border-left-color:#bf7a00}.quality-item.info{border-left-color:#3275a8}.quality-item>strong{font-size:24px}.quality-item>div{display:flex;flex-direction:column;gap:3px}.quality-item span{font-size:12px;color:#69766f;line-height:1.35}
.policy-table td:first-child small{display:block;color:#7a8780;font-size:10px;margin-top:2px}.policy-table select{min-width:150px}.policy-table input[type=checkbox]{width:18px;height:18px}.period-current,.period-new{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.period-new{border-top:1px solid #e0e8e3;margin-top:16px;padding-top:16px}.period-current label,.period-new label{min-width:300px;display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700}.period-history>div,.archived-user-list>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #e6ece8}.period-history span,.archived-user-list>div{min-width:0}.period-history span{display:flex;flex-direction:column}.period-history small,.archived-user-list span{font-size:11px;color:#6a766f}.archived-user-list>div{flex-direction:column;align-items:flex-start}
.grade-tools{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.grade-tools .assignment-search-wrap{flex:1;min-width:280px}.grade-search-count{font-size:11px;color:#68756f;padding:0 8px;white-space:nowrap}.grade-table-wrap{position:relative}.grade-table .sticky-col{position:sticky;z-index:3;background:#fff}.grade-table thead .sticky-col{z-index:5;background:#edf4f0}.grade-table .col-list{left:0;min-width:48px}.grade-table .col-control{left:48px;min-width:112px}.grade-table .col-name{left:160px;min-width:250px;box-shadow:4px 0 5px -5px #0006}.quick-grade-table{min-width:760px}.quick-grade-table th:nth-child(4){min-width:160px}.quick-grade-table td:nth-child(4){text-align:center}
.role-pill{white-space:nowrap}.top-user{gap:8px;flex-wrap:wrap;justify-content:flex-end}.system-status .badge{width:max-content}.admin-tabs{overflow-x:auto;scrollbar-width:thin}.admin-tabs button{white-space:nowrap}.nav button[aria-current="page"]{box-shadow:inset 3px 0 0 #fff}.main{min-width:0}
@media(max-width:800px){.alert-student-grid{grid-template-columns:1fr}.alert-card-metrics{grid-template-columns:repeat(2,1fr)}.case-form-grid{grid-template-columns:1fr}.period-current label,.period-new label{min-width:100%}.workspace-switch{order:3}.grade-table .col-name{min-width:190px}.grade-table .col-control{min-width:100px}.grade-table .col-name{left:148px}}

/* V2.0 · Trayectoria longitudinal */
.student-trajectory-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--line,#dbe3ea)}
.student-trajectory-block .section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}
.trajectory-table td:first-child small{display:block;color:var(--muted,#667085);margin-top:2px;font-size:11px}

/* ===== SISA 307 V2.1 · Centro de carga inteligente ===== */
.smart-center-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:24px 26px;margin-bottom:16px;border:1px solid #d6e4dc;border-radius:18px;background:linear-gradient(135deg,#f7fbf8,#eef6f1)}
.smart-center-hero h2{margin:3px 0 8px;font-size:30px;color:#102033}.smart-center-hero p{margin:0;max-width:780px;color:#586879;line-height:1.5}.smart-eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;color:#1d6547}.smart-flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.smart-flow span{background:#fff;border:1px solid #cfe0d6;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;white-space:nowrap}.smart-flow i{color:#8ca79a;font-style:normal}
.smart-section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.smart-section-tabs button{border:1px solid #d7e0e9;background:#fff;border-radius:12px;padding:10px 14px;font-weight:800;color:#24384c;cursor:pointer}.smart-section-tabs button.active{background:#174d36;color:#fff;border-color:#174d36}.smart-load-grid{display:grid;grid-template-columns:1fr;gap:16px}.smart-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.smart-mode-grid label{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #dbe4ea;border-radius:12px;background:#fafcfd}.smart-mode-grid label>span{font-weight:800}.smart-mode-grid select{padding:10px;border:1px solid #cbd7df;border-radius:9px;background:#fff}.smart-mode-grid small{color:#667789;line-height:1.35}.smart-format{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:12px;border-radius:12px;background:#eef6ff;border:1px solid #cfe1f5}.smart-format span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.smart-format small{color:#58708a}.smart-paste{width:100%;min-height:210px;resize:vertical;border:1px solid #bfcfd8;border-radius:12px;padding:14px;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;background:#fff;box-sizing:border-box}.smart-paste:focus{outline:3px solid rgba(25,103,73,.18);border-color:#196749}.smart-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}.smart-preview{margin-top:16px;border-top:1px solid #e1e7eb;padding-top:16px}.smart-status-row{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.smart-pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.smart-pill.ok{background:#e4f5ea;color:#126438}.smart-pill.bad{background:#fde8e8;color:#9b1c1c}.smart-pill.warn{background:#fff3d5;color:#8a5b00}.smart-pill.neutral{background:#eef2f6;color:#51606f}.smart-table-wrap{max-height:440px;overflow:auto;border:1px solid #e1e7eb;border-radius:12px;margin-top:12px}.smart-table-wrap table{min-width:850px}.smart-table-wrap td small{display:block;color:#71808f;margin-top:3px}.smart-row-error{background:#fff1f1!important}.smart-apply-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;background:#eff8f2;border:1px solid #cde5d5;border-radius:12px}.smart-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.smart-kpis>div{padding:16px;border:1px solid #dce5ea;border-radius:12px;background:#f9fbfc}.smart-kpis strong{display:block;font-size:28px;color:#174d36}.smart-kpis span{font-size:13px;color:#657482}.smart-review-table table{min-width:760px}.smart-legacy{margin-top:18px;border:1px solid #dce5ea;border-radius:12px;background:#fff}.smart-legacy summary{cursor:pointer;font-weight:800;padding:14px 16px}.smart-legacy>div{padding:0 16px 16px}.smart-recommended{border-color:#bbd7c7;background:#f7fbf8}.smart-recommended .panel-head{align-items:center}
@media(max-width:900px){.smart-center-hero{align-items:flex-start;flex-direction:column}.smart-flow{justify-content:flex-start}.smart-mode-grid,.smart-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.smart-mode-grid,.smart-kpis{grid-template-columns:1fr}.smart-apply-bar{align-items:stretch;flex-direction:column}.smart-actions .btn{flex:1}.smart-section-tabs button{flex:1 1 45%}}
.smart-file-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.smart-file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.link-button{border:0;background:transparent;color:#125b3c;text-decoration:underline;font-weight:900;cursor:pointer;padding:0}


/* Acceso SISA 307: identidad, jerarquía y adaptación móvil. */
.sisa-login{min-height:100vh;display:grid;place-items:center;padding:clamp(20px,3vw,44px);background:#edf2ef;background-image:radial-gradient(circle at 12% 12%,#dceae1 0,transparent 34%),radial-gradient(circle at 90% 88%,#e1e9e3 0,transparent 30%)}
.sisa-login .login-frame{width:min(1240px,100%);min-height:min(740px,calc(100vh - 80px));display:grid;grid-template-columns:minmax(0,1.16fr) minmax(430px,.84fr);border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 30px 85px rgba(15,44,31,.15),0 3px 14px rgba(15,44,31,.07);border:1px solid #d8e4dc}
.sisa-login .login-intro{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:clamp(38px,4.5vw,66px);color:#fff;background:linear-gradient(145deg,#173d2c 0%,#123325 56%,#0c271c 100%);overflow:hidden}
.sisa-login .login-intro:before{content:'';position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(227,245,231,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(227,245,231,.055) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(120deg,transparent 8%,#000 100%)}
.sisa-login .login-intro:after{content:'';position:absolute;z-index:-1;width:420px;height:420px;border:1px solid rgba(247,202,60,.16);border-radius:50%;right:-175px;bottom:-140px;box-shadow:0 0 0 62px rgba(247,202,60,.035),0 0 0 130px rgba(247,202,60,.025)}
.sisa-login .login-intro-brand{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;padding:0 0 23px;border-bottom:1px solid rgba(223,241,229,.23);text-align:left}
.sisa-login .login-intro-brand img{width:106px;height:106px;object-fit:contain;flex:none;filter:drop-shadow(0 10px 15px rgba(0,0,0,.16))}
.sisa-login .login-intro-brand strong{display:block;font-size:32px;line-height:1.05;letter-spacing:-.025em}
.sisa-login .login-intro-brand small{display:block;margin-top:9px;color:#d0e2d6;font-size:16px;letter-spacing:.035em}
.sisa-login .login-intro-content{max-width:470px;margin:24px 0}
.sisa-login .login-eyebrow{margin:0 0 18px;color:#f2c94d;font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.14em}
.sisa-login .login-intro h1{max-width:440px;margin:0;font-size:clamp(31px,3vw,40px);line-height:1.12;letter-spacing:-.035em;color:#fff}
.sisa-login .login-intro-content>p:not(.login-eyebrow){max-width:420px;margin:21px 0 0;color:#d5e5dc;font-size:16px;line-height:1.65}
.sisa-login .login-modules{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.sisa-login .login-modules span{padding:8px 11px;border:1px solid rgba(216,236,223,.25);border-radius:7px;background:rgba(255,255,255,.075);color:#ebf4ee;font-size:12px;font-weight:650}
.sisa-login .login-intro-foot{display:flex;align-items:center;gap:9px;color:#b8d0c1;font-size:12px}
.sisa-login .login-status-dot{width:7px;height:7px;border-radius:50%;background:#f2c94d;box-shadow:0 0 0 4px rgba(242,201,77,.12)}
.sisa-login .login-access{align-self:stretch;display:flex;flex-direction:column;justify-content:center;width:100%;min-width:0;padding:clamp(42px,4.8vw,70px);border:0;border-radius:0;box-shadow:none}
.sisa-login .login-access-top{display:flex;align-items:center;gap:10px;margin-bottom:25px;color:#276044;font-size:11px;font-weight:800;letter-spacing:.13em}
.sisa-login .login-access-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#e7f1ea;color:#1b573b;font-size:16px;letter-spacing:0}
.sisa-login .login-access h2{margin:0;color:#142920;font-size:36px;line-height:1.2;letter-spacing:-.025em}
.sisa-login .login-access .sub{margin:10px 0 25px;color:#566b60;font-size:14px;line-height:1.55}
.sisa-login .login-access .field{margin:0 0 19px;gap:8px}
.sisa-login .login-access .field label{color:#263c30;font-size:13px}
.sisa-login .login-access .field input{height:52px;padding:11px 14px;border-color:#c6d8cd;border-radius:9px;color:#152b20;font-size:15px}
.sisa-login .login-access .field input::placeholder{color:#81938a}
.sisa-login .login-access .field input:focus{outline:3px solid rgba(42,118,76,.20);outline-offset:1px;border-color:#216b46}
.sisa-login .login-password-field{position:relative}
.sisa-login .login-password-field input{padding-right:88px!important}
.sisa-login .login-reveal{position:absolute;right:5px;top:5px;height:38px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#21573b;font-size:12px;font-weight:750;cursor:pointer}
.sisa-login .login-reveal:hover,.sisa-login .login-reveal:focus-visible{background:#eaf2ed;outline:2px solid transparent}
.sisa-login .login-submit{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;margin-top:5px;padding:11px 16px;border-radius:9px;background:#205b3d;font-size:14px}
.sisa-login .login-submit:hover{background:#174b31}
.sisa-login .login-submit:focus-visible,.sisa-login .login-back:focus-visible{outline:3px solid #c29016;outline-offset:3px}
.sisa-login .login-submit span{font-size:21px;line-height:1}
.sisa-login .login-help{margin:23px 0 0;color:#65766c;font-size:12px;line-height:1.55}
.sisa-login .login-back{align-self:flex-start;margin-top:28px;color:#205b3d;font-size:13px;font-weight:750;text-decoration:none}
.sisa-login .login-back:hover{text-decoration:underline}
.sisa-login .login-alert:empty{display:none}
.sisa-login .login-alert:not(:empty){display:block;margin:0 0 18px;padding:11px 13px;border-left:3px solid #b14234;border-radius:5px;background:#fff1ee;color:#7f2b25;font-size:13px;line-height:1.4}
@media(max-width:780px){.sisa-login{padding:18px}.sisa-login .login-frame{max-width:540px;min-height:0;grid-template-columns:1fr}.sisa-login .login-intro{padding:24px 27px}.sisa-login .login-intro-content{margin:18px 0 0}.sisa-login .login-intro h1{font-size:25px;max-width:420px}.sisa-login .login-intro-content>p:not(.login-eyebrow),.sisa-login .login-modules,.sisa-login .login-intro-foot{display:none}.sisa-login .login-eyebrow{margin-bottom:9px;font-size:10px}.sisa-login .login-intro-brand{gap:14px;padding-bottom:18px}.sisa-login .login-intro-brand img{width:72px;height:72px}.sisa-login .login-intro-brand strong{font-size:24px}.sisa-login .login-intro-brand small{font-size:12px;margin-top:5px}.sisa-login .login-access{padding:30px 27px 32px}.sisa-login .login-access-top{margin-bottom:18px}}
@media(max-width:420px){.sisa-login{padding:10px}.sisa-login .login-frame{border-radius:16px}.sisa-login .login-intro{padding:21px}.sisa-login .login-access{padding:24px 21px}.sisa-login .login-access h2{font-size:27px}}
@media(prefers-reduced-motion:no-preference){.sisa-login .login-reveal,.sisa-login .login-submit{transition:background .16s ease}}

/* Corrección de nombres en Administración. */
.admin-name-trigger{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;padding:2px 0;cursor:pointer;line-height:1.3}
.admin-name-trigger span{font-size:.8em;color:#315e4c;margin-left:5px}
.admin-name-trigger:hover{text-decoration:underline;text-underline-offset:3px}
.admin-name-trigger:focus-visible{outline:2px solid #205e47;outline-offset:3px;border-radius:2px}
.admin-name-form:not([hidden]){display:grid;gap:7px;min-width:min(100%,240px);max-width:620px}
.admin-name-form label{display:grid;gap:3px;font-size:12px;font-weight:600}
.admin-name-form input{box-sizing:border-box;width:100%;padding:7px 9px;border:1px solid #9ab4a6;border-radius:6px;background:#fff;color:#16251e;font:inherit;font-size:14px}
.admin-name-actions{display:flex;flex-wrap:wrap;gap:6px}
.admin-name-error{color:#a22121;font-size:12px}
.admin-name-notice:not(:empty){padding:8px 12px;margin:0 0 12px;background:#e6f4ec;color:#164a35;border-radius:6px}

/* Listas de grupos para Departamento Académico. */
.academic-lists-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid #d7e3dc;border-radius:10px;background:#f1f7f3;font-weight:700;color:#174832}
.academic-lists-toolbar .btn{white-space:normal}
/* Visibilidad de la clave durante el primer ingreso. */
.sisa-change-password .login-password-field{position:relative}
.sisa-change-password .login-password-field input{box-sizing:border-box;width:100%;padding-right:88px}
.sisa-change-password .login-reveal{position:absolute;right:5px;top:50%;transform:translateY(-50%);padding:8px 10px;border:0;border-radius:6px;background:transparent;color:#21573b;font-size:12px;font-weight:750;cursor:pointer}
.sisa-change-password .login-reveal:hover,.sisa-change-password .login-reveal:focus-visible{background:#eaf2ed;outline:2px solid transparent}

/* Expediente tutorial: cada intervención conserva su propia bitácora. */
.student-followup-block{margin-top:22px}.student-followup-block .section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.case-file-actions{display:flex;gap:8px;flex-wrap:wrap}.case-file{border:1px solid #d6e3dc;border-radius:12px;background:#fff;padding:16px;margin:12px 0;box-shadow:0 4px 16px rgba(9,49,31,.04)}.case-file-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.case-file-head small{font-size:11px;color:#52645b;font-weight:700;letter-spacing:.04em}.case-file-head h3{font-size:17px;margin:4px 0 0}.case-file-meta{font-size:12px;color:#4b5d52;line-height:1.6;margin:8px 0 14px}.case-log{border-left:2px solid #92b49f;margin-left:8px;padding-left:18px}.case-log-entry{position:relative;padding:1px 0 14px;break-inside:avoid}.case-log-entry:before{content:"";position:absolute;left:-25px;top:6px;width:10px;height:10px;border-radius:50%;background:#225b3c;border:2px solid white;box-shadow:0 0 0 1px #92b49f}.case-log-entry b{font-size:13px}.case-log-entry time{display:block;color:#566d60;font-size:11px;margin:3px 0}.case-log-entry p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.55;margin:5px 0}.case-log-entry small{color:#4b5d52}.case-print-sheet{max-width:850px}.case-print-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid #cbd8d0;padding:12px;margin:14px 0 24px;font-size:12px}.case-print-signatures{display:flex;gap:40px;justify-content:space-around;margin-top:72px}.case-print-signatures span{border-top:1px solid #333;text-align:center;padding:8px;width:42%;font-size:11px}.case-print-footer{font-size:10px;color:#4b5d52;margin-top:30px}.case-file-print{box-shadow:none;break-inside:avoid}.case-file-print .case-log-entry{break-inside:avoid}
@media(max-width:600px){.case-print-meta{grid-template-columns:1fr}.case-file-head{flex-direction:column}.case-file-actions{width:100%}}
@media print{@page{size:A4 portrait;margin:15mm}.case-print-sheet{font-family:Arial,Helvetica,sans-serif;max-width:none}.case-file{box-shadow:none;border-color:#999}.case-file-actions{display:none!important}.case-log-entry{page-break-inside:avoid}.case-print-signatures{page-break-inside:avoid}}
.btn.case-delete-button{background:#fff;color:#912b2b;border:1px solid #cfa6a6}.btn.case-delete-button:hover{background:#fff2f2}.btn.case-delete-confirm{background:#912b2b;color:#fff}.btn.case-delete-confirm:hover{background:#761f1f}

/* Mensajería WhatsApp V1 */
.wa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.wa-kpis>div{border:1px solid #dce6e1;background:#fff;border-radius:11px;padding:13px}.wa-kpis strong,.wa-kpis span{display:block}.wa-kpis strong{font-size:23px;color:#174d36}.wa-kpis span{font-size:11px;color:#65766d;margin-top:3px}.wa-table{min-width:1180px}.wa-person{display:flex;align-items:flex-start;gap:8px}.wa-person span,.wa-person small{display:block}.wa-person small{color:#6d7a74;margin-top:3px}.wa-phone,.wa-notes,.wa-compose-grid input,.wa-compose-grid select,.wa-full textarea{width:100%;border:1px solid #cdd9d3;border-radius:8px;padding:8px;background:#fff}.wa-check{display:block;font-size:11px;margin:2px 0;white-space:nowrap}.wa-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;font-size:10px;min-width:230px}.wa-compose-grid{display:grid;grid-template-columns:1fr 1.3fr .7fr;gap:10px;margin-bottom:10px}.wa-compose-grid label,.wa-full{display:grid;gap:5px;font-size:11px;color:#5e7067}.wa-full{margin:10px 0}.wa-error{display:block;color:#9a342d;max-width:340px;margin-top:4px}.wa-history{min-width:850px}@media(max-width:900px){.wa-kpis{grid-template-columns:1fr 1fr}.wa-compose-grid{grid-template-columns:1fr}.wa-pref-grid{grid-template-columns:1fr}}


/* SISA 307 · Seguridad · gestor UX de accesos existentes */
.permission-manager .panel-head{align-items:flex-start}
.permission-user-picker{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(320px,2fr);gap:14px;align-items:end}
.permission-user-picker>label{display:flex;flex-direction:column;gap:7px;font-weight:700}
.permission-user-summary{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1fr) minmax(120px,.55fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line,#dbe3ea);border-radius:14px;background:var(--surface-soft,#f8fafc)}
.permission-base-card{margin:12px 0;padding:14px 16px;border:1px solid #cfe0ef;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#f4f8fb)}
.permission-base-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.permission-base-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:7px 14px;margin-top:10px}
.permission-base-list>div{padding:7px 9px;border-radius:9px;background:#fff;border:1px solid #e3ebf2}
.permission-editor-card{border:1px solid #cfdbe6;border-radius:14px;background:#fff;overflow:hidden}
.permission-editor-card>summary{padding:13px 15px;background:#f7fafc;cursor:pointer}
.permission-savebar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;position:sticky;bottom:8px;padding:10px;border:1px solid #d8e3ec;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(30,55,75,.08);z-index:2}
@media(max-width:760px){
  .permission-user-picker,.permission-user-summary{grid-template-columns:1fr}
  .permission-savebar{position:static}
}
