:root{--navy:#08285b;--blue:#0d5bd7;--cyan:#08c7b2;--ink:#16253a;--muted:#65758b;--line:#dce4ee;--bg:#f3f6fa;--white:#fff;--danger:#b42318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}.topbar{height:76px;padding:0 max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:white}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-family:Manrope;font-weight:800}.brand small{display:block;font:500 11px 'DM Sans';color:#b8c8e3;letter-spacing:.5px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--cyan),#0a8ae8);font-size:22px}.topbar nav{display:flex;height:100%;gap:28px}.topbar nav a{display:flex;align-items:center;color:#c5d2e7;text-decoration:none;font-size:14px;font-weight:600;border-bottom:3px solid transparent}.topbar nav a.active{color:#fff;border-color:var(--cyan)}.container{max-width:1180px;margin:0 auto;padding:44px 24px 72px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.page-head h1{font:800 32px Manrope;margin:4px 0}.page-head p,.section-title p{color:var(--muted);margin:0}.eyebrow{font-size:11px;font-weight:800;color:var(--blue);letter-spacing:1.4px}.back{display:inline-block;color:var(--blue);text-decoration:none;font-weight:600;margin-bottom:10px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:12px 18px;background:var(--blue);color:white;text-decoration:none;font:700 14px 'DM Sans';cursor:pointer;box-shadow:0 4px 10px #0d5bd72b}.button.secondary{background:white;color:var(--ink);border:1px solid var(--line);box-shadow:none}.card{background:var(--white);border:1px solid #e4e9f0;border-radius:14px;box-shadow:0 4px 16px #14305d0a}.table-card{overflow:hidden}.empty{text-align:center;padding:70px 24px}.empty-icon{font-size:36px}.empty h2{margin:12px 0 6px;font:700 20px Manrope}.empty p{color:var(--muted);margin:0 0 20px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;background:#f8fafc;color:#66758b;font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:13px 16px}td{padding:16px;border-top:1px solid var(--line);font-size:14px}td small{display:block;color:var(--muted);margin-top:3px}.tag{display:inline-block;padding:4px 9px;background:#eaf2ff;color:#1859b7;border-radius:20px;font-size:12px;font-weight:700}.alert{padding:14px 18px;border-radius:10px;margin-bottom:20px}.alert.success{background:#e8f8f3;color:#08765f}.alert.error{background:#fff0ef;color:var(--danger);border:1px solid #ffc9c5}.alert ul{margin:7px 0 0;padding-left:20px}.form-stack{display:grid;gap:18px}.form-card{padding:26px;display:grid;grid-template-columns:42px 230px 1fr;gap:18px}.section-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e9f1ff;color:var(--blue);font-weight:800}.section-title h2{font:700 18px Manrope;margin:5px 0 5px}.section-title p{font-size:13px;line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label,.form-grid fieldset{font-size:13px;font-weight:700}.form-grid label>span,legend span{color:var(--danger)}input,select{width:100%;height:43px;border:1px solid #cdd7e4;border-radius:8px;background:#fff;color:var(--ink);padding:0 12px;margin-top:7px;font:14px 'DM Sans';outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0d5bd716}label small,.hint{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:5px}.full{grid-column:1/-1;border:0;padding:8px 0 0;margin:0}.full legend{padding:0}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.check{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);padding:11px;border-radius:8px;font-weight:500!important;cursor:pointer}.check.programa-origen{border-color:#8bb8fa;background:#f1f6ff}.check input{width:16px;height:16px;margin:1px 0;flex:0 0 auto}.check span{color:var(--ink)!important}.info-note{grid-column:2/-1;background:#edf7ff;border-left:3px solid #2992dc;padding:13px 16px;border-radius:7px;color:#365772;font-size:12px;line-height:1.5}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.muted-field{opacity:.7}.input-action{display:flex;margin-top:7px}.input-action input{margin:0;border-radius:8px 0 0 8px}.input-action button{border:0;border-radius:0 8px 8px 0;background:var(--navy);color:#fff;padding:0 14px;font:700 12px 'DM Sans';cursor:pointer}.input-action button:disabled{opacity:.6;cursor:wait}.field-success{color:#08765f!important}.field-error{color:var(--danger)!important}@media(max-width:850px){.topbar nav{display:none}.form-card{grid-template-columns:42px 1fr}.form-grid,.info-note{grid-column:1/-1}.section-title{align-self:center}}@media(max-width:600px){.container{padding:28px 14px}.page-head{align-items:flex-start;flex-direction:column}.form-card{padding:18px;grid-template-columns:1fr}.section-number{display:none}.form-grid,.check-grid{grid-template-columns:1fr}.topbar{padding:0 16px}.page-head .button{width:100%}}
.actions-head{text-align:right}.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;white-space:nowrap}.row-actions a,.row-actions button{border:0;background:none;padding:0;color:var(--blue);font:700 12px 'DM Sans';text-decoration:none;cursor:pointer}.row-actions form{margin:0}.row-actions .danger-link{color:var(--danger)}.inactive-row{opacity:.62}.status{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:800}.status.on{background:#e7f7f1;color:#08765f}.status.off{background:#eef1f5;color:#697586}.title-line{display:flex;align-items:center;gap:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-card{padding:24px}.detail-card:last-child{grid-column:1/-1}.detail-card h2{font:700 17px Manrope;margin:0 0 20px}.detail-card h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:22px 0 10px}.detail-card dl{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0}.detail-card dl div{border-bottom:1px solid var(--line);padding-bottom:12px}.detail-card dt{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}.detail-card dd{margin:5px 0 0;font-weight:600}.nexus-value{font:800 20px Manrope!important;color:var(--navy)}.program-list{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}.program-list li{padding:7px 10px;border-radius:7px;background:#f0f5fc;color:#355372;font-size:12px}.record-actions{display:flex;justify-content:flex-end;margin-top:18px}.danger-button{background:#b42318;box-shadow:none}@media(max-width:700px){.detail-grid{grid-template-columns:1fr}.detail-card:last-child{grid-column:auto}.detail-card dl{grid-template-columns:1fr}.row-actions{flex-direction:column;align-items:flex-start}}
.row-actions.enhanced-actions{display:none}.actions-select-cell{text-align:right}.action-select{width:100%;min-width:145px;max-width:185px;height:38px;margin:0;padding:0 36px 0 13px;border:1px solid #8eb3e7;border-radius:9px;background-color:#f4f8ff;color:#0b4fae;font-size:11px;font-weight:800;letter-spacing:.45px;cursor:pointer;box-shadow:0 2px 7px #163b6d12;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.action-select:hover{border-color:var(--blue);background-color:#eaf2ff}.action-select:focus{border-color:var(--blue);background-color:#fff;box-shadow:0 0 0 3px #0d5bd718}.action-select option{background:#fff;color:#17365d;font-size:13px;font-weight:600;letter-spacing:0}.action-select option:first-child{color:#0b4fae;font-weight:800}.action-select option.regular-option{color:#0d5bd7}.action-select option.destructive-option{color:#b42318}.actions-head{min-width:165px}.button{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover:not(:disabled):not(.disabled){transform:translateY(-2px);box-shadow:0 7px 15px #0d5bd738}.button:active:not(:disabled):not(.disabled){transform:translateY(0);box-shadow:0 2px 5px #0d5bd728}.button.secondary:hover:not(.disabled){background:#f3f7fc;border-color:#aebed1;color:var(--blue)}button:disabled,.button.disabled{opacity:.52;cursor:not-allowed}.swal2-popup{font-family:'DM Sans',sans-serif;border-radius:16px}.swal2-title{font-family:Manrope,sans-serif;color:var(--ink)}.swal2-actions button{font-weight:700;border-radius:9px}.swal-confirm-primary{background:var(--blue)!important}.swal-confirm-danger{background:var(--danger)!important}
.three-cols{grid-template-columns:repeat(3,1fr)}.semester-grid{display:flex;gap:7px;margin-top:8px}.semester-option input,.choice input{position:absolute;opacity:0;pointer-events:none}.semester-option span{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer}.semester-option input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}.semester-option input:disabled+span{background:#f2f4f7;color:#b1bac6;cursor:not-allowed}.choice-row{display:flex;gap:8px;margin-top:8px}.choice{flex:1}.choice span{display:block;border:1px solid var(--line);border-radius:8px;padding:11px;text-align:center;cursor:pointer;font-weight:600}.choice input:checked+span{border-color:var(--blue);background:#eef5ff;color:var(--blue)}@media(max-width:700px){.three-cols{grid-template-columns:1fr}}
.program-tags{display:flex;flex-wrap:wrap;gap:5px}.program-tags span{display:inline-block;padding:4px 7px;border-radius:6px;background:#eef4fb;color:#395874;font-size:11px}
.formula-note{grid-column:2/-1;display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:8px;background:#f1f7ff;color:#315372;font-size:12px}.formula-note span{padding:4px 7px;border-radius:5px;background:#dcecff;color:var(--blue);font-weight:800;text-transform:uppercase;font-size:9px;letter-spacing:.5px}input[readonly]{background:#f3f6fa;color:var(--navy);font-weight:800}
.filters-card{padding:20px;margin-bottom:18px}.filters-card label{font-size:11px;font-weight:700;color:#506078}.search-input{display:flex;align-items:center;border:1px solid #cdd7e4;border-radius:9px;margin-top:7px;background:#fff}.search-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #0d5bd716}.search-input span{font-size:21px;padding-left:12px;color:#76879d}.search-input input{border:0;box-shadow:none!important;margin:0}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin-top:14px}.filter-grid select{margin-top:6px}.filter-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:15px}.filter-actions a{color:var(--muted);font-size:12px;font-weight:700;text-decoration:none}.filter-actions .button{padding:10px 22px}.result-summary{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;margin:0 3px 10px}.result-summary strong{color:var(--ink)}.result-summary span{margin-left:auto}.pagination-wrap{display:flex;justify-content:center;margin-top:22px}.pagination-wrap ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}.pagination-wrap li>a,.pagination-wrap li>span{display:grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;font-size:12px;font-weight:700;transition:border-color .16s ease,background .16s ease,color .16s ease}.pagination-wrap li>a:hover{border-color:#91b5e8;background:#f1f6ff;color:var(--blue)}.pagination-wrap li>a>span{display:inline;min-width:0;height:auto;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit}.pagination-wrap li.active>a,.pagination-wrap li.active>span{background:var(--blue);border-color:var(--blue);color:#fff}.pagination-wrap li.disabled>span{color:#aab4c2;background:#f5f7fa}@media(max-width:850px){.filter-grid{grid-template-columns:1fr 1fr}}@media(max-width:550px){.filter-grid{grid-template-columns:1fr}.filter-actions .button{flex:1}.result-summary span{display:none}}
.unit-filter-grid{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:12px;margin-top:14px}.unit-filter-grid select{margin-top:6px}.unit-results-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px;margin-bottom:12px}.unit-results-head .result-summary{margin-bottom:0}.hours-summary{min-width:245px;padding:11px 15px;border:1px solid #b8d7ff;border-radius:10px;background:#eef6ff}.hours-summary span,.hours-summary small{display:block;color:var(--muted);font-size:10px}.hours-summary strong{font:800 22px Manrope;color:var(--blue)}@media(max-width:750px){.unit-filter-grid{grid-template-columns:1fr}.unit-results-head{grid-template-columns:1fr}.hours-summary{min-width:0}}

.load-filters .filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.teaching-assignment-form { margin-bottom: 24px; padding: 24px; }
.teaching-assignment-form .section-title { margin-bottom: 18px; }
.load-edit-fieldset{border:0;padding:0;margin:0;min-width:0}.load-edit-fieldset:disabled{opacity:.62}
.teaching-assignment-form .section-title h2 { margin-top: 0; }
.assignment-grid { display: grid; grid-template-columns: minmax(220px,1fr) minmax(340px,1.55fr) 160px 120px; gap: 14px; align-items: start; }
.assignment-grid > label { min-width: 0; font-size: 13px; font-weight: 700; }
.assignment-grid > .button { width: 100%; height: 43px; min-height: 43px; margin-top: 28px; padding: 0 16px; }
.teacher-load-card { padding: 0; overflow: hidden; margin-bottom: 22px; }
.professional-pagination-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 8px 2px 12px; }
.professional-pagination-head > div { display: flex; gap: 6px; color: var(--muted); font-size: 13px; }
.professional-pagination-head strong { color: var(--ink); }
.professional-pagination-head .compact-pagination { margin: 0; }
.teacher-load-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; background: #f7faff; border-bottom: 1px solid var(--border); }
.teacher-load-head h2 { margin: 2px 0 4px; }
.teacher-load-head p { margin: 0; color: var(--muted); }
.teacher-load-head .current-role { margin-bottom: 3px; color: #17365d; }
.lective-total { min-width: 150px; text-align: center; padding: 12px 18px; color: #fff; background: #082f68; border-radius: 12px; }
.lective-total span, .lective-total small { display: block; font-size: 12px; }
.lective-total strong { display: block; font: 800 28px/1.1 Manrope, sans-serif; }
.load-totals { display: grid; grid-template-columns: repeat(3, minmax(105px, 1fr)); gap: 8px; }
.load-totals > div { padding: 10px 14px; border-radius: 10px; text-align: center; }
.load-totals span { display: block; font-size: 11px; }
.load-totals strong { display: block; font: 800 21px/1.2 Manrope, sans-serif; }
.load-totals .non-lective-total { background: #e8f2ff; color: #17365d; }
.load-totals .weekly-total { background: #fff1df; color: #9a4b00; }
.load-totals .weekly-total.complete { background: #e1f6e9; color: #176b3a; }
.compact-button { display: inline-flex; margin-top: 12px; padding: 7px 12px; font-size: 13px; }
.exception-summary,.exception-card,.exception-form,.exception-history{padding:24px;margin-bottom:20px}.exception-summary span,.exception-summary small{display:block;color:var(--muted)}.exception-summary strong{display:block;font:800 30px Manrope;margin:5px 0}.exception-form h2,.exception-card h2,.exception-history h2{margin-top:0}.exception-form textarea{width:100%;min-height:95px;margin-top:7px;padding:12px;border:1px solid #cdd7e4;border-radius:8px;font:14px 'DM Sans';resize:vertical}.lective-total small{display:block;margin-top:3px;font-size:10px;font-weight:700}
.exception-action-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:13px 15px;background:#f7faff;border:1px solid #d8e3f0;border-radius:10px}.exception-action-bar strong{display:block;font-size:13px;color:#17365d}.exception-action-bar small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px}.button.disabled{opacity:.5;pointer-events:none;cursor:not-allowed}
.exception-buttons{display:flex;gap:8px;flex-wrap:nowrap;justify-content:flex-end}.exception-buttons .button{min-height:36px;padding:8px 12px;font-size:11.5px;white-space:nowrap;background:#fff}
.report-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.additional-activity-row th{background:#fff4d6;color:#7a4b00}.additional-activity-row td{background:#fffaf0;color:#603d00;font-weight:600;line-height:1.45}
.teaching-load-table th { text-align: center; }
.teaching-load-table th:first-child, .teaching-load-table td:first-child { text-align: left; min-width: 290px; }
.teaching-load-table .hour-cell, .teaching-load-table .hour-total { text-align: center; font-weight: 700; }
.teaching-load-table .lective-unit { background: #fff7a8; color: #17365d; }
.teaching-load-table tfoot th { background: #e8f1ff; color: #082f68; border-top: 2px solid #8ca9ce; }
.teaching-load-table .subtotal-row th { text-align: center; background: #edf4ff; color: #17365d; border-top: 2px solid #8ca9ce; }
.teaching-load-table .subtotal-row th:first-child { text-align: left; }
.teaching-load-table .load-section-row th { padding: 9px 14px; color: #fff; background: #17365d; text-align: left; }
.teaching-load-table .non-lective-detail td:first-child { font-size: 13px; }
.global-teaching-load-table { min-width: 980px; table-layout: fixed; }
.global-teaching-load-table th:first-child, .global-teaching-load-table td:first-child { width: 31%; min-width: 260px; }
.global-teaching-load-table th:nth-child(2), .global-teaching-load-table td:nth-child(2) { width: 27%; min-width: 220px; text-align: left; }
.global-teaching-load-table th:nth-child(3), .global-teaching-load-table td:nth-child(3) { width: 13%; min-width: 105px; text-align: left; }
.global-teaching-load-table .program-context-cell { background: #fffbe0; color: #17365d; line-height: 1.35; }
.global-teaching-load-table .program-context-cell strong { font-size: 12px; }
.global-teaching-load-table .plan-context-cell { background: #fffdf0; color: #17365d; white-space: nowrap; }
.global-teaching-load-table .plan-context-cell span { font-weight: 800; }
.global-teaching-load-table .plan-context-cell small { white-space: normal; }
.curriculum-opening-card { padding: 0; overflow: hidden; }
.curriculum-opening-card .section-title, .curriculum-opening-card .info-note, .curriculum-opening-card .form-actions { margin: 22px 24px; }
.opening-table th, .opening-table td { text-align: center; vertical-align: middle; }
.opening-table th:first-child, .opening-table td:first-child { text-align: left; min-width: 220px; }
.opening-table td:first-child small { display: block; color: var(--muted); }
.opening-option { display: flex; min-width: 135px; padding: 12px; border: 1px solid #cad8eb; border-radius: 10px; background: #f7faff; flex-direction: column; align-items: center; cursor: pointer; }
.opening-option:has(input:checked) { border-color: #2772cc; background: #e8f2ff; }
.opening-option input { width: 18px; height: 18px; margin-bottom: 6px; }
.opening-option span { font-weight: 700; color: #17365d; }
.opening-option small { color: var(--muted); text-align: center; }
.opening-option.unavailable { opacity: .5; cursor: not-allowed; background: #f3f4f6; }
.load-rule-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.load-rule-summary > div { padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.load-rule-summary span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.load-rule-summary strong { color: #17365d; }
.non-lective-form { padding: 0; overflow: hidden; }
.non-lective-form .section-title, .non-lective-form .info-note, .non-lective-form .form-actions { margin: 22px 24px; }
.other-activities-description { display: none; margin: 20px 24px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: #f8fafc; }
.other-activities-description.required { display: block; border-color: #d8982d; background: #fff8e8; }
.page-head .eyebrow { display: block; }
.alert.warning { background: #fff8e8; color: #7a4b00; border: 1px solid #f0cf8b; }
.alert.warning a { color: #7a4b00; font-weight: 700; }
.container, .form-stack, .form-card, .form-grid, .form-card > *, .form-grid > * { min-width: 0; }
.form-grid input, .form-grid select, .form-grid textarea { min-width: 0; max-width: 100%; }
.form-grid fieldset { min-inline-size: 0; }
.semester-grid { flex-wrap: wrap; }
.formula-note { min-width: 0; flex-wrap: wrap; }
.head-actions { display: flex; gap: 10px; }
.import-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
.import-steps > div { position: relative; padding: 18px 18px 18px 58px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.import-steps > div > span { position: absolute; left: 17px; top: 17px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: #e9f1ff; color: var(--blue); font-weight: 800; }
.import-steps strong, .import-steps small { display: block; }
.import-steps small { margin-top: 4px; color: var(--muted); }
.excel-upload-card { padding: 26px; }
.excel-dropzone { display: block; margin: 22px 0; padding: 34px; border: 2px dashed #a9bfdc; border-radius: 12px; background: #f7faff; text-align: center; cursor: pointer; }
.excel-dropzone:hover { border-color: var(--blue); background: #eef5ff; }
.excel-dropzone input { max-width: 520px; margin: 0 auto 14px; }
.excel-dropzone span, .excel-dropzone small { display: block; }
.excel-dropzone span { color: #17365d; font-weight: 700; }
.import-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.import-summary > div { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.import-summary span, .import-summary strong { display: block; }
.import-summary span { color: var(--muted); font-size: 12px; }
.import-summary strong { margin-top: 3px; font: 800 24px Manrope; }
.import-summary .valid strong { color: #08765f; }
.import-summary .duplicate strong { color: #9a6300; }
.import-summary .invalid strong { color: var(--danger); }
.import-preview-table td { vertical-align: top; }
.import-status { display: inline-flex; padding: 4px 8px; border-radius: 12px; font-size: 10px; font-weight: 800; }
.import-status.valid { background: #e7f7f1; color: #08765f; }
.import-status.duplicate { background: #fff4d6; color: #8a5a00; }
.import-status.invalid { background: #fff0ef; color: var(--danger); }
.import-confirm-actions { margin-top: 20px; }
.import-confirm-actions form { margin: 0; }
@media (max-width: 750px) {
  .head-actions { width: 100%; flex-direction: column; }
  .head-actions .button { width: 100%; }
  .import-steps, .import-summary { grid-template-columns: 1fr; }
}
.other-activities-description label, .other-activities-description textarea { width: 100%; }
.other-activities-description textarea { margin-top: 8px; resize: vertical; }
.activity-description { display: block; margin-top: 4px; color: #51657f; font-style: italic; white-space: normal; }
.non-lective-table th, .non-lective-table td { text-align: center; vertical-align: middle; }
.non-lective-table th:first-child, .non-lective-table td:first-child { min-width: 330px; text-align: left; }
.non-lective-table input { width: 82px; padding: 8px; text-align: center; }
.non-lective-table .row-hours-total { font-weight: 700; background: #f7faff; }
.non-lective-table tfoot th { background: #e8f1ff; color: #082f68; border-top: 2px solid #8ca9ce; }
.distribution-balance { display: flex; justify-content: flex-end; gap: 24px; padding: 16px 24px; background: #fff8e8; color: #7a4b00; }
.non-lective-form.balanced .distribution-balance { background: #e1f6e9; color: #176b3a; }
@media (max-width: 900px) {
  .load-filters .filter-grid, .assignment-grid { grid-template-columns: 1fr 1fr; }
  .assignment-grid > .button { margin-top: 0; align-self:end; }
  .exception-action-bar { align-items:flex-start; flex-direction:column; }
  .exception-buttons { width:100%; justify-content:flex-start; }
  .teacher-load-head { align-items: flex-start; }
  .load-rule-summary { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .load-filters .filter-grid, .assignment-grid { grid-template-columns: 1fr; }
  .teacher-load-head { flex-direction: column; }
  .lective-total { width: 100%; }
  .load-totals, .load-rule-summary { width: 100%; grid-template-columns: 1fr; }
  .distribution-balance { flex-direction: column; gap: 6px; }
  .teaching-assignment-form { padding:18px; }
  .exception-buttons { flex-direction:column; }
  .exception-buttons .button { width:100%; }
}

.brand-logo { width: 42px; height: 42px; object-fit: contain; border-radius: 8px; background: #fff; padding: 3px; }
.user-menu { margin-left: auto; display: flex; align-items: center; gap: 10px; color: #fff; font-size: 12px; }
.user-menu strong, .user-menu small { display: block; max-width: 185px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-menu small { color: #bfd4ef; }
.user-menu details { position: relative; }
.user-menu summary { cursor: pointer; padding: 8px 11px; border: 1px solid #53749d; border-radius: 8px; list-style: none; }
.user-dropdown { position: absolute; z-index: 20; right: 0; top: 42px; width: 190px; padding: 7px; border-radius: 10px; background: #fff; box-shadow: 0 12px 30px #001a3b40; }
.user-dropdown a, .user-dropdown button { display: block; width: 100%; padding: 10px; border: 0; background: transparent; color: #17365d; text-align: left; text-decoration: none; cursor: pointer; font: inherit; }
.user-dropdown a:hover, .user-dropdown button:hover { background: #eaf2ff; border-radius: 7px; }
.auth-body { min-height: 100vh; display: grid; place-items: center; background: linear-gradient(135deg,#062b5d,#0b63ce); }
.auth-shell { width: min(920px,92vw); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 55px; }
.auth-brand { color: #fff; text-align: center; }.auth-brand img { width: 145px; max-height: 150px; object-fit: contain; border-radius: 18px; background:#fff; padding:8px; }.auth-brand h1 { color:#fff; margin-bottom:4px; }
.auth-card { padding: 30px; }.auth-card label { display:block; margin:16px 0; }.auth-card input { margin-top:7px; }.auth-card .button { width:100%; }
.profile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }.profile-option { padding:22px; text-align:left; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; }.profile-option:hover { border-color:var(--blue); box-shadow:0 8px 22px #0b63ce20; }.profile-option strong,.profile-option small { display:block; }.profile-option small { color:var(--muted); margin-top:5px; }
.filters-inline { display:flex; align-items:end; gap:14px; padding:18px; margin-bottom:18px; }.filters-inline label { flex:1; }.filters-inline select { margin-top:6px; }
.teacher-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:18px; }.teacher-summary>div { padding:20px; border-radius:12px; background:#0b3975; color:#fff; }.teacher-summary span,.teacher-summary strong { display:block; }.teacher-summary strong { margin-top:5px; font-size:25px; }
@media(max-width:1000px){.topbar nav{gap:10px}.user-menu>div{display:none}}@media(max-width:700px){.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.teacher-summary{grid-template-columns:1fr}.filters-inline{align-items:stretch;flex-direction:column}}
.teacher-detail-card { margin-bottom:20px; padding:0; overflow:hidden; }
.teacher-section-title { padding:22px 24px 18px; border-bottom:1px solid var(--line); background:linear-gradient(90deg,#fff,#f7faff); }
.teacher-section-title span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:1.4px; }
.teacher-section-title h2 { margin:4px 0 2px; font-size:21px; }
.teacher-section-title p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.teacher-detail-card table { margin:0; }
.number-column { width:82px; text-align:center !important; }
.teacher-nonlective-table th:first-child { min-width:390px; }
.teacher-nonlective-table td { vertical-align:middle; }
.teacher-nonlective-table .assigned-hour { background:#e8f2ff; color:#073b7c; font-weight:800; }
.teacher-nonlective-table .activity-total { background:#f4f7fb; color:#17365d; font-weight:800; }
.teacher-nonlective-table tfoot th { background:#0b3975; color:#fff; border-color:#31598a; }
.teacher-activity-comment { display:block; margin-top:6px; padding:7px 9px; border-left:3px solid #e8a322; border-radius:0 5px 5px 0; background:#fff7df; color:#6e4a08; line-height:1.35; }
.director-consultation-banner { display:flex; align-items:center; gap:14px; margin:18px 0; padding:17px 20px; border:1px solid #a9c4e6; border-radius:12px; background:linear-gradient(90deg,#eaf3ff,#f8fbff); color:#17365d; }
.director-consultation-banner p { margin:3px 0 0; color:#51657f; }
.director-consultation-icon { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:#0b63ce; color:#fff; font-weight:800; }
.role-director .teacher-load-card .compact-button, .role-director .teacher-load-card .danger-link { display:none !important; }
.teacher-load-card .danger-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:88px; min-height:34px; padding:7px 11px; border:1px solid #e2aaa6; border-radius:8px; background:#fff7f6; color:#b42318; font:700 11px 'DM Sans'; cursor:pointer; transition:.16s; }
.teacher-load-card .danger-link::before { content:'−'; display:grid; place-items:center; width:16px; height:16px; border-radius:50%; background:#f8d9d6; color:#a51d14; font-size:15px; line-height:1; }
.teacher-load-card .danger-link:hover { border-color:#b42318; background:#b42318; color:#fff; box-shadow:0 5px 12px #b4231828; transform:translateY(-1px); }
.teacher-load-card .danger-link:hover::before { background:#fff; color:#b42318; }
.teacher-load-card .danger-link:focus-visible { outline:3px solid #b4231830; outline-offset:2px; }
.teacher-load-head .compact-button { gap:7px; border-color:var(--blue); background:var(--blue); color:#fff; box-shadow:0 4px 10px #0d5bd72b; }
.teacher-load-head .compact-button::before { content:'+'; display:grid; place-items:center; width:17px; height:17px; border-radius:50%; background:#ffffff26; color:#fff; font-size:14px; line-height:1; }
.teacher-load-head .compact-button:hover { border-color:#084aaa!important; background:#084aaa!important; color:#fff!important; box-shadow:0 7px 15px #0d5bd738!important; }
.employment-locked .teacher-load-head .compact-button { display:none!important; }
.employment-permission { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px; border-bottom:1px solid var(--line); }
.employment-permission>div>strong,.employment-permission>div>small { display:block; }.employment-permission>div>small { margin-top:3px; color:inherit; opacity:.82; }
.employment-permission.is-locked { background:#fff5f4; color:#98251d; border-left:5px solid #c93329; }.employment-permission.is-locked>div>strong::before { content:'●'; margin-right:7px; font-size:8px; }
.employment-permission.is-authorized { background:#eaf8f3; color:#08765f; border-left:5px solid #159473; }.employment-permission.is-authorized>div>strong::before { content:'✓'; margin-right:7px; }
.employment-permission.is-authorized { display:none; }
.employment-permission form { flex:0 0 auto; margin:0; }.employment-permission input { display:none; }.employment-permission .button { min-height:38px; padding:9px 14px; font-size:12px; }
.danger-outline { border-color:#e0aaa5!important; color:#a9271e!important; background:#fff!important; }.danger-outline:hover { color:#fff!important; background:#b42318!important; border-color:#b42318!important; }
@media(max-width:650px){.employment-permission{align-items:stretch;flex-direction:column;padding:14px}.employment-permission form,.employment-permission .button{width:100%}}
.role-director .load-filters .filter-grid { grid-template-columns:1.35fr .8fr .65fr 1.2fr; }
.director-consultation-banner .button { margin-left:auto; white-space:nowrap; }

/* Encabezado institucional compacto */
.topbar { justify-content:flex-start; gap:0; }
.topbar .brand { flex:0 0 205px; min-width:205px; padding-right:24px; margin-right:24px; border-right:1px solid #ffffff24; line-height:1.15; }
.topbar .brand > span { display:block; font-size:15px; white-space:nowrap; }
.topbar nav { justify-content:flex-start; gap:22px; }
.topbar .user-menu { margin-left:auto; padding-left:20px; }

/* Acceso institucional */
.auth-body { min-height:100vh; display:block; background:var(--bg); }
.auth-shell { width:100%; min-height:100vh; display:grid; grid-template-columns:minmax(430px,1.08fr) minmax(430px,.92fr); gap:0; }
.auth-brand { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:55px 8vw; overflow:hidden; color:#14345c; text-align:center; background:var(--bg); }
.auth-brand::before,.auth-brand::after { content:""; position:absolute; border-radius:50%; border:1px solid #0b63ce18; }
.auth-brand::before,.auth-brand::after { display:none; }
.auth-brand::before { width:620px; height:620px; }
.auth-brand::after { width:470px; height:470px; }
.auth-emblem { position:relative; z-index:1; display:grid; place-items:center; width:320px; height:320px; margin-bottom:24px; border-radius:50%; background:#edf5f7; box-shadow:0 25px 60px #173a5c22, inset 0 0 0 9px #ffffffa8; }
.auth-emblem img { width:286px; height:286px; max-height:none; object-fit:contain; border-radius:50%; mix-blend-mode:multiply; }
.auth-institution,.auth-features { position:relative; z-index:1; }
.auth-institution > span,.auth-overline { color:#0b63ce; font-size:10px; font-weight:800; letter-spacing:1.8px; }
.auth-institution h1 { margin:7px 0 5px; color:#08285b; font:800 34px Manrope; }
.auth-institution p { margin:0; color:#526b84; font-size:15px; }
.auth-features { display:grid; grid-template-columns:1fr 1fr; width:min(520px,100%); gap:12px; margin-top:34px; }
.auth-features > div { padding:14px; border:1px solid #cbdde8; border-radius:11px; background:#ffffff8f; text-align:left; }
.auth-features b,.auth-features small { display:block; }.auth-features b { color:#173b65; font-size:12px; }.auth-features small { margin-top:3px; color:#6b7f91; font-size:10px; }
.auth-access-panel { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:55px 9%; background:var(--bg); border-left:0; }
.auth-access-panel .auth-card { width:min(430px,100%); padding:38px; border:1px solid #dce4ee; border-radius:18px; background:#fff; box-shadow:0 18px 45px #14305d18; }
.auth-card .auth-overline { display:block; text-align:center; }.auth-card h2 { margin:7px 0 5px; color:#102a4b; font:800 28px Manrope; text-align:center; }.auth-intro { margin:0 0 24px; color:#687a90; text-align:center; }
.auth-card label { display:block; margin:17px 0; color:#2c405b; font-size:12px; font-weight:700; }
.auth-input { display:flex; align-items:center; height:48px; margin-top:7px; border:1px solid #cdd8e5; border-radius:9px; background:#fbfcfe; transition:.16s; }
.auth-input:focus-within { border-color:#0d5bd7; box-shadow:0 0 0 3px #0d5bd717; background:#fff; }
.auth-input > span { width:42px; color:#7890ab; text-align:center; font-size:9px; }.auth-input input { height:46px; margin:0; padding-left:0; border:0; box-shadow:none!important; background:transparent; }
.password-visibility { display:grid; place-items:center; flex:0 0 44px; height:44px; margin-right:2px; padding:10px; border:0; border-radius:8px; background:transparent; color:#607892; cursor:pointer; }
.password-visibility:hover { background:#eaf2ff; color:var(--blue); }.password-visibility:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
.password-visibility svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.password-visibility .eye-closed { display:none; }.password-visibility.is-visible .eye-open { display:none; }.password-visibility.is-visible .eye-closed { display:block; }
.auth-submit { justify-content:space-between; width:100%; height:49px; margin-top:8px; padding:0 19px; }.auth-submit span { font-size:20px; }
.auth-help { margin:17px 0 0; color:#75869a; font-size:11px; text-align:center; }.auth-access-panel footer { margin-top:22px; color:#687a90; font-size:10px; letter-spacing:.4px; }
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:390px;padding:35px 20px}.auth-emblem{width:210px;height:210px;margin-bottom:12px}.auth-emblem img{width:186px;height:186px;max-height:none}.auth-institution h1{font-size:27px}.auth-features{display:none}.auth-access-panel{min-height:570px;padding:38px 20px}.topbar .brand{flex-basis:180px;min-width:180px;margin-right:14px;padding-right:14px}}

/* Navegación y adaptación integral para móviles */
.mobile-navigation { display:none; margin-left:auto; }
.mobile-navigation > summary { display:grid; align-content:center; gap:4px; width:44px; height:44px; padding:10px; border:1px solid #ffffff35; border-radius:9px; cursor:pointer; list-style:none; }
.mobile-navigation > summary::-webkit-details-marker { display:none; }
.mobile-navigation > summary span { display:block; width:22px; height:2px; border-radius:2px; background:#fff; }
.mobile-menu { position:absolute; z-index:100; top:64px; left:0; right:0; max-height:calc(100vh - 64px); padding:10px 16px 18px; overflow-y:auto; border-top:1px solid #ffffff24; background:#08285b; box-shadow:0 18px 35px #00142e55; }
.mobile-menu > a,.mobile-account > a,.mobile-account button { display:block; width:100%; padding:13px 12px; border:0; border-radius:8px; background:transparent; color:#d5e2f4; text-align:left; text-decoration:none; font:600 14px 'DM Sans'; }
.mobile-menu > a.active { background:#ffffff12; color:#fff; border-left:3px solid var(--cyan); }
.mobile-user { padding:9px 12px 14px; margin-bottom:7px; border-bottom:1px solid #ffffff20; }.mobile-user strong,.mobile-user small { display:block; }.mobile-user strong { color:#fff; }.mobile-user small { margin-top:3px; color:#abc0dc; }
.mobile-account { padding-top:8px; margin-top:8px; border-top:1px solid #ffffff20; }.mobile-account form { margin:0; }.mobile-account button { color:#ffc7c3; cursor:pointer; }

@media(max-width:850px){
  body { overflow-x:hidden; }
  .topbar { position:relative; z-index:50; height:64px; padding:0 16px; }
  .topbar .brand { flex:1 1 auto; min-width:0; margin:0; padding:0; border:0; }
  .topbar .brand > span { font-size:14px; }.topbar .brand small { font-size:9px; }
  .topbar .desktop-nav,.topbar .user-menu { display:none; }
  .mobile-navigation { display:block; }
  .container { width:100%; padding:26px 14px 55px; }
  .page-head { display:flex; align-items:stretch; gap:15px; margin-bottom:20px; }
  .page-head h1 { font-size:25px; line-height:1.17; }.page-head p { font-size:13px; }
  .head-actions,.report-actions { display:grid; grid-template-columns:1fr; width:100%; gap:8px; }
  .head-actions .button,.report-actions .button,.page-head > .button { width:100%; min-height:44px; }
  .card { border-radius:11px; }
  .filters-card,.teaching-assignment-form,.detail-card { padding:16px; }
  .filter-actions { align-items:stretch; flex-direction:column; gap:10px; }.filter-actions .button { width:100%; min-height:44px; }.filter-actions span { text-align:center; }
  input,select,textarea { font-size:16px; }
  .form-card { gap:12px; }.form-grid { gap:14px; }
  .form-actions { flex-direction:column-reverse; }.form-actions .button,.form-actions button { width:100%; min-height:45px; }
  .table-wrap { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
  .table-wrap table { min-width:720px; }
  .teacher-nonlective-table { min-width:650px!important; }.teacher-nonlective-table th:first-child { min-width:280px; }
  .teacher-load-head { padding:18px!important; }.teacher-load-head h2 { font-size:20px; word-break:break-word; }
  .load-totals { grid-template-columns:repeat(3,1fr); width:100%; }.load-totals > div { min-width:0; padding:11px 7px; }.load-totals strong { font-size:19px!important; }
  .professional-pagination-head { align-items:flex-start; flex-direction:column; }.professional-pagination-head nav { max-width:100%; overflow-x:auto; }
  .pagination-wrap { max-width:100%; overflow-x:auto; justify-content:flex-start; padding-bottom:4px; }
  .director-consultation-banner { align-items:flex-start; flex-wrap:wrap; }.director-consultation-banner .button { width:100%; margin-left:0; }
  .actions-select-cell { min-width:155px; }.action-select { min-height:42px; }
}
@media(max-width:600px){
  .page-head h1 { font-size:22px; }
  .teacher-summary { gap:8px; }.teacher-summary>div { padding:15px; }.teacher-summary strong { font-size:21px; }
  .teacher-section-title { padding:17px 16px 14px; }.teacher-section-title h2 { font-size:18px; }
  .load-totals { grid-template-columns:1fr; }.load-totals > div { text-align:center; }
  .detail-card dl { gap:13px; }
  .auth-shell { display:block; }.auth-brand { min-height:auto; padding:25px 15px 18px; }.auth-emblem { width:145px; height:145px; }.auth-emblem img { width:128px; height:128px; }.auth-institution h1 { font-size:23px; }.auth-institution p { font-size:12px; }
  .auth-access-panel { min-height:auto; padding:18px 14px 35px; }.auth-access-panel .auth-card { padding:25px 20px; }.auth-card h2 { font-size:24px; }
}
.profile-modal-stage { min-height:calc(100vh - 210px); display:grid; place-items:center; }
.profile-modal-card { width:min(860px,100%); padding:32px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 22px 55px #14305d18; }
.profile-modal-head { max-width:650px; margin:0 auto 25px; text-align:center; }.profile-modal-head h1 { margin:7px 0 6px; font:800 28px Manrope; }.profile-modal-head p { margin:0; color:var(--muted); line-height:1.5; }
.profile-access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.profile-access-option { display:grid; grid-template-columns:50px 1fr; grid-template-rows:1fr auto; gap:3px 14px; min-width:0; padding:20px; border:1px solid #dce5f0; border-radius:13px; background:#fbfdff; transition:.18s; }
.profile-access-option:hover { border-color:#8db6ed; background:#f5f9ff; box-shadow:0 10px 24px #0d5bd713; transform:translateY(-2px); }
.profile-access-icon { grid-row:1/3; display:grid; place-items:center; align-self:start; width:48px; height:48px; border-radius:12px; background:#e7f0ff; color:#0b58bd; font-size:22px; font-weight:800; }
.profile-access-copy h2 { margin:1px 0 4px; font:700 18px Manrope; }.profile-access-copy p { min-height:39px; margin:0; color:#66778d; font-size:12px; line-height:1.4; }.profile-access-copy small { display:block; margin-top:7px; color:#0b58bd; font-size:10px; font-weight:700; }
.profile-access-option .button { grid-column:2; justify-content:space-between; width:145px; margin-top:14px; padding:10px 14px; }.profile-access-option .button span { font-size:17px; }
@media(max-width:700px){.profile-modal-stage{min-height:auto}.profile-modal-card{padding:22px 15px;border-radius:14px}.profile-modal-head h1{font-size:23px}.profile-access-grid{grid-template-columns:1fr}.profile-access-option{padding:16px;grid-template-columns:43px 1fr}.profile-access-icon{width:42px;height:42px}.profile-access-copy p{min-height:0}.profile-access-option .button{width:100%;grid-column:1/-1;margin-top:12px}}
.access-detail-card{display:flex;align-items:center;justify-content:space-between;gap:24px}.access-detail-card h2{margin-bottom:5px}.access-detail-card p{margin:0;color:var(--muted)}.access-detail-card small{display:block;margin-top:7px;color:var(--muted)}.access-detail-card form{flex:0 0 auto}.temporary-password-alert{background:#fff8d8;border:1px solid #ead578;color:#533f00}.temporary-password-alert code{display:block;width:max-content;margin:10px 0;padding:9px 13px;border-radius:7px;background:#fff;color:#08285b;font:800 20px monospace;letter-spacing:1px}.temporary-password-alert p{margin:0;font-size:12px}@media(max-width:700px){.access-detail-card{align-items:stretch;flex-direction:column}.access-detail-card .button{width:100%}}
