.course-planner-root{--cp-border:#dbcdbf;--cp-bg:#fdfaf5;--cp-panel:#fffdfa;--cp-text:#201915;--cp-muted:#7b675c;--cp-accent:#e21833;--cp-header-bg:linear-gradient(135deg, #1a0a0a 0%, #2c1010 58%, #4a1f12 100%);--cp-header-text:#fff7f2;--cp-header-muted:#dcc7be;--cp-header-border:#fff4ec2e;--cp-builder-btn:#fff7f214;--cp-builder-btn-hover:#fff7f229;--cp-surface:#fffdfa;--cp-surface-subtle:#fcf7f1;--cp-surface-muted:#f7efe6;--cp-surface-hover:#f1e5d8;--cp-divider:#ece0d2;--cp-link:#b42334;--cp-link-muted:#b09a8e;--cp-link-star:#d4a017;--cp-danger:#d7263d;--cp-danger-foreground:#fff;--cp-header-option-text:#3d2e26;--cp-select-text:var(--cp-text);--cp-class-block-text:#2b231d;--cp-sheet-bg:#fffdfa;--cp-sheet-border:#dccfc2;--cp-sheet-header-border:#ede2d6;--cp-sheet-close-bg:#f8f0e8;--cp-sheet-close-border:#d9c9bb;--cp-sheet-close-text:#4b372d;--cp-grid-line:#ece2d8;--cp-day-header-bg:#fbf4ec;--cp-day-header-text:#6d574c;--cp-class-remove-bg:#fffbf6eb;--cp-class-remove-text:#3d2e26;gap:16px;min-height:0;display:grid}.dark .course-planner-root{--cp-border:#3a4155;--cp-bg:#1d2333;--cp-panel:#161c2a;--cp-text:#e9edf7;--cp-muted:#aab3c8;--cp-surface:#1a2132;--cp-surface-subtle:#1d2538;--cp-surface-muted:#252f45;--cp-surface-hover:#29344e;--cp-divider:#313b52;--cp-link:#8bb3ff;--cp-link-muted:#a1abc3;--cp-link-star:#f7c948;--cp-select-text:#e9edf7;--cp-class-block-text:#f7f9ff;--cp-sheet-bg:#141b29;--cp-sheet-border:#313a52;--cp-sheet-header-border:#2d3650;--cp-sheet-close-bg:#202b3f;--cp-sheet-close-border:#3a4765;--cp-sheet-close-text:#dde6fb;--cp-grid-line:#333d56;--cp-day-header-bg:#1d2538;--cp-day-header-text:#d7def2;--cp-class-remove-bg:#181f30db;--cp-class-remove-text:#e5ebff}.cp-builder-header{background:var(--cp-header-bg);color:var(--cp-header-text);border:1px solid #111a34;border-radius:4px;flex-direction:column;gap:12px;padding:14px;display:flex;box-shadow:0 4px 12px #0a10222e}.cp-builder-top-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;overflow:visible}.cp-view-header{overflow:visible}.cp-builder-top-title-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cp-projected-times-note{color:var(--cp-header-muted);background:#ffffff14;border:1px solid #ffffff42;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:inline-flex;position:relative}.cp-projected-times-note-inline{vertical-align:middle;margin-left:10px}.cp-projected-times-info{color:var(--cp-header-text);cursor:help;background:#ffffff24;border:1px solid #ffffff52;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.cp-data-source-note{color:#ffefc2;background:#ffd05b33;border-color:#ffdf788f}.cp-data-source-note .cp-projected-times-info{color:#fff7dd;background:#fff5cd42;border-color:#fff0b9d1}.cp-projected-times-popover{z-index:9999;color:#e9eefc;background:#10192f;border:1px solid #ffffff47;border-radius:4px;gap:6px;width:min(320px,82vw);padding:10px 12px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 8px 16px #080c1859}.cp-projected-times-popover:before{content:"";z-index:10000;border-bottom:8px solid #10192f;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;top:-8px;right:14px}.cp-projected-times-popover strong{font-size:12px}.cp-projected-times-popover span{color:#ced8ef;font-size:11px;line-height:1.4}.cp-projected-times-popover-close{color:#e9eefc;cursor:pointer;background:#ffffff14;border:1px solid #ffffff42;border-radius:2px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex;position:absolute;top:6px;right:6px}.cp-builder-top-row h1{letter-spacing:-.025em;margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:24px;font-weight:700}.cp-edit-meta{align-items:center;gap:8px;min-width:0;margin-left:12px;display:inline-flex}.cp-edit-meta-name{color:var(--cp-text);white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-size:13px;font-weight:600;overflow:hidden}.cp-edit-meta-name-button{font:inherit;color:var(--cp-text);white-space:nowrap;text-overflow:ellipsis;cursor:text;background:0 0;border:0;max-width:260px;padding:0;font-size:13px;font-weight:600;overflow:hidden}.cp-edit-meta-name-button:hover{color:var(--cp-link);outline:none}.cp-edit-meta-name-button:focus-visible{color:var(--cp-link);outline:none}.cp-edit-meta-name-input{width:min(260px,52vw);color:var(--cp-text);font:inherit;background:#ffffff14;border:1px solid #ffffff3d;border-radius:3px;padding:5px 8px;font-size:13px;font-weight:600}.cp-edit-meta-name-input:focus{border-color:#3b82f6b3;outline:none;box-shadow:0 0 0 3px #3b82f62e}.cp-edit-meta-separator{color:var(--cp-muted)}.cp-edit-meta-term,.cp-edit-meta-credits{color:var(--cp-muted);white-space:nowrap;font-size:12px}.cp-edit-meta-save{white-space:nowrap;font-size:12px}.cp-edit-meta-save-idle{color:var(--cp-muted)}.cp-edit-meta-save-autosaved,.cp-edit-meta-save-saved{color:#2e7d32}.cp-edit-meta-save-saving{color:#305d2f}.cp-edit-meta-save-error{color:var(--cp-link)}.cp-builder-save-status{border:1px solid var(--cp-header-border);color:var(--cp-header-muted);background:#ffffff1a;border-radius:3px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.cp-builder-save-status.is-saving{color:#f8fafc}.cp-builder-save-status.is-saved,.cp-builder-save-status.is-autosaved{color:#d1fae5}.cp-builder-save-status.is-error{color:#fecaca}.cp-builder-top-row p{color:var(--cp-header-muted);margin:4px 0 0;font-size:13px}.cp-builder-actions{gap:8px;display:inline-flex}.cp-builder-action-btn,.cp-builder-save-btn{border:1px solid var(--cp-header-border);background:var(--cp-builder-btn);color:var(--cp-header-text);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:6px 11px;font-size:12px;display:inline-flex}.cp-builder-action-btn:hover,.cp-builder-save-btn:hover{background:var(--cp-builder-btn-hover)}.cp-builder-action-btn.is-primary{background:var(--cp-danger);border-color:var(--cp-danger);color:var(--cp-danger-foreground)}.cp-builder-action-btn.is-accent{color:#fff;background:#fff3;border-color:#ffffff6b;font-weight:600;box-shadow:0 0 0 1px #ffffff1f,0 8px 18px #080c1859}.cp-builder-action-btn.is-accent:hover{background:#ffffff47}.cp-builder-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cp-builder-controls-spacer{flex:1}.cp-builder-controls label{color:var(--cp-header-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.cp-builder-controls select,.cp-builder-controls input{border:1px solid var(--cp-header-border);color:var(--cp-header-text);background:#ffffff1a;border-radius:3px;padding:6px 9px;font-size:12px}.cp-builder-controls input{min-width:220px}.cp-builder-controls select option{color:var(--cp-header-option-text)}.cp-builder-stats{align-items:center;gap:8px;font-size:11px;display:inline-flex}.cp-builder-stats span{border:1px solid var(--cp-header-border);background:#ffffff17;border-radius:3px;padding:4px 8px}.cp-builder-cost-stat{position:relative}.cp-builder-cost-btn{all:unset;cursor:pointer;border:1px solid var(--cp-header-border);white-space:nowrap;background:#ffffff17;border-radius:3px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;display:inline-flex}.cp-builder-cost-btn:hover{background:#ffffff26}.cp-builder-cost-btn.is-flat{border-color:#22c55e80}.cp-builder-cost-btn.is-overload{border-color:#f9731699}.cp-cost-badge{letter-spacing:.03em;text-transform:uppercase;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:600}.cp-cost-badge--flat{color:#86efac;background:#22c55e38}.cp-cost-badge--overload{color:#fdba74;background:#f9731638}.cp-cost-badge--hint{color:#93c5fd;background:#60a5fa2e}.cp-cost-breakdown{z-index:200;background:var(--surface-overlay,#1e2430);border:1px solid #ffffff1f;border-radius:8px;width:280px;padding:14px 16px 12px;font-size:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0006}.cp-cost-breakdown-close{all:unset;cursor:pointer;color:#fff6;font-size:16px;line-height:1;position:absolute;top:8px;right:10px}.cp-cost-breakdown-close:hover{color:#fffc}.cp-cost-breakdown-title{color:#ffffffe6;margin-bottom:10px;font-size:12px;font-weight:600}.cp-cost-breakdown-rows{color:#ffffffb3;grid-template-columns:1fr auto;gap:4px 12px;margin:0 0 10px;display:grid}.cp-cost-breakdown-rows dt{font-weight:400}.cp-cost-breakdown-rows dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.cp-cost-breakdown-total{color:#ffffffe6;border-top:1px solid #ffffff1f;justify-content:space-between;padding-top:8px;font-weight:600;display:flex}.cp-cost-breakdown-note{color:#ffffff8c;margin:8px 0 0;font-size:11px;line-height:1.4}.cp-cost-breakdown-note.is-warning{color:#fdba74}.cp-cost-breakdown-disclaimer{color:#ffffff4d;margin:8px 0 0;font-size:10px;line-height:1.4}.cp-credit-warning{color:#93c5fd;background:#60a5fa1a;border:1px solid #60a5fa4d;border-radius:6px;align-items:flex-start;gap:7px;margin-top:6px;padding:7px 12px;font-size:11px;line-height:1.45;display:flex}.cp-credit-warning.is-critical{color:#fca5a5;background:#ef44441a;border-color:#ef444459}.cp-credit-warning-icon{flex-shrink:0;margin-top:1px;font-size:12px}.cp-builder-subtitle{color:var(--cp-header-muted);border-top:1px solid #ffffff1f;align-items:center;gap:8px;padding-top:10px;font-size:12px;display:inline-flex}.course-planner-layout{--cp-calendar-sheet-left:314px;min-height:calc(100vh - 260px);grid-template-columns:300px minmax(0,1fr);gap:10px;min-height:calc(100dvh - 260px);display:grid}.cp-layout-column{min-width:0;min-height:0;display:flex}.cp-layout-search>.cp-search-panel,.cp-layout-calendar>.cp-calendar-wrapper{flex:1;min-height:0}.cp-calendar-wrapper{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.cp-calendar-wrapper>.cp-calendar{flex:1;min-width:0;min-height:0}.cp-color-legend{border-bottom:1px solid var(--cp-border);background:var(--cp-panel);flex-wrap:wrap;align-items:center;gap:12px;padding:6px 10px;display:flex}.cp-color-legend-item{align-items:center;gap:5px;display:flex}.cp-color-legend-label{color:var(--cp-text);letter-spacing:.02em;font-size:.72rem;font-weight:600}.cp-search-panel{background:var(--cp-panel);border:1px solid var(--cp-border);border-radius:4px;flex-direction:column;gap:7px;min-height:0;padding:8px;display:flex;overflow:hidden}.cp-search-box{border:1px solid var(--cp-border);background:var(--cp-bg);border-radius:3px;align-items:center;gap:7px;padding:7px 10px;display:flex;box-shadow:inset 0 1px 2px #0000000a}.cp-search-box input{width:100%;color:var(--cp-text);background:0 0;border:0;outline:none;font-family:inherit;font-size:13px}.cp-search-box input::placeholder{color:var(--cp-muted);font-size:13px}.cp-suggestions{border:1px solid var(--cp-border);border-radius:3px;overflow:hidden}.cp-suggestions button{background:var(--cp-surface);width:100%;color:var(--cp-select-text);text-align:left;cursor:pointer;border:0;padding:6px 8px;font-size:14px}.cp-suggestions button.is-active,.cp-suggestions button:hover{background:var(--cp-surface-hover)}.cp-filters{border:1px solid var(--cp-border);background:var(--cp-surface-subtle);border-radius:3px;padding:8px}.cp-filters-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cp-filters-title{color:var(--cp-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.cp-chip{background:var(--cp-accent);min-width:18px;height:18px;color:var(--cp-danger-foreground);border-radius:3px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.cp-gen-ed-filter{flex-direction:column;gap:0;display:flex}.cp-gen-ed-toggle{cursor:pointer;color:var(--cp-muted);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0 0 6px;font-size:11px;font-weight:600;display:flex}.cp-gen-ed-chevron{transition:transform .15s}.cp-gen-ed-chevron.is-open{transform:rotate(180deg)}.cp-gen-ed-panel{flex-direction:column;gap:8px;padding-bottom:2px;display:flex}.cp-gen-ed-group-label{color:var(--cp-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;font-size:.68rem;font-weight:600}.cp-gen-ed-chips{flex-wrap:wrap;gap:4px;display:flex}.cp-gen-ed-chip{border:1px solid var(--cp-border);cursor:pointer;color:var(--cp-muted);background:0 0;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:600;line-height:1.6}.cp-gen-ed-chip.is-active{background:var(--cp-accent);color:var(--cp-danger-foreground);border-color:var(--cp-accent)}.cp-filters-grid{gap:6px;display:grid}.cp-filters-grid label{color:var(--cp-muted);gap:4px;font-size:11px;display:grid}.cp-filters-grid input,.cp-filters-grid select{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-select-text);border-radius:6px;padding:6px;font-size:12px}.cp-filter-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.cp-checkbox-label{align-items:center;gap:6px;display:flex!important}.cp-ghost-btn{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:6px;padding:6px;display:inline-flex}.cp-toolbar-btn{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:inline-flex}.cp-results-list{flex:1;gap:8px;min-height:0;display:grid;overflow:auto}.cp-course-card{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:8px;padding:10px;box-shadow:0 1px #00000005}.cp-course-card.is-in-schedule{background:color-mix(in srgb, var(--cp-surface) 94%, #2e7d321f);border-color:#2e7d3252}.cp-course-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.cp-course-card-header:hover{background:var(--cp-surface-hover);border-radius:3px}.cp-course-header-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.cp-course-title-row{flex-wrap:nowrap;align-items:baseline;gap:6px;min-width:0;display:flex}.cp-course-code-anchor{color:var(--cp-text);font-family:ui-monospace,monospace;font-size:14px;font-weight:700;text-decoration:none}.cp-course-code-anchor:hover{color:var(--cp-link);text-decoration:underline}.cp-course-title-text{color:var(--cp-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.cp-course-pills-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cp-course-pill{border:1px solid var(--cp-divider);color:var(--cp-muted);background:var(--cp-surface-muted);white-space:nowrap;cursor:default;border-radius:999px;align-items:center;padding:1px 6px;font-size:10px;display:inline-flex}.cp-course-pill--credits{color:var(--cp-muted)}.cp-course-pill--gened{cursor:pointer;border-color:var(--cp-divider);color:var(--cp-link);background:0 0;transition:background .1s}.cp-course-pill--gened:hover{background:var(--cp-surface-muted);color:var(--cp-link)}.cp-course-pill--source{cursor:pointer;color:var(--cp-muted);background:0 0;text-decoration:none}.cp-course-pill--source:hover{color:var(--cp-link);text-decoration:underline}.cp-section-count{color:var(--cp-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.cp-toggle-btn{cursor:pointer;color:var(--cp-muted);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:flex}.cp-toggle-btn:hover{color:var(--cp-text);background:var(--cp-surface-hover)}.cp-course-card .cp-course-data-status{color:var(--cp-muted);margin-top:2px;font-size:11px}.cp-filters-toggle{border:1px solid var(--cp-border);background:var(--cp-surface-subtle);width:100%;color:var(--cp-muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font-size:11px;font-weight:600;display:inline-flex}.cp-filters-toggle:hover{background:var(--cp-surface-hover);border-color:color-mix(in srgb, var(--cp-accent) 30%, var(--cp-border));color:var(--cp-text)}.cp-filters-toggle-chevron{transition:transform .2s}.cp-filters-toggle-label{padding-left:2px;padding-right:2px;transition:padding-left .2s,padding-right .2s,transform .2s;display:inline-block;transform:translate(-1px)}.cp-filters-toggle-label.is-open{padding-left:6px;padding-right:0;transform:translate(1px)}.cp-filters-toggle-chevron.is-open{transform:rotate(180deg)}.cp-search-panel.is-filters-collapsed .cp-results-list{padding-top:2px}.cp-list-controls-band{z-index:2;border:1px solid var(--cp-border);background:color-mix(in srgb, var(--cp-panel) 90%, var(--cp-bg));contain:layout style paint;border-radius:4px;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:8px;display:flex;position:sticky;top:0}.cp-list-control-item{letter-spacing:.04em;text-transform:uppercase;min-width:120px;color:var(--cp-muted);gap:4px;font-size:10px;font-weight:600;display:grid}.cp-list-control-item--grow{flex:1}.cp-list-control-item select{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-select-text);border-radius:6px;padding:5px 7px;font-size:12px}.cp-list-toggle-item{border:1px solid var(--cp-border);color:var(--cp-text);background:var(--cp-surface);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:500;display:inline-flex}.cp-list-toggle-item input{margin:0}.cp-filter-impact-note{color:var(--cp-muted);margin:0;font-size:11px}.cp-course-extra{border:1px solid var(--cp-divider);background:var(--cp-surface-subtle);border-radius:8px;gap:4px;margin-top:8px;padding:7px;display:grid}.cp-course-meta{align-items:center;gap:4px;font-size:14px;display:inline-flex}.cp-course-meta button{border:1px solid var(--cp-border);background:var(--cp-surface-muted);border-radius:4px;width:24px;height:24px}.cp-sections-list{border-top:1px solid var(--cp-divider);gap:6px;margin-top:8px;padding-top:8px;display:grid}.cp-course-sections-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--cp-muted);margin:0;font-size:10px;font-weight:700}.cp-section-row{border:1px solid var(--cp-divider);background:var(--cp-surface-subtle);text-align:left;cursor:pointer;border-left:2px solid #0000;border-radius:6px;flex-direction:column;gap:4px;width:100%;padding:8px 9px;transition:background .1s;display:flex}.cp-section-row:hover{background:var(--cp-surface-hover)}.cp-section-row.is-selected{background:#2e7d3214;border-color:#2e7d324d}.dark .cp-section-row.is-selected{background:#4caf501a}.cp-section-row.is-closed{opacity:.6}.cp-section-row.is-conflicting{opacity:.75}.cp-section-row.is-scheduled{background:#2e7d320f;border-left-color:#2e7d32}.cp-section-line1{align-items:flex-start;gap:6px;display:flex}.cp-section-code{color:var(--cp-text);flex-shrink:0;min-width:34px;padding-top:1px;font-family:ui-monospace,monospace;font-size:11px;font-weight:600}.cp-section-code.is-selected{color:#2e7d32}.dark .cp-section-code.is-selected{color:#81c784}.cp-section-check{color:#2e7d32}.dark .cp-section-check{color:#81c784}.cp-meetings-stack{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.cp-meeting-line{color:var(--cp-text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cp-meeting-time{color:var(--cp-text);font-size:11px}.cp-room-link{color:var(--cp-link);font-size:11px;text-decoration:none}.cp-room-link:hover{text-decoration:underline}.cp-room-text{color:var(--cp-muted);font-size:11px}.cp-fit-dots{cursor:default;flex-shrink:0;align-items:center;gap:3px;padding-top:3px;display:inline-flex}.cp-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.cp-dot--filled{background:#2e7d32}.dark .cp-dot--filled{background:#66bb6a}.cp-dot--empty{border:1px solid var(--cp-divider);background:0 0}.cp-dot--half{background:#e65100}.dark .cp-dot--half{background:#ffa726}.cp-dot--conflict{border:1px solid var(--cp-danger);background:0 0}.cp-chip-row{flex-wrap:wrap;gap:4px;padding:1px 0;display:flex}.cp-chip{cursor:default;white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:10px;display:inline-flex}.cp-chip--conflict{color:var(--cp-danger);background:#d7263d1a;border:1px solid #d7263d40}.dark .cp-chip--conflict{color:#ff6b6b;background:#d7263d26;border-color:#d7263d59}.cp-chip--constraint{color:#e65100;background:#e6510014;border:1px solid #e6510033}.dark .cp-chip--constraint{color:#ffa726;background:#e651001f;border-color:#e651004d}.cp-section-line2{justify-content:space-between;align-items:center;gap:10px;display:flex}.cp-instructor-group{flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.cp-capacity-group{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;display:flex}.cp-state-pill{letter-spacing:.03em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.cp-state-pill--selected{color:#2e7d32;background:#2e7d321a;border-color:#2e7d323d}.cp-availability-pill{border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.cp-availability-pill--open{color:#1b5e20;background:#1b5e201a;border-color:#1b5e2038}.cp-availability-pill--low{color:#e65100;background:#e651001a;border-color:#e6510038}.cp-availability-pill--waitlist{color:#ad1457;background:#ad14571a;border-color:#ad14573d}.cp-availability-pill--closed{color:#6d4c41;background:#6d4c411f;border-color:#6d4c4140}.cp-instructor-line{align-items:center;gap:6px;display:inline-flex}.cp-prof-link{width:-moz-fit-content;width:fit-content;color:var(--cp-link);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;max-width:160px;font-size:11px;text-decoration:none;display:inline-flex;overflow:hidden}.cp-prof-link:hover{text-decoration:underline}.cp-prof-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cp-rating-badge{cursor:pointer;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600;line-height:1.4}.cp-rating-badge--high{color:#2e7d32;background:#2e7d321f}.dark .cp-rating-badge--high{color:#81c784;background:#4caf502e}.cp-rating-badge--mid{color:#bf360c;background:#e651001a}.dark .cp-rating-badge--mid{color:#ffa726;background:#ffa72626}.cp-rating-badge--low{color:var(--cp-danger);background:#d7263d1a}.dark .cp-rating-badge--low{color:#ff6b6b;background:#d7263d26}.cp-rating-badge--none{color:var(--cp-muted);background:0 0}.cp-seats-text{white-space:nowrap;cursor:default;font-size:10px;font-weight:500}.cp-seats--open{color:#2e7d32;font-weight:500}.dark .cp-seats--open{color:#81c784}.cp-seats--low{color:#e65100;font-weight:500}.dark .cp-seats--low{color:#ffa726}.cp-seats--full{color:var(--cp-danger);font-weight:500}.cp-wl-text{color:var(--cp-muted);white-space:nowrap;font-size:10px}.cp-wl-text.cp-wl--nonzero{color:#bf360c;font-weight:500}.dark .cp-wl-text.cp-wl--nonzero{color:#ffa726}.cp-add-btn{letter-spacing:.02em;border:1px solid var(--cp-divider);background:var(--cp-surface);color:var(--cp-text);cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:10px;font-weight:600;transition:background .1s,color .1s,border-color .1s}.cp-add-btn:hover{color:#2e7d32;background:#2e7d321f;border-color:#2e7d324d}.dark .cp-add-btn:hover{color:#81c784;background:#4caf5026;border-color:#4caf5059}.cp-add-btn--added{color:#2e7d32;background:#2e7d321f;border-color:#2e7d3257}.dark .cp-add-btn--added{color:#81c784;background:#4caf5026;border-color:#4caf5059}.cp-add-btn--waitlist{color:#bf360c;background:#e651001c;border-color:#e6510047}.dark .cp-add-btn--waitlist{color:#ffa726;background:#e651001f}.cp-add-btn--conflict{opacity:.55;cursor:not-allowed}.cp-section-row a,.cp-info-panel a{color:var(--cp-link);text-decoration:none}.cp-section-row a:hover,.cp-info-panel a:hover{text-decoration:underline}.cp-prof-stars{letter-spacing:.06em;font-size:10px;font-weight:700;display:inline-flex}.cp-prof-stars-filled{color:var(--cp-link-star)}.cp-prof-stars-empty{color:var(--cp-link-muted)}.cp-prof-rating-value{color:var(--cp-link);font-size:10px;font-weight:600}.cp-prof-rating-na{color:var(--cp-link-muted);font-size:10px}.cp-prof-detail-btn{color:var(--cp-link-muted);cursor:pointer;opacity:.7;background:0 0;border:none;justify-content:center;align-items:center;padding:0 2px;font-size:11px;line-height:1;transition:opacity .1s;display:inline-flex}.cp-prof-detail-btn:hover{opacity:1;color:var(--cp-link)}.cp-calendar{--cp-day-header-height:29px;background:var(--cp-panel);border:1px solid var(--cp-border);overscroll-behavior:contain;scrollbar-gutter:stable both-edges;border-radius:10px;grid-template-columns:56px minmax(0,1fr);max-width:100%;display:grid;overflow:auto}.cp-timeline{z-index:3;background:var(--cp-panel);border-right:1px solid var(--cp-grid-line);padding-top:var(--cp-day-header-height);position:sticky;left:0}.cp-time-label{height:var(--cp-hour-height,80px);text-align:right;color:var(--cp-muted);padding-right:8px;font-size:11px}.cp-grid{grid-template-columns:repeat(var(--cp-day-count,6), minmax(108px, 1fr));min-width:648px;display:grid}.cp-day-column{border-right:1px solid var(--cp-grid-line)}.cp-day-header{z-index:2;height:var(--cp-day-header-height);background:var(--cp-day-header-bg);border-bottom:1px solid var(--cp-grid-line);text-align:center;color:var(--cp-day-header-text);justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:600;display:flex;position:sticky;top:0}.cp-day-track{height:calc(var(--cp-hour-height,80px) * var(--cp-hour-rows,12));background-image:linear-gradient(to bottom, var(--cp-grid-line) 1px, transparent 1px);background-size:100% var(--cp-hour-height,80px);position:relative}.cp-day-track-other{height:auto;min-height:calc(var(--cp-hour-height,80px) * var(--cp-hour-rows,12));background-image:none;gap:8px;padding:8px;display:grid}.cp-zoom-controls{z-index:3;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:12px;right:16px}.cp-zoom-btn{border:1px solid var(--cp-border);background:var(--cp-panel);width:28px;height:28px;color:var(--cp-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .1s,color .1s;display:flex;box-shadow:0 1px 3px #00000026}.cp-zoom-btn:hover:not(:disabled){background:var(--cp-hover);color:var(--cp-text)}.cp-zoom-btn:disabled{opacity:.35;cursor:default}.cp-class-block{color:var(--cp-class-block-text);border:1px solid #5a5a6433;border-radius:8px;padding:6px;font-size:10px;position:absolute;overflow:hidden;box-shadow:0 1px 2px #1414281f}.cp-day-track-other .cp-class-block{width:100%;height:auto;min-height:88px;padding:8px;position:relative;top:auto;left:auto}.cp-class-block strong{font-size:13px;display:block}.cp-class-block span{font-size:12px;display:block}.cp-class-block.is-preview{opacity:.5}.cp-class-block.is-hover-target{outline-offset:-2px;box-shadow:0 0 0 2px color-mix(in srgb, var(--cp-accent) 50%, transparent), 0 4px 16px #14142838;outline:2px solid #ffffffbf}.cp-class-block.is-pulse{animation:.9s cp-block-highlight-pulse}@keyframes cp-block-highlight-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--cp-accent) 55%, transparent);transform:scale(1)}40%{box-shadow:0 0 0 6px color-mix(in srgb, var(--cp-accent) 35%, transparent);transform:scale(1.025)}to{transform:scale(1);box-shadow:0 1px 2px #1414281f}}.cp-class-remove{background:var(--cp-class-remove-bg);width:16px;height:16px;color:var(--cp-class-remove-text);border:0;border-radius:999px;place-items:center;display:grid;position:absolute;top:3px;right:3px}.cp-info-panel{background:var(--cp-panel);border:1px solid var(--cp-border);color:var(--cp-text);border-radius:10px;padding:12px}.cp-sheet-backdrop{z-index:39;background:#080c1870;border:0;position:fixed;top:0;bottom:0;left:0;right:0}.cp-bottom-sheet{z-index:40;background:var(--cp-sheet-bg);border:1px solid var(--cp-sheet-border);max-height:min(64vh,520px);color:var(--cp-text);border-top-left-radius:16px;border-top-right-radius:16px;grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 32px #10192f38}.cp-bottom-sheet.cp-bottom-sheet-calendar{left:var(--cp-calendar-sheet-left)}.cp-bottom-sheet-header{border-bottom:1px solid var(--cp-sheet-header-border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.cp-sheet-close{border:1px solid var(--cp-sheet-close-border);background:var(--cp-sheet-close-bg);color:var(--cp-sheet-close-text);cursor:pointer;border-radius:8px;padding:5px 10px;font-size:12px}.cp-bottom-sheet-content{padding:14px;overflow:auto}.cp-overlay-grid{gap:8px;display:grid}.cp-overlay-grid p,.cp-overlay-grid a{font-size:12px}.cp-overlay-grid p{color:var(--cp-text)}.cp-overlay-grid a{color:var(--cp-link)}.cp-info-panel h4{margin:0 0 6px}.cp-info-panel p,.cp-info-panel li{color:var(--cp-muted);margin:0;font-size:12px}.cp-info-lines{gap:4px;margin:8px 0;padding-left:0;list-style:none;display:grid}.cp-inline-loading,.cp-muted-text,.cp-error-text{color:var(--cp-muted);font-size:12px}.cp-inline-link{color:var(--cp-link);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.cp-inline-link:hover{text-decoration:underline}.cp-error-text{color:var(--cp-link)}.cp-status-banner{border:1px solid var(--cp-border);background:var(--cp-surface-subtle);color:var(--cp-text);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.cp-status-banner.is-unsaved{background:#d7263d1f;border-color:#d16c78}.cp-status-banner.is-saved{background:#1a9b5b1f;border-color:#3e8f67}.cp-status-banner-icon{flex:none;width:14px;height:14px}.cp-status-banner-cloud{opacity:.75;width:13px;height:13px;margin-left:auto}.spin{animation:.9s linear infinite cp-spin}@keyframes cp-spin{to{transform:rotate(360deg)}}@media (max-width:1280px){.course-planner-layout{--cp-calendar-sheet-left:334px;grid-template-columns:320px minmax(0,1fr)}}@media (max-width:980px){.cp-builder-top-row{flex-direction:column}.cp-builder-actions{width:100%}.cp-builder-action-btn,.cp-builder-save-btn{flex:1}.cp-builder-controls{align-items:stretch}.cp-builder-controls input{width:100%;min-width:0}.course-planner-layout{grid-template-columns:1fr}.cp-results-list{max-height:320px}.cp-bottom-sheet.cp-bottom-sheet-calendar{left:0}}.cp-library-root{gap:12px;display:grid}@keyframes cp-cardSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-fadeDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-blockPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.cp-view-root{flex-direction:column;gap:0;height:100%;display:flex;overflow:hidden}.cp-view-header{background:var(--cp-header-bg);color:var(--cp-header-text);border:1px solid #111a34;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex}.cp-view-header h1{letter-spacing:-.025em;margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:24px;font-weight:700}.cp-view-header p{color:var(--cp-header-muted);margin:4px 0 0;font-size:13px}.cp-view-actions{flex-shrink:0;gap:8px;display:inline-flex}.cp-view-subheader{border-bottom:1px solid var(--cp-divider);background:var(--cp-surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 32px;display:flex}.cp-view-subheader-left{align-items:center;gap:12px;display:flex}.cp-view-sh-title{color:var(--cp-text);letter-spacing:-.02em;font-family:Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:700}.cp-view-sh-count{color:var(--cp-muted);background:var(--cp-surface-muted);border:1px solid var(--cp-divider);border-radius:100px;padding:3px 8px;font-size:.72rem;font-weight:300}.cp-view-subheader-right{color:var(--cp-muted);align-items:center;gap:8px;font-size:.72rem;font-weight:300;display:flex}.cp-view-layout{flex:1;grid-template-columns:340px 1fr;display:grid;overflow:hidden}.cp-view-list-panel{border-right:1px solid var(--cp-divider);background:var(--cp-surface-muted);flex-direction:column;gap:8px;padding:16px 12px;display:flex;overflow-y:auto}.cp-view-list-panel::-webkit-scrollbar{width:3px}.cp-view-list-panel::-webkit-scrollbar-thumb{background:var(--cp-border);border-radius:2px}.cp-view-preview-panel{background:var(--cp-bg);flex-direction:column;display:flex;overflow:hidden}.cp-view-toolbar{border-bottom:1px solid var(--cp-divider);gap:8px;padding:10px;display:grid}.cp-view-sort-row{color:var(--cp-muted);align-items:center;gap:6px;font-size:11px;display:flex}.cp-view-sort-chip{border:1px solid var(--cp-divider);background:var(--cp-surface);color:var(--cp-muted);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:11px;transition:all .15s;display:inline-flex}.cp-view-sort-chip:hover{color:var(--cp-accent);border-color:#c6282840}.cp-view-sort-chip.is-active{color:var(--cp-text);background:#e218331a;border-color:#e2183373}.cp-view-total-pill{border:1px solid var(--cp-divider);color:var(--cp-muted);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.72rem;font-weight:300}.cp-view-term-groups{gap:12px;padding:10px;display:grid;overflow:auto}.cp-view-term-group{gap:8px;display:grid}.cp-view-term-header{align-items:center;gap:7px;display:flex}.cp-view-term-dot{background:var(--cp-accent);border-radius:999px;width:8px;height:8px}.cp-view-term-header h2{color:var(--cp-text);margin:0;font-size:13px}.cp-view-term-divider{background:var(--cp-divider);flex:1;height:1px}.cp-view-term-header span{color:var(--cp-muted);font-size:11px}.cp-view-cards{gap:8px;display:grid}.cp-view-card{background:var(--cp-surface);border:1.5px solid var(--cp-divider);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;min-height:100px;padding:0;transition:all .22s cubic-bezier(.16,1,.3,1);animation:.4s cubic-bezier(.16,1,.3,1) both cp-cardSlideIn;position:relative;overflow:hidden}.cp-view-card:first-child{animation-delay:40ms}.cp-view-card:nth-child(2){animation-delay:80ms}.cp-view-card:nth-child(3){animation-delay:.12s}.cp-view-card:nth-child(4){animation-delay:.16s}.cp-view-card:nth-child(5){animation-delay:.2s}.cp-view-card:hover{border-color:#c6282838;transform:translateY(-1px);box-shadow:0 1px 3px #17120e0f,0 4px 14px #17120e0d}.cp-view-card.is-selected{border-color:var(--cp-accent);box-shadow:0 0 0 3px #c628281a,0 1px 3px #17120e0f}.cp-view-card:focus-visible{border-color:var(--cp-accent);outline:none;box-shadow:0 0 0 3px #c628281f,0 1px 3px #17120e0f}.cp-view-card.is-main{border-color:#c628284d}.cp-view-card-head{align-items:flex-start;gap:10px;padding:12px 14px 10px;display:flex}.cp-view-card-badges{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.cp-view-card-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:.6rem;font-weight:700}.cp-view-card-badge.badge-main{color:var(--cp-accent);background:#c6282817;border:1px solid #c628282e}.cp-view-card-badge.badge-draft{background:var(--cp-surface-muted);color:var(--cp-muted);border:1px solid var(--cp-divider)}.cp-view-card-badge.badge-selected{color:var(--cp-accent);background:#c628281f;border:1px solid #c6282833}.cp-view-card-info{flex:1;min-width:0}.cp-view-card-title-row{align-items:center;gap:7px;min-width:0;display:flex}.cp-view-rename-row{flex:1;align-items:center;gap:5px;min-width:0;display:inline-flex}.cp-view-rename-row input{border:1px solid var(--cp-border);background:var(--cp-surface-subtle);width:100%;min-width:0;color:var(--cp-text);border-radius:6px;padding:4px 7px;font-size:12px}.cp-view-card-title-row h3{color:var(--cp-text);white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;font-size:.88rem;font-weight:600;overflow:hidden}.cp-view-card-meta{color:var(--cp-muted);font-size:.7rem;font-weight:300}.cp-view-title-btn{text-align:left;cursor:text;background:0 0;border:0;min-width:0;padding:0}.cp-view-title-btn:hover h3{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cp-view-main-pill{color:var(--cp-accent);letter-spacing:.06em;text-transform:uppercase;background:#c6282817;border:1px solid #c628282e;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.cp-view-card-actions{opacity:0;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.cp-view-card:hover .cp-view-card-actions,.cp-view-card.is-selected .cp-view-card-actions{opacity:1}.cp-view-card-action-btn{border:1px solid var(--cp-divider);background:var(--cp-surface);cursor:pointer;width:26px;height:26px;color:var(--cp-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.cp-view-card-action-btn:hover{color:var(--cp-accent);background:#c628280a;border-color:#c628284d}.cp-view-card-action-btn.is-edit{background:var(--cp-accent);border-color:var(--cp-accent);color:#fff}.cp-view-card-action-btn.is-edit:hover{background:#b71c1c}.cp-view-card-chips{border-top:1px solid var(--cp-divider);background:var(--cp-surface-muted);flex-wrap:wrap;gap:4px;padding:8px 14px 12px;display:flex}.cp-view-card-chip{background:var(--cp-surface);border:1px solid var(--cp-divider);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.65rem;transition:all .15s;display:flex}.cp-view-chip-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.cp-view-chip-code{color:var(--cp-text);font-weight:700}.cp-view-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0 14px;display:grid}.cp-view-stat-grid div{border:1px solid var(--cp-divider);background:var(--cp-surface-subtle);text-align:center;border-radius:6px;gap:2px;padding:5px;display:grid}.cp-view-stat-grid small{color:var(--cp-muted);font-size:10px}.cp-view-stat-grid strong{color:var(--cp-text);font-size:11px}.cp-view-course-pills{flex-wrap:wrap;gap:4px;display:flex}.cp-view-course-pills span{color:#b42334;text-align:center;background:#e218331a;border:1px solid #e2183359;border-radius:6px;justify-content:center;align-items:center;padding:2px 7px;font-size:10px;line-height:1;display:inline-flex}.cp-view-edited-line,.cp-view-main-line{color:var(--cp-muted);margin:0;font-size:10px}.cp-view-main-line{align-items:center;gap:4px;display:inline-flex}.cp-view-preview-head{border-bottom:1px solid var(--cp-divider);background:var(--cp-surface);flex-shrink:0;align-items:center;gap:16px;padding:16px 24px;animation:.3s both cp-fadeDown;display:flex}.cp-view-preview-title{flex:1;align-items:center;gap:8px;min-width:0;display:inline-flex}.cp-view-preview-title h3{color:var(--cp-text);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.1rem;font-weight:700;overflow:hidden}.cp-view-preview-meta{color:var(--cp-muted);font-size:.73rem;font-weight:300}.cp-view-preview-actions{flex-shrink:0;gap:7px;display:flex}.cp-view-term-pill{border:1px solid var(--cp-divider);color:var(--cp-muted);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px}.cp-view-credits-bar{background:var(--cp-surface-muted);border-bottom:1px solid var(--cp-divider);flex-shrink:0;align-items:center;gap:14px;padding:9px 24px;display:flex}.cp-view-cr-label{color:var(--cp-muted);white-space:nowrap;font-size:.72rem;font-weight:300}.cp-view-cr-label strong{color:var(--cp-text);font-weight:600}.cp-view-cr-track{background:var(--cp-divider);border-radius:3px;flex:1;height:5px;overflow:hidden}.cp-view-cr-fill{background:linear-gradient(90deg, var(--cp-accent), #ef5350);border-radius:3px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.cp-view-cr-chips{flex-wrap:wrap;gap:5px;display:flex}.cp-view-cr-chip{border:1px solid;border-radius:4px;padding:2px 8px;font-size:.6rem;font-weight:700}.cp-view-preview-body{flex:1;padding:8px;overflow:auto}.cp-view-preview-body::-webkit-scrollbar{width:4px;height:4px}.cp-view-preview-body::-webkit-scrollbar-thumb{background:var(--cp-border);border-radius:2px}.cp-view-preview-body .cp-calendar{height:100%;min-height:520px}.cp-view-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;min-height:360px;padding:48px;animation:.4s both cp-fadeUp;display:flex}.cp-view-empty-icon{color:#c6282859;background:#c628280d;border:1px solid #c6282821;border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.cp-view-empty-title{color:var(--cp-text);letter-spacing:-.02em;font-size:1.2rem;font-weight:700}.cp-view-empty-sub{color:var(--cp-muted);max-width:280px;font-size:.82rem;font-weight:300;line-height:1.6}.cp-view-empty-hint{color:var(--cp-muted);background:var(--cp-surface-muted);border:1px solid var(--cp-divider);border-radius:100px;align-items:center;gap:6px;padding:8px 14px;font-size:.72rem;font-weight:300;display:flex}.cp-view-card-dbl-hint{color:var(--cp-muted);opacity:0;pointer-events:none;font-size:.6rem;font-weight:300;transition:opacity .2s;position:absolute;bottom:8px;right:10px}.cp-view-card.is-selected .cp-view-card-chips{padding-bottom:30px}.cp-view-card.is-selected .cp-view-card-dbl-hint{opacity:1}.cp-view-list-msg{padding:16px}.cp-view-empty-state--compact{min-height:200px}.cp-view-preview-ghost-btn{cursor:pointer;border:1px solid var(--cp-divider);background:var(--cp-surface);color:var(--cp-text);border-radius:7px;align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:.73rem;font-weight:500;transition:all .15s;display:flex}.cp-view-preview-ghost-btn:hover{color:var(--cp-accent);border-color:#c6282840}.cp-view-preview-edit-btn{cursor:pointer;background:var(--cp-accent);color:#fff;border:none;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:.78rem;font-weight:500;transition:all .15s;display:flex;box-shadow:0 2px 10px #c6282840}.cp-view-preview-edit-btn:hover{background:#b71c1c;transform:translateY(-1px);box-shadow:0 4px 18px #c6282859}.cp-library-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cp-library-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cp-library-controls input,.cp-library-controls select{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text);border-radius:8px;padding:7px 9px;font-size:12px}.cp-library-list{gap:12px;display:grid}.cp-library-card{border:1px solid var(--cp-border);background:var(--cp-panel);border-radius:10px;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:12px;padding:10px;display:grid}.cp-library-info{gap:6px;display:grid}.cp-library-info h2{color:var(--cp-text);margin:0;font-size:16px}.cp-library-info p{color:var(--cp-muted);margin:0;font-size:12px}.cp-library-classes{color:var(--cp-text);gap:3px;margin:0;padding-left:16px;font-size:12px;display:grid}.cp-calendar-preview{min-height:230px}.cp-generate-calendar-preview{pointer-events:none}.cp-calendar-preview .cp-grid{min-width:560px}.cp-generate-root{--cp-g-red:#c62828;--cp-g-red-mid:#e53935;--cp-g-red-light:#ef9a9a;--cp-g-gold:#f9a825;--cp-g-cream:#fdfaf5;--cp-g-ink:#17120e;--cp-g-ink-2:#3d2e26;--cp-g-ink-muted:#7a6358;--cp-g-ink-ghost:#b09a8e;--cp-g-surface:#fff;--cp-g-surface-2:#faf7f3;--cp-g-border-soft:#37231914;--cp-g-border-strong:#c6282829;--cp-g-shadow-sm:0 1px 4px #17120e0f, 0 4px 16px #17120e0a;--cp-g-shadow-md:0 2px 8px #17120e14, 0 10px 30px #17120e14;background:var(--cp-g-cream);color:var(--cp-g-ink);border-radius:14px;gap:14px;padding:16px;font-family:DM Sans,Segoe UI,sans-serif}.cp-generate-topbar{border:1px solid var(--cp-g-border-soft);background:#ffffff94;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.cp-generate-topbar-left h1{letter-spacing:-.02em;margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:1.55rem;font-weight:700}.cp-generate-topbar-left p{color:var(--cp-g-ink-muted);margin:4px 0 0;font-size:.84rem}.cp-generate-autosave{color:var(--cp-g-ink-ghost);border:1px solid var(--cp-g-border-soft);background:#ffffffa6;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;font-size:.76rem;display:inline-flex}.cp-generate-autosave-dot{background:#4caf50;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite cp-g-pulse-green}.cp-generate-content{grid-template-columns:390px minmax(0,1fr);gap:14px;min-height:calc(100vh - 260px);display:grid}.cp-generate-config-panel{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface);border-radius:12px;flex-direction:column;gap:16px;padding:18px;display:flex;overflow-y:auto}.cp-generate-section-block{flex-direction:column;gap:11px;display:flex}.cp-generate-section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cp-generate-section-title{letter-spacing:-.01em;color:var(--cp-g-ink);margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:1rem}.cp-generate-section-hint{color:var(--cp-g-ink-ghost);font-size:.72rem}.cp-generate-divider{background:var(--cp-g-border-soft);height:1px}.cp-generate-term-tabs{background:var(--cp-g-surface-2);border:1px solid var(--cp-g-border-soft);border-radius:10px;gap:4px;padding:4px;display:flex}.cp-generate-term-tab{color:var(--cp-g-ink-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:7px 4px;font-size:.78rem;font-weight:600;transition:all .18s}.cp-generate-term-tab:hover{color:var(--cp-g-ink-2);background:#fff9}.cp-generate-term-tab.is-active{background:var(--cp-g-surface);color:var(--cp-g-red);box-shadow:0 1px 4px #17120e1a}.cp-generate-field-label{color:var(--cp-g-ink-muted);font-size:.74rem;font-weight:600}.cp-generate-input,.cp-generate-select,.cp-generate-time-field input,.cp-generate-credit-input{border:1.5px solid var(--cp-g-border-soft);background:var(--cp-g-surface);width:100%;color:var(--cp-g-ink);border-radius:9px;outline:none;padding:9px 11px;font-size:.86rem;transition:border-color .2s,box-shadow .2s}.cp-generate-input:focus,.cp-generate-select:focus,.cp-generate-time-field input:focus,.cp-generate-credit-input:focus{border-color:var(--cp-g-red-mid);box-shadow:0 0 0 3px #c628281a}.cp-generate-course-list{flex-direction:column;gap:8px;display:flex}.cp-generate-course-item{border:1.5px solid var(--cp-g-border-soft);background:var(--cp-g-surface);box-shadow:var(--cp-g-shadow-sm);cursor:grab;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;transition:all .18s;animation:.25s both cp-g-slide-item;display:grid}.cp-generate-course-item:hover{border-color:var(--cp-g-border-strong)}.cp-generate-course-item.is-required{border-left:3px solid var(--cp-g-red)}.cp-generate-course-item.is-optional{border-left:3px solid var(--cp-g-gold)}.cp-generate-course-item.is-dragging{opacity:.65;transform:translateY(2px)}.cp-generate-course-drag{color:var(--cp-g-ink-ghost);align-items:center;display:inline-flex}.cp-generate-course-meta{gap:2px;min-width:0;display:grid}.cp-generate-course-code{letter-spacing:.04em;color:var(--cp-g-red);font-size:.73rem;font-weight:700}.cp-generate-course-item.is-optional .cp-generate-course-code{color:#9c6e00}.cp-generate-course-name{color:var(--cp-g-ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:.81rem;overflow:hidden}.cp-generate-course-type{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:3px 8px;font-size:.68rem;font-weight:700;transition:all .15s}.cp-generate-course-type.is-required{color:var(--cp-g-red);background:#c6282817}.cp-generate-course-type.is-optional{color:#9c6e00;background:#f9a82526}.cp-generate-course-type:hover{filter:brightness(.96)}.cp-generate-course-actions{align-items:center;gap:5px;display:inline-flex}.cp-generate-course-icon-btn,.cp-generate-course-remove{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface-2);color:var(--cp-g-ink-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:11px;transition:all .15s;display:inline-flex}.cp-generate-course-icon-btn:disabled{opacity:.45;cursor:not-allowed}.cp-generate-course-remove:hover,.cp-generate-course-icon-btn:not(:disabled):hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red)}.cp-generate-parse-info{color:var(--cp-g-ink-muted);background:#c628280d;border:1px solid #c6282826;border-radius:8px;align-items:center;gap:7px;padding:8px 10px;font-size:.74rem;display:inline-flex}.cp-generate-parse-info strong{color:var(--cp-g-red)}.cp-generate-add-course-btn{border:1.5px dashed var(--cp-g-border-soft);width:100%;color:var(--cp-g-ink-ghost);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.82rem;transition:all .18s;display:inline-flex}.cp-generate-add-course-btn:hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red);background:#c6282808}.cp-generate-add-panel{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface-2);border-radius:10px;gap:8px;padding:10px;display:grid}.cp-generate-add-results{gap:6px;max-height:180px;display:grid;overflow:auto}.cp-generate-add-result{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface);cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;transition:all .15s;display:grid}.cp-generate-add-result:hover{border-color:var(--cp-g-border-strong);transform:translateY(-1px)}.cp-generate-add-result-code{color:var(--cp-g-red);font-size:.71rem;font-weight:700}.cp-generate-add-result-name{color:var(--cp-g-ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:.79rem;overflow:hidden}.cp-generate-add-result-credits{color:var(--cp-g-ink-muted);font-size:.72rem}.cp-generate-credit-range{align-items:center;gap:8px;display:inline-flex}.cp-generate-credit-input{text-align:center;width:62px}.cp-generate-credit-sep{color:var(--cp-g-ink-ghost)}.cp-generate-credit-label{color:var(--cp-g-ink-muted);font-size:.77rem}.cp-generate-pill-group{flex-wrap:wrap;gap:6px;display:flex}.cp-generate-pill{border:1.5px solid var(--cp-g-border-soft);background:var(--cp-g-surface);color:var(--cp-g-ink-muted);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:.77rem;transition:all .18s}.cp-generate-pill:hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red)}.cp-generate-pill.is-active{border-color:var(--cp-g-red-mid);color:var(--cp-g-red);background:#c6282814;font-weight:600}.cp-generate-toggle-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.cp-generate-toggle-label{color:var(--cp-g-ink-2);font-size:.83rem}.cp-generate-toggle-sub{color:var(--cp-g-ink-ghost);margin-top:2px;font-size:.72rem}.cp-generate-switch{width:40px;height:23px;position:relative}.cp-generate-switch input{opacity:0;width:0;height:0}.cp-generate-switch-track{background:#ddd0c8;border-radius:999px;transition:background .25s;position:absolute;top:0;bottom:0;left:0;right:0}.cp-generate-switch-thumb{pointer-events:none;background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .25s cubic-bezier(.16,1,.3,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.cp-generate-switch input:checked+.cp-generate-switch-track{background:var(--cp-g-red-mid)}.cp-generate-switch input:checked~.cp-generate-switch-thumb{transform:translate(17px)}.cp-generate-time-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cp-generate-time-field{color:var(--cp-g-ink-muted);gap:5px;font-size:.73rem;display:grid}.cp-generate-day-pills{gap:6px;display:flex}.cp-generate-day-pill{border:1.5px solid var(--cp-g-border-soft);background:var(--cp-g-surface);width:34px;height:34px;color:var(--cp-g-ink-muted);cursor:pointer;border-radius:8px;font-size:.72rem;font-weight:700;transition:all .18s}.cp-generate-day-pill:hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red)}.cp-generate-day-pill.is-active{border-color:var(--cp-g-red-mid);color:var(--cp-g-red);background:#c628281a}.cp-generate-day-hint{color:var(--cp-g-ink-ghost);margin:6px 0 0;font-size:.7rem}.cp-generate-pref-row{cursor:pointer;border-bottom:1px solid var(--cp-g-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.cp-generate-pref-row:last-child{border-bottom:none}.cp-generate-pref-text{flex-direction:column;gap:2px;display:flex}.cp-generate-pref-label{color:var(--cp-g-ink);font-size:.775rem;font-weight:600}.cp-generate-pref-desc{color:var(--cp-g-ink-ghost);font-size:.68rem;line-height:1.35}.cp-generate-pref-check{width:16px;height:16px;accent-color:var(--cp-accent,#c00);cursor:pointer;flex-shrink:0}.cp-generate-submit-btn{background:var(--cp-g-red-mid);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 20px #c628284d}.cp-generate-submit-btn:hover{background:#b71c1c;transform:translateY(-1px);box-shadow:0 8px 28px #c6282866}.cp-generate-submit-btn:active{transform:translateY(0)}.cp-generate-submit-btn:disabled,.cp-generate-submit-btn.is-loading{opacity:.82;cursor:not-allowed}.cp-generate-results-panel{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface);border-radius:12px;flex-direction:column;gap:14px;padding:18px;display:flex;overflow:hidden}.cp-generate-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:32px 18px;animation:.45s both cp-g-fade-up;display:flex}.cp-generate-empty-icon{width:72px;height:72px;color:var(--cp-g-red-light);background:#c628280f;border:1px solid #c6282826;border-radius:20px;justify-content:center;align-items:center;display:inline-flex}.cp-generate-empty-title{letter-spacing:-.02em;margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:1.3rem}.cp-generate-empty-sub{max-width:360px;color:var(--cp-g-ink-muted);margin:0;font-size:.85rem;line-height:1.55}.cp-generate-results-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cp-generate-results-title{color:var(--cp-g-ink);margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:1.08rem}.cp-generate-results-count{color:var(--cp-g-ink-muted);margin:2px 0 0;font-size:.77rem}.cp-generate-results-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.cp-generate-results-btn{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface);color:var(--cp-g-ink-muted);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:6px 11px;font-size:.75rem;transition:all .15s;display:inline-flex}.cp-generate-results-btn:hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red)}.cp-generate-results-btn.is-active{border-color:var(--cp-g-red-mid);color:var(--cp-g-red);background:#c6282814}.cp-generate-results-btn.is-primary{background:var(--cp-g-red-mid);border-color:var(--cp-g-red-mid);color:#fff}.cp-generate-results-btn.is-primary:hover{color:#fff;background:#b71c1c;border-color:#b71c1c}.cp-generate-fit-meta{gap:4px;display:grid}.cp-generate-fit-badge{color:var(--cp-g-red);background:#c6282814;border:1px solid #c6282838;border-radius:999px;width:-moz-fit-content;width:fit-content;padding:4px 10px;font-size:.72rem;font-weight:700}.cp-generate-fit-help,.cp-generate-fit-note,.cp-generate-action-note{color:var(--cp-g-ink-muted);margin:0;font-size:.78rem}.cp-generate-action-note{color:#1a7f49}.cp-generate-results-list{gap:12px;padding-right:4px;display:grid;overflow-y:auto}.cp-generate-schedule-card{border:1.5px solid var(--cp-g-border-soft);background:var(--cp-g-surface);box-shadow:var(--cp-g-shadow-sm);border-radius:12px;gap:10px;padding:12px;transition:all .2s;animation:.38s both cp-g-slide-card;display:grid}.cp-generate-schedule-card:hover{border-color:var(--cp-g-border-strong);box-shadow:var(--cp-g-shadow-md);transform:translateY(-1px)}.cp-generate-schedule-card.is-pinned{border-color:var(--cp-g-red-mid)}.cp-generate-schedule-card-header{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.cp-generate-schedule-number{width:28px;height:28px;color:var(--cp-g-red);background:#c6282814;border:1px solid #c6282833;border-radius:8px;justify-content:center;align-items:center;font-family:Playfair Display,Times New Roman,serif;font-size:.82rem;font-weight:700;display:inline-flex}.cp-generate-schedule-name{min-width:0;color:var(--cp-g-ink);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;font-size:.88rem;font-weight:700;display:inline-flex;overflow:hidden}.cp-generate-schedule-title-stack{gap:6px;min-width:0;display:grid}.cp-generate-best-fit{color:#8f6400;align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:inline-flex}.cp-generate-schedule-credits{color:var(--cp-g-ink-muted);font-size:.74rem}.cp-generate-schedule-actions{gap:6px;display:inline-flex}.cp-generate-schedule-btn{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface);color:var(--cp-g-ink-muted);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:.72rem;transition:all .15s;display:inline-flex}.cp-generate-schedule-btn:hover{border-color:var(--cp-g-border-strong);color:var(--cp-g-red)}.cp-generate-schedule-btn.is-primary{border-color:var(--cp-g-red-mid);background:var(--cp-g-red-mid);color:#fff}.cp-generate-schedule-btn.is-primary:hover{color:#fff;background:#b71c1c;border-color:#b71c1c}.cp-generate-calendar-preview{min-height:250px}.cp-generate-calendar-preview .cp-grid{min-width:620px}.cp-generate-calendar-preview .cp-class-time{color:#ffffffc7;font-weight:700}.cp-generate-schedule-summary-row{flex-wrap:wrap;gap:8px;display:inline-flex}.cp-generate-schedule-summary-row span{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface-2);color:var(--cp-g-ink-muted);border-radius:999px;padding:4px 8px;font-size:.73rem}.cp-generate-schedule-chips{border-top:1px solid var(--cp-g-border-soft);flex-wrap:wrap;gap:6px;padding-top:10px;display:flex}.cp-generate-schedule-chip{border:1px solid var(--cp-g-border-soft);background:var(--cp-g-surface-2);color:var(--cp-g-ink-muted);border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-size:.72rem;display:inline-flex}.cp-generate-schedule-chip-code{color:var(--cp-g-red);font-weight:700}.cp-generate-schedule-chip-seats{color:var(--cp-g-ink-ghost)}.cp-generate-schedule-chip-seats.is-low{color:#e65100;font-weight:600}@keyframes cp-g-slide-item{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes cp-g-slide-card{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-g-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-g-pulse-green{0%,to{opacity:1}50%{opacity:.42}}.dark .cp-generate-root{--cp-g-cream:#171a21;--cp-g-surface:#1f242f;--cp-g-surface-2:#252c39;--cp-g-ink:#f0f4ff;--cp-g-ink-2:#dde5fb;--cp-g-ink-muted:#aebad8;--cp-g-ink-ghost:#8792ad;--cp-g-border-soft:#b9c8f029;--cp-g-border-strong:#e5393570}.dark .cp-generate-autosave,.dark .cp-generate-topbar{background:#191e28d6}.dark .cp-generate-calendar-preview .cp-class-time{color:#ffffffe6}@media (max-width:1200px){.cp-generate-content{grid-template-columns:350px minmax(0,1fr)}.cp-generate-calendar-preview .cp-grid{min-width:560px}}@media (max-width:980px){.cp-generate-topbar{flex-direction:column;align-items:flex-start}.cp-generate-content{grid-template-columns:1fr}.cp-generate-results-panel{min-height:520px}.cp-generate-schedule-card-header{grid-template-columns:auto 1fr;align-items:start}.cp-generate-schedule-credits{grid-column:2}.cp-generate-schedule-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start}}@media (max-width:700px){.cp-generate-root{padding:10px}.cp-generate-config-panel,.cp-generate-results-panel{padding:12px}.cp-generate-time-row{grid-template-columns:1fr}.cp-generate-results-actions{justify-content:flex-start}.cp-generate-calendar-preview .cp-grid{min-width:500px}}@media (max-width:1080px){.cp-view-header h1{font-size:20px}.cp-builder-header{padding:12px}.cp-schedules-topbar{gap:14px;padding:0 20px}.cp-edit-meta{gap:6px;margin-left:8px;overflow:hidden}.cp-edit-meta-name-input{width:min(180px,28vw)}.cp-edit-meta-name-button{max-width:180px}.cp-schedules-topbar-right{gap:8px;min-width:0}.cp-term-select{min-width:140px}}@media (max-width:980px){.cp-view-header{flex-direction:column}.cp-view-layout{grid-template-columns:1fr;overflow:auto}.cp-view-list-panel{border-right:none;border-bottom:1px solid var(--cp-divider);max-height:50vh}.cp-view-subheader{padding:10px 16px}.cp-library-card{grid-template-columns:1fr}.cp-schedules-topbar{flex-wrap:wrap;gap:12px;height:auto;padding:10px 16px}.cp-term-pills{display:none}}@media (max-width:640px){.cp-calendar,.cp-calendar-preview,.cp-generate-calendar-preview{overflow-x:auto}}@media (max-width:768px){.cp-view-card-title-row h3{font-size:12px}.cp-view-main-pill{padding:1px 6px;font-size:9px}.cp-view-card-chips{padding:6px 10px 8px}.cp-view-card-chip{padding:1px 6px;font-size:.6rem}.cp-view-edited-line,.cp-view-main-line{font-size:9px}.cp-view-preview-head{flex-wrap:wrap;padding:10px 16px}.cp-view-credits-bar{flex-wrap:wrap;gap:8px;padding:8px 16px}}.cp-schedules-unified{background:radial-gradient(circle at 100% 0,#f9a8251f,#0000 28%),linear-gradient(#fffdf9 0%,#fdfaf5 100%);flex-direction:column;gap:0;height:100%;min-height:0;display:flex;overflow:hidden}.cp-schedules-embedded{background:linear-gradient(#fffcf7fa,#faf4ecfa);border:1px solid #37231914;border-radius:20px;height:auto;min-height:0;box-shadow:inset 0 1px #ffffffeb,0 12px 28px #17120e0d}.cp-schedules-embedded .cp-schedules-topbar{border-bottom-color:#37231914;height:48px;padding:0 20px}.cp-schedules-embedded .cp-schedules-content,.cp-schedules-embedded .cp-schedules-content>.course-planner-root,.cp-schedules-embedded .cp-schedules-content>.cp-view-root{overflow:visible}.cp-schedules-embedded .cp-schedules-content>.course-planner-root .course-planner-layout{height:auto;min-height:480px}.cp-schedules-embedded .cp-schedules-anon-banner,.cp-schedules-embedded .cp-autocreate-banner{display:none}.cp-schedules-preview .cp-schedules-topbar,.cp-schedules-preview .cp-schedules-anon-banner,.cp-schedules-preview .cp-autocreate-banner{background:#fffbf6f2}.cp-schedules-preview .cp-schedules-anon-banner{border-bottom-color:#e218331f}.cp-schedules-preview .cp-seg-toggle{background:#f8f0e7f5}.cp-schedules-preview .cp-seg-btn.is-active{box-shadow:0 2px 10px #c6282840}.cp-schedules-preview .cp-topbar-new-btn,.cp-schedules-preview .cp-schedules-anon-banner-btn{border-radius:999px;padding-left:14px;padding-right:14px}.cp-schedules-preview .cp-anon-sign-in-save-btn{font-weight:600}.cp-schedules-topbar{border-bottom:1px solid var(--cp-divider);z-index:10;background:linear-gradient(#fffcf7f5,#f8efe6f5);flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;height:58px;padding:0 32px;display:flex;position:relative;box-shadow:inset 0 -1px #ffffffa6}.cp-autocreate-banner{color:#2e7d32;background:#2e7d3212;border-bottom:1px solid #2e7d322e;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:9px 32px;font-size:.8125rem;font-weight:500;display:flex}.dark .cp-autocreate-banner{color:#a5d6a7;background:#2e7d321f;border-color:#2e7d3240}.cp-autocreate-banner-close{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.cp-autocreate-banner-close:hover{opacity:1;background:#2e7d321a}.cp-seg-toggle{background:#3723190f;border:1px solid #3723191a;border-radius:60px;gap:2px;padding:6px;display:flex}.cp-seg-btn{color:var(--cp-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:2px 7px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .15s;display:flex}.cp-seg-btn:hover{color:var(--cp-text);background:#3723190d}.cp-seg-btn.is-active{background:var(--cp-accent);color:#fff;font-weight:600;box-shadow:0 2px 8px #c628284d,0 1px 3px #0000001a}.cp-seg-btn-credits{opacity:.8;background:#0000001f;border-radius:20px;padding:1px 5px;font-size:.72rem;font-weight:600;line-height:1.4}.cp-seg-btn.is-active .cp-seg-btn-credits{opacity:1;background:#ffffff40}.cp-seg-btn svg{opacity:.7;flex-shrink:0}.cp-seg-btn.is-active svg{opacity:1;color:#fff}.cp-schedules-topbar-right{align-items:center;gap:10px;display:flex}.cp-topbar-meta{color:var(--cp-muted);font-size:.75rem;font-weight:300}.cp-topbar-meta strong{color:var(--cp-text);font-weight:500}.cp-term-select-wrap{align-items:center;gap:6px;display:inline-flex}.cp-term-select-label{color:var(--cp-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:500}.cp-term-select{border:1px solid var(--cp-divider);min-width:170px;color:var(--cp-text);background:#fffbf6f2;border-radius:999px;padding:5px 10px;font-family:inherit;font-size:.76rem}.cp-term-select:focus-visible{outline-offset:1px;outline:2px solid #e2183359}.cp-topbar-new-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#c62828,#e2502b);border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 13px;font-family:inherit;font-size:.78rem;font-weight:500;transition:background .15s;display:flex;box-shadow:0 8px 18px #c6282838}.cp-topbar-new-btn:hover{background:linear-gradient(135deg,#b71c1c,#d84315);box-shadow:0 10px 22px #c6282847}.cp-schedules-content,.cp-schedules-content>.course-planner-root{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cp-schedules-content>.course-planner-root .course-planner-layout{flex:1;height:100%;min-height:0}.cp-schedules-content>.cp-view-root{flex:1;min-height:0;overflow:hidden}.dark .cp-schedules-topbar{background:var(--cp-surface);border-bottom-color:var(--cp-divider)}.dark .cp-seg-toggle{background:#ffffff12;border-color:#ffffff1a}.dark .cp-seg-btn:hover{color:var(--cp-text);background:#ffffff0f}.dark .cp-seg-btn.is-active{background:var(--cp-accent);color:#fff;box-shadow:0 2px 8px #c6282866}.dark .cp-term-select{background:var(--cp-surface-muted);border-color:var(--cp-divider);color:var(--cp-text)}.dark .cp-topbar-new-btn{background:var(--cp-accent);box-shadow:0 2px 10px #c6282866}@media (max-height:820px){.cp-schedules-topbar{flex-wrap:wrap;align-items:center;gap:12px;height:auto;min-height:50px;padding:8px 20px}.cp-schedules-topbar-right{flex-wrap:wrap;gap:8px}.cp-seg-btn{padding:4px 10px;font-size:.74rem}.cp-topbar-meta,.cp-term-select-label,.cp-term-select,.cp-topbar-new-btn{font-size:.74rem}.cp-topbar-new-btn{padding:5px 10px}.cp-autocreate-banner,.cp-schedules-anon-banner{padding:7px 20px;font-size:.76rem}.cp-schedules-content{overflow:hidden auto}.cp-schedules-content>.course-planner-root{gap:10px}.cp-schedules-content>.course-planner-root .cp-builder-header{gap:8px;padding:10px 12px}.cp-schedules-content>.course-planner-root .cp-builder-top-row{gap:10px}.cp-schedules-content>.course-planner-root .cp-builder-top-row h1{font-size:20px}.cp-schedules-content>.course-planner-root .cp-builder-actions{flex-wrap:wrap;gap:6px}.cp-schedules-content>.course-planner-root .cp-builder-action-btn,.cp-schedules-content>.course-planner-root .cp-builder-save-btn{padding:5px 9px;font-size:11px}.cp-schedules-content>.course-planner-root .cp-builder-stats{gap:6px;font-size:10px}.cp-schedules-content>.course-planner-root .cp-builder-stats span{padding:3px 6px}.cp-schedules-content>.course-planner-root .course-planner-layout{gap:8px;min-height:0}.cp-schedules-content>.course-planner-root .cp-search-panel{gap:6px;padding:6px}.cp-schedules-content>.course-planner-root .cp-search-box{padding:6px 8px}.cp-schedules-content>.course-planner-root .cp-color-legend{gap:8px;padding:4px 8px}.cp-schedules-content>.course-planner-root .cp-calendar{--cp-day-header-height:26px}.cp-schedules-content>.course-planner-root .cp-day-header{font-size:11px}.cp-schedules-content>.course-planner-root .cp-time-label{font-size:10px}}@media (max-width:960px){.cp-schedules-embedded .cp-schedules-topbar{flex-wrap:wrap;align-items:flex-start;height:auto;min-height:48px;padding:10px 16px}.cp-schedules-embedded .cp-schedules-topbar-right{flex-wrap:wrap;justify-content:space-between;width:100%}.cp-schedules-preview .cp-seg-toggle{justify-content:flex-start;width:100%;overflow-x:auto}}.cp-anon-banner{color:var(--cp-text);background:#d32f2f14;border:1px solid #d32f2f38;border-radius:3px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-bottom:10px;padding:10px 20px;font-size:.8125rem;display:flex}.cp-anon-banner-text{opacity:.85}.cp-anon-banner-cta{background:var(--cp-accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:2px;padding:6px 14px;font-size:.8125rem;font-weight:600;transition:opacity .15s}.cp-anon-banner-cta:hover{opacity:.85}.cp-schedules-anon-banner{color:var(--cp-text);background:#d32f2f0f;border-bottom:1px solid #d32f2f2e;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 32px;font-size:.8125rem;display:flex}.dark .cp-schedules-anon-banner{background:#d32f2f17;border-bottom-color:#d32f2f38}.cp-schedules-anon-banner-btn{background:var(--cp-accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:2px;flex-shrink:0;padding:5px 12px;font-size:.8125rem;font-weight:600}.cp-schedules-anon-banner-btn:hover{opacity:.85}.cp-anon-sign-in-save-btn{color:var(--cp-accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px;font-weight:500}.cp-anon-sign-in-save-btn:hover{text-decoration:underline}.cp-anon-import-toast{z-index:200;background:var(--cp-header-bg);color:var(--cp-header-text);border:1px solid #ffffff24;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;width:calc(100% - 48px);max-width:520px;padding:14px 20px;font-size:.875rem;animation:.25s ease-out cp-toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000052}.cp-anon-import-toast.is-success{color:var(--cp-text);background:#2e7d3226;border-color:#2e7d324d;font-weight:500}.cp-anon-import-toast-text{flex:1}.cp-anon-import-toast-actions{gap:8px;display:flex}.cp-anon-import-toast-btn{color:var(--cp-header-text);cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:6px;padding:6px 14px;font-size:.8125rem;font-weight:500;transition:opacity .15s}.cp-anon-import-toast-btn:hover{opacity:.8}.cp-anon-import-toast-btn.is-primary{background:var(--cp-accent);border-color:#0000;font-weight:600}@keyframes cp-toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.cp-anon-import-toast.cp-calendar-nudge{background:#c62828e0;border-color:#ffffff24}.cp-calendar-nudge-icon{opacity:.9;flex-shrink:0}.cp-term-picker-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:320px;padding:64px 24px;display:flex}.cp-term-picker-icon{color:var(--cp-muted);opacity:.45;margin-bottom:8px}.cp-term-picker-heading{color:var(--cp-text);margin:0;font-size:1.125rem;font-weight:600}.cp-term-picker-sub{color:var(--cp-muted);max-width:340px;margin:0;font-size:.8125rem;line-height:1.5}.cp-term-picker-loading{color:var(--cp-muted);align-items:center;gap:8px;margin-top:8px;font-size:.8125rem;display:flex}.cp-term-picker-controls{align-items:center;gap:10px;margin-top:12px;display:flex}.cp-term-picker-select-wrap{flex-direction:column;gap:4px;display:flex}.cp-term-picker-select-label{color:var(--cp-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem;font-weight:500}.cp-term-picker-select{border:1px solid var(--cp-divider);background:var(--cp-surface-muted);min-width:180px;color:var(--cp-text);border-radius:6px;padding:8px 12px;font-family:inherit;font-size:.8125rem}.cp-term-picker-select:focus-visible{outline-offset:1px;outline:2px solid #e2183359}.cp-term-picker-start-btn{color:#fff;background:var(--cp-accent);cursor:pointer;border:none;border-radius:6px;align-self:flex-end;padding:8px 20px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .15s;box-shadow:0 2px 8px #c628282e}.cp-term-picker-start-btn:hover{background:#b71c1c}.cp-term-picker-start-btn:disabled{opacity:.5;cursor:not-allowed}.cp-seg-btn.is-disabled{opacity:.38;cursor:not-allowed;pointer-events:auto}.cp-seg-btn.is-disabled:hover{color:var(--cp-muted);background:0 0}.cp-in-schedule-badge{color:#2e7d32;vertical-align:middle;letter-spacing:.01em;background:#2e7d321a;border-radius:999px;align-items:center;gap:3px;margin-left:8px;padding:1px 7px;font-size:.625rem;font-weight:600;display:inline-flex}.dark .cp-in-schedule-badge{color:#a5d6a7;background:#2e7d322e}.cp-section-error{color:#e65100;background:#e651000f;border:1px solid #e6510026;border-radius:4px;align-items:center;gap:6px;margin:4px 0;padding:6px 8px;font-size:.75rem;display:flex}.dark .cp-section-error{color:#ffb74d;background:#e651001a;border-color:#e6510038}.cp-section-error-icon{color:inherit;flex-shrink:0}.cp-retry-btn{color:#e65100;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e6510059;border-radius:4px;align-items:center;gap:4px;margin-left:auto;padding:3px 10px;font-family:inherit;font-size:.6875rem;font-weight:500;transition:background .15s;display:inline-flex}.cp-retry-btn:hover{background:#e6510014}.dark .cp-retry-btn{color:#ffb74d;border-color:#ffb74d59}.dark .cp-retry-btn:hover{background:#ffb74d1a}.cp-section-not-offered{color:var(--cp-muted);margin:4px 0;padding:6px 8px;font-size:.75rem}.cp-section-dept-link{color:var(--cp-muted);text-underline-offset:2px;text-decoration:underline}.cp-section-dept-link:hover{color:var(--cp-text)}.cp-edit-meta-local-hint{color:var(--cp-muted);font-size:.72rem;font-style:italic}.cp-schedules-save-prompt{color:var(--cp-text);background:#2e7d320f;border-bottom:1px solid #2e7d3224;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:14px;padding:9px 32px;font-size:.8125rem;display:flex}.dark .cp-schedules-save-prompt{background:#2e7d321a;border-color:#2e7d3233}.cp-schedules-save-prompt-btn{color:#fff;background:var(--cp-accent);cursor:pointer;border:none;border-radius:4px;padding:5px 14px;font-family:inherit;font-size:.78rem;font-weight:500;transition:background .15s}.cp-schedules-save-prompt-btn:hover{background:#b71c1c}.ww-chip{z-index:30;color:#e65100;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#fff8e1;border:1.5px solid #f9a825;border-radius:999px;align-items:center;gap:2px;padding:2px 4px 2px 7px;font-family:inherit;font-size:.675rem;font-weight:600;transition:background .12s,box-shadow .12s;display:inline-flex;position:absolute;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0000001f}.ww-chip:hover,.ww-chip:focus-within{background:#fff3cd;box-shadow:0 2px 8px #e651002e}.ww-chip-main{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:4px;padding:0;display:inline-flex}.ww-chip-main:focus-visible{outline-offset:1px;border-radius:4px;outline:2px solid #f9a825}.ww-chip-dismiss{color:#e65100;cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.85rem;line-height:1;display:inline-flex}.ww-chip-dismiss:hover{opacity:1;background:#e651001f}.dark .ww-chip{color:#ffcc02;background:#3a2800;border-color:#f9a825}.dark .ww-chip:hover{background:#4a3400}.dark .ww-chip:focus-visible{background:#4a3400}.ww-chip-icon{font-size:.7rem;line-height:1}.ww-chip-label{letter-spacing:.01em}.ww-popover{z-index:200;background:var(--settings-card-bg,#fff);text-align:left;cursor:default;border:1px solid #0000001f;border-radius:10px;width:240px;padding:14px 14px 12px;animation:.12s ww-pop-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000024}@keyframes ww-pop-in{0%{opacity:0;transform:translate(-50%)scale(.96)translateY(-4px)}to{opacity:1;transform:translate(-50%)scale(1)translateY(0)}}.dark .ww-popover{background:#1e1e2e;border-color:#ffffff1a}.ww-popover-close{color:var(--cp-text-muted,#888);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:1rem;line-height:1;position:absolute;top:8px;right:10px}.ww-popover-close:hover{background:#0000000f}.ww-popover-title{color:#e65100;align-items:center;gap:6px;margin-bottom:10px;font-size:.8rem;font-weight:700;display:flex}.dark .ww-popover-title{color:#ffcc02}.ww-popover-icon{font-size:.85rem}.ww-popover-route{align-items:flex-start;gap:6px;margin-bottom:10px;display:flex}.ww-popover-building{flex-direction:column;flex:1;min-width:0;display:flex}.ww-popover-building>:first-child{color:var(--cp-text,#1a1a2e);font-size:.78rem;font-weight:700}.dark .ww-popover-building>:first-child{color:#e8e8f0}.ww-popover-building-name{color:var(--cp-text-muted,#888);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.ww-popover-arrow{color:var(--cp-text-muted,#888);flex-shrink:0;padding-top:1px;font-size:.85rem}.ww-popover-stats{grid-template-columns:auto 1fr;gap:3px 10px;margin:0 0 9px;font-size:.72rem;display:grid}.ww-popover-stats dt{color:var(--cp-text-muted,#888);white-space:nowrap}.ww-popover-stats dd{color:var(--cp-text,#1a1a2e);margin:0;font-weight:600}.dark .ww-popover-stats dd{color:#e8e8f0}.ww-shortfall{color:#d32f2f!important}.ww-popover-tip{color:var(--cp-text-muted,#888);border-top:1px solid #00000012;margin:0;padding-top:8px;font-size:.7rem;line-height:1.45}.dark .ww-popover-tip{border-color:#ffffff14}
