@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:Manrope,Arial,sans-serif;color:#20354a;background:#f4f7fa;font-size:14px}*{box-sizing:border-box}body{margin:0}.app{display:flex;min-height:100vh}.side{width:264px;flex-shrink:0;background:linear-gradient(165deg,#071c31,#0c304a);color:#d9e5ee;padding:34px 19px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 47px}.monogram{font-family:Georgia,serif;font-size:45px;color:#b9cbd5;line-height:1}.line{font-size:30px;color:#9bb7ca}.brand strong{font-size:16px;letter-spacing:1.6px;white-space:nowrap}.brand em{font-style:normal;color:#90bdd5}.brand small{display:block;font-size:8px;letter-spacing:2.2px;margin-top:7px;color:#8da5b8}.side-label{font-size:10px;letter-spacing:2px;color:#7e9cb1;padding:0 15px 16px}.nav{display:block;width:100%;border:0;border-radius:10px;background:transparent;color:#afc2d1;text-align:left;padding:16px;margin-bottom:5px;font:inherit;cursor:pointer}.nav.active,.nav:hover{background:#23455d;color:white}.side-bottom{margin-top:auto;padding:20px 10px 0;color:#829fb1;font-size:11px}.side-bottom small{display:block;margin-top:18px}.status{white-space:nowrap}.status i{display:inline-block;background:#d9ad68;width:7px;height:7px;border-radius:50%;margin-right:6px}main{width:calc(100% - 264px);max-width:1650px;padding:42px 46px 40px;margin:0 auto}.top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:32px}.eyebrow{color:#5e859d;font-size:10px;letter-spacing:2.5px;font-weight:800}.top h1{font-size:32px;letter-spacing:-1.3px;font-weight:600;margin:9px 0 8px}.top h1 span{font-weight:400;color:#7892a4}.top p{color:#8494a4;margin:0;font-size:13px}.top-actions,.tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{background:#e7f0f4;color:#48778d;font-size:10px;letter-spacing:1.2px;padding:11px 15px;border-radius:7px;font-weight:800}.outline{background:#fff;border:1px solid #d7e0e7;border-radius:8px;padding:11px 15px;color:#3d5c72;cursor:pointer;font:600 12px Manrope,Arial}.outline:hover{border-color:#7fa4ba;background:#f5f9fb}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:27px}.metrics article{background:white;border:1px solid #e6ebef;border-radius:12px;padding:22px;box-shadow:0 5px 18px #1a405208}.metrics span{display:block;font-size:10px;letter-spacing:1.5px;color:#8a9bab;font-weight:800}.metrics strong{display:block;font-size:32px;font-weight:600;margin:9px 0 3px;color:#153c55}.metrics small{color:#99a6b0;font-size:10px}.workspace{background:white;border:1px solid #e4eaf0;border-radius:14px;box-shadow:0 7px 25px #1b3c5010;overflow:hidden}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 27px 21px}.section-head h2{font-size:21px;font-weight:600;margin:7px 0 0}.selectors{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:16px;padding:20px 27px;background:#f7fafb;border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4}.selectors label{font-size:10px;letter-spacing:1.2px;font-weight:800;color:#6c8396}.selectors select,.selectors input{width:100%;display:block;margin-top:9px;border:1px solid #dce5eb;background:white;border-radius:8px;padding:12px;color:#28455a;font:500 13px Manrope,Arial;outline:none}.selectors input:focus,.selectors select:focus{border-color:#7aabc6}.tabs{display:flex;gap:8px;padding:20px 26px 12px;overflow:auto}.tabs button{border:0;background:transparent;color:#8195a4;padding:11px 13px;border-radius:7px;white-space:nowrap;font:600 12px Manrope,Arial;cursor:pointer}.tabs button.active{background:#e8f1f6;color:#1c5977}.table-wrap{overflow-x:auto;padding:0 26px 12px}table{width:100%;border-collapse:collapse;text-align:left;min-width:700px}thead{background:#f0f5f8}th{color:#688195;font-size:10px;letter-spacing:1px;font-weight:800;padding:16px 13px}td{border-bottom:1px solid #eef2f5;padding:11px 13px;color:#4c6577;font-size:12px}td:first-child{font-weight:600;color:#263e50;min-width:220px}td .grade{width:68px;text-align:center;border:1px solid transparent;background:#f6f9fb;border-radius:6px;padding:9px 4px;color:#23485e;font:600 12px Manrope,Arial}td .grade:focus{outline:2px solid #9bc5d9;background:white}td .grade.invalid{border-color:#c77b7b;background:#fff0f0}td .grade:disabled{background:#f2f3f4;color:#abb5bc}td .mean{background:#e9f2f7;color:#235d78;border-radius:6px;padding:7px 11px;font-weight:700}.table-footer{display:flex;justify-content:space-between;gap:15px;color:#9aa8b3;font-size:11px;padding:16px 27px 22px}.empty{padding:45px;text-align:center;color:#8ca0ae}.note{margin-top:20px;color:#72889a;font-size:11px;line-height:1.8}.note b{color:#3f647b}@media(max-width:1100px){.side{width:205px}main{width:calc(100% - 205px);padding:28px 22px}.metrics{grid-template-columns:repeat(2,1fr)}.brand strong{font-size:12px}}@media(max-width:700px){.app{display:block}.side{width:100%;padding:15px;display:block}.brand{padding:0 0 15px}.side-label,.side-bottom{display:none}.nav{display:inline-block;width:auto;padding:10px 11px;font-size:11px}main{width:100%;padding:22px 13px}.top,.section-head{display:block}.top-actions,.tools{margin-top:16px}.top h1{font-size:25px}.metrics{gap:8px}.metrics article{padding:14px}.metrics strong{font-size:25px}.metrics span{font-size:8px}.selectors{grid-template-columns:1fr;gap:12px;padding:16px}.section-head{padding:20px}.tabs{padding:14px}.table-wrap{padding:0 12px 10px}.table-footer{display:block;line-height:1.8}}

/* MEDHUB INDEX 1.1 · acentos institucionales y acciones por estudiante */
:root{--copper:#ad8764;--sea:#397b88;--wine:#995d66;--sage:#4c8476}
body{background:radial-gradient(circle at 82% 0%,#eaf2f7 0,transparent 38%),#f4f7fa}
.side{background:linear-gradient(160deg,#081e34 0%,#10374d 70%,#183d51 100%);border-right:2px solid #b08b66}
.brand em{color:#b7d2dd}.brand .monogram{color:#c9d5d8}.side-label{color:#b9a48e}
.nav.active{background:linear-gradient(90deg,#305568,#24475b);box-shadow:inset 3px 0 0 #c2a080}
.top h1 span{color:#528299}.pill{background:#e8f1f1;color:#38747b}
.metrics article{position:relative;overflow:hidden}.metrics article:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#668ea4}
.metrics article:nth-child(2):before{background:var(--sea)}.metrics article:nth-child(3):before{background:var(--sage)}.metrics article:nth-child(4):before{background:var(--copper)}
.metrics article:nth-child(3) strong{color:#3b7b6d}.metrics article:nth-child(4) strong{color:#a27c58}
.workspace{border-color:#dbe5e9}.section-head{background:linear-gradient(90deg,#fff 0%,#f6f9fb 100%)}
.selectors{grid-template-columns:1fr 1fr 1.35fr 1fr;background:#f2f7f8}.selectors label{color:#5e798a}
.tabs button.active{background:#dfeef0;color:#285e71;box-shadow:inset 0 -2px 0 #4f8491}
thead{background:#eaf2f4}th{color:#52768a}tbody tr:hover{background:#f8fbfc}
.tools-hint{font-size:10px;color:#8da0aa}.row-blocked{background:#fff8f7}.row-blocked:hover{background:#fff3f0}
.row-blocked .student-name{color:#8d5a62}.block-reason{display:block;font-size:10px;color:#9a7475;margin-top:5px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.state-tag{display:inline-block;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:700;white-space:nowrap}.is-active{background:#e8f4ef;color:#397665}.is-blocked{background:#fae8e6;color:#9a5058}
.actions-cell{min-width:205px}.row-actions{display:flex;gap:6px;margin-top:7px}.action-btn{border:1px solid #cbdce2;background:#f5fafb;color:#426d7b;border-radius:6px;font:600 10px Manrope,Arial;padding:7px 9px;cursor:pointer}.action-btn:hover{background:#e4f1f4}.action-btn.unblock{color:#367764;border-color:#c5ddd1}.action-btn.delete{color:#965b60;background:#fff9f8;border-color:#ead6d4}.action-btn.delete:hover{background:#fae9e7}
@media(max-width:1200px){.selectors{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.selectors{grid-template-columns:1fr}.tools-hint{display:block;width:100%}}

/* Confirmación institucional de eliminación */
.delete-overlay[hidden]{display:none!important}.delete-overlay{position:fixed;inset:0;z-index:9999;background:rgba(10,27,44,.65);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px}.modal-open{overflow:hidden}.delete-card{background:#fff;border:1px solid #e3e8ed;box-shadow:0 30px 95px rgba(8,24,39,.32);border-radius:18px;padding:28px;width:min(100%,520px);max-height:90vh;overflow-y:auto;color:#213c50}.delete-head{display:flex;align-items:center;justify-content:space-between}.delete-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff0ed;border:1px solid #e8c2ba;color:#a84c43;font-size:24px;font-weight:700}.delete-x{background:transparent;border:0;font-size:28px;color:#667b8a;cursor:pointer}.delete-card h2{font-size:21px;letter-spacing:-.4px;margin:17px 0 12px}.delete-person{background:#f5f8fa;border:1px solid #e5edf0;border-radius:10px;padding:13px 15px;line-height:1.6}.delete-person span{font-size:12px;color:#66798b}.delete-warning{margin:18px 0;border-left:3px solid #b85b51;background:#fff5f2;padding:14px 16px;border-radius:0 9px 9px 0}.delete-warning strong{font-size:11px;letter-spacing:1.1px;color:#a44740}.delete-warning p{font-size:13px;line-height:1.65;margin:8px 0 0;color:#5d4342}.delete-label{display:block;font-size:12px;margin:12px 0 9px}.delete-card #delete-confirm-text{display:block;width:100%;box-sizing:border-box;border:1px solid #c7d5dc;border-radius:9px;padding:12px 13px;font-size:14px;background:#fff;color:#263e4f}.delete-card #delete-confirm-text:focus{outline:2px solid #7b9eaf;outline-offset:2px}.delete-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}.delete-buttons button{border-radius:9px;padding:12px 15px;cursor:pointer;font-weight:650;font-size:12px}.delete-cancel{background:#f4f7f8;border:1px solid #ccd8dd;color:#365366}.delete-final{background:#a64e49;border:1px solid #a64e49;color:#fff}.delete-final:disabled{background:#e8d5d3;border-color:#e8d5d3;color:#8c7573;cursor:not-allowed}@media(max-width:500px){.delete-card{padding:19px}.delete-buttons button{width:100%}}
