:root{--navy:#062a50;--navy2:#0b3a68;--gold:#d5a93f;--gold-soft:#fbf5e6;--ink:#10233d;--muted:#66758a;--line:#dce3ea;--bg:#f4f7fa;--ok:#397743;--error:#a33232}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:218px;padding:28px 18px;background:linear-gradient(160deg,#041e3d,var(--navy2));color:white}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 32px;letter-spacing:.1em}.brand-mark{width:47px;height:47px;display:block;flex:none}.sidebar nav{display:grid;gap:7px}.nav{min-height:52px;padding:0 16px;display:flex;align-items:center;gap:14px;border:0;border-radius:9px;background:transparent;color:#d8e2ed;text-align:left;cursor:pointer}.nav.active,.nav:hover{background:#ffffff18;color:white;box-shadow:inset 3px 0 var(--gold)}.workspace{margin-left:218px;min-height:100vh}.topbar{height:88px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.product{display:flex;align-items:center;gap:16px;font-size:23px;font-weight:800}.product i{width:4px;height:36px;background:var(--gold)}.profile{display:flex;align-items:center;gap:10px}.profile>span{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:white;font-size:12px}.profile div{display:grid}.profile small{margin-top:3px;color:var(--muted)}.content{width:min(1120px,calc(100% - 70px));margin:auto;padding:48px 0}.heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.eyebrow{margin:0 0 7px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}h1{margin:0;font-size:43px;letter-spacing:-.03em}.heading p:last-child{color:var(--muted)}.button{min-height:46px;padding:0 19px;border:1px solid var(--navy);border-radius:9px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:white;font-weight:750;cursor:pointer}.button:hover,.generate:hover{filter:brightness(.94);transform:translateY(-1px)}.button.secondary{background:white;color:var(--navy)}.project-card{margin-top:28px;padding:30px 34px;display:grid;grid-template-columns:94px 1fr auto;align-items:center;gap:26px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 10px 30px #102b4810}.project-icon{width:90px;height:90px;display:grid;place-items:center;border-radius:50%;background:var(--gold-soft);color:var(--navy);font-size:37px}.project-card h2{margin:10px 0 5px}.project-card p{margin:0;color:var(--muted)}.pill{padding:6px 10px;border-radius:99px;background:var(--gold-soft);color:#896410;font-size:12px;font-weight:800}.overlay{position:fixed;inset:0;z-index:20;padding:24px;display:grid;place-items:center;background:#031a32bc;backdrop-filter:blur(5px)}.hidden{display:none!important}.wizard{width:min(100%);max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border-radius:20px;background:white;box-shadow:0 32px 90px #0006}.wizard-header{padding:25px 32px 19px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.wizard-header h2{margin:0;font-size:28px}.icon-button{width:40px;height:40px;border:0;border-radius:50%;background:#edf1f5;color:var(--navy);font-size:28px;cursor:pointer}.steps{padding:18px 42px;display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line);background:#f8fafb}.steps span{position:relative;display:grid;justify-items:center;gap:6px;color:#8793a0;font-size:11px;font-weight:700}.steps b{width:32px;height:32px;display:grid;place-items:center;border:2px solid #ccd4dc;border-radius:50%;background:#f8fafb;font-size:13px}.steps span.active{color:var(--navy)}.steps span.active b{border-color:var(--gold);background:var(--gold-soft)}#project-form{overflow:auto}.panel{display:none;padding:27px 34px}.panel.active{display:block}.panel-title{display:flex;align-items:center;gap:15px;margin-bottom:23px}.panel-title>b{color:#d2ab4f;font:800 34px Georgia}.panel-title h3{margin:0;font-size:22px}.panel-title p{margin:4px 0 0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 20px}.grid label,.bibliography-grid label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}input,select,textarea{width:100%;padding:12px;border:1px solid #cbd5df;border-radius:8px;background:white;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}fieldset{margin:0;padding:11px 14px;display:flex;align-items:center;gap:18px;border:1px solid #cbd5df;border-radius:8px}legend{padding:0 5px;color:var(--navy);font-size:13px;font-weight:750}.choice{display:flex!important;align-items:center;gap:7px}.choice input,.confirm input{width:auto}.dropzone{min-height:150px;padding:24px;display:grid;place-items:center;align-content:center;gap:8px;border:2px dashed #aebbc8;border-radius:13px;background:#f8fafc;text-align:center;cursor:pointer}.dropzone.drag{border-color:var(--gold);background:var(--gold-soft)}.dropzone input{display:none}.dropzone span{color:var(--muted);font-size:13px}.requirements{margin-top:18px;padding:17px;border:1px solid var(--line);border-radius:11px}.requirements>strong{display:block;margin-bottom:12px}.requirements div{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.requirements span,.criteria span{padding:10px;border-radius:7px;background:#eef2f6;font-size:12px;text-align:center}.requirements span.ok{background:#eaf5eb;color:var(--ok)}.validation{margin-top:14px;padding:13px;border-radius:8px;background:#eaf5eb;color:var(--ok);font-weight:700;white-space:pre-line}.validation.error{background:#faebeb;color:var(--error)}.bibliography-grid{display:grid;gap:16px}.bibliography-grid textarea{min-height:92px;resize:vertical}.notice{padding:12px 14px;border-left:4px solid var(--gold);background:var(--gold-soft);color:#725616}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.summary div{padding:13px;border:1px solid var(--line);border-radius:9px}.summary small{display:block;margin-bottom:5px;color:var(--muted)}.confirm{margin-top:20px;display:flex;align-items:center;gap:9px}.criteria{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.criteria span{background:#eaf5eb;color:var(--ok);text-align:left}.generate{width:100%;min-height:50px;margin-top:20px;border:0;border-radius:9px;background:var(--gold);color:#15283e;font-weight:800;cursor:pointer}.generation{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd;white-space:pre-wrap;line-height:1.6}.form-message{margin:0 34px 14px;padding:11px;border-radius:7px;background:#faebeb;color:var(--error)}.wizard-actions{position:sticky;bottom:0;padding:17px 34px;display:grid;grid-template-columns:auto 1fr auto;border-top:1px solid var(--line);background:white}
@media(max-width:800px){.sidebar{position:static;width:auto;padding:14px}.brand{padding:0}.sidebar nav{display:none}.workspace{margin:0}.topbar{padding:0 18px}.profile div{display:none}.content{width:calc(100% - 30px);padding:28px 0}.heading,.project-card{align-items:stretch}.project-card{grid-template-columns:70px 1fr}.project-card .button{grid-column:1/-1}.project-icon{width:66px;height:66px}.overlay{padding:0}.wizard{max-height:100vh;height:100vh;border-radius:0}.steps{padding:14px 8px}.steps span{font-size:0}.steps span b{font-size:12px}.grid,.summary,.criteria{grid-template-columns:1fr}.requirements div{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.product{font-size:17px}.heading{display:grid}h1{font-size:34px}.project-card{padding:21px}.wizard-header,.panel{padding-left:20px;padding-right:20px}.wizard-actions{padding:14px 20px}}

.weekly-review{display:grid;gap:14px;margin-top:22px}.review-status{padding:10px 14px;border:1px solid #e4c46b;border-radius:10px;background:#fff8df;color:#654d08;font-weight:800}.review-status.approved{border-color:#8cc9a5;background:#edf9f1;color:#14532d}.content-editor-label,.adjustment-label{color:var(--navy);font-size:13px;font-weight:800}.content-editor{min-height:440px;white-space:pre-wrap;resize:vertical}.editor-help{margin:-6px 0 4px;color:var(--muted);font-size:.86rem}.adjustment-instructions{min-height:110px;resize:vertical}.review-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.button.approve{border-color:#26734d;background:#26734d}.button.approve:hover{background:#1e5c3d}.generation-error{margin-top:16px;padding:12px 14px;border:1px solid #ef9a9a;border-radius:10px;background:#fff1f1;color:#8a1c1c}.weekly-review.hidden,.generation-error.hidden{display:none!important}
@media(max-width:700px){.review-actions{align-items:stretch;flex-direction:column}.review-actions .button{width:100%}.content-editor{min-height:320px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.projects-panel{margin-top:28px;background:#fff;border:1px solid #d7e0ea;border-radius:18px;padding:28px;box-shadow:0 12px 30px rgba(15,42,72,.06)}
.projects-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}
.projects-toolbar h2{margin:0 0 4px;color:#102640;font-size:1.45rem}
.projects-toolbar p{margin:0;color:#65758b}
.project-search{width:min(100%,440px)}
.project-search input{width:100%;padding:13px 16px 13px 44px;border:1px solid #bdc9d7;border-radius:10px;background:#fff;color:#102640}
.project-search input:focus{outline:3px solid rgba(221,169,47,.25);border-color:#b88616}
.projects-list{display:grid;gap:14px}
.saved-project{display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid #dbe3ec;border-radius:14px;padding:20px;transition:border-color .2s,box-shadow .2s}
.saved-project:hover{border-color:#aebed0;box-shadow:0 8px 22px rgba(15,42,72,.07)}
.saved-project-main{min-width:0;flex:1}
.saved-project-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.saved-project h3{margin:0;color:#102640;font-size:1.15rem}
.project-code{margin:7px 0 14px;color:#596c83}
.saved-project dl{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;margin:0}
.saved-project dl div{min-width:0}
.saved-project dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#78889b}
.saved-project dd{margin:3px 0 0;color:#253d58;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:.74rem;font-weight:700}
.status-in_progress{background:#fff3d4;color:#805b00}
.status-completed{background:#ddf5e8;color:#17653d}
.status-draft{background:#e8edf3;color:#4c6076}
.projects-empty{display:flex;flex-direction:column;align-items:center;gap:5px;padding:42px 20px;text-align:center;color:#65758b;border:1px dashed #c9d4df;border-radius:12px}
.projects-empty strong{color:#243b55}
.projects-empty.error{color:#9c2d2d}
@media(max-width:900px){.projects-toolbar,.saved-project{align-items:stretch;flex-direction:column}.project-search{width:100%}.saved-project dl{grid-template-columns:repeat(2,minmax(0,1fr))}.saved-project .button{align-self:flex-start}}
@media(max-width:560px){.saved-project dl{grid-template-columns:1fr}.projects-panel{padding:18px}}
.auth-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#041e3d,#0b3a68)}
.password-layer{z-index:120;background:#031a32d9;backdrop-filter:blur(5px)}
.password-layer .auth-card>p:not(.eyebrow){color:var(--muted);line-height:1.5}
.temporary-password-field{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}
.temporary-password-field textarea{min-height:120px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.45}
.copy-message{margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#eaf5eb;color:var(--ok);font-weight:700}
.auth-card{width:min(560px,100%);padding:34px;border-radius:20px;background:#fff;box-shadow:0 30px 80px #0007}
.auth-card h1{font-size:32px;margin-bottom:24px}
.auth-view-title{margin:0 0 22px;padding:0 0 12px;border-bottom:3px solid var(--gold);color:var(--navy);font-size:20px;text-align:center}
.auth-form{display:grid;gap:16px}.auth-form label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}
.auth-form .button{width:100%;margin-top:4px}.auth-help{margin:0;color:var(--muted);line-height:1.5}.auth-text-button{justify-self:center;padding:4px 8px;border:0;background:transparent;color:var(--navy);font:inherit;font-weight:750;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.auth-text-button:hover{color:var(--blue)}.auth-message{padding:11px;border-radius:8px;background:#faebeb;color:var(--error)}.auth-message.success{background:#e8f7ef;color:#12623a}
.logout{margin-left:10px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px 10px;color:var(--navy);cursor:pointer}
.admin-tabs{display:flex;gap:8px;margin:28px 0 18px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:auto}
.admin-tabs button{padding:11px 16px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:800;white-space:nowrap;cursor:pointer}
.admin-tabs button.active{background:var(--navy);color:#fff}
.admin-panel{display:none;gap:18px}.admin-panel.active{display:grid}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.admin-card{display:grid;gap:15px;padding:24px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 8px 24px #102b480b}
.admin-card h2{margin:0;color:var(--navy);font-size:1.25rem}.admin-card p{margin:0;color:var(--muted)}
.admin-card [data-catalog-field].hidden{display:none}
#project-form select[aria-readonly="true"],#project-form input[readonly]{background:#f3f6f9;color:#42566b;cursor:not-allowed}
.admin-card>label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}.admin-card textarea{min-height:190px;resize:vertical}
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.table-toolbar input{max-width:390px}
.table-scroll{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.admin-table th{color:var(--navy);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.admin-table td small{display:block;margin-top:4px;color:var(--muted)}
.table-actions{display:flex;flex-wrap:wrap;gap:6px}.table-actions button{padding:7px 9px;border:1px solid #bcc9d7;border-radius:7px;background:#fff;color:var(--navy);cursor:pointer}
.assignment-list{display:grid;gap:9px}.assignment-list article{display:grid;grid-template-columns:1.4fr 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px}.assignment-list article span:not(.status-badge){color:var(--muted)}
.report-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.report-cards article{padding:22px;border:1px solid var(--line);border-radius:13px;background:#fff}.report-cards strong{display:block;color:var(--navy);font-size:2rem}.report-cards span{color:var(--muted)}
.admin-message{position:fixed;right:24px;bottom:24px;z-index:80;max-width:560px;padding:16px 18px;border-radius:10px;background:#eaf5eb;color:var(--ok);box-shadow:0 12px 35px #0003;white-space:pre-wrap}.admin-message.error{background:#faebeb;color:var(--error)}

input[readonly]{background:#f1f4f7;color:#405269;cursor:not-allowed}.academic-profile-sections{display:grid;gap:16px;margin-top:22px}.academic-profile-card{padding:18px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc}.academic-profile-card h4{margin:0;color:var(--navy);font-size:1rem}.academic-profile-card p{margin:6px 0 13px;color:var(--muted);font-size:.84rem}.list-entry-control{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.list-entry-control .button{min-height:43px}.entered-values{display:grid;gap:8px;margin:13px 0 0;padding:0;list-style:none}.entered-values:empty::before{content:"No se han agregado elementos.";color:var(--muted);font-size:.84rem}.entered-values li{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;padding:10px 12px;border:1px solid #d8e1e9;border-radius:9px;background:#fff;line-height:1.4}.entered-values button{padding:4px 7px;border:1px solid #c7d2dd;border-radius:6px;background:#fff;color:var(--navy);cursor:pointer}.assigned-role{font-weight:700;color:var(--navy)}

@media(max-width:520px){.list-entry-control{grid-template-columns:1fr}.list-entry-control .button{width:100%}}
.form-actions,.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-actions button{padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--navy);cursor:pointer}.checklist-items{display:grid;gap:10px;margin:16px 0}.checklist-row{display:grid;grid-template-columns:minmax(240px,1fr) 180px minmax(220px,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:10px}.checklist-row strong{display:block;color:var(--navy)}.checklist-row small{color:var(--muted)}#checklist-form textarea{min-height:90px}
.indicator-editor{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.indicator-editor h3{margin-top:0;color:var(--navy)}.score-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:16px 0;padding:14px 16px;border-radius:10px;background:#eef6f4;color:var(--navy)}.score-summary strong{font-size:1.05rem}.score-summary span{color:var(--muted)}
.impact-result{padding:16px;border:1px solid #d9c47a;border-radius:11px;background:#fffaf0;color:var(--ink)}.impact-result h3,.impact-result h4{margin:0 0 9px;color:var(--navy)}.impact-result h4{margin-top:14px}.impact-result ul{margin:6px 0 0;padding-left:20px}.impact-result li{margin:5px 0}.button:disabled{cursor:not-allowed;opacity:.5;transform:none}
@media(max-width:900px){.admin-grid,.report-cards{grid-template-columns:1fr 1fr}.assignment-list article{grid-template-columns:1fr}.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar input{max-width:none}}
@media(max-width:620px){.admin-grid,.report-cards{grid-template-columns:1fr}.checklist-row{grid-template-columns:1fr}}
.institutional-data-details{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc}.institutional-data-details h4{margin:18px 0 7px;color:var(--navy)}.institutional-data-details p,.institutional-data-details ul{margin:0;color:#43566c;line-height:1.5}.outcome-mapping-table{min-width:1200px}.outcome-mapping-table th:first-child{min-width:250px}.outcome-mapping-table th:not(:first-child){min-width:190px}.outcome-mapping-table select{min-width:180px}.teacher-profile-grid{margin-top:24px}.teacher-profile-grid textarea{min-height:100px;resize:vertical}.teacher-profile-grid .wide{grid-column:1/-1}.plan-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.plan-actions .button{flex:1}.plan-methodology-card{display:grid;gap:12px;margin:12px 0}.plan-methodology-card h5{margin:0;color:var(--navy);font-size:.95rem}.plan-methodology-card label{display:grid;gap:6px;color:var(--navy);font-size:.8rem;font-weight:750}.plan-methodology-card textarea{min-height:90px;resize:vertical}#teaching-plan-result{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}#teaching-plan-summary p{line-height:1.5}@media(max-width:700px){.teacher-profile-grid{grid-template-columns:1fr}.teacher-profile-grid .wide{grid-column:auto}.plan-actions{flex-direction:column}}

/* v31: captura estructurada de oferta academica */
.structured-field { display: flex; flex-direction: column; gap: .55rem; min-width: 0; }
.structured-field.full-width { grid-column: 1 / -1; }
.field-label { font-weight: 700; color: var(--navy, #0b2d52); }
.structured-storage { display: none !important; }
.structured-add-row { display: grid; grid-template-columns: 1fr auto; gap: .55rem; align-items: center; }
.button.compact { padding: .65rem .9rem; white-space: nowrap; }
.structured-list, .unit-list { display: flex; flex-direction: column; gap: .5rem; }
.structured-item { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: start; padding: .65rem .75rem; border: 1px solid #d8e2ee; border-radius: .7rem; background: #f8fafc; }
.structured-item-index { font-weight: 700; color: #486581; }
.structured-item-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.structured-item-actions { display: flex; gap: .35rem; flex-wrap: wrap; }
.structured-item-actions button, .unit-actions button { border: 0; background: transparent; color: #0b66c3; font-weight: 600; cursor: pointer; padding: .2rem .35rem; }
.structured-item-actions button.danger, .unit-actions button.danger { color: #b42318; }
.multi-select { border: 1px solid #c9d6e4; border-radius: .7rem; background: #fff; }
.multi-select summary { cursor: pointer; padding: .75rem .9rem; font-weight: 600; }
.multi-select-options { border-top: 1px solid #e2e8f0; padding: .45rem .7rem; display: grid; gap: .3rem; }
.multi-select-options label { display: flex; gap: .55rem; align-items: flex-start; padding: .4rem .2rem; font-weight: 500; }
.multi-select-options input { margin-top: .2rem; }
.selected-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.selected-tag { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border-radius: 999px; background: #edf5ff; color: #164e87; font-size: .9rem; }
.selected-tag button { border: 0; background: transparent; color: inherit; cursor: pointer; font-weight: 700; }
.unit-card { border: 1px solid #ccd9e8; border-radius: .8rem; padding: .8rem; background: #fff; display: grid; gap: .65rem; }
.unit-header { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; }
.unit-header strong { color: #0b2d52; }
.unit-actions { display: flex; gap: .35rem; flex-wrap: wrap; }
.unit-content-list { margin: 0; padding-left: 1.35rem; display: grid; gap: .35rem; }
.unit-content-row { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: center; }
.unit-content-row input { min-width: 0; }
@media (max-width: 720px) {
  .structured-add-row, .unit-content-row { grid-template-columns: 1fr; }
  .structured-item { grid-template-columns: auto 1fr; }
  .structured-item-actions { grid-column: 2; }
  .unit-header { flex-direction: column; }
}

.catalog-admin-grid{grid-template-columns:minmax(0,1fr)}
.catalog-help{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f7faff}
.catalog-help strong{color:var(--navy);font-size:.95rem}
.catalog-help p{font-size:.9rem;line-height:1.45}

/* v31: selector UTPL alineado y jerarquia curricular de tres niveles */
.multi-select-options { grid-template-columns: 1fr; }
.multi-select-options label {
  display: grid !important;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  gap: .65rem;
  align-items: start;
  justify-content: start;
  width: 100%;
  margin: 0;
  text-align: left;
}
.multi-select-options label input[type="checkbox"] {
  width: 1rem !important;
  height: 1rem !important;
  margin: .15rem 0 0 !important;
  justify-self: start;
}
.multi-select-options label span { min-width: 0; line-height: 1.35; }
.unit-content-list { margin: 0; padding: 0; display: grid; gap: .65rem; }
.content-card { border-left: 3px solid #d6e2ef; padding: .15rem 0 .15rem .8rem; display: grid; gap: .55rem; }
.content-line, .subcontent-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .5rem; align-items: start; }
.content-number { font-weight: 750; color: #486581; white-space: nowrap; }
.content-text { overflow-wrap: anywhere; }
.subcontent-list { margin-left: 1.25rem; display: grid; gap: .4rem; }
.subcontent-line { padding: .3rem 0; }
.subcontent-empty { margin: 0; }
.subcontent-add-row { margin-left: 1.25rem; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; align-items: center; }
@media (max-width: 720px) {
  .content-line, .subcontent-line { grid-template-columns: auto minmax(0,1fr); }
  .content-line .unit-actions, .subcontent-line .unit-actions { grid-column: 2; }
  .subcontent-add-row { grid-template-columns: 1fr; margin-left: 0; }
  .subcontent-list { margin-left: .5rem; }
}

/* v31: revisión jerárquica de unidades y relaciones de contribución */
.institutional-units{display:grid;gap:18px;margin-top:8px}.institutional-unit{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.institutional-unit h5{margin:0 0 10px;color:var(--navy);font-size:1rem}.institutional-unit ol{margin:0;padding-left:24px;list-style:none}.institutional-unit ol ol{margin-top:6px;padding-left:28px}.institutional-unit li{margin:7px 0;color:#43566c;line-height:1.45}.unit-number{font-weight:800;color:var(--navy)}.outcome-mapping-table select:not([multiple]){height:46px;min-height:46px;white-space:normal}.outcome-mapping-table td{vertical-align:top}.outcome-mapping-table td select{width:100%;max-width:100%}

/* v31: controles visibles para relaciones de contribución */
.outcome-mapping-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px}.outcome-mapping-toolbar .editor-help{margin:0;flex:1;min-width:260px}.outcome-mapping-table th:last-child,.outcome-mapping-table td:last-child{width:110px;min-width:110px}.mapping-delete{white-space:nowrap;padding:.65rem .8rem}


/* v31: modal inmediato para validar la matriz de contribución */
.validation-modal-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(7,24,43,.58);backdrop-filter:blur(2px)}
.validation-modal-overlay.hidden{display:none}
.validation-modal-card{width:min(680px,100%);max-height:min(78vh,720px);overflow:auto;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(3,18,33,.28)}
.validation-modal-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:1.35rem;font-weight:850;background:#fff2f0;color:#b42318;border:1px solid #ffd5d0}
.validation-modal-content h2{margin:.1rem 0 .8rem;color:var(--navy)}
.validation-modal-body{display:grid;gap:14px}
.validation-modal-section{padding:13px 15px;border:1px solid #e0e8f0;border-radius:12px;background:#f8fafc}
.validation-modal-section h3{margin:0 0 8px;font-size:1rem;color:#21364d}
.validation-modal-section ul{margin:0;padding-left:22px;display:grid;gap:6px;color:#43566c;line-height:1.45}
.validation-modal-actions{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:640px){.validation-modal-card{grid-template-columns:1fr;padding:18px}.validation-modal-icon{width:38px;height:38px}}

.scope-picker details{position:relative}
.scope-picker summary{list-style:none;cursor:pointer;padding:11px 38px 11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:500;min-height:20px;position:relative}
.scope-picker summary::-webkit-details-marker{display:none}
.scope-picker summary::after{content:"⌄";position:absolute;right:13px;top:8px;font-size:18px;color:var(--muted)}
.scope-picker details[open] summary::after{content:"⌃"}
.scope-picker-menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 5px);max-height:240px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 30px #102b4822}
.scope-picker-menu label{display:flex;align-items:flex-start;gap:9px;padding:8px;border-radius:7px;color:var(--navy);font-size:13px;font-weight:600;cursor:pointer}
.scope-picker-menu label:hover{background:#f3f7fa}
.scope-picker-menu input{width:auto;margin-top:2px}

/* v31: alineación de opciones booleanas en Conocimiento e IA */
.admin-card > label.confirm{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  min-height:40px;
  padding:6px 0;
  margin:0;
  text-align:left;
  cursor:pointer;
}
.admin-card > label.confirm input[type="checkbox"]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:0;
  padding:0;
}


.impact-conflict-list { display: grid; gap: 1rem; margin: .75rem 0 1rem; }
.impact-conflict { border: 1px solid #d7e1ec; border-radius: 14px; padding: 1rem 1.1rem; background: #fff; }
.impact-conflict h5 { margin: 0 0 .65rem; font-size: 1rem; color: #0b3158; }
.impact-conflict p { margin: .45rem 0; }
.impact-decision { border: 1px solid #c9d8e8; border-radius: 14px; padding: 1rem 1.1rem; margin: 1rem 0; display: grid; gap: .65rem; }
.impact-decision legend { padding: 0 .35rem; font-weight: 700; color: #0b3158; }
.impact-decision .confirm { display: flex; align-items: center; gap: .65rem; margin: 0; }
.impact-decision .confirm input { width: auto; min-width: 18px; }

/* v31: formulario único de Conocimiento e IA */
.knowledge-config-card{max-width:none}
.knowledge-config-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:22px;align-items:end;margin-bottom:18px}
.knowledge-config-header h2{margin-bottom:6px}
.knowledge-kind-select{margin:0}
.knowledge-context-note{display:grid;gap:4px;padding:14px 16px;margin-bottom:18px;border:1px solid #d9e3ec;border-radius:12px;background:#f7fafc;color:var(--muted)}
.knowledge-context-note strong{color:var(--navy);font-size:1rem}
.knowledge-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:4px 0 16px}
.knowledge-options .confirm{display:flex;align-items:center;gap:10px;min-height:38px;margin:0;padding:4px 0;cursor:pointer}
.knowledge-options .confirm input{flex:0 0 auto;width:18px;height:18px;margin:0}
[data-shared-scope]{margin:8px 0 18px;padding:16px;border:1px solid #dce5ed;border-radius:12px;background:#fbfcfd}
[data-shared-scope] h3{margin:0 0 6px}
[data-shared-scope].scope-disabled .grid{opacity:.45;pointer-events:none}
[data-shared-scope].scope-disabled::after{content:"Se aplicará a todos los contenidos.";display:block;margin-top:8px;color:var(--muted);font-size:.9rem}
@media(max-width:900px){.knowledge-config-header{grid-template-columns:1fr}.knowledge-options{grid-template-columns:1fr}}

/* v31: bibliografia estructurada */
.bibliography-guide-importance{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.bibliography-guide-importance h4{margin:0;color:var(--navy);font-size:16px}
.bibliography-guide-importance p{margin:10px 0 5px;padding:12px;border:1px dashed #cbd5df;border-radius:9px;background:#fff;color:var(--muted);line-height:1.5;white-space:pre-wrap}
.bibliography-guide-importance p.complete{border-style:solid;color:var(--ink)}
.bibliography-guide-importance small{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.bibliography-guide-importance .button{white-space:nowrap}
.bibliography-section{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.bibliography-section-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.bibliography-section-header h4{margin:0;color:var(--navy);font-size:16px}
.bibliography-section-header p{margin:4px 0 0;color:var(--muted);font-size:13px}
.bibliography-entry-list{display:grid;gap:10px;margin-top:13px}
.bibliography-empty{padding:13px;border:1px dashed #cbd5df;border-radius:9px;color:var(--muted);font-size:13px}
.bibliography-entry-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px;border:1px solid #d7e0e8;border-radius:10px;background:#fff}
.bibliography-entry-card p{margin:0;line-height:1.45;color:var(--ink)}
.bibliography-entry-card small{display:block;margin-top:6px;color:var(--muted);word-break:break-word}
.bibliography-entry-actions{display:flex;gap:7px}
.bibliography-entry-actions button{min-height:36px;padding:0 11px}
.bibliography-entry-modal-card{width:min(680px,100%);max-height:min(84vh,760px);overflow:auto;padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(3,18,33,.28)}
.bibliography-entry-modal-header{display:flex;justify-content:space-between;align-items:start;gap:16px}
.bibliography-entry-modal-header h2{margin:0;color:var(--navy)}
.bibliography-entry-form{display:grid;gap:15px;margin-top:20px}
.bibliography-entry-form label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}
.bibliography-entry-form textarea{min-height:100px}
.bibliography-entry-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
@media(max-width:640px){
  .bibliography-guide-importance,.bibliography-section-header,.bibliography-entry-card{grid-template-columns:1fr;display:grid}
  .bibliography-entry-actions{justify-content:flex-start}
  .bibliography-guide-importance .button,.bibliography-section-header .button{width:100%}
}

/* v31: adaptación pedagógica de documentos existentes 16 -> 8 semanas */
.workflow-mode-gate,.adaptation-source-panel{padding:24px 28px 30px;background:#f8fbfd;border-bottom:1px solid var(--line)}
.workflow-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.workflow-mode-card{display:grid;gap:10px;min-height:160px;padding:22px;text-align:left;border:2px solid #d8e3ed;border-radius:16px;background:#fff;color:var(--navy);cursor:pointer;transition:.18s ease;box-shadow:0 8px 24px rgba(12,44,76,.06)}
.workflow-mode-card:hover,.workflow-mode-card:focus-visible{border-color:#1f78c8;transform:translateY(-2px);box-shadow:0 14px 30px rgba(12,44,76,.12);outline:none}
.workflow-mode-card strong{font-size:1.08rem;line-height:1.25}
.workflow-mode-card span{color:var(--muted);line-height:1.55;font-weight:500}
.workflow-main{min-width:0}
.workflow-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;background:#f4f7fa;border-bottom:1px solid var(--line)}
.workflow-selection-summary>div{display:grid;gap:2px}.workflow-selection-summary span{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.workflow-selection-summary strong{color:var(--navy);font-size:.92rem}
.workflow-selection-summary .button{padding:8px 13px;font-size:.78rem}
.adaptation-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.adaptation-upload-card{display:grid;gap:14px;padding:20px;border:1px solid #d8e3ed;border-radius:15px;background:#fff}
.adaptation-upload-card h4{margin:4px 0 0;color:var(--navy);font-size:1.05rem}
.adaptation-upload-card label{display:grid;gap:7px;color:var(--navy);font-weight:750;font-size:.86rem}
.adaptation-document-label{display:inline-flex;width:max-content;padding:4px 9px;border-radius:999px;background:#e8f3ff;color:#0b5aa7;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.adaptation-document-label.optional{background:#f3f5f7;color:#596c80}
.adaptation-upload-summary{min-height:54px;padding:12px;border:1px dashed #c9d6e2;border-radius:10px;color:var(--muted);line-height:1.45}
.adaptation-upload-summary.complete{border-style:solid;background:#f4fbf7;color:#244e37}
.adaptation-upload-summary a{color:#0b5aa7;font-weight:750}
.adaptation-source-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px}
.adaptation-source-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 28px 0;padding:14px 16px;border:1px solid #cfe0ee;border-radius:12px;background:#f1f8fd}
.adaptation-source-banner>div{display:grid;gap:3px}.adaptation-source-banner strong{color:var(--navy)}.adaptation-source-banner span{color:var(--muted);font-size:.9rem}
.adaptation-workspace{display:grid;gap:16px;margin:0 0 22px;padding:18px;border:1px solid #d3e0eb;border-radius:15px;background:#f8fbfd}
.adaptation-workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.adaptation-workspace-header h4{margin:2px 0 6px;color:var(--navy);font-size:1.15rem}.adaptation-workspace-header p{margin:0;color:var(--muted);line-height:1.5}
.adaptation-status{padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #dbe5ed;color:var(--muted);line-height:1.45}
.adaptation-status.approved{background:#f1fbf5;border-color:#b9dfc8;color:#23543a}.adaptation-status.review{background:#fffaf0;border-color:#ead39a;color:#6b4d08}
.adaptation-proposal{display:grid;gap:16px}
.adaptation-proposal-summary{display:grid;gap:12px;padding:16px;border:1px solid #dbe5ed;border-radius:12px;background:#fff}
.adaptation-proposal-summary h5{margin:0;color:var(--navy);font-size:1.05rem}.adaptation-proposal-summary p{margin:0;color:#43566c;line-height:1.55}
.adaptation-section-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px 14px;border:1px solid #dbe5ed;border-radius:10px;background:#f8fafc}.adaptation-section-heading h5{margin:0;color:var(--navy);font-size:1rem}.adaptation-section-heading p{margin:3px 0 0;color:#607387;font-size:.82rem;line-height:1.45}.adaptation-section-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#173b60;color:#fff;font-size:.78rem;font-weight:850}.adaptation-readonly-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3f7;color:#52667a;font-size:.7rem;font-weight:800}.adaptation-proposal-identity{display:grid;gap:4px}.adaptation-proposal-identity>strong{color:var(--navy);font-size:.93rem}.adaptation-proposal-identity p{margin:0;color:#53677b;line-height:1.5}.adaptation-weekly-overview{border:1px solid #dbe5ed;border-radius:10px;background:#fff;overflow:hidden}.adaptation-weekly-overview>summary{cursor:pointer;padding:11px 13px;color:var(--navy);font-size:.84rem;font-weight:800;background:#f8fafc;list-style-position:inside}.adaptation-weekly-overview[open]>summary{border-bottom:1px solid #dbe5ed}.adaptation-weekly-overview .adaptation-week-grid{padding:10px}.adaptation-review-section{display:grid;gap:13px}.adaptation-editor-help{display:block;color:#62778b;font-weight:500;line-height:1.45}.adaptation-edit-content textarea{font-family:inherit;line-height:1.5}.adaptation-edit-content textarea::placeholder{color:#8191a1}
.adaptation-specification-snapshots{display:grid;gap:6px;padding:9px 11px;border-left:3px solid #9fb3c8;background:#f8fafc;border-radius:7px;color:#52667a;font-size:.8rem}
.adaptation-specification-snapshots strong{color:var(--navy)}
.adaptation-specification-snapshots>div{display:flex;gap:6px;flex-wrap:wrap}
.adaptation-specification-snapshots span{display:inline-flex;padding:3px 7px;border:1px solid #dbe5ed;border-radius:999px;background:#fff}
.adaptation-progression-summary{display:grid;gap:8px;padding:11px 12px;border:1px solid #dbe5ed;border-radius:10px;background:#f8fafc}
.adaptation-progression-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.adaptation-progression-heading strong{color:var(--navy);font-size:.9rem}
.adaptation-progression-heading span{color:#66788b;font-size:.78rem}
.adaptation-progression-list{display:grid;gap:6px}
.adaptation-progression-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;padding:7px 8px;border-radius:8px;background:#fff}
.adaptation-progression-code{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:3px 7px;border-radius:999px;background:#eaf1f8;color:#173b60;font-size:.72rem;font-weight:800}
.adaptation-progression-item div{display:grid;gap:2px}
.adaptation-progression-item div strong{color:#243b53;font-size:.82rem}
.adaptation-progression-item small{display:block;color:#53677b;line-height:1.38}
.adaptation-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.adaptation-week-card{padding:12px;border:1px solid #dbe5ed;border-radius:10px;background:#fbfcfd}
.adaptation-week-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.adaptation-week-heading>strong{margin-bottom:0}
.adaptation-week-card strong{display:block;margin-bottom:5px;color:var(--navy)}.adaptation-week-card p{margin:4px 0;color:#43566c;font-size:.88rem;line-height:1.45}
.adaptation-change-list{display:grid;gap:13px}
.adaptation-change-card{display:grid;gap:13px;padding:16px;border:1px solid #d5e0e9;border-radius:13px;background:#fff}
.adaptation-change-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.adaptation-change-header h5{margin:0;color:var(--navy);font-size:1rem}.adaptation-action-badge{padding:5px 9px;border-radius:999px;background:#eaf3fb;color:#0b5aa7;font-size:.76rem;font-weight:850}
.adaptation-change-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.adaptation-change-column{padding:12px;border:1px solid #e0e7ed;border-radius:10px;background:#fbfcfd}.adaptation-change-column strong{display:block;margin-bottom:6px;color:var(--navy);font-size:.82rem}.adaptation-change-column p{margin:0;white-space:pre-wrap;line-height:1.48;color:#43566c}
.adaptation-operation-summary{display:grid;gap:7px;padding:12px 14px;border:1px solid #d8e5f0;border-radius:10px;background:#f8fbfe}.adaptation-operation-summary strong{color:var(--navy);font-size:.84rem}.adaptation-operation-flow{display:flex;gap:14px;flex-wrap:wrap;color:#50657a;font-size:.83rem}.adaptation-operation-flow span{display:inline-flex;gap:4px;align-items:baseline}.adaptation-operation-summary p{margin:0;color:#43566c;line-height:1.55}.adaptation-change-help{margin-top:10px !important;font-size:.8rem;color:#61768a !important}
.adaptation-change-rationale{display:grid;gap:7px;padding:12px 14px;border-left:4px solid #d4a62a;background:#fffaf0;border-radius:0 9px 9px 0;color:#4f4a3e;line-height:1.5}
.adaptation-deletion-notice{display:grid;gap:4px;padding:10px 12px;border:1px solid #ead8a2;border-radius:9px;background:#fffdf5;color:#5b5137;line-height:1.45}
.adaptation-deletion-notice strong{color:#7a5c14;font-size:.82rem}
.adaptation-deletion-notice span{font-size:.85rem}
.adaptation-change-card.deletion .adaptation-action-badge{background:#fff4d6;color:#76570b;border-color:#ead08b}
.adaptation-change-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;color:var(--muted);font-size:.86rem}.adaptation-meta-block{min-width:0;padding:11px 12px;border:1px solid #e0e7ed;border-radius:10px;background:#fbfcfd}.adaptation-meta-block>strong{display:block;margin-bottom:5px;color:var(--navy);font-size:.82rem}.adaptation-meta-block p{margin:0;color:#43566c;line-height:1.5}
.adaptation-review-controls{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:12px;align-items:start;padding-top:4px;border-top:1px solid #e4ebf1}
.adaptation-review-controls label{display:grid;gap:7px;color:var(--navy);font-size:.82rem;font-weight:800}.adaptation-review-controls textarea{min-height:90px}
.adaptation-edit-content{grid-column:1/-1}.adaptation-comment{grid-column:1/-1}
.adaptation-review-saved{color:#2f6f4d;font-size:.82rem;font-weight:750}
.adaptation-approval-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.adaptation-summary-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.adaptation-summary-metrics>span{display:grid;gap:3px;padding:10px 12px;border:1px solid #dbe5ed;border-radius:10px;background:#f8fafc}.adaptation-summary-metrics small{color:#66788b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.adaptation-summary-metrics strong{color:var(--navy);font-size:.92rem}.adaptation-summary-actions{display:flex;gap:10px;flex-wrap:wrap}.adaptation-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dbe5ed;border-radius:10px;background:#fff}.adaptation-review-counters{display:flex;gap:8px;flex-wrap:wrap}.adaptation-review-counters>span{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:800}.adaptation-review-counters .pending{background:#fff4d6;color:#76570b}.adaptation-review-counters .accepted{background:#eaf7ef;color:#24603d}.adaptation-review-counters .edited{background:#eaf3fb;color:#0b5aa7}.adaptation-change-details{display:grid;gap:0}.adaptation-change-details>summary{list-style:none;cursor:pointer}.adaptation-change-details>summary::-webkit-details-marker{display:none}.adaptation-change-details>summary::before{content:"▸";flex:0 0 auto;color:#607387;font-size:.8rem}.adaptation-change-details[open]>summary::before{content:"▾"}.adaptation-change-header>div:first-of-type{display:grid;gap:2px;min-width:0;flex:1}.adaptation-change-header small{color:#66788b;font-size:.75rem;font-weight:700}.adaptation-change-header-status{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.adaptation-decision-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.73rem;font-weight:850}.adaptation-decision-badge.pending{background:#fff4d6;color:#76570b}.adaptation-decision-badge.accepted{background:#eaf7ef;color:#24603d}.adaptation-decision-badge.edited{background:#eaf3fb;color:#0b5aa7}.adaptation-change-body{display:grid;gap:13px;padding-top:13px}.adaptation-change-card.decision-accepted{border-left:4px solid #68a87d}.adaptation-change-card.decision-edited{border-left:4px solid #4f8fc7}.adaptation-change-card.decision-pending{border-left:4px solid #d4a62a}.adaptation-decision-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-top:4px;border-top:1px solid #e4ebf1}.adaptation-decision-actions .adaptation-review-saved{margin-left:auto}.adaptation-adjustment-panel{display:grid;gap:9px;padding:12px 14px;border:1px solid #cfe0ee;border-radius:10px;background:#f4f9fd}.adaptation-adjustment-panel>strong{color:var(--navy);font-size:.86rem}.adaptation-adjustment-panel>p{margin:0;color:#53677b;font-size:.82rem;line-height:1.45}.adaptation-adjustment-actions{display:flex;gap:8px;flex-wrap:wrap}.adaptation-adjustment-actions span{color:#66788b;font-size:.8rem}.adaptation-adjustment-unit-actions{display:grid;gap:7px;padding-top:9px;border-top:1px solid #dbe6ef}.adaptation-adjustment-unit-actions>span{color:#53677b;font-size:.78rem;font-weight:800}.adaptation-adjustment-unit-actions .button{justify-self:start}.adaptation-structured-line.unresolved{border-left:3px solid #d6a625;padding-left:8px}.adaptation-numbering-warning{display:block;margin-top:2px;color:#8a6208;font-size:.68rem;font-weight:750}
.adaptation-result-section{display:grid;gap:12px}.adaptation-result-placeholder{display:grid;gap:5px;padding:18px;border:1px dashed #b9c8d8;border-radius:11px;background:#f8fafc;text-align:center}.adaptation-result-placeholder strong{color:var(--navy)}.adaptation-result-placeholder span{color:#43566c}.adaptation-result-placeholder small{color:#66788b}.adaptation-traceability{border:1px solid #dbe5ed;border-radius:10px;background:#fff;overflow:hidden}.adaptation-traceability>summary{cursor:pointer;padding:11px 13px;background:#f8fafc;color:var(--navy);font-size:.82rem;font-weight:800}.adaptation-traceability>.adaptation-change-list{padding:12px}.adaptation-change-card.traceability-only{background:#fffdf8}.adaptation-regenerate-options{min-width:min(520px,100%);border:1px solid #dbe5ed;border-radius:10px;background:#fff}.adaptation-regenerate-options>summary{cursor:pointer;padding:10px 12px;color:#53677b;font-size:.8rem;font-weight:800}.adaptation-regenerate-options[open]{padding-bottom:12px}.adaptation-regenerate-options[open]>summary{border-bottom:1px solid #e4ebf1;margin-bottom:10px}.adaptation-regenerate-options .adaptation-feedback{display:grid;gap:6px;padding:0 12px 10px}.adaptation-regenerate-options .button{margin-left:12px}.adaptation-approval-actions{align-items:flex-start}.adaptation-approval-actions>#approve-plan-adaptation{margin-left:auto}
@media(max-width:900px){.adaptation-section-heading{grid-template-columns:auto minmax(0,1fr)}.adaptation-readonly-badge{grid-column:2;justify-self:start}.workflow-selection-summary{align-items:stretch;display:grid}.workflow-selection-summary .button{width:100%}.workflow-mode-options,.adaptation-source-grid,.adaptation-week-grid,.adaptation-change-comparison,.adaptation-change-meta,.adaptation-review-controls,.adaptation-summary-metrics{grid-template-columns:1fr}.adaptation-source-banner,.adaptation-workspace-header,.adaptation-source-actions,.adaptation-review-toolbar{align-items:stretch;display:grid}.adaptation-source-banner{margin-inline:16px}.adaptation-source-actions .button,.adaptation-workspace-header .button,.adaptation-review-toolbar .button,.adaptation-summary-actions .button{width:100%}.adaptation-decision-actions .adaptation-review-saved{margin-left:0;width:100%}.adaptation-approval-actions{display:grid}.adaptation-approval-actions>#approve-plan-adaptation{margin-left:0;width:100%}}
.workflow-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef3f7;color:#4c6074;font-size:.7rem;font-weight:850;letter-spacing:.03em;text-transform:uppercase}
.workflow-badge.adaptation{background:#fff3d8;color:#725009}
.saved-project-title{flex-wrap:wrap}.saved-project-title h3{flex-basis:100%}

/* v31: corrige el desplazamiento del asistente al cambiar entre pasos largos y cortos */
.wizard{grid-template-rows:auto minmax(0,1fr)}
.workflow-mode-gate,.adaptation-source-panel{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.workflow-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.workflow-selection-summary,.adaptation-source-banner,.steps{flex:0 0 auto}
#project-form{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}

/* v31: ciclo de vida, versionado y baja de Conocimiento e IA */
.knowledge-selected-version{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #d5e1eb;border-radius:12px;background:#f7fafc}
.knowledge-selected-version>div{display:grid;gap:4px;min-width:0}.knowledge-selected-version strong{color:var(--navy);font-size:1rem}.knowledge-selected-version span{color:var(--muted);font-size:.84rem}.knowledge-selected-version .status-badge{flex:0 0 auto}
.knowledge-resource-list{display:grid;gap:14px;margin-top:16px}.knowledge-resource-card{padding:17px;border:1px solid #d8e2eb;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(12,44,76,.05)}
.knowledge-resource-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.knowledge-resource-summary>div{display:grid;gap:5px;min-width:0}.knowledge-resource-summary strong{color:var(--navy);font-size:1rem}.knowledge-resource-summary span{color:var(--muted);font-size:.83rem;line-height:1.4}
.knowledge-resource-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.knowledge-resource-actions button,.knowledge-resource-actions a,.knowledge-version-row .table-actions button,.knowledge-version-row .table-actions a{min-height:36px;padding:8px 12px;border:1px solid #b8c8d6;border-radius:9px;background:#fff;color:var(--navy);font:inherit;font-size:.8rem;font-weight:750;text-decoration:none;cursor:pointer}
.knowledge-resource-actions button:hover,.knowledge-resource-actions a:hover,.knowledge-version-row .table-actions button:hover,.knowledge-version-row .table-actions a:hover{border-color:#0b5aa7;background:#f4f9fd}
.knowledge-resource-actions .danger-link{border-color:#e7b8b5;color:#a52620}.knowledge-resource-actions .danger-link:hover{border-color:#c94037;background:#fff5f4}
.knowledge-version-history{display:grid;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid #e0e8ef}.knowledge-version-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #e1e8ee;border-radius:10px;background:#f9fbfc}.knowledge-version-row>div:first-child{display:grid;gap:3px}.knowledge-version-row strong{color:var(--navy);font-size:.86rem}.knowledge-version-row span,.knowledge-version-row small{color:var(--muted);font-size:.76rem;line-height:1.35}.knowledge-version-row .table-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.status-badge.status-archived{background:#eceff2;color:#5f6b76;border-color:#ccd4db}.button.danger{background:#9f2923;border-color:#9f2923;color:#fff}.button.danger:hover{background:#84211c}.button.danger-outline{background:#fff;border-color:#d9a5a1;color:#9f2923}.button.danger-outline:hover{background:#fff4f3;border-color:#b9342d}
.knowledge-retire-card{width:min(680px,calc(100vw - 32px))}.knowledge-retire-warning{margin:14px 0;padding:12px 14px;border:1px solid #e1b35a;border-radius:10px;background:#fff8e8;color:#694b0b;line-height:1.45}.knowledge-retire-card form{display:grid;gap:14px}.knowledge-retire-card form label{display:grid;gap:7px;color:var(--navy);font-weight:750}.knowledge-retire-card textarea{min-height:120px}
@media(max-width:760px){.knowledge-selected-version,.knowledge-resource-summary,.knowledge-version-row{align-items:stretch;display:grid}.knowledge-resource-actions,.knowledge-version-row .table-actions{justify-content:flex-start}.knowledge-resource-actions button,.knowledge-resource-actions a{flex:1 1 180px;text-align:center}}

/* Vista previa y revisión del Plan Docente */
.teaching-plan-preview-section{margin-top:22px;border-top:1px solid var(--line);padding-top:22px}.teaching-plan-preview-heading,.plan-methodologies-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.teaching-plan-preview-heading h4,.plan-methodologies-heading h4{margin:0;color:var(--navy);font-size:1.15rem}.teaching-plan-preview-heading p,.plan-methodologies-heading p{margin:5px 0 0;color:#5e7085;line-height:1.45}.teaching-plan-preview-nav{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;scrollbar-width:thin}.teaching-plan-preview-nav button{flex:0 0 auto;border:1px solid #b9c8d8;border-radius:999px;background:#fff;color:var(--navy);font:inherit;font-size:.78rem;font-weight:800;padding:9px 13px;cursor:pointer}.teaching-plan-preview-nav button:hover,.teaching-plan-preview-nav button:focus-visible{border-color:#0d66c2;box-shadow:0 0 0 3px rgba(13,102,194,.12);outline:0}.teaching-plan-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:20px;align-items:start}.teaching-plan-document{background:#fff;border:1px solid #cbd6e1;border-radius:10px;box-shadow:0 10px 24px rgba(8,41,74,.09);padding:34px;min-width:0;font-family:Arial,sans-serif;color:#172b43}.teaching-plan-document .plan-preview-cover{min-height:540px;display:flex;flex-direction:column;justify-content:space-between;text-align:center;padding:24px 12px}.teaching-plan-document .plan-preview-brand{display:grid;place-items:center;gap:8px}.teaching-plan-document .plan-preview-brand strong{font-size:2rem;color:#06365f}.teaching-plan-document .plan-preview-brand span{font-size:.9rem;font-weight:800;color:#9b6a00;text-transform:uppercase;letter-spacing:.08em}.teaching-plan-document .plan-preview-cover-main{display:grid;gap:22px}.teaching-plan-document .plan-preview-cover-main h2{margin:0;font-size:1.75rem;color:#0a3158;text-transform:uppercase}.teaching-plan-document .plan-preview-cover-main p{margin:0;font-size:1.05rem;line-height:1.5}.teaching-plan-document .plan-preview-section{scroll-margin-top:24px;margin-top:30px}.teaching-plan-document .plan-preview-band{background:#d9d9d9;border:1px solid #adb7c2;padding:9px 12px;font-weight:800;color:#1a2d42}.teaching-plan-document .plan-preview-subtitle{margin:18px 0 8px;color:#0a3158;font-size:1rem}.teaching-plan-document .plan-preview-paragraph{white-space:pre-wrap;line-height:1.55;margin:10px 0}.teaching-plan-document .plan-preview-table-wrap{overflow-x:auto;margin-top:10px}.teaching-plan-document table{width:100%;border-collapse:collapse;min-width:640px;font-size:.8rem}.teaching-plan-document th,.teaching-plan-document td{border:1px solid #8493a3;padding:8px 9px;vertical-align:top;line-height:1.4}.teaching-plan-document th{background:#e2e7ed;color:#102c49;text-align:left}.teaching-plan-document .plan-preview-list{margin:5px 0;padding-left:20px}.teaching-plan-document .plan-preview-list li{margin:4px 0;line-height:1.4}.teaching-plan-document .plan-preview-sequence{margin-top:18px;padding-top:16px;border-top:2px solid #d7e0e9}.teaching-plan-document .plan-preview-sequence:first-of-type{border-top:0}.teaching-plan-document .plan-preview-sequence-header{background:#edf2f6;border:1px solid #c2ceda;padding:10px 12px;font-weight:800}.teaching-plan-document .plan-preview-method-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #9eabb8;border-top:0}.teaching-plan-document .plan-preview-method-grid>div{padding:10px 12px}.teaching-plan-document .plan-preview-method-grid>div+div{border-left:1px solid #9eabb8}.teaching-plan-document .plan-preview-source-badge{display:inline-flex;border-radius:999px;background:#eef4fa;color:#174c7d;padding:4px 8px;font-size:.68rem;font-weight:800;margin-left:6px}.teaching-plan-review-panel{position:sticky;top:10px;border:1px solid #c8d4df;border-radius:12px;background:#f7f9fb;padding:18px;display:grid;gap:14px}.teaching-plan-review-panel h4{margin:0;color:var(--navy)}.teaching-plan-review-panel label{display:grid;gap:7px;color:var(--navy);font-size:.8rem;font-weight:800}.teaching-plan-review-panel textarea{min-height:100px;resize:vertical}.teaching-plan-review-checks{display:grid;gap:9px}.teaching-plan-review-check{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:10px;border:1px solid #d5dee7;border-radius:9px;background:#fff}.teaching-plan-review-check .icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:.75rem;font-weight:900}.teaching-plan-review-check.ok .icon{background:#e5f5eb;color:#13703a}.teaching-plan-review-check.error .icon{background:#fde9e7;color:#a82a20}.teaching-plan-review-check strong{display:block;color:#17324f;font-size:.79rem}.teaching-plan-review-check small{display:block;margin-top:3px;color:#5d6f81;line-height:1.35}.teaching-plan-review-confirm{grid-template-columns:22px 1fr!important;align-items:start}.teaching-plan-review-confirm input{width:18px;height:18px;margin:2px 0 0}.teaching-plan-review-confirm span{font-weight:600;line-height:1.4;color:#2e455d}.teaching-plan-review-status{border-radius:9px;padding:10px 12px;line-height:1.4;font-size:.78rem}.teaching-plan-review-status.pending{background:#fff8e5;color:#765211;border:1px solid #e5c56d}.teaching-plan-review-status.reviewed{background:#e8f5ed;color:#17633a;border:1px solid #9fcdb0}.plan-methodologies-section{margin-top:28px;border-top:1px solid var(--line);padding-top:22px}.plan-summary-excerpt{color:#53667a;line-height:1.5}.plan-review-required-note{font-weight:800;color:#765211}.plan-review-version-badge{display:inline-flex;gap:6px;align-items:center;border-radius:999px;padding:5px 9px;background:#eaf1f7;color:#174b78;font-size:.75rem;font-weight:800}.plan-preview-empty{padding:28px;text-align:center;color:#5d6f82;background:#f5f8fa;border:1px dashed #b7c4d0;border-radius:10px}
@media(max-width:1050px){.teaching-plan-preview-layout{grid-template-columns:1fr}.teaching-plan-review-panel{position:static}.teaching-plan-document{padding:24px}.teaching-plan-preview-heading{flex-direction:column}.teaching-plan-preview-heading .button{width:100%}}
@media(max-width:700px){.teaching-plan-document{padding:16px}.teaching-plan-document .plan-preview-cover{min-height:430px}.teaching-plan-document .plan-preview-method-grid{grid-template-columns:1fr}.teaching-plan-document .plan-preview-method-grid>div+div{border-left:0;border-top:1px solid #9eabb8}.teaching-plan-preview-nav button{font-size:.72rem;padding:8px 10px}}

/* Presentación microcurricular revisable */
.microcurricular-presentation-card{margin:0 0 22px;padding:18px;border:1px solid #cbd7e2;border-radius:12px;background:#f8fafc}.microcurricular-presentation-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.microcurricular-presentation-header h4{margin:0;color:var(--navy);font-size:1rem}.microcurricular-presentation-header p{margin:5px 0 0;color:#5d7084;line-height:1.45}.microcurricular-presentation-card textarea{width:100%;min-height:150px;resize:vertical}.institutional-plan-text-card textarea{min-height:190px;resize:vertical}

/* Vista previa del Plan Docente: documento a ancho completo y validación desplegable */
.teaching-plan-preview-layout{display:block}.teaching-plan-document{width:100%;max-width:none}.teaching-plan-validation-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:12px 14px;border:1px solid #c8d4df;border-radius:10px;background:#f7f9fb}.teaching-plan-validation-summary div{display:grid;gap:3px}.teaching-plan-validation-summary strong{color:var(--navy)}.teaching-plan-validation-summary span{color:#607286;font-size:.78rem;line-height:1.35}.teaching-plan-review-panel{position:static;margin:0 0 16px;border:1px solid #c8d4df;border-radius:12px;background:#f7f9fb;padding:18px;display:grid;gap:14px}.teaching-plan-review-panel.hidden{display:none}.teaching-plan-review-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.teaching-plan-review-panel-heading h4{margin:0}.teaching-plan-review-checks{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.teaching-plan-review-panel textarea{min-height:90px}.teaching-plan-preview-nav{position:sticky;top:0;z-index:2;background:#fff;padding-top:6px}
@media(max-width:760px){.microcurricular-presentation-header,.teaching-plan-validation-summary{display:grid}.microcurricular-presentation-header .button,.teaching-plan-validation-summary .button{width:100%}}

/* Plan Docente v31: visor documental, edición semanal e instrumentos EVA */
.teaching-plan-methodology-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px}.teaching-plan-methodology-summary article{border:1px solid #c8d4df;border-radius:10px;background:#f8fafc;padding:12px 14px}.teaching-plan-methodology-summary h5{margin:0 0 6px;color:var(--navy);font-size:.82rem}.teaching-plan-methodology-summary ul{margin:0;padding-left:18px;color:#455b72;font-size:.78rem;line-height:1.45}
.teaching-plan-preview-layout{display:grid!important;grid-template-columns:58px minmax(0,1fr);gap:14px;align-items:start}.teaching-plan-preview-nav{position:sticky!important;top:10px!important;z-index:3;display:grid!important;gap:8px;overflow:visible!important;padding:8px 0!important;background:transparent!important;align-content:start}.teaching-plan-preview-nav button{width:44px;height:44px;padding:0!important;border-radius:50%!important;display:grid;place-items:center;font-size:.82rem!important;position:relative}.teaching-plan-preview-nav button::after{content:attr(data-label);position:absolute;left:52px;top:50%;transform:translateY(-50%);white-space:nowrap;background:#092f55;color:#fff;border-radius:7px;padding:6px 8px;font-size:.7rem;font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s;box-shadow:0 4px 14px rgba(0,0,0,.16)}.teaching-plan-preview-nav button:hover::after,.teaching-plan-preview-nav button:focus-visible::after{opacity:1}.teaching-plan-preview-nav button.active{background:#0a3c69;color:#fff;border-color:#0a3c69;box-shadow:0 0 0 3px rgba(13,102,194,.12)}
.teaching-plan-document .plan-preview-activity{display:flex;align-items:flex-start;gap:6px;margin:3px 0}.teaching-plan-document .plan-preview-component{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:42px;border-radius:999px;background:#eaf1f7;color:#174c7d;font-weight:900;font-size:.64rem;padding:2px 5px;height:21px}.teaching-plan-document .plan-preview-activity-text{flex:1 1 auto;min-width:0}.teaching-plan-document .plan-preview-content-line{display:block;margin:2px 0}.teaching-plan-document .plan-week-edit{margin-top:7px;font-size:.7rem;padding:6px 9px}.teaching-plan-document .plan-instrument-detail{margin-top:8px;border:1px solid #cbd6e1;border-radius:8px;padding:10px;background:#fbfcfd}.teaching-plan-document .plan-instrument-detail h6{margin:0 0 6px;color:#0a3158;font-size:.78rem}.teaching-plan-document .plan-instrument-detail table{min-width:520px;font-size:.72rem}.teaching-plan-document .plan-score-formula{font-size:.72rem;color:#53677c;margin-top:5px}
.teaching-plan-week-modal-card{width:min(980px,100%);max-height:min(90vh,900px)}.teaching-plan-week-form{display:grid;gap:18px}.teaching-plan-week-locked{padding:12px 14px;border-radius:10px;background:#f2f5f8;border:1px solid #ccd7e1;color:#435970;font-size:.8rem;line-height:1.5}.teaching-plan-week-activities{display:grid;gap:10px}.teaching-plan-activity-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:9px;align-items:start;border:1px solid #d5dee7;border-radius:10px;padding:10px;background:#fff}.teaching-plan-activity-row textarea{min-height:72px}.teaching-plan-activity-row .evaluation-badge{font-size:.68rem;font-weight:900;color:#174c7d;background:#e9f1f8;border-radius:999px;padding:5px 8px;white-space:nowrap}.teaching-plan-evaluated-editor{border-top:1px solid #d4dee8;padding-top:16px;display:grid;gap:12px}.teaching-plan-evaluated-editor.hidden{display:none}.teaching-plan-evaluated-editor h4{margin:0;color:var(--navy)}.notice.compact{margin:0;padding:10px 12px;font-size:.76rem}.teaching-plan-questionnaire-config{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.teaching-plan-questionnaire-config.hidden,.teaching-plan-criteria-editor.hidden{display:none}.teaching-plan-criteria-editor{display:grid;gap:10px}.instrument-criterion-card{border:1px solid #cad5df;border-radius:10px;padding:12px;background:#f9fbfc;display:grid;gap:9px}.instrument-criterion-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.instrument-levels{display:grid;gap:7px}.instrument-level-row{display:grid;grid-template-columns:150px minmax(0,1fr) 90px auto;gap:7px;align-items:start}.instrument-level-row input[type=number]{min-width:0}.instrument-score-summary{text-align:right;font-size:.82rem;color:#465b70}.instrument-score-summary strong{color:var(--navy)}
@media(max-width:900px){.teaching-plan-methodology-summary{grid-template-columns:1fr}.teaching-plan-preview-layout{grid-template-columns:1fr!important}.teaching-plan-preview-nav{position:sticky!important;top:0!important;display:flex!important;overflow-x:auto!important;background:#fff!important;padding:8px 0!important}.teaching-plan-preview-nav button{flex:0 0 40px;width:40px;height:40px}.teaching-plan-preview-nav button::after{display:none}.teaching-plan-questionnaire-config{grid-template-columns:1fr}.teaching-plan-activity-row{grid-template-columns:100px minmax(0,1fr)}.teaching-plan-activity-row>:last-child{grid-column:1/-1}.instrument-level-row{grid-template-columns:1fr 90px}.instrument-level-row .instrument-level-description{grid-column:1/-1}.instrument-level-row .instrument-level-remove{grid-column:2}}
.plan-eva-instrument-card{margin:10px 0 14px;padding:12px 14px;border:1px solid #cbd6e1;border-radius:10px;background:#fbfcfd}.plan-eva-instrument-card>h6{margin:0 0 7px;color:#0a3158;font-size:.82rem}.plan-eva-instrument-card .plan-instrument-detail{margin-top:0;border:0;padding:0;background:transparent}
.plan-identification-table .plan-identification-period{text-align:center;background:#d9d9d9}
.instrument-score-summary strong.error{color:#a82a20}

.icon-action{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--navy);border-radius:9px;background:#fff;color:var(--navy);font-weight:900;font-size:1.15rem;cursor:pointer;line-height:1}.icon-action:hover{background:#eef4fa}.inline-spinner{width:18px;height:18px;border:3px solid #ffffff66;border-top-color:#fff;border-radius:50%;display:inline-block;animation:system-spin .8s linear infinite}.button.is-loading{display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:progress}.is-generation-locked{opacity:.5}@keyframes system-spin{to{transform:rotate(360deg)}}
.plan-download-actions{display:flex;gap:8px;flex-wrap:wrap}.plan-download-actions .button{flex:1 1 140px}.teaching-plan-activity-row{grid-template-columns:105px minmax(260px,2fr) minmax(220px,1.3fr) 86px auto!important}.teaching-plan-activity-row textarea{min-height:72px}.activity-hours-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.activity-hours-summary span{padding:6px 9px;border-radius:999px;background:#eef2f6;font-size:.75rem;font-weight:800}.activity-hours-summary span.ok{background:#e8f5ec;color:#1d7a3e}.activity-hours-summary span.error{background:#faebeb;color:#b02929}.plan-preview-resource-line{margin:3px 0}.plan-strategy-list{margin:0;padding-left:18px}.plan-strategy-list li{margin:3px 0}.download-format-settings{margin-top:16px;display:flex;gap:18px;flex-wrap:wrap}.download-format-settings .choice{min-width:130px}.download-format-settings small{font-weight:400;color:var(--muted)}
@media(max-width:900px){.teaching-plan-activity-row{grid-template-columns:1fr!important}.plan-download-actions{display:grid;grid-template-columns:1fr}}

/* Plan Docente v31: metodología editable al inicio y validación al final */
.plan-methodologies-section-top{margin:0 0 20px;border:1px solid #c8d4df;border-radius:12px;background:#f8fafc;padding:16px}.plan-methodologies-section-top .plan-methodologies-heading{margin-bottom:12px}.plan-methodologies-section-top .academic-profile-card{background:#fff}.plan-template-applied{margin-top:8px!important;font-size:.78rem;color:#536a80!important;font-weight:700}.teaching-plan-validation-summary-bottom{margin:20px 0 0}.teaching-plan-preview-layout+.teaching-plan-validation-summary{margin-top:20px}.teaching-plan-review-panel{margin-top:12px}.teaching-plan-methodology-summary{display:none!important}
.plan-template-applied.warning{color:#8a5b00!important;background:#fff6dc;border-left:3px solid #d7a72d;padding:8px 10px;border-radius:6px}

.plan-preview-evaluation-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3rem;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: #fff4d6;
  color: #6b4a00;
  font-weight: 800;
  margin-right: .4rem;
}
.bibliography-apa-tools {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
}
.bibliography-apa-suggestion {
  border: 1px solid #cad7e5;
  border-radius: 14px;
  padding: 1rem;
  background: #f7fafc;
}
.bibliography-apa-suggestion h4 { margin: 0 0 .75rem; }
.bibliography-apa-suggestion p { margin: .45rem 0; }
.bibliography-apa-suggestion ul { margin: .5rem 0 0 1.25rem; }
.apa-suggested-citation { padding: .75rem; border-radius: 10px; background: white; border: 1px solid #d8e1eb; }
.apa-suggestion-actions { display: flex; gap: .65rem; justify-content: flex-end; flex-wrap: wrap; margin-top: 1rem; }

/* v31: descargas al final de la vista previa del Plan Docente */
.teaching-plan-download-footer{margin-top:20px;padding:18px;border:1px solid #c8d4df;border-radius:12px;background:#f8fafc;display:grid;gap:12px}.teaching-plan-download-footer h4{margin:0;color:var(--navy);font-size:1rem}.teaching-plan-download-footer>div:first-child p{margin:5px 0 0;color:#607286;font-size:.8rem;line-height:1.4}.teaching-plan-download-footer .plan-download-actions{margin:0}.teaching-plan-download-footer .notice{margin:0}
/* v31: orden Componente -> AC# -> Actividad y bibliografía alfabética */
.teaching-plan-document .plan-preview-activity .plan-preview-evaluation-code{flex:0 0 auto;margin-right:0}
.teaching-plan-document .plan-preview-alpha-list{list-style:none;counter-reset:plan-bibliography-alpha;padding-left:0;margin-left:0}
.teaching-plan-document .plan-preview-alpha-list>li{counter-increment:plan-bibliography-alpha;position:relative;padding-left:2.05rem;margin:8px 0}
.teaching-plan-document .plan-preview-alpha-list>li::before{content:counter(plan-bibliography-alpha, lower-alpha) ")";position:absolute;left:0;top:0;font-weight:800;color:#172b43}

.admin-icon-action{width:38px;height:38px;display:inline-grid;place-items:center;padding:0!important;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);cursor:pointer}.admin-icon-action:hover{border-color:#0b5aa7;background:#f4f9fd}.admin-icon-action.danger{border-color:#e7b8b5;color:#a52620}.admin-icon-action.danger:hover{border-color:#c94037;background:#fff5f4}.admin-action-svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

/* Guía v3: focalizadores semánticos */
.guide-callout{margin:16px 0;padding:14px 16px;border:1px solid #cbd8e5;border-left-width:4px;border-radius:10px;background:#f8fafc;color:#1b3149}
.guide-callout-title{display:block;margin-bottom:6px;color:var(--navy);font-weight:850}
.guide-callout p{margin:0;line-height:1.6}
.guide-callout-important{border-left-color:#0b5aa7;background:#f3f8fd}
.guide-callout-remember,.guide-callout-definition{border-left-color:#5d7287}
.guide-callout-example,.guide-callout-reflection{border-left-color:#7a5aa6;background:#faf7fd}
.guide-callout-question,.guide-callout-tip{border-left-color:#2f7a57;background:#f5fbf7}
.guide-callout-warning{border-left-color:#b47b08;background:#fffaf0}

/* v31: ancho ampliado del asistente y descargas finales de la Guía Didáctica */
@media(min-width:801px){
  .wizard{width:min(1500px,calc(100vw - 64px))}
}
.guide-download-section{margin-top:24px;padding:18px 20px;border:1px solid #cbd7e2;border-radius:12px;background:#f8fafc;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}
.guide-download-heading h4{margin:0;color:var(--navy);font-size:1.05rem}.guide-download-heading p{margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}
.guide-download-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.guide-download-button{min-width:116px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.download-format-icon{width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid currentColor;border-radius:7px;font-size:1rem;line-height:1}.guide-download-button:disabled .download-format-icon{opacity:.55}
@media(max-width:900px){.guide-download-section{grid-template-columns:1fr}.guide-download-actions{justify-content:stretch}.guide-download-button{flex:1 1 120px}}

/* v31: descargas semanales de revisión de la Guía Didáctica */
.week-review-downloads{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.week-review-download{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.week-review-download-label{font-weight:600}
@media(max-width:760px){.week-review-downloads{width:100%}.week-review-download{flex:1 1 100%;width:100%}}

/* v31.3: presentación compacta y jerárquica de propuestas de adaptación */
.adaptation-week-field,.adaptation-week-contents,.adaptation-week-purpose{margin:5px 0;color:#43566c;font-size:.88rem;line-height:1.45}
.adaptation-week-field>b,.adaptation-week-contents>b,.adaptation-week-purpose>b{display:block;margin-bottom:4px;color:#43566c}.adaptation-week-purpose{padding-top:5px;border-top:1px solid #e4ebf1}.adaptation-week-purpose span{display:block}
.adaptation-structured-content{display:grid;gap:3px;min-width:0}
.adaptation-structured-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:start;color:#43566c;line-height:1.4;overflow-wrap:anywhere}
.adaptation-structured-line.unit{margin-top:1px;color:var(--navy);font-weight:750}
.adaptation-structured-line.content-item{padding-left:8px}
.adaptation-structured-line.subcontent{padding-left:24px}
.adaptation-structured-line.text{display:block;white-space:pre-wrap}
.adaptation-structured-number{font-weight:850;color:var(--navy);white-space:nowrap}
.adaptation-change-column>.adaptation-structured-content{margin-top:2px}
.wizard-subject{margin:7px 0 0;color:var(--navy);font-size:.95rem;font-weight:750;letter-spacing:-.005em}
.adaptation-feedback{display:grid;gap:6px;width:100%;color:var(--navy);font-size:.84rem;font-weight:750}
.adaptation-feedback textarea{min-height:74px;resize:vertical;font-family:inherit;line-height:1.5}
.adaptation-feedback small{color:#62778b;font-weight:500;line-height:1.45}
.adaptation-result-section{display:grid;gap:13px;margin-top:16px}
.adaptation-result-note{margin:0;padding:10px 13px;border-left:4px solid #26734d;border-radius:0 9px 9px 0;background:#f0f8f3;color:#1f4c36;line-height:1.5}
.adaptation-week-card.edited{border-color:#8cc9a5;background:#f4fbf7}
.adaptation-edited-badge{padding:4px 8px;border-radius:999px;background:#e2f3e9;color:#1f5c3d;font-size:.7rem;font-weight:800;white-space:nowrap}
.button.approve:disabled{border-color:#c3ccd5;background:#c3ccd5;color:#f7f9fb;opacity:1}
.button.approve.ready{border-color:#1f8a4c;background:#1f8a4c;box-shadow:0 0 0 3px #1f8a4c33}
.adaptation-week-breakdown{display:grid;gap:8px;min-width:0;margin-top:2px}
.adaptation-week-block{display:grid;gap:4px;min-width:0;padding:8px 10px;border:1px solid #e4ebf1;border-radius:8px;background:#fff}
.adaptation-week-block>header{color:var(--navy);font-size:.75rem;font-weight:850;letter-spacing:.02em;text-transform:uppercase}
.adaptation-breakdown-note{margin:8px 0 0;color:#61768a;font-size:.78rem;line-height:1.45}
@media(max-width:600px){.adaptation-structured-line.content-item{padding-left:4px}.adaptation-structured-line.subcontent{padding-left:14px}}

.adaptation-meta-list{margin:5px 0 0;padding-left:19px;display:grid;gap:4px;color:#43566c}
.adaptation-meta-list li{padding-left:1px;line-height:1.42}
.adaptation-meta-empty{display:block;margin-top:4px;color:var(--muted)}
.adaptation-week-field .adaptation-meta-list{margin-top:3px}

@media(max-width:700px){.adaptation-progression-item{grid-template-columns:auto minmax(0,1fr)}}

/* v31.4: aviso para propuestas creadas antes de la reestructuración pedagógica por RA */
.adaptation-version-warning{display:grid;gap:6px;padding:14px 16px;border:1px solid #e4c46a;border-left:4px solid #c99516;border-radius:10px;background:#fffaf0;color:#43566c;line-height:1.5}
.adaptation-version-warning strong{color:var(--navy);font-size:.95rem}
.adaptation-version-warning span{display:block}

/* v32: vistas por rol y revisión institucional del Plan Docente */
.work-view-selector{display:flex;align-items:center;gap:7px;margin-left:10px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;color:var(--navy);font-size:.76rem;font-weight:800}
.work-view-selector span{white-space:nowrap}.work-view-selector select{width:auto;min-width:155px;padding:7px 30px 7px 9px;border-radius:7px;background:#fff;font-size:.78rem}
.admin-role-selector{display:grid;gap:10px;align-items:stretch}.admin-role-selector .field-help{margin:0}.role-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.role-checkbox{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #d9e2eb;border-radius:9px;background:#fbfcfd;color:var(--navy);cursor:pointer}.role-checkbox input{width:auto;margin-top:2px}.role-checkbox span{display:grid;gap:2px}.role-checkbox strong{font-size:.84rem}.role-checkbox small{color:var(--muted);font-size:.68rem}
.review-stage-config{display:grid;gap:10px}.review-stage-config-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:14px;align-items:center;padding:12px;border:1px solid #d9e2eb;border-radius:10px;background:#f9fbfc}.review-stage-config-row .confirm{margin:0}.review-stage-config-row .confirm span{display:grid;gap:3px}.review-stage-config-row small{color:var(--muted);font-weight:500}.review-stage-config-row>label:last-child{display:grid;gap:5px;color:var(--navy);font-size:.76rem;font-weight:750}.review-stage-config-row input[type=number]{padding:9px}
.checklist-builder-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checklist-builder-toolbar label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:750}.checklist-draft{display:grid;gap:9px}.checklist-draft-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border:1px solid #d9e2eb;border-radius:10px;background:#f9fbfc}.checklist-draft-item>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;align-items:start}.checklist-draft-item strong{color:var(--navy);font-size:.86rem}.checklist-draft-item small,.checklist-draft-item p{grid-column:2;color:var(--muted);font-size:.75rem;line-height:1.4}.checklist-draft-item p{margin:0}
#review-content{width:min(1480px,calc(100% - 48px))}.review-inbox-card.actionable{border-left:4px solid var(--gold)}.review-detail{display:grid;gap:18px;margin-top:28px}.review-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.review-detail-header h2{margin:0;color:var(--navy);font-size:1.65rem}.review-detail-header p:last-child{margin:6px 0 0;color:var(--muted)}.review-detail-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,.75fr);gap:22px;align-items:start}.review-plan-card,.review-checklist-card{min-width:0}.review-plan-card h3,.review-checklist-card h3,.review-history-card h3{margin:0;color:var(--navy)}.review-plan-preview{max-height:76vh;overflow:auto;margin-top:14px}.review-plan-preview.teaching-plan-document{padding:28px}.review-plan-readonly .plan-week-edit{display:none!important}
.review-checklist-items{display:grid;gap:12px}.review-checklist-item{display:grid;gap:10px;padding:13px;border:1px solid #d8e2eb;border-radius:11px;background:#fafcfd}.review-checklist-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.review-indicator-code{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:5px 8px;border-radius:999px;background:var(--gold-soft);color:#76570e;font-size:.7rem;font-weight:850}.review-checklist-heading strong{display:block;color:var(--navy);font-size:.88rem}.review-checklist-heading p{margin:4px 0;color:var(--muted);font-size:.78rem;line-height:1.45}.review-checklist-heading small{color:#7b6330;font-size:.7rem}.review-checklist-item label{display:grid;gap:6px;color:var(--navy);font-size:.76rem;font-weight:750}.review-checklist-item textarea{min-height:84px}.review-decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.review-decision-actions #save-review-draft{grid-column:1/-1}.button.review-corrections{border-color:#9a6417;background:#9a6417}.review-stage-history{display:grid;gap:9px}.review-history-item{padding:12px 14px;border:1px solid #dce4ec;border-radius:10px;background:#fafcfd}.review-history-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-history-item strong{color:var(--navy)}.review-history-item span{font-size:.74rem;font-weight:800;color:#496175}.review-history-item p{margin:8px 0;color:#3d5064;line-height:1.45}.review-history-item small{color:var(--muted)}
@media(min-width:1051px){.review-plan-preview,.review-checklist-card{scrollbar-gutter:stable;overscroll-behavior:contain}.review-checklist-card{position:sticky;top:18px;max-height:76vh;overflow-y:auto}}
@media(max-width:1050px){.review-detail-grid{grid-template-columns:1fr}.review-plan-preview{max-height:none}.work-view-selector select{min-width:130px}}
@media(max-width:800px){#review-content{width:calc(100% - 30px)}.work-view-selector{margin-left:0}.profile{flex-wrap:wrap;justify-content:flex-end}.review-detail-header{display:grid}.role-checkbox-grid,.checklist-builder-toolbar{grid-template-columns:1fr}}
@media(max-width:620px){.review-stage-config-row,.review-decision-actions{grid-template-columns:1fr}.review-decision-actions #save-review-draft{grid-column:auto}.work-view-selector span{display:none}.work-view-selector select{min-width:115px}}

/* v32.3 · Correcciones del Plan Docente en Vista Docente */
.teaching-plan-corrections{margin:0 0 22px;padding:18px;border:1px solid #d6b867;border-radius:14px;background:#fffaf0;box-shadow:0 8px 22px rgba(75,56,15,.06)}
.teaching-plan-corrections.hidden{display:none}
.teaching-plan-corrections-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.teaching-plan-corrections-heading h4{margin:2px 0 0;color:var(--navy);font-size:1.12rem}
.teaching-plan-corrections-heading p:not(.eyebrow){margin:6px 0 0;color:#5d6f81;line-height:1.45}
.teaching-plan-corrections-general{margin:0 0 14px;padding:12px 14px;border-left:4px solid #a97318;border-radius:8px;background:#fff4d7;color:#4e3b17}
.teaching-plan-corrections-general.hidden{display:none}
.teaching-plan-corrections-general strong{color:#66470f}
.teaching-plan-corrections-general p{margin:5px 0 0;white-space:pre-wrap;line-height:1.5}
.teaching-plan-correction-items{display:grid;gap:12px}
.teacher-correction-item{display:grid;gap:11px;padding:14px;border:1px solid #dfc98b;border-radius:12px;background:#fff}
.teacher-correction-item.addressed{border-color:#a8cdb5;background:#fbfffc}
.teacher-correction-item-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.teacher-correction-item-heading>div{display:flex;align-items:center;gap:10px;min-width:0}
.teacher-correction-item-heading strong{color:var(--navy);font-size:.9rem}
.teacher-correction-result{flex:0 0 auto;border-radius:999px;padding:5px 9px;background:#fff0cf;color:#80580d;font-size:.72rem;font-weight:850}
.teacher-correction-item.addressed .teacher-correction-result{background:#e8f5ed;color:#17633a}
.teacher-correction-observation{margin:0;color:#3f5062;line-height:1.5;white-space:pre-wrap}
.teacher-correction-observation strong{color:#713f13}
.teacher-correction-go{justify-self:start}
.teacher-correction-item label{display:grid;gap:6px;color:var(--navy);font-size:.78rem;font-weight:800}
.teacher-correction-item textarea{min-height:82px;resize:vertical}
.teacher-correction-addressed{grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important}
.teacher-correction-addressed input{width:18px;height:18px;margin:1px 0 0}
.teacher-correction-addressed span{font-weight:650;color:#30495f;line-height:1.4}
.teaching-plan-corrections-progress{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px);align-items:center;gap:16px;margin-top:14px;padding:12px 14px;border-radius:10px;background:#f6f8fa;border:1px solid #dbe3ea}
.teaching-plan-corrections-progress>div{display:grid;gap:3px}.teaching-plan-corrections-progress strong{color:var(--navy)}.teaching-plan-corrections-progress span{color:#637588;font-size:.76rem;line-height:1.35}.teaching-plan-corrections-progress progress{width:100%;height:12px}
.teaching-plan-corrections>label.wide{display:grid;gap:7px;margin-top:14px;color:var(--navy);font-size:.8rem;font-weight:800}.teaching-plan-corrections>label.wide textarea{min-height:78px;resize:vertical}
.teaching-plan-corrections>.teaching-plan-review-confirm{margin-top:14px}
.teaching-plan-corrections-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px}
.teaching-plan-corrections-history{margin-top:16px;border-top:1px solid #dfd5b7;padding-top:12px}.teaching-plan-corrections-history.hidden{display:none}.teaching-plan-corrections-history summary{cursor:pointer;color:var(--navy);font-weight:800}.teaching-plan-corrections-history>div{display:grid;gap:10px;margin-top:10px}
.teacher-correction-history-item{padding:12px 14px;border:1px solid #dce4ec;border-radius:10px;background:#fff}.teacher-correction-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.teacher-correction-history-heading>div{display:grid;gap:2px}.teacher-correction-history-heading strong{color:var(--navy)}.teacher-correction-history-heading span,.teacher-correction-history-heading small{color:var(--muted);font-size:.74rem}.teacher-correction-history-item>p{color:#3d5064;line-height:1.45}.teacher-correction-history-items{display:grid;gap:8px}.teacher-correction-history-items>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;padding:9px;border-radius:8px;background:#f7f9fb}.teacher-correction-history-items p{margin:0;color:#425568;line-height:1.4}.teacher-correction-history-response{grid-column:2;color:#27533b!important}
.teacher-correction-target-highlight{animation:teacher-correction-highlight 1.8s ease}
@keyframes teacher-correction-highlight{0%,100%{box-shadow:0 10px 24px rgba(8,41,74,.09)}25%,70%{box-shadow:0 0 0 4px rgba(169,115,24,.24),0 10px 24px rgba(8,41,74,.09)}}
.review-history-criteria{display:grid;gap:8px;margin:10px 0}.review-history-criterion{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:9px;border-radius:8px;background:#f2f6f9}.review-history-criterion>div{display:grid;gap:3px}.review-history-criterion small{color:var(--muted)}.review-history-criterion p{margin:3px 0 0}.review-history-teacher-response{color:#27533b!important}
@media(max-width:760px){.teaching-plan-corrections-heading,.teacher-correction-item-heading,.teacher-correction-history-heading{flex-direction:column;align-items:flex-start}.teaching-plan-corrections-progress{grid-template-columns:1fr}.teaching-plan-corrections-actions{display:grid;grid-template-columns:1fr}.teaching-plan-corrections-actions .button{width:100%}}
.teacher-correction-history-general-response{color:#27533b!important}

/* v32.4 · administración de listas de cotejo */
.admin-section-heading{margin-bottom:18px}.checklist-manager-selector-card{margin-bottom:18px}.checklist-manager-selector-card label{display:grid;gap:7px;max-width:520px;color:var(--navy);font-size:13px;font-weight:750}.checklist-manager-selector-card .field-help{margin:8px 0 0}.checklist-admin-grid{grid-template-columns:1fr;align-items:start}.checklist-admin-view{min-width:0}.checklist-version-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.checklist-version-header h2{margin:0 0 4px}.checklist-version-header p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.checklist-admin-grid .admin-table td small,#plan-review-progress-body td small{display:block;margin-top:4px;color:var(--muted);font-size:.72rem;line-height:1.35}.checklist-admin-grid .indicator-editor{margin-top:16px}.checklist-admin-grid .knowledge-options{margin:10px 0 0}
@media(max-width:980px){.checklist-version-header{align-items:stretch;flex-direction:column}.checklist-version-header .button{align-self:flex-start}}
/* v32.6.1 · Flujo de revisión del Plan Docente a ancho completo */
[data-admin-panel="plan-review"] .plan-review-process-full-width {
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}
[data-admin-panel="plan-review"] .plan-review-process-full-width > #plan-review-process-form {
  width: 100%;
  max-width: none;
}

/* v32.6.2 · flujo del Plan Docente a ancho completo real */
[data-admin-panel="plan-review"] > .plan-review-process-grid {
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}
[data-admin-panel="plan-review"] > .plan-review-process-grid > #plan-review-config-form,
[data-admin-panel="plan-review"] > .plan-review-process-grid > #plan-review-process-form {
  width: 100%;
  max-width: none;
}

.ai-job-toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 2500;
  max-width: min(460px, calc(100vw - 48px));
  padding: 14px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
  color: #25364d;
  font-size: .92rem;
  line-height: 1.45;
}
.ai-job-toast[data-kind="working"] { border-left: 4px solid #2563eb; }
.ai-job-toast[data-kind="success"] { border-left: 4px solid #15803d; }
.ai-job-toast[data-kind="error"] { border-left: 4px solid #b91c1c; }

.autosave-warning {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 2500;
  max-width: min(420px, calc(100vw - 48px));
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--error);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.45;
}

.editor-lock-notice {
  margin: 0 0 12px;
  padding: 9px 14px;
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  background: var(--gold-soft);
  color: #725616;
  font-size: .86rem;
  opacity: 0;
  transition: opacity .35s ease;
}
.editor-lock-notice.visible {
  opacity: 1;
}
#editor-lock-notice[hidden] {
  display: none;
}
#generation-output [data-institutional-heading] {
  cursor: default;
}
#generation-output pre {
  margin: 12px 0;
  padding: 12px 14px;
  border-radius: 8px;
  background: #f3f4f6;
  overflow-x: auto;
}
#generation-output pre code {
  display: block;
  font-family: "Courier New", Courier, monospace;
  font-size: .86rem;
  line-height: 1.5;
  white-space: pre;
  color: var(--ink);
}

.institutional-data-report-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.institutional-data-report {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid var(--border-color, #d8dee8);
  border-radius: 12px;
  background: var(--surface-soft, #f8fafc);
}
.institutional-data-report textarea {
  min-height: 110px;
}

/* v32.8.2 · flujo secuencial del Plan Docente */
.plan-methodology-actions,
.plan-planning-approval {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}
.plan-planning-approval {
  justify-content: space-between;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--border-color, #d7dde5);
  border-radius: 12px;
  background: var(--surface-soft, #f8fafc);
}
.plan-planning-approval p { margin: 0.25rem 0 0; }


/* v32.8.3 · flujo contextual del Plan Docente */
.teaching-plan-stage-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:12px;border:1px solid #c8d4df;border-radius:12px;background:#f8fafc}
.teaching-plan-stage-progress button{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;text-align:left;border:1px solid #d5dee7;border-radius:10px;background:#fff;padding:10px;color:#40566d;cursor:pointer;font:inherit}
.teaching-plan-stage-progress button:hover:not(.locked),.teaching-plan-stage-progress button:focus-visible:not(.locked){border-color:#0d66c2;outline:0;box-shadow:0 0 0 3px rgba(13,102,194,.1)}
.teaching-plan-stage-progress .stage-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e9eef3;color:#31516f;font-weight:900}
.teaching-plan-stage-progress strong,.teaching-plan-stage-progress small{display:block}.teaching-plan-stage-progress strong{font-size:.8rem;color:#17324f}.teaching-plan-stage-progress small{margin-top:2px;font-size:.7rem;color:#6c7e90}
.teaching-plan-stage-progress button.complete .stage-number{background:#e5f5eb;color:#13703a}.teaching-plan-stage-progress button.complete small{color:#13703a;font-weight:800}
.teaching-plan-stage-progress button.active{border-color:#0d66c2;background:#f4f9ff}.teaching-plan-stage-progress button.active .stage-number{background:#0d66c2;color:#fff}.teaching-plan-stage-progress button.active small{color:#0d66c2;font-weight:800}
.teaching-plan-stage-progress button.locked{cursor:default;opacity:.65}
.teaching-plan-document .plan-planning-approval{margin:18px 0 26px;border-color:#9fc0df;background:#f5f9fd}
.plan-stage-focus{animation:plan-stage-focus-pulse 1.8s ease-out}
@keyframes plan-stage-focus-pulse{0%{box-shadow:0 0 0 0 rgba(13,102,194,.32)}45%{box-shadow:0 0 0 8px rgba(13,102,194,.10)}100%{box-shadow:0 0 0 0 rgba(13,102,194,0)}}
.evaluated-activity-source-note{margin-bottom:12px}
@media(max-width:900px){.teaching-plan-stage-progress{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.teaching-plan-stage-progress{grid-template-columns:1fr}}

/* v32.9.1 · Configuración institucional de evaluación del Plan Docente */
.academic-config-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr)}
.evaluation-policy-table input,.evaluation-policy-table select{min-width:88px;width:100%}
.evaluation-policy-table td:first-child{white-space:nowrap}
.evaluation-weight-input{display:flex;align-items:center;gap:6px}.evaluation-weight-input span{font-weight:750;color:var(--muted)}
.evaluation-policy-totals{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft,#f7f9fb);color:var(--navy)}
.evaluation-policy-totals.invalid{border-color:#c98300;background:#fff8e8}.evaluation-policy-totals.valid{border-color:#6d9b7a;background:#f3faf5}
@media(max-width:900px){.academic-config-grid{grid-template-columns:1fr}}

.plan-template-status-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.plan-template-status-row .plan-template-applied {
  margin: 0;
  flex: 1 1 360px;
}
.plan-template-status-row .button.compact {
  width: auto;
  min-height: 36px;
  padding: 8px 14px;
}

/* v32.10.1 · Banco estructurado de preguntas */
.question-bank-modal-card {
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(17, 24, 39, .22);
  padding: 24px;
}
.question-bank-status {
  display: grid;
  gap: 8px;
  margin: 14px 0 18px;
}
.question-bank-status-card {
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  padding: 12px 14px;
  background: #f8fafc;
}
.question-bank-status-card strong { display: block; margin-bottom: 4px; }
.question-bank-config-section,
.question-bank-questions-section {
  border-top: 1px solid #e5e7eb;
  padding-top: 18px;
  margin-top: 18px;
}
.question-bank-topic-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.question-bank-topic-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
}
.question-bank-topic-item input { margin-top: 3px; }
.question-bank-type-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.question-bank-type-row {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 130px;
  gap: 12px;
  align-items: center;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 10px 12px;
}
.question-bank-type-row label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.question-bank-type-row input[type="number"] { width: 100%; }
.question-bank-total {
  margin-top: 10px;
  text-align: right;
  font-size: .95rem;
}
.question-bank-question-card {
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  padding: 0;
  margin: 10px 0;
  background: #fff;
}
.question-bank-question-card > summary {
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 650;
  background: #f8fafc;
  border-radius: 12px;
}
.question-bank-question-body {
  padding: 16px;
  display: grid;
  gap: 12px;
}
.question-bank-question-meta {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 12px;
}
.question-bank-options {
  display: grid;
  gap: 8px;
}
.question-bank-option-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.question-bank-option-row.matching {
  grid-template-columns: 54px minmax(0, 1fr) minmax(0, 1fr);
}
.question-bank-answer-list {
  display: grid;
  gap: 6px;
}
.question-bank-question-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
}
.question-bank-question-actions textarea {
  flex: 1 1 360px;
  min-height: 70px;
}
.question-bank-footer {
  position: sticky;
  bottom: -24px;
  margin: 22px -24px -24px;
  padding: 14px 24px;
  border-top: 1px solid #e5e7eb;
  background: rgba(255,255,255,.97);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.plan-question-bank-action {
  margin-top: 10px;
}
.question-bank-source-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: .78rem;
  background: #eef2f7;
}
@media (max-width: 760px) {
  .question-bank-modal-card { width: calc(100vw - 20px); max-height: calc(100vh - 20px); padding: 16px; }
  .question-bank-type-row,
  .question-bank-question-meta,
  .question-bank-option-row,
  .question-bank-option-row.matching { grid-template-columns: 1fr; }
  .question-bank-footer { bottom: -16px; margin: 18px -16px -16px; padding: 12px 16px; }
}

/* v32.10.1.3 · Ajustes visuales compactos para configuración académica y banco de preguntas */
.academic-config-grid {
  grid-template-columns: minmax(0, 1fr);
}
.academic-config-evaluation-card,
.academic-config-question-bank-card,
.academic-config-history-card {
  grid-column: 1 / -1;
}
.academic-config-question-bank-card > p {
  max-width: 920px;
}
.academic-config-question-bank-card > label {
  max-width: 460px;
}
.academic-config-question-bank-card .form-actions {
  justify-content: flex-start;
}

.question-bank-topic-list {
  gap: 10px;
}
.question-bank-topic-item {
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 10px 14px;
  background: #fff;
}
.question-bank-topic-item input {
  margin-top: 0;
  flex: 0 0 auto;
}
.question-bank-topic-copy {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.question-bank-topic-kicker {
  flex: 0 0 auto;
  font-size: .76rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
  color: var(--muted);
}
.question-bank-topic-text {
  min-width: 0;
  color: var(--navy);
  font-weight: 650;
}

.question-bank-type-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
  margin-top: 12px;
}
.question-bank-type-row {
  grid-template-columns: minmax(0, 1fr) 118px;
  gap: 16px;
  min-height: 82px;
  padding: 12px 14px;
  background: #fff;
}
.question-bank-type-row:has(input[data-question-type-enabled]:checked) {
  border-color: #c8d7e6;
  background: #fbfdff;
}
.question-bank-type-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  font-weight: 650;
  color: var(--navy);
}
.question-bank-type-toggle span {
  min-width: 0;
}
.question-bank-type-quantity {
  display: grid !important;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 5px !important;
  padding-left: 14px;
  border-left: 1px solid #e5e7eb;
}
.question-bank-type-quantity > span {
  font-size: .76rem;
  line-height: 1;
  color: var(--muted);
  font-weight: 750;
}
.question-bank-type-row input[type="number"] {
  min-width: 0;
  width: 100%;
}
.question-bank-type-row input[type="number"]:disabled {
  background: #f7f9fb;
  color: #8795a5;
}
.question-bank-total {
  margin-top: 14px;
  padding: 12px 14px;
  border-top: 1px solid #e5e7eb;
  background: #f8fafc;
  border-radius: 10px;
  color: var(--navy);
}
.question-bank-total strong {
  margin-left: 6px;
  font-size: 1.05rem;
}

@media (max-width: 900px) {
  .question-bank-type-list {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 560px) {
  .question-bank-topic-copy {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
  .question-bank-type-row {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }
  .question-bank-type-quantity {
    grid-template-columns: auto minmax(96px, 120px);
    align-items: center;
    padding-left: 0;
    padding-top: 10px;
    border-left: 0;
    border-top: 1px solid #e5e7eb;
  }
}

/* v32.10.1.4 · Correccion de desbordamiento horizontal del banco de preguntas */
.question-bank-modal-card {
  overflow-x: hidden;
}
.question-bank-topic-item input[type="checkbox"],
.question-bank-type-toggle input[type="checkbox"] {
  width: 18px !important;
  min-width: 18px;
  height: 18px;
  flex: 0 0 18px;
  padding: 0;
  margin: 0;
}
.question-bank-topic-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
}
.question-bank-topic-copy {
  width: 100%;
  overflow: hidden;
}
.question-bank-topic-text {
  overflow-wrap: anywhere;
}
.question-bank-type-toggle {
  width: 100%;
  overflow: hidden;
}
.question-bank-type-toggle span {
  overflow-wrap: anywhere;
}
.question-bank-type-row,
.question-bank-type-quantity,
.question-bank-type-toggle,
.question-bank-topic-item,
.question-bank-topic-copy {
  min-width: 0;
}

/* v32.10.2 · UX de banco de preguntas y correcciones de revisión */
.question-bank-option-row.correct-answer {
  border: 1px solid #8fc5a2;
  border-radius: 10px;
  background: #edf8f1;
  box-shadow: inset 4px 0 0 #2f8a52;
  padding: 8px 10px;
}
.question-bank-option-row.correct-answer .question-option-text {
  border-color: #8fc5a2;
  background: #fff;
}
.question-bank-option-row.correct-answer .question-option-answer {
  accent-color: #238447;
}

.teacher-correction-companion {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 960;
  width: min(620px, calc(100vw - 44px));
  display: grid;
  gap: 10px;
  padding: 15px 16px;
  border: 1px solid #d4b65f;
  border-radius: 14px;
  background: rgba(255, 252, 242, .985);
  box-shadow: 0 18px 48px rgba(15, 36, 58, .24);
}
.teacher-correction-companion.hidden { display: none; }
.teacher-correction-companion-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.teacher-correction-companion-heading > div {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}
.teacher-correction-companion-heading strong {
  color: var(--navy);
  line-height: 1.3;
}
.teacher-correction-companion-observation {
  margin: 0;
  color: #46596b;
  line-height: 1.45;
}
.teacher-correction-companion-observation strong { color: #713f13; }
.teacher-correction-companion > label:not(.teacher-correction-addressed) {
  display: grid;
  gap: 5px;
  color: var(--navy);
  font-size: .78rem;
  font-weight: 800;
}
.teacher-correction-companion textarea {
  min-height: 66px;
  resize: vertical;
}
.teacher-correction-companion-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.teacher-correction-companion-actions > span {
  margin-right: auto;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 750;
}

.review-checklist-item.carried-forward {
  border-color: #b9d8c4;
  background: #f8fdf9;
}
.review-carried-forward {
  display: grid;
  gap: 2px;
  padding: 9px 11px;
  border: 1px solid #b9d8c4;
  border-radius: 9px;
  background: #eaf6ee;
  color: #245e3b;
}
.review-carried-forward strong { font-size: .8rem; }
.review-carried-forward span { font-size: .74rem; line-height: 1.4; }
.review-checklist-item.carried-forward select,
.review-checklist-item.carried-forward textarea {
  background: #f3f7f4;
  color: #52665a;
}

@media (max-width: 760px) {
  .teacher-correction-companion {
    right: 10px;
    bottom: 10px;
    width: calc(100vw - 20px);
    max-height: 72vh;
    overflow-y: auto;
  }
  .teacher-correction-companion-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .teacher-correction-companion-actions > span { margin-right: 0; }
  .teacher-correction-companion-actions .button { width: 100%; }
}

.password-field{position:relative;display:block}
.password-field input{padding-right:46px}
.password-toggle{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.password-toggle:hover{background:#edf1f5;color:var(--navy)}
.password-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.password-rules{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px}
.password-rules li{font-size:13px;color:var(--error);line-height:1.35}
.password-rules li::before{content:"• ";}
.password-rules li.ok{color:var(--ok)}

.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.table-pagination[hidden]{display:none}
.table-pagination button{padding:7px 14px;border:1px solid #bcc9d7;border-radius:7px;background:#fff;color:var(--navy);cursor:pointer}
.table-pagination button:disabled{cursor:not-allowed;opacity:.5}
.table-pagination span{color:var(--muted);font-size:.85rem}
.catalog-table-message{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted)}

/* UAT-047: aviso para retomar el trabajo sin terminar */
.resume-project-banner { margin-bottom: 1rem; }
.resume-project-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .9rem 1.1rem; border: 1px solid #c7d2e5; border-left: 4px solid #1d3f72; border-radius: .5rem; background: #f4f7fb; }
.resume-project-card strong { display: block; color: #1d3f72; }
.resume-project-card span { display: block; font-size: .9rem; color: #4a5568; margin-top: .15rem; }
.resume-project-actions { display: flex; gap: .5rem; }

/* UAT-032: pestaña del banco de preguntas */
.question-bank-tab { width: auto; padding: 0 .9rem; margin-left: .6rem; font-size: .85rem; }
.question-bank-tab:disabled { opacity: .5; cursor: not-allowed; }
.question-bank-tab:not(:disabled) { border-color: #1d3f72; color: #1d3f72; font-weight: 600; cursor: pointer; }
.question-bank-tab:not(:disabled):hover { background: #eef2ff; }

/* UAT-032: cambio entre bancos de preguntas */
.question-bank-switcher { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .9rem; }
.question-bank-switch { display: flex; flex-direction: column; align-items: center; gap: .1rem; padding: .45rem .9rem; border: 1px solid #c7d2e5; border-radius: .4rem; background: #fff; color: #1d3f72; font-weight: 600; cursor: pointer; }
.question-bank-switch span { font-size: .75rem; font-weight: 400; color: #64748b; }
.question-bank-switch.current { background: #1d3f72; color: #fff; border-color: #1d3f72; }
.question-bank-switch.current span { color: #cbd5e1; }

/* Mensajes del asistente: la clase base es roja porque nació para errores. Esta variante
   la usan las confirmaciones (ver showMessage(texto, "success") en app.js). */
.form-message.success { background: #e8f7ef; color: #12623a; }

/* El pie del asistente queda fijado al fondo del formulario, que es el que hace scroll.
   Antes solo lo estaba la botonera y el mensaje quedaba por encima, fuera de la vista:
   el docente pulsaba «Continuar», el aviso se pintaba a varias pantallas de distancia y
   parecía que el botón no respondía. Ahora mensaje y botones son una sola pieza fija. */
.wizard-footer { position: sticky; bottom: 0; z-index: 3; background: white; }
.wizard-footer .wizard-actions { position: static; }
.wizard-footer .form-message {
  margin: 0 34px;
  border-left: 4px solid var(--error);
  font-weight: 700;
  animation: form-message-in .18s ease-out;
}
.wizard-footer .form-message.success { border-left-color: #12623a; }
/* La franja blanca sobre el mensaje evita que el contenido se vea correr por detrás. */
.wizard-footer .form-message:not(.hidden) { margin-top: 12px; margin-bottom: 12px; }
@keyframes form-message-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) { .wizard-footer .form-message { margin-left: 20px; margin-right: 20px; } }

/* Estado de cada cambio, a la vista. Con todo en blanco había que leer el texto
   de cada tarjeta para saber cuáles quedaban por decidir; en una lista de ocho,
   eso es recorrerla entera cada vez. La franja de la izquierda dice el estado y
   el desplegable lo repite, para no depender solo del color. */
.adaptation-change-card { border-left: 5px solid #cbd5df; }
.adaptation-change-card.decision-pending  { border-left-color: #d8a828; background: #fffdf6; }
.adaptation-change-card.decision-accepted { border-left-color: #1f8a4c; background: #f6fdf8; }
.adaptation-change-card.decision-edited   { border-left-color: #1c6ea8; background: #f5fbff; }

.adaptation-decision-select { font-weight: 700; }
.decision-pending  .adaptation-decision-select { border-color: #d8a828; color: #7a5c07; background: #fffaeb; }
.decision-accepted .adaptation-decision-select { border-color: #1f8a4c; color: #14532d; background: #f0faf3; }
.decision-edited   .adaptation-decision-select { border-color: #1c6ea8; color: #0f3f63; background: #eff8fe; }

/* El botón de guardar era secundario -blanco sobre blanco- y se perdía dentro
   de la tarjeta, que es donde más importa que se vea.
   Y va en su propia fila: al retirar la caja de comentario, que ocupaba el ancho
   entero, el botón se subió a la fila del desplegable y quedó descuadrado. */
.adaptation-review-controls .button[data-save-adaptation-change] {
  grid-column: 1 / -1;
  justify-self: start;
}
.adaptation-review-saved { grid-column: 1 / -1; color: #14532d; font-weight: 700; }
.decision-pending .adaptation-review-saved { color: #7a5c07; }

/* La cabecera del asistente es fija y el formulario ocupa lo que sobra. En un
   portátil pequeño quedaba un hueco de trabajo de apenas unos centímetros.
   Se recorta lo que solo es rótulo, nunca lo que se pulsa: el aviso de los
   documentos pierde márgenes, el recorrido se aprieta y el título del paso
   baja de tamaño. En pantallas altas no cambia nada. */
@media (max-height: 900px) {
  .adaptation-source-banner { margin: 10px 28px 0; padding: 9px 14px; font-size: .9rem; }
  .adaptation-source-banner .button { min-height: 38px; padding: 0 14px; }
  .steps { padding: 11px 42px; }
  .steps b { width: 27px; height: 27px; font-size: 12px; }
  .wizard-header { padding: 15px 32px 12px; }
  .wizard-header h2 { font-size: 22px; }
  .panel { padding-top: 18px; }
  .panel-title { margin-bottom: 16px; }
  .panel-title > b { font-size: 27px; }
}
@media (max-height: 760px) {
  /* Aquí apretar ya no basta: el aviso se queda solo con su título y el
     recorrido deja de escribir el nombre de cada paso, que se lee al pasar el
     ratón y se deduce del número. Los cinco círculos siguen visibles. */
  .adaptation-source-banner span { display: none; }
  .steps { padding: 8px 42px; }
  .steps span { font-size: 0; }
  .steps span b { font-size: 12px; }
  .wizard-header { padding: 11px 32px 9px; }
}

/* El botón de generar la semana se deshabilita mientras falte analizar y
   confirmar la Guía anterior, pero .generate no tenía estilo para ese estado:
   se veía igual de amarillo y llamativo. El docente lo pulsaba, no ocurría nada
   y no había forma de saber por qué. Un control apagado tiene que parecerlo. */
.generate:disabled {
  background: #e6e2d6;
  color: #7d7666;
  cursor: not-allowed;
}
.generate:disabled:hover { filter: none; transform: none; }
.button:disabled {
  filter: grayscale(.55) opacity(.62);
  cursor: not-allowed;
}
.button:disabled:hover { filter: grayscale(.55) opacity(.62); transform: none; }

/* Reintento del análisis de la guía. Deliberadamente discreto: no es una
   decisión que el profesor tenga que tomar -el análisis queda aprobado al
   terminar-, es la salida por si salió mal. Con aspecto de botón competiría con
   el de generar la semana, que es lo que sí debe hacer. */
.adaptation-reanalyze {
  margin: 14px 0 0;
  color: #5d6b7a;
  font-size: .84rem;
  line-height: 1.5;
}
.adaptation-reanalyze .link-button {
  padding: 0;
  border: 0;
  background: none;
  color: #1f5f9e;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.adaptation-reanalyze .link-button:hover { color: #14456f; }
.adaptation-reanalyze .link-button:disabled {
  color: #8d97a1;
  text-decoration: none;
  cursor: not-allowed;
}

/* La trazabilidad de la guía viene plegada: son trece tarjetas largas y no hay
   nada que decidir en ellas. El profesor viene a generar las semanas; si quiere
   comprobar de dónde sale cada cosa, la abre. */
.adaptation-traceability {
  border: 1px solid #dbe5ed;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.adaptation-traceability > summary {
  padding: 11px 13px;
  background: #f8fafc;
  color: var(--navy);
  font-size: .84rem;
  font-weight: 800;
  list-style-position: inside;
  cursor: pointer;
}
.adaptation-traceability[open] > summary { border-bottom: 1px solid #dbe5ed; }
.adaptation-traceability .adaptation-change-list { padding: 12px; }

/* Aviso de recolocación de semanas del Plan Docente. Ámbar, no rojo: no es un
   error -el Plan se generó y es correcto-, es algo que el profesor tiene que
   leer antes de confirmarlo. Y no se desvanece solo. */
.plan-alignment-notes {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #e6c86b;
  border-left: 4px solid #d5a93f;
  border-radius: 0 10px 10px 0;
  background: #fdf8ec;
  color: #5a4715;
  line-height: 1.5;
}
.plan-alignment-notes strong { display: block; margin-bottom: 6px; color: #4a3a10; }
.plan-alignment-notes ul { margin: 0; padding-left: 20px; }
.plan-alignment-notes li + li { margin-top: 6px; }


/* adaptación 16→8: distribución visual en dos etapas */
.adaptation-summary-metrics-compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:620px
}

.adaptation-proposal-week-card .adaptation-week-rationale{
  display:grid;
  gap:6px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #e2e8ee
}

.adaptation-proposal-week-card .adaptation-week-rationale>b{
  color:var(--navy)
}

.adaptation-distribution-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}

.adaptation-distribution-week{
  display:grid;
  align-content:start;
  gap:10px;
  min-width:0;
  padding:12px;
  border:1px solid #d6e1ea;
  border-radius:12px;
  background:#fbfcfd
}

.adaptation-distribution-week.edited{
  border-color:#8cc9a5;
  background:#f4fbf7
}

.adaptation-distribution-week-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding-bottom:7px;
  border-bottom:1px solid #e2e9ef
}

.adaptation-distribution-week-heading>strong{
  color:var(--navy);
  font-size:.95rem
}

.adaptation-distribution-content{
  min-width:0
}

@media(max-width:900px){
  .adaptation-distribution-grid,
  .adaptation-summary-metrics-compact{
    grid-template-columns:1fr
  }
}


/* adaptación 16→8: drag and drop docente */
.adaptation-distribution-help{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid #cfe0ee;
  border-radius:10px;
  background:#f4f9fd;
  color:#53677b;
  font-size:.82rem;
  line-height:1.45
}

.adaptation-drag-handle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  color:#607d98;
  font-size:1.05rem;
  font-weight:900;
  cursor:grab;
  user-select:none
}

.adaptation-distribution-week{
  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    background .15s ease
}

.adaptation-distribution-week.drop-allowed{
  border-style:dashed;
  border-color:#7ca6c7
}

.adaptation-distribution-week.drop-hover{
  border-style:solid;
  border-color:#2673ad;
  background:#f0f7fc;
  box-shadow:0 0 0 3px #2673ad1f
}

.adaptation-distribution-drop-hint{
  display:none;
  padding:7px 9px;
  border:1px dashed #8db2ce;
  border-radius:8px;
  color:#49677f;
  background:#fff;
  font-size:.72rem;
  font-weight:750;
  text-align:center
}

.adaptation-distribution-week.drop-allowed
.adaptation-distribution-drop-hint{
  display:block
}

.adaptation-distribution-unit{
  display:grid;
  gap:7px;
  padding:9px;
  border:1px solid #e1e8ee;
  border-radius:9px;
  background:#fff
}

.adaptation-distribution-unit-heading{
  display:flex;
  align-items:flex-start;
  gap:7px;
  min-width:0;
  padding:5px
}

.adaptation-distribution-unit-heading>strong{
  flex:1;
  color:var(--navy);
  font-size:.82rem;
  line-height:1.4
}

.adaptation-distribution-unit-heading>small{
  color:#62778b;
  font-size:.68rem;
  white-space:nowrap
}

.adaptation-distribution-unit-heading.is-draggable{
  cursor:grab;
  border-radius:7px;
  background:#f5f9fc
}

.adaptation-distribution-topics{
  display:grid;
  gap:6px
}

.adaptation-distribution-topic{
  display:grid;
  gap:5px;
  padding:8px 9px;
  border:1px solid #e2e8ee;
  border-radius:8px;
  background:#fbfcfd;
  color:#384e63;
  font-size:.8rem;
  line-height:1.4
}

.adaptation-distribution-topic.is-draggable{
  cursor:grab;
  border-color:#b8d0e2;
  background:#f4f9fd
}

.adaptation-distribution-topic.is-draggable:hover,
.adaptation-distribution-unit-heading.is-draggable:hover{
  border-color:#7ca6c7;
  box-shadow:0 1px 5px #163b5d14
}

.adaptation-distribution-topic.dragging,
.adaptation-distribution-unit-heading.dragging{
  opacity:.45;
  cursor:grabbing
}

.adaptation-distribution-topic-heading{
  display:flex;
  align-items:flex-start;
  gap:6px;
  min-width:0
}

.adaptation-distribution-topic-heading>span:nth-child(2){
  flex:1;
  min-width:0
}

.adaptation-distribution-topic-heading>small{
  color:#497897;
  font-size:.7rem;
  font-weight:850;
  white-space:nowrap
}

.adaptation-distribution-subcontents{
  display:grid;
  gap:3px;
  margin-left:23px;
  padding-left:9px;
  border-left:2px solid #e2e9ef;
  color:#53677b;
  font-size:.75rem
}

.adaptation-distribution-loose{
  display:grid;
  gap:4px;
  color:#53677b;
  font-size:.76rem
}

/* Fila 48 · panel de recursos y propuestas. Hasta ahora NINGUNA de estas clases
   tenia una sola regla: se pintaban con los estilos por defecto del navegador y
   quedaban como texto suelto entre bloques con marco. El panel de propuestas va
   en el dorado institucional, que es como el sistema marca ya lo que espera una
   decision de la docente. */
.propose-resources-panel{display:grid;gap:10px;margin:4px 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:white}
.propose-resources-panel>label[for]{color:var(--navy);font-size:13px;font-weight:800}
.propose-resources-panel select{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:white;max-width:420px}
.propose-resources-panel .button{justify-self:start}
.propose-resources-panel .field-help{margin:0;color:var(--muted);font-size:.86rem}
.propose-resources-here{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;font-weight:400}
.propose-resources-here input{width:auto;margin:0}
.resource-proposals{margin:4px 0 18px;padding:16px 18px;border:1px solid var(--gold);border-radius:12px;background:var(--gold-soft)}
.resource-proposals h4{margin:0 0 6px;color:var(--navy);font-size:15px}
.resource-proposals .editor-help{margin:0;color:var(--muted);font-size:.86rem}
.resource-proposal-list{display:grid;gap:12px;margin-top:12px}
.resource-proposal-card{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:white}
.resource-proposal-card[data-state="done"]{border-color:var(--ok)}
.resource-proposal-card[data-state="skipped"]{opacity:.55}
.resource-proposal-card strong{color:var(--navy);font-size:15px}
.resource-proposal-meta,.resource-proposal-anchor,.resource-proposal-leadin{margin:0;color:var(--muted);font-size:.88rem}
.resource-proposal-purpose{margin:0;font-size:.93rem}
.resource-proposal-status{margin:0;color:var(--ok);font-size:.9rem;font-weight:700}
.resource-proposal-actions{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.resource-proposals.hidden{display:none!important}

/* Indicaciones a la IA · la celda del texto se despliega, porque hay
   indicaciones de hasta 10 000 caracteres y no pueden romper la tabla. */
.ai-instruction-full{margin:8px 0 0;max-width:640px;white-space:pre-wrap;color:var(--ink);font-size:.9rem}
.admin-table details>summary{cursor:pointer;color:var(--navy2)}
.admin-table td small{display:block;color:var(--muted);font-size:.82rem}

/* Buscador de los desplegables de asignacion. El campo va encima del select,
   dentro de la misma etiqueta, y el contador debajo. */
.select-search{width:100%;margin:0 0 6px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:white}
.select-search-count{display:block;margin-top:4px;color:var(--muted);font-size:.82rem;font-weight:400}
