:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1d2025;font-synthesis:none;text-rendering:optimizelegibility;--crimson:#a51c30;--crimson-dark:#771526;--ink:#1d2025;--muted:#707783;--line:#d9dee5;--surface:#fff;--soft:#f0f2f4;--teal:#047a74;--green:#0f8a4f;--amber:#b26b00;--danger:#b64235;--shadow:0 18px 46px #181e2614;background:#f6f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,#root{height:100%}body{background:linear-gradient(180deg, #a51c300d, #fff0 260px), var(--soft);min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:280px minmax(0,1fr);height:100vh;min-height:0;display:grid;overflow:hidden}.filter-rail{overscroll-behavior:contain;scrollbar-gutter:stable;border-right:1px solid var(--line);background:#fbfbfc;flex-direction:column;gap:18px;min-height:0;padding:22px;display:flex;overflow-y:auto}.brand-row{align-items:center;gap:12px;min-height:58px;display:flex}.brand-mark{border-radius:10px;flex:none;width:42px;height:42px;box-shadow:0 8px 18px #7715262e}h1,h2,h3,h4,p{margin:0}h1{font-size:18px;line-height:1.1}.brand-row p,.panel-heading p,.detail-title p,.muted,.latest-note,.sort-label,.rail-footer{color:var(--muted)}.brand-row p{margin-top:4px;font-size:12px;line-height:1.35}.search-box,.multi-search,.source-chip{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:8px;height:40px;display:flex}.search-box{padding:0 12px}.search-box svg,.multi-search svg,.control-label svg,.source-chip svg{flex:none;width:16px;height:16px}.search-box input,.multi-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:13px}.page-switch{grid-template-columns:1fr 1fr;gap:6px;display:grid}.page-switch button,.toggle-chip{border:1px solid var(--line);background:var(--surface);color:#4c535e;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:34px;font-size:12px;font-weight:800;display:inline-flex}.page-switch button.active{color:var(--crimson-dark);background:#fff3f4;border-color:#a51c3059}.toggle-chip:has(input:checked){color:var(--crimson-dark);background:#fff3f4;border-color:#a51c3059}.page-switch svg,.toggle-chip svg{width:15px;height:15px}.toggle-chip{padding:0 12px}.toggle-chip input{accent-color:var(--crimson)}.account-panel{border:1px solid var(--line);background:var(--surface);width:max-content;min-width:190px;max-width:min(320px,100%);min-height:58px;box-shadow:var(--shadow);border-radius:8px;justify-content:center;align-items:center;padding:8px 10px;display:flex}.account-panel.signed-in{justify-content:flex-start}.account-user{align-items:center;gap:8px;width:max-content;min-width:168px;max-width:100%;display:flex}.account-user img,.account-avatar{border-radius:50%;width:30px;height:30px}.account-avatar{color:var(--crimson-dark);background:#fff3f4;place-items:center;font-size:12px;font-weight:850;display:grid}.account-copy{min-width:0;max-width:160px;display:grid}.account-user strong,.account-user span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.account-user strong{color:var(--ink);font-size:12px;line-height:1.2}.account-user span,.account-user small{color:var(--muted);font-size:10px;font-weight:720;line-height:1.2}.text-action{min-height:28px;color:var(--crimson-dark);background:#f8f9fa;border:1px solid #0000;border-radius:7px;padding:0 7px;font-size:11px;font-weight:830}.text-action:hover{background:#fff3f4;border-color:#a51c303d}.google-signin-wrap{border-radius:999px;width:168px;max-width:168px;min-height:32px;overflow:hidden}.account-setup-note{max-width:220px;color:var(--muted);font-size:11px;font-weight:720}.control-group{gap:10px;display:grid}.control-label{color:#4c535e;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:760;display:flex}.multi-select{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:9px;padding:10px;display:grid}.multi-search{height:34px;padding:0 9px}.selected-chips,.subject-options{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.subject-summary{color:#4c535e;justify-content:space-between;align-items:center;gap:8px;min-height:28px;font-size:12px;font-weight:800;display:flex}.subject-groups{overscroll-behavior-inline:contain;scrollbar-width:thin;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.group-chip{border:1px solid var(--line);color:#4f5660;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:#fbfcfd;border-radius:7px;flex:none;min-width:0;max-width:128px;min-height:28px;padding:0 8px;font-size:11px;font-weight:800;overflow:hidden}.group-chip.active{color:var(--crimson-dark);background:#fff3f4;border-color:#a51c3052}.all-chip,.subject-chip,.subject-option{border-radius:999px;align-items:center;gap:6px;min-height:26px;font-size:12px;font-weight:750;display:inline-flex}.all-chip{background:var(--soft);color:var(--muted);padding:0 9px}.selected-chips{overscroll-behavior:contain;scrollbar-width:thin;max-height:64px;overflow:auto}.subject-chip{color:var(--crimson-dark);background:#fff3f4;border:1px solid #a51c303d;padding:0 8px 0 10px}.clear-subjects{min-height:26px;color:var(--muted);background:#fff;border:1px solid #4f566038;border-radius:999px;padding:0 10px;font-size:12px;font-weight:800}.clear-subjects:hover{color:var(--crimson-dark);border-color:#a51c3052}.subject-chip svg,.subject-option svg{width:13px;height:13px}.subject-options{overscroll-behavior:contain;scrollbar-width:thin;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;max-height:112px;padding-right:2px;display:grid;overflow:auto}.subject-option{color:#4c535e;background:#f6f7f8;border:1px solid #0000;justify-content:space-between;min-width:0;padding:0 8px}.subject-option span{text-overflow:ellipsis;min-width:0;overflow:hidden}.subject-option.selected{color:var(--green);background:#e8f6ef;border-color:#047a743d}.subject-count,.empty-subjects{color:var(--muted);font-size:11px;font-weight:720}.empty-subjects{grid-column:1/-1;padding:4px 2px}.range-control{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:8px;padding:10px 12px;display:grid}.range-control div,.score-bar,.bar-row{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.score-bar{grid-template-columns:minmax(98px,118px) 1fr 34px}.range-control span,.range-control strong{font-size:12px}.range-control strong{color:var(--crimson)}.range-control input{width:100%;accent-color:var(--crimson)}.check-row{color:#4f5660;align-items:center;gap:8px;font-size:13px;display:flex}.check-row input{accent-color:var(--crimson)}.rail-footer{gap:8px;margin-top:auto;font-size:12px;display:grid}.legal-links{gap:10px;display:flex}.legal-links a{color:var(--muted);font-weight:800;text-decoration:none}.legal-links a:hover{color:var(--crimson-dark)}.source-chip{color:#303741;white-space:nowrap;text-overflow:ellipsis;justify-content:flex-start;width:100%;padding:0 10px;overflow:hidden}.planner-rail{gap:14px;display:grid}.planner-mini-stats{grid-template-columns:1fr;gap:8px;display:grid}.planner-mini-stats .metric-card{min-height:54px;box-shadow:none;padding:10px 12px}.planner-mini-stats .metric-card strong{font-size:18px}.term-choice{grid-template-columns:1fr 1fr;gap:6px;display:grid}.term-choice span{border:1px solid var(--line);background:var(--surface);color:#4c535e;border-radius:8px;place-items:center;min-height:32px;font-size:12px;font-weight:800;display:grid}.term-choice span.active{color:var(--green);background:#e8f6ef;border-color:#047a7447}.full-button{width:100%}.rail-note{color:var(--muted);font-size:12px;line-height:1.35}.workspace{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;gap:16px;min-width:0;min-height:0;padding:22px;display:flex;overflow-y:auto}.warning-toast{z-index:30;color:#6e4400;box-shadow:var(--shadow);background:#fff8eb;border:1px solid #b26b0052;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:750;display:grid;position:sticky;top:0}.warning-toast svg{width:16px;height:16px}.warning-toast button{width:28px;height:28px;color:inherit;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.workspace-page-header{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:12px;display:grid}.workspace-page-header .semester-nav-strip{min-width:0}.planner-export-button{white-space:nowrap;width:100%;min-height:34px;padding:0 12px}.planner-export-button svg{width:15px;height:15px}.planner-rail-export{margin-top:2px}.semester-nav-strip{border:1px solid var(--line);background:var(--surface);min-height:58px;box-shadow:var(--shadow);border-radius:8px;grid-template-columns:auto minmax(130px,.28fr) minmax(260px,1fr) auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.semester-title{gap:2px;min-width:0;display:grid}.semester-title span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:850}.semester-title strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:18px;line-height:1.05;overflow:hidden}.semester-strip-stats{grid-template-columns:repeat(4,minmax(82px,1fr));gap:7px;min-width:0;display:grid}.semester-strip-stats>span{color:#4c535e;text-overflow:ellipsis;white-space:nowrap;background:#fbfcfd;border:1px solid #edf0f3;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:34px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex;overflow:hidden}.semester-stat-value{text-overflow:ellipsis;min-width:0;overflow:hidden}.semester-stat-delta{border-radius:999px;flex:none;padding:2px 5px;font-size:11px;font-weight:900;line-height:1}.semester-stat-delta.positive{color:#106b39;background:#e9f7ee}.semester-stat-delta.negative{color:#a51c30;background:#fff0f2}.semester-stat-delta.neutral{color:#66707b;background:#f1f3f5}.semester-strip-stats svg,.semester-open-button svg{flex:none;width:14px;height:14px}.semester-nav-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.semester-open-button{min-height:34px}.topbar{display:block}.kpi-strip{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:10px;width:100%;display:grid}.metric-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:3px;min-height:62px;padding:12px 14px;display:grid;box-shadow:inset 0 1px #ffffffd9}.metric-card span{color:var(--muted);font-size:12px}.metric-card strong{color:var(--ink);font-size:22px;line-height:1.05}.mode-row,.detail-meta,.theme-row,.subhead{align-items:center;gap:10px;display:flex}.primary-button,.secondary-button,.mode-pill,.mobile-filter-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;font-size:13px;font-weight:720;display:inline-flex}.primary-button{border:1px solid var(--crimson-dark);background:var(--crimson);color:#fff;padding:0 14px}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0 14px}.secondary-button.active{color:var(--green);background:#e8f6ef;border-color:#047a744d}.mobile-filter-button{color:var(--crimson-dark);background:#fff3f4;border:1px solid #a51c3047;padding:0 14px;display:none}.mode-row{flex-wrap:wrap}.mode-pill{border:1px solid var(--line);background:var(--surface);color:#4c535e;padding:0 13px}.mode-pill.active{color:var(--crimson-dark);background:#fff3f4;border-color:#a51c3059}.explainer{color:#707783;vertical-align:middle;align-items:center;margin-left:5px;display:inline-flex;position:relative}.explainer svg{stroke-width:2.4px;width:13px;height:13px}.explainer-tooltip{z-index:10000;border:1px solid var(--line);color:#fff;pointer-events:none;text-transform:none;white-space:normal;background:#1f252d;border-radius:7px;padding:9px 10px;font-size:11px;font-weight:600;line-height:1.35;position:fixed;box-shadow:0 10px 30px #181e262e}.explainer-tooltip.above{transform:translateY(-100%)}.explainer-tooltip.below{transform:translateY(0)}.content-grid{flex:0 0 clamp(420px,100vh - 265px,570px);grid-template-columns:minmax(560px,1fr) 360px;gap:16px;height:clamp(420px,100vh - 265px,570px);min-height:420px;display:grid}.ranking-panel,.detail-panel,.viz-panel{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px}.ranking-panel{overflow:hidden}.detail-panel{overscroll-behavior:contain;scrollbar-gutter:stable;overflow:auto}.panel-heading,.detail-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.panel-heading h2,.detail-title h2{font-size:16px;line-height:1.2}.panel-heading p,.sort-label,.detail-title p,.detail-meta,.latest-note{font-size:12px}.detail-title .course-instructors{color:#4c535e;margin-top:6px;font-weight:720}.table-wrap{overscroll-behavior:contain;scrollbar-gutter:stable;height:calc(100% - 65px);overflow:auto}table{border-collapse:collapse;table-layout:fixed;width:100%}th{border-bottom:1px solid var(--line);color:#5e6672;text-align:left;text-transform:uppercase;padding:9px 12px;font-size:11px;font-weight:800}td{color:#313842;border-bottom:1px solid #edf0f3;padding:10px 12px;font-size:13px}.table-limit-note{border-top:1px solid var(--line);color:var(--muted);background:#fffffff0;padding:10px 12px;font-size:12px;position:sticky;bottom:0}th:first-child,td:first-child{width:34%}th:nth-child(2),td:nth-child(2),th:nth-child(3),td:nth-child(3),th:nth-child(4),td:nth-child(4){width:12%}th:nth-child(5),td:nth-child(5){width:13%}th:nth-child(6),td:nth-child(6){width:17%}tr.selected{background:#fff7f8}tr:hover{background:#faf7f8}.course-cell{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:grid}.course-cell strong{align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.course-cell span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.term-tags{vertical-align:middle;flex-wrap:wrap;gap:4px;display:inline-flex}.term-tag{white-space:nowrap;border-radius:999px;align-items:center;min-height:18px;padding:0 6px;font-size:10px;font-weight:850;display:inline-flex}.term-tag.fall{color:#765100;background:#fff2c2}.term-tag.spring{color:#0f5d36;background:#dff4e7}.table-actions,.detail-actions{align-items:center;gap:7px;display:flex}.icon-action{border:1px solid var(--line);background:var(--surface);color:#4c535e;border-radius:8px;place-items:center;width:32px;height:32px;display:inline-grid}.icon-action svg{width:15px;height:15px}.icon-action.active,.icon-action:hover:not(:disabled){color:var(--crimson-dark);background:#fff3f4;border-color:#a51c3052}.icon-action:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.45}.score-badge,.sentiment-pill,.trend,.theme{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.score-badge{background:var(--crimson);color:#fff;min-width:34px;height:28px;padding:0 8px}.score-badge.large{min-width:48px;height:42px;font-size:18px}.sentiment-pill{min-width:48px;height:26px;padding:0 9px}.sentiment-pill.positive,.theme.positive{color:var(--green);background:#e8f6ef}.sentiment-pill.mixed{color:var(--amber);background:#fff6e7}.sentiment-pill.negative,.theme.negative{color:var(--danger);background:#fff0ef}.trend{color:#4f5660;gap:5px}.trend svg{width:14px;height:14px}.trend-up{color:var(--green)}.trend-down{color:var(--danger)}.detail-panel{flex-direction:column;display:flex;overflow:auto}.detail-meta{border-bottom:1px solid var(--line);flex-wrap:wrap;padding:12px 16px}.detail-meta span{background:var(--soft);color:#4d5662;border-radius:6px;padding:5px 8px}.detail-actions{border-bottom:1px solid var(--line);flex-wrap:wrap;padding:14px 16px}.description-section{border-bottom:1px solid var(--line);gap:8px;padding:16px;display:grid}.description-section h3{font-size:13px}.description-section p{color:#3b444f;font-size:13px;line-height:1.5}.score-stack,.comments-section,.trend-chart,.course-reports-panel{border-bottom:1px solid var(--line);gap:10px;padding:16px;display:grid}.score-bar>span,.score-bar strong{font-size:12px}.score-bar>span{align-items:center;min-width:0;display:inline-flex}.score-bar div,.bar-row div{background:#e8ebef;border-radius:99px;height:8px;position:relative;overflow:hidden}.score-bar i,.bar-row i{border-radius:inherit;background:linear-gradient(90deg, var(--crimson), var(--teal));height:100%;display:block}.detail-stats{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 16px 16px;display:grid}.detail-stats .metric-card{min-height:58px;box-shadow:none;padding:10px}.detail-stats .metric-card strong{font-size:18px}.subhead{justify-content:space-between}.subhead h3{font-size:13px}.subhead span{color:var(--muted);font-size:12px}.trend-chart svg{width:100%;height:118px}.trend-chart line,.scatter line{stroke:#cfd5dc;stroke-width:1px}.trend-chart polyline{fill:none;stroke:var(--crimson);stroke-width:2.5px}.trend-chart circle{fill:#fff;stroke:var(--crimson);stroke-width:2px}.trend-chart text,.scatter text{fill:#65707d;font-size:10px}.theme-row{flex-wrap:wrap}.theme{height:24px;padding:0 8px}.comment-list{gap:8px;display:grid}.comment-list h4{color:#3d454f;text-transform:uppercase;font-size:12px}blockquote{color:#333a44;background:#f7f8fa;border-left:3px solid #a51c3073;border-radius:0 6px 6px 0;margin:0;padding:10px 11px;font-size:12px;line-height:1.45}blockquote cite{color:var(--crimson-dark);margin-bottom:4px;font-size:11px;font-style:normal;font-weight:800;display:block}.latest-note{padding-top:2px}.chart-row{grid-template-columns:minmax(420px,1.2fr) minmax(320px,.8fr);gap:16px;display:grid}.scatter{width:100%;height:250px;padding:8px}.scatter circle{cursor:pointer;opacity:.58;stroke:#fff;stroke-width:1.5px}.scatter g:hover circle,.scatter .active-dot circle{opacity:.95}.scatter circle.positive{fill:var(--green)}.scatter circle.mixed{fill:var(--amber)}.scatter circle.negative{fill:var(--danger)}.active-dot circle{stroke:var(--ink);stroke-width:2px}.missing-dot circle{fill:#9aa3ad;opacity:.35;stroke:#5f6975;stroke-dasharray:2 2}.active-dot text{fill:var(--ink);font-weight:800}.bar-list{gap:11px;padding:16px;display:grid}.bar-row{grid-template-columns:76px 1fr 48px;font-size:12px}.bar-row span{font-weight:800}.bar-row strong{text-align:right}.planner-page{flex-direction:column;gap:16px;min-height:0;display:flex}.planner-header{grid-template-columns:minmax(320px,1fr) minmax(360px,.85fr);align-items:stretch;gap:16px;display:grid}.semester-nav,.planner-summary,.calendar-panel,.planner-side,.side-section{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.semester-nav{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.semester-nav h2{font-size:18px}.semester-nav select{border:1px solid var(--line);color:#303741;background:#f8f9fa;border-radius:8px;width:fit-content;min-width:128px;height:32px;margin-top:8px;padding:0 9px;font-size:13px;font-weight:800}.semester-nav p{color:var(--muted);margin-top:4px;font-size:12px}.planner-summary{grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;display:grid}.planner-summary .metric-card{min-height:58px;box-shadow:none}.planner-layout{grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:16px;min-height:min(720px,100vh - 160px);display:grid}.calendar-panel{--calendar-time-axis-width:clamp(42px, 5vw, 58px);--calendar-event-gap:4px;--calendar-event-double-gap:8px;min-width:0;overflow:hidden}.calendar-imports{border-bottom:1px solid var(--line);background:#fbfcfd;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:10px;min-height:44px;padding:8px 10px;display:grid}.calendar-imports>span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.calendar-imports div{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.calendar-imports strong{min-height:24px;color:var(--green);background:#e8f6ef;border:1px solid #047a7433;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.calendar-head{grid-template-columns:var(--calendar-time-axis-width) repeat(7, minmax(0, 1fr));border-bottom:1px solid var(--line);display:grid}.calendar-head span,.calendar-head strong{border-right:1px solid var(--line);color:#4c535e;text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;min-height:38px;padding:10px 6px;font-size:12px;overflow:hidden}.calendar-head strong:last-child{border-right:0}.calendar-body{grid-template-columns:var(--calendar-time-axis-width) repeat(7, minmax(0, 1fr));overscroll-behavior:contain;scrollbar-gutter:stable;height:min(690px,100vh - 220px);min-height:540px;display:grid;overflow:hidden auto}.time-axis{border-right:1px solid var(--line);background:#fbfcfd;grid-template-rows:repeat(16,1fr);display:grid}.time-axis span{color:var(--muted);text-align:right;border-bottom:1px solid #eef1f4;padding:5px 7px 0 0;font-size:11px}.day-column{background:linear-gradient(#f6f7f8bf,#f6f7f8bf) 0 0/100% 6.66667%;border-right:1px solid #eef1f4;min-width:0;position:relative}.day-column:last-child{border-right:0}.hour-line{pointer-events:none;border-bottom:1px solid #eef1f4;height:6.66667%;display:block;position:relative}.calendar-event{right:var(--calendar-event-gap);left:var(--calendar-event-gap);z-index:2;appearance:none;color:#fff;font:inherit;text-align:left;border:1px solid #ffffffb8;border-radius:7px;align-content:start;gap:2px;padding:5px 6px;display:grid;position:absolute;overflow:hidden;box-shadow:0 7px 18px #181e2626}.calendar-event strong,.calendar-event span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-event strong{font-size:11px}.calendar-event span{opacity:.92;font-size:10px}.calendar-event.estimated{border-style:dashed;box-shadow:0 7px 18px #181e261c}.calendar-event.selected,.calendar-event:focus-visible{z-index:4;outline-offset:2px;outline:3px solid #1d202573}.calendar-event.ghost{z-index:3;filter:saturate(.76)brightness(1.14);pointer-events:none;border:2px solid #181e265c;box-shadow:0 8px 22px #181e262e,inset 0 0 0 2px #ffffff8c}.planner-side{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;gap:12px;min-height:0;padding:12px;display:flex;overflow:auto}.side-section{box-shadow:none}.side-section .subhead{border-bottom:1px solid var(--line);padding:12px}.planner-list,.imported-list{gap:8px;padding:10px;display:grid}.planner-course-row{background:#fbfcfd;border:1px solid #edf0f3;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:9px;padding:10px;display:grid}.planner-course-row.selectable{cursor:pointer}.planner-course-row.selectable:hover,.planner-course-row.selectable:focus-visible{background:#fff8f8;border-color:#a51c303d;outline:none}.planner-course-row.selected{background:#fff3f4;border-color:#a51c305c;box-shadow:0 0 0 1px #a51c3014}.favorite-row{grid-template-columns:auto minmax(0,1fr) auto auto}.course-color-dot{border:2px solid #fff;border-radius:50%;flex:none;width:22px;height:22px;margin:3px;display:inline-block;position:relative;overflow:hidden;box-shadow:0 0 0 1px #181e2624}.course-color-dot.editable{cursor:pointer}.course-color-dot input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.planner-course-row>svg{width:16px;height:16px;color:var(--crimson);margin-top:5px}.planner-course-row div{gap:3px;min-width:0;display:grid}.planner-course-row strong,.planner-course-row span,.planner-course-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.planner-course-row strong{color:var(--ink);font-size:13px}.planner-course-row span,.planner-course-row small,.imported-list span{color:var(--muted);font-size:12px}.planner-info-card{box-shadow:none;overflow:visible}.planner-info-title{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;display:grid}.planner-info-title>div{gap:3px;min-width:0;display:grid}.planner-info-title span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:850}.planner-info-title h3,.planner-info-title p{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.planner-info-title h3{color:var(--ink);font-size:16px}.planner-info-title p{color:#4d5662;font-size:12px}.planner-info-actions{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.schedule-source{min-width:0;color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;overflow:hidden}.schedule-source.estimated{color:var(--amber)}.planner-info-metrics{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 12px;display:grid}.planner-info-metrics .metric-card{min-height:54px;box-shadow:none;padding:10px}.planner-info-metrics .metric-card strong{font-size:18px}.planner-info-list{border-bottom:1px solid var(--line);gap:9px;margin:0;padding:12px;display:grid}.planner-info-list div{gap:3px;display:grid}.planner-info-list dt{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:850}.planner-info-list dd{color:#303741;margin:0;font-size:12px;line-height:1.38}.planner-info-description,.planner-info-confidence,.planner-info-comments,.comparison-panel{border-bottom:1px solid var(--line);gap:9px;padding:12px;display:grid}.compact-report-panel{gap:9px;padding:12px}.report-panel-header,.full-report-title,.report-section-title,.feedback-row-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.report-panel-header h3,.full-report-title h4,.report-section-title h5{color:var(--ink);font-size:13px}.report-panel-header p,.full-report-title p,.report-panel-header>span,.report-section-title>span,.feedback-row-header span{color:var(--muted);font-size:12px;line-height:1.35}.report-panel-header>div,.full-report-title>div{gap:3px;min-width:0;display:grid}.report-panel-header>span{background:var(--soft);border-radius:999px;place-items:center;min-width:28px;height:24px;font-weight:850;display:grid}.report-selector-list{overscroll-behavior-inline:contain;scrollbar-width:thin;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.report-choice{border:1px solid var(--line);color:#303741;text-align:left;background:#fbfcfd;border-radius:8px;flex:0 0 min(210px,72%);gap:2px;min-height:48px;padding:8px 10px;display:grid}.report-choice strong,.report-choice span,.report-choice small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.report-choice strong{font-size:12px}.report-choice span{color:var(--muted);font-size:11px}.report-choice small{color:#6d7580;font-size:10px}.report-choice.active{color:var(--crimson-dark);background:#fff3f4;border-color:#a51c305c}.report-closed-note{background:#fbfcfd;border:1px dashed #dce1e7;border-radius:8px;padding:10px 11px}.full-report,.report-section,.report-comment-list,.recommendation-list{gap:10px;display:grid}.full-report{background:#fbfcfd;border:1px solid #edf0f3;border-radius:8px;padding:12px}.report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.report-metric{background:#fff;border:1px solid #edf0f3;border-radius:8px;gap:2px;min-width:0;padding:9px 10px;display:grid}.report-metric span,.report-metric small{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.report-metric strong{color:var(--ink);font-size:17px;line-height:1.05}.distribution-legend{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.distribution-legend span{color:var(--muted);align-items:center;gap:4px;font-size:10px;font-weight:800;display:inline-flex}.distribution-legend span:before{content:"";background:#a51c30;border-radius:2px;width:8px;height:8px}.distribution-legend span:nth-child(2):before{background:#047a74}.distribution-legend span:nth-child(3):before{background:#6c5ce7}.distribution-legend span:nth-child(4):before{background:#b26b00}.distribution-legend span:nth-child(5):before{background:#9aa3ad}.feedback-row{gap:6px;display:grid}.feedback-row-header strong{color:#3d454f;font-size:12px}.feedback-bars{background:#e8ebef;border-radius:999px;height:10px;display:flex;overflow:hidden}.feedback-bars span{min-width:0;height:100%}.feedback-bars span:first-child{background:#a51c30}.feedback-bars span:nth-child(2){background:#047a74}.feedback-bars span:nth-child(3){background:#6c5ce7}.feedback-bars span:nth-child(4){background:#b26b00}.feedback-bars span:nth-child(5){background:#9aa3ad}.recommendation-row{grid-template-columns:minmax(108px,1fr) minmax(72px,1.2fr) 44px 36px;align-items:center;gap:8px;display:grid}.recommendation-row span,.recommendation-row strong,.recommendation-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.recommendation-row span,.recommendation-row small{color:var(--muted)}.recommendation-row strong{color:#303741;text-align:right}.recommendation-row div{background:#e8ebef;border-radius:999px;height:8px;overflow:hidden}.recommendation-row i{border-radius:inherit;background:linear-gradient(90deg, var(--crimson), var(--teal));height:100%;display:block}.report-comment{background:#fff}.compact-report-panel .full-report{padding:10px}.compact-report-panel .report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-report-panel .distribution-legend{justify-content:flex-start}.compact-report-panel .report-section-title,.compact-report-panel .feedback-row-header{display:grid}.compact-report-panel .recommendation-row{grid-template-columns:minmax(104px,1fr) minmax(54px,.8fr) 42px 30px}.planner-info-description h4,.planner-info-comments h4{color:#3d454f;text-transform:uppercase;font-size:12px}.planner-info-description p{color:#3b444f;-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.planner-info-confidence{gap:8px}.planner-info-confidence .score-bar{grid-template-columns:minmax(92px,112px) 1fr 32px}.planner-theme-row{border-bottom:1px solid var(--line);padding:12px}.planner-info-comments blockquote{padding:8px 9px;font-size:11px}.planner-info-note{border-bottom:1px solid var(--line);padding:10px 12px}.comparison-baseline{background:#fff8f8;border:1px solid #a51c302e;border-radius:8px;gap:2px;padding:9px 10px;display:grid}.comparison-baseline span,.comparison-baseline small{color:var(--muted);font-size:11px}.comparison-baseline strong{color:var(--crimson-dark);font-size:13px}.comparison-search{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:7px;min-width:0;min-height:36px;padding:0 9px;display:flex}.comparison-search svg{width:15px;height:15px;color:var(--muted);flex:none}.comparison-search input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;font-size:12px;font-weight:750}.comparison-mode-note{color:var(--muted);font-size:11px;font-weight:750}.comparison-list{gap:8px;display:grid}.comparison-row{background:#fbfcfd;border:1px solid #edf0f3;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:8px;padding:9px;display:grid}.comparison-row:hover,.comparison-row:focus-within{background:#f4fbfa;border-color:#047a7457;box-shadow:0 0 0 1px #047a7414}.comparison-course,.comparison-values{gap:3px;min-width:0;display:grid}.comparison-course strong,.comparison-course span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.comparison-course strong{color:var(--ink);font-size:13px}.comparison-course span,.comparison-values span{color:var(--muted);font-size:12px}.comparison-values{grid-template-columns:repeat(3,minmax(0,1fr))}.comparison-values span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.padded-note{padding:10px}.imported-list{overscroll-behavior:contain;max-height:190px;overflow:auto}.imported-list div{background:#f7f8fa;border-radius:7px;gap:2px;padding:8px 9px;display:grid}.compact{min-height:30px;padding:0 10px;font-size:12px}.planner-course-row .term-action-row,.term-action-row{flex-wrap:wrap;gap:5px;display:flex}.term-action{border:1px solid var(--line);background:var(--surface);color:#4c535e;border-radius:8px;place-items:center;min-width:36px;height:28px;padding:0 7px;font-size:11px;font-weight:850;display:inline-grid}.term-action:hover,.term-action.active{color:var(--green);background:#e8f6ef;border-color:#047a744d}.empty-state{color:var(--muted);padding:18px;font-size:13px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1180px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.content-grid,.chart-row{grid-template-columns:1fr}.content-grid{flex:none;height:auto;min-height:auto}.ranking-panel{height:420px}.detail-panel{min-height:360px;max-height:520px}.planner-header,.planner-layout{grid-template-columns:1fr}.semester-nav-strip{grid-template-columns:auto minmax(130px,.34fr) minmax(220px,1fr) auto}.planner-side{max-height:460px}}@media (width<=820px){body{overflow:auto}.app-shell{height:auto;min-height:100vh;display:block;overflow:visible}.filter-rail{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;padding:16px;display:grid;position:static;overflow:visible}.brand-row,.search-box,.page-switch{grid-column:1/-1}.mobile-filter-button{grid-column:1/-1;display:inline-flex}.filter-rail:not(.filters-open) .control-group,.filter-rail:not(.filters-open) .rail-footer{display:none}.filter-rail.filters-open .rail-footer{grid-column:1/-1}.control-group{gap:7px}.control-label{font-size:11px}.range-control{padding:9px 10px}.topbar{flex-direction:column;align-items:stretch}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{flex:none;height:auto;min-height:auto}.workspace{padding:14px;overflow:visible}.workspace-page-header{grid-template-columns:1fr}.account-panel{justify-self:end}.planner-summary{grid-template-columns:1fr}.semester-nav-strip{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"previous title actions""stats stats stats"}.semester-nav-strip>.icon-action:first-child{grid-area:previous}.semester-title{grid-area:title}.semester-strip-stats{grid-area:stats;grid-template-columns:repeat(2,minmax(0,1fr))}.semester-nav-actions{grid-area:actions}.semester-open-button{display:none}.calendar-panel{--calendar-time-axis-width:38px;--calendar-event-gap:2px;--calendar-event-double-gap:4px;overflow-x:hidden}.calendar-body{height:620px}.calendar-head span,.calendar-head strong{min-height:34px;padding:9px 2px;font-size:11px}.time-axis span{padding-right:4px;font-size:10px}.calendar-event{border-radius:5px;gap:1px;padding:3px 2px}.calendar-event strong{font-size:10px}.calendar-event span{font-size:9px}th:nth-child(5),td:nth-child(5),th:nth-child(6),td:nth-child(6){display:none}}@media (width<=560px){.filter-rail{grid-template-columns:1fr}.workspace{padding:12px}.calendar-panel{--calendar-time-axis-width:32px;--calendar-event-gap:1px;--calendar-event-double-gap:2px}.calendar-head span,.calendar-head strong{min-height:30px;padding:8px 1px;font-size:10px}.calendar-body{height:600px;min-height:500px}.time-axis span{padding-right:2px;font-size:9px}.calendar-event{border-radius:4px;padding:2px 1px}.calendar-event span{display:none}}@media (width<=820px){html,#root{height:auto}body{min-height:100dvh;overflow:auto}.app-shell{min-height:100dvh}.filter-rail{z-index:60;scrollbar-gutter:auto;background:#fbfbfcfa;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px;max-height:calc(100dvh - 8px);padding:10px 12px;position:sticky;top:0;overflow-y:auto;box-shadow:0 9px 28px #181e2614}.brand-row{grid-column:1;gap:9px;min-height:36px}.brand-mark{border-radius:8px;width:34px;height:34px}.brand-row p{display:none}h1{font-size:17px}.mobile-filter-button{grid-column:2;width:40px;min-height:36px;padding:0;font-size:0}.mobile-filter-button svg{width:17px;height:17px}.page-switch,.search-box{grid-column:1/-1}.page-switch button{min-height:34px}.search-box{min-height:40px}.filter-rail:not(.filters-open) .planner-rail,.filter-rail:not(.filters-open) .rail-footer{display:none}.filter-rail.filters-open .control-group,.filter-rail.filters-open .planner-rail{grid-column:1/-1}.filter-rail.filters-open .planner-rail .control-group{display:grid}.workspace{gap:12px;padding:12px;overflow:visible}.workspace-page-header{grid-template-columns:minmax(0,1fr);gap:8px}.account-panel{width:100%;min-width:0;max-width:100%;min-height:42px;box-shadow:none;justify-self:stretch;padding:6px 8px}.account-user{width:100%;min-width:0}.account-user img,.account-avatar{width:28px;height:28px}.account-copy{min-width:0}.account-user span,.account-user small{display:none}.google-signin-wrap{width:168px;max-width:100%}.semester-nav-strip{gap:8px;min-height:0;padding:8px}.semester-title strong{font-size:16px}.semester-strip-stats{gap:6px}.semester-strip-stats>span{min-height:30px;padding:0 7px;font-size:11px}.topbar{margin-top:-2px}.kpi-strip{gap:8px}.metric-card{min-height:56px;padding:10px 11px}.metric-card strong{font-size:20px}.mode-row{overscroll-behavior-inline:contain;scrollbar-width:none;flex-wrap:nowrap;gap:8px;margin-inline:-2px;padding:0 2px 2px;overflow-x:auto}.mode-row::-webkit-scrollbar{display:none}.mode-pill,.toggle-chip{flex:none;min-height:36px}.content-grid{flex:none;grid-template-columns:minmax(0,1fr);gap:12px;height:auto;min-height:0}.ranking-panel{height:auto;overflow:visible}.detail-panel{min-height:0;max-height:none;overflow:visible}.ranking-panel,.detail-panel,.planner-page{scroll-margin-top:158px}.panel-heading,.detail-title{gap:8px;padding:12px;display:grid}.sort-label{line-height:1.35}.table-wrap{height:auto;max-height:none;overflow:visible}.ranking-panel th:nth-child(5),.ranking-panel td:nth-child(5),.ranking-panel th:nth-child(6),.ranking-panel td:nth-child(6){display:table-cell}.detail-meta,.detail-actions{padding:10px 12px}.description-section,.score-stack,.comments-section,.trend-chart,.course-reports-panel{padding:12px}.detail-stats,.planner-info-metrics{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:12px;padding-right:12px}.chart-row{grid-template-columns:minmax(0,1fr);gap:12px}.scatter{height:225px;padding:4px}.planner-layout{grid-template-columns:minmax(0,1fr);gap:12px;min-height:0}.planner-side{max-height:none;padding:10px;overflow:visible}.planner-info-title,.planner-info-actions,.planner-info-list,.planner-info-description,.planner-info-confidence,.planner-info-comments,.comparison-panel{padding-left:10px;padding-right:10px}}@media (width<=640px){.semester-strip-stats,.kpi-strip{overscroll-behavior-inline:contain;scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.semester-strip-stats::-webkit-scrollbar{display:none}.kpi-strip::-webkit-scrollbar{display:none}.semester-strip-stats>span{flex:none;min-width:104px}.kpi-strip .metric-card{flex:0 0 112px}.ranking-panel table,.ranking-panel tbody,.ranking-panel tr,.ranking-panel td{width:100%;display:block}.ranking-panel thead{display:none}.ranking-panel tbody{gap:10px;padding:10px;display:grid}.ranking-panel tr{background:#fff;border:1px solid #e6ebf0;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"course course score""hours rating sentiment""plan plan plan";gap:8px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffffe6}.ranking-panel tr:hover{background:snow}.ranking-panel tr.selected{background:#fff7f8;border-color:#a51c3057;box-shadow:0 0 0 1px #a51c3014}.ranking-panel td{color:#303741;border-bottom:0;padding:0}.ranking-panel td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:850;line-height:1;display:block}.ranking-panel td:first-child{grid-area:course}.ranking-panel td:first-child:before,.ranking-panel td:nth-child(2):before{display:none}.ranking-panel td:nth-child(2){grid-area:score;justify-self:end;width:auto}.ranking-panel td:nth-child(3),.ranking-panel td:nth-child(4),.ranking-panel td:nth-child(5){background:#fbfcfd;border:1px solid #edf0f3;border-radius:8px;gap:4px;min-width:0;padding:8px 9px;font-size:13px;font-weight:850;display:grid}.ranking-panel td:nth-child(3){grid-area:hours}.ranking-panel td:nth-child(4){grid-area:rating}.ranking-panel td:nth-child(5){grid-area:sentiment}.ranking-panel td:nth-child(6){grid-area:plan;padding-top:2px;display:block}.ranking-panel td:nth-child(6):before{margin-bottom:6px}.course-cell strong{flex-wrap:wrap;font-size:14px;line-height:1.25}.course-cell span{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.32;display:-webkit-box;overflow:hidden}.score-badge{min-width:42px;height:34px;font-size:13px}.score-badge.large{min-width:52px;height:44px;font-size:18px}.sentiment-pill{justify-self:start;height:24px}.table-actions{flex-wrap:wrap}.term-action{min-height:32px}.detail-title{grid-template-columns:minmax(0,1fr) auto}.detail-stats,.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.score-bar{grid-template-columns:minmax(88px,106px) 1fr 32px;gap:8px}.bar-list{padding:12px}.bar-row{grid-template-columns:68px 1fr 44px}.report-choice{flex-basis:min(190px,82%)}.recommendation-row,.compact-report-panel .recommendation-row{grid-template-columns:minmax(88px,1fr) minmax(52px,.8fr) 40px 28px}}@media (width<=560px){.filter-rail{grid-template-columns:minmax(0,1fr) auto}.workspace{padding:10px}.workspace-page-header{gap:7px}.semester-nav-strip{grid-template-columns:34px minmax(0,1fr) auto;padding:7px}.semester-nav-strip>.icon-action:first-child,.semester-nav-actions .icon-action{width:30px;height:30px}.semester-title strong{font-size:15px}.account-panel{min-height:38px}.google-signin-wrap{transform-origin:50%;transform:scale(.92)}.panel-heading h2,.detail-title h2{font-size:15px}.ranking-panel tbody{padding:8px}.ranking-panel tr{padding:10px}.calendar-panel{--calendar-time-axis-width:30px}.calendar-body{height:min(590px,100dvh - 210px);min-height:460px}.calendar-event strong{font-size:9px;line-height:1.05}.planner-course-row{gap:8px;padding:9px}.planner-info-title{grid-template-columns:minmax(0,1fr) 32px}.planner-info-actions{grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.schedule-source{text-align:left}}
