@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--app-font:"IBM Plex Sans", "Source Sans 3", "Segoe UI", Arial, sans-serif;--app-surface:#f5f6f8;--app-card:#fff;--card-elevated:#fff;--border-color:#e4e7ec;--border-focus:#c92c2c8c;--accent-color:#c92c2c;--accent-glow:#c92c2c26;--accent-soft:#fef2f2;--text-primary:#111827;--text-secondary:#4b5563;--text-muted:#6b7280;--shadow-raised:0 4px 18px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-inset:inset 1px 1px 3px #0000000d;--shadow-glow:0 0 15px #c92c2c33;--motion-instant:.18s;--motion-fast:.28s;--motion-state:.36s;--motion-content:.52s;--motion-travel:.72s;--motion-data:.95s;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-enter:cubic-bezier(.16, 1, .3, 1);--ease-exit:cubic-bezier(.7, 0, .84, 0);--ease-flow:cubic-bezier(.76, 0, .24, 1)}*{box-sizing:border-box}html,body,#root{background-color:var(--app-surface);height:100%;color:var(--text-primary);font-family:var(--app-font);margin:0}body{overflow:hidden}button,input,select,textarea{font-family:var(--app-font)}button{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.58}*{scrollbar-width:thin;scrollbar-color:#c0202a transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:linear-gradient(#d78d90,#c0202a) padding-box padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#e4a1a3,#e0322f) padding-box padding-box;border:2px solid #0000;border-radius:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.main-container{background:var(--app-surface);height:100vh;display:flex}.sidebar{border-right:1px solid var(--border-color);z-index:10;background:linear-gradient(#fff 0%,#f5f6f8 100%);flex-direction:column;gap:12px;width:clamp(320px,22vw,440px);height:100%;padding:20px 18px;display:flex;overflow:hidden;box-shadow:6px 0 24px #0f172a14}.sidebar-top{z-index:2;background:#fff;padding-bottom:8px;position:sticky;top:0}.logo-container{border-bottom:1px solid var(--border-color);justify-content:center;margin-bottom:12px;padding:4px 0 12px;display:flex}.logo{object-fit:contain;max-width:150px;height:auto}.view-mode-container{margin-bottom:8px}.sidebar-section,.sidebar-tab-panel,.sidebar-search-block{background:var(--app-card);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:12px;padding:14px;display:flex;box-shadow:0 1px 2px #0f172a0a}.sidebar-divider{background:var(--border-color);height:1px;margin:2px 0 4px}.sidebar-body{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow-x:clip}.sidebar-tabs,.segmented-control{background:#eef2f6;border-radius:10px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.sidebar-tabs button,.segmented-control button{min-height:34px;color:var(--text-muted);transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-enter);background:0 0;border:0;border-radius:8px;font-size:12px;font-weight:700}.sidebar-tabs button.active,.segmented-control button.active{color:var(--accent-color);background:#fff;box-shadow:0 1px 4px #0f172a14}.sidebar-tabs button:hover:not(.active),.segmented-control button:hover:not(.active):not(:disabled){color:var(--text-primary);background:#00000005}.field span,.sidebar-label,.sidebar-slider span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.field select,.search-box{width:100%;min-height:38px;color:var(--text-primary);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:#fff;border:1px solid #d8dee8;border-radius:8px;outline:none;padding:0 12px;font-size:13px}.field select:focus,.search-box:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px #c92c2c1a}.honors-toggle{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.honors-toggle input{accent-color:var(--accent-color);cursor:pointer}.sidebar-helper-text{color:var(--text-muted);text-align:center;margin:-2px 0 0;font-size:10px;font-style:italic}.sidebar-slider{color:var(--text-secondary);gap:4px;font-size:12px;display:grid}.sidebar-slider input{accent-color:var(--accent-color);cursor:pointer}.sidebar-slider b{color:var(--accent-color);justify-self:end;font-size:13px}.sidebar-threshold-display{color:var(--text-secondary);text-align:center;padding:2px 0;font-size:11px;font-weight:600}.search-box input{background:0 0;border:0;outline:0;width:100%;padding:0}.search-results{gap:6px;margin-top:8px;display:grid}.search-results button{border:1px solid var(--border-color);text-align:left;min-width:0;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter), box-shadow var(--motion-fast) var(--ease-standard);background:#f8f9fa;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:2px;padding:8px;display:grid}.search-results button:hover{background:var(--accent-soft);border-color:var(--border-focus)}.search-results strong{color:#0d6efd;font-size:13px;text-decoration:underline}.search-results span{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.content-wrapper{flex:1;min-width:0;height:100%;padding:22px;overflow-y:auto}.content-area{gap:18px;max-width:1700px;margin:0 auto;display:grid}.content-card{background:var(--app-card);border:1px solid var(--border-color);box-shadow:var(--shadow-raised);border-radius:12px;padding:20px}.dashboard-heading span{color:var(--accent-color);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700}.dashboard-heading h1{color:#111827;margin:6px 0 8px;font-size:clamp(30px,4vw,44px);font-weight:800;line-height:1.05}.dashboard-heading p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.metric-card{background:var(--app-card);border:1px solid var(--border-color);box-shadow:var(--shadow-raised);min-height:118px;transition:transform var(--motion-fast) var(--ease-enter);border-radius:12px;flex-direction:column;justify-content:space-between;padding:20px;display:flex}.metric-card:hover{transform:translateY(-2px)}.metric-card span:not(.animated-number),.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.metric-card strong,.metric-value{color:#4b5563;font-size:36px;font-weight:800}.metric-value .animated-number{font:inherit;color:inherit;letter-spacing:inherit;text-transform:none}.metric-card.warning strong,.metric-card.danger strong{color:var(--accent-color)}.metric-subtext{color:var(--text-secondary);margin-top:4px;font-size:11px}.highlights-section{gap:12px;display:grid}.section-title{color:#111827;margin:0;font-size:18px;font-weight:800}.highlight-text{color:var(--accent-color)}.highlights-card{border-top:3px solid #71717a}.highlights-card-critical{border-top-color:var(--accent-color)}.highlights-card-prereq{border-top-color:#f59e0b}.course-sections-stack{gap:16px;display:grid}.classification-card{background:var(--app-card);border:1px solid var(--border-color);box-shadow:var(--shadow-raised);border-radius:12px;overflow:hidden}.classification-header{text-align:left;width:100%;min-height:84px;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:12px;padding:16px;display:grid}.classification-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent-color);border-radius:10px;place-items:center;display:grid}.classification-title{flex-direction:column;gap:4px;display:flex}.classification-title strong{color:#111827;font-size:16px}.classification-title small{color:var(--text-secondary);font-size:12px}.classification-chevron{color:var(--text-muted);transition:transform var(--motion-content) var(--ease-flow)}.classification-card.open .classification-chevron{transform:rotate(180deg)}.bucket-container{background:#fff;border:1px solid #edf0f3;border-radius:10px;margin-top:12px;overflow:hidden;box-shadow:inset 2px 2px 6px #0f172a09,inset -2px -2px 6px #ffffffe6}.bucket-header-bar{background:linear-gradient(#fff 0%,#fbfbfc 100%);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.bucket-header-bar.open{border-bottom:1px solid #edf0f3}.bucket-toggle-button{color:#3f3f46;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.bucket-actions{align-items:center;gap:8px;display:flex}.course-table-wrap{border:1px solid var(--border-color);background:#fff;border-radius:8px;overflow-x:auto}.course-table{border-collapse:collapse;width:100%;font-size:13px}.course-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;background:#f8f9fa;padding:12px 14px;font-size:11px;font-weight:700}.course-table td{color:var(--text-secondary);border-bottom:1px solid #eef2f6;padding:12px 14px}.course-table tbody tr:hover{background:var(--accent-soft)}.code-link-btn{color:#0d6efd;cursor:pointer;transition:color var(--motion-instant) var(--ease-standard);background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.badge-link-btn{border:1px solid var(--border-color);color:#0d6efd;cursor:pointer;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:#f8f9fa;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:700;text-decoration:underline}.badge-link-btn:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color);box-shadow:0 0 8px var(--accent-glow);text-decoration:none}.neomorphic-btn-icon{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-secondary);transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-enter), transform var(--motion-fast) var(--ease-enter);background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 4px #00000005}.neomorphic-btn-icon:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color);box-shadow:0 4px 8px var(--accent-glow)}.table-skeleton,.chart-skeleton{background:#f3f4f6;border-radius:10px;min-height:260px;position:relative;overflow:hidden}.table-skeleton:after,.chart-skeleton:after{content:"";animation:skeletonSweep 1.6s var(--ease-standard) infinite;will-change:transform;background:linear-gradient(90deg,#f3f4f600 0%,#fff 50%,#f3f4f600 100%);position:absolute;inset:0;transform:translate(-100%)}@keyframes skeletonSweep{to{transform:translate(100%)}}.section-empty{color:var(--text-muted);text-align:center;padding:16px;font-size:12px}.modal-root{z-index:1000;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.course-modal{border:1px solid var(--border-color);background:#fff;border-radius:18px;width:min(1320px,96vw);max-height:92vh;padding:0;position:relative;overflow:auto;box-shadow:0 28px 80px #0f172a47}.course-modal-close-button{z-index:2;width:42px;height:42px;color:var(--accent-color);background:#fff;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:18px;right:18px;box-shadow:0 6px 18px #0f172a24}.course-modal-hero{border-bottom:1px solid var(--border-color);background:linear-gradient(#fff 0%,#f8f9fa 100%);padding:28px 72px 18px 28px}.course-modal-hero span{color:var(--accent-color);text-transform:uppercase;font-size:12px;font-weight:700}.course-modal-hero h2{color:#111827;margin:6px 0;font-size:42px}.course-modal-hero p{color:var(--text-secondary);margin:0}.course-modal-tabs{border-bottom:1px solid var(--border-color);background:#f8f9fa;gap:8px;padding:12px 18px;display:flex;overflow-x:auto}.course-modal-tabs button{min-height:38px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #0000;border-radius:999px;padding:0 14px;font-size:13px;font-weight:700}.course-modal-tabs button:hover{color:#111827;background:#fff}.course-modal-tabs button.active{background:var(--accent-color);color:#fff;box-shadow:0 4px 10px var(--accent-glow)}.modal-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:12px}.plot-host,.topology-canvas{border:1px solid var(--border-color);background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000005}.suggestion-widget{z-index:900;justify-items:end;gap:14px;display:grid;position:fixed;bottom:24px;right:24px}.suggestion-fab,.primary-action{color:#fff;cursor:pointer;min-height:46px;transition:transform var(--motion-fast) var(--ease-enter), box-shadow var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard);background:linear-gradient(#d3262f 0%,#b01c25 100%);border:0;border-radius:999px;align-items:center;gap:9px;padding:0 18px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 12px 28px #b01c254d}.suggestion-fab:hover,.primary-action:hover{filter:brightness(1.03);transform:translateY(-1px);box-shadow:0 16px 36px #b01c2561}.suggestion-fab-label{white-space:nowrap}.suggestion-panel{transform-origin:100% 100%;width:384px;max-width:calc(100vw - 32px);max-height:calc(100vh - 120px);animation:suggestionRise var(--motion-content) var(--ease-enter);background:#fff;border:1px solid #e8eaee;border-radius:16px;overflow-y:auto;box-shadow:0 28px 70px #0f172a42}.suggestion-panel.is-closing{animation:suggestionFall var(--motion-state) var(--ease-exit) forwards;pointer-events:none}@keyframes suggestionRise{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes suggestionFall{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.96)}}.suggestion-panel-header{background:linear-gradient(#fdf2f2 0%,#fff 100%);border-bottom:1px solid #eef1f5;border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.suggestion-panel-title{color:#16181d;letter-spacing:-.01em;margin:0;font-size:15px;font-weight:800}.suggestion-close-button{color:#b01c25;cursor:pointer;width:34px;height:34px;transition:background var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.suggestion-close-button:hover{color:#fff;background:#b01c25;transform:rotate(90deg)}.suggestion-panel-body{gap:12px;padding:16px 18px 18px;display:grid}.suggestion-panel-description{color:#6b7280;margin:0;font-size:12.5px;line-height:1.5}.suggestion-message-input{resize:vertical;min-height:118px;font:inherit;color:#16181d;background:#fff;border:1px solid #dfe3e8;border-radius:10px;width:100%;padding:12px;font-size:13px}.suggestion-contact-input{font:inherit;color:#16181d;background:#fff;border:1px solid #dfe3e8;border-radius:10px;width:100%;padding:11px 12px;font-size:13px}.suggestion-message-input:focus,.suggestion-contact-input:focus{border-color:#d3262f;outline:none;box-shadow:0 0 0 3px #d3262f1f}.suggestion-upload{cursor:pointer;text-align:center;color:#6b7280;width:100%;transition:border-color var(--motion-instant) var(--ease-standard), background var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:#fafbfc;border:1.5px dashed #d6dae0;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:18px 14px;display:flex}.suggestion-upload:hover{color:#b01c25;background:#fdf4f4;border-color:#d3262f}.suggestion-upload.is-drag{color:#b01c25;background:#fdeaea;border-color:#d3262f}.suggestion-upload-title{color:#374151;margin-top:2px;font-size:13px;font-weight:700}.suggestion-upload.is-drag .suggestion-upload-title,.suggestion-upload:hover .suggestion-upload-title{color:#b01c25}.suggestion-upload-subtitle{font-size:11.5px}.suggestion-upload-filename{color:#9ca3af;font-size:11.5px}.suggestion-image-preview-wrapper{background:#fafbfc;border:1px solid #e8eaee;border-radius:12px;gap:10px;padding:12px;display:grid}.suggestion-image-preview{object-fit:contain;background:#fff;border:1px solid #eef1f5;border-radius:8px;width:100%;max-height:200px}.suggestion-image-preview-meta{justify-content:space-between;align-items:center;font-size:12px;display:flex}.suggestion-preview-name{color:#374151;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:700;overflow:hidden}.suggestion-preview-size{color:#9ca3af}.suggestion-clear-image-button{cursor:pointer;color:#6b7280;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:#fff;border:1px solid #dfe3e8;border-radius:8px;justify-self:start;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.suggestion-clear-image-button:hover{color:#b01c25;background:#fdf4f4;border-color:#b01c25}.suggestion-submit-button{cursor:pointer;color:#fff;width:100%;min-height:44px;transition:transform var(--motion-instant) var(--ease-enter), box-shadow var(--motion-instant) var(--ease-standard), filter var(--motion-instant) var(--ease-standard);background:linear-gradient(#d3262f 0%,#b01c25 100%);border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:2px;font-size:13.5px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #b01c2542}.suggestion-submit-button:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}.suggestion-submit-button:disabled{opacity:.55;cursor:default}.suggestion-status-alert{border-radius:10px;padding:11px 12px;font-size:12.5px;font-weight:600;line-height:1.45}.suggestion-status-alert.is-success{color:#0f6b45;background:#e8f6ef;border:1px solid #b8e2cd}.suggestion-status-alert.is-error{color:#b01c25;background:#fdecec;border:1px solid #f4c9c9}.suggestion-disabled-notice{color:#b01c25;background:#fdf2f2;border:1px solid #f0d5d6;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12.5px;font-weight:600;line-height:1.45;display:flex}.suggestion-disabled-notice svg{flex:none;margin-top:1px}.suggestion-panel-body.is-disabled .suggestion-message-input,.suggestion-panel-body.is-disabled .suggestion-contact-input,.suggestion-panel-body.is-disabled .suggestion-upload,.suggestion-panel-body.is-disabled .suggestion-upload-filename{opacity:.5;cursor:not-allowed}@media (prefers-color-scheme:dark){.suggestion-panel{background:#16181c;border-color:#262a30}.suggestion-panel-header{background:linear-gradient(#211517 0%,#16181c 100%);border-color:#262a30}.suggestion-panel-title{color:#fff}.suggestion-panel-description{color:#d1d5db}.suggestion-message-input,.suggestion-contact-input{color:#fff;background:#1b1e23;border-color:#2c3038}.suggestion-message-input::placeholder,.suggestion-contact-input::placeholder{color:#9aa1ac}.suggestion-upload{color:#d1d5db;background:#1b1e23;border-color:#33383f}.suggestion-upload-title{color:#fff}.suggestion-upload-subtitle,.suggestion-upload-filename{color:#aeb4bd}.suggestion-image-preview-wrapper{background:#1b1e23;border-color:#2c3038}.suggestion-preview-name{color:#fff}.suggestion-preview-size{color:#aeb4bd}.suggestion-clear-image-button{color:#d1d5db;background:#1b1e23;border-color:#33383f}.suggestion-disabled-notice{color:#f3b0b4;background:#2a1618;border-color:#4a2529}}@media (max-width:1200px){.metric-grid{grid-template-columns:1fr}}@media (max-width:820px){body{overflow:auto}.main-container{height:auto;display:block}.sidebar{width:auto;height:auto;box-shadow:none;border-radius:0}.content-wrapper{height:auto;padding:16px}}.modal-root{z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;position:absolute;inset:0}.course-modal{z-index:1;color:#111827;background:#fff;border:none;border-radius:20px;flex-direction:column;width:min(1180px,94vw);max-height:calc(100vh - 100px);display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.course-modal-layout{flex:auto;gap:0;height:100%;min-height:0;display:flex}.course-modal-sidebar{color:#fff;background:linear-gradient(135deg,#c92c2c 0%,#a82525 100%);border-top-left-radius:20px;border-bottom-left-radius:20px;flex-direction:column;flex:0 0 30%;min-width:260px;max-width:30%;min-height:0;padding:20px;display:flex;overflow:hidden}.course-modal-sidebar-content{color:#fff;scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;background:0 0;border-radius:12px;flex:1;margin-top:16px;padding:12px 8px 4px;overflow-y:auto}.exec-summary-banner{color:#fff;background:0 0;margin-bottom:0;padding:0}.exec-summary-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.exec-title{color:#fff;letter-spacing:-.3px;margin:0 0 8px;font-size:22px;font-weight:700;line-height:1.3}.exec-course-code{color:#fff;font-weight:800}.exec-summary-body{flex-direction:column;gap:12px;margin-top:12px;display:flex}.exec-meta-label{text-transform:uppercase;letter-spacing:1.2px;opacity:.85;margin-bottom:3px;font-size:11px;font-weight:600}.exec-meta-value{font-size:16px;font-weight:700}.sidebar-info{color:#fff}.sidebar-section-title{color:#fff;border-bottom:2px solid #ffffff4d;margin:0 0 12px;padding-bottom:8px;font-size:15px;font-weight:700}.sidebar-info-label{text-transform:uppercase;letter-spacing:1px;color:#ffffffd9;margin-bottom:4px;font-size:11px;font-weight:700}.sidebar-info-value{color:#fffffff2;font-size:13px;font-weight:500}.sidebar-badge-link{color:#fff;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:6px;margin:2px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.sidebar-badge-link:hover{background:#ffffff59;transform:translateY(-1px)}.course-modal-main{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c92c2c8c transparent;background:#fff;border-left:1px solid #f1f5f9;flex-direction:column;flex:auto;min-width:0;height:100%;min-height:0;max-height:100%;display:flex;overflow-y:auto}.analytics-tabs{background:#f8f9fa;border-bottom:3px solid #e5e7eb;flex-shrink:0;gap:0;padding:0;display:flex}.analytics-tabs button{color:#6b7280;transition:color var(--motion-state) var(--ease-standard), border-color var(--motion-state) var(--ease-standard), background var(--motion-state) var(--ease-standard);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;align-items:center;gap:6px;margin-bottom:-3px;padding:14px 20px;font-size:13px;font-weight:700;display:flex}.analytics-tabs button.active{color:#c92c2c;background:#fff;border-bottom-color:#c92c2c;font-weight:800}.tab-content-area{flex:1;padding:24px 28px 32px;overflow-y:auto}.tab-content-wrapper{animation:none}.tab-section-title{color:#1f2937;border-bottom:3px solid #e5e7eb;margin:24px 0 20px;padding-bottom:12px;font-size:20px;font-weight:700}.tab-section-title:first-child{margin-top:0}.tab-description{color:#6b7280;margin-bottom:24px;font-size:15px;line-height:1.7}.chart-card{transition:border-color var(--motion-state) var(--ease-standard), box-shadow var(--motion-state) var(--ease-enter), transform var(--motion-state) var(--ease-enter);background:#fff;border:2px solid #e5e7eb;border-radius:16px;width:100%;overflow:hidden}.chart-title{color:#1f2937;margin:0 0 6px;font-size:17px;font-weight:700}.chart-description{color:#6b7280;margin:0;font-size:13px;line-height:1.5}.chart-help-section{margin-top:8px}.chart-help-btn{color:#6b7280;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:flex}.chart-help-btn:hover{color:#c92c2c;background:#fef2f2;border-color:#c92c2c}.chart-help-text{color:#6b7280;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;padding:12px 16px;font-size:13px;line-height:1.6}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{transition:border-color var(--motion-state) var(--ease-standard), box-shadow var(--motion-state) var(--ease-enter), transform var(--motion-state) var(--ease-enter);background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:18px;position:relative;overflow:hidden}.kpi-card:before{content:"";height:4px;transition:height var(--motion-state) var(--ease-enter);background:linear-gradient(90deg,#c92c2c,#8b1e1e);position:absolute;top:0;left:0;right:0}.kpi-card:hover{border-color:#c92c2c;transform:translateY(-2px);box-shadow:0 8px 24px #c92c2c1f}.kpi-card--critical:before{background:linear-gradient(90deg,#ef4444,#dc2626)}.kpi-card--critical{background:linear-gradient(135deg,#fef2f2 0%,#fff 100%);border-color:#fecaca}.kpi-label{color:#6b7280;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:12px;font-weight:700}.kpi-value{color:#1f2937;margin-bottom:4px;font-size:28px;font-weight:800;line-height:1}.kpi-subtitle{color:#9ca3af;margin-bottom:4px;font-size:11px;font-weight:600}.kpi-description{color:#6b7280;margin-top:6px;font-size:12px;line-height:1.5}.section-table-wrap{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.section-table{border-collapse:collapse;width:100%;font-size:13px}.section-table thead{background:linear-gradient(135deg,#fef2f2 0%,#f9fafb 100%)}.section-table th{color:#374151;text-align:left;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb;padding:12px 14px;font-size:12px;font-weight:700}.section-table td{color:#374151;border-bottom:1px solid #f3f4f6;padding:10px 14px}.section-table tbody tr:hover{background:#fef2f2}.section-table .dfw-high{color:#c92c2c;font-weight:700}.modal-empty{color:#9ca3af;background:#fbfbfc;border:1px solid #edf0f3;border-radius:12px;justify-content:center;align-items:center;min-height:120px;padding:40px;font-size:14px;display:flex}.course-modal-close-btn{z-index:100;color:#fff;cursor:pointer;width:32px;height:32px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff3;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.course-modal-close-btn:hover{background:#ffffff59;transform:rotate(90deg)}@media (max-width:900px){.course-modal-layout{flex-direction:column}.course-modal-sidebar{border-radius:20px 20px 0 0;flex:none;min-width:auto;max-width:100%;padding:16px}.course-modal-main{border-left:none}.analytics-tabs{overflow-x:auto}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.content-card,.metric-card,.classification-card,.chart-card,.sidebar-section,.sidebar-tab-panel,.bucket-container{box-shadow:8px 8px 18px #0f172a12,-8px -8px 18px #ffffffe6}.course-modal{box-shadow:24px 24px 70px #0f172a3d,-18px -18px 42px #ffffffbf}.instructor-trend-panel{gap:12px;display:grid}.instructor-trend-control{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;gap:8px;padding:14px 18px;display:grid;box-shadow:inset 2px 2px 5px #0f172a0a,inset -2px -2px 6px #fffffff2}.instructor-trend-control span{color:#6b7280;text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:700}.instructor-trend-control select{color:#111827;background:#fff;border:1px solid #d8dee8;border-radius:10px;outline:none;width:min(680px,100%);min-height:40px;padding:0 12px;font-size:13px;font-weight:600}.instructor-trend-control select:focus{border-color:#c92c2c8c;box-shadow:0 0 0 3px #c92c2c1a}@media (max-width:720px){.analytics-tabs button{padding:12px 14px;font-size:12px}.tab-content-area{padding:18px}}:root{--app-surface:#eef1f5;--app-card:#f8fafc;--border-color:#dce3ec;--text-secondary:#475569;--text-muted:#64748b;--shadow-raised:10px 10px 24px #0f172a14, -10px -10px 24px #ffffffe6;--shadow-soft:6px 6px 16px #0f172a11, -6px -6px 16px #ffffffeb;--shadow-pressed:inset 3px 3px 7px #0f172a0f, inset -3px -3px 8px #fffffff2}.sidebar{background:#eef1f5;border-right:1px solid #94a3b847;gap:14px;width:clamp(300px,20vw,360px);padding:18px 16px;box-shadow:10px 0 28px #0f172a12}.sidebar-top{background:#eef1f5}.logo-container{border-bottom-color:#94a3b840;margin-bottom:10px;padding:16px 0 14px}.logo{max-width:128px}.sidebar-section,.sidebar-tab-panel,.sidebar-search-block{box-shadow:var(--shadow-soft);background:#f8fafc;border:1px solid #94a3b83d;border-radius:16px;gap:14px;padding:16px}.sidebar-tabs,.segmented-control{box-shadow:var(--shadow-pressed);background:#e9edf3;border:1px solid #94a3b838;border-radius:14px}.sidebar-tabs button,.segmented-control button{border-radius:11px;min-height:38px;font-size:12px}.field select,.search-box,.instructor-trend-control select{background:#f8fafc;border-radius:12px;min-height:42px;box-shadow:inset 2px 2px 6px #0f172a0b,inset -2px -2px 7px #fffffff2}.content-wrapper{padding:clamp(24px,2.2vw,36px)}.content-area{gap:24px;max-width:1480px}.content-card,.metric-card,.classification-card,.chart-card,.bucket-container{box-shadow:var(--shadow-raised);background:#f8fafc;border:1px solid #94a3b83d;border-radius:18px}.content-card{padding:clamp(22px,2vw,30px)}.dashboard-heading h1{margin:8px 0 10px;font-size:clamp(28px,3.2vw,40px);line-height:1.08}.dashboard-heading p{max-width:860px;font-size:15px}.metric-grid{gap:22px}.metric-card{min-height:126px;padding:22px}.metric-card strong,.metric-value{font-size:clamp(30px,3vw,40px)}.course-sections-stack{gap:22px}.classification-header{grid-template-columns:48px minmax(0,1fr) 24px;gap:16px;min-height:96px;padding:20px 22px}.classification-icon{width:48px;height:48px;box-shadow:var(--shadow-pressed);border-radius:14px}.classification-title strong{font-size:17px}.classification-title small{max-width:760px;font-size:13px;line-height:1.45}.classification-body{padding:6px 22px 22px}.bucket-container{background:#f8fafc;border-radius:15px;margin-top:16px}.bucket-header-bar{background:0 0;padding:14px 16px}.bucket-toggle-button{font-size:14px}.bucket-table-content{padding:14px}.course-table-wrap,.section-table-wrap{background:#fff;border-radius:14px}.course-table{font-size:12.5px}.course-table th{background:#f5f7fa;padding:14px 16px}.course-table td{padding:13px 16px;line-height:1.35}.modal-root{background:#0f172a1f;padding:28px}.course-modal{background:#f8fafc;border-radius:24px;width:min(1820px,100vw - 40px);max-height:calc(100vh - 48px);box-shadow:28px 28px 90px #0f172a47,-14px -14px 36px #ffffff6b}.course-modal-layout{min-height:min(860px,100vh - 48px)}.course-modal-sidebar{background:linear-gradient(160deg,#b91f2b 0%,#8f1d24 100%);border-radius:24px 0 0 24px;flex-basis:320px;min-width:300px;max-width:320px;padding:28px 24px}.course-modal-sidebar-content{margin-top:22px;padding:12px 4px 4px 0}.exec-title{font-size:20px;line-height:1.35}.sidebar-info-row{margin-bottom:18px}.sidebar-info-description{font-size:13px;line-height:1.65}.sidebar-badge-link{border-radius:999px;padding:5px 10px}.course-modal-main{background:#f8fafc;border-left:0}.analytics-tabs{background:#f8fafc;border-bottom:0;gap:8px;padding:14px 18px 0;position:relative;box-shadow:inset 0 -1px #94a3b82e}.analytics-tabs button{letter-spacing:0;text-transform:none;border:1px solid #0000;border-bottom:0;border-radius:14px 14px 0 0;min-height:44px;padding:0 18px;font-size:12px}.analytics-tabs button.active{color:#b91f2b;background:#fff;border-color:#94a3b838;box-shadow:5px -5px 14px #ffffffb8,-3px 0 8px #0f172a0a}.tab-content-area{background:#fff;padding:32px 36px 40px;overflow-x:hidden}.tab-section-title{border-bottom:1px solid #e5eaf0;margin:30px 0 22px;padding-bottom:10px;font-size:19px}.tab-description{max-width:920px;margin-top:-10px;font-size:14px;line-height:1.6}.chart-grid-single{margin-bottom:34px}.chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;overflow:visible;box-shadow:0 10px 28px #0f172a11}.chart-title{margin-bottom:7px;font-size:16px}.chart-description{max-width:840px;font-size:13px;line-height:1.55}.plot-host,.topology-canvas{box-shadow:none;background:#fff;border:0;border-radius:14px}.chart-controls-container{background:#f8fafc;border-bottom:1px solid #edf2f7}.demographic-filter-panel{margin-bottom:24px}@media (max-width:1180px){.course-modal-sidebar{flex-basis:280px;min-width:260px;max-width:280px}.tab-content-area{padding:26px}}@media (max-width:900px){.course-modal{width:min(100vw - 24px,760px);max-height:calc(100vh - 24px)}.course-modal-layout{min-height:auto}.course-modal-sidebar{border-radius:24px 24px 0 0;max-width:100%}.chart-card-body{padding:18px}}.chart-card-body{min-height:0;padding:18px 20px 20px}.chart-frame{width:100%;position:relative}.chart-frame svg{font-family:var(--chart-font,"IBM Plex Sans", "Segoe UI", Inter, sans-serif)}.recharts-surface{overflow:visible}:root{--chart-font:"IBM Plex Sans", "Segoe UI", Inter, sans-serif}.chart-empty{text-align:center;color:#94a3b8;background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 10px,#f6f8fa 10px 20px);border-radius:12px;justify-content:center;align-items:center;padding:32px 20px;font-size:13px;font-weight:500;display:flex}.chart-tip{color:#f8fafc;pointer-events:none;background:#0f172af5;border-radius:10px;min-width:150px;padding:10px 12px;font-size:12px;line-height:1.5;box-shadow:0 12px 30px #0f172a47}.chart-tip-title{color:#fff;margin-bottom:6px;font-size:12.5px;font-weight:700}.chart-tip-row{align-items:center;gap:8px;display:flex}.chart-tip-dot{border-radius:50%;flex:none;width:9px;height:9px}.chart-tip-label{color:#cbd5e1}.chart-tip-value{color:#fff;font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.chart-legend{color:#475569;flex-wrap:wrap;gap:18px;padding:4px 4px 14px;font-size:12px;font-weight:600;display:flex}.chart-legend-item{align-items:center;gap:7px;display:inline-flex}.chart-legend-muted{color:#94a3b8;font-weight:500}.chart-legend-swatch{border-radius:4px;width:12px;height:12px}.chart-legend-ramp{background:linear-gradient(90deg,#10b981,#84cc16,#f59e0b,#f97316,#e0322f);border-radius:2px;width:44px;height:10px}.chart-more-note{color:#94a3b8;text-align:right;padding:8px 4px 2px;font-size:11.5px;font-weight:500}.chart-inline-control{flex-wrap:wrap;align-items:center;gap:10px;padding:0 4px 14px;display:flex}.chart-inline-control label{color:#475569;font-size:12px;font-weight:600}.chart-inline-control select{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #d8dee7;border-radius:9px;min-width:240px;max-width:100%;padding:7px 12px;font-size:13px}.chart-inline-control select:focus{border-color:#c0202a;outline:none;box-shadow:0 0 0 3px #c0202a1f}.chart-instr-select{max-width:420px;padding:0 4px 14px}.d3-node{cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard)}.d3-node:hover{opacity:.82}.demographics-accordion-container{margin-bottom:20px;box-shadow:0 1px 2px #0f172a0a;background:#fff!important;border:1px solid #e6e9ee!important;border-radius:14px!important;overflow:visible!important}.demographics-panel-header{border-radius:14px 14px 0 0;background:#fbfcfd!important}.demographics-panel-header h3{color:#0f172a!important}.filter-strip-count{color:#64748b;font-size:12.5px}.filter-field-label{color:#64748b!important}.demographics-accordion-container,.demographics-panel-header{border-radius:0!important}.modal-backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#11131861!important}.course-modal{flex-direction:column;display:flex;background:#fff!important;border:1px solid #e6e9ee!important;border-radius:0!important;width:min(1660px,95vw)!important;height:min(90vh,960px)!important;max-height:88vh!important;overflow:hidden!important;box-shadow:0 30px 90px #0f172a57!important}.cm{flex-direction:column;flex:auto;min-height:0;display:flex}.cm-close{z-index:20;color:#1f2937;cursor:pointer;width:38px;height:38px;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #e2e6ec;border-radius:0;place-items:center;display:grid;position:absolute;top:14px;right:16px}.cm-close:hover{color:#fff;background:#e0322f;border-color:#e0322f}.cm-header{background:#fff;border-bottom:1px solid #eef1f5;flex-shrink:0;padding:22px 64px 18px 28px}.cm-code{letter-spacing:1px;color:#e0322f;text-transform:uppercase;font-size:12px;font-weight:800}.cm-name{color:#111318;margin:4px 0 10px;font-size:24px;font-weight:800;line-height:1.2}.cm-meta{flex-wrap:wrap;gap:8px;display:flex}.cm-meta-item{color:#475569;background:#f4f6f9;border:1px solid #e6e9ee;padding:4px 10px;font-size:12px;font-weight:600}.cm-meta-strong{color:#e0322f;background:#fdecec;border-color:#f7c9c9}.cm-tabs{background:#fbfcfd;border-bottom:2px solid #eef1f5;flex-shrink:0;gap:0;display:flex;overflow-x:auto}.cm-tabs button{color:#64748b;cursor:pointer;white-space:nowrap;transition:color var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard);background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;margin-bottom:-2px;padding:13px 20px;font-size:13px;font-weight:700;display:inline-flex}.cm-tabs button:hover{color:#111318}.cm-tabs button.active{color:#e0322f;border-bottom-color:#e0322f}.cm-content{background:#f7f8fa;flex:auto;min-height:0;padding:22px 28px 30px;position:relative;overflow-y:scroll}.cm-fetching{z-index:30;background:#f7f8fa99;place-items:center;display:grid;position:absolute;inset:0}.cm-spinner{border:3px solid #e0322f26;border-top-color:#e0322f;border-radius:50%;width:30px;height:30px;animation:1.1s linear infinite spin}.cm-about{background:#fff;border:1px solid #e6e9ee;grid-template-columns:1.618fr 1fr;gap:20px;margin-bottom:22px;padding:20px 22px;display:grid}.cm-label{letter-spacing:.6px;text-transform:uppercase;color:#94a3b8;margin-bottom:8px;font-size:11px;font-weight:800}.cm-about-desc p{color:#374151;margin:0;font-size:14px;line-height:1.7}.cm-hours{color:#64748b;gap:16px;margin-top:12px;font-size:12px;display:flex}.cm-hours span{align-items:center;gap:5px;display:inline-flex}.cm-about-rel{border-left:1px solid #eef1f5;flex-direction:column;gap:16px;padding-left:20px;display:flex}.cm-rel-block .cm-count{color:#e0322f;background:#fdecec;margin-left:6px;padding:1px 7px;font-weight:700;display:inline-block}.cm-chip-row{flex-wrap:wrap;gap:6px;display:flex}.cm-chip{color:#1f2937;cursor:pointer;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:#f4f6f9;border:1px solid #e2e6ec;padding:4px 9px;font-size:11.5px;font-weight:700}.cm-chip:hover{color:#fff;background:#e0322f;border-color:#e0322f}.cm-none{color:#94a3b8;font-size:13px}.chart-card{margin-bottom:22px;box-shadow:none!important;border:1px solid #e6e9ee!important;border-radius:0!important}.chart-card:hover{border-color:#e0322f!important;box-shadow:0 6px 22px #e0322f14!important}.chart-card-header{background:#fff!important;border-bottom:1px solid #eef1f5!important;padding:16px 20px!important}.chart-title{font-size:15px!important}.cm-grid-2{flex-direction:column;gap:22px;display:flex}@media (max-width:1080px){.cm-about{grid-template-columns:1fr}.cm-about-rel{border-left:none;padding-left:0}}.collapse{transition:grid-template-rows var(--motion-content) var(--ease-flow);grid-template-rows:0fr;display:grid}.collapse[data-open=true]{grid-template-rows:1fr}.collapse-inner{min-height:0;overflow:hidden}.collapse[data-open=true]>.collapse-inner{overflow:visible}.grade-group-controls{background:#fbfcfd;border-top:1px solid #eef1f5;border-bottom:1px solid #eef1f5;padding:16px 20px}.ggc-title{color:#111318;font-size:13px;font-weight:800}.ggc-sub{color:#64748b;margin-top:2px;margin-bottom:12px;font-size:11px}.ggc-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.ggc-field{flex-direction:column;gap:4px;display:flex}.ggc-field>label{color:#475569;font-size:11px;font-weight:700}.ggc-field input[type=text]{border:1px solid #d8dee7;border-radius:0;min-width:160px;padding:7px 10px;font-size:12px}.ggc-grades{flex:260px}.ggc-grade-box{background:#fff;border:1px solid #d8dee7;flex-wrap:wrap;gap:6px;max-height:76px;padding:6px;display:flex;overflow-y:auto}.ggc-grade{cursor:pointer;background:#f3f4f6;border:1px solid #0000;align-items:center;gap:4px;padding:2px 7px;font-size:11px;display:inline-flex}.ggc-grade input{display:none}.ggc-grade.on{color:#e0322f;background:#fdecec;border-color:#e0322f;font-weight:700}.ggc-add{color:#fff;cursor:pointer;background:#e0322f;border:none;padding:8px 16px;font-size:12px;font-weight:700}.ggc-clear{color:#374151;cursor:pointer;background:#fff;border:1px solid #d8dee7;padding:7px 16px;font-size:12px;font-weight:700}.ggc-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.ggc-tag{color:#e0322f;background:#fdecec;border:1px solid #f7c9c9;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.ggc-tag button{color:#e0322f;cursor:pointer;background:0 0;border:none;font-size:11px}.course-modal-layout{flex:auto;height:100%;min-height:0;flex-direction:row!important;display:flex!important}.course-modal-sidebar{flex-direction:column;min-height:0;display:flex;color:#fff!important;background:linear-gradient(160deg,#c0202a 0%,#921a20 100%)!important;border-radius:0!important;flex:0 0 320px!important;min-width:280px!important;max-width:320px!important;padding:26px 22px!important}.sidebar-code{letter-spacing:1.2px;opacity:.85;text-transform:uppercase;font-size:12px;font-weight:800}.sidebar-name{color:#fff;margin:6px 0 16px;font-size:21px;font-weight:800;line-height:1.25}.sidebar-meta{border-bottom:1px solid #fff3;flex-direction:column;gap:9px;padding-bottom:16px;display:flex}.sidebar-meta-row{justify-content:space-between;gap:12px;font-size:12.5px;display:flex}.sidebar-meta-k{opacity:.82;font-weight:600}.sidebar-meta-v{text-align:right;font-weight:700}.sidebar-scroll{flex:1;margin-top:16px;padding-right:6px;overflow-y:auto}.sidebar-block{margin-bottom:18px}.sidebar-info-label{letter-spacing:.6px;text-transform:uppercase;opacity:.82;margin-bottom:8px;font-size:11px;font-weight:800}.sidebar-info-description{color:#ffffffeb;margin:0;font-size:13px;line-height:1.65}.sidebar-info-value{opacity:.9;font-size:13px}.sidebar-hours{flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.sidebar-hours span{align-items:center;gap:5px;display:inline-flex}.sidebar-chip-row{flex-wrap:wrap;gap:6px;display:flex}.sidebar-chip{color:#fff;cursor:pointer;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:#ffffff24;border:1px solid #ffffff4d;padding:4px 9px;font-size:11.5px;font-weight:700}.sidebar-chip:hover{color:#c0202a;background:#fff;border-color:#fff}.sidebar-chip--text{cursor:default;opacity:.85;background:#ffffff12;border-style:dashed;font-weight:600}.sidebar-chip--text:hover{color:#fff;background:#ffffff12;border-color:#ffffff4d}.sidebar-chip-more{opacity:.85;align-self:center;font-size:11px}.sidebar-count{background:#fff3;margin-left:6px;padding:1px 7px;font-weight:700}.course-modal-main{background:#fff;flex-direction:column;min-width:0;min-height:0;display:flex;border-left:none!important;flex:auto!important}.analytics-tabs{flex-shrink:0;display:flex;background:#fbecec!important;border-bottom:none!important;overflow-x:visible!important}.analytics-tabs button{color:#8a6a6b;cursor:pointer;white-space:nowrap;flex:auto;justify-content:center;align-items:center;gap:8px;min-width:0;margin-bottom:0;padding:0 14px;font-size:12.5px;font-weight:700;display:inline-flex;background:0 0!important;border:none!important;border-radius:11px!important}.analytics-tabs button svg{flex:none}.analytics-tabs button:hover{color:#c0202a}.analytics-tabs button.active{color:#fff!important;background:0 0!important;border-bottom-color:#0000!important}.tab-content-area{background:#f7f8fa;flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;padding:0!important;overflow:hidden!important}.tab-content-track{will-change:transform;width:400%;height:100%;display:flex}.tab-content-pane{box-sizing:border-box;scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;will-change:transform, opacity;flex-shrink:0;width:25%;height:100%;padding:22px 26px 30px!important;overflow-y:auto!important}.chart-title{border-left:3px solid #c0202a;padding-left:11px}.course-modal{border-radius:16px!important}.course-modal-sidebar{border-radius:16px 0 0 16px!important}.cm-close{border-radius:10px!important}.chart-card{border-radius:13px!important}.chart-card-header{background:linear-gradient(#fdf2f2 0%,#fff 72%)!important;border-radius:13px 13px 0 0!important}.chart-help-btn,.chart-help-text{border-radius:8px!important}.cm-meta-item,.cm-chip,.sidebar-chip{border-radius:7px!important}.sidebar-count,.cm-count{border-radius:6px!important}.demographics-accordion-container{border-radius:12px!important}.demographics-panel-header{border-radius:12px 12px 0 0!important}.ggc-field input[type=text],.ggc-add,.ggc-clear,.ggc-grade-box,.ggc-grade,.ggc-tag{border-radius:8px!important}.grade-group-controls{border-radius:0}.cm-spinner{border-radius:50%!important}.analytics-tabs button{border-radius:11px!important}.collapse{transition:grid-template-rows var(--motion-content) var(--ease-flow)}.collapse-inner{opacity:.35;transition:opacity var(--motion-state) var(--ease-standard)}.collapse[data-open=true]>.collapse-inner{opacity:1}.sidebar-meta{gap:0!important}.sidebar-field{border-bottom:1px solid #ffffff24;flex-direction:column;gap:2px;padding:9px 0;display:flex}.sidebar-field:last-child{border-bottom:none}.sidebar-field-k{letter-spacing:.6px;text-transform:uppercase;opacity:.72;font-size:10.5px;font-weight:700}.sidebar-field-v{font-size:13.5px;font-weight:700;line-height:1.35}.net-flow{stroke:#c0202a;stroke-width:1.8px;fill:none;stroke-linecap:round;stroke-dasharray:5 11;pointer-events:none}.net-legend{border-top:1px solid #eef1f5;flex-wrap:wrap;gap:10px 16px;margin-top:6px;padding:12px 6px 2px;display:flex}.net-legend-item{color:#475569;align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:inline-flex}.net-legend-dot{border-radius:50%;flex:none;width:10px;height:10px}.course-modal{border:none!important}.course-modal-main{border-left:none!important}.analytics-tabs{gap:4px;padding:6px!important}.analytics-tabs button.active{box-shadow:none;color:#fff!important;background:0 0!important;border-bottom-color:#0000!important}.analytics-tabs button:hover:not(.active){color:#c0202a;background:0 0}.tab-content-pane{scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-backdrop{-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}.chart-legend-wrap{justify-content:center;margin:2px 0 14px;display:flex}.chart-legend-box{background:#fff;border:1px solid #e6e9ee;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:7px 15px;display:inline-flex;box-shadow:0 1px 3px #0f172a0d}.lg-item{color:#374151;align-items:center;gap:7px;font-size:12px;font-weight:600;display:inline-flex}.lg-square{border-radius:3px;flex:none;width:13px;height:13px}.lg-dot{border-radius:50%;flex:none;width:12px;height:12px}.lg-line{border-radius:2px;flex:none;width:22px;height:3px}.lg-dash{border-top:2px dashed;flex:none;width:22px;height:0}.lg-label{white-space:nowrap}.lg-item-chip{gap:0}.lg-chip{white-space:nowrap;letter-spacing:.01em;color:#c0202a;background:#fdecec;border:1px solid #f3c6c8;border-radius:999px;align-items:center;padding:2px 9px;font-size:11px;font-weight:700;display:inline-flex}.chart-with-bar{align-items:stretch;gap:16px;display:flex}.chart-with-bar>.chart-frame{flex:auto;min-width:0}.colorbar{flex-direction:column;flex:none;align-items:center;width:70px;padding-top:6px;display:flex}.colorbar-title{color:#475569;text-align:center;margin-bottom:10px;font-size:10.5px;font-weight:700;line-height:1.2}.colorbar-body{flex:1;gap:7px;min-height:220px;display:flex}.colorbar-gradient{border:1px solid #0f172a14;border-radius:4px;width:16px;height:100%}.colorbar-ticks{color:#64748b;flex-direction:column;justify-content:space-between;font-size:10px;font-weight:600;display:flex}.course-modal{width:min(1720px,86vw)!important}.cm-close{z-index:40;cursor:pointer;width:38px;height:38px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);place-items:center;display:grid;position:absolute;top:26px;right:22px;box-shadow:0 2px 8px #0f172a1a;color:#c0202a!important;background:#fff!important;border:1px solid #ecd3d5!important;border-radius:50%!important}.cm-close:hover{transform:rotate(90deg);color:#fff!important;background:#c0202a!important;border-color:#c0202a!important}.cm-back{z-index:41;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:34px;transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter), border-color var(--motion-fast) var(--ease-standard);background:#ffffff24;border:1px solid #ffffff8c;border-radius:18px;align-items:center;gap:6px;padding:0 13px 0 10px;font-size:12.5px;font-weight:700;display:inline-flex;position:absolute;top:26px;left:22px}.cm-actions{z-index:41;background:#fff;border:1px solid #eadadb;border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex;position:absolute;top:22px;right:20px;box-shadow:0 4px 14px #0f172a1a}.cm-act{color:#b01c25;cursor:pointer;width:34px;height:34px;transition:background var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.cm-act:hover:not(:disabled){color:#fff;background:#b01c25}.cm-act-close:hover{transform:rotate(90deg)}.cm-act:disabled{opacity:.55;cursor:default}.cm-act-share.is-copied{color:#12855a}.cm-act-share.is-error{color:#b91c1c}.cm-act-divider{background:#eadadb;width:1px;height:18px;margin:0 1px}.cm-act-toast{white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700;position:absolute;top:46px;right:2px;transform:translateY(-4px);box-shadow:0 6px 16px #0f172a24}.cm-act-toast.show{opacity:1;transform:translateY(0)}.cm-act-toast.ok{color:#12855a;border:1px solid #cdebdc}.cm-act-toast.err{color:#b91c1c;border:1px solid #f0c9c9}.cm-share{z-index:41;color:#c0202a;cursor:pointer;width:38px;height:38px;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #ecd3d5;border-radius:50%;place-items:center;display:grid;position:absolute;top:26px;right:72px;box-shadow:0 2px 8px #0f172a1a}.cm-share:hover{color:#fff;background:#c0202a;border-color:#c0202a;transform:translateY(-1px)}.cm-share:disabled{opacity:.65;cursor:default;transform:none}.cm-share.is-copied{color:#fff;background:#12855a;border-color:#12855a}.cm-share.is-error{color:#fff;background:#b91c1c;border-color:#b91c1c}.cm-share-toast{white-space:nowrap;color:#12855a;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #cdebdc;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700;position:absolute;top:50%;right:46px;transform:translateY(-50%)translate(6px);box-shadow:0 4px 14px #0f172a1f}.cm-share.is-copied .cm-share-toast{opacity:1;transform:translateY(-50%)translate(0)}.cm-share.is-error .cm-share-toast{opacity:1;color:#b91c1c;border-color:#f0c9c9;transform:translateY(-50%)translate(0)}.analytics-tabs{margin:18px 104px 8px 20px!important;padding:6px!important}.course-modal{background:linear-gradient(160deg,#c0202a 0%,#921a20 100%)!important}.course-modal-main{background:#fff!important}.tab-content-area{background:#f7f8fa!important}.enroll-perf-scroll-host{background:#fff;border:1px solid #eef1f5;border-radius:10px}.hier-chart{font-family:var(--app-font);font-size:13px}.hier-legend{background:#f8f9fb;border:1px solid #eef1f5;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:10px 14px;display:flex}.hier-legend-items{color:var(--text-secondary);gap:16px;font-size:11.5px;display:flex}.hier-legend-item{align-items:center;gap:5px;display:flex}.hier-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.hier-summary{color:var(--text-muted);gap:6px;font-size:11px;font-weight:500;display:flex}.hier-col-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid #eef1f5;align-items:center;padding:6px 16px;font-size:10.5px;font-weight:600;display:flex}.hier-col-name{flex:1;min-width:0}.hier-col-bar{text-align:center;flex-shrink:0;width:180px}.hier-col-metrics{text-align:right;flex-shrink:0;width:110px;padding-right:4px}.hier-scroll-host{background:#fff;border:1px solid #eef1f5;border-radius:10px;max-height:520px;overflow:hidden auto}.hier-row{transition:background var(--motion-instant) var(--ease-standard);border-bottom:1px solid #f3f4f6;align-items:center;gap:6px;min-height:40px;padding:9px 14px;display:flex}.hier-row:last-child{border-bottom:none}.hier-expandable{cursor:pointer}.hier-expandable:hover{background:#f8f9fb}.hier-expandable:active{background:#f1f3f6}.hier-depth-0{background:#fafbfc;border-bottom:1px solid #e8ebf0;font-weight:600}.hier-depth-0:hover{background:#f3f5f8}.hier-depth-1{font-weight:500}.hier-depth-2{color:var(--text-secondary);font-weight:400}.hier-alert .hier-name{position:relative}.hier-toggle{width:18px;height:18px;color:var(--text-muted);transition:transform var(--motion-fast) var(--ease-enter);flex-shrink:0;justify-content:center;align-items:center;display:flex}.hier-dot{background:#d1d5db;border-radius:50%;width:5px;height:5px;display:block}.hier-icon{opacity:.8;flex-shrink:0;align-items:center;display:flex}.hier-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;line-height:1.3;overflow:hidden}.hier-level-tag{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);background:#f1f3f6;border-radius:4px;flex-shrink:0;margin-right:4px;padding:1px 6px;font-size:9.5px;font-weight:600}.hier-depth-0 .hier-level-tag{color:#c92c2c;background:#c92c2c14}.hier-bar-track{background:#f3f4f6;border-radius:7px;flex-shrink:0;width:180px;height:14px;position:relative;overflow:hidden}.hier-bar-fill{height:100%;transition:width var(--motion-state) var(--ease-enter);border-radius:7px;min-width:3px}.hier-metrics{font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;width:110px;font-size:12px;display:flex}.hier-enrollment{color:var(--text-primary);font-weight:700}.hier-sep{color:#d1d5db;font-weight:400}.hier-rate{text-align:right;min-width:48px;font-weight:700}.hier-children{animation:hierSlideIn var(--motion-state) var(--ease-enter)}@keyframes hierSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hier-empty{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13px}.icicle-chart{font-family:var(--app-font)}.icicle-header{background:#f8f9fb;border:1px solid #eef1f5;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:10px 14px;display:flex}.icicle-level-labels{align-items:center;gap:6px;display:flex}.icicle-level-item{color:var(--text-secondary);align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex}.icicle-arrow{color:#cbd5e1;font-size:11px;font-weight:400}.icicle-counts{color:var(--text-muted);font-size:11px;font-weight:500}.icicle-scale{align-items:center;gap:12px;padding:4px 14px 8px;display:flex}.icicle-scale-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;margin-top:-8px;font-size:10px;font-weight:600}.icicle-scale-wrapper{flex-direction:column;flex-shrink:0;gap:4px;width:240px;display:flex}.icicle-gradient{background:linear-gradient(90deg,#16a34a 0%,#2563eb 25%,#7c3aed 50%,#c026d3 70%,#db2777 86.7%,#dc2626 100%);border-radius:4px;width:100%;height:8px}.icicle-scale-ticks{width:100%;color:var(--text-muted);justify-content:space-between;font-size:9px;line-height:1;display:flex}.icicle-depth-labels{width:48px;display:none;position:absolute;top:0;left:-52px}.icicle-depth-labels span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;justify-content:flex-end;align-items:center;padding-right:6px;font-size:9px;font-weight:600;display:flex;position:absolute}.icicle-body{border:1px solid #eef1f5;border-radius:10px;position:relative;overflow:hidden}.icicle-root{gap:2px;display:flex}.icicle-col{min-width:0;overflow:hidden}.icicle-cell{cursor:pointer;transition:filter var(--motion-instant) var(--ease-standard), opacity var(--motion-instant) var(--ease-standard);border-right:1px solid #ffffff40;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.icicle-cell:hover{filter:brightness(1.12);z-index:2;box-shadow:inset 0 0 0 2px #ffffff80}.icicle-active{z-index:3;filter:brightness(1.15)!important;box-shadow:inset 0 0 0 2px #ffffffb3!important}.icicle-d0{border-bottom:2px solid #ffffff59;font-size:12px}.icicle-d1{border-bottom:1px solid #ffffff40;font-size:11px}.icicle-d2{font-size:10px}.icicle-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #00000059;max-width:95%;font-weight:700;line-height:1.2;overflow:hidden}.icicle-stats{color:#ffffffd9;white-space:nowrap;text-shadow:0 1px 2px #0000004d;font-size:9.5px;font-weight:500}.icicle-kids{gap:1px;margin-top:2px;display:flex}.icicle-detail{min-height:52px;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard);background:#f8f9fb;border:1px solid #eef1f5;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:10px 16px;display:flex}.icicle-detail-active{background:#fff;border-color:#dce1e8;box-shadow:0 2px 8px #0f172a0d}.icicle-detail-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.icicle-detail-name{flex-direction:column;min-width:0;display:flex}.icicle-detail-name strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.icicle-detail-level{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:9px;font-weight:600;line-height:1.2}.icicle-detail-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.icicle-detail-metric{flex-direction:column;align-items:center;gap:1px;display:flex}.icicle-detail-val{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.icicle-detail-lbl{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:500}.icicle-detail-divider{background:#e4e7ec;flex-shrink:0;width:1px;height:28px}.icicle-footer{color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 14px 0;font-size:11px;display:flex}.icicle-footer strong{color:var(--text-primary)}.icicle-footer-hint{opacity:.7;font-size:10.5px;font-style:italic}.skeleton{background-color:#eceff3;border-radius:8px;display:block;position:relative;overflow:hidden}.skeleton-soft:after{content:"";animation:skeletonSweep 1.6s var(--ease-standard) infinite;will-change:transform;background-image:linear-gradient(100deg,#eceff300 20%,#ffffffd9 50%,#eceff300 80%);position:absolute;inset:0;transform:translate(-100%)}.sk-line{height:12px}.sk-xs{border-radius:6px;height:9px}.sk-sm{height:13px}.sk-md{height:17px}.sk-lg{height:22px}.sk-tab{border-radius:8px;width:22%;height:30px}.sk-chart{border-radius:10px;width:100%;height:240px;margin-top:6px}.loading-modal{flex-direction:row;width:100%;height:100%;min-height:460px;display:flex}.loading-modal-sidebar{background:linear-gradient(160deg,#fbe9ea 0%,#f7dedf 100%);border-radius:16px 0 0 16px;flex-direction:column;flex:0 0 320px;gap:12px;min-width:280px;max-width:320px;padding:28px 24px;display:flex}.loading-modal-sidebar.has-back{padding-top:70px}.loading-modal-back{border-radius:18px;width:74px;height:34px;position:absolute;top:26px;left:22px}.loading-modal-sidebar{position:relative}.loading-modal-sidebar .skeleton{background-color:#c0202a24;background-image:linear-gradient(100deg,#fff0 20%,#ffffff8c 50%,#fff0 80%)}.loading-modal-sidebar-meta{border-top:1px solid #c0202a1f;border-bottom:1px solid #c0202a1f;flex-direction:column;gap:12px;margin:4px 0;padding:14px 0;display:flex}.loading-modal-field{flex-direction:column;gap:6px;display:flex}.loading-modal-main{background:#f7f8fa;border-radius:0 16px 16px 0;flex-direction:column;flex:auto;gap:18px;min-width:0;padding:20px 26px 28px;display:flex}.loading-modal-tabs{border-bottom:2px solid #eef1f5;gap:8px;padding-bottom:14px;display:flex}.loading-modal-card{background:#fff;border:1px solid #e6e9ee;border-radius:13px;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.loading-modal-card .sk-chart{background-color:#f1f3f6}.loading-screen--branded{z-index:9998;color:#fff;background:radial-gradient(circle at 50% 38%,#d0242e 0%,#b91f2b 46%,#8f1d24 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-inner{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:0 24px;display:flex}.loading-logo{background:#fff;border-radius:24px;justify-content:center;align-items:center;width:120px;height:120px;display:flex;box-shadow:0 16px 40px #4a080c66}.loading-logo img{object-fit:contain;width:84px;height:auto}.loading-rule{background:#ffffffd9;border-radius:999px;width:60px;height:3px;display:block}.loading-label{color:#ffffffe6!important;margin:4px 0 0!important;font-size:13px!important;font-weight:600!important}.loading-dots{gap:8px;margin-top:2px;display:inline-flex}.loading-dots span{background:#ffffffe6;border-radius:999px;width:8px;height:8px;animation:1.4s ease-in-out infinite loadingDot}.loading-dots span:nth-child(2){animation-delay:.16s}.loading-dots span:nth-child(3){animation-delay:.32s}@keyframes loadingDot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.signin-screen{z-index:9999}.signin-inner{text-align:center;flex-direction:column;align-items:center;gap:18px;max-width:440px;padding:0 28px;display:flex}.signin-title{color:#fff;letter-spacing:-.01em;margin:6px 0 0;font-size:24px;font-weight:700}.signin-text{color:#ffffffeb;margin:0;font-size:15px;line-height:1.55}.signin-button{color:#b91f2b;cursor:pointer;background:#fff;border:0;border-radius:12px;margin-top:6px;padding:13px 26px;font-size:15px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s;box-shadow:0 12px 30px #4a080c59}.signin-button:hover{background:#fff5f5;transform:translateY(-1px);box-shadow:0 16px 38px #4a080c73}.signin-button:active{transform:translateY(0)}.signin-button:focus-visible{outline-offset:3px;outline:3px solid #ffffffb3}.signin-hint{color:#ffffffbf;margin:2px 0 0;font-size:12.5px}@media (prefers-reduced-motion:reduce){.signin-button{transition:none}}.tab-content-area .tab-content-wrapper{flex-direction:column;gap:22px;display:flex}.tab-content-wrapper>.chart-card{margin-bottom:0!important}.tab-content-area .chart-card-body>div>svg{max-height:560px;margin:0 auto;display:block}.analytics-tabs{background:#fbecec;border:1px solid #f2d7d7;border-radius:16px;flex-shrink:0;gap:4px;margin:16px 20px 6px;padding:6px;display:flex;position:relative;box-shadow:inset 0 1px 2px #7814190a}.analytics-tabs button{z-index:1;color:#8a6a6b;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;min-width:0;min-height:42px;box-shadow:none;transition:color var(--motion-fast) var(--ease-standard);background:0 0;border:none;border-radius:11px;flex:auto;justify-content:center;align-items:center;gap:7px;margin:0;padding:0 14px;font-size:12.5px;font-weight:600;display:flex;position:relative}.analytics-tabs button svg{transition:transform var(--motion-fast) var(--ease-enter);flex-shrink:0}.analytics-tabs button span{text-overflow:ellipsis;overflow:hidden}.analytics-tabs button:hover{color:#c0202a;background:0 0}.analytics-tabs button.active{color:#fff;box-shadow:none;background:0 0;border-color:#0000;font-weight:700}.analytics-tabs button.active svg{transform:scale(1.06)}.analytics-tabs .tab-indicator{z-index:0;pointer-events:none;will-change:transform, width;background:linear-gradient(135deg,#e0322f 0%,#c0202a 100%);border-radius:11px;position:absolute;top:0;left:0;box-shadow:0 4px 12px #c0202a4d,inset 0 1px #ffffff24}:root{--app-surface:#f4f6f8;--app-card:#fff;--card-elevated:#fff;--border-color:#94a3b83d;--accent-color:#c0202a;--accent-strong:#b91f2b;--accent-soft:#fdf2f2;--accent-glow:#c0202a29;--shadow-soft:0 2px 8px #0f172a0d;--shadow-raised:0 6px 20px #0f172a12, 0 1px 3px #0f172a0b;--shadow-pressed:none;--shadow-inset:none;--shadow-glow:0 6px 18px #c0202a29}.content-card,.metric-card,.classification-card,.chart-card,.sidebar-section,.sidebar-tab-panel,.sidebar-search-block,.bucket-container{background:var(--app-card);border:1px solid var(--border-color);box-shadow:var(--shadow-soft);border-radius:16px}.content-card,.metric-card,.classification-card{box-shadow:var(--shadow-raised)}.metric-card:hover{box-shadow:var(--shadow-raised);transition:transform var(--motion-instant) var(--ease-enter);transform:translateY(-2px)}.sidebar,.sidebar-top{background:#fff}.sidebar{border-right:1px solid var(--border-color);box-shadow:0 0 24px #0f172a0d}.sidebar-tabs,.segmented-control{border:1px solid var(--border-color);box-shadow:none;background:#f1f3f6;border-radius:12px}.sidebar-tabs button.active,.segmented-control button.active{background:#fff;box-shadow:0 1px 3px #0f172a14}.field select,.search-box,.instructor-trend-control select{border:1px solid var(--border-color);box-shadow:none;background:#fff;border-radius:12px}.field select:focus,.search-box:focus,.instructor-trend-control select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.instructor-trend-control,.bucket-container{box-shadow:var(--shadow-soft)}.classification-icon{background:var(--accent-soft);color:var(--accent-strong);box-shadow:none}.neomorphic-btn-icon{box-shadow:none}.neomorphic-btn-icon:hover{box-shadow:0 4px 10px var(--accent-glow)}.chart-card{border:1px solid var(--border-color);box-shadow:var(--shadow-soft)}.intro-reveal{z-index:9999;cursor:pointer;will-change:transform, opacity, clip-path;clip-path:circle(150% at 50% 38%);background:radial-gradient(circle at 50% 38%,#d0242e 0%,#b91f2b 46%,#8f1d24 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.intro-inner{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:0 24px;display:flex}.intro-logo{background:#fff;border-radius:28px;justify-content:center;align-items:center;width:148px;height:148px;display:flex;box-shadow:0 24px 60px #4a080c66}.intro-logo img{object-fit:contain;width:104px;height:auto}.intro-rule{transform-origin:50%;background:#ffffffd9;border-radius:999px;width:74px;height:3px;display:block}.intro-title{color:#fff;letter-spacing:.4px;margin:0;font-size:clamp(18px,2.4vw,24px);font-weight:700}.intro-loading{gap:8px;margin-top:2px;display:inline-flex}.intro-loading span{background:#ffffffe6;border-radius:999px;width:9px;height:9px;animation:1.4s ease-in-out infinite introDot}.intro-loading span:nth-child(2){animation-delay:.16s}.intro-loading span:nth-child(3){animation-delay:.32s}@keyframes introDot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}.search-box{color:var(--text-muted);align-items:center;gap:8px;display:flex}.search-box svg{flex:none}.search-results strong{color:var(--accent-color)}.search-results button{background:#fff}.search-box input{min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0;flex:auto;padding:0;font-size:13px}.classification-header{grid-template-columns:48px minmax(0,1fr) auto 24px}.classification-count{color:var(--accent-color);white-space:nowrap;padding-right:4px;font-size:15px;font-weight:800}.section-help-wrap{padding:4px 2px 10px}.help-toggle{border:1px solid var(--border-color);color:var(--accent-strong);transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard);background:#fff;border-radius:10px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:700;display:inline-flex}.help-toggle:hover{background:var(--accent-soft);border-color:var(--border-focus)}.section-help{background:var(--accent-soft);border:1px solid #c0202a1f;border-radius:12px;margin-top:8px;padding:12px 14px}.section-help p{color:var(--text-secondary);margin:0 0 8px;font-size:12.5px;line-height:1.6}.section-help p:last-child{margin-bottom:0}.section-help b{color:var(--text-primary)}.cdt-wrap{border:1px solid var(--border-color);box-shadow:var(--shadow-soft);background:#fff;border-radius:14px;overflow:hidden}.cdt-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;max-height:460px;overflow:auto}.cdt-table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.cdt-table th,.cdt-table td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #eef1f5;padding:11px 14px}.cdt-table td.cdt-wrap-cell{white-space:normal;line-height:1.4}.cdt-right{text-align:right!important}.cdt-table thead th{z-index:2;background:#fbfbfc;position:sticky}.cdt-head-row th{border-bottom:2px solid var(--accent-color);top:0;box-shadow:0 1px #0f172a05}.cdt-filter-row th{border-bottom:1px solid var(--border-color);background:#fbfbfc;padding-top:7px;padding-bottom:9px;top:41px}.cdt-sort{font:inherit;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;transition:color var(--motion-instant) var(--ease-standard);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:10.5px;font-weight:700;display:inline-flex}.cdt-sort:hover{color:var(--accent-color)}.cdt-right .cdt-sort{flex-direction:row-reverse}.cdt-sort-idle{opacity:.3}.cdt-filter-input{border:1px solid var(--border-color);width:100%;min-width:72px;height:30px;color:var(--text-primary);transition:border-color var(--motion-instant) var(--ease-standard), box-shadow var(--motion-instant) var(--ease-standard);background:#fff;border-radius:9px;outline:none;padding:0 9px;font-size:11.5px}.cdt-filter-input::placeholder{color:#b6bdc7}.cdt-filter-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.cdt-name{color:var(--text-primary);font-weight:600}.cdt-animnum{font-variant-numeric:tabular-nums}.cdt-table tbody tr:nth-child(2n) td{background:#fcfcfd}.cdt-table tbody tr td{transition:background-color var(--motion-instant) var(--ease-standard)}.cdt-table tbody tr:hover td{background:var(--accent-soft)}.cdt-table tbody tr:last-child td{border-bottom:0}.cdt-empty,.cdt-table .cdt-empty{text-align:center;color:var(--text-muted);white-space:normal;padding:26px 12px;font-style:italic}.cdt-footer{border-top:1px solid var(--border-color);color:var(--text-muted);background:#fbfbfc;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;font-size:11px;font-weight:600;display:flex}.cdt-sort-hint{opacity:.85;font-weight:500}.cdt-sort-rank{background:var(--accent-color,#c0202a);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:14px;height:14px;margin-left:1px;padding:0 3px;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.code-link-btn{color:var(--accent-color);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.code-link-btn:hover{color:var(--accent-strong)}.content-wrapper,.sidebar-tab-panel{scroll-behavior:smooth}.route-surface{transform-origin:50% 18%;width:100%;min-width:0;animation:routeSurfaceIn var(--motion-content) var(--ease-enter) both}.route-surface-analysis{height:100%}@keyframes routeSurfaceIn{0%{opacity:0;transform:translateY(8px)scale(.997)}to{opacity:1;transform:translate(0,0)scale(1)}}.analysis-frame{background:#0f0f11;border:1px solid #ffffff0f;border-radius:12px;flex:1;min-height:0;position:relative;overflow:hidden}.analysis-iframe{opacity:1;width:100%;height:100%;transition:opacity var(--motion-state) var(--ease-standard);border:0}.analysis-iframe.is-loading{opacity:0}.iframe-loader{z-index:10;opacity:1;visibility:visible;transition:opacity var(--motion-state) var(--ease-standard), visibility 0s linear 0s;background:#0f0f11;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.iframe-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition-delay:0s, var(--motion-state)}.iframe-loader span{color:#a1a1aa;margin-top:12px;font-size:14px}.analysis-spinner{border:4px solid #d226301a;border-top-color:#d22630;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.iframe-loader.is-hidden .analysis-spinner{animation-play-state:paused}.metric-card,.classification-card,.classification-header,.bucket-header-bar,.help-toggle,.neomorphic-btn-icon,.code-link-btn,.search-results button,.segmented-control button,.sidebar-tabs button{transition:background-color var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), box-shadow .18s ease}:root{--app-surface:#f1eef0;--accent-wash:#c0202a0d}.main-container{background:radial-gradient(1200px 520px at 0 -8%,#c0202a12,#0000 60%),radial-gradient(900px 500px at 100% 0,#c0202a0b,#0000 55%),linear-gradient(#f6f3f4 0%,#eef0f3 100%)}.sidebar{background:linear-gradient(#fff5f5 0%,#fff 22% 100%)}.logo-container{border-bottom:2px solid #c0202a24}.section-title,.highlights-section .section-title,.highlights-section h2{padding-left:14px;position:relative}.section-title:before,.highlights-section h2:before{content:"";background:linear-gradient(#e0322f,#c0202a);border-radius:999px;width:4px;height:1.05em;position:absolute;top:50%;left:0;transform:translateY(-50%)}.classification-card{transition:border-color var(--motion-fast) var(--ease-standard);background:linear-gradient(#c0202a05,#0000 120px),#fff;border-left:4px solid #0000}.classification-card.open{border-left-color:var(--accent-color);box-shadow:var(--shadow-raised)}.classification-header:hover{background:var(--accent-wash)}.classification-icon{color:#fff!important;background:linear-gradient(150deg,#e0322f 0%,#b91f2b 100%)!important;box-shadow:0 6px 14px #c0202a47!important}.highlights-card{border-top:3px solid var(--accent-color);background:linear-gradient(snow 0%,#fff 60%)}.highlights-card-total .metric-value,.highlights-card-critical .metric-value,.highlights-card-prereq .metric-value{color:#b01c25!important}.highlights-card-total,.highlights-card-critical,.highlights-card-prereq{border-top-color:#b01c25}.bucket-header-bar{background:linear-gradient(#fdf6f6,#fff)}.bucket-header-bar.open{background:var(--accent-wash)}.help-toggle:focus-visible,.bucket-toggle-button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sidebar{flex-shrink:0;gap:16px;width:clamp(380px,24vw,420px);min-width:0;padding:20px 18px}.sidebar-section{flex-direction:column;gap:16px;padding:16px;display:flex}.sidebar-tab-panel{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:20px;min-height:0;padding:18px 16px;display:flex;overflow:hidden auto}.field{flex-direction:column;gap:7px;display:flex}.field span,.sidebar-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.field select{min-height:42px}.sidebar-field--segmented,.sidebar-field-wrap{flex-direction:column;gap:10px;display:flex}.sidebar-field--slider,.sidebar-slider{flex-direction:column;gap:8px;padding-top:2px;display:flex}.sidebar-slider input{margin:4px 0}.sidebar-slider-header{justify-content:space-between;align-items:center;display:flex}.sidebar-slider-header span{letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.slider-value{color:var(--accent-color);font-size:13px;font-weight:700;font-family:var(--display-font)}.honors-toggle{border:1px solid var(--border-color);background:#fff;border-radius:12px;align-items:flex-start;margin-top:2px;padding:11px 13px;line-height:1.4}.honors-highlight{color:var(--accent-color);font-weight:800}.sidebar-threshold-display{text-align:left;color:var(--text-secondary);background:var(--accent-soft);border:1px solid #c0202a1f;border-radius:11px;min-height:92px;padding:11px 13px;font-size:11.5px;line-height:1.6}.sidebar-threshold-display .animated-number{font-variant-numeric:tabular-nums}.threshold-hot{color:var(--accent-color);font-weight:800}.ac-collapse{opacity:0;transition:grid-template-rows var(--motion-content) var(--ease-flow), opacity var(--motion-state) var(--ease-standard);will-change:grid-template-rows;grid-template-rows:0fr;display:grid;overflow:hidden}.ac-collapse--open{opacity:1;grid-template-rows:1fr}.ac-collapse>.ac-collapse-inner{min-height:0;overflow:hidden}.field select,.sidebar-dropdown,.analysis-dropdown{accent-color:var(--accent-color);color:var(--text-primary);font-weight:600}.field select option,.sidebar-dropdown option,.analysis-dropdown option{color:var(--text-primary);background:#fff;padding:10px 12px;font-size:13px;font-weight:500}.field select option:checked,.field select option:hover,.sidebar-dropdown option:checked{background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.field select option:disabled{color:var(--text-muted)}:root{--display-font:"Space Grotesk", var(--app-font)}.dashboard-heading h1,.highlights-section h2,.section-title,.classification-title strong,.exec-title,.course-modal-hero h2{font-family:var(--display-font);letter-spacing:-.01em}.classification-count,.classification-header .cdt-sort,.field span,.sidebar-label,.metric-label{font-family:var(--display-font)}.njit-select{position:relative}.njit-select-trigger{border:1px solid var(--border-color);width:100%;min-height:42px;color:var(--text-muted);text-align:left;transition:border-color var(--motion-instant) var(--ease-standard), box-shadow var(--motion-instant) var(--ease-standard), background var(--motion-instant) var(--ease-standard);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:flex}.njit-select-trigger.has-value{color:var(--text-primary);font-weight:600}.njit-select-trigger:hover:not(:disabled){border-color:#cdd4de}.njit-select-trigger.open{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.njit-select-trigger:disabled{opacity:.55;cursor:not-allowed}.njit-select-text{flex:auto;align-items:baseline;gap:10px;min-width:0;display:flex;overflow:hidden}.njit-select-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.njit-select-trigger-count{text-align:right;color:#b01c25;font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-weight:800}.njit-select-caret{color:#9aa3b0;transition:transform var(--motion-fast) var(--ease-enter);flex:none}.njit-select-trigger.open .njit-select-caret{color:var(--accent-color);transform:rotate(180deg)}.njit-select-menu{z-index:9999;border:1px solid var(--border-color);max-height:264px;animation:njitSelectIn var(--motion-fast) var(--ease-enter);background:#fff;border-radius:12px;padding:5px;position:fixed;overflow-y:auto;box-shadow:0 16px 36px #0f172a29}@keyframes njitSelectIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.njit-select-option{width:100%;color:var(--text-secondary);text-align:left;transition:background var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard);background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:12.5px;font-weight:500;display:flex}.njit-select-option:hover{background:var(--accent-wash);color:var(--text-primary)}.njit-select-option.selected{background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.njit-select-option .lucide{color:var(--accent-color);flex:none}.njit-select-opt-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.njit-select-opt-label.placeholder{color:var(--text-muted);font-style:italic}.njit-select-opt-main{flex:auto;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.njit-select-opt-main .njit-select-opt-label{flex:0 auto}.njit-select-opt-hint{color:var(--text-muted);white-space:nowrap;flex:none;font-size:11px;font-weight:500}.njit-select-opt-right{flex:none;align-items:center;gap:8px;display:inline-flex}.njit-select-count{color:#b01c25;font-variant-numeric:tabular-nums;font-size:11px;font-weight:800}.njit-select-empty{text-align:center;color:var(--text-muted);padding:12px;font-size:12px}.demographics-accordion-container{background:var(--app-card);border:1px solid var(--border-color);box-shadow:var(--shadow-raised);border-radius:12px;margin-bottom:20px;overflow:hidden}.demographics-panel-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--motion-fast) var(--ease-standard);justify-content:space-between;align-items:center;padding:14px 20px;display:flex;color:#fff!important;background:linear-gradient(135deg,#c0202a,#991b1b)!important}.demographics-panel-header:hover{background:linear-gradient(135deg,#c92c2c,#a81e25)!important}.demographics-panel-header h3{margin:0;font-size:14px;font-weight:700;color:#fff!important}.demographics-panel-header .sliders-icon{color:#fff!important}.demographics-panel-header .filter-strip-count{font-size:11.5px;color:#ffffffd1!important}.demographics-panel-header .active-count-badge{border-radius:8px;padding:2px 7px;font-size:11px;font-weight:800;box-shadow:0 2px 6px #0000001a;color:var(--accent-color)!important;background:#fff!important}.demographics-panel-header .reset-btn{cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-instant) var(--ease-enter);border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:flex;color:#fff!important;background:#ffffff26!important}.demographics-panel-header .reset-btn:hover{transform:translateY(-1px);background:#ffffff40!important}.demographics-panel-header .reset-btn:active{transform:translateY(0)}.demographics-panel-header .chevron-icon{color:#fff!important}.demographics-group-card{border:1px solid var(--border-color);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);border-radius:10px;margin-bottom:12px;overflow:hidden}.demographics-group-card.has-active{border-color:#c0202a59!important;box-shadow:0 0 8px #c0202a0a!important}.demographics-group-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--motion-fast) var(--ease-standard);background:#fbfcfd;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.demographics-group-header:hover{background:#f7f9fa}.demographics-group-header.has-active{background:#c0202a05!important}.demographics-group-title{color:var(--text-primary);transition:color var(--motion-fast) var(--ease-standard);margin-right:8px;font-size:13px;font-weight:700}.demographics-group-header.has-active .demographics-group-title{color:var(--accent-color)!important}.demographics-group-desc{color:#94a3b8;font-size:11px}.demographics-group-badge{border-radius:8px;padding:1px 6px;font-size:10px;font-weight:800;background:var(--accent-color)!important;color:#fff!important}.filter-field-label{color:#64748b;text-transform:uppercase;letter-spacing:.4px;transition:color var(--motion-fast) var(--ease-standard);margin-bottom:5px;font-size:10px;font-weight:700;line-height:1.25;display:block}.filter-field-label.has-active{color:var(--accent-color)!important}.filter-dropdown-trigger{border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:38px;transition:border-color var(--motion-instant) var(--ease-standard), box-shadow var(--motion-instant) var(--ease-standard), background var(--motion-instant) var(--ease-standard);background:#fff;border-radius:9px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.filter-dropdown-trigger:hover{border-color:#cbd5e1}.filter-dropdown-trigger.is-open{border-color:var(--accent-color)!important;box-shadow:0 0 0 3px var(--accent-glow)!important}.filter-dropdown-trigger.has-active{border-color:var(--accent-color)!important;background:#c0202a08!important}.filter-dropdown-menu{border:1px solid var(--border-color);z-index:9999;max-height:220px;animation:njitSelectIn var(--motion-fast) var(--ease-enter);background:#fff;border-radius:9px;position:fixed;overflow-y:auto;box-shadow:0 12px 28px #0f172a24}.filter-dropdown-option{cursor:pointer;transition:background var(--motion-instant) var(--ease-standard);border-bottom:1px solid #f1f5f9;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.filter-dropdown-option:hover{background:#f8fafc}.filter-dropdown-option.is-selected{background:#c0202a0d!important}.filter-dropdown-option span{color:#475569;font-weight:500}.filter-dropdown-option.is-selected span{font-weight:600;color:var(--text-primary)!important}.app-error{z-index:3000;background:#f6f7f9;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.app-error-card{text-align:center;background:#fff;border:1px solid #e6e8ec;border-radius:16px;width:100%;max-width:460px;padding:36px 32px;box-shadow:0 20px 50px #0f172a1f}.app-error-mark{color:#fff;background:linear-gradient(#d3262f 0%,#b01c25 100%);border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 18px;font-size:28px;font-weight:800;display:grid}.app-error-card h1{color:#16181d;margin:0 0 8px;font-size:20px;font-weight:800}.app-error-card p{color:#6b7280;margin:0 0 22px;font-size:14px;line-height:1.55}.app-error-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.app-error-btn{cursor:pointer;color:#374151;min-height:42px;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #dfe3e8;border-radius:10px;padding:0 18px;font-size:13.5px;font-weight:700}.app-error-btn:hover{color:#b01c25;border-color:#b01c25}.app-error-btn.primary{color:#fff;background:linear-gradient(#d3262f 0%,#b01c25 100%);border:0;box-shadow:0 8px 20px #b01c2542}.app-error-btn.primary:hover{filter:brightness(1.05);color:#fff}@media (prefers-color-scheme:dark){.app-error{background:#0f1012}.app-error-card{background:#16181c;border-color:#262a30}.app-error-card h1{color:#e8e9ec}}.redacted-mode .metric-value,.redacted-mode .njit-select-count,.redacted-mode .njit-select-trigger-count,.redacted-mode .classification-count,.redacted-mode .sidebar-threshold-display,.redacted-mode .sidebar-count,.redacted-mode .cm-count,.redacted-mode .metric-subtext,.redacted-mode .bucket-toggle-button span{filter:blur(5px);-webkit-user-select:none;user-select:none}.redacted-mode .chart-card-body svg text,.redacted-mode .recharts-cartesian-axis-tick-value,.redacted-mode .recharts-label,.redacted-mode .enroll-perf-scroll-host svg text{filter:blur(4px)}.redacted-mode .structural-graph svg text{filter:none}.redacted-mode .cdt-table tbody td.cdt-right{filter:blur(4px);-webkit-user-select:none;user-select:none}.redacted-mode .recharts-tooltip-wrapper,.redacted-mode .chart-tip,.redacted-mode .comparison-tip{display:none!important}.redacted-mode .icicle-stats,.redacted-mode .icicle-detail-val,.redacted-mode .icicle-counts,.redacted-mode .icicle-footer strong,.redacted-mode .tt-hover-metrics{filter:blur(4px);-webkit-user-select:none;user-select:none}.redacted-mode .icicle-scale-ticks,.redacted-mode .colorbar-ticks,.redacted-mode .colorbar-threshold-label{display:none!important}.redacted-mode .cdt-footer,.redacted-mode .lg-label,.redacted-mode .lg-chip,.redacted-mode .chart-legend-item,.redacted-mode .chart-help-text,.redacted-mode .section-help{filter:blur(4px);-webkit-user-select:none;user-select:none}.user-chip{z-index:1500;border:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform-origin:100% 0;animation:userChipIn var(--motion-content) var(--ease-enter) both;background:linear-gradient(#fff 0%,#f7f8fa 100%);border-radius:999px;align-items:center;gap:10px;padding:7px 8px 7px 15px;font-size:13px;line-height:1.45;display:inline-flex;position:fixed;top:14px;right:18px;box-shadow:0 1px 2px #1118270a,0 6px 18px #1118271a,inset 0 1px #ffffffe6}.user-chip-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:600;line-height:1.5;overflow:hidden}.user-chip-role{background:var(--accent-soft);color:var(--accent-color);border:1px solid var(--accent-glow);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:700;line-height:1.2;box-shadow:inset 0 1px #fff9,0 1px 2px #c92c2c14}.user-chip-logout{color:var(--text-muted);border-left:1px solid var(--border-color);transition:color var(--motion-instant) var(--ease-standard), background-color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);border-radius:999px;align-items:center;gap:5px;margin-left:2px;padding:5px 12px 5px 11px;font-size:12.5px;font-weight:600;line-height:1.5;text-decoration:none;display:inline-flex}.course-modal-layout .chart-card-body{opacity:1;transition:opacity var(--motion-state) var(--ease-standard)}.course-modal-layout.is-semester-transitioning .chart-card-body{opacity:0}.user-chip-logout:hover{color:var(--accent-color);background:var(--accent-soft);transform:translateY(-1px)}.user-chip-logout svg{flex:none}@keyframes userChipIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translate(0,0)scale(1)}}@media (max-width:600px){.user-chip{gap:8px;padding:5px 6px 5px 11px;font-size:12px;top:10px;right:10px}.user-chip-name{max-width:118px}.user-chip-logout span{display:none}.user-chip-logout{padding:6px 9px}}.redacted-banner{z-index:950;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111318eb;border-radius:999px;align-items:center;gap:10px;max-width:min(920px,100vw - 32px);padding:11px 18px;font-size:12.5px;font-weight:600;line-height:1.35;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000047}.redacted-dot{background:#f59e0b;border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 4px #f59e0b40}.action-dock{z-index:900;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:24px;right:24px}.dock-btn{cursor:pointer;color:#fff;width:50px;height:50px;transition:transform var(--motion-fast) var(--ease-enter), box-shadow var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard);background:linear-gradient(#d3262f 0%,#b01c25 100%);border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 12px 28px #b01c254d}.dock-btn:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 16px 36px #b01c2566}.dock-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #d3262f59,0 12px 28px #b01c254d}.dock-btn-tour{color:#b01c25;background:#fff;border:1px solid #f0d4d6;box-shadow:0 12px 28px #11182729}.dock-btn-tour:hover{background:#fff5f5;box-shadow:0 16px 36px #11182738}.dock-btn-tour:focus-visible{box-shadow:0 0 0 3px #d3262f47,0 12px 28px #11182729}.dock-btn-label{white-space:nowrap;color:#fff;opacity:0;pointer-events:none;transition:opacity var(--motion-instant) var(--ease-standard), transform var(--motion-instant) var(--ease-enter);background:#16181d;border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:700;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)translate(6px);box-shadow:0 8px 20px #00000038}.dock-btn:hover .dock-btn-label,.dock-btn:focus-visible .dock-btn-label{opacity:1;transform:translateY(-50%)translate(0)}.action-dock-panel-anchor{z-index:901;position:fixed;bottom:92px;right:24px}.action-dock.is-above-modal,.action-dock-panel-anchor.is-above-modal{z-index:10001}@media (max-width:820px){.action-dock{bottom:16px;right:16px}.action-dock-panel-anchor{bottom:84px;right:16px}}.tour-overlay{z-index:100000;pointer-events:none;position:fixed;inset:0}.tour-shield{pointer-events:auto;position:absolute;inset:0}.tour-blur{pointer-events:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:opacity var(--motion-state) var(--ease-standard);background:#090b1085;position:absolute;inset:0}.tour-spotlight{pointer-events:none;width:0;height:0;transition:opacity var(--motion-fast) var(--ease-standard);border-radius:14px;position:absolute;top:0;left:0;box-shadow:0 0 0 2px #ffffff24,0 0 0 4px #d3262feb,0 0 30px 8px #d3262f57,0 22px 60px 10px #00000080}.tour-card{pointer-events:auto;will-change:transform, opacity;width:448px;max-width:calc(100vw - 28px);min-height:277px;transition:transform var(--motion-travel) var(--ease-flow), opacity var(--motion-content) var(--ease-standard);background:#fff;border:1px solid #eceef2;border-radius:16px;flex-direction:column;padding:22px 24px 18px;display:flex;position:absolute;top:0;left:0;transform:translate(0,0);box-shadow:0 24px 64px #0f172a4d}.tour-card-top{justify-content:space-between;align-items:center;gap:10px;min-height:26px;margin:0 -4px 10px 0;display:flex}.tour-card-top:not(:has(.tour-chip)){justify-content:flex-end}.oie-name{background:linear-gradient(#d3262f 0%,#b01c25 100%);-webkit-text-fill-color:transparent;color:#b01c25;-webkit-background-clip:text;background-clip:text;font-weight:800}.tour-chip{letter-spacing:.02em;text-transform:uppercase;color:#b01c25;background:#fdf0f1;border:1px solid #f4d7d9;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.tour-skip-x{color:#9aa0a8;cursor:pointer;width:26px;height:26px;transition:background var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #eadadb;border-radius:8px;place-items:center;display:grid}.tour-skip-x:hover{color:#fff;background:#b01c25;border-color:#b01c25}.tour-title{letter-spacing:-.01em;color:#16181d;margin:0 0 7px;font-size:16.5px;font-weight:800;line-height:1.3}.tour-body{color:#4b5563;flex:auto;margin:0;font-size:13.5px;line-height:1.65}.tour-body b{color:#16181d;font-weight:700}.tour-body-swap{min-height:0;animation:tourBodyReveal var(--motion-content) var(--ease-enter);flex-direction:column;flex:auto;display:flex}@keyframes tourBodyReveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tour-loading{color:#6b7280;align-items:center;gap:11px;font-size:13.5px;line-height:1.6;display:flex}.tour-loading .tour-spin{color:#d3262f;flex:none}.tour-spin{animation:1.1s linear infinite spin}.tour-btn:disabled{opacity:.6;cursor:default;pointer-events:none}.tour-btn-next:disabled{filter:none;box-shadow:none}.tour-progress{margin:14px 0 12px;padding-top:6px;position:relative}.tour-progress-row{flex-wrap:nowrap;align-items:center;gap:7px;display:flex}@media (max-width:520px){.tour-progress-row{flex-wrap:wrap;row-gap:10px}}.tour-sec-loose{flex:none;align-items:center;display:flex}.tour-sec{align-items:center;gap:7px;min-width:0;display:flex}.tour-sec-head{appearance:none;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:7px;margin:0;padding:3px 0;display:flex}.tour-sec-div{opacity:.85;width:2px;height:13px;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:linear-gradient(#e0555d 0%,#c0202a 100%);border-radius:2px;flex:none}.tour-sec.is-open .tour-sec-div,.tour-sec-head:hover .tour-sec-div{opacity:1;transform:scaleY(1.14)}.tour-sec-label{letter-spacing:.04em;text-transform:uppercase;color:#9aa1ab;white-space:nowrap;transition:color var(--motion-fast) var(--ease-standard);font-size:9px;font-weight:800;line-height:1}.tour-sec.is-open .tour-sec-label{color:#c0202a}.tour-sec-head:hover .tour-sec-label{color:#6b7280}.tour-sec.is-open .tour-sec-head:hover .tour-sec-label{color:#c0202a}.tour-sec-dots{box-sizing:border-box;opacity:0;width:0;transition:width var(--motion-travel) var(--ease-flow), opacity var(--motion-content) var(--ease-standard);will-change:width;align-items:center;gap:2px;padding:6px 5px;display:flex;overflow:hidden}.tour-sec.is-open .tour-sec-dots{opacity:1}.tour-dot-slot{transform-origin:0;opacity:0;transition:opacity var(--motion-content) var(--ease-standard), transform var(--motion-travel) var(--ease-flow);flex:none;display:inline-flex;transform:translate(-7px)scale(.3)}.tour-sec.is-open .tour-dot-slot{opacity:1;transform:none}.tour-dot{appearance:none;cursor:pointer;width:6px;height:6px;transition:background-color var(--motion-state) var(--ease-standard), transform var(--motion-state) var(--ease-enter), box-shadow var(--motion-state) var(--ease-standard);background:#e2e5ea;border:0;border-radius:999px;flex:none;padding:0;position:relative}.tour-dot:before{content:"";position:absolute;inset:-7px -1px}.tour-dot.is-done{background:#e79aa0}.tour-dot.is-active{background:#d3262f;transform:scale(1.5);box-shadow:0 0 0 2.5px #d3262f29}.tour-dot:hover,.tour-dot:focus-visible{background-color:#d3262f;outline:none;transform:scale(1.7);box-shadow:0 0 0 3px #d3262f29}.tour-dot.is-active:hover,.tour-dot.is-active:focus-visible{transform:scale(1.75)}.tour-dot-tip{z-index:2;color:#fff;pointer-events:none;opacity:0;width:max-content;max-width:240px;transition:transform var(--motion-content) var(--ease-enter), opacity var(--motion-fast) var(--ease-standard);background:#16181d;border-radius:10px;flex-direction:column;gap:3px;padding:8px 11px;display:flex;position:absolute;bottom:calc(100% + 2px);left:0;box-shadow:0 12px 30px #0f172a47}.tour-dot-tip.is-shown{opacity:1}.tour-dot-tip:after{content:"";top:100%;left:var(--nub,50%);border:5px solid #0000;border-top-color:#16181d;position:absolute;transform:translate(-50%)}.tour-dot-tip-chip{letter-spacing:.04em;text-transform:uppercase;color:#ff9ba0;font-size:9.5px;font-weight:800}.tour-dot-tip-title{color:#f4f5f7;font-size:12px;font-weight:700;line-height:1.35}.tour-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.tour-actions-right{align-items:center;gap:8px;display:inline-flex}.tour-btn{cursor:pointer;transition:transform var(--motion-instant) var(--ease-enter), box-shadow var(--motion-instant) var(--ease-standard), background var(--motion-instant) var(--ease-standard), color var(--motion-instant) var(--ease-standard), border-color var(--motion-instant) var(--ease-standard);border:1px solid #0000;border-radius:9px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.tour-btn-skip{color:#9aa0a8;background:0 0;border:0;padding:9px 6px;font-weight:600}.tour-btn-skip:hover{color:#b01c25}.tour-btn-back{color:#4b5563;background:#fff;border-color:#e2e5ea}.tour-btn-back:hover{color:#b01c25;background:#fdf4f4;border-color:#d3262f}.tour-btn-next{color:#fff;background:linear-gradient(#d3262f 0%,#b01c25 100%);box-shadow:0 8px 18px #b01c2542}.tour-btn-next:hover{filter:brightness(1.04);transform:translateY(-1px)}.tour-count{text-align:center;color:#b3b9c2;letter-spacing:.03em;margin-top:10px;font-size:11px;font-weight:600}@media (prefers-color-scheme:dark){.dock-btn-tour{color:#ff6b73;background:#1b1e23;border-color:#3a2a2c;box-shadow:0 12px 28px #0006}.dock-btn-tour:hover{background:#23181a}.dock-btn-label{color:#16181d;background:#f4f5f7}.tour-card{background:#16181c;border-color:#262a30;box-shadow:0 24px 64px #0000008c}.tour-title{color:#f0f1f3}.tour-body{color:#b6bcc6}.tour-body b{color:#f0f1f3}.tour-chip{color:#ff8a90;background:#241416;border-color:#3a2226}.tour-skip-x{color:#9aa0a8;background:#1b1e23;border-color:#2c3038}.tour-skip-x:hover{color:#fff;background:#b01c25;border-color:#b01c25}.tour-btn-back{color:#c7ccd4;background:#1b1e23;border-color:#2c3038}.tour-btn-back:hover{color:#ff8a90;background:#23181a;border-color:#d3262f}.tour-dot{background:#333941}.tour-dot.is-done{background:#7d3237}.tour-sec-div{background:linear-gradient(#ff6a72 0%,#c0202a 100%)}.tour-sec-label{color:#7c828c}.tour-sec.is-open .tour-sec-label,.tour-sec.is-open .tour-sec-head:hover .tour-sec-label{color:#ff7a82}.tour-sec-head:hover .tour-sec-label{color:#b6bcc6}.tour-dot:hover,.tour-dot:focus-visible{background-color:#ff5a63;box-shadow:0 0 0 3px #ff5a632e}.tour-dot-tip{background:#23262c;box-shadow:0 12px 30px #00000080}.tour-dot-tip:after{border-top-color:#23262c}.tour-count{color:#6b7280}.tour-loading{color:#b6bcc6}.tour-loading .tour-spin{color:#ff8a90}.tour-blur{background:#03050994}}@media (prefers-reduced-motion:reduce){.tour-card,.tour-spotlight,.tour-blur{transition:none}.tour-body-swap,.tour-spin{animation:none}.tour-dot{transition:none}.tour-dot:hover,.tour-dot:focus-visible{transform:none}.tour-dot-tip{transition:opacity var(--motion-instant) var(--ease-standard)}}.course-modal-shell{max-width:95vw;display:inline-flex;position:relative}.course-modal-shell>.course-modal{flex:auto}.course-modal{height:min(85vh,940px)!important;max-height:85vh!important}.cm-actions{margin-bottom:12px;bottom:100%;right:0;position:absolute!important;top:auto!important}.cm-back{color:#b01c25;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:1px solid #eadadb;height:36px;margin-bottom:12px;bottom:100%;left:0;box-shadow:0 4px 14px #0f172a1a;position:absolute!important;top:auto!important}.cm-back:hover{color:#fff;background:#b01c25;border-color:#b01c25;transform:translate(-2px)}.cm-sem-nav{z-index:42;cursor:pointer;animation:cmSemIn var(--motion-content,.52s) var(--ease-enter,ease) both;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.cm-sem-nav.prev{margin-right:18px;right:100%}.cm-sem-nav.next{margin-left:18px;left:100%}.cm-sem-nav:after{content:"";border-radius:20px;position:absolute;inset:-20px -26px}.cm-sem-ico{color:#b01c25;width:46px;height:46px;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter);background:#fff;border:1px solid #eadadb;border-radius:50%;place-items:center;display:grid;box-shadow:0 8px 22px #0f172a47}.cm-sem-cap{white-space:nowrap;transition:transform var(--motion-fast) var(--ease-enter), box-shadow var(--motion-fast) var(--ease-standard);background:#fff;border:1px solid #eadadb;border-radius:11px;flex-direction:column;align-items:center;gap:3px;padding:7px 14px;display:flex;box-shadow:0 4px 12px #0f172a1f}.cm-sem-dir{letter-spacing:.11em;text-transform:uppercase;color:#c99a9d;font-size:8.5px;font-weight:800;line-height:1}.cm-sem-val{color:#7a2e33;font-size:12.5px;font-weight:700;line-height:1.1}.cm-sem-nav:hover .cm-sem-cap{box-shadow:0 6px 16px #b01c252e}.cm-sem-nav.prev:hover .cm-sem-cap{transform:translate(-3px)}.cm-sem-nav.next:hover .cm-sem-cap{transform:translate(3px)}.cm-sem-tip{z-index:60;text-align:left;opacity:0;visibility:hidden;pointer-events:none;width:216px;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-enter), visibility 0s linear var(--motion-fast);background:#fff;border:1px solid #f0dcdd;border-radius:12px;flex-direction:column;gap:3px;padding:10px 13px;display:flex;position:absolute;top:50%;transform:translateY(-50%)scale(.96);box-shadow:0 16px 36px #0f172a3d}.cm-sem-nav.prev .cm-sem-tip{transform-origin:0;margin-left:15px;left:100%}.cm-sem-nav.next .cm-sem-tip{transform-origin:100%;margin-right:15px;right:100%}.cm-sem-tip-k{color:#b01c25;font-size:13px;font-weight:800}.cm-sem-tip-v{color:#5b6472;font-size:11.5px;font-weight:500;line-height:1.38}.cm-sem-nav:hover .cm-sem-tip,.cm-sem-nav:focus-visible .cm-sem-tip{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(-50%)scale(1)}.cm-sem-nav:hover .cm-sem-ico{color:#fff;background:#b01c25;border-color:#b01c25;box-shadow:0 8px 22px #b01c2552}.cm-sem-nav.prev:hover .cm-sem-ico{transform:translate(-3px)}.cm-sem-nav.next:hover .cm-sem-ico{transform:translate(3px)}.cm-sem-nav:active .cm-sem-ico{transform:scale(.94)}.cm-sem-nav:focus-visible{outline:none}.cm-sem-nav:focus-visible .cm-sem-ico{box-shadow:0 0 0 3px #b01c2561}@keyframes cmSemIn{0%{opacity:0;transform:translateY(-50%)scale(.9)}to{opacity:1;transform:translateY(-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.cm-sem-nav{animation:none}}@media (max-width:1180px){.cm-sem-nav.prev{margin-right:12px}.cm-sem-nav.next{margin-left:12px}.cm-sem-ico{width:42px;height:42px}.cm-sem-cap{display:none}}@media (max-width:900px){.cm-sem-nav{gap:5px}.cm-sem-nav.prev{margin-right:0;left:8px;right:auto}.cm-sem-nav.next{margin-left:0;left:auto;right:8px}.cm-sem-ico{width:40px;height:40px}.cm-sem-cap{display:none}}.analytics-tabs{margin:16px 20px 8px!important}.course-modal-sidebar.has-back{padding-top:26px!important}@media (max-height:720px){.cm-actions,.cm-back{margin-bottom:0;bottom:auto;top:8px!important}.cm-actions{right:10px}.cm-back{left:10px}}.main-container{min-height:100vh;height:100vh;min-height:100dvh;height:100dvh}.analysis-area{height:calc(100vh - 48px);flex-direction:column;height:calc(100dvh - 48px);display:flex}.analysis-frame{min-height:360px}.course-table-wrap,.cdt-scroll{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.track-topology-container{max-height:760px}@media (max-width:1180px){.sidebar{width:clamp(300px,31vw,360px);padding-inline:14px}.content-wrapper{padding:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.highlights-grid .metric-card:last-child{grid-column:1/-1}.chart-card-header{padding-inline:20px}}@media (max-width:900px){body{overflow:auto}.main-container{height:auto;min-height:100vh;min-height:100dvh;display:block}.sidebar{border-right:0;border-bottom:1px solid var(--border-color);width:100%;height:auto;max-height:none;padding:14px 16px;box-shadow:0 8px 22px #0f172a0f}.sidebar-body{overflow:visible}.sidebar-tab-panel{scrollbar-gutter:auto;overflow:visible}.content-wrapper{height:auto;min-height:0;padding:16px;overflow:visible}.content-area{gap:14px}.analysis-area{height:max(640px,100dvh - 24px)}.analysis-frame{flex:auto;min-height:480px}.course-modal-shell{width:calc(100vw - 20px);max-width:none}.course-modal{width:100%!important;height:calc(100vh - 20px)!important;height:calc(100dvh - 20px)!important;max-height:calc(100vh - 20px)!important;border-radius:18px!important;max-height:calc(100dvh - 20px)!important}.cm-actions,.cm-back{margin-bottom:0;bottom:auto;top:8px!important}.cm-actions{right:10px}.cm-back{left:10px}.course-modal-layout{flex-direction:column!important}.course-modal-sidebar{max-height:34%;border-radius:18px 18px 0 0!important;flex:none!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:20px 18px!important}.course-modal-sidebar.has-back{padding-top:54px!important}.sidebar-scroll,.course-modal-main{min-height:0}.analytics-tabs{margin:10px 12px 6px!important}.analytics-tabs button{min-height:42px;padding-inline:10px}.tab-content-pane{padding:16px!important}.chart-card-header{padding:17px 18px 14px}.chart-card-body{padding:14px 12px 18px}.loading-modal{flex-direction:column}.loading-modal-sidebar{border-radius:16px 16px 0 0;flex:0 0 30%;width:100%;min-width:0;max-width:none}.loading-modal-main{border-radius:0 0 16px 16px;padding:16px}}@media (max-width:640px){.content-wrapper{padding:12px}.content-card,.metric-card{padding:16px}.metric-grid{grid-template-columns:1fr;gap:10px}.dashboard-heading h1{overflow-wrap:anywhere;font-size:clamp(26px,9vw,36px)}.section-title{font-size:17px}.classification-header{grid-template-columns:40px minmax(0,1fr) auto 20px;gap:8px;padding:13px 12px}.classification-icon{width:40px;height:40px}.classification-count{font-size:13px}.bucket-header-bar{flex-wrap:wrap;align-items:flex-start}.bucket-actions{justify-content:flex-end;width:100%}.course-table{min-width:640px}.cdt-scroll{max-height:min(62dvh,620px)}.cdt-footer{flex-direction:column;align-items:flex-start;gap:5px}.chart-frame{min-height:280px!important}.structural-graph{overscroll-behavior-inline:contain;overflow-x:auto}.track-topology-container{border-radius:10px!important;height:min(68dvh,560px)!important;min-height:390px!important}.analysis-area{height:max(620px,100dvh - 16px)}.analysis-area .dashboard-heading{margin-bottom:10px!important}.course-modal-shell{width:calc(100vw - 12px)}.course-modal{border-radius:14px!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}.course-modal-sidebar{max-height:30%;border-radius:14px 14px 0 0!important;padding:16px 14px!important}.course-modal-sidebar.has-back{padding-top:50px!important}.sidebar-name{margin-bottom:10px;font-size:18px}.sidebar-meta{gap:6px;padding-bottom:10px}.analytics-tabs{gap:3px;margin:8px!important;padding:3px!important}.analytics-tabs button{gap:5px;min-height:40px;padding:0 8px}.analytics-tabs button span{font-size:11px}.tab-content-pane{padding:12px!important}.chart-card{border-radius:14px}.chart-card-header{padding:15px 14px 12px}.chart-card-body{padding:10px 8px 14px}.grade-group-controls,.ggc-row{min-width:0}.ggc-row{flex-direction:column;align-items:stretch}.ggc-field input[type=text]{width:100%;min-width:0}.action-dock{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));gap:9px}.action-dock-panel-anchor{right:max(12px, env(safe-area-inset-right));bottom:max(76px, calc(env(safe-area-inset-bottom) + 72px))}.dock-btn{width:46px;height:46px}.redacted-banner{bottom:max(10px, env(safe-area-inset-bottom));border-radius:14px;width:calc(100vw - 24px);padding:10px 12px;font-size:11.5px}.tour-card{min-height:min(277px,100dvh - 16px);max-height:calc(100dvh - 16px);padding:18px 18px 15px;overflow-y:auto}.tour-actions{align-items:flex-end}.tour-btn{padding:9px 11px}}@media (max-width:900px) and (orientation:landscape) and (max-height:600px){.sidebar{max-height:none}.course-modal-shell{width:calc(100vw - 12px)}.course-modal{height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}.course-modal-layout{flex-direction:row!important}.course-modal-sidebar{max-height:none;overflow:hidden;border-radius:14px 0 0 14px!important;flex:0 0 clamp(210px,29vw,260px)!important;width:auto!important;max-width:260px!important;padding:46px 14px 12px!important}.course-modal-sidebar.has-back{padding-top:46px!important}.sidebar-scroll{overflow-y:auto}.analytics-tabs{margin:6px 8px 4px!important}.analytics-tabs button{min-height:36px}.analytics-tabs button span{display:none}.tab-content-pane{padding:10px!important}.chart-card-header{padding:12px 14px 10px}.tour-card{min-height:0;max-height:calc(100dvh - 12px);padding:14px 16px 12px}.tour-card-top{margin-bottom:5px}.tour-body{line-height:1.45}.tour-progress{margin-block:8px}.tour-count{margin-top:5px}}@media (min-width:1800px){.content-area{max-width:1760px}.content-wrapper{padding-inline:clamp(24px,3vw,56px)}}@media (hover:none) and (pointer:coarse){.metric-card:hover,.chart-card:hover,.dock-btn:hover,.suggestion-fab:hover,.primary-action:hover,.card.hoverable:hover{transform:none}button,[role=button],input,select{touch-action:manipulation}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.metric-card:hover,.suggestion-fab:hover,.primary-action:hover,.tour-btn-next:hover,.cm-back:hover,.cm-close:hover,.cm-act-close:hover{transform:none!important}}
