:root{--background: #0b1326;--surface-lowest: #060e20;--surface-low: #131b2e;--surface: #171f33;--surface-high: #222a3d;--surface-highest: #2d3449;--on-surface: #dae2fd;--on-surface-variant: #aebcad;--primary: #4edea3;--primary-strong: #10b981;--primary-ink: #003824;--secondary: #7bd0ff;--outline: #526158;--outline-variant: #33423a;--error: #ffb4ab;--warning: #fbbf24;color:var(--on-surface);background:var(--background);color-scheme:dark;font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box;scrollbar-color:var(--surface-highest) var(--surface-low);scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--surface-low)}::-webkit-scrollbar-thumb{background:var(--surface-highest);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--outline)}body{background:var(--background);margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.center-screen,.login-shell{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-shell{background:linear-gradient(135deg,#0f766eeb,#1d4ed8c7),url(https://images.unsplash.com/photo-1523580846011-d3a5bc25702b?auto=format&fit=crop&w=1800&q=80) center/cover}.login-panel{background:#131b2ef0;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 24px 80px #0f20283d;max-width:440px;padding:34px;width:100%}.login-panel h1{font-size:34px;letter-spacing:0;margin:18px 0 8px}.login-panel p{color:var(--on-surface-variant);line-height:1.55;margin:0 0 26px}.brand-mark{align-items:center;background:#4edea31f;border:1px solid rgba(78,222,163,.2);border-radius:8px;box-shadow:0 0 20px #10b9811f;color:var(--primary);display:inline-flex;height:50px;justify-content:center;width:50px}.brand-mark.small{height:34px;width:34px}.app-shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface-low);border-right:1px solid rgba(255,255,255,.05);box-shadow:14px 0 38px #0308142e;color:var(--on-surface);display:flex;flex-direction:column;gap:24px;height:100vh;overflow-y:auto;overscroll-behavior:contain;padding:20px 16px 16px;position:sticky;top:0;z-index:70}.sidebar-backdrop,.sidebar-close,.mobile-menu-button,.mobile-topbar-brand{display:none}.sidebar>*{flex:0 0 auto}.brand-row{align-items:center;border-bottom:1px solid rgba(255,255,255,.05);display:flex;gap:12px;margin:-4px -2px 0;padding:0 6px 18px}.brand-copy{display:grid;gap:3px;min-width:0}.brand-copy strong{color:var(--primary);font-size:16px;font-weight:900;letter-spacing:0}.brand-copy span{color:var(--on-surface-variant);font-size:12px}.nav-list{display:grid;gap:0}.nav-section{display:grid;gap:8px;padding-bottom:17px}.nav-section+.nav-section{border-top:1px solid rgba(255,255,255,.05);padding-top:17px}.nav-section>span{color:var(--on-surface-variant);font-size:10px;font-weight:800;opacity:.7;padding:0 12px;text-transform:uppercase}.nav-section>div{display:grid;gap:4px}.sidebar-profile{border-top:1px solid rgba(255,255,255,.06);display:grid;margin-top:auto;padding-top:14px}.nav-button,.ghost-action{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--on-surface-variant);display:flex;gap:12px;min-height:46px;padding:10px 13px;text-align:left}.nav-button.active,.nav-button:hover,.ghost-action:hover{background:#4edea31a;color:var(--primary)}.nav-button.active{box-shadow:inset -3px 0 0 var(--primary)}.module-navigation{align-items:center;border-bottom:1px solid var(--outline);display:flex;gap:4px;margin:0 0 24px;overflow-x:auto;scrollbar-width:none}.module-navigation::-webkit-scrollbar{display:none}.module-navigation button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--on-surface-variant);flex:0 0 auto;font-size:14px;font-weight:800;min-height:44px;padding:8px 16px}.module-navigation button:hover{color:var(--on-surface)}.module-navigation button.active{border-bottom-color:var(--primary);color:var(--primary)}.nav-icon{align-items:center;display:inline-flex;flex:0 0 20px;justify-content:center}.nav-icon svg{height:19px;stroke-width:2;width:19px}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-button{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--on-surface-variant);display:grid;gap:10px;grid-template-columns:36px minmax(0,1fr);padding:8px;text-align:left}.profile-button:hover,.profile-button.active{background:#4edea314;color:var(--on-surface)}.profile-button>img,.profile-button>svg{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;height:36px;object-fit:cover;padding:7px;width:36px}.profile-button>img{padding:0}.profile-button>span{display:grid;gap:2px;min-width:0}.profile-button strong,.profile-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-button strong{color:var(--on-surface);font-size:13px}.profile-button small{color:var(--on-surface-variant);font-size:11px}.ghost-action{margin-top:auto}.workspace{background:var(--background);min-width:0;padding:28px clamp(18px,3vw,48px) 48px}.topbar{align-items:center;background:#171f33c7;border:1px solid rgba(255,255,255,.05);border-radius:8px;box-shadow:0 12px 34px #03081429;display:grid;gap:16px;grid-template-columns:minmax(220px,430px) auto;justify-content:space-between;margin-bottom:30px;min-height:64px;padding:11px 12px;position:relative}.topbar-search{min-width:0;position:relative}.topbar-search>svg{color:var(--on-surface-variant);left:13px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.topbar-search input{background:var(--surface-lowest);border-color:var(--outline-variant);min-height:40px;padding:9px 12px 9px 40px}.topbar-search input::placeholder{color:var(--on-surface-variant);opacity:.66}.topbar-search-results{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 18px 42px #0308145c;display:grid;gap:3px;left:0;max-height:340px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 7px);z-index:55}.topbar-search-results>span{color:var(--on-surface-variant);font-size:12px;padding:12px}.topbar-search-results button{background:transparent;border:0;border-radius:6px;color:var(--on-surface);display:grid;gap:3px;padding:9px 10px;text-align:left}.topbar-search-results button:hover,.topbar-search-results button:focus-visible{background:#4edea314}.topbar-search-results button strong,.topbar-search-results button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-search-results button strong{font-size:12px}.topbar-search-results button small{color:var(--on-surface-variant);font-size:11px}.topbar-actions{align-items:center;display:flex;gap:5px;justify-content:flex-end;min-width:0}.topbar-icon-button{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--on-surface-variant);display:inline-flex;height:38px;justify-content:center;position:relative;width:38px}.topbar .mobile-menu-button{display:none}.topbar-icon-button:hover,.topbar-icon-button[aria-expanded=true]{background:var(--surface-high);color:var(--primary)}.notification-dot{background:var(--error);border:2px solid var(--surface);border-radius:999px;height:8px;position:absolute;right:7px;top:7px;width:8px}.topbar-notifications{position:relative}.notification-popover{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 18px 42px #0308145c;display:grid;gap:7px;min-width:260px;padding:13px;position:absolute;right:0;top:calc(100% + 8px);z-index:55}.notification-popover strong{font-size:12px}.notification-popover span{color:var(--on-surface-variant);font-size:12px;line-height:1.45}.topbar-profile{align-items:center;background:transparent;border:0;border-left:1px solid var(--outline-variant);color:var(--on-surface);display:flex;gap:10px;margin-left:5px;min-width:0;padding:2px 0 2px 14px;text-align:right}.topbar-profile:hover .topbar-profile-copy strong{color:var(--primary)}.topbar-profile-copy{display:grid;gap:2px;min-width:0}.topbar-profile-copy strong,.topbar-profile-copy small{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-profile-copy strong{font-size:12px}.topbar-profile-copy small{color:var(--on-surface-variant);font-size:10px}.topbar-profile>img,.topbar-profile>svg{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:7px;flex:0 0 auto;height:36px;object-fit:cover;padding:7px;width:36px}.topbar-profile>img{padding:0}.eyebrow{color:var(--on-surface-variant);font-size:12px;font-weight:700;text-transform:uppercase}.toast{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 14px 38px #03081447;color:var(--primary);max-width:min(420px,calc(100vw - 28px));padding:12px 14px;position:absolute;right:0;top:calc(100% + 8px);z-index:50}.content-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-heading{align-items:start;display:flex;gap:16px;justify-content:space-between}.page-header{margin-bottom:20px;max-width:760px}.current-period-badge{color:var(--on-surface-variant);flex:0 0 auto;font-size:15px;font-weight:900;margin-top:16px}.page-header h1{font-size:30px;letter-spacing:0;line-height:1.12;margin:5px 0 8px}.page-header p{color:var(--on-surface-variant);line-height:1.55;margin:0}.shared-schedule-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.shared-schedule-header .page-header{margin-bottom:20px}.shared-academic-summary{margin-bottom:16px}.shared-overview-panel,.shared-overview-list{display:grid;gap:12px}.shared-overview-card{align-items:center;border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto auto;padding:14px}.shared-overview-card h3{font-size:17px;margin:0 0 4px}.shared-overview-card span,.shared-overview-meta span{color:var(--on-surface-variant);font-size:13px}.shared-overview-meta small{color:var(--primary);font-size:11px;font-weight:800}.shared-overview-meta{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:2px;min-width:94px;padding:10px;text-align:center}.shared-overview-meta strong{color:var(--on-surface);font-size:24px;line-height:1}.shared-overview-actions,.shared-detail-actions,.shared-detail-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.shared-detail-tab{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);display:inline-flex;font-weight:850;gap:8px;min-height:40px;padding:9px 12px}.shared-detail-tab.active{background:var(--primary-strong);border-color:var(--primary);color:#fff}.shared-detail-tabs{justify-content:flex-start;margin-bottom:16px}.panel,.metric-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 12px 38px #03081433}.panel{padding:18px}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.panel.wide{grid-column:span 2}.metric-card{display:grid;gap:8px;min-height:126px;padding:18px}.metric-card svg{color:var(--primary)}.metric-card span{color:var(--on-surface-variant)}.metric-card strong{font-size:32px}.dashboard-summary-layout{display:grid;gap:16px;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-panel{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 12px 38px #03081433;padding:18px}.dashboard-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-item{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:6px;min-height:86px;padding:13px}.dashboard-summary-item span{color:var(--on-surface-variant);font-size:13px}.dashboard-summary-item strong{color:var(--on-surface);font-size:28px;line-height:1}.cr-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 18px 42px #0308143d;color:var(--on-surface);display:grid;gap:6px;grid-column:span 3;min-height:164px;padding:22px}.cr-card span{color:var(--on-surface-variant);font-size:13px;font-weight:900;text-transform:uppercase}.cr-card strong{color:var(--primary);font-size:70px;letter-spacing:0;line-height:.95}.cr-card small{color:var(--on-surface-variant);font-weight:700}.academic-dashboard{display:grid;gap:30px}.dashboard-progress-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 18px 48px #0308143d;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.46fr);min-height:216px;overflow:hidden}.dashboard-progress-main{align-content:center;display:grid;padding:28px 32px}.dashboard-card-label,.dashboard-score>span,.dashboard-panel-header>div>span,.dashboard-summary-card>header span{color:var(--on-surface-variant);font-size:12px;font-weight:800;text-transform:uppercase}.dashboard-progress-main h1{font-size:19px;margin:7px 0 22px}.dashboard-progress-copy{align-items:center;display:flex;font-size:13px;justify-content:space-between;margin-bottom:9px}.dashboard-progress-copy strong{color:var(--primary)}.dashboard-progress-copy span,.dashboard-progress-main>small{color:var(--on-surface-variant)}.dashboard-progress-track{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:999px;display:flex;height:11px;overflow:hidden}.dashboard-progress-track>span{display:block;height:100%;min-width:0;transition:width .24s ease}.dashboard-progress-track>span.curricular,.dashboard-progress-legend i.curricular{background:var(--primary-strong)}.dashboard-progress-track>span.extension,.dashboard-progress-legend i.extension{background:var(--secondary)}.dashboard-progress-legend{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:flex-end;margin-top:9px}.dashboard-progress-legend>span{align-items:center;color:var(--on-surface-variant);display:inline-flex;font-size:12px;gap:5px}.dashboard-progress-legend i{border-radius:999px;height:7px;width:7px}.dashboard-progress-legend strong{color:var(--on-surface)}.dashboard-complementary-progress{border-top:1px solid var(--outline-variant);display:grid;gap:7px;margin-top:14px;padding-top:12px}.dashboard-complementary-progress>div:first-child{align-items:center;color:var(--on-surface-variant);display:flex;font-size:12px;justify-content:space-between}.dashboard-complementary-progress>div:first-child strong{color:var(--on-surface)}.dashboard-complementary-track{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:999px;height:8px;overflow:hidden}.dashboard-complementary-track>span{background:var(--warning);display:block;height:100%;transition:width .24s ease}.dashboard-score-grid{align-items:center;border-left:1px solid var(--outline-variant);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:24px}.dashboard-score{display:grid;gap:7px;justify-items:center;padding:12px;text-align:center}.dashboard-score+.dashboard-score{border-left:1px solid var(--outline-variant)}.dashboard-score strong{color:var(--secondary);font-size:44px;font-weight:500;line-height:1}.dashboard-score.primary strong{color:var(--primary)}.dashboard-score small{color:var(--on-surface-variant);font-size:11px}.dashboard-section-title{align-items:center;border-bottom:1px solid var(--outline-variant);color:var(--on-surface);display:flex;gap:9px;margin-bottom:-14px;padding:0 2px 12px}.dashboard-section-title svg{color:var(--primary)}.dashboard-section-title span{font-size:13px}.dashboard-detail-layout{align-items:start;display:grid;gap:22px;grid-template-columns:minmax(0,1fr) 310px}.dashboard-primary-column,.dashboard-secondary-column{display:grid;gap:16px}.dashboard-summary-layout.compact{gap:12px;grid-column:auto}.dashboard-summary-card,.dashboard-performance-panel,.dashboard-side-panel{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 12px 34px #0308142e}.dashboard-summary-card{border-top:2px solid var(--primary);display:grid;gap:14px;min-width:0;padding:16px}.dashboard-summary-card.general{border-top-color:var(--secondary)}.dashboard-summary-card>header{align-items:center;color:var(--primary);display:flex;gap:8px}.dashboard-summary-card.general>header{color:var(--secondary)}.dashboard-summary-card>header span{color:currentColor}.dashboard-summary-card .dashboard-summary-grid{gap:13px 18px}.dashboard-summary-grid>div{display:grid;gap:3px}.dashboard-summary-grid>div>span{color:var(--on-surface-variant);font-size:10px;font-weight:800;text-transform:uppercase}.dashboard-summary-grid>div>strong{color:var(--on-surface);font-size:21px;line-height:1}.dashboard-summary-card>small{border-top:1px solid var(--outline-variant);color:var(--on-surface-variant);font-size:11px;padding-top:10px}.dashboard-analytics-panel{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 14px 38px #03081433;overflow:hidden}.dashboard-analytics-header{align-items:end;border-bottom:1px solid var(--outline-variant);display:flex;gap:24px;justify-content:space-between;padding:18px 20px 0}.dashboard-analytics-header>div:first-child{display:grid;gap:4px;padding-bottom:14px}.dashboard-analytics-header>div:first-child span{color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase}.dashboard-analytics-header h2{font-size:19px;margin:0}.dashboard-chart-tabs{display:flex;gap:4px;overflow-x:auto}.dashboard-chart-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--on-surface-variant);font-size:12px;font-weight:750;min-height:48px;padding:8px 13px;white-space:nowrap}.dashboard-chart-tabs button:hover{color:var(--on-surface)}.dashboard-chart-tabs button.active{border-bottom-color:var(--primary);color:var(--primary)}.dashboard-chart-panel{min-height:390px;padding:20px}.dashboard-chart-copy{align-items:start;display:flex;gap:24px;justify-content:space-between;margin-bottom:18px}.dashboard-chart-copy>div:first-child{display:grid;gap:4px}.dashboard-chart-copy strong{font-size:14px}.dashboard-chart-copy>div:first-child span{color:var(--on-surface-variant);font-size:12px}.dashboard-chart-legend{align-items:center;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:flex-end}.dashboard-chart-legend span{align-items:center;color:var(--on-surface-variant);display:inline-flex;font-size:11px;gap:6px}.dashboard-chart-legend i{background:var(--primary);border-radius:999px;height:8px;width:8px}.dashboard-chart-legend i.period-average,.dashboard-chart-legend i.extension{background:var(--secondary)}.dashboard-chart-legend i.failed{background:var(--error)}.dashboard-chart-legend i.pending{background:var(--warning)}.dashboard-chart-scroll{overflow-x:auto;padding-bottom:4px}.dashboard-cr-chart{display:block;min-width:700px;width:100%}.chart-grid-line{stroke:var(--outline-variant);stroke-dasharray:4 5;stroke-width:1}.chart-axis-label{fill:var(--on-surface-variant);font-size:11px}.chart-axis-label.period{font-weight:700}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.chart-line.cumulative{stroke:var(--primary)}.chart-line.period-average{stroke:var(--secondary);stroke-dasharray:7 6}.chart-point{stroke:var(--surface);stroke-width:3}.chart-point.cumulative{fill:var(--primary)}.chart-point.period-average{fill:var(--secondary)}.dashboard-bars-view{display:grid;min-height:340px}.charts-page-panel{margin-top:22px}.dashboard-pie-view{display:grid;min-height:340px}.dashboard-pie-layout{align-items:center;display:grid;gap:44px;grid-template-columns:minmax(260px,360px) minmax(260px,1fr);justify-content:center;margin:auto;max-width:880px;width:100%}.dashboard-pie-chart{display:block;margin:auto;max-width:340px;width:100%}.dashboard-pie-chart path,.dashboard-pie-chart circle{stroke:var(--surface);stroke-width:2;transition:filter .16s ease,opacity .16s ease}.dashboard-pie-chart path:hover,.dashboard-pie-chart circle:hover{filter:brightness(1.08);opacity:.9}.dashboard-pie-legend{display:grid;gap:2px}.dashboard-pie-legend>div{align-items:center;border-bottom:1px solid var(--outline-variant);display:grid;gap:10px;grid-template-columns:10px minmax(82px,1fr) auto 54px;min-height:42px}.dashboard-pie-legend>div:last-child{border-bottom:0}.dashboard-pie-legend i{border-radius:3px;height:10px;width:10px}.dashboard-pie-legend strong{font-size:12px}.dashboard-pie-legend span,.dashboard-pie-legend small{color:var(--on-surface-variant);font-size:11px;text-align:right}.dashboard-horizontal-chart{align-content:center;display:grid;gap:16px}.dashboard-bar-row{align-items:center;display:grid;gap:13px;grid-template-columns:74px minmax(160px,1fr) 72px}.dashboard-bar-row>strong{color:var(--on-surface);font-size:12px}.dashboard-bar-row>span{color:var(--on-surface-variant);font-size:11px;text-align:right}.dashboard-bar-track{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:5px;display:flex;height:25px;overflow:hidden}.dashboard-bar-track>span{display:block;height:100%;min-width:0;transition:width .24s ease}.dashboard-bar-track>span.curricular,.dashboard-bar-track>span.approved{background:var(--primary-strong)}.dashboard-bar-track>span.extension{background:var(--secondary)}.dashboard-bar-track>span.failed{background:var(--error)}.dashboard-bar-track>span.pending{background:var(--warning)}.dashboard-bar-track.results>span:first-child{border-radius:4px 0 0 4px}.dashboard-performance-panel,.dashboard-side-panel{padding:16px}.dashboard-panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:13px}.dashboard-panel-header>div{align-items:center;display:flex;gap:8px;min-width:0}.dashboard-performance-panel .dashboard-panel-header>div{align-items:flex-start;display:grid;gap:3px}.dashboard-panel-header>div svg{color:var(--primary);flex:0 0 auto}.dashboard-panel-header>div>small,.dashboard-panel-header>small{color:var(--on-surface-variant);font-size:11px}.dashboard-link-button{align-items:center;background:transparent;border:0;color:var(--primary);display:inline-flex;font-size:12px;font-weight:800;gap:3px;padding:4px 0}.dashboard-course-list,.dashboard-task-list,.dashboard-alert-list{display:grid}.dashboard-course-row{align-items:center;background:transparent;border:0;border-top:1px solid var(--outline-variant);color:var(--on-surface);display:grid;gap:11px;grid-template-columns:8px minmax(0,1fr) auto auto;min-height:66px;padding:10px 4px;text-align:left;width:100%}.dashboard-course-row:first-child{border-top:0}.dashboard-course-row.interactive:hover{background:#4edea30d}.dashboard-course-row>svg{color:var(--on-surface-variant)}.dashboard-course-dot{background:var(--warning);border-radius:999px;box-shadow:0 0 10px currentColor;height:6px;width:6px}.dashboard-course-dot.approved{background:var(--primary);color:var(--primary)}.dashboard-course-dot.failed{background:var(--error);color:var(--error)}.dashboard-course-dot.pending{background:var(--warning);color:var(--warning)}.dashboard-course-copy,.dashboard-course-score{display:grid;gap:3px;min-width:0}.dashboard-course-copy strong,.dashboard-course-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-course-copy strong{font-size:13px}.dashboard-course-copy span,.dashboard-course-score span{color:var(--on-surface-variant);font-size:11px}.dashboard-course-score{justify-items:end;text-align:right}.dashboard-course-score strong{color:var(--warning);font-size:15px}.dashboard-course-score.approved strong{color:var(--primary)}.dashboard-course-score.failed strong{color:var(--error)}.dashboard-side-panel.upcoming{border-top:2px solid var(--secondary)}.dashboard-side-panel.alerts{border-top:2px solid var(--error)}.dashboard-task{align-items:start;border-top:1px solid var(--outline-variant);display:grid;gap:9px;grid-template-columns:15px minmax(0,1fr);padding:11px 0}.dashboard-task:first-child{border-top:0}.dashboard-task-check{border:1px solid var(--outline);border-radius:4px;height:14px;margin-top:2px;width:14px}.dashboard-task>div{display:grid;gap:3px;min-width:0}.dashboard-task strong,.dashboard-task span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-task strong{font-size:12px}.dashboard-task span,.dashboard-task small{color:var(--on-surface-variant);font-size:11px}.dashboard-task small{color:var(--secondary)}.dashboard-alert-list{gap:8px}.dashboard-alert,.dashboard-safe-state{background:var(--surface-low);border-left:2px solid var(--warning);border-radius:6px;display:grid;gap:5px;padding:11px}.dashboard-alert.danger,.dashboard-alert.critical{border-left-color:var(--error)}.dashboard-alert strong,.dashboard-safe-state span{font-size:12px}.dashboard-alert span,.dashboard-safe-state small{color:var(--on-surface-variant);font-size:11px;line-height:1.45}.dashboard-safe-state{border-left-color:var(--primary)}.dashboard-safe-state span{color:var(--primary);font-weight:800}.dashboard-quick-actions{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-quick-actions button{font-size:12px;min-height:48px;padding:8px}.panel-title{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:16px}.title-left{align-items:center;display:flex;gap:10px}.panel-title h3{font-size:17px;margin:0}.panel-title svg,.text-action svg{color:var(--primary)}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{color:var(--on-surface-variant);display:grid;font-size:13px;font-weight:700;gap:6px}.form-grid label.checkbox-row{align-items:center;display:flex;gap:9px}.checkbox-row input[type=checkbox]{min-height:0;width:auto}.form-grid .full{grid-column:1 / -1}.completed-period-picker{border:0;display:grid;gap:10px 12px;grid-template-columns:minmax(130px,.8fr) minmax(220px,1.2fr);margin:0;padding:0}.completed-period-picker legend{color:var(--on-surface-variant);font-size:13px;font-weight:800;margin-bottom:8px;padding:0}.completed-period-picker label,.completed-period-year,.completed-period-semester{color:var(--on-surface-variant);display:grid;font-size:13px;font-weight:700;gap:7px}.completed-period-year{position:relative}.completed-year-trigger{align-items:center;background:var(--surface-low);border:1px solid var(--outline);border-radius:8px;color:var(--on-surface);display:flex;font-weight:800;justify-content:space-between;min-height:42px;padding:9px 11px;width:100%}.completed-year-trigger[aria-expanded=true]{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 24%,transparent)}.completed-year-options{background:var(--surface-high);border:1px solid var(--outline);border-radius:8px;box-shadow:0 14px 36px #00000040;display:grid;left:0;max-height:126px;overflow-y:auto;padding:5px;position:absolute;right:0;top:calc(100% + 5px);z-index:4}.completed-year-options button{background:transparent;border:0;border-radius:6px;color:var(--on-surface-variant);font-weight:800;min-height:38px;padding:8px 10px;text-align:left}.completed-year-options button:hover,.completed-year-options button.active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}.completed-period-semester>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.completed-period-semester button{background:var(--surface-low);border:1px solid var(--outline);color:var(--on-surface-variant);font-weight:800;min-height:42px;padding:8px 10px}.completed-period-semester button:first-child{border-radius:8px 0 0 8px}.completed-period-semester button:last-child{border-left:0;border-radius:0 8px 8px 0}.completed-period-semester button.active{background:color-mix(in srgb,var(--primary) 14%,var(--surface));border-color:var(--primary);color:var(--primary)}.completed-period-semester button.active+button{border-left-color:var(--primary)}.completed-period-preview{color:var(--primary);font-size:12px;font-weight:800;grid-column:1 / -1}input,select,textarea{background:var(--surface-low);border:1px solid var(--outline);border-radius:8px;color:var(--on-surface);min-height:42px;padding:10px 11px;width:100%}textarea{resize:vertical}.primary-action{align-items:center;background:var(--primary-strong);border:0;border-radius:8px;color:var(--primary-ink);display:inline-flex;font-weight:800;gap:9px;justify-content:center;min-height:44px;padding:10px 14px}.primary-action.full{width:100%}.secondary-action,.text-action{align-items:center;border-radius:8px;display:inline-flex;font-weight:800;gap:8px;min-height:38px;padding:8px 11px}.secondary-action{background:var(--surface-highest);border:1px solid var(--outline-variant);color:var(--primary)}.text-action{background:transparent;border:0;color:var(--primary);margin-bottom:10px;padding-left:0}.course-index-panel{min-height:420px}.course-index-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.history-import{display:grid;gap:16px}.history-file-drop{align-items:center;background:var(--surface-low);border:1px dashed var(--outline);border-radius:8px;color:var(--on-surface-variant);cursor:pointer;display:flex;flex-direction:column;gap:7px;justify-content:center;min-height:240px;padding:28px;text-align:center}.history-file-drop:hover{border-color:var(--primary);color:var(--primary)}.history-file-drop.loading{cursor:wait;opacity:.72}.history-file-drop strong{color:var(--on-surface);font-size:17px}.history-file-drop input{height:1px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;width:1px}.history-import-alert,.history-import-guidance{align-items:flex-start;border:1px solid var(--outline-variant);border-radius:8px;display:flex;gap:10px;padding:12px 14px}.history-import-alert.error{background:color-mix(in srgb,var(--danger) 10%,var(--surface));border-color:color-mix(in srgb,var(--danger) 45%,var(--outline));color:var(--danger)}.history-import-guidance{background:color-mix(in srgb,var(--primary) 8%,var(--surface));color:var(--on-surface-variant)}.history-import-guidance svg{color:var(--primary);flex:0 0 auto}.history-import-guidance p{margin:0}.history-import-summary{display:grid;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}.history-import-summary>div{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:3px;min-width:0;padding:10px 12px}.history-import-summary span{color:var(--on-surface-variant);font-size:12px;font-weight:700}.history-import-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-review-list{border:1px solid var(--outline-variant);border-radius:8px;max-height:440px;overflow:auto}.history-review-row{align-items:flex-start;background:var(--surface);border-bottom:1px solid var(--outline-variant);display:grid;gap:12px;grid-template-columns:22px minmax(0,1fr);padding:13px 14px}.history-review-row:last-child{border-bottom:0}.history-review-row.unmatched{background:color-mix(in srgb,var(--warning) 7%,var(--surface))}.history-review-row.duplicate{opacity:.65}.history-review-check{padding-top:2px}.history-review-check input{min-height:0;width:auto}.history-review-course{display:grid;gap:5px;min-width:0}.history-review-title{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.history-review-title strong{line-height:1.35}.history-review-course p{color:var(--on-surface-variant);margin:0}.history-situation{border-radius:4px;flex:0 0 auto;font-size:11px;font-weight:900;padding:4px 6px;text-transform:uppercase}.history-situation.aprovado{background:color-mix(in srgb,var(--primary) 13%,var(--surface));color:var(--primary)}.history-situation.reprovado{background:color-mix(in srgb,var(--danger) 13%,var(--surface));color:var(--danger)}.history-situation.aproveitamento{background:var(--surface-highest);color:var(--on-surface-variant)}.history-match{color:var(--primary);font-size:12px;font-weight:700}.history-match-picker{display:grid;gap:7px;margin-top:4px}.history-match-picker>span{color:var(--warning);font-size:12px;font-weight:800}.history-import-footer{align-items:center;display:flex;gap:10px;justify-content:flex-end}.tabs-bar{align-items:center;display:flex;gap:8px;margin-bottom:16px}.tab-button{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);display:inline-flex;font-weight:900;gap:8px;min-height:42px;padding:9px 12px}.tab-button.active,.tab-button:hover{background:var(--primary-strong);border-color:var(--primary);color:var(--primary-ink)}.schedule-editor{border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:10px;padding:12px}.schedule-header,.segmented-actions{align-items:center;display:flex;gap:8px;justify-content:space-between}.schedule-row{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 112px 40px}.course-list{display:grid;gap:12px}.my-courses-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.my-courses-section{display:grid;gap:16px}.my-courses-header{align-items:center;border-bottom:1px solid var(--outline-variant);display:flex;justify-content:space-between;padding-bottom:12px}.my-courses-header>div{align-items:center;display:flex;gap:9px}.my-courses-header svg{color:var(--primary)}.my-courses-header h2{font-size:17px;margin:0}.my-courses-header span{align-items:center;background:var(--surface-highest);border-radius:999px;color:var(--on-surface-variant);display:inline-flex;font-size:12px;font-weight:800;height:21px;justify-content:center;min-width:21px;padding:0 6px}.active-course-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 12px 34px #03081429;color:var(--on-surface);display:grid;gap:15px;grid-template-rows:auto auto 1fr auto;min-height:286px;padding:17px;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;width:100%}.active-course-card:hover{border-color:var(--primary);box-shadow:0 16px 40px #03081447;transform:translateY(-2px)}.active-course-status{border-radius:999px;font-size:11px;font-weight:900;justify-self:start;line-height:1;padding:6px 8px;text-transform:uppercase}.active-course-status.ok{background:#4edea31f;color:var(--primary)}.active-course-status.pending,.active-course-status.warning{background:#fbbf241f;color:var(--warning)}.active-course-status.critical{background:#ffb4ab1f;color:var(--error)}.active-course-heading{display:grid;gap:5px}.active-course-heading h3{font-size:18px;line-height:1.25;margin:0}.active-course-heading span{color:var(--on-surface-variant);font-size:12px;line-height:1.4}.active-course-details{align-content:start;border-top:1px solid var(--outline-variant);display:grid;gap:9px 12px;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:13px}.active-course-details>span{align-items:flex-start;color:var(--on-surface-variant);display:flex;font-size:12px;gap:6px;line-height:1.4;min-width:0}.active-course-details>span.full{grid-column:1 / -1}.active-course-details svg{color:var(--on-surface-variant);flex:0 0 auto;margin-top:1px}.active-course-absence{border-top:1px solid var(--outline-variant);display:grid;gap:8px;padding-top:12px}.active-course-absence>div:first-child{align-items:center;display:flex;justify-content:space-between}.active-course-absence span,.active-course-absence strong{font-size:11px;font-weight:900;text-transform:uppercase}.active-course-absence>div:first-child>span{color:var(--on-surface-variant)}.active-course-absence strong.ok{color:var(--primary)}.active-course-absence strong.warning{color:var(--warning)}.active-course-absence strong.critical{color:var(--error)}.active-course-absence .absence-bar{height:5px}.course-card{border:1px solid var(--outline-variant);border-radius:8px;padding:14px}.course-card.interactive{cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.course-card.interactive:hover{border-color:var(--primary);box-shadow:0 14px 34px #1b2e2a14;transform:translateY(-1px)}.grade-builder-actions{margin-bottom:16px;padding:0}.grade-builder-page-header{margin-bottom:20px;max-width:760px}.grade-builder-breadcrumb{align-items:center;color:var(--on-surface-variant);display:flex;font-size:11px;font-weight:800;gap:6px;text-transform:uppercase}.grade-builder-breadcrumb svg:first-child,.grade-builder-breadcrumb strong{color:var(--primary)}.grade-builder-page-header h1{font-size:30px;line-height:1.1;margin:12px 0 8px}.grade-builder-page-header p{color:var(--on-surface-variant);font-size:13px;line-height:1.55;margin:0}.schedule-export-panel{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px;padding:14px 18px}.my-schedule-header{align-items:end;display:flex;gap:18px;justify-content:space-between;margin-bottom:20px}.my-schedule-header h1{font-size:28px;line-height:1.1;margin:5px 0 6px}.my-schedule-header p{color:var(--on-surface-variant);font-size:13px;margin:0}.my-schedule-actions{align-items:center;display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}.my-schedule-actions .grade-count{font-size:12px;padding:7px 10px}.my-schedule-actions .secondary-action{min-height:36px}.my-schedule-actions .export-menu-list{left:auto;right:0}.schedule-export-title{align-items:center;color:var(--on-surface);display:flex;gap:10px}.schedule-export-title svg{color:var(--primary)}.schedule-export-title h3{font-size:17px;margin:0}.schedule-export-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.grade-count{background:#4edea324;border:1px solid var(--outline-variant);border-radius:999px;color:var(--primary);font-size:14px;font-weight:900;padding:8px 13px}.grade-action-row{display:flex;flex-wrap:wrap;gap:12px}.grade-builder-header{align-items:center;border-bottom:1px solid var(--outline-variant);display:flex;justify-content:space-between;padding:18px 24px}.grade-builder-heading{align-items:center;color:var(--primary);display:flex;gap:14px}.grade-builder-heading h3{font-size:24px;line-height:1;margin:0}.grade-builder-section{align-items:center;display:grid;gap:16px;grid-template-columns:auto minmax(0,1fr);padding:16px}.grade-actions-block{background:var(--surface-low);border-top:1px solid var(--outline-variant)}.grade-control-label{color:var(--on-surface-variant);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.grade-row-between{align-items:center;display:flex;gap:16px;justify-content:space-between}.draft-grade-tabs{display:flex;flex-wrap:wrap;gap:8px}.draft-grade-tab{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:7px;color:var(--on-surface-variant);cursor:pointer;font-size:12px;font-weight:850;line-height:1;min-height:34px;padding:8px 12px}.draft-grade-tab.active{background:var(--primary-strong);border-color:var(--primary);color:#fff}.draft-grade-tab-input{cursor:text;min-width:120px;width:150px}.draft-grade-tool-stack{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.small-action{font-size:12px;gap:6px;min-height:34px;padding:7px 10px}.grade-builder-actions .grade-count{font-size:11px;padding:6px 8px}.grade-builder-actions .grade-action-row>button,.grade-builder-actions .grade-action-row .secondary-action,.grade-builder-actions .grade-actions-block>.grade-row-between>.secondary-action{font-size:12px;min-height:36px;padding:8px 10px}.secondary-action.neutral-action{background:var(--surface);border-color:var(--outline-variant);color:var(--on-surface-variant)}.secondary-action.danger-soft{background:#ffb4ab14;border-color:#ffb4ab6b;color:var(--error)}.grade-actions-block .export-menu>.secondary-action{background:var(--surface);border-color:var(--outline-variant);color:var(--on-surface)}.export-menu{position:relative}.hidden-file-input{display:none}.export-menu-list{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 14px 34px #17201c29;display:grid;gap:4px;left:0;min-width:190px;padding:6px;position:absolute;top:calc(100% + 6px);z-index:20}.export-menu-list button{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--on-surface);cursor:pointer;display:flex;font:inherit;font-weight:800;gap:8px;justify-content:flex-start;min-height:36px;padding:8px 10px;text-align:left}.export-menu-list button:hover{background:var(--surface-highest)}@media(max-width:900px){.grade-builder-section{align-items:start;grid-template-columns:1fr}.grade-row-between{align-items:flex-start;display:grid}.draft-grade-tool-stack{justify-content:flex-start}}@media(max-width:700px){.schedule-export-panel{align-items:flex-start;display:grid}.schedule-export-actions{justify-content:flex-start}.my-schedule-header{align-items:start;display:grid}.my-schedule-actions{justify-content:flex-start}.my-schedule-actions .export-menu-list{left:0;right:auto}}.schedule-builder-panel{margin-bottom:16px;overflow-x:auto}.enrollment-schedule-panel{padding:0}.schedule-builder-grid{display:grid;gap:8px;grid-template-columns:86px repeat(5,minmax(148px,1fr));min-width:900px}.enrollment-schedule-grid{border-radius:8px;gap:0;grid-template-columns:110px repeat(5,minmax(160px,1fr));min-width:940px;overflow:hidden}.enrollment-schedule-grid .schedule-corner,.enrollment-schedule-grid .schedule-day-heading,.enrollment-schedule-grid .schedule-time-heading{background:var(--surface);border:0;border-bottom:1px solid var(--outline-variant);border-radius:0;border-right:1px solid var(--outline-variant);min-height:56px}.enrollment-schedule-grid .schedule-day-heading{display:grid;gap:3px;text-transform:none}.enrollment-schedule-grid .schedule-day-heading strong{color:var(--on-surface);font-size:12px;text-transform:capitalize}.enrollment-schedule-grid .schedule-time-heading{background:var(--surface-low);color:var(--on-surface-variant);font-size:11px}.enrollment-schedule-grid .schedule-slot{background:var(--surface-low);border:0;border-bottom:1px solid var(--outline-variant);border-radius:0;border-right:1px solid var(--outline-variant);min-height:126px;padding:7px}.enrollment-schedule-grid .schedule-slot.filled.mine,.enrollment-schedule-grid .schedule-slot.filled.mine:hover{background:var(--surface-low);border-color:var(--outline-variant)}.enrollment-schedule-grid .schedule-empty.muted{background:var(--surface-highest);height:7px;opacity:.48;width:7px}.schedule-row-fragment{display:contents}.schedule-corner,.schedule-day-heading,.schedule-time-heading{align-items:center;background:var(--surface-highest);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);display:flex;font-size:12px;font-weight:900;justify-content:center;min-height:42px;text-transform:uppercase}.schedule-time-heading{background:var(--surface-high)}.schedule-slot{align-items:center;background:var(--surface-low);border:1px dashed var(--outline);border-radius:8px;color:var(--primary);display:flex;justify-content:center;min-height:118px;padding:9px;text-align:left}.schedule-slot:hover{border-color:var(--primary)}.schedule-slot.selected{background:#4edea31a;border:2px solid var(--primary);color:var(--primary)}.schedule-slot.filled{align-items:stretch;background:#4edea31a;border:1px solid var(--primary);color:var(--on-surface);cursor:default;justify-content:stretch}.schedule-slot.mine{cursor:default}.schedule-slot.mine:hover{border-color:var(--outline)}.schedule-slot.filled.mine:hover{border-color:var(--primary)}.schedule-empty{align-items:center;background:var(--surface-highest);border-radius:999px;display:inline-flex;font-weight:900;height:34px;justify-content:center;width:34px}.schedule-slot.selected .schedule-empty{background:var(--primary-strong);color:#fff}.slot-selection-bar{align-items:center;background:#171f33f5;border:1px solid var(--outline);border-radius:8px;bottom:24px;box-shadow:0 18px 50px #0f172a2e;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto auto;left:284px;padding:12px;position:fixed;right:28px;z-index:25}.slot-selection-bar>div{display:grid;gap:4px;min-width:0}.slot-selection-bar strong{color:var(--on-surface)}.slot-selection-bar span{color:var(--on-surface-variant);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-empty.muted{background:var(--surface-highest);height:22px;width:22px}.schedule-entry{display:grid;gap:5px;min-width:0;position:relative;width:100%}.schedule-entry-stack{display:grid;gap:8px;width:100%}.my-schedule-entry{background:var(--surface-high);border:1px solid var(--outline-variant);border-left:3px solid var(--primary);border-radius:6px;color:inherit;min-height:108px;padding:9px;text-align:left}.my-schedule-entry-button{cursor:pointer}.my-schedule-entry-button:hover{background:var(--surface-highest);border-color:var(--primary)}.enrollment-schedule-grid .schedule-entry strong{font-size:12px;line-height:1.2;padding-right:0}.enrollment-schedule-grid .schedule-entry>small{font-size:11px}.my-schedule-entry-meta{align-items:center;display:flex;flex-wrap:wrap;gap:5px;justify-content:space-between;margin-top:auto}.my-schedule-entry-meta span,.my-schedule-entry-meta em{align-items:center;background:var(--surface-low);border-radius:4px;color:var(--on-surface-variant);display:inline-flex;font-size:10px;gap:3px;padding:4px 5px}.my-schedule-entry-meta svg{color:var(--primary)}.grade-builder-schedule-grid .schedule-slot.filled,.grade-builder-schedule-grid .schedule-slot.filled:hover{background:transparent;border:0;border-bottom:1px solid var(--outline-variant);border-right:1px solid var(--outline-variant);color:var(--on-surface)}.grade-builder-schedule-grid .schedule-slot.selected{background:#4edea312;border:0;border-bottom:1px solid var(--outline-variant);border-right:1px solid var(--outline-variant);box-shadow:inset 0 0 0 2px var(--primary)}.grade-builder-schedule-grid .schedule-slot:not(.filled):not(.selected):hover{background:var(--surface-high);border-color:var(--outline-variant)}.grade-builder-schedule-entry{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.grade-builder-schedule-entry:active{cursor:grabbing}.grade-builder-schedule-entry strong{padding-right:29px}.schedule-slot-select{align-items:center;align-self:stretch;background:transparent;border:0;color:inherit;display:flex;justify-content:center;margin:-9px;min-height:118px;width:calc(100% + 18px)}.grade-builder-schedule-grid .schedule-slot.drag-over{background:#4edea321;box-shadow:inset 0 0 0 2px var(--primary)}.grade-builder-schedule-entry.dragging{opacity:.25}.grade-entry-overlay{background:var(--surface-high);border:1px solid var(--primary);border-left:3px solid var(--primary);border-radius:6px;box-shadow:0 18px 45px #03081457;color:var(--on-surface);display:grid;gap:5px;max-width:280px;min-width:210px;padding:11px}.grade-entry-overlay>span{color:var(--primary);font-size:11px;font-weight:900}.grade-entry-overlay>small{color:var(--on-surface-variant)}.schedule-entry strong{font-size:13px;line-height:1.2;padding-right:55px}.schedule-entry small,.schedule-entry em{color:var(--on-surface-variant);font-size:12px;font-style:normal}.schedule-remove{align-items:center;background:#0f766e1a;border:0;border-radius:8px;color:var(--primary);display:inline-flex;height:24px;justify-content:center;position:absolute;right:0;top:0;width:24px}.schedule-remove:hover{background:var(--primary-strong);color:#fff;cursor:pointer}.import-period-mode{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:7px;display:grid;gap:4px;grid-template-columns:1fr 1fr;padding:4px}.import-period-mode button{background:transparent;border:0;border-radius:5px;color:var(--on-surface-variant);font-weight:750;min-height:38px}.import-period-mode button.active{background:var(--surface-highest);color:var(--primary)}.import-period-mode button:disabled{opacity:.45}.slot-summary{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:flex;gap:10px;justify-content:space-between;padding:10px}.slot-summary.stacked{align-items:stretch;display:grid;justify-content:stretch}.slot-summary span{color:var(--on-surface-variant);font-size:13px;font-weight:900;text-transform:capitalize}.slot-summary strong{background:#4edea31a;border-radius:999px;color:var(--primary);font-size:13px;padding:7px 10px}.selected-slot-list{display:flex;flex-wrap:wrap;gap:7px}.grouped-grade-list{display:grid;gap:10px}.grouped-grade-card{border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.grouped-grade-card h3{font-size:15px;margin:0 0 4px}.grouped-grade-card span,.grouped-grade-card p{color:var(--on-surface-variant);font-size:13px}.grouped-grade-card strong{background:var(--surface-highest);border-radius:999px;color:var(--primary);font-size:12px;padding:6px 9px}.grouped-grade-card p{grid-column:1 / -1;margin:0}.room-editor-panel{margin-top:16px}.room-editor-list{display:grid;gap:10px}.room-editor-card{align-items:end;border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(160px,240px) auto;padding:12px}.room-editor-card h3{font-size:15px;margin:0 0 5px}.room-editor-card span{color:var(--on-surface-variant);font-size:13px}.room-editor-card label{color:var(--on-surface-variant);display:grid;font-size:13px;font-weight:700;gap:6px}.course-heading,.course-footer,.agenda-item,.profile-row,.status-line{align-items:center;display:flex;gap:12px}.course-heading{justify-content:space-between}.course-score{align-items:flex-end;display:grid;gap:6px;justify-items:end}.course-heading h3{font-size:16px;margin:0 0 4px}.course-heading span,.course-footer,.agenda-body span,.profile-row span{color:var(--on-surface-variant);font-size:13px}.course-heading strong{background:#4edea31a;border-radius:8px;color:var(--primary);min-width:48px;padding:8px 10px;text-align:center}.outcome-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;justify-content:center;letter-spacing:0;line-height:1;padding:6px 8px;text-transform:uppercase}.outcome-badge.approved{background:#4edea324;color:var(--primary)}.outcome-badge.failed{background:#ffb4ab1f;color:var(--error)}.outcome-badge.pending{background:#fbbf241f;color:var(--warning)}.meta-grid{color:var(--on-surface-variant);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin:12px 0}.meta-grid span{background:var(--surface-highest);border-radius:8px;padding:6px 8px}.absence-bar{background:var(--surface-highest);border-radius:999px;height:8px;overflow:hidden}.absence-fill{background:var(--primary-strong);display:block;height:100%}.absence-fill.warning{background:var(--warning)}.absence-fill.critical{background:var(--error)}.course-footer{justify-content:space-between;margin-top:10px}.agenda-list{display:grid;gap:10px}.agenda-list.compact .icon-action{display:none}.agenda-item{border:1px solid var(--outline-variant);border-radius:8px;padding:10px}.date-pill{align-items:center;background:#4edea31a;border-radius:8px;color:var(--primary);display:grid;height:48px;justify-items:center;min-width:48px}.date-pill strong,.date-pill span{line-height:1}.agenda-body{display:grid;flex:1;min-width:0}.agenda-body strong,.agenda-body span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-action{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;color:var(--primary);display:inline-flex;height:40px;justify-content:center;min-width:40px}.icon-action.muted{color:var(--on-surface-variant)}.icon-action.danger{color:var(--error)}.activities-page-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.activity-progress-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.activity-progress-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:16px;padding:20px}.activity-progress-card header{align-items:center;color:var(--on-surface-variant);display:flex;font-size:13px;font-weight:800;gap:9px;text-transform:uppercase}.activity-progress-card.complementary header svg{color:var(--warning)}.activity-progress-card.extension header svg{color:var(--secondary)}.activity-progress-card>div:not(.activity-progress-track){align-items:baseline;display:flex;gap:8px}.activity-progress-card>div strong{font-size:32px}.activity-progress-card>div span{color:var(--on-surface-variant);font-size:13px}.activity-progress-track{background:var(--surface-lowest);border-radius:999px;height:8px;overflow:hidden}.activity-progress-track>span{display:block;height:100%}.activity-progress-card.complementary .activity-progress-track>span{background:var(--warning)}.activity-progress-card.extension .activity-progress-track>span{background:var(--secondary)}.activities-panel{display:grid;gap:16px}.activities-panel-header{align-items:center;display:flex;justify-content:space-between}.activities-panel-header h2{font-size:18px;margin:0 0 4px}.activities-panel-header span{color:var(--on-surface-variant);font-size:13px}.activities-list{display:grid;gap:9px}.activity-card{align-items:center;background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:14px;grid-template-columns:42px minmax(0,1fr) auto 40px;padding:14px}.activity-type-icon{align-items:center;background:#fbbf241a;border-radius:8px;color:var(--warning);display:flex;height:42px;justify-content:center;width:42px}.activity-type-icon.extensionista{background:#7bd0ff1a;color:var(--secondary)}.activity-card-copy{display:grid;gap:4px}.activity-card-copy>span{color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase}.activity-card-copy h3{font-size:15px;margin:0}.activity-card-copy p{color:var(--on-surface-variant);font-size:13px;line-height:1.45;margin:0}.activity-card-copy small{align-items:center;color:var(--on-surface-variant);display:flex;gap:6px}.activity-hours{color:var(--on-surface);font-size:20px}.activity-form textarea{min-height:96px}.course-detail-grid,.agenda-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(320px,400px)}.course-detail-grid.clean{align-items:start;grid-template-columns:minmax(0,1fr) minmax(290px,340px)}.course-detail-navigation{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.course-detail-navigation .text-action{margin:0}.course-detail-navigation .icon-action{height:36px;min-width:36px}.course-detail-header{margin-bottom:22px;max-width:900px}.course-detail-meta{align-items:center;color:var(--on-surface-variant);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-bottom:10px}.course-detail-meta>span{background:var(--surface-highest);border-radius:4px;font-weight:800;padding:4px 6px}.course-detail-meta>i{background:var(--on-surface-variant);border-radius:999px;height:4px;width:4px}.course-detail-meta>strong{font-weight:700}.course-detail-header h1{font-size:34px;line-height:1.12;margin:0;max-width:860px}.course-detail-header p{color:var(--on-surface-variant);font-size:12px;line-height:1.5;margin:9px 0 0}.detail-overview{grid-column:1 / -1;margin-bottom:8px}.course-detail-primary-column,.course-detail-secondary-column{display:grid;gap:16px;min-width:0}.detail-actions-panel{min-width:0}.overview-panel,.pinned-panel,.full-width{grid-column:1 / -1}.action-panel,.grade-plan-panel{align-self:start}.action-list{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.action-tile{align-content:center;align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface);display:grid;gap:8px;justify-items:center;min-height:82px;padding:10px;text-align:center}.action-tile.wide-action{grid-column:span 2}.action-tile.primary{background:var(--primary-strong);border-color:var(--primary);color:var(--primary-ink)}.action-tile.danger{background:#ffb4ab14;border-color:#ffb4ab6b;color:var(--error)}.action-tile.success{background:#4edea31a;border-color:var(--primary);color:var(--primary)}.action-tile svg{color:var(--primary)}.action-tile.primary svg{color:var(--primary-ink)}.action-tile.danger svg{color:var(--error)}.action-tile.success svg{color:var(--primary)}.action-tile span{font-size:12px;font-weight:800;line-height:1.25}.action-tile small{color:var(--on-surface-variant);font-size:12px;line-height:1.35}.action-tile.primary small{color:#003824c7}.action-tile.danger small{color:var(--error)}.action-tile.success small{color:var(--primary)}.action-tile:hover{border-color:var(--primary);box-shadow:0 14px 34px #1b2e2a14}.grade-plan-summary{display:grid;gap:8px}.grade-plan-summary span{color:var(--on-surface-variant);font-size:12px;font-weight:800;text-transform:uppercase}.grade-plan-summary code{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface);display:block;padding:10px;white-space:pre-wrap}.grade-calculator-action{justify-content:center;margin-top:12px;width:100%}.required-grade-modal{display:grid;gap:16px}.required-grade-expression{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:7px;padding:12px}.required-grade-expression span{color:var(--on-surface-variant);font-size:11px;font-weight:800;text-transform:uppercase}.required-grade-expression code{color:var(--primary);overflow-wrap:anywhere}.required-grade-values{display:grid;gap:8px}.required-grade-values label{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 140px;padding:10px 12px}.required-grade-values label>span{display:grid;font-size:13px;font-weight:800;gap:2px}.required-grade-values small{color:var(--on-surface-variant);font-size:11px;font-weight:500}.required-grade-result{background:#4edea314;border:1px solid rgba(78,222,163,.34);border-radius:8px;display:grid;gap:5px;padding:16px;text-align:center}.required-grade-result.warning{background:#ffc43d14;border-color:#ffc43d61}.required-grade-result.incomplete{background:var(--surface-high);border-color:var(--outline-variant)}.required-grade-result span,.required-grade-result small{color:var(--on-surface-variant)}.required-grade-result strong{color:var(--primary);font-size:36px}.required-grade-result.warning strong{color:var(--warning)}.notebook-form{display:grid;gap:10px}.notebook-form textarea{min-height:min(58vh,520px)}.detail-metrics{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}.detail-metric-card{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:12px;min-height:102px;padding:14px 15px}.detail-metric-card>header{align-items:center;display:flex;justify-content:space-between}.detail-metric-card>header svg{color:var(--primary)}.detail-metric-card:nth-child(2)>header svg,.detail-metric-card:nth-child(4)>header svg{color:var(--error)}.detail-metrics header span{color:var(--on-surface-variant);font-size:11px;font-weight:900;text-transform:uppercase}.detail-metric-card>strong{align-items:baseline;display:flex;font-size:28px;gap:4px}.detail-metric-card>strong>small{color:var(--on-surface-variant);font-size:12px;font-weight:700}.detail-metric-card .absence-bar{height:4px}.detail-metrics .outcome-badge.metric{align-self:center;border-radius:999px;display:inline-flex;font-size:11px;justify-self:start;min-height:26px;padding:7px 10px}.absence-history-panel .absence-item{grid-template-columns:minmax(0,1fr) auto}.absence-history-panel .absence-item>span{font-size:12px;grid-column:1}.absence-history-panel .absence-item>button{grid-column:2;grid-row:1 / span 2}.absence-history-panel .empty-state{min-height:150px;text-align:center}.absence-list{display:grid;gap:8px}.absence-item,.assessment-row{align-items:center;border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto auto;padding:12px}.assessment-list{display:grid;gap:8px}.assessment-row>div{display:grid;gap:4px}.assessment-row>div strong{color:var(--primary);text-transform:uppercase}.absence-item span,.assessment-row span{color:var(--on-surface-variant)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{color:var(--on-surface-variant);font-size:12px;font-weight:800;gap:6px;margin-bottom:8px;text-align:center;text-transform:uppercase}.calendar-grid{border:1px solid var(--outline-variant);border-radius:8px;overflow:hidden}.calendar-day{background:var(--surface);border-bottom:1px solid var(--outline-variant);border-right:1px solid var(--outline-variant);display:grid;gap:5px;min-height:112px;padding:9px}.calendar-day:nth-child(7n){border-right:0}.calendar-day.muted{background:var(--surface-high);color:var(--on-surface-variant)}.calendar-chip{background:#4edea31a;border-radius:6px;color:var(--primary);font-size:12px;font-weight:800;overflow:hidden;padding:5px 6px;text-overflow:ellipsis;white-space:nowrap}.catalog-panel.standalone{margin-top:0}.catalog-panel.standalone>.panel-title{border-bottom:1px solid var(--outline-variant);margin-bottom:16px;padding-bottom:16px}.catalog-search{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;margin-bottom:16px;padding:10px 12px}.catalog-search svg{color:var(--primary)}.catalog-search input{background:transparent;border:0;min-height:34px;padding:0}.catalog-search span{color:var(--on-surface-variant);font-size:13px;font-weight:800}.catalog-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-grid>.empty-state{grid-column:1 / -1}.catalog-card{border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:16px;min-height:105px;padding:14px 15px}.catalog-card-button{background:var(--surface-low);cursor:pointer;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease;width:100%}.catalog-card-button:hover{border-color:var(--primary);box-shadow:0 12px 30px #0308143d;transform:translateY(-1px)}.catalog-heading{align-items:start;display:flex;gap:12px;justify-content:space-between}.catalog-heading h3{font-size:13px;line-height:1.25;margin:0}.catalog-sigla{color:var(--on-surface-variant);display:block;font-size:11px;font-weight:800;margin-top:5px;text-transform:uppercase}.catalog-heading strong{background:#4edea31a;border-radius:8px;color:var(--primary);flex:0 0 auto;font-size:11px;padding:6px 7px}.catalog-card-summary{color:var(--on-surface-variant);display:flex;flex-wrap:wrap;font-size:13px;gap:8px}.catalog-card-summary span{background:var(--surface-high);border-radius:4px;color:var(--on-surface-variant);font-weight:800;font-size:10px;padding:5px 7px;text-transform:uppercase}.catalog-detail-modal{display:grid;gap:16px}.catalog-detail-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.catalog-detail-header p{color:var(--on-surface-variant);font-size:14px;margin:6px 0 0}.catalog-detail-header strong{background:#4edea31a;border-radius:8px;color:var(--primary);flex:0 0 auto;font-size:13px;padding:8px 10px}.catalog-detail-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-detail-item{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:4px;min-width:0;padding:10px 12px}.catalog-detail-item span,.catalog-section-label{color:var(--on-surface-variant);font-size:12px;font-weight:800;text-transform:uppercase}.catalog-detail-item strong{color:var(--on-surface);font-size:15px;line-height:1.2}.catalog-prereqs{display:grid;gap:8px}.catalog-prereq-list{display:flex;flex-wrap:wrap;gap:7px}.catalog-prereq,.catalog-empty-tag{background:var(--surface-highest);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);font-size:12px;font-weight:800;line-height:1.25;padding:6px 8px}.catalog-empty-tag{justify-self:start}.course-picker{display:grid;gap:8px}.course-picker-label{color:var(--on-surface-variant);font-size:13px;font-weight:700}.course-picker-control{position:relative}.course-picker-search{align-items:center;background:var(--surface-low);border:1px solid var(--outline);border-radius:8px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr);min-height:42px;padding:0 11px}.course-picker-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1f}.course-picker-search svg{color:var(--primary)}.course-picker-search input{background:transparent;border:0;min-height:40px;padding:0}.course-picker-search input:focus{outline:0}.course-picker-selected{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:flex;gap:8px;min-width:0;padding:8px 10px}.course-picker-code{color:var(--primary);flex:0 0 auto;font-size:12px;font-weight:900;text-transform:uppercase}.course-picker-selected strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-picker-hint,.course-picker-results{background:var(--surface);border:1px solid var(--outline);border-radius:8px;box-shadow:0 16px 42px #0f172a29;left:0;margin-top:6px;position:absolute;right:0;top:100%;z-index:50}.course-picker-hint{color:var(--on-surface-variant);font-size:13px;padding:12px}.course-picker-results{display:grid;max-height:320px;overflow:auto;padding:6px}.course-picker-option{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--on-surface);display:grid;min-height:54px;padding:9px 10px;text-align:left}.course-picker-option:hover,.course-picker-option.active{background:#4edea314}.course-picker-option span{display:grid;gap:3px;min-width:0}.course-picker-option strong,.course-picker-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-picker-option small{color:var(--primary);font-size:12px;font-weight:800;text-transform:uppercase}.course-picker-empty{color:var(--on-surface-variant);padding:12px;text-align:center}.course-sigla{background:#4edea31a;border:1px solid var(--primary);border-radius:999px;color:var(--primary);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:900;line-height:1;padding:5px 7px;text-transform:uppercase}.grouped-grade-card .course-sigla,.schedule-entry .course-sigla{color:var(--primary);font-size:12px}.grouped-grade-card .course-sigla{margin-right:7px;vertical-align:middle}.modal-backdrop{align-items:center;background:#0f172a7a;display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:40}.modal-panel{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 28px 90px #0f172a47;max-height:min(720px,calc(100vh - 36px));max-width:620px;overflow:auto;padding:18px;width:100%}.modal-panel.large{max-width:min(920px,calc(100vw - 36px))}.modal-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.modal-header h3{margin:0}.onboarding-layer{inset:0;pointer-events:none;position:fixed;z-index:100}.onboarding-backdrop{background:#030814c2;inset:0;pointer-events:auto;position:absolute}.onboarding-highlight{border:2px solid var(--primary);border-radius:10px;box-shadow:0 0 0 9999px #030814c2,0 0 0 5px color-mix(in srgb,var(--primary) 22%,transparent);pointer-events:none;position:fixed;transition:inset .18s ease,width .18s ease,height .18s ease}.onboarding-popover{background:var(--surface-high);border:1px solid var(--outline);border-radius:8px;box-shadow:0 24px 70px #00000061;display:grid;gap:10px;max-width:calc(100vw - 32px);padding:18px;pointer-events:auto;position:fixed;width:360px}.onboarding-popover.centered{left:50%;top:50%;transform:translate(-50%,-50%)}.onboarding-popover>header,.onboarding-popover>footer{align-items:center;display:flex;gap:10px;justify-content:space-between}.onboarding-popover>header button{align-items:center;background:transparent;border:0;color:var(--on-surface-variant);display:inline-flex;height:34px;justify-content:center;width:34px}.onboarding-icon{align-items:center;background:color-mix(in srgb,var(--primary) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 35%,var(--outline));border-radius:7px;color:var(--primary);display:inline-flex;height:40px;justify-content:center;width:40px}.onboarding-eyebrow{color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase}.onboarding-popover h2{font-size:20px;margin:0}.onboarding-popover p{color:var(--on-surface-variant);line-height:1.55;margin:0}.onboarding-progress{display:grid;gap:5px;grid-template-columns:repeat(7,minmax(0,1fr));margin:5px 0 3px}.onboarding-progress span{background:var(--surface-highest);border-radius:2px;height:4px}.onboarding-progress span.active{background:var(--primary)}.onboarding-popover>footer .text-action{margin:0}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr))}.shared-nickname-form{display:grid;gap:12px;grid-template-columns:1fr}.shared-nickname-form label{color:var(--on-surface-variant);display:grid;font-size:13px;font-weight:700;gap:6px}.shared-nickname-form span{color:var(--on-surface-variant);font-size:13px}.modal-note{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);font-size:13px;line-height:1.45;padding:10px}.edit-notes-list{display:grid;gap:10px}.edit-note-row{align-items:center;border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 110px auto;padding:12px}.edit-note-row>div{display:grid;gap:4px}.edit-note-row strong{color:var(--primary);text-transform:uppercase}.edit-note-row span{color:var(--on-surface-variant);font-size:13px}.empty-state{align-items:center;background:var(--surface-high);border:1px dashed var(--outline);border-radius:8px;color:var(--on-surface-variant);display:flex;justify-content:center;min-height:94px;padding:18px}.profile-panel{max-width:720px}.profile-row img,.avatar-fallback{border-radius:8px;height:54px;width:54px}.avatar-fallback{background:var(--primary-strong)}.profile-row>div:last-child{display:grid;gap:4px}.settings-list{display:grid;gap:10px;margin-top:18px}.install-app-content{align-items:center;display:flex;gap:20px;justify-content:space-between}.install-app-copy{display:grid;gap:5px}.install-app-copy span,.install-app-hint{color:var(--on-surface-variant)}.install-app-hint{align-items:center;display:flex;font-size:.9rem;gap:9px;max-width:430px}.install-app-hint svg{flex:0 0 auto}.profile-signout{justify-self:start}.share-form{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.share-permissions{border:0;display:grid;gap:8px;grid-column:1 / -1;margin:0;padding:0}.share-permissions legend{color:var(--on-surface-variant);font-size:12px;font-weight:800;margin-bottom:8px}.share-permissions label{align-items:start;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;cursor:pointer;display:grid;gap:11px;grid-template-columns:auto minmax(0,1fr);padding:12px}.share-permissions input{accent-color:var(--primary);height:17px;margin:2px 0 0;width:17px}.share-permissions label>span{display:grid;gap:3px}.share-permissions small{color:var(--on-surface-variant);font-size:12px;font-weight:500}.share-form label{color:var(--on-surface-variant);display:grid;font-size:13px;font-weight:700;gap:6px}.study-summary-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.study-summary-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:5px;grid-template-columns:auto minmax(0,1fr);padding:16px}.study-summary-card svg{color:var(--primary);grid-row:1 / span 3;margin-right:5px}.study-summary-card span,.study-summary-card small{color:var(--on-surface-variant)}.study-summary-card span{font-size:12px;font-weight:800}.study-summary-card strong{font-size:24px}.study-summary-card small{font-size:11px}.study-planner-layout{display:grid;gap:18px;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr)}.study-section-heading{align-items:start;display:flex;gap:10px;justify-content:space-between;margin-bottom:16px}.study-section-heading>div{align-items:center;display:flex;gap:9px}.study-section-heading h3{font-size:17px;margin:0}.study-section-heading svg{color:var(--primary)}.study-section-heading>span{color:var(--on-surface-variant);font-size:12px;max-width:250px;text-align:right}.study-suggestion-list,.study-session-list{display:grid;gap:9px}.study-suggestion-list article{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.study-suggestion-list article>div,.study-session-card>div{display:grid;gap:4px;min-width:0}.study-suggestion-list strong,.study-suggestion-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.study-suggestion-list span,.study-session-card span,.study-session-card small{color:var(--on-surface-variant);font-size:12px}.study-session-card{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:12px}.study-session-card.overdue{border-color:color-mix(in srgb,var(--error) 52%,var(--outline-variant))}.study-session-card.completed{opacity:.62}.study-session-card.completed>div:nth-child(2) strong{text-decoration:line-through}.study-check{align-items:center;background:transparent;border:1px solid var(--outline);border-radius:6px;color:var(--surface-lowest);display:inline-flex;height:25px;justify-content:center;padding:0;width:25px}.study-session-card.completed .study-check{background:var(--primary);border-color:var(--primary)}.study-session-time{text-align:right}.study-session-time strong{font-size:12px}.admin-page-header{align-items:start;display:flex;gap:20px;justify-content:space-between}.admin-page-header>span{align-items:center;background:#4edea314;border:1px solid rgba(78,222,163,.28);border-radius:8px;color:var(--primary);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;gap:7px;padding:9px 11px}.admin-dataset-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.admin-dataset-grid article{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:7px;padding:15px}.admin-dataset-grid span{color:var(--on-surface-variant);font-size:12px;font-weight:700}.admin-dataset-grid strong{color:var(--primary);font-size:27px}.admin-catalog-panel{min-width:0}.admin-catalog-toolbar{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;margin-bottom:14px;padding:4px 10px}.admin-catalog-toolbar>svg{color:var(--on-surface-variant)}.admin-catalog-toolbar input{background:transparent;border:0}.admin-catalog-toolbar>span{color:var(--on-surface-variant);font-size:11px;font-weight:800}.admin-course-list{display:grid;gap:7px;max-height:min(64vh,720px);overflow-y:auto;padding-right:3px}.admin-course-list>article{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:14px;grid-template-columns:minmax(260px,1.3fr) minmax(360px,1fr) 100px auto;padding:11px 12px}.admin-course-identity{align-items:center;display:grid;gap:10px;grid-template-columns:72px minmax(0,1fr);min-width:0}.admin-course-identity>span{color:var(--primary);font-size:11px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-course-identity>div{display:grid;gap:3px;min-width:0}.admin-course-identity strong,.admin-course-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-course-identity small,.admin-course-hours span,.admin-course-requisites span{color:var(--on-surface-variant);font-size:11px}.admin-course-hours{display:flex;flex-wrap:wrap;gap:5px 12px}.admin-course-requisites{display:grid;gap:2px;text-align:center}.admin-course-actions{display:flex;gap:5px}.admin-prerequisite-editor{display:grid;gap:9px}.admin-prerequisite-editor>span{color:var(--on-surface-variant);font-size:13px;font-weight:700}.admin-selected-prerequisites{display:flex;flex-wrap:wrap;gap:6px}.admin-selected-prerequisites>button{align-items:center;background:#4edea314;border:1px solid rgba(78,222,163,.28);border-radius:6px;color:var(--primary);display:inline-flex;font-size:11px;font-weight:800;gap:6px;padding:6px 8px}.admin-selected-prerequisites>small{color:var(--on-surface-variant)}.admin-prerequisite-search{align-items:center;display:grid;grid-template-columns:auto minmax(0,1fr);position:relative}.admin-prerequisite-search svg{color:var(--on-surface-variant);left:12px;pointer-events:none;position:absolute}.admin-prerequisite-search input{padding-left:38px}.admin-prerequisite-results{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:3px;max-height:240px;overflow-y:auto;padding:5px}.admin-prerequisite-results>button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--on-surface);display:flex;gap:10px;justify-content:space-between;padding:8px 9px;text-align:left}.admin-prerequisite-results>button:hover,.admin-prerequisite-results>button.selected{background:#4edea314}.admin-prerequisite-results>button>span{display:grid;gap:2px}.admin-prerequisite-results small{color:var(--on-surface-variant);font-size:11px}@media(max-width:700px){.install-app-content{align-items:stretch;flex-direction:column}.install-app-content .primary-action{justify-content:center;width:100%}.study-summary-grid,.study-planner-layout{grid-template-columns:1fr}.study-section-heading{display:grid}.study-section-heading>span{max-width:none;text-align:left}.study-session-card{align-items:start;grid-template-columns:auto minmax(0,1fr) auto}.study-session-time{grid-column:2;text-align:left}.admin-page-header{align-items:stretch;flex-direction:column}.admin-page-header>span{align-self:flex-start}.admin-dataset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-catalog-panel .panel-title{align-items:stretch;flex-direction:column}.admin-catalog-panel .panel-title .primary-action{justify-content:center}.admin-course-list>article{align-items:start;grid-template-columns:minmax(0,1fr) auto}.admin-course-identity,.admin-course-hours{grid-column:1}.admin-course-requisites{grid-column:1;text-align:left}.admin-course-actions{grid-column:2;grid-row:1}.admin-course-form{grid-template-columns:1fr}.admin-course-form .full{grid-column:1}}.shared-schedules-panel{margin-top:16px}.shared-schedule-list{display:grid;gap:16px}.shared-schedule-card{display:grid;gap:12px}.shared-schedule-card .schedule-builder-panel{box-shadow:none;margin-bottom:0}.shared-schedule-heading{display:grid;gap:3px}.shared-schedule-heading span,.muted-copy{color:var(--on-surface-variant);font-size:13px}.status-line{border:1px solid var(--outline-variant);border-radius:8px;padding:12px}.status-line svg{color:var(--primary)}.status-line span{flex:1}.loader{animation:spin .8s linear infinite;border:4px solid var(--outline-variant);border-radius:50%;border-top-color:var(--primary);height:42px;width:42px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1020px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:0;border-right:1px solid rgba(255,255,255,.07);display:flex;gap:24px;height:100dvh;left:0;max-width:86vw;overflow-y:auto;padding:20px 16px 16px;position:fixed;right:auto;top:0;transform:translate(-102%);transition:transform .18s ease;width:304px;z-index:70}.sidebar.open{transform:translate(0)}.sidebar-backdrop{background:#020610ad;border:0;display:block;inset:0;opacity:0;padding:0;pointer-events:none;position:fixed;transition:opacity .18s ease;visibility:hidden;z-index:60}.sidebar-backdrop.visible{opacity:1;pointer-events:auto;visibility:visible}.brand-row{border-bottom:1px solid rgba(255,255,255,.05);gap:12px;margin:-4px -2px 0;padding:0 6px 18px}.brand-mark.small{height:34px;width:34px}.brand-copy span{display:block}.sidebar-close{align-items:center;background:transparent;border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);display:inline-flex;height:36px;justify-content:center;margin-left:auto;padding:0;width:36px}.nav-list{display:grid;gap:0;overflow:visible;padding:0}.nav-section{display:grid}.nav-section>span{display:block}.nav-section>div{display:grid}.nav-button{font-size:inherit;gap:12px;min-height:46px;padding:10px 13px}.nav-button.active{box-shadow:inset -3px 0 0 var(--primary)}.sidebar-profile{border-top:1px solid rgba(255,255,255,.06);margin-top:auto;padding-top:14px}.profile-button{display:grid;padding:8px}.profile-button>img,.profile-button>svg{height:36px;width:36px}.profile-button>span{display:grid}.workspace{padding:16px 14px 36px}.topbar{grid-template-columns:auto minmax(0,1fr) auto}.topbar .mobile-menu-button{display:inline-flex}.topbar-profile-copy{display:none}.slot-selection-bar{bottom:14px;grid-template-columns:1fr;left:14px;right:14px}.content-grid,.dashboard-summary-layout,.dashboard-summary-layout.compact{grid-template-columns:1fr}.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-progress-card{grid-template-columns:minmax(0,1fr) minmax(300px,.46fr)}.dashboard-detail-layout{grid-template-columns:1fr}.dashboard-secondary-column{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-quick-actions{grid-column:1 / -1}.shared-overview-card{align-items:stretch;grid-template-columns:1fr}.my-courses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shared-overview-meta{text-align:left}.shared-overview-actions,.shared-detail-actions{justify-content:flex-start}.cr-card,.panel.wide{grid-column:auto}.course-detail-grid,.agenda-layout{grid-template-columns:1fr}.course-detail-grid.clean{grid-template-columns:minmax(0,1fr) minmax(260px,300px)}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-detail-grid{grid-template-columns:1fr}.calendar-day{min-height:88px}.upcoming-panel{order:-1}}@media(max-width:640px){.topbar{align-items:center;gap:7px;grid-template-columns:auto minmax(0,1fr) auto;margin-bottom:22px;min-height:104px;padding:8px}.mobile-topbar-brand{color:var(--primary);display:block;font-size:14px;letter-spacing:0}.topbar-search{grid-column:1 / -1;grid-row:2}.topbar-actions{grid-column:3;grid-row:1;gap:0}.topbar-icon-button{height:34px;width:34px}.topbar-profile{margin-left:2px;padding-left:7px}.topbar-profile>img,.topbar-profile>svg{height:34px;width:34px}.topbar-search input{min-height:38px}.notification-popover{position:fixed;right:14px;top:184px}.dashboard-heading{flex-direction:column;gap:0}.current-period-badge{margin:-10px 0 18px}.academic-dashboard{gap:22px}.activities-page-header{align-items:stretch;flex-direction:column}.activities-page-header .primary-action{align-self:flex-start}.activity-progress-grid{grid-template-columns:1fr}.activity-card{align-items:start;grid-template-columns:42px minmax(0,1fr) auto}.activity-card .icon-action{grid-column:3;grid-row:1}.activity-hours{grid-column:2}.dashboard-progress-card{grid-template-columns:1fr}.dashboard-progress-main{padding:22px 18px}.dashboard-progress-main h1{margin-bottom:18px}.dashboard-score-grid{border-left:0;border-top:1px solid var(--outline-variant);padding:14px 10px}.dashboard-score{padding:10px 6px}.dashboard-score strong{font-size:32px}.dashboard-summary-layout.compact,.dashboard-secondary-column{grid-template-columns:1fr}.dashboard-analytics-header{align-items:stretch;display:grid;gap:0;padding:16px 14px 0}.dashboard-chart-tabs{margin-inline:-4px}.dashboard-chart-tabs button{flex:0 0 auto;min-height:44px;padding-inline:10px}.dashboard-chart-panel{min-height:360px;padding:16px 14px}.dashboard-chart-copy{display:grid;gap:10px}.dashboard-chart-legend{justify-content:flex-start}.dashboard-cr-chart{min-width:620px}.dashboard-bar-row{gap:9px;grid-template-columns:62px minmax(130px,1fr) 58px}.dashboard-pie-layout{gap:18px;grid-template-columns:1fr}.dashboard-pie-chart{max-width:280px}.dashboard-course-row{grid-template-columns:8px minmax(0,1fr) auto}.dashboard-course-row>svg{display:none}.dashboard-course-copy span{white-space:normal}.my-courses-grid{grid-template-columns:1fr}.active-course-card{min-height:0}.form-grid{grid-template-columns:1fr}.detail-metrics,.action-list{grid-template-columns:repeat(2,minmax(0,1fr))}.course-detail-grid.clean,.catalog-grid{grid-template-columns:1fr}.course-detail-header h1{font-size:28px}.schedule-row{grid-template-columns:1fr 1fr 40px}.calendar-weekdays{font-size:12px}.calendar-day{min-height:74px;padding:6px}.calendar-chip{display:none}.modal-form,.edit-note-row,.room-editor-card,.share-form{grid-template-columns:1fr}.login-panel{padding:24px}}.periods-page-header,.cr-simulator-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.period-timeline{display:grid;gap:16px;position:relative}.period-timeline:before{background:var(--outline-variant);bottom:28px;content:"";left:25px;position:absolute;top:28px;width:1px}.period-section{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;box-shadow:0 12px 38px #03081429;display:grid;gap:16px;padding:18px;position:relative}.period-section.unassigned{border-style:dashed}.period-section.other{border-color:color-mix(in srgb,var(--secondary) 28%,var(--outline-variant))}.period-section.is-over{background:#4edea30f;border-color:var(--primary);box-shadow:0 0 0 2px #4edea32e}.period-section-header{align-items:center;display:grid;gap:14px;grid-template-columns:52px minmax(210px,1fr) auto auto}.period-marker{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:8px;color:var(--on-surface-variant);display:flex;height:52px;justify-content:center;position:relative;width:52px;z-index:1}.period-marker.current{background:#4edea31a;border-color:#4edea352;color:var(--primary)}.period-marker.upcoming{color:var(--secondary)}.period-marker.completed{color:var(--on-surface-variant)}.period-marker.other{background:color-mix(in srgb,var(--secondary) 10%,transparent);border-color:color-mix(in srgb,var(--secondary) 28%,var(--outline-variant));color:var(--secondary)}.period-heading-copy{display:grid;gap:3px}.period-heading-copy>span{color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase}.period-heading-copy h2{font-size:19px;margin:0}.period-heading-copy p{color:var(--on-surface-variant);font-size:13px;margin:0}.period-summary{display:flex;gap:8px}.period-summary>span{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:7px;color:var(--on-surface-variant);display:grid;font-size:11px;gap:2px;min-width:78px;padding:8px 10px}.period-summary strong{color:var(--on-surface);font-size:15px}.period-header-actions{display:flex;gap:6px}.period-course-list{border-top:1px solid var(--outline-variant);display:grid;gap:6px;padding:12px 0 0 66px}.period-course-row{align-items:center;background:var(--surface-low);border:1px solid transparent;border-radius:8px;display:grid;gap:14px;grid-template-columns:34px minmax(0,1fr);padding:8px 10px}.period-course-row:hover{border-color:var(--outline-variant)}.period-course-row.dragging{opacity:.28}.period-course-row.static{grid-template-columns:minmax(0,1fr)}.period-drag-handle{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--on-surface-variant);cursor:grab;display:flex;height:34px;justify-content:center;padding:0;touch-action:none;width:34px}.period-drag-handle:hover{background:var(--surface-high);color:var(--primary)}.period-drag-handle:active{cursor:grabbing}.period-course-main{align-items:center;background:transparent;border:0;color:var(--on-surface);display:grid;gap:10px;grid-template-columns:42px minmax(0,1fr);min-width:0;padding:0;text-align:left}.period-course-main>span{background:#4edea31a;border-radius:6px;color:var(--primary);font-size:11px;font-weight:900;overflow:hidden;padding:8px 5px;text-align:center;text-overflow:ellipsis}.period-course-main>div{display:grid;gap:3px;min-width:0}.period-course-main strong,.period-course-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-course-main small,.period-course-row label{color:var(--on-surface-variant);font-size:12px}.period-course-row label{display:grid;gap:4px}.period-course-row select{min-height:36px;padding:7px 9px}.period-drop-hint{border-top:1px solid var(--outline-variant);padding:12px 0 0 66px}.period-course-overlay{align-items:center;background:var(--surface-high);border:1px solid var(--primary);border-radius:8px;box-shadow:0 18px 45px #03081457;color:var(--on-surface);display:grid;gap:10px;grid-template-columns:46px minmax(180px,1fr);max-width:420px;padding:11px}.period-course-overlay span{background:#4edea31a;border-radius:6px;color:var(--primary);font-size:11px;font-weight:900;padding:8px 5px;text-align:center}.cr-simulator-header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.my-schedule-period-control{align-items:center;color:var(--on-surface-variant);display:flex;font-size:13px;gap:8px;margin-top:8px}.my-schedule-period-control select{min-height:34px;padding:6px 30px 6px 9px;width:auto}.cr-simulator-scoreboard{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.cr-simulator-scoreboard>div{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:5px;min-height:142px;padding:20px}.cr-simulator-scoreboard>div.simulated{background:linear-gradient(135deg,rgba(78,222,163,.1),var(--surface) 60%);border-color:#4edea357}.cr-simulator-scoreboard>div.delta{align-content:center;grid-template-columns:auto 1fr}.cr-simulator-scoreboard>div.delta>span,.cr-simulator-scoreboard>div.delta>strong,.cr-simulator-scoreboard>div.delta>small{grid-column:2}.cr-simulator-scoreboard>div.delta>svg{grid-row:1 / span 3}.cr-simulator-scoreboard>div.delta.positive>svg,.cr-simulator-scoreboard>div.delta.positive>strong{color:var(--primary)}.cr-simulator-scoreboard>div.delta.negative>svg,.cr-simulator-scoreboard>div.delta.negative>strong{color:var(--error)}.cr-simulator-scoreboard span,.cr-simulator-scoreboard small{color:var(--on-surface-variant)}.cr-simulator-scoreboard>div>span{font-size:12px;font-weight:800;text-transform:uppercase}.cr-simulator-scoreboard>div>strong{color:var(--primary);font-size:36px}.cr-simulator-panel{display:grid;gap:14px}.cr-simulator-panel-header{align-items:center;display:flex;justify-content:space-between}.cr-simulator-panel-header>div{align-items:center;display:flex;gap:10px}.cr-simulator-panel-header svg{color:var(--primary)}.cr-simulator-panel-header h2{font-size:18px;margin:0 0 3px}.cr-simulator-panel-header span{color:var(--on-surface-variant);font-size:12px}.cr-simulation-table{display:grid}.cr-simulation-table-head,.cr-simulation-row{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(240px,1fr) 80px 100px 130px 40px}.cr-simulation-table-head{color:var(--on-surface-variant);font-size:11px;font-weight:800;padding:6px 12px 9px;text-transform:uppercase}.cr-simulation-row{border-top:1px solid var(--outline-variant);min-height:68px;padding:9px 12px}.cr-simulation-row.overridden{background:#4edea309}.cr-simulation-row>div:first-child{display:grid;gap:3px}.cr-simulation-row>div:first-child span{color:var(--primary);font-size:10px;font-weight:800;text-transform:uppercase}.cr-simulation-row>span{color:var(--on-surface-variant)}.cr-simulation-row input{min-height:38px}.prerequisite-toolbar{align-items:end;border-bottom:1px solid var(--outline-variant);display:grid;gap:18px;grid-template-columns:minmax(280px,1fr) auto;padding:0 0 18px}.prerequisite-picker{max-width:580px}.prerequisite-stats{display:flex;gap:8px}.prerequisite-stats>div{align-items:center;background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:7px;display:grid;gap:3px 7px;grid-template-columns:auto auto;padding:9px 11px}.prerequisite-stats svg{color:var(--primary);grid-row:1 / span 2}.prerequisite-stats span{color:var(--on-surface-variant);font-size:10px;font-weight:800;text-transform:uppercase}.prerequisite-stats strong{font-size:16px}.prerequisite-graph-shell{background:var(--surface-lowest);margin-inline:calc(clamp(18px,3vw,48px)*-1);min-height:max(760px,calc(100vh - 250px));overflow:hidden;position:relative}.prerequisite-flow{height:max(760px,calc(100vh - 250px));width:100%}.prerequisite-node-details{align-items:center;border-bottom:1px solid var(--outline-variant);display:grid;gap:24px;grid-template-columns:minmax(260px,1fr) auto;padding:16px 0}.prerequisite-detail-title{align-items:center;display:grid;gap:12px;grid-template-columns:58px minmax(0,1fr)}.prerequisite-detail-title>span{background:#4edea31a;border:1px solid rgba(78,222,163,.24);border-radius:7px;color:var(--primary);font-size:12px;font-weight:900;overflow:hidden;padding:10px 6px;text-align:center;text-overflow:ellipsis}.prerequisite-detail-title h2{font-size:17px;margin:0 0 4px}.prerequisite-detail-title p{color:var(--on-surface-variant);font-size:12px;margin:0}.prerequisite-detail-metrics{display:flex;gap:8px}.prerequisite-detail-metrics>span{align-items:center;color:var(--on-surface-variant);display:grid;font-size:10px;gap:2px 6px;grid-template-columns:auto auto;min-width:88px}.prerequisite-detail-metrics svg{color:var(--primary);grid-row:1 / span 2}.prerequisite-detail-metrics strong{color:var(--on-surface);font-size:14px}.prerequisite-legend{background:#131b2eeb;border:1px solid var(--outline-variant);border-radius:7px;display:flex;flex-wrap:wrap;gap:12px;left:14px;padding:8px 10px;position:absolute;top:14px;z-index:5}.prerequisite-legend span{align-items:center;color:var(--on-surface-variant);display:flex;font-size:11px;gap:5px}.prerequisite-legend i{background:var(--outline);border-radius:999px;height:7px;width:7px}.prerequisite-legend i.completed{background:var(--primary)}.prerequisite-legend i.active{background:var(--secondary)}.prerequisite-legend i.available{background:var(--warning)}.prerequisite-node{background:var(--surface);border:1px solid var(--outline);border-left:4px solid var(--outline);border-radius:8px;box-shadow:0 10px 26px #03081447;display:grid;gap:8px;height:118px;padding:14px 16px;width:280px}.prerequisite-node.completed{border-left-color:var(--primary)}.prerequisite-node.focused{border-color:var(--primary);box-shadow:0 0 0 3px #4edea324,0 16px 34px #03081457}.prerequisite-node.active{border-left-color:var(--secondary)}.prerequisite-node.available{border-left-color:var(--warning)}.prerequisite-node-heading{align-items:center;color:var(--on-surface-variant);display:flex;font-size:10px;font-weight:900;justify-content:space-between;text-transform:uppercase}.prerequisite-node.completed .prerequisite-node-heading{color:var(--primary)}.prerequisite-node.active .prerequisite-node-heading{color:var(--secondary)}.prerequisite-node.available .prerequisite-node-heading{color:var(--warning)}.prerequisite-node>strong{display:-webkit-box;font-size:14px;line-height:1.3;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.prerequisite-node>small{color:var(--on-surface-variant);font-size:11px}.prerequisite-node .react-flow__handle{background:var(--outline);border:2px solid var(--surface-lowest);height:9px;width:9px}.react-flow__controls{border:1px solid var(--outline-variant);box-shadow:none}.react-flow__controls-button{background:var(--surface)!important;border-bottom-color:var(--outline-variant)!important;color:var(--on-surface);fill:currentColor}.react-flow__minimap{background:var(--surface-low)!important;border:1px solid var(--outline-variant)}.matrix-course-header{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:16px;margin-top:20px;padding:20px}.matrix-course-header-top{align-items:end;display:grid;gap:24px;grid-template-columns:minmax(0,1fr) minmax(280px,420px)}.matrix-course-title{align-items:center;display:flex;gap:13px;min-width:0}.matrix-course-icon{align-items:center;background:#4edea31a;border:1px solid rgba(78,222,163,.24);border-radius:7px;color:var(--primary);display:flex;flex:0 0 48px;height:48px;justify-content:center}.matrix-course-title>div{min-width:0}.matrix-course-title>div>span,.matrix-course-select>span{color:var(--on-surface-variant);display:block;font-size:11px;font-weight:800;margin-bottom:5px;text-transform:uppercase}.matrix-course-title h2{font-size:21px;line-height:1.25;margin:0}.matrix-course-select{display:grid}.matrix-course-select select{background-color:var(--surface-low);border:1px solid var(--outline);border-radius:7px;color:var(--on-surface);font-size:13px;font-weight:700;min-height:44px;padding:8px 38px 8px 12px;width:100%}.matrix-course-select select:focus{border-color:var(--primary);outline:2px solid rgba(78,222,163,.12)}.matrix-course-metadata{align-items:center;border-bottom:1px solid var(--outline-variant);border-top:1px solid var(--outline-variant);display:flex;flex-wrap:wrap;gap:8px 18px;padding:11px 0}.matrix-course-metadata span{color:var(--on-surface-variant);font-size:11px}.matrix-course-metadata span:first-child{color:var(--primary);font-weight:900}.matrix-course-progress{align-items:end;display:grid;gap:12px 26px;grid-template-columns:auto auto minmax(160px,1fr)}.matrix-course-progress>div:not(.matrix-progress-track){display:grid;gap:3px}.matrix-course-progress div>span{color:var(--on-surface-variant);font-size:11px}.matrix-course-progress strong{font-size:22px}.matrix-course-progress strong small{color:var(--on-surface-variant);font-size:12px;font-weight:700}.matrix-progress-track{background:var(--surface-highest);border-radius:999px;height:8px;margin-bottom:8px;overflow:hidden}.matrix-progress-track span{background:var(--primary);border-radius:inherit;display:block;height:100%;min-width:0}.matrix-page-switch{border-bottom:1px solid var(--outline-variant);display:flex;gap:4px;margin-top:22px;overflow-x:auto}.matrix-page-switch button{align-items:center;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--on-surface-variant);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;gap:7px;min-height:42px;padding:8px 13px}.matrix-page-switch button.active{border-bottom-color:var(--primary);color:var(--primary)}.graduation-audit{display:grid;gap:22px;margin-top:18px}.graduation-audit-summary{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:14px 24px;grid-template-columns:minmax(0,1fr) auto;padding:18px}.graduation-audit-heading{align-items:center;display:flex;gap:12px}.graduation-audit-icon{align-items:center;background:#4edea31a;border:1px solid rgba(78,222,163,.24);border-radius:7px;color:var(--primary);display:flex;flex:0 0 44px;height:44px;justify-content:center}.graduation-audit-heading>div{display:grid;gap:3px}.graduation-audit-heading>div>span{color:var(--primary);font-size:10px;font-weight:850;text-transform:uppercase}.graduation-audit-heading h2{font-size:17px;margin:0}.graduation-audit-summary-copy{display:grid;gap:3px;text-align:right}.graduation-audit-summary-copy strong{font-size:18px}.graduation-audit-summary-copy span{color:var(--on-surface-variant);font-size:10px}.graduation-audit-track{background:var(--surface-highest);border-radius:999px;grid-column:1 / -1;height:7px;overflow:hidden}.graduation-audit-track span{background:var(--primary);border-radius:inherit;display:block;height:100%}.graduation-audit-section{display:grid;gap:12px}.graduation-audit-section>header{align-items:center;display:flex;justify-content:space-between}.graduation-audit-section>header>div{align-items:center;display:flex;gap:9px}.graduation-audit-section>header svg{color:var(--primary)}.graduation-audit-section>header h2{font-size:15px;margin:0 0 2px}.graduation-audit-section>header span{color:var(--on-surface-variant);font-size:10px}.graduation-audit-metrics{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(245px,1fr))}.graduation-audit-metric{background:var(--surface);border:1px solid var(--outline-variant);border-left:3px solid var(--warning);border-radius:7px;display:grid;gap:13px;padding:14px}.graduation-audit-metric.complete{border-left-color:var(--primary)}.graduation-audit-metric.review{border-left-color:var(--secondary)}.graduation-audit-metric>header{align-items:start;display:flex;gap:12px;justify-content:space-between}.graduation-audit-metric>header>div{display:grid;gap:5px}.graduation-audit-metric>header>div>span{color:var(--on-surface-variant);font-size:10px;font-weight:800;text-transform:uppercase}.graduation-audit-metric strong{font-size:19px}.graduation-audit-metric strong small{color:var(--on-surface-variant);font-size:11px;font-weight:700}.graduation-audit-metric>header>span{background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 28%,transparent);border-radius:999px;color:var(--warning);flex:0 0 auto;font-size:9px;font-weight:850;padding:5px 7px;text-transform:uppercase}.graduation-audit-metric.complete>header>span{background:#4edea31a;border-color:#4edea33d;color:var(--primary)}.graduation-audit-metric.review>header>span{background:color-mix(in srgb,var(--secondary) 10%,transparent);border-color:color-mix(in srgb,var(--secondary) 26%,transparent);color:var(--secondary)}.graduation-metric-track{background:var(--surface-highest);border-radius:999px;height:5px;overflow:hidden}.graduation-metric-track span{background:var(--warning);border-radius:inherit;display:block;height:100%}.graduation-audit-metric.complete .graduation-metric-track span{background:var(--primary)}.graduation-audit-metric.review .graduation-metric-track span{background:var(--secondary)}.graduation-rule-list{display:grid;gap:8px}.graduation-rule-list article{align-items:start;background:var(--surface);border:1px solid var(--outline-variant);border-radius:7px;display:grid;gap:13px;grid-template-columns:128px minmax(0,1fr);padding:13px}.graduation-rule-list article>span{border-radius:4px;font-size:9px;font-weight:850;padding:6px 7px;text-align:center;text-transform:uppercase}.graduation-rule-list article>span.classificacao{background:color-mix(in srgb,var(--secondary) 10%,transparent);color:var(--secondary)}.graduation-rule-list article>span.informativa{background:#4edea317;color:var(--primary)}.graduation-rule-list article>div{display:grid;gap:3px}.graduation-rule-list strong{font-size:12px}.graduation-rule-list p{color:var(--on-surface-variant);font-size:11px;line-height:1.45;margin:0}.graduation-elective-list{display:grid;gap:7px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.graduation-elective-list>span{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:6px;display:flex;gap:10px;justify-content:space-between;min-height:42px;padding:8px 10px}.graduation-elective-list strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graduation-elective-list small{color:var(--on-surface-variant);flex:0 0 auto;font-size:10px}.graduation-audit-notes{align-items:start;background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:7px;color:var(--on-surface-variant);display:flex;gap:10px;padding:13px}.graduation-audit-notes svg{color:var(--secondary);flex:0 0 auto}.graduation-audit-notes div{display:grid;gap:4px}.graduation-audit-notes p{font-size:10px;line-height:1.45;margin:0}.matrix-hour-requirements{display:grid;gap:12px;margin-top:22px}.matrix-hour-requirements>header{align-items:end;display:flex;gap:20px;justify-content:space-between}.matrix-hour-requirements>header>div{display:grid;gap:3px}.matrix-hour-requirements>header span{color:var(--primary);font-size:10px;font-weight:850;text-transform:uppercase}.matrix-hour-requirements h2{font-size:16px;margin:0}.matrix-hour-requirements>header p{color:var(--on-surface-variant);font-size:11px;margin:0;text-align:right}.matrix-hour-requirements>div{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-hour-requirements article{background:var(--surface);border:1px solid var(--outline-variant);border-left:3px solid var(--warning);border-radius:7px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:15px}.matrix-hour-requirements article.complete{border-left-color:var(--primary)}.matrix-hour-requirements article>div:first-child{display:grid;gap:4px}.matrix-hour-requirements article>div:first-child>span{color:var(--on-surface-variant);font-size:11px}.matrix-hour-requirements article strong{font-size:21px}.matrix-hour-requirements article strong small{color:var(--on-surface-variant);font-size:12px;font-weight:700}.matrix-hour-status{align-self:center;color:var(--warning);font-size:10px;font-weight:800}.matrix-hour-requirements article.complete .matrix-hour-status{color:var(--primary)}.matrix-hour-track{background:var(--surface-highest);border-radius:999px;grid-column:1 / -1;height:6px;overflow:hidden}.matrix-hour-track span{background:var(--warning);border-radius:inherit;display:block;height:100%}.matrix-hour-requirements article.complete .matrix-hour-track span{background:var(--primary)}.matrix-toolbar{align-items:center;border-bottom:1px solid var(--outline-variant);display:flex;gap:18px;justify-content:space-between;margin-top:22px;padding-bottom:10px}.matrix-status-legend{display:flex;flex-wrap:wrap;gap:7px 13px}.matrix-status-legend span{align-items:center;color:var(--on-surface-variant);display:inline-flex;font-size:10px;gap:5px}.matrix-status-legend i{background:var(--outline);border-radius:999px;height:7px;width:7px}.matrix-status-legend i.completed{background:var(--primary)}.matrix-status-legend i.active{background:var(--secondary)}.matrix-status-legend i.available{background:var(--warning)}.matrix-status-legend i.failed{background:var(--error)}.matrix-status-legend i.requirement{background:var(--on-surface-variant)}.matrix-filter-tabs{background:var(--surface-low);border:1px solid var(--outline-variant);border-radius:6px;display:flex;padding:3px}.matrix-filter-tabs button{background:transparent;border:0;border-radius:4px;color:var(--on-surface-variant);font-size:10px;font-weight:750;min-height:30px;padding:5px 9px}.matrix-filter-tabs button.active{background:var(--surface-highest);color:var(--primary)}.matrix-terms{display:grid;gap:26px;margin-top:18px}.matrix-term{display:grid;gap:12px}.matrix-term>header{align-items:center;display:flex;gap:14px;justify-content:space-between}.matrix-term>header>div{align-items:center;display:flex;gap:10px}.matrix-term>header>div>span{align-items:center;background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:6px;color:var(--primary);display:flex;font-size:11px;font-weight:900;height:38px;justify-content:center;width:38px}.matrix-term h2{font-size:16px;margin:0 0 2px}.matrix-term header small,.matrix-term header>strong{color:var(--on-surface-variant);font-size:10px}.matrix-course-grid{display:grid;gap:9px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.matrix-course-card{background:var(--surface);border:1px solid var(--outline-variant);border-left:3px solid var(--outline);border-radius:7px;color:var(--on-surface);display:grid;gap:10px;min-height:136px;padding:12px;text-align:left;width:100%}button.matrix-course-card{cursor:pointer}button.matrix-course-card:hover{background:var(--surface-high);border-color:var(--primary)}.matrix-course-card.completed{border-left-color:var(--primary)}.matrix-course-card.active{border-left-color:var(--secondary)}.matrix-course-card.available{border-left-color:var(--warning)}.matrix-course-card.failed{border-left-color:var(--error)}.matrix-course-card.requirement{border-left-color:var(--on-surface-variant)}.matrix-course-card-heading{align-items:center;display:flex;gap:8px;justify-content:space-between}.matrix-course-card-heading>small{color:var(--on-surface-variant);font-size:10px;font-weight:800}.matrix-course-status{align-items:center;color:var(--on-surface-variant);display:inline-flex;font-size:9px;font-weight:850;gap:4px;text-transform:uppercase}.matrix-course-status.completed{color:var(--primary)}.matrix-course-status.active{color:var(--secondary)}.matrix-course-status.available{color:var(--warning)}.matrix-course-status.failed{color:var(--error)}.matrix-course-card>strong{font-size:13px;line-height:1.3}.matrix-course-meta{align-items:center;display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:auto}.matrix-course-meta span{color:var(--on-surface-variant);font-size:10px}.matrix-course-card>p{border-top:1px solid var(--outline-variant);color:var(--on-surface-variant);font-size:10px;line-height:1.4;margin:0;padding-top:8px}.sequential-summary{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:14px;grid-template-columns:auto auto minmax(220px,1fr);margin-top:20px;padding:17px 18px}.sequential-summary-icon{align-items:center;background:#4edea31a;border:1px solid rgba(78,222,163,.24);border-radius:7px;color:var(--primary);display:flex;height:44px;justify-content:center;width:44px}.sequential-summary>div{display:grid;gap:3px}.sequential-summary>div span{color:var(--on-surface-variant);font-size:11px}.sequential-summary>div strong{font-size:16px}.sequential-summary p{color:var(--on-surface-variant);font-size:12px;justify-self:end;margin:0;text-align:right}.sequential-course-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));margin-top:18px}.sequential-course-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:8px;display:grid;gap:15px;padding:18px}.sequential-course-card.complete{border-color:#4edea36b}.sequential-course-card>header{align-items:start;display:flex;gap:14px;justify-content:space-between;min-height:52px}.sequential-course-card>header>div{display:grid;gap:5px}.sequential-course-card>header span{color:var(--on-surface-variant);font-size:10px;font-weight:800;text-transform:uppercase}.sequential-course-card.complete>header span{color:var(--primary)}.sequential-course-card h2{font-size:16px;line-height:1.3;margin:0}.sequential-course-card>header>strong{align-items:center;background:var(--surface-highest);border-radius:5px;color:var(--on-surface-variant);display:inline-flex;flex:0 0 auto;font-size:11px;gap:4px;padding:6px 8px}.sequential-course-card.complete>header>strong{background:#4edea31a;color:var(--primary)}.sequential-progress{background:var(--surface-highest);border-radius:999px;height:5px;overflow:hidden}.sequential-progress span{background:var(--primary);border-radius:inherit;display:block;height:100%}.sequential-requirements{display:grid;gap:9px}.sequential-requirements>span{color:var(--on-surface-variant);font-size:10px;font-weight:800;text-transform:uppercase}.sequential-requirements ul{display:grid;gap:7px;list-style:none;margin:0;padding:0}.sequential-requirements li{align-items:center;background:var(--surface-low);border:1px solid var(--outline-variant);border-left:3px solid var(--warning);border-radius:6px;color:var(--on-surface-variant);display:grid;gap:11px;grid-template-columns:26px minmax(0,1fr) auto;min-height:52px;padding:10px 11px}.sequential-requirements li.completed{background:#4edea312;border-color:#4edea338;border-left-color:var(--primary)}.sequential-requirements li.active{background:color-mix(in srgb,var(--secondary) 8%,transparent);border-color:color-mix(in srgb,var(--secondary) 24%,transparent);border-left-color:var(--secondary)}.sequential-requirements li svg{color:var(--warning);height:22px;width:22px}.sequential-requirements li.completed svg{color:var(--primary)}.sequential-requirements li.active svg{color:var(--secondary)}.sequential-requirements li>span{color:var(--on-surface);font-size:13px;font-weight:700;line-height:1.3}.sequential-requirements li small{background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 28%,transparent);border-radius:999px;color:var(--warning);font-size:11px;font-weight:800;padding:5px 8px}.sequential-requirements li.completed small{background:#4edea31a;border-color:#4edea33d;color:var(--primary)}.sequential-requirements li.active small{background:color-mix(in srgb,var(--secondary) 10%,transparent);border-color:color-mix(in srgb,var(--secondary) 26%,transparent);color:var(--secondary)}@media(max-width:1020px){.prerequisite-graph-shell{margin-inline:-14px}.period-section-header{grid-template-columns:52px minmax(0,1fr) auto}.period-summary{grid-column:2 / -1;grid-row:2}.period-header-actions{grid-column:3;grid-row:1}.cr-simulation-table{overflow-x:auto}.cr-simulation-table-head,.cr-simulation-row{min-width:760px}.matrix-course-header-top{grid-template-columns:1fr}.matrix-course-progress{grid-template-columns:auto auto minmax(140px,1fr)}.matrix-hour-requirements>header{align-items:start}.sequential-summary{grid-template-columns:auto minmax(0,1fr)}.sequential-summary p{grid-column:1 / -1;justify-self:start;text-align:left}}@media(max-width:700px){.completed-period-picker{grid-template-columns:1fr}.completed-period-preview{grid-column:1}.course-index-actions,.history-import-footer{align-items:stretch;display:grid;width:100%}.course-index-actions button,.history-import-footer button{width:100%}.history-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.history-import-summary>div:first-child{grid-column:1 / -1}.history-review-title{display:grid}.history-situation{justify-self:start}.periods-page-header,.cr-simulator-header{display:grid}.cr-simulator-header-actions{justify-content:flex-start}.period-section-header{align-items:start;grid-template-columns:44px minmax(0,1fr) auto}.period-marker{height:44px;width:44px}.period-summary{flex-wrap:wrap;grid-column:1 / -1;padding-left:0}.period-course-list{padding-left:0}.period-course-row{align-items:stretch;grid-template-columns:34px minmax(0,1fr)}.period-drop-hint{padding-left:0}.cr-simulator-scoreboard{grid-template-columns:1fr}.prerequisite-toolbar{align-items:stretch;grid-template-columns:1fr}.prerequisite-node-details{align-items:start;grid-template-columns:1fr}.prerequisite-detail-metrics{flex-wrap:wrap}.prerequisite-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.prerequisite-flow,.prerequisite-graph-shell{height:max(680px,calc(100vh - 210px));min-height:max(680px,calc(100vh - 210px))}.matrix-course-header{padding:15px}.matrix-course-progress{align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-progress-track{grid-column:1 / -1;margin-bottom:0}.matrix-hour-requirements>header{display:grid}.matrix-hour-requirements>header p{text-align:left}.matrix-hour-requirements>div{grid-template-columns:1fr}.matrix-toolbar{align-items:stretch;display:grid}.matrix-filter-tabs{overflow-x:auto}.matrix-course-grid{grid-template-columns:1fr}.matrix-term>header{align-items:flex-start}.graduation-audit-summary{align-items:start;grid-template-columns:1fr}.graduation-audit-summary-copy{text-align:left}.graduation-rule-list article{grid-template-columns:1fr}.graduation-rule-list article>span{justify-self:start}.graduation-audit-metric>header{display:grid}.graduation-audit-metric>header>span{justify-self:start}.sequential-course-grid{grid-template-columns:1fr}.sequential-course-card{padding:15px}.sequential-requirements li{grid-template-columns:26px minmax(0,1fr)}.sequential-requirements li small{grid-column:2;justify-self:start}}
