@import "https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&family=Source+Sans+3:wght@400;600;700&display=swap";:root{--bg:#eef2f6;--bg-soft:#f6f8fb;--surface:#fff;--surface-muted:#f1f5f9;--surface-info:#e8f0fb;--border:#d8e0ea;--border-strong:#c7d3e1;--text:#334155;--text-strong:#212f3d;--text-soft:#627186;--brand:#295884;--brand-strong:#1f4a73;--brand-soft:#5d9cec5e;--accent-cyan:#5d9cec;--accent-lime:#37bc9b;--accent-amber:#f6bb42;--accent-rose:#da4453;--shadow-soft:0 18px 44px #11273f14;--shadow-card:0 8px 24px #18314f14;--font-base:"Nunito Sans", sans-serif;--font-mono:"Source Sans 3", sans-serif;color:var(--text);font-family:var(--font-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#f7f9fc 0%,#edf2f8 100%);font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 100% 40%,#29588414,#0000 28%),radial-gradient(circle at 85% 82%,#5d9cec0f,#0000 22%),linear-gradient(#f7f9fc 0%,#edf2f8 100%);margin:0}body:before{content:"";pointer-events:none;background:radial-gradient(circle at 110% 60%,#29588414 0 16%,#0000 16.5%),radial-gradient(circle at 104% 60%,#29588408 0 26%,#0000 26.5%);position:fixed;inset:0}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}code{font-family:var(--font-mono)}#root{width:100%;min-height:100vh;margin:0;padding:0}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--text-strong)}@media (width<=640px){#root{width:100%}}:root{--surface-2:#fff;--surface-3:#f7f9fc;--indigo:#295884;--cyan:#5d9cec;--violet:#4a6f95;--lime:#37bc9b;--amber:#f6bb42;--rose:#da4453;--brand:#295884;--brand-strong:#1f4267;--brand-soft:#e8f0fa;--brand-soft-strong:#d4e2f3;--danger:#b94545;--danger-strong:#953434;--danger-soft:#fbe9e9;--font-base:"Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}.auth-page{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:stretch;gap:1.5rem;min-height:100vh;padding:1.75rem;display:grid}.auth-page.login-page{grid-template-columns:minmax(0,1.55fr) minmax(420px,.9fr);gap:0;padding:0}.auth-panel,.card,.kpi-card,.report-card{border:1px solid var(--border);box-shadow:var(--shadow-soft)}.auth-panel{background:var(--surface);border-radius:22px;position:relative;overflow:hidden}.login-page .auth-panel{box-shadow:none;border:none;border-radius:0}.auth-portal{background:radial-gradient(circle at 12% 20%,#ffffff14 0 2px,#0000 2.5px) 0 0/22px 22px,linear-gradient(135deg,#2f628f,#295884 55%,#21496f);place-items:center;padding:2.25rem;display:grid}.portal-role-stage{color:#fff;align-content:center;gap:2rem;width:min(100%,980px);min-height:calc(100vh - 4.5rem);display:grid}.portal-role-copy .auth-kicker,.portal-role-copy .auth-description,.portal-role-copy h1{color:#fff}.portal-role-copy h1{max-width:10ch;font-size:clamp(2.8rem,4vw,4.6rem)}.portal-role-copy .auth-description{opacity:.92;max-width:46rem}.portal-role-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.portal-role-card{text-align:center;background:#fffffffa;border-radius:14px;align-content:center;gap:.35rem;min-height:154px;padding:1.2rem 1rem;display:grid;box-shadow:0 10px 22px #0a223b1f}.portal-role-card strong{color:#17212b;font-size:1.05rem}.portal-role-card span{color:#6c7a8b;overflow-wrap:anywhere;font-size:.9rem}.auth-spotlight{background:linear-gradient(140deg,#fffffff5,#f4f7fbfa),linear-gradient(#f8fbff 0%,#eef3f9 100%);flex-direction:column;justify-content:space-between;padding:3.2rem;display:flex}.auth-spotlight:after,.auth-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#2958840f 0 58%,#0000 58.5%),radial-gradient(circle,#2958840a 0 72%,#0000 72.5%);border-radius:999px;width:420px;height:420px;position:absolute;bottom:-18%;right:-12%}.auth-card{background:linear-gradient(#fffffffa,#f9fbfdfa);padding:2.4rem 2.6rem}.login-page .auth-card{background:radial-gradient(circle at 100% 65%,#2958840d 0 27%,#0000 27.5%),radial-gradient(circle at 100% 65%,#29588408 0 40%,#0000 40.5%),linear-gradient(#fffffffa,#fbfcfdfa);flex-direction:column;justify-content:center;padding:2.2rem 4rem;display:flex}.auth-kicker,.banner-kicker,.logo-sub,.logo-dept,.topbar-sub,.auth-demo-label,.next-step-kicker{font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase}.auth-kicker{color:var(--brand);font-size:.76rem;font-weight:800;display:inline-block}.auth-spotlight h1{max-width:9ch;color:var(--brand);margin-top:.9rem;font-size:clamp(2.7rem,5vw,4.7rem);line-height:.95}.auth-description{max-width:58ch;color:var(--text-soft);margin-top:1rem;font-size:1.02rem}.auth-demo-card{z-index:1;width:min(100%,32rem);box-shadow:var(--shadow-card);background:linear-gradient(#24547efa,#295884fa);border:1px solid #2958842e;border-radius:18px;padding:1rem 1.15rem;position:relative}.demo-accounts-list{gap:.65rem;display:grid}.demo-account-item{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:14px;gap:.1rem;padding:.8rem .85rem;display:grid}.demo-account-item strong,.demo-account-item span,.auth-demo-label,.auth-demo-value{color:#fff}.demo-account-item strong{font-size:.92rem}.demo-account-item span{font-family:var(--font-mono);opacity:.92;font-size:.82rem}.auth-demo-label{margin-bottom:.55rem;font-size:.68rem}.auth-form-header h2{color:#000;font-size:2rem}.auth-brand{align-items:center;gap:.9rem;margin-bottom:2rem;display:flex}.auth-brand-mark{width:86px;height:62px;position:relative}.auth-brand-mark:before,.auth-brand-mark:after,.auth-brand-mark span{content:"";position:absolute}.auth-brand-mark:before{background:var(--brand);border-radius:999px;inset:14px 6px}.auth-brand-mark:after{border:4px solid var(--brand);background:0 0;border-radius:999px;width:24px;height:68px;top:-2px;left:28px;transform:rotate(34deg)}.auth-brand-mark span{z-index:1;background:#fff;border-radius:999px;width:14px;height:4px;top:29px;left:37px}.auth-brand-word{letter-spacing:.02em;color:var(--brand);font-size:clamp(3.6rem,7vw,5.1rem);line-height:.95}.auth-form-header p{color:var(--text-soft);margin-top:.45rem;font-size:1rem}.auth-form{gap:.85rem;margin-top:1.6rem;display:grid}.auth-password-field{position:relative}.auth-password-field .auth-input{padding-right:3.2rem}.password-toggle{cursor:pointer;background:0 0;border:none;font-size:1rem;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.auth-form-options{justify-content:space-between;align-items:center;gap:1rem;margin-top:.35rem;display:flex}.auth-form-options a{color:#004bff;text-decoration:none}.auth-form-options a:hover{text-decoration:underline}.auth-check{color:var(--text-soft);align-items:center;gap:.55rem;font-size:.98rem;display:inline-flex}.auth-check input{width:15px;height:15px;accent-color:var(--brand)}.auth-label{color:#000;font-size:.95rem;font-weight:800}.auth-input,.search-box input,.topbar-select{width:100%;color:var(--text-strong);background:#edf4ff;border:1px solid #cfd8e3;border-radius:12px;outline:none;padding:.92rem 1rem;font-size:1rem;transition:border-color .16s,box-shadow .16s,background-color .16s}.auth-input:focus,.search-box input:focus,.topbar-select:focus{background:#fff;border-color:#7aa6d8;box-shadow:0 0 0 3px #5d9cec26}.auth-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--brand) 50%), linear-gradient(135deg, var(--brand) 50%, transparent 50%);background-position:calc(100% - 20px) calc(50% - 3px),calc(100% - 14px) calc(50% - 3px);background-repeat:no-repeat;background-size:6px 6px,6px 6px}.auth-button,.logout-button,.nav-item,.professor-sort-button,.professor-link-button{cursor:pointer;font-family:var(--font-base);border:none;transition:transform .16s,box-shadow .16s,background-color .16s,opacity .16s}.auth-button,.logout-button{letter-spacing:.01em;color:#fff;background:linear-gradient(180deg, var(--brand), var(--brand-strong));border-radius:10px;padding:.85rem 1.25rem;font-size:1rem;font-weight:800;box-shadow:0 10px 20px #2958842e}.auth-button:hover,.logout-button:hover,.nav-item:hover,.professor-sort-button:hover,.professor-link-button:hover{transform:translateY(-1px)}.auth-button-secondary{letter-spacing:.01em;color:var(--brand);background:var(--brand-soft);border:1px solid var(--brand-soft-strong);cursor:pointer;font-size:.95rem;font-weight:700;font-family:var(--font-base);border-radius:10px;padding:.7rem 1rem;transition:transform .16s,box-shadow .16s,background-color .16s}.auth-button-secondary:hover{background:var(--brand-soft-strong);transform:translateY(-1px)}.auth-button-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-button-sm{letter-spacing:.01em;color:#fff;background:linear-gradient(180deg, var(--brand), var(--brand-strong));cursor:pointer;font-size:.85rem;font-weight:700;font-family:var(--font-base);border:none;border-radius:8px;padding:.45rem .9rem;transition:transform .16s,box-shadow .16s,opacity .16s;box-shadow:0 4px 10px #2958842e}.auth-button-sm:hover{transform:translateY(-1px)}.auth-button-sm:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-button-sm.secondary,.auth-button-sm--secondary{color:var(--brand);background:var(--brand-soft);box-shadow:none;border:1px solid var(--brand-soft-strong)}.auth-button-sm.secondary:hover,.auth-button-sm--secondary:hover{background:var(--brand-soft-strong)}.auth-button-sm.danger,.auth-button-sm--danger{color:#fff;background:linear-gradient(180deg, var(--danger), var(--danger-strong));box-shadow:0 4px 10px #b945452e}.auth-button-sm.danger:hover,.auth-button-sm--danger:hover{filter:brightness(1.05)}.auth-feedback{border-radius:10px;margin:0;padding:.8rem 1rem;font-size:.95rem}.auth-feedback.success{color:#0b6b56;background:#37bc9b29;border:1px solid #37bc9b42}.auth-feedback.error{color:#9f2630;background:#da44531f;border:1px solid #da445338}.auth-links{justify-content:space-between;gap:1rem;margin-top:1.25rem;display:flex}.auth-links.single-link{justify-content:flex-start}.login-links{margin-top:1rem}.auth-hint{color:#475569;background:#004bff0d;border-left:3px solid #004bff;border-radius:6px;margin:0;padding:.6rem .85rem;font-size:.85rem;line-height:1.45}.auth-hint strong{color:#004bff;font-weight:700}.auth-links a{color:#004bff;font-weight:700;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-divider{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.75rem;margin:1.25rem 0 .75rem;font-size:.75rem;font-weight:600;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#e2e8f0;flex:1;height:1px}.auth-google-button{color:#1f2937;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;gap:.65rem;width:100%;padding:.7rem 1rem;font-size:.95rem;font-weight:600;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.auth-google-button:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;box-shadow:0 1px 2px #0f172a0d}.auth-google-button:active:not(:disabled){background:#f1f5f9}.auth-google-button:disabled{opacity:.6;cursor:not-allowed}.auth-google-icon{flex-shrink:0;width:20px;height:20px}.auth-google-hint{text-align:center;color:#64748b;margin:.5rem 0 0;font-size:.75rem;line-height:1.4}.auth-google-hint strong{color:#004bff}.dashboard-shell{grid-template:"topbar topbar"68px"sidebar main"minmax(0,1fr)/240px minmax(0,1fr);align-items:stretch;height:100vh;display:grid;overflow:hidden}.topbar{background:linear-gradient(180deg, #2f628f, var(--brand));color:#fff;z-index:5;grid-area:topbar;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem .7rem 1.25rem;display:flex;box-shadow:0 2px 10px #12315433}.topbar-title{color:#fff;font-size:1.1rem;font-weight:800}.topbar-sub{color:#ffffffc7;margin-top:.05rem;font-size:.66rem}.topbar-actions{align-items:center;gap:.75rem;display:flex}.topbar-select{background:#fffffffa;min-width:220px}.search-box{background:#fffffff5;border:1px solid #ffffff47;border-radius:10px;align-items:center;gap:.55rem;min-width:min(360px,42vw);padding:.2rem .75rem;display:flex}.search-box span{color:#9aa8b7}.search-box input{box-shadow:none;background:0 0;border:none;padding:.42rem .25rem}.logout-button{white-space:nowrap;color:#fff;box-shadow:none;background:#ffffff29}.sidebar{border-right:1px solid var(--border);background:#fffffff5;flex-direction:column;grid-area:sidebar;min-height:0;padding:1rem .75rem;display:flex;overflow-y:auto}.logo-wrap{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding:.2rem .25rem 1rem}.logo-name{color:var(--brand);font-size:1.45rem;font-weight:800}.logo-sub{color:var(--cyan);margin-top:.28rem;font-size:.62rem;font-weight:800}.logo-dept{color:var(--text-soft);margin-top:.4rem;font-size:.68rem}.sidebar-nav{gap:.35rem;display:grid}.nav-item{color:var(--text);font-family:var(--font-base);text-align:left;background:0 0;border-radius:10px;align-items:center;gap:.65rem;padding:.8rem .75rem;font-size:.96rem;font-weight:700;display:flex}.nav-item.active{color:var(--brand);background:linear-gradient(#5d9cec24,#5d9cec14);border:1px solid #5d9cec3d}.nav-icon{justify-content:center;align-items:center;width:1.6rem;display:inline-flex}.user-card{background:var(--surface-muted);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.8rem;margin-top:auto;padding:.9rem .75rem;display:flex}.user-avatar{background:linear-gradient(#dbe8f6,#cddff1);border-radius:999px;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;display:flex}.user-name{color:var(--text-strong);font-size:.95rem;font-weight:800}.user-role{color:var(--text-soft);word-break:break-word;font-size:.75rem}.main-panel{grid-area:main;min-width:0;min-height:0;display:block;overflow:hidden auto}.content-area{gap:1.25rem;min-width:0;padding:1.25rem;display:grid}.card{background:var(--surface);box-shadow:var(--shadow-card);border-radius:12px;padding:1.2rem}.welcome-banner{background:linear-gradient(135deg,#fffffffa,#f5f8fcfa),linear-gradient(#fff 0%,#f7f9fc 100%);justify-content:space-between;align-items:center;gap:1rem;display:flex}.banner-kicker,.next-step-kicker{color:var(--brand);font-size:.68rem;font-weight:800;display:inline-block}.welcome-banner h1{color:#4a4f55;margin:.45rem 0 .35rem;font-size:clamp(1.9rem,4vw,2.7rem)}.banner-text{max-width:60ch;color:var(--text-soft)}.welcome-chip{gap:.65rem;min-width:220px;display:grid}.welcome-chip span{border:1px solid var(--border);min-height:2.75rem;color:var(--text-strong);font-family:var(--font-base);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:700;display:inline-flex}.welcome-chip span:empty{display:none}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.grid-2{grid-template-columns:minmax(0,1.2fr) minmax(280px,.9fr);gap:1rem;display:grid}.kpi-card{background:#fff;border-radius:12px;grid-template-columns:66px 1fr;align-items:center;gap:.1rem .9rem;padding:1rem 1.05rem;display:grid}.kpi-card.indigo{border-top:4px solid var(--indigo)}.kpi-card.cyan{border-top:4px solid var(--cyan)}.kpi-card.rose{border-top:4px solid var(--rose)}.kpi-card.lime{border-top:4px solid var(--lime)}.kpi-icon{background:var(--surface-info);border-radius:10px;grid-row:1/span 3;justify-content:center;align-items:center;width:3.4rem;height:3.4rem;font-size:1.4rem;display:flex}.kpi-value{color:var(--text-strong);font-size:1.9rem;font-weight:800;font-family:var(--font-base)}.kpi-label{color:#555d66;font-weight:700}.kpi-delta{color:var(--text-soft);font-size:.82rem}.content-grid-dashboard{align-items:start}.compact{margin-bottom:.4rem}.section-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-header h2,.report-card h3{color:#4a4f55;font-size:1.1rem}.live-chip,.risk-pill,.student-status-chip{font-size:.74rem;font-family:var(--font-base);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.32rem .72rem;font-weight:800;display:inline-flex}.live-chip{color:var(--brand);background:#5d9cec24;border-color:#5d9cec3d}table{border-collapse:collapse;background:#fff;width:100%}th,td{padding:.95rem 1rem;font-size:.95rem}th{color:#465362;font-size:.85rem;font-family:var(--font-base);letter-spacing:.02em;text-align:left;background:#f2f4f7;border:1px solid #cfd8e3;font-weight:800}td{color:var(--text);vertical-align:middle;border:1px dashed #c7d3e1}.table-code,.table-score{font-family:var(--font-base);font-weight:700}.table-score{color:var(--brand)}.risk-pill.bajo{color:#0b6b56;background:#37bc9b24;border-color:#37bc9b3d}.risk-pill.medio{color:#996b00;background:#f6bb4229;border-color:#f6bb4240}.risk-pill.alto{color:#9f2630;background:#da445324;border-color:#da445338}.report-cards{gap:.85rem;display:grid}.report-card{background:#f8fafc;border-radius:12px;padding:1rem}.report-card p,.next-step-box p{color:var(--text-soft)}.report-card p{margin-top:.35rem}.next-step-box{background:var(--brand-soft);border:1px solid #29588429;border-radius:12px;margin-top:1rem;padding:1rem}.next-step-box p:last-child{margin-top:.5rem}.student-banner{background:linear-gradient(135deg,#fffffffa,#f3f8fcfa)}.student-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr)}.student-section-state{background:linear-gradient(135deg,#fffffffa,#f4f8fcfa)}.student-section-state h2{margin-top:.35rem;font-size:1.25rem}.student-score-box{text-align:center;background:linear-gradient(#f9fbfd,#edf3fa);border:1px solid #d6e2ef;border-radius:12px;justify-content:center;align-items:center;min-height:11rem;margin-bottom:1rem;display:grid}.student-score-value{font-family:var(--font-base);color:var(--brand);font-size:clamp(3rem,6vw,4.3rem);font-weight:800}.student-score-meta{color:var(--text-soft);font-family:var(--font-base);font-weight:700}.student-data-list,.readonly-box{gap:.8rem;display:grid}.student-data-row{border-top:1px solid #e3eaf2;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.student-data-row:first-child{border-top:none}.student-data-row strong{color:var(--text-strong);text-align:right}.student-note{margin-top:1rem}.profile-form{gap:.8rem;display:grid}.readonly-box{border:1px solid var(--border);background:#f7f9fc;border-radius:12px;margin-top:.35rem;padding:.95rem 1rem}.student-block-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.student-block,.professor-block{gap:.9rem;display:grid}.student-interpretation,.professor-risk-head span,.professor-area-row span,.student-factor-card p,.student-factor-card span,.student-recommendation-card ul,.professor-list-block{color:var(--text-soft);line-height:1.65}.student-factor-grid,.student-recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.student-factor-card,.student-recommendation-card,.professor-risk-row,.professor-area-row{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;padding:.9rem}.student-factor-card strong{color:var(--text-strong);margin:.25rem 0;display:block}.student-recommendation-card h3{color:var(--text-strong);margin-bottom:.55rem}.student-recommendation-card ul,.professor-list-block{gap:.45rem;margin:0;padding-left:1.05rem;display:grid}.student-area-list,.professor-risk-list,.professor-areas-list,.professor-student-detail{gap:.75rem;display:grid}.student-area-row{border:1px solid var(--border);background:#f9fbfd;border-radius:12px;padding:.9rem}.student-area-head,.professor-risk-head,.professor-area-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.student-progress-track,.student-compare-track,.student-time-track{background:#dde6f0;border-radius:999px;width:100%}.student-progress-track{height:.72rem;margin-top:.6rem}.student-progress-fill,.student-compare-fill{border-radius:inherit;height:100%}.student-progress-fill.safe,.student-status-chip.safe,.student-risk-card.safe{color:#0b6b56;background:#37bc9b2e}.student-progress-fill.warning,.student-status-chip.warning,.student-risk-card.warning{color:#996b00;background:#f6bb4238}.student-progress-fill.danger,.student-status-chip.danger,.student-risk-card.danger{color:#9f2630;background:#da445329}.student-status-chip{border-color:#0000000a}.student-area-score{color:var(--text-soft);margin-top:.5rem;font-size:.85rem;font-weight:700}.student-comparison-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.student-comparison-metrics p{color:var(--text-soft);font-size:.82rem}.student-comparison-metrics strong{color:var(--text-strong);font-size:1.08rem}.text-safe{color:#0b6b56!important}.text-danger{color:#9f2630!important}.student-compare-bars{gap:.7rem;display:grid}.student-compare-row{grid-template-columns:140px 1fr;align-items:center;gap:.65rem;display:grid}.student-compare-row span{color:var(--text-soft);font-size:.82rem;font-weight:700}.student-compare-track{height:.72rem}.student-compare-fill.self,.student-time-fill{background:linear-gradient(180deg, var(--cyan), var(--brand))}.student-compare-fill.group{background:#b4c3d3}.student-time-bars{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.student-time-point{justify-items:center;gap:.35rem;display:grid}.student-time-value,.student-time-point span{font-size:.78rem;font-weight:700}.student-time-point span{text-align:center;color:var(--text-soft)}.student-time-track{align-items:flex-end;width:16px;height:92px;display:flex;overflow:hidden}.student-time-fill{border-radius:inherit;width:100%}.student-risk-card{border:1px solid #0000000a;border-radius:12px;gap:.35rem;padding:1rem;display:grid}.student-risk-card p{font-size:1.25rem}.student-risk-card strong{color:var(--text-strong)}.student-risk-card span{color:var(--text-soft)}.student-quick-eval,.professor-model-run{justify-content:space-between;align-items:center;gap:1rem;display:flex}.professor-area-row .student-compare-track{flex:1;height:.6rem}.professor-sort-button,.professor-link-button{color:var(--brand);background:#29588414;border:1px solid #2958842e;border-radius:10px;padding:.5rem .75rem;font-size:.82rem;font-weight:800}.professor-link-button{width:100%}.professor-row-active td{background:#5d9cec1f}@media (width<=1080px){.auth-page,.grid-4,.grid-2,.student-layout,.auth-page.login-page{grid-template-columns:1fr}.portal-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-role-stage{min-height:auto}.login-page .auth-card{padding:2rem 1.6rem}.dashboard-shell{grid-template:"topbar""sidebar""main"minmax(0,1fr)/1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.sidebar-nav{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.welcome-banner,.topbar,.topbar-actions,.professor-model-run,.student-quick-eval{flex-direction:column;align-items:stretch}.welcome-chip,.search-box{min-width:100%}.student-block-grid,.student-factor-grid,.student-recommendation-grid{grid-template-columns:1fr}}@media (width<=640px){.auth-page,.content-area{padding:1rem}.auth-page.login-page{padding:0}.auth-spotlight,.auth-card,.topbar,.sidebar,.card{padding:1rem}.auth-links,.auth-form-options,.student-comparison-metrics,.student-time-bars,.grid-4,.grid-2{grid-template-columns:1fr}.auth-form-options{justify-items:start;display:grid}.portal-role-grid{grid-template-columns:1fr}.auth-brand-word{font-size:3.2rem}.search-box,.topbar-select,.search-box input,.logout-button,.auth-button,.professor-link-button,.professor-sort-button{width:100%}.student-compare-row{grid-template-columns:1fr}th,td{padding:.7rem .55rem;font-size:.8rem}}.onboarding-wrap{flex-direction:column;gap:20px;padding:28px 32px;display:flex}.onboarding-header h1{margin:6px 0 8px;font-size:1.55rem}.onboarding-header .banner-text{color:var(--text-soft,#58607a);max-width:640px}.profile-form{flex-direction:column;gap:16px;display:flex}.form-group-title{text-transform:uppercase;letter-spacing:.4px;color:#3b4670;border-bottom:1px solid #e3e6f2;margin:12px 0 4px;padding-bottom:6px;font-size:.95rem;font-weight:700}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;display:grid}@media (width<=720px){.form-grid-2{grid-template-columns:1fr}}.form-field{flex-direction:column;gap:6px;display:flex}.form-field>span{color:#3b4670;font-size:.85rem;font-weight:600}.form-field.checkbox-field{background:#f5f6fb;border:1px solid #e3e6f2;border-radius:10px;flex-direction:row;align-items:center;gap:10px;padding:10px 14px}.form-field.checkbox-field>span{color:#2b3157;font-weight:500}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.empty-state{text-align:center;color:#58607a;padding:36px}.cohort-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.cohort-toolbar .filter-group{align-items:center;gap:8px;display:flex}.cohort-toolbar select{min-width:200px}.cohort-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}@media (width<=920px){.cohort-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.cohort-metric-card{background:#fff;border:1px solid #e3e6f2;border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.cohort-metric-card .label{color:#58607a;text-transform:uppercase;letter-spacing:.6px;font-size:.78rem;font-weight:700}.cohort-metric-card .value{color:#2b3157;font-size:1.7rem;font-weight:800}.cohort-metric-card .hint{color:#58607a;font-size:.82rem}.cohort-distribution{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.cohort-distribution .chip{border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600}.cohort-distribution .alto{color:#1b6f3d;background:#defbe5}.cohort-distribution .medio{color:#8a6500;background:#fff4d6}.cohort-distribution .bajo{color:#8b1e1e;background:#fde0e0}.cohort-table{border-collapse:collapse;width:100%;font-size:.95rem;font-family:var(--font-base)}.cohort-table th,.cohort-table td{text-align:left;border-bottom:1px solid #eef0f7;padding:14px}.cohort-table th{text-transform:uppercase;letter-spacing:.6px;color:#58607a;background:#f5f6fb;font-size:.82rem}.cohort-table tbody tr:hover{background:#e8f0fa66}.cohort-table tr.pending td{color:#58607a;font-style:italic}.cohort-table .risk-pill{padding:2px 8px;display:inline-block}.account-modal-backdrop{z-index:1000;background:#0f172a8c;justify-content:center;align-items:flex-start;padding:4vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.account-modal{background:#fff;border-radius:18px;flex-direction:column;gap:18px;width:100%;min-width:0;max-width:560px;margin:auto 0;padding:24px 28px 28px;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a59}.account-modal *{min-width:0}.account-modal-header{border-bottom:1px solid #e3e6f2;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.account-modal-header h2{margin:4px 0 0;font-size:1.4rem}.account-modal-close{cursor:pointer;color:#2b3157;background:#f0f2fa;border:0;border-radius:50%;width:36px;height:36px;font-size:1rem}.account-modal-close:hover{background:#e3e6f2}.account-section{flex-direction:column;gap:14px;padding-top:6px;display:flex}.account-section+.account-section{border-top:1px solid var(--border);margin-top:8px;padding-top:16px}.account-section h3{text-transform:uppercase;letter-spacing:.5px;color:#3b4670;margin:0;font-size:.95rem}.account-info{flex-direction:column;gap:8px;display:flex}.account-info>div{background:#f5f6fb;border:1px solid #e3e6f2;border-radius:10px;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.account-info>div span{color:#58607a;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;font-size:.78rem;font-weight:700}.account-info>div strong{color:#2b3157;text-align:right;word-break:break-all;overflow-wrap:anywhere;min-width:0;font-size:.92rem}@media (width<=480px){.account-info>div{flex-direction:column;align-items:flex-start;gap:4px}.account-info>div strong{text-align:left}}.account-button{color:#2b3157!important;background:#fff!important;border:1px solid #c8cee0!important;font-weight:600!important}.account-button:hover{background:#f0f2fa!important}.user-card{cursor:pointer;transition:background .15s}.user-card:hover{background:#ffffff0f}.student-risk-icon{color:currentColor;justify-content:center;align-items:center;margin:0;display:inline-flex}.data-table-wrap .data-table-wrap{gap:.75rem;display:grid}.data-table-wrap .data-table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.data-table-wrap .data-table-search{background:var(--surface-3);border:1px solid var(--border);min-width:280px;color:var(--text-soft);border-radius:10px;align-items:center;gap:.55rem;padding:.35rem .8rem;transition:border-color .16s,box-shadow .16s;display:flex}.data-table-wrap .data-table-search:focus-within{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 3px #2958841f}.data-table-wrap .data-table-search-input{min-width:0;color:var(--text-strong);background:0 0;border:0;flex:1;padding:.4rem 0;font-size:.95rem}.data-table-wrap .data-table-search-input:focus{box-shadow:none;outline:none}.data-table-wrap .data-table-page-size{color:var(--text-soft);align-items:center;gap:.6rem;font-size:.9rem;display:inline-flex}.data-table-wrap .data-table-page-size select{min-width:80px;padding:.45rem .75rem}.data-table-wrap .data-table-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:.25rem;display:flex}.data-table-wrap .data-table-info{color:var(--text-soft);font-size:.9rem}.data-table-wrap .data-table-page{color:var(--text);font-size:.9rem;font-weight:700}.data-table-wrap .data-table-empty{text-align:center;color:var(--text-soft);padding:2.5rem 1rem;font-style:italic}.data-table-wrap .kpi-icon{background:var(--brand-soft);width:38px;height:38px;color:var(--brand);border-radius:10px;justify-content:center;align-items:center;font-size:22px;display:inline-flex}.data-table-wrap .nav-icon{width:22px;height:22px;color:var(--text-soft);justify-content:center;align-items:center;font-size:16px;display:inline-flex}.data-table-wrap .nav-item.active .nav-icon,.data-table-wrap .nav-item:hover .nav-icon{color:var(--brand)}.data-table-wrap .topbar-icon{color:#ffffffd9;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.data-table-wrap .account-button{align-items:center;gap:.4rem;display:inline-flex}
