:root{--ink:#172033;--muted:#667085;--line:#d8dee9;--bg:#f7f8fb;--panel:#fff;--brand:#8f1d2c;--brand-2:#c92b37;--gold:#f7b733;--accent:#0f766e;--ok:#15803d;--bad:#b91c1c}
html,body{min-height:100vh}
body{min-height:100vh}
dialog#formModal{width:min(1120px,96vw);background:#fbfcff}
#formModal .modal-head{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;padding:24px 28px}
#formModal .modal-head h2{font-size:30px;line-height:1.1;color:#fff}
#formModal .modal-head button{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35)}
#evaluationForm{padding-bottom:22px}
#evaluationForm>button[type=submit]{margin:18px 20px 0 auto;min-width:220px;background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 12px 24px rgba(143,29,44,.18)}
#formBody{background:linear-gradient(180deg,#fff,#fbfcff)}
.form-intro{border:1px solid #f3d6a5;background:linear-gradient(135deg,#fff9ec,#fff);border-radius:8px;padding:16px 18px;margin-bottom:18px;box-shadow:0 10px 24px rgba(247,183,51,.1)}
.form-intro p{margin:0}.form-intro p:last-child{color:var(--muted);font-weight:700;margin-top:4px}
.question{align-items:center;background:#fff;border:1px solid #e9edf5;border-radius:8px;margin:10px 0;padding:16px 18px;box-shadow:0 8px 18px rgba(15,23,42,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.question:hover{transform:translateY(-1px);border-color:#f1c15d;box-shadow:0 14px 28px rgba(15,23,42,.08)}
.question p{font-size:15px;line-height:1.45;color:#243044}.question p strong{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:7px;border-radius:999px;background:#fff4d6;color:#7a3b00}
.section-title{font-size:18px;color:var(--brand);letter-spacing:.02em;text-transform:uppercase;border-radius:8px;border-left:0;border-top:3px solid var(--gold);padding:13px 16px;margin:24px 0 12px;background:linear-gradient(135deg,#fff4d6,#fff)}
.scale{gap:8px;flex-wrap:wrap}.scale-option{position:relative;display:flex!important;align-items:center;justify-content:flex-start;grid-auto-flow:column;gap:8px;min-width:136px;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:#fff;color:#344054;font-size:13px;font-weight:900;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease,color .15s ease}
.scale-option:hover{transform:translateY(-1px);border-color:var(--gold);box-shadow:0 8px 18px rgba(247,183,51,.2);background:#fffaf0}
.scale-option input{position:absolute;opacity:0;pointer-events:none}.scale-value{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#f3f4f6;color:var(--brand);font-weight:900}
.scale-option:has(input:checked){background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:var(--brand);color:#fff;box-shadow:0 10px 22px rgba(143,29,44,.22)}
.scale-option:has(input:checked) .scale-value{background:#fff;color:var(--brand)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(247,183,51,.28),transparent 34%),linear-gradient(135deg,#fff9ef,#f7f8fb 45%,#f0f7f6);color:var(--ink)}button,a.ghost,.student-link{border:0;border-radius:8px;padding:11px 15px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,a.ghost:hover,.student-link:hover{filter:brightness(.96)}.ghost{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important}.shell{width:min(1180px,94vw);margin:0 auto;padding:34px 0}.login-panel{min-height:88vh;display:grid;grid-template-columns:1.15fr 420px;gap:42px;align-items:center}.hero-copy{padding:32px 0}.hero-actions{display:flex;gap:12px;margin-top:24px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:900;color:var(--brand);margin:0 0 8px}h1{font-size:48px;line-height:1;margin:0;letter-spacing:0}h2{margin:0;font-size:22px}.lead{font-size:19px;color:var(--muted);max-width:620px}.logo{object-fit:contain;filter:drop-shadow(0 12px 24px rgba(143,29,44,.14))}.hero-logo{width:82px;height:82px;margin-bottom:18px}.mini-logo{width:46px;height:46px}.hero-head .logo{width:58px;height:58px}.brand-title,.hero-head{display:flex;align-items:center;gap:16px}.hero-head{padding:18px 0 26px}.student-portal{min-height:88vh}.card,.panel,aside,dialog{background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 18px 50px rgba(15,23,42,.08);border-radius:8px}.form{display:grid;gap:16px;padding:24px}label{display:grid;gap:7px;font-weight:800;color:#344054}input,select{border:1px solid var(--line);border-radius:8px;padding:12px 13px;font-size:15px}.msg{color:var(--bad);min-height:20px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar nav{display:flex;gap:10px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metrics.compact{margin:16px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.metric strong{font-size:28px}.metric span{display:block;color:var(--muted);font-weight:800}.workspace{display:grid;grid-template-columns:330px 1fr;gap:18px}aside,.panel{padding:18px}.portal-panel{padding:22px}.course-list,.course-grid{display:grid;gap:10px;margin-top:14px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.course{display:flex;align-items:center;justify-content:space-between;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:900;min-height:74px}.course small{display:block;color:var(--muted);font-weight:800;margin-top:4px}.public-course{border-left:5px solid var(--gold)}.badge{border-radius:999px;padding:5px 9px;background:#fff4d6;color:#7a3b00;font-size:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-transform:uppercase}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase}.status-ok{color:var(--ok);font-weight:900}.status-wait{color:#b45309;font-weight:900}.locked{color:var(--muted);font-weight:900}dialog{width:min(1040px,94vw);border:0;padding:0}dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head button{background:#fff;color:var(--ink);font-size:24px;padding:4px 11px;border:1px solid var(--line)}#studentsBody,#reportBody,#formBody{padding:18px 20px}.student-actions{display:flex;gap:8px;flex-wrap:wrap}.danger{background:var(--bad)}.secondary{background:#475569}.question{display:grid;grid-template-columns:1fr 220px;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.question p{margin:0}.section-title{margin-top:12px;padding:9px 12px;background:#fff4d6;border-left:4px solid var(--gold);font-weight:900}.scale{display:flex;gap:6px;justify-content:flex-end}.scale label{display:inline-grid;place-items:center;font-size:12px;color:var(--muted)}.scale input{width:18px;height:18px}.note{color:var(--muted);font-size:14px}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.report-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.report-card h3{margin:0 0 6px}.course-report-head{display:flex;align-items:center;justify-content:space-between;gap:12px}@media(max-width:850px){.login-panel,.workspace{grid-template-columns:1fr}h1{font-size:34px}.metrics{grid-template-columns:1fr 1fr}.question{grid-template-columns:1fr}.scale{justify-content:flex-start}.topbar,.hero-head{align-items:flex-start;flex-direction:column}.hero-logo{width:72px;height:72px}}
dialog#formModal{width:min(1120px,96vw);background:#fbfcff}
#formModal .modal-head{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;padding:24px 28px}
#formModal .modal-head h2{font-size:30px;line-height:1.1;color:#fff}
#formModal .modal-head button{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35)}
#evaluationForm{padding-bottom:22px}
#evaluationForm>button[type=submit]{margin:18px 20px 0 auto;min-width:220px;background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 12px 24px rgba(143,29,44,.18)}
#formBody{background:linear-gradient(180deg,#fff,#fbfcff)}
.form-intro{border:1px solid #f3d6a5;background:linear-gradient(135deg,#fff9ec,#fff);border-radius:8px;padding:16px 18px;margin-bottom:18px;box-shadow:0 10px 24px rgba(247,183,51,.1)}
.form-intro p{margin:0}.form-intro p:last-child{color:var(--muted);font-weight:700;margin-top:4px}
.question{align-items:center;background:#fff;border:1px solid #e9edf5;border-radius:8px;margin:10px 0;padding:16px 18px;box-shadow:0 8px 18px rgba(15,23,42,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.question:hover{transform:translateY(-1px);border-color:#f1c15d;box-shadow:0 14px 28px rgba(15,23,42,.08)}
.question p{font-size:15px;line-height:1.45;color:#243044}.question p strong{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:7px;border-radius:999px;background:#fff4d6;color:#7a3b00}
.section-title{font-size:18px;color:var(--brand);letter-spacing:.02em;text-transform:uppercase;border-radius:8px;border-left:0;border-top:3px solid var(--gold);padding:13px 16px;margin:24px 0 12px;background:linear-gradient(135deg,#fff4d6,#fff)}
.scale{gap:8px;flex-wrap:wrap}.scale-option{position:relative;display:flex!important;align-items:center;justify-content:flex-start;grid-auto-flow:column;gap:8px;min-width:136px;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:#fff;color:#344054;font-size:13px;font-weight:900;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease,color .15s ease}
.scale-option:hover{transform:translateY(-1px);border-color:var(--gold);box-shadow:0 8px 18px rgba(247,183,51,.2);background:#fffaf0}
.scale-option input{position:absolute;opacity:0;pointer-events:none}.scale-value{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#f3f4f6;color:var(--brand);font-weight:900}
.scale-option:has(input:checked){background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:var(--brand);color:#fff;box-shadow:0 10px 22px rgba(143,29,44,.22)}
.scale-option:has(input:checked) .scale-value{background:#fff;color:var(--brand)}
@media(max-width:850px){#formModal .modal-head h2{font-size:24px}.scale-option{min-width:128px}.question{padding:14px}}
.question{grid-template-columns:minmax(360px,1fr) minmax(360px,auto);gap:22px;padding:20px 22px}
.question p{font-size:17px;line-height:1.55;font-weight:700;color:#1f2937}
.question p strong{width:34px;height:34px;font-size:16px;margin-right:10px}
.scale-option{font-size:14px;min-width:150px;padding:10px 13px}
.scale-value{width:30px;height:30px;font-size:14px}
@media(max-width:900px){.question{grid-template-columns:1fr}.question p{font-size:16px}.scale-option{min-width:140px}}
.panel-actions{display:flex;gap:10px;flex-wrap:wrap}.filter-label{display:grid;gap:6px;min-width:260px;font-size:12px;text-transform:uppercase;color:var(--muted)}.analysis-summary{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;margin:16px 0}.analysis-summary>div{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.analysis-summary strong{display:block;font-size:24px;color:var(--brand)}.analysis-summary span{display:block;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:12px}.analysis-grid{display:grid;gap:14px}.analysis-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.analysis-card.alerta{border-left:5px solid var(--bad)}.analysis-card.medio{border-left:5px solid var(--gold)}.analysis-card.alto{border-left:5px solid var(--ok)}.analysis-head{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.analysis-head>span{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:#fff4d6;color:#7a3b00;font-weight:900}.analysis-head p{margin:0 0 5px;color:var(--brand);font-size:12px;font-weight:900;letter-spacing:.04em}.analysis-head h3{margin:0;font-size:16px;line-height:1.35;color:#243044}.score-line{display:flex;align-items:baseline;gap:5px;margin:14px 0 8px}.score-line strong{font-size:32px;color:var(--brand)}.score-line span{font-weight:900;color:var(--muted)}.score-line em{margin-left:auto;font-style:normal;border-radius:999px;background:#f3f4f6;padding:6px 10px;font-size:12px;font-weight:900;color:#344054}.score-meter{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden}.score-meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--brand-2))}.answer-bars{display:grid;gap:8px;margin-top:14px}.answer-bar{display:grid;grid-template-columns:110px 1fr 32px;gap:10px;align-items:center;font-size:12px;font-weight:800;color:#475467}.answer-bar div{height:9px;background:#eef2f7;border-radius:999px;overflow:hidden}.answer-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:999px}.answer-bar b{text-align:right;color:var(--ink)}@media(max-width:850px){.analysis-summary{grid-template-columns:1fr}.answer-bar{grid-template-columns:92px 1fr 28px}.panel-actions{width:100%}.panel-actions button{flex:1}}
.dashboard-head{align-items:center}
.dashboard-head h2{font-size:24px;letter-spacing:0;text-transform:uppercase;color:var(--brand);white-space:nowrap}
.dashboard-actions{flex-wrap:nowrap;gap:7px;overflow-x:auto;justify-content:flex-end;max-width:100%}
.dashboard-actions .dash-btn{border-radius:8px;padding:9px 10px;font-size:11px;line-height:1;white-space:nowrap;min-height:34px;box-shadow:0 8px 18px rgba(15,23,42,.08)}
.dashboard-actions .student-btn{background:#0f766e;color:#fff}
.dashboard-actions .subject-btn{background:#7c3aed;color:#fff}
.dashboard-actions .attitude-btn{background:#b42318;color:#fff}
.dashboard-actions .analysis-btn{background:#b54708;color:#fff}
.dashboard-actions .report-btn{background:#2563eb;color:#fff}
@media(max-width:850px){.dashboard-head{align-items:flex-start}.dashboard-actions{width:100%;justify-content:flex-start}.dashboard-actions .dash-btn{flex:0 0 auto}}
dialog .modal-head{background:linear-gradient(135deg,#6f1422,var(--brand-2));color:#fff;padding:20px 24px;border-bottom:0}
dialog .modal-head h2{text-transform:uppercase;color:#fff;font-size:24px;line-height:1.15}
dialog .modal-head button{width:38px;height:38px;border-radius:999px;background:#fff;color:var(--brand);border:0;font-size:26px;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.16)}
dialog .modal-head button:hover{background:#fff4d6;color:#7a3b00}
.analysis-summary{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.diagnostic-section{margin-top:20px}.diagnostic-section h3{margin:0 0 12px;color:var(--brand);font-size:18px;text-transform:uppercase}.diagnostic-section small{color:var(--muted);font-weight:800}.empty-note{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;color:var(--muted);font-weight:700}.problem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.problem-card{border:1px solid #f0c3c8;border-left:5px solid var(--bad);border-radius:8px;background:#fff;padding:14px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.problem-card strong{display:block;color:var(--brand);font-size:15px}.problem-card span{display:block;color:var(--muted);font-size:12px;font-weight:900;margin-top:3px}.problem-card p{font-size:14px;line-height:1.35;color:#344054}.compact-score{margin-bottom:0}.compact-score strong{font-size:26px}
.interpretation-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.interpretation-grid article{border:1px solid var(--line);border-radius:8px;background:#fff;padding:15px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.interpretation-grid strong{display:block;color:var(--brand);font-size:13px;margin-bottom:8px}.interpretation-grid p{margin:0;color:#344054;line-height:1.45}.attitude-table th,.attitude-table td{vertical-align:top}.sortable-table th button{width:100%;padding:0;background:transparent;color:var(--muted);border:0;justify-content:flex-start;font-size:12px;text-transform:uppercase}.sortable-table th button:hover{filter:none;color:var(--brand)}.low-chip{display:inline-grid;place-items:center;min-width:34px;margin:0 4px 4px 0;padding:4px 7px;border-radius:999px;background:#fff4d6;color:#7a3b00;font-size:11px;font-weight:900}.attitude-table td:last-child small{display:block;min-width:360px;max-width:620px;white-space:normal;line-height:1.35;margin-top:4px}
#studentAttitudeModal{width:min(1120px,96vw)}
#evaluationResponseModal{width:min(1200px,96vw)}
#evaluationResponseBody{padding:18px 20px}
.evaluation-response-table td:nth-child(2){white-space:normal;min-width:360px}
#studentAttitudeBody{padding:20px 24px}
.student-attitude-report{display:grid;gap:16px;color:#243044}
.student-attitude-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line);padding-bottom:14px}
.student-attitude-head h2{font-size:24px;color:var(--brand);text-transform:uppercase}
.student-attitude-head p{margin:4px 0 0;color:var(--muted);font-weight:800;text-transform:uppercase}
.student-attitude-section h3{margin:0 0 8px;color:var(--brand);font-size:16px;text-transform:uppercase}
.student-attitude-section p,.justified{text-align:justify;line-height:1.55;color:#344054}
.student-indicator-list{display:grid;gap:12px}
.student-indicator-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;break-inside:avoid}
.indicator-title{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start}
.indicator-title>span{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:#fff4d6;color:#7a3b00;font-weight:900}
.indicator-title strong{display:block;color:var(--brand);font-size:12px;margin-bottom:4px}
.indicator-title p{margin:0;color:#243044;font-weight:800;line-height:1.35}
.indicator-mini-table{margin:10px 0;width:100%;border:1px solid var(--line)}
.indicator-mini-table th,.indicator-mini-table td{padding:7px 9px;text-align:center;font-size:12px;border-bottom:0}
.indicator-mini-table th{background:#f8fafc;color:var(--muted)}
#attitudeListModal{width:min(1500px,98vw)}
#attitudeListBody{padding:18px 20px}
.attitude-action-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:12px;margin:16px 0 4px}
.attitude-action{min-height:82px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border-radius:8px;padding:14px 16px;color:#fff}
.attitude-action strong{font-size:28px;line-height:1}
.attitude-action span{font-size:12px;font-weight:900;text-transform:uppercase;margin-top:6px}
.danger-tone{background:#b42318!important;color:#fff!important}
.warning-tone{background:#b54708!important;color:#fff!important}
.priority-tone{background:#0f766e!important;color:#fff!important}
.attitude-list-report{display:grid;gap:14px}
.attitude-list-table{table-layout:auto}
.attitude-list-table th,.attitude-list-table td{font-size:12px;vertical-align:top}
.attitude-list-table td:nth-child(3){min-width:220px}
.attitude-list-table td:nth-child(7){min-width:360px;white-space:normal;line-height:1.35;text-align:justify}
.list-tone{display:inline-block;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;white-space:nowrap}
.problem-bullets{margin:0;padding-left:18px;text-align:left}
.problem-bullets li{margin:0 0 5px;line-height:1.35}
.list-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.grouped-list-table td:nth-child(5){min-width:520px;white-space:normal}
.group-detail-list{display:grid;gap:8px;margin-top:8px}
.group-detail-list article{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}
.group-detail-list article strong{display:block;color:var(--brand);font-size:12px;margin-bottom:6px}
.group-detail-list .list-tone{margin-bottom:6px}
.report-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.report-section-title{margin:18px 0 12px;color:var(--brand);font-size:18px;text-transform:uppercase}.dimension-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px}.dimension-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.dimension-card.alerta{border-top:5px solid var(--bad)}.dimension-card.medio{border-top:5px solid var(--gold)}.dimension-card.alto{border-top:5px solid var(--ok)}.dimension-card h3{margin:0;color:var(--brand);font-size:17px}.dimension-card span{display:block;color:var(--muted);font-size:12px;font-weight:900;margin-top:4px}.dimension-card p{color:#344054;line-height:1.4}.chart-card{display:grid;gap:9px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px}.chart-row{display:grid;grid-template-columns:34px 1fr 48px;align-items:center;gap:10px}.chart-row span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#fff4d6;color:#7a3b00;font-weight:900}.chart-row div{height:16px;border-radius:999px;background:#eef2f7;overflow:hidden}.chart-row i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--brand-2))}.chart-row i.alto{background:linear-gradient(90deg,#86efac,var(--ok))}.chart-row i.medio{background:linear-gradient(90deg,#fde68a,var(--gold))}.chart-row i.alerta{background:linear-gradient(90deg,#fecaca,var(--bad))}.chart-row b{font-size:13px;color:var(--ink);text-align:right}@media(max-width:850px){.dimension-grid{grid-template-columns:1fr}.report-tools{width:100%}.filter-label{min-width:100%}}@media print{body{background:#fff}.shell,.modal-head button,.report-tools,.topbar,.metrics,.workspace,#studentsModal,#formModal,#passwordModal,#newStudentModal,#assignSubjectsModal{display:none!important}#reportModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;box-shadow:none!important;border:0!important;background:#fff!important}#reportModal::backdrop{display:none!important}#reportModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111;padding:0 0 10px!important}#reportModal .modal-head h2{color:#111!important}#reportBody{padding:0!important}.analysis-card,.dimension-card,.problem-card,.chart-card,.metric{break-inside:avoid;box-shadow:none!important}.analysis-grid{gap:10px}button{display:none!important}}
.filter-label select{background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font-weight:800;color:var(--ink);text-transform:uppercase}
.student-modal-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.question-compare-list{display:grid;gap:12px}.question-compare-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.compare-bars{display:grid;gap:8px;margin-top:14px}.compare-note{margin:10px 0 0;color:var(--muted);font-weight:800}.compare-note strong{color:var(--brand)}
.rut-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin-top:10px}.rut-form .msg{grid-column:1/-1;margin:0}.student-found{border:1px solid #f3d6a5;background:linear-gradient(135deg,#fff9ec,#fff);border-radius:8px;padding:16px;margin:18px 0 14px}.student-found h3{margin:0 0 6px;color:var(--brand);font-size:22px}.student-found p{margin:0;color:var(--muted);font-weight:800}.subject-grid{margin-top:0}.public-subject{border-left:5px solid var(--accent)}.public-subject.is-locked{border-left-color:var(--muted);background:#f3f4f6;color:#667085;opacity:.9}.public-subject.is-locked .badge{background:#e5e7eb;color:#475467}.subject-filter{margin:12px 0 4px;min-width:0}.responded-list{margin-top:8px;line-height:1.55;color:#344054;font-weight:800;text-transform:uppercase}summary{cursor:pointer;font-weight:900;color:var(--brand)}
@media(max-width:700px){.rut-form{grid-template-columns:1fr}.rut-form button{width:100%}}
.metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.metric strong{overflow-wrap:anywhere}
.subject-filter input,.subject-filter select{width:100%}
.print-signature{display:none}
.print-report-header{display:none}
.modal-title-logo{display:flex;align-items:center;gap:10px}
.modal-title-logo img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:999px;padding:3px}
.report-action{background:#0f766e!important;color:#fff!important}
.report-action:hover{filter:brightness(.94)}
.site-footer{margin:28px 0 6px;text-align:center;color:#8a94a6;font-size:12px;font-weight:700}
.login-panel{grid-template-columns:minmax(360px,0.95fr) minmax(360px,420px)!important;gap:24px!important;justify-content:center!important}
.hero-copy{padding-right:8px!important}
.login-panel{display:grid!important;grid-template-columns:1fr!important;place-items:center!important}
.login-shell{width:min(980px,96vw);background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 70px rgba(15,23,42,.12);padding:28px}
.login-brand{display:flex;align-items:center;gap:18px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.login-brand .hero-logo{width:76px;height:76px;margin:0}
.login-brand h1{font-size:38px}
.login-brand .lead{margin:8px 0 0;font-size:16px;max-width:none}
.access-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:18px;align-items:stretch}
.access-card{position:relative;display:grid;gap:12px;align-content:start;border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px;color:var(--ink);text-decoration:none;box-shadow:0 12px 30px rgba(15,23,42,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.access-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(15,23,42,.12);border-color:#f1c15d;filter:none}
.access-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:12px;background:#fff4d6;color:#7a3b00;font-weight:900}
.access-card strong{font-size:22px;color:var(--brand)}
.access-card small{font-size:14px;line-height:1.35;color:var(--muted);font-weight:800}
.access-card em{align-self:end;justify-self:start;margin-top:16px;font-style:normal;border-radius:8px;background:var(--brand);color:#fff;padding:11px 18px;font-weight:900}
.teacher-access{gap:13px}
.teacher-access label{font-size:13px}
.teacher-access input{background:#fbfcff}
.teacher-access button{margin-top:2px;width:100%;background:linear-gradient(135deg,var(--brand),var(--brand-2))}
.student-access{background:linear-gradient(180deg,#fff,#fff9ec)}
.teacher-access .access-icon{background:#e8f5f3;color:#0f766e}
@media(max-width:800px){.login-shell{padding:20px}.login-brand{align-items:flex-start;flex-direction:column}.login-brand h1{font-size:30px}.access-grid{grid-template-columns:1fr}}
@keyframes loginRise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes loginFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.login-shell{animation:loginRise .55s ease-out both}
.login-brand{animation:loginFade .55s ease-out both;animation-delay:.08s}
.access-card{animation:loginFade .5s ease-out both}
.student-access{animation-delay:.16s}
.teacher-access{animation-delay:.24s}
.access-card:focus-within{border-color:var(--gold);box-shadow:0 0 0 4px rgba(247,183,51,.18),0 18px 42px rgba(15,23,42,.12)}
@media(prefers-reduced-motion:reduce){.login-shell,.login-brand,.access-card{animation:none}.access-card{transition:none}}
.small-btn{padding:8px 10px;font-size:12px;white-space:nowrap}
#studentsModal,#reportModal{width:min(1500px,98vw)}
dialog#formModal{width:min(1540px,98vw)}
.table-wrap{max-width:100%}
.question-report-table th:nth-child(3),.question-report-table td:nth-child(3),.question-report-table th:nth-child(4),.question-report-table td:nth-child(4){text-align:center}
.question-report-table th:nth-child(1),.question-report-table td:nth-child(1){width:38px;text-align:center}
.question-report-table th:nth-child(3),.question-report-table td:nth-child(3),.question-report-table th:nth-child(4),.question-report-table td:nth-child(4){width:120px;white-space:normal}
.question-report-table th:nth-child(2),.question-report-table td:nth-child(2){white-space:normal}
.wide-table th,.wide-table td,#studentsBody table th,#studentsBody table td{white-space:nowrap}
#studentsBody table{min-width:1320px}
#formBody .question{grid-template-columns:minmax(420px,1fr) minmax(680px,auto);gap:14px}
#formBody .scale{flex-wrap:nowrap;justify-content:flex-end}
#formBody .scale-option{min-width:118px;padding:8px 9px;font-size:12px}
#formBody .scale-value{width:24px;height:24px}
@media(max-width:1100px){#formBody .question{grid-template-columns:1fr}#formBody .scale{justify-content:flex-start;overflow-x:auto;padding-bottom:4px}}
#studentsModal{width:min(1700px,99vw)}
#studentsBody{padding:12px}
#studentsBody .table-wrap{overflow-x:auto}
#studentsBody table.students-compact{min-width:0;table-layout:auto}
#studentsBody .students-compact th,#studentsBody .students-compact td{padding:8px 7px;font-size:12px;white-space:nowrap}
#studentsBody .students-compact th:nth-child(3),#studentsBody .students-compact td:nth-child(3){min-width:260px;max-width:360px}
#studentsBody .students-compact th:nth-child(n+4):nth-child(-n+8),#studentsBody .students-compact td:nth-child(n+4):nth-child(-n+8){text-align:center}
#studentsBody .student-actions{gap:5px;flex-wrap:nowrap}
#studentsBody .student-actions button{padding:7px 8px;font-size:12px;white-space:nowrap}
.student-modal-actions{gap:8px}
.stack-cell{display:grid;gap:2px;justify-items:center;line-height:1.1}
.stack-cell strong{font-size:13px}
.stack-cell small{font-size:10px;color:var(--muted);font-weight:900;white-space:nowrap}
#newStudentModal{width:min(820px,94vw)}
#assignSubjectsModal{width:min(980px,96vw)}
.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}
.student-form-grid .full{grid-column:1/-1}
.uppercase-form label{text-transform:uppercase}
.uppercase-form input,.uppercase-form select{text-transform:uppercase}
.subject-assign-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.subject-assign-head>div{display:flex;gap:8px}
.subject-check-list{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:8px;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}
.subject-check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:9px;border:1px solid #eef2f7;border-radius:8px;padding:9px 10px;color:#344054}
.subject-check input{width:18px;height:18px;padding:0}
.subject-check span{font-size:12px;font-weight:900;line-height:1.25}
@media print{body{background:#fff!important}.shell,.topbar,.metrics,.workspace,#formModal,#passwordModal,#newStudentModal,#assignSubjectsModal{display:none!important}#studentsModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;box-shadow:none!important;border:0!important;background:#fff!important}#studentsModal::backdrop{display:none!important}#studentsModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111;padding:0 0 10px!important}#studentsModal .modal-head h2{color:#111!important;font-size:18px!important}#studentsModal .modal-head button,#studentsBody .student-modal-actions,#studentsBody button,#studentsBody .student-actions{display:none!important}#studentsBody{padding:0!important}#studentsBody table{min-width:0!important;width:100%!important}#studentsBody th,#studentsBody td{font-size:10px!important;padding:5px!important;white-space:nowrap!important}#studentsBody .students-compact th:last-child,#studentsBody .students-compact td:last-child{display:none!important}#studentsBody .students-compact th:nth-child(n+4):nth-child(-n+8),#studentsBody .students-compact td:nth-child(n+4):nth-child(-n+8){text-align:center!important}.question-report-table th:nth-child(3),.question-report-table td:nth-child(3),.question-report-table th:nth-child(4),.question-report-table td:nth-child(4){text-align:center!important}}
@media print{body.printing-report #studentsModal{display:none!important}body.printing-report #reportModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;box-shadow:none!important;border:0!important;background:#fff!important}body.printing-report #reportModal::backdrop{display:none!important}body.printing-report #reportModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111;padding:0 0 10px!important}body.printing-report #reportModal .modal-head h2{color:#111!important}body.printing-report #reportModal .modal-head button,body.printing-report #reportBody button,body.printing-report #reportBody .student-modal-actions{display:none!important}body.printing-report #reportBody{padding:0!important}body.printing-students #reportModal{display:none!important}}
@media print{body.printing-report .question-report-table{table-layout:fixed!important;width:100%!important}body.printing-report .question-report-table th,body.printing-report .question-report-table td{white-space:normal!important;font-size:9px!important;line-height:1.2!important}body.printing-report .question-report-table th:nth-child(1),body.printing-report .question-report-table td:nth-child(1){width:28px!important;text-align:center!important}body.printing-report .question-report-table th:nth-child(3),body.printing-report .question-report-table td:nth-child(3),body.printing-report .question-report-table th:nth-child(4),body.printing-report .question-report-table td:nth-child(4){width:88px!important;text-align:center!important;font-weight:800!important}body.printing-report .question-report-table th:nth-child(2),body.printing-report .question-report-table td:nth-child(2){width:auto!important}}
@media print{body.printing-report .report-summary-print{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:6px!important;margin:8px 0 10px!important}body.printing-report .report-summary-print .metric{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;border:1px solid #111!important;padding:6px!important;box-shadow:none!important;background:#fff!important;min-height:46px!important}body.printing-report .report-summary-print .metric strong{font-size:14px!important;color:#111!important;text-align:center!important}body.printing-report .report-summary-print .metric span{font-size:8px!important;color:#111!important;text-align:center!important}}
@media print{body.printing-report .print-signature{display:flex!important;justify-content:flex-end!important;margin-top:34px!important;padding-top:18px!important}body.printing-report .print-signature span{min-width:240px!important;border-top:1px solid #111!important;text-align:center!important;font-size:10px!important;font-weight:800!important;padding-top:6px!important}}
@media print{body.printing-report .print-report-header{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;margin:0 0 14px!important;text-align:center!important}body.printing-report .print-report-header img{display:block!important;width:52px!important;height:52px!important;object-fit:contain!important;margin:0 auto 8px!important}body.printing-report .print-report-header h1{font-size:16px!important;line-height:1.25!important;margin:0 0 6px!important;color:#111!important;text-align:center!important;letter-spacing:0!important}body.printing-report .print-report-header h2{font-size:12px!important;line-height:1.25!important;margin:0!important;color:#111!important;text-align:center!important;letter-spacing:0!important}}
@media print{body.printing-student-attitude{background:#fff!important}body.printing-student-attitude .shell,body.printing-student-attitude #studentsModal,body.printing-student-attitude #formModal,body.printing-student-attitude #passwordModal,body.printing-student-attitude #reportModal,body.printing-student-attitude #newStudentModal,body.printing-student-attitude #assignSubjectsModal{display:none!important}body.printing-student-attitude #studentAttitudeModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;border:0!important;box-shadow:none!important;background:#fff!important}body.printing-student-attitude #studentAttitudeModal::backdrop{display:none!important}body.printing-student-attitude #studentAttitudeModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111!important;padding:0 0 10px!important}body.printing-student-attitude #studentAttitudeModal .modal-head h2{color:#111!important;font-size:16px!important}body.printing-student-attitude #studentAttitudeModal .modal-head button,body.printing-student-attitude #printStudentAttitude{display:none!important}body.printing-student-attitude #studentAttitudeBody{padding:0!important}body.printing-student-attitude .student-attitude-report{gap:10px!important}body.printing-student-attitude .student-attitude-head{padding-bottom:8px!important}body.printing-student-attitude .student-attitude-head h2{font-size:16px!important;color:#111!important}body.printing-student-attitude .student-attitude-section h3{font-size:12px!important;color:#111!important;margin-bottom:5px!important}body.printing-student-attitude .student-attitude-section p,body.printing-student-attitude .justified{text-align:justify!important;font-size:10px!important;line-height:1.35!important;color:#111!important}body.printing-student-attitude .analysis-summary{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;margin:6px 0!important}body.printing-student-attitude .analysis-summary>div,body.printing-student-attitude .metric{box-shadow:none!important;border:1px solid #111!important;padding:6px!important}body.printing-student-attitude .analysis-summary strong{font-size:14px!important;color:#111!important;text-align:center!important}body.printing-student-attitude .analysis-summary span{font-size:8px!important;color:#111!important;text-align:center!important}body.printing-student-attitude .student-indicator-list{gap:7px!important}body.printing-student-attitude .student-indicator-card{box-shadow:none!important;border:1px solid #111!important;padding:7px!important;break-inside:avoid!important}body.printing-student-attitude .indicator-title{grid-template-columns:28px 1fr!important;gap:6px!important}body.printing-student-attitude .indicator-title>span{width:24px!important;height:24px!important;background:#fff!important;border:1px solid #111!important;color:#111!important;font-size:10px!important}body.printing-student-attitude .indicator-title strong{font-size:9px!important;color:#111!important}body.printing-student-attitude .indicator-title p{font-size:10px!important;color:#111!important;line-height:1.25!important}body.printing-student-attitude .indicator-mini-table{margin:5px 0!important;border:1px solid #111!important}body.printing-student-attitude .indicator-mini-table th,body.printing-student-attitude .indicator-mini-table td{font-size:9px!important;padding:4px!important;border:1px solid #111!important}}
@media print{body.printing-attitude-list{background:#fff!important}body.printing-attitude-list .shell,body.printing-attitude-list #studentsModal,body.printing-attitude-list #formModal,body.printing-attitude-list #passwordModal,body.printing-attitude-list #reportModal,body.printing-attitude-list #newStudentModal,body.printing-attitude-list #assignSubjectsModal,body.printing-attitude-list #studentAttitudeModal{display:none!important}body.printing-attitude-list #attitudeListModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;border:0!important;box-shadow:none!important;background:#fff!important}body.printing-attitude-list #attitudeListModal::backdrop{display:none!important}body.printing-attitude-list #attitudeListModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111!important;padding:0 0 8px!important}body.printing-attitude-list #attitudeListModal .modal-head h2{color:#111!important;font-size:15px!important}body.printing-attitude-list #attitudeListModal .modal-head button,body.printing-attitude-list #printAttitudeList,body.printing-attitude-list #toggleAttitudeGrouping{display:none!important}body.printing-attitude-list #attitudeListBody{padding:0!important}body.printing-attitude-list .student-attitude-head{padding-bottom:6px!important}body.printing-attitude-list .student-attitude-head h2{font-size:14px!important;color:#111!important}body.printing-attitude-list .student-attitude-head p{font-size:9px!important;color:#111!important}body.printing-attitude-list .analysis-summary{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:5px!important;margin:5px 0!important}body.printing-attitude-list .analysis-summary>div{box-shadow:none!important;border:1px solid #111!important;padding:5px!important}body.printing-attitude-list .analysis-summary strong{font-size:13px!important;color:#111!important;text-align:center!important}body.printing-attitude-list .analysis-summary span{font-size:7px!important;color:#111!important;text-align:center!important}body.printing-attitude-list .table-wrap{overflow:visible!important}body.printing-attitude-list details,body.printing-attitude-list details>*{display:block!important}body.printing-attitude-list summary{display:none!important}body.printing-attitude-list .attitude-list-table{width:100%!important;table-layout:fixed!important}body.printing-attitude-list .attitude-list-table th,body.printing-attitude-list .attitude-list-table td{font-size:7.5px!important;line-height:1.2!important;padding:3px!important;border:1px solid #111!important;white-space:normal!important;color:#111!important}body.printing-attitude-list .attitude-list-table th:nth-child(1),body.printing-attitude-list .attitude-list-table td:nth-child(1){width:12%!important}body.printing-attitude-list .attitude-list-table th:nth-child(2),body.printing-attitude-list .attitude-list-table td:nth-child(2){width:10%!important}body.printing-attitude-list .attitude-list-table th:nth-child(3),body.printing-attitude-list .attitude-list-table td:nth-child(3){width:18%!important}body.printing-attitude-list .attitude-list-table th:nth-child(4),body.printing-attitude-list .attitude-list-table td:nth-child(4){width:15%!important}body.printing-attitude-list .attitude-list-table th:nth-child(5),body.printing-attitude-list .attitude-list-table td:nth-child(5){width:45%!important;text-align:justify!important}.list-tone{border:1px solid #111!important;background:#fff!important;color:#111!important;padding:2px 3px!important}.group-detail-list{gap:4px!important}.group-detail-list article{border:1px solid #111!important;padding:4px!important;break-inside:avoid!important}.group-detail-list article strong{font-size:8px!important;color:#111!important}.problem-bullets{padding-left:12px!important}.problem-bullets li{margin-bottom:2px!important}}
@media print{body.printing-evaluation-response{background:#fff!important}body.printing-evaluation-response .shell,body.printing-evaluation-response #studentsModal,body.printing-evaluation-response #formModal,body.printing-evaluation-response #passwordModal,body.printing-evaluation-response #reportModal,body.printing-evaluation-response #newStudentModal,body.printing-evaluation-response #assignSubjectsModal,body.printing-evaluation-response #studentAttitudeModal,body.printing-evaluation-response #attitudeListModal{display:none!important}body.printing-evaluation-response #evaluationResponseModal{display:block!important;position:static!important;width:100%!important;max-width:none!important;border:0!important;box-shadow:none!important;background:#fff!important}body.printing-evaluation-response #evaluationResponseModal::backdrop{display:none!important}body.printing-evaluation-response #evaluationResponseModal .modal-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111!important;padding:0 0 10px!important}body.printing-evaluation-response #evaluationResponseModal .modal-head h2{color:#111!important;font-size:16px!important}body.printing-evaluation-response #evaluationResponseModal .modal-head button,body.printing-evaluation-response #printEvaluationResponse{display:none!important}body.printing-evaluation-response #evaluationResponseBody{padding:0!important}body.printing-evaluation-response .course-report-head{padding-bottom:8px!important}body.printing-evaluation-response .course-report-head h2{font-size:15px!important;color:#111!important}body.printing-evaluation-response .metrics{grid-template-columns:repeat(5,1fr)!important;gap:5px!important}body.printing-evaluation-response .metric{box-shadow:none!important;border:1px solid #111!important;padding:5px!important}body.printing-evaluation-response .metric strong{font-size:13px!important;color:#111!important}body.printing-evaluation-response .metric span{font-size:7px!important;color:#111!important}body.printing-evaluation-response .evaluation-response-table th,body.printing-evaluation-response .evaluation-response-table td{font-size:9px!important;line-height:1.25!important;padding:5px!important;border:1px solid #111!important;white-space:normal!important;color:#111!important}body.printing-evaluation-response .evaluation-response-table th:nth-child(1),body.printing-evaluation-response .evaluation-response-table td:nth-child(1){width:36px!important;text-align:center!important}}
@media print{body.printing-attitude-list .attitude-list-table button{display:none!important}}
@media print{@page{size:auto;margin:10mm}html,body{overflow:visible!important;width:auto!important;height:auto!important;max-width:none!important}body::-webkit-scrollbar,*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.table-wrap,#studentsBody .table-wrap,#reportBody .table-wrap,#studentAttitudeBody .table-wrap,#attitudeListBody .table-wrap,#evaluationResponseBody .table-wrap{overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;max-width:100%!important;width:100%!important}dialog,[open]{overflow:visible!important;max-height:none!important;height:auto!important}table{max-width:100%!important}th,td{overflow:visible!important}pre,code,p,td,th,li{overflow-wrap:anywhere!important;word-break:normal!important}.wide-table,#studentsBody table,.students-compact,.attitude-table,.attitude-list-table,.question-report-table{min-width:0!important;max-width:100%!important}body.printing-report #reportModal,body.printing-students #studentsModal,body.printing-student-attitude #studentAttitudeModal,body.printing-attitude-list #attitudeListModal,body.printing-evaluation-response #evaluationResponseModal{overflow:visible!important}}
.printing-clean,.printing-clean body{overflow:visible!important}.printing-clean .table-wrap,.printing-clean dialog{overflow:visible!important}
