:root{
  --navy:#153a5b;--navy-2:#1d4f78;--blue:#2f6e9e;--blue-soft:#eaf2f8;
  --bg:#f4f6f8;--panel:#fff;--line:#dfe5ea;--line-strong:#cbd5de;
  --text:#172332;--muted:#667483;--ok:#286b45;--ok-bg:#edf8f1;
  --warning:#84631d;--warning-bg:#fff8e8;--bad:#943b3b;--bad-bg:#fff1f1;
  --shadow:0 8px 28px rgba(21,58,91,.07);--shadow-soft:0 2px 12px rgba(21,58,91,.055);
  --radius:16px;--sidebar:238px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{border:0;border-radius:9px;background:var(--navy);color:#fff;padding:10px 14px;font-weight:700;cursor:pointer;transition:.16s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(21,58,91,.14)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.hide{display:none!important}.system-hooks,.system-internal{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.small{font-size:.88rem;color:var(--muted)}.eyebrow{display:block;margin-bottom:5px;color:var(--blue);font-size:.76rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}
.public-header{height:72px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.public-header-inner{max-width:1460px;height:100%;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(145deg,var(--navy),var(--blue));color:#fff;font-size:1.18rem;font-weight:800}.brand-copy b,.brand-copy small{display:block}.brand-copy b{font-size:.98rem;color:var(--navy)}.brand-copy small{font-size:.78rem;color:var(--muted);margin-top:1px}.top-user{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--navy);font-size:.82rem;font-weight:800}.top-user-copy{min-width:0}.top-user-copy b,.top-user-copy span{display:block;max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-user-copy b{font-size:.86rem;color:var(--navy)}.top-user-copy span{font-size:.75rem;color:var(--muted)}.ghost-button,.secondary-button{background:#edf2f6;color:var(--navy);box-shadow:none}.ghost-button{padding:8px 10px;font-size:.82rem;border:1px solid var(--line)}
.public-main{max-width:1460px;margin:0 auto;padding:30px 24px 64px}.login-card{max-width:900px;margin:7vh auto 0;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:1.25fr .75fr}.login-copy{padding:52px;background:linear-gradient(145deg,#f9fbfd,#edf4f9)}.login-copy h1{margin:.2rem 0 .8rem;color:var(--navy);font-size:2.1rem;line-height:1.15}.login-copy p{max-width:570px;margin:0;color:#506273;font-size:1.02rem}.login-action{padding:52px 38px;display:flex;flex-direction:column;justify-content:center}.microsoft-btn{min-height:50px;font-size:1rem;width:100%}.privacy-note{margin:13px 0 0;color:var(--muted);font-size:.8rem;text-align:center}
.notice{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0;font-size:.9rem}.notice.success{background:var(--ok-bg);border-color:#b8dac4;color:var(--ok)}.notice.warning{background:var(--warning-bg);border-color:#e3d09f;color:#745b21}.notice.error{background:var(--bad-bg);border-color:#e1bcbc;color:var(--bad)}
.global-auth-message{max-width:720px;margin:0 auto 16px}.teacher-toast{position:fixed;right:24px;top:86px;z-index:80;max-width:390px;box-shadow:var(--shadow);background:#fff}
.teacher-app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);gap:0;min-height:calc(100vh - 132px);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.teacher-sidebar{background:#f8fafb;border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column}.teacher-sidebar-title{padding:2px 10px 20px}.teacher-sidebar-title strong{display:block;color:var(--navy);font-size:1.15rem}.teacher-kicker{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.teacher-nav{display:grid;gap:5px}.teacher-nav-item{width:100%;display:flex;align-items:center;gap:10px;background:transparent;color:#415468;text-align:left;padding:11px 12px;border-radius:10px;box-shadow:none}.teacher-nav-item:hover:not(:disabled){transform:none;background:#edf3f7;box-shadow:none}.teacher-nav-item.active{background:var(--navy);color:#fff}.nav-icon{width:22px;text-align:center;font-size:1.05rem}.teacher-sidebar-footer{margin-top:auto;padding:18px 10px 4px;border-top:1px solid var(--line)}.teacher-sidebar-footer p{margin:0;color:var(--muted);font-size:.75rem}.teacher-workspace{min-width:0;padding:34px 38px 48px;background:#fbfcfd}.teacher-section{max-width:1160px;margin:0 auto}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h1{margin:.15rem 0 .35rem;color:var(--navy);font-size:1.75rem;line-height:1.2}.section-heading p{margin:0;color:var(--muted);max-width:740px}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.dashboard-heading{align-items:center}
.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;box-shadow:var(--shadow-soft)}.stat-card span,.stat-card small{display:block}.stat-card span{color:var(--muted);font-size:.78rem}.stat-card strong{display:block;margin:4px 0 2px;color:var(--navy);font-size:1.65rem;line-height:1.1}.stat-card small{color:#8a96a1;font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.surface-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:19px;box-shadow:var(--shadow-soft)}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.card-heading h2{margin:.1rem 0 .25rem;color:var(--navy);font-size:1.05rem}.card-heading p{margin:0;color:var(--muted);font-size:.86rem}.text-button{background:transparent;color:var(--blue);padding:5px 0;box-shadow:none;font-size:.82rem}.text-button:hover:not(:disabled){transform:none;box-shadow:none;text-decoration:underline}.subject-overview{display:grid;gap:9px}.subject-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fbfcfd}.subject-code{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:var(--blue-soft);color:var(--navy);font-weight:800}.subject-row b,.subject-row span{display:block}.subject-row b{color:#31475c;font-size:.9rem}.subject-row span{color:var(--muted);font-size:.76rem}.subject-count{text-align:right}.subject-count strong{display:block;color:var(--navy);font-size:1.05rem}.subject-count small{color:var(--muted);font-size:.7rem}.empty-state{padding:24px;text-align:center;border:1px dashed var(--line-strong);border-radius:11px;color:var(--muted);background:#fafcfd}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick-actions button{min-height:105px;background:#f8fafc;border:1px solid var(--line);color:var(--text);text-align:left;padding:13px;box-shadow:none}.quick-actions button:hover{background:#eef4f8;border-color:#c5d5e1;transform:none;box-shadow:none}.quick-actions button>span{display:block;color:var(--blue);font-size:1.15rem}.quick-actions b,.quick-actions small{display:block}.quick-actions b{margin-top:6px;color:var(--navy);font-size:.84rem}.quick-actions small{margin-top:2px;color:var(--muted);font-size:.71rem}
.two-column-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.form-grid label,.field-label,.monitor-controls label{font-size:.8rem;font-weight:700;color:#45596c}.form-grid input,.form-grid select,.field-label input,.field-label select,.monitor-controls input,.monitor-controls select,.field-label textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text);outline:none}.form-grid input:focus,.form-grid select:focus,.field-label input:focus,.field-label select:focus,.monitor-controls input:focus,.monitor-controls select:focus,.field-label textarea:focus{border-color:#83a8c4;box-shadow:0 0 0 3px rgba(47,110,158,.1)}.selected-group-summary{margin:13px 0;padding:13px;border-radius:10px;background:#f3f7fa;color:#41566a;font-size:.86rem}.compact-selector{margin-bottom:16px}.compact-selector .field-label{max-width:560px}.check-row{display:flex;align-items:flex-start;gap:8px;margin:10px 0 13px;color:#45596c;font-size:.84rem}.check-row input{margin-top:3px}.file-input{display:block;width:100%;padding:9px;border:1px dashed #afbfcc;border-radius:9px;background:#fbfcfd;margin:10px 0 12px}.table-card{margin-top:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.roster-table{width:100%;border-collapse:collapse;min-width:760px}.roster-table th,.roster-table td{padding:10px 11px;border-bottom:1px solid #e8edf1;text-align:left;vertical-align:top}.roster-table th{background:#f6f8fa;color:#526477;font-size:.73rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.roster-table td{font-size:.84rem}.roster-table tr:last-child td{border-bottom:0}.roster-actions{display:flex;flex-wrap:wrap;gap:5px}.roster-actions button{padding:6px 8px;font-size:.75rem}.roster-actions select{padding:6px;border:1px solid var(--line-strong);border-radius:7px;font-size:.76rem;max-width:160px}.pill,.state-pill{display:inline-block;border-radius:999px;padding:3px 7px;font-size:.71rem;font-weight:800;background:#eef2f5;color:#5c6975}.pill.active,.state-pill.finalizado{background:#e8f5ed;color:#23633f}.pill.inactive,.state-pill.interrumpido{background:#fff8e8;color:#76591d}.pill.removed,.state-pill.bloqueado{background:#fff1f1;color:#783535}.state-pill.en_curso{background:#e8f1f8;color:var(--navy)}.state-pill.no_iniciado{background:#f1f3f5;color:#65717c}
.upload-card{margin-bottom:16px}.upload-copy{display:flex;align-items:flex-start;gap:13px}.upload-icon{width:42px;height:42px;flex:0 0 42px;border-radius:11px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:1.3rem;font-weight:700}.upload-copy h2{margin:0 0 4px;color:var(--navy);font-size:1.05rem}.upload-copy p{margin:0;color:var(--muted);font-size:.86rem}.upload-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:13px}.upload-controls .file-input{margin:0}.encounters-table{min-width:790px}
.monitor-controls-card{margin-bottom:14px}.monitor-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.monitor-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:13px 0}.monitor-metrics article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.monitor-metrics span{display:block;color:var(--muted);font-size:.72rem}.monitor-metrics b{display:block;margin-top:3px;color:var(--navy);font-size:1.4rem}.monitor-updated{text-align:right;margin-bottom:8px}.monitor-table{min-width:1260px}.monitor-table td{font-size:.8rem}.attention-row{background:#fffaf3}.text-bad{color:var(--bad);font-weight:700}
.student-legacy-card{max-width:1100px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow-soft)}.student-legacy-card h1{color:var(--navy);margin:.2rem 0 1rem}.subject-list{margin-top:14px}.subject-resource-group{margin-bottom:22px}.subject-resource-group>h3{color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:8px}.resource-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.resource-item{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fbfcfd}.resource-item h3{color:var(--navy);font-size:1rem}.resource-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px}.resource-meta>div{padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff}.resource-meta span,.resource-meta b{display:block}.resource-meta span{font-size:.7rem;color:var(--muted)}.resource-meta b{font-size:.8rem;color:#40566a}.resource-note{font-size:.8rem;color:var(--muted);margin-top:8px}.resource-actions{margin-top:10px}.resource-item.completed{background:#f4faf6}.resource-item.blocked{background:#fffaf0}
.attempt-dialog{width:min(980px,94vw);max-height:90vh;border:1px solid var(--line);border-radius:16px;padding:0;background:#f8fafb;color:var(--text)}.attempt-dialog::backdrop{background:rgba(15,27,38,.45)}.dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;background:#fff;border-bottom:1px solid var(--line)}.dialog-head h2{margin:.1rem 0;color:var(--navy)}.attempt-dialog>.readonly-grid,.attempt-dialog>.detail-columns,.attempt-dialog>.surface-card{margin-left:20px;margin-right:20px}.readonly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;margin-top:16px}.readonly-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.readonly-grid span,.readonly-grid b{display:block}.readonly-grid span{font-size:.73rem;color:var(--muted)}.readonly-grid b{color:var(--navy);font-size:.9rem}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.detail-list{margin:.2rem 0;padding-left:1.2rem}.detail-list li{margin:6px 0}.audit-card{margin-top:12px}.audit-list{list-style:none;padding:0;margin:0;max-height:260px;overflow:auto}.audit-list li{padding:8px 0;border-bottom:1px solid var(--line)}.audit-list b{color:var(--navy);margin-right:6px}.audit-list span,.audit-list small{color:var(--muted);font-size:.78rem}.audit-list small{display:block;margin-top:2px}.unlock-card{margin-top:12px!important;margin-bottom:20px!important;background:#fffaf2}.unlock-card textarea{min-height:74px;resize:vertical}
@media(max-width:1100px){.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.monitor-controls{grid-template-columns:1fr 1fr}.monitor-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:840px){.public-main{padding:18px 14px 48px}.public-header-inner{padding:0 14px}.teacher-app{grid-template-columns:1fr;border-radius:14px}.teacher-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:10px;position:sticky;top:72px;z-index:25}.teacher-sidebar-title,.teacher-sidebar-footer{display:none}.teacher-nav{grid-template-columns:repeat(5,1fr);gap:4px}.teacher-nav-item{justify-content:center;padding:8px 5px;font-size:.72rem}.teacher-nav-item .nav-icon{display:none}.teacher-workspace{padding:24px 16px 40px}.two-column-layout,.detail-columns{grid-template-columns:1fr}.login-card{grid-template-columns:1fr;margin-top:24px}.login-copy,.login-action{padding:32px}.top-user-copy{display:none}}
@media(max-width:600px){.brand-copy small{display:none}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats .stat-card{padding:13px}.stat-card strong{font-size:1.35rem}.quick-actions{grid-template-columns:1fr 1fr}.form-grid,.monitor-controls{grid-template-columns:1fr}.monitor-metrics{grid-template-columns:1fr 1fr}.upload-controls{grid-template-columns:1fr}.section-heading{display:block}.section-actions{margin-top:12px}.teacher-nav-item span:last-child{font-size:.66rem}.public-header{height:64px}.teacher-sidebar{top:64px}.login-copy h1{font-size:1.65rem}}

/* ===== Panel docente por asignatura · jerarquía visual y color ===== */
.teacher-app{--subject-accent:#2f6e9e;--subject-deep:#1d4f78;--subject-soft:#eaf2f8}
.teacher-sidebar{background:linear-gradient(180deg,#153a5b 0%,#1d4f78 62%,#173e60 100%);border-right:0;box-shadow:8px 0 24px rgba(21,58,91,.08)}
.teacher-sidebar-title strong,.teacher-sidebar-title .teacher-kicker{color:#fff}.teacher-sidebar-title .teacher-kicker{opacity:.7}
.teacher-nav-item{color:#e7eff5}.teacher-nav-item:hover:not(:disabled){background:rgba(255,255,255,.10);color:#fff}.teacher-nav-item.active{background:#fff;color:var(--navy);box-shadow:0 5px 16px rgba(5,29,49,.16)}
.teacher-sidebar-footer{border-top:1px solid rgba(255,255,255,.16)}.teacher-sidebar-footer span{display:block;color:#bcd0df;font-size:.69rem;text-transform:uppercase;letter-spacing:.07em}.teacher-sidebar-footer p{margin:4px 0 0;color:#fff;font-size:.92rem;font-weight:800}
.teacher-workspace{background:linear-gradient(180deg,#f8fafc 0%,#fbfcfd 210px,#fbfcfd 100%)}
.subject-switcher-shell{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 auto 24px;max-width:1160px;padding:15px 17px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft)}
.subject-switcher-copy{min-width:210px}.subject-switcher-copy strong{display:block;color:var(--navy);font-size:.92rem}.subject-switcher-copy .eyebrow{margin-bottom:2px}
.subject-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;flex:1;max-width:700px}.subject-switch-button{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 11px;background:#f7f9fb;border:1px solid var(--line);color:var(--text);text-align:left;box-shadow:none}.subject-switch-button:hover:not(:disabled){transform:none;box-shadow:none;background:#f0f5f8}.subject-switch-button .subject-roman{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;font-weight:900;background:#e9eef2;color:#49647b}.subject-switch-button b,.subject-switch-button small{display:block}.subject-switch-button b{font-size:.84rem;color:#31485d}.subject-switch-button small{font-size:.68rem;color:var(--muted);margin-top:1px}


.teacher-section .section-heading h1 span[data-current-subject-name]{color:var(--subject-accent)}
.dashboard-stats .stat-card{position:relative;overflow:hidden;border-top:3px solid var(--subject-accent)}.dashboard-stats .stat-card::after{content:"";position:absolute;right:-22px;top:-25px;width:80px;height:80px;border-radius:50%;background:var(--subject-soft);opacity:.8}.dashboard-stats .stat-card strong{position:relative;z-index:1}.stat-card.stat-subject{background:linear-gradient(145deg,#fff,var(--subject-soft))}.stat-card.stat-subject strong{font-size:1.18rem;color:var(--subject-deep);margin-top:7px}
.surface-card{border-color:#d7e0e7}.surface-card>.card-heading{border-bottom:1px solid #edf1f4;padding-bottom:12px}.card-heading .eyebrow{color:var(--subject-accent)}
.subject-overview{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.subject-row.subject-panel-card{width:100%;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;background:#fff;color:var(--text);text-align:left;padding:14px;border:1px solid var(--line);box-shadow:none;position:relative}.subject-row.subject-panel-card:hover{transform:none;box-shadow:0 5px 16px rgba(21,58,91,.08);border-color:#b9cbd9}.subject-panel-card .subject-code{grid-row:1/3;width:46px;height:46px}.subject-panel-card>div:nth-child(2) b{font-size:.93rem}.subject-panel-card>div:nth-child(2) small{display:block;color:#85919d;font-size:.69rem;margin-top:3px}.subject-panel-card .subject-count{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:9px;border-top:1px solid #edf1f4;text-align:left}.subject-panel-card .subject-count strong{font-size:1.15rem}.subject-panel-card .subject-count small{margin-left:5px}.subject-panel-card .subject-count em{margin-left:auto;font-style:normal;font-size:.7rem;font-weight:800;color:var(--blue)}
.quick-actions button{border-left:4px solid var(--subject-accent);background:linear-gradient(145deg,#fff,#f7fafc)}.quick-actions button>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--subject-soft);color:var(--subject-deep)}
.selected-group-summary{border-left:4px solid var(--subject-accent);background:var(--subject-soft)}
.form-grid select:disabled{background:#f0f4f6;color:#526678;border-color:#d6e0e7;opacity:1}
.roster-table th{background:var(--subject-soft);color:var(--subject-deep)}.upload-icon{background:var(--subject-soft);color:var(--subject-deep)}
.monitor-metrics article{border-top:3px solid var(--subject-accent)}
.teacher-section button:not(.secondary-button):not(.text-button):not(.subject-panel-card):not(.subject-switch-button):not(.teacher-nav-item):not(.ghost-button){background:var(--subject-deep)}
@media(max-width:1100px){.subject-switcher-shell{align-items:flex-start;flex-direction:column}.subject-switcher{width:100%;max-width:none}.subject-overview{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}}
@media(max-width:840px){.teacher-sidebar{background:#153a5b}.subject-switcher-shell{margin-bottom:18px}.subject-switcher-copy{display:none}.subject-switcher{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.subject-switch-button{justify-content:center}.subject-switch-button>span:last-child small{display:none}.subject-overview{grid-template-columns:1fr}.teacher-nav-item.active{background:#fff;color:var(--navy)}}
@media(max-width:600px){.subject-switcher-shell{padding:9px}.subject-switch-button{padding:7px 5px;gap:5px;min-width:0}.subject-switch-button .subject-roman{width:30px;height:30px;flex-basis:30px}.subject-switch-button b{font-size:.72rem}.subject-switch-button>span:last-child{min-width:0}.dashboard-stats .stat-subject strong{font-size:1rem}}

/* ===== Ajuste visual · Acciones rápidas: mayor contraste y legibilidad ===== */
.quick-actions-card .card-heading h2{
  font-size:1.18rem;
  font-weight:800;
  color:#173a59;
}
.quick-actions{
  gap:12px;
}
.quick-actions button{
  min-height:124px;
  padding:16px 16px 15px;
  border:1px solid #cbd7e1;
  border-left:5px solid var(--subject-accent);
  background:#ffffff;
  color:#172332;
  box-shadow:0 2px 9px rgba(21,58,91,.055);
}
.quick-actions button:hover:not(:disabled){
  background:linear-gradient(145deg,#ffffff,var(--subject-soft));
  border-color:#aebfcd;
  border-left-color:var(--subject-deep);
  box-shadow:0 5px 16px rgba(21,58,91,.09);
  transform:translateY(-1px);
}
.quick-actions button>span{
  width:36px;
  height:36px;
  border-radius:10px;
  font-size:1.28rem;
  font-weight:800;
  background:var(--subject-soft);
  color:var(--subject-deep);
}
.quick-actions b{
  margin-top:9px;
  color:#173a59;
  font-size:1.02rem;
  line-height:1.25;
  font-weight:800;
  letter-spacing:.005em;
}
.quick-actions small{
  margin-top:5px;
  color:#43576a;
  font-size:.82rem;
  line-height:1.38;
  font-weight:500;
}
@media(max-width:600px){
  .quick-actions button{min-height:116px;padding:14px}
  .quick-actions b{font-size:.96rem}
  .quick-actions small{font-size:.78rem}
}

/* ===== Corrección solicitada · Acciones rápidas: título negro + descripción blanca ===== */
.quick-actions button{
  background:linear-gradient(145deg,var(--subject-accent),var(--subject-deep)) !important;
  border-color:var(--subject-deep) !important;
  border-left-color:rgba(255,255,255,.82) !important;
  color:#fff !important;
}
.quick-actions button:hover:not(:disabled){
  background:linear-gradient(145deg,var(--subject-deep),var(--subject-accent)) !important;
  border-color:var(--subject-deep) !important;
  box-shadow:0 7px 18px rgba(21,58,91,.18);
}
.quick-actions button>span{
  background:rgba(255,255,255,.94) !important;
  color:var(--subject-deep) !important;
}
.quick-actions b{
  display:inline-block;
  width:max-content;
  max-width:100%;
  margin-top:10px;
  padding:4px 8px;
  border-radius:6px;
  background:rgba(255,255,255,.96);
  color:#050505 !important;
  font-size:1.04rem;
  line-height:1.25;
  font-weight:850;
}
.quick-actions small{
  display:block;
  margin-top:7px;
  color:#ffffff !important;
  font-size:.88rem;
  line-height:1.42;
  font-weight:650;
  text-shadow:0 1px 2px rgba(0,0,0,.20);
}
@media(max-width:600px){
  .quick-actions b{font-size:.98rem}
  .quick-actions small{font-size:.84rem}
}

/* ===== Vista estudiante para pruebas del docente ===== */
.teacher-preview-entry{margin-top:auto;padding:14px 12px 10px;border-top:1px solid rgba(255,255,255,.12)}
.teacher-preview-entry small{display:block;margin-top:7px;color:rgba(255,255,255,.72);font-size:.76rem;line-height:1.35}
.teacher-preview-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.42)!important;background:rgba(255,255,255,.12)!important;color:#fff!important;border-radius:10px;padding:10px 12px!important;font-weight:800;cursor:pointer}
.teacher-preview-button:hover{background:rgba(255,255,255,.20)!important}
.teacher-preview-button span{font-size:1rem}
.teacher-preview-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:16px;padding:14px 16px;border:1px solid #b9cddd;border-radius:14px;background:#eef5fa;box-shadow:0 2px 8px rgba(21,58,91,.06)}
.teacher-preview-banner.hide{display:none}
.teacher-preview-banner>div:first-child{display:grid;gap:2px}
.teacher-preview-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#456985}
.teacher-preview-banner b{font-size:1.12rem;color:#173a59}
.teacher-preview-banner small{color:#51677a;font-size:.9rem}
.teacher-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.teacher-preview-actions button{white-space:nowrap}
.teacher-preview-status{grid-column:1/-1;margin:0}
@media(max-width:760px){.teacher-preview-banner{grid-template-columns:1fr}.teacher-preview-actions{justify-content:stretch}.teacher-preview-actions button{flex:1 1 210px}}
.teacher-preview-entry + .teacher-sidebar-footer{margin-top:0}
@media(max-width:840px){.teacher-preview-entry{display:none}}

/* ===== Colores dinámicos de asignatura · plantilla reutilizable ===== */
.subject-switch-button .subject-roman{background:var(--item-soft,#e9eef2);color:var(--item-deep,#49647b)}
.subject-switch-button.active{background:linear-gradient(135deg,var(--item-accent,#3779aa),var(--item-deep,#1d4f78));border-color:var(--item-deep,#1d4f78);color:#fff}
.subject-switch-button.active b,.subject-switch-button.active small{color:#fff}.subject-switch-button.active small{opacity:.84}.subject-switch-button.active .subject-roman{background:rgba(255,255,255,.18);color:#fff}
.subject-panel-card .subject-code{background:var(--subject-soft);color:var(--subject-deep)}

/* =====================================================================
   FASE RESPONSIVA MOVIL · Panel docente + vista estudiante
   Aplicado: 2026-08-30
   Objetivo:
   - Mantener visibles todas las acciones en celular.
   - Recuperar "Vista estudiante" en el panel docente.
   - Evitar desbordamientos de tarjetas, formularios, dialogos y tablas.
   - Mejorar tamanos tactiles y distribucion en pantallas estrechas.
   ===================================================================== */

@media (max-width:840px){
  html,body{max-width:100%;overflow-x:hidden}

  /* Panel docente */
  .teacher-app{
    width:100%;
    min-width:0;
    overflow:visible;
  }
  .teacher-sidebar{
    position:sticky;
    top:64px;
    z-index:30;
    width:100%;
    min-width:0;
    padding:9px 10px 10px;
    border-bottom:1px solid rgba(255,255,255,.14);
    box-shadow:0 5px 14px rgba(21,58,91,.14);
  }
  .teacher-nav{
    width:100%;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:5px;
  }
  .teacher-nav-item{
    min-width:0;
    min-height:44px;
    padding:7px 4px;
    justify-content:center;
    text-align:center;
    white-space:normal;
    line-height:1.15;
  }
  .teacher-nav-item span:last-child{
    min-width:0;
    overflow-wrap:anywhere;
  }

  /* Antes estaba oculto en movil. Ahora queda siempre disponible. */
  .teacher-preview-entry{
    display:block;
    width:100%;
    margin:8px 0 0;
    padding:8px 0 0;
    border-top:1px solid rgba(255,255,255,.18);
  }
  .teacher-preview-entry small{display:none}
  .teacher-preview-button{
    width:100%;
    min-height:44px;
    padding:9px 12px!important;
    font-size:.82rem;
  }

  .teacher-workspace{
    width:100%;
    min-width:0;
    padding:20px 14px 36px;
    overflow:hidden;
  }
  .teacher-section,
  .subject-switcher-shell,
  .surface-card,
  .table-card{
    min-width:0;
    max-width:100%;
  }

  .section-heading{
    gap:12px;
    flex-wrap:wrap;
  }
  .section-actions{
    width:100%;
    justify-content:flex-start;
  }
  .section-actions button{
    min-height:44px;
  }

  .subject-switcher{
    width:100%;
    min-width:0;
  }
  .subject-switch-button{
    min-width:0;
    overflow:hidden;
  }

  .form-grid input,
  .form-grid select,
  .field-label input,
  .field-label select,
  .field-label textarea,
  .monitor-controls input,
  .monitor-controls select,
  .file-input{
    min-width:0;
    max-width:100%;
  }

  .table-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .attempt-dialog{
    width:calc(100vw - 20px);
    max-width:calc(100vw - 20px);
    max-height:92vh;
    margin:auto;
  }
  .attempt-dialog>.readonly-grid,
  .attempt-dialog>.detail-columns,
  .attempt-dialog>.surface-card{
    margin-left:12px;
    margin-right:12px;
  }
  .dialog-head{
    padding:14px;
  }

  /* Panel estudiante */
  .student-app{
    width:100%;
    min-width:0;
    overflow:visible;
  }
  .student-sidebar{
    width:100%;
    min-width:0;
  }
  .student-nav{
    width:100%;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .student-nav-item{
    min-width:0;
    min-height:44px;
    text-align:center;
    white-space:normal;
    line-height:1.15;
  }
  .student-workspace,
  .student-section,
  .student-surface-card,
  .student-hero,
  .student-subject-switcher-shell{
    min-width:0;
    max-width:100%;
  }
  .student-hero-actions button,
  .student-encounter-action button{
    min-height:44px;
  }

  .teacher-preview-banner{
    width:100%;
    min-width:0;
  }
  .teacher-preview-actions{
    width:100%;
  }
  .teacher-preview-actions button{
    min-height:44px;
  }
}

@media (max-width:600px){
  /* Navegacion docente: dos filas legibles en vez de cinco botones comprimidos */
  .teacher-nav{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .teacher-nav-item{
    font-size:.72rem;
    padding:8px 5px;
  }
  .teacher-nav-item span:last-child{
    font-size:.72rem;
  }

  .teacher-workspace{
    padding:16px 11px 30px;
  }
  .section-heading h1{
    font-size:1.45rem;
  }
  .section-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  .section-actions button{
    width:100%;
  }

  .subject-switcher-shell{
    width:100%;
    padding:8px;
    overflow:hidden;
  }
  .subject-switcher{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }
  .subject-switch-button{
    min-height:52px;
    padding:6px 4px;
  }

  /* Acciones rapidas: una columna para evitar tarjetas demasiado estrechas */
  .quick-actions{
    grid-template-columns:1fr;
  }
  .quick-actions button{
    min-height:96px;
    width:100%;
  }

  .surface-card,
  .student-surface-card{
    padding:15px;
  }

  .card-heading,
  .student-card-heading{
    flex-wrap:wrap;
  }

  .upload-copy{
    min-width:0;
  }
  .upload-controls button{
    width:100%;
    min-height:44px;
  }

  /* Controles del modal */
  .dialog-head{
    align-items:center;
  }
  .dialog-head button{
    flex:0 0 auto;
  }

  /* Vista estudiante del docente */
  .teacher-preview-banner{
    padding:12px;
  }
  .teacher-preview-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .teacher-preview-actions button{
    width:100%;
  }

  /* Panel estudiante */
  .student-nav-item{
    padding:8px 4px;
    font-size:.72rem;
  }
  .student-subject-switcher{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }
  .student-subject-button{
    min-width:0;
  }
  .student-hero,
  .student-encounter-card{
    width:100%;
  }
}

@media (max-width:430px){
  .public-header-inner{
    gap:8px;
    padding:0 10px;
  }
  .brand{
    min-width:0;
  }
  .brand-copy b{
    max-width:150px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .top-user{
    gap:6px;
  }
  .avatar{
    width:34px;
    height:34px;
  }

  .teacher-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .teacher-preview-button{
    font-size:.8rem;
  }

  .dashboard-stats{
    grid-template-columns:1fr;
  }
  .monitor-metrics{
    grid-template-columns:1fr;
  }

  .subject-switch-button .subject-roman{
    width:28px;
    height:28px;
    flex-basis:28px;
  }
  .subject-switch-button b{
    font-size:.68rem;
  }

  .student-summary{
    grid-template-columns:1fr;
  }
  .student-nav{
    grid-template-columns:1fr;
  }
  .student-nav-item{
    justify-content:flex-start;
    text-align:left;
    padding:10px 12px;
  }
  .student-nav-item .nav-icon{
    display:inline-block;
  }
  .student-subject-switcher{
    grid-template-columns:1fr;
  }
  .student-subject-button{
    justify-content:flex-start;
  }
  .student-encounter-details{
    grid-template-columns:1fr;
  }
  .student-encounter-details .student-score{
    grid-column:auto;
  }
  .student-grade-item{
    grid-template-columns:46px minmax(0,1fr) 62px;
  }
}

/* AJUSTE SIGLAS LARGAS - SELECTOR DE ASIGNATURA */
.subject-switch-button .subject-roman{
  width:auto;
  min-width:56px;
  height:34px;
  flex:0 0 auto;
  padding:0 8px;
  box-sizing:border-box;
  white-space:nowrap;
}

.subject-switch-button > span:last-child{
  min-width:0;
  flex:1 1 auto;
}

@media(max-width:600px){
  .subject-switch-button{
    justify-content:flex-start;
    gap:8px;
  }

  .subject-switch-button .subject-roman{
    width:auto;
    min-width:52px;
    height:30px;
    flex-basis:auto;
    padding:0 6px;
  }
}

/* AJUSTE VISTA ESTUDIANTE - ESTILOS BASE */

.student-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:18px 0 22px;
}

.student-summary article{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  min-width:0;
}

.student-summary article span{
  font-size:.82rem;
  color:var(--muted);
}

.student-summary article strong{
  font-size:1.65rem;
  line-height:1;
  color:var(--navy);
}

.student-summary article small{
  font-size:.76rem;
  color:var(--muted);
}

.student-subject-switcher{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
}

.student-subject-button{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  width:100%;
  min-width:0;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  text-align:left;
}

.student-subject-button.active{
  border-color:var(--navy);
}

.student-subject-roman{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  height:34px;
  padding:0 8px;
  border-radius:10px;
  font-weight:700;
  white-space:nowrap;
}

.student-subject-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}

.student-subject-copy b{
  display:block;
  line-height:1.2;
}

.student-subject-copy small{
  display:block;
  line-height:1.3;
  color:var(--muted);
}

.student-subject-count{
  white-space:nowrap;
  font-size:.8rem;
  color:var(--muted);
}

.student-empty-state{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px 0;
}

.student-empty-state b{
  display:block;
  line-height:1.3;
}

.student-empty-state span{
  display:block;
  line-height:1.4;
  color:var(--muted);
}

/* VISIBILIDAD TARJETA DE ASIGNATURA - VISTA ESTUDIANTE */

.student-subject-button{
  color:var(--text);
}

.student-subject-roman{
  background:#e9eef2;
  color:#49647b;
}

.student-subject-copy b{
  color:var(--navy);
}

.student-subject-button.active{
  background:#fff;
  color:var(--text);
}

/* SEPARACIÓN ENTRE ASIGNATURAS Y ENCUENTROS - VISTA ESTUDIANTE */

.student-subject-shell{
  margin-bottom:24px;
}

/* AJUSTE TARJETAS DE ASIGNATURAS - INICIO */

.subject-row.subject-panel-card{
  grid-template-columns:72px minmax(0,1fr);
  gap:14px;
  align-items:start;
}

.subject-panel-card .subject-code{
  width:86px;
  min-width:86px;
  height:64px;
  padding:0 10px;
  box-sizing:border-box;
  white-space:nowrap;
  display:grid;
  place-items:center;
  align-self:center;
  justify-self:center;
  text-align:center;
}

.subject-panel-card>div:nth-child(2){
  min-width:0;
}

.subject-panel-card>div:nth-child(2) b{
  line-height:1.25;
}

.subject-panel-card>div:nth-child(2) small{
  line-height:1.35;
}

.subject-panel-card .subject-count{
  grid-column:1/3;
  margin-top:12px;
}

