.kce{--bg:transparent;--surface:#fff;--surface-2:#eef1f5;--border:#dde2ea;--text:#16202e;--text-2:#4f5b6d;--text-3:#7c8799;--accent:#1954a6;--accent-soft:#e3ecfa;--accent-text:#fff;--hero-bg:#0f2a4f;--hero-text:#f2f6fc;--hero-sub:#a9bbd6;--period-on:#1954a6;--period-on-text:#fff;--period-off:#e9edf2;--period-off-text:#a3adbb;--shadow:0 1px 2px #1020380f, 0 2px 8px #1020380d;--shadow-hover:0 4px 10px #10203814, 0 12px 28px #1020381a;--radius:14px;--radius-sm:8px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-margin-top:96px}.dark .kce{--bg:transparent;--surface:#151c26;--surface-2:#1c2531;--border:#283342;--text:#e6ebf2;--text-2:#a9b4c4;--text-3:#778396;--accent:#6ea4f0;--accent-soft:#1b2e4b;--accent-text:#0d1219;--hero-bg:#0a1d38;--hero-text:#eef3fb;--hero-sub:#8fa4c4;--period-on:#6ea4f0;--period-on-text:#0d1219;--period-off:#1f2834;--period-off-text:#4d5a6c;--shadow:0 1px 2px #0000004d;--shadow-hover:0 8px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.kce *,.kce :before,.kce :after{box-sizing:border-box}.kce{background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}body.no-scroll{overflow:hidden}.kce h1,.kce h2,.kce h3{margin:0;line-height:1.2}.kce button,.kce input,.kce select{font:inherit;color:inherit}.kce code{font-family:var(--mono);background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.9em}.kce .muted{color:var(--text-3)}.kce .small{font-size:13px}.kce :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kce .try-it{letter-spacing:.18em;text-transform:uppercase;color:#ffc300;margin:0 0 10px;font-size:12px;font-weight:700}.kce .hero{background:radial-gradient(1200px 400px at 85% -20%, #5c96e659, transparent 60%), var(--hero-bg);color:var(--hero-text);border-radius:24px;width:min(1288px,100% - 32px);margin:0 auto;padding:44px 32px 40px}.kce .hero-inner{max-width:1320px;margin:0 auto}.kce .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--hero-sub);margin:0 0 6px;font-size:12px;font-weight:600}.kce .hero h1{letter-spacing:-.02em;font-size:clamp(30px,5vw,44px);font-weight:700}.kce .hero-sub{color:var(--hero-sub);margin:8px 0 0}.kce .search{max-width:760px;margin-top:24px;position:relative}.kce .search-icon{width:20px;height:20px;color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.kce .input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius-sm);outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.kce .input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.kce .input-sm{padding:6px 10px;font-size:14px}.kce .search-input{border-color:#0000;border-radius:12px;height:54px;padding-left:46px;font-size:16px;box-shadow:0 6px 24px #0000002e}.kce .layout{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:28px;max-width:1320px;margin:0 auto;padding:24px 16px 48px;display:grid}.kce .sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 112px);box-shadow:var(--shadow);display:flex;position:sticky;top:96px;overflow:hidden}.kce .filters{flex-direction:column;gap:20px;width:100%;min-height:0;padding:18px;display:flex;overflow-y:auto}.kce .filters-head{justify-content:space-between;align-items:baseline;display:flex}.kce .filters-head h2{font-size:16px}.kce .filter-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin-bottom:10px;font-size:12px}.kce .hint{color:var(--text-3);margin:-6px 0 10px;font-size:12px}.kce .link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kce .link-btn:hover{text-decoration:underline}.kce .chips{flex-wrap:wrap;gap:6px;display:flex}.kce .chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.kce .chip:hover{border-color:var(--accent)}.kce .chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.kce .chip-count{opacity:.65;font-variant-numeric:tabular-nums;font-size:12px}.kce .check{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;font-size:14px;display:flex}.kce .check:hover{background:var(--surface-2)}.kce .check input{accent-color:var(--accent);flex:none;margin:0}.kce .check-label{flex:1;min-width:0}.kce .check-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}.kce .check-inline{color:var(--text-2);margin-top:10px;padding-left:0;font-size:13px}.kce .check-inline:hover{background:0 0}.kce .dept-select{flex-direction:column;gap:8px;display:flex}.kce .dept-selected{flex-wrap:wrap;gap:4px;display:flex}.kce .dept-list{margin:0 -6px;padding-right:4px}.kce .dept-group+.dept-group{margin-top:8px}.kce .dept-school{background:var(--surface);letter-spacing:.08em;color:var(--text-3);z-index:1;padding:4px 6px;font-size:11px;font-weight:700;position:sticky;top:0}.kce .range-values{font-variant-numeric:tabular-nums;justify-content:space-between;margin-bottom:6px;font-size:14px;font-weight:500;display:flex}.kce .range-track{height:24px;position:relative}.kce .range-track:before{content:"";background:var(--surface-2);border-radius:2px;height:4px;position:absolute;top:10px;left:0;right:0}.kce .range-fill{background:var(--accent);border-radius:2px;height:4px;position:absolute;top:10px}.kce .range input{pointer-events:none;appearance:none;background:0 0;width:100%;margin:0;position:absolute;inset:0}.kce .range input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;background:var(--surface);border:2px solid var(--accent);width:18px;height:18px;box-shadow:var(--shadow);cursor:grab;border-radius:50%}.kce .range input::-moz-range-thumb{pointer-events:auto;background:var(--surface);border:2px solid var(--accent);cursor:grab;border-radius:50%;width:14px;height:14px}.kce .range input::-moz-range-track{background:0 0}.kce .toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.kce .count{margin:0;font-size:15px}.kce .count strong{font-variant-numeric:tabular-nums;font-size:18px}.kce .toolbar-right{align-items:center;gap:10px;display:flex}.kce .sort{scrollbar-width:none;max-width:100%;overflow-x:auto}.kce .sort button{white-space:nowrap}@media (width<=767px){.kce .toolbar-right{display:contents}.kce .sort{flex:100%;display:flex}.kce .sort button{flex:auto;min-width:0;padding:6px 8px;font-size:13px}.kce .sort .segmented-label{padding:0 6px}}.kce .active-filters{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.kce .tag{background:var(--accent-soft);color:var(--accent);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:500;display:inline-flex}.kce .tag:hover{filter:brightness(.96)}.kce .btn{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.kce .btn:hover{filter:brightness(1.08)}.kce .btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.kce .btn-block{width:100%}.kce .badge{background:var(--accent);min-width:20px;height:20px;color:var(--accent-text);border-radius:10px;padding:0 6px;font-size:12px;line-height:20px}.kce .filters-toggle{display:none}.kce .grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.kce .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:230px;box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative}.kce .card:hover{box-shadow:var(--shadow-hover);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));transform:translateY(-2px)}.kce .card-hit{border-radius:inherit;cursor:pointer;z-index:1;background:0 0;border:0;position:absolute;inset:0}.kce .card-top{justify-content:space-between;align-items:center;display:flex}.kce .code{font-family:var(--mono);color:var(--accent);letter-spacing:.02em;font-size:13px;font-weight:500}.kce .credits{background:var(--surface-2);color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:6px;padding:2px 8px;font-size:13px;font-weight:600}.kce .card-title{letter-spacing:-.01em;font-size:17px;font-weight:600}.kce .card-dept{color:var(--text-2);margin:0;font-size:13px}.kce .school{letter-spacing:.06em;border:1px solid var(--border);color:var(--text-3);vertical-align:1px;border-radius:4px;margin-right:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.kce .card-summary{color:var(--text-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;margin:4px 0 0;font-size:14px;display:-webkit-box;overflow:hidden}.kce .card-foot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.kce .periods{gap:4px;display:flex}.kce .period{background:var(--period-off);color:var(--period-off-text);border-radius:5px;padding:3px 7px;font-size:11px;font-weight:700}.kce .period.on{background:var(--period-on);color:var(--period-on-text)}.kce .level{color:var(--text-3);font-size:12px;font-weight:500}.kce .skeleton{background:linear-gradient(100deg, var(--surface) 30%, var(--surface-2) 50%, var(--surface) 70%) 0 0 / 300% 100%;animation:1.4s linear infinite kce-shimmer}@keyframes kce-shimmer{to{background-position:-150% 0}}.kce .sentinel{height:1px}.kce .empty{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:72px 16px}.kce .empty h2{margin-bottom:6px;font-size:18px}.kce .empty .btn{margin-top:14px}.kce .modal{border:1px solid var(--border);background:var(--surface);width:min(760px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--text);border-radius:18px;margin:auto;padding:0;box-shadow:0 24px 80px #00000059}.kce .modal[open]{animation:.18s ease-out kce-pop}.kce .modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#08101e8c}@keyframes kce-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.kce .modal-inner{flex-direction:column;max-height:calc(100vh - 48px);display:flex}.kce .modal-head{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:24px 24px 16px;display:flex}.kce .modal-head h2{letter-spacing:-.015em;margin:6px 0;font-size:24px}.kce .modal-meta{align-items:center;gap:10px;display:flex}.kce .icon-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;width:36px;height:36px;font-size:22px;line-height:1}.kce .icon-btn:hover{background:var(--surface-2)}.kce .modal-body{padding:8px 24px 16px;overflow-y:auto}.kce .modal-body section{margin-top:18px}.kce .modal-body h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin-bottom:8px;font-size:12px}.kce .prose p{margin:0 0 10px;font-size:15px;line-height:1.65}.kce .offerings{gap:8px;margin:0;padding:0;list-style:none;display:grid}.kce .offerings li{background:var(--surface-2);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:10px 12px;font-size:14px;display:flex}.kce .offering-slots{color:var(--text-2);font-size:13px}.kce .modal-foot{border-top:1px solid var(--border);justify-content:flex-end;padding:14px 24px;display:flex}.kce .drawer{display:none}.kce .site-foot{text-align:center;max-width:1320px;margin:0 auto;padding:0 16px 32px}@media (width<=767px){.kce .hero{border-radius:20px;padding:28px 20px 24px}.kce .search-input{font-size:16px}.kce .layout{grid-template-columns:minmax(0,1fr);padding-top:16px}.kce .sidebar{display:none}.kce .filters-toggle{display:inline-flex}.kce .grid{grid-template-columns:minmax(0,1fr)}.kce .card{min-height:0}.kce .drawer{z-index:60;pointer-events:none;display:block;position:fixed;inset:0}.kce .drawer-backdrop{opacity:0;background:#08101e80;transition:opacity .2s;position:absolute;inset:0}.kce .drawer-panel{background:var(--surface);flex-direction:column;width:min(360px,88vw);transition:transform .25s;display:flex;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.kce .drawer.open{pointer-events:auto}.kce .drawer.open .drawer-backdrop{opacity:1}.kce .drawer.open .drawer-panel{transform:none}.kce .drawer-foot{border-top:1px solid var(--border);padding:12px 16px}.kce .modal{border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}.kce .modal-inner{height:100%;max-height:100dvh}.kce .modal-head,.kce .modal-body,.kce .modal-foot{padding-left:16px;padding-right:16px}}@media (prefers-reduced-motion:reduce){.kce *,.kce :before,.kce :after{transition:none!important;animation:none!important}}.kce{--mandatory:#0f7a55;--mandatory-soft:#e1f4ec;--elective:#7a5a0f;--elective-soft:#f8f0dc}.dark .kce{--mandatory:#5fd3a5;--mandatory-soft:#12352a;--elective:#e9c46a;--elective-soft:#3a3016}.kce .finder{align-items:stretch;gap:12px;max-width:1240px;margin-top:24px;display:flex}.kce .finder .search{flex:auto;max-width:none;margin-top:0}.kce .prog-picker{flex:0 0 320px;position:relative}.kce .prog-button{width:100%;height:54px;color:var(--hero-text);text-align:left;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:12px;align-items:center;gap:12px;padding:0 14px;transition:background .15s,border-color .15s;display:flex}.kce .prog-button:hover,.kce .prog-button[aria-expanded=true]{background:#ffffff24;border-color:#ffffff52}.kce .prog-button.is-set{background:var(--surface);color:var(--text);border-color:#0000;box-shadow:0 6px 24px #0000002e}.kce .prog-icon,.kce .prog-caret{opacity:.8;flex:none;width:20px;height:20px}.kce .prog-button-text{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.kce .prog-button-label{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:11px;font-weight:600}.kce .prog-button-value{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.kce .prog-pop{z-index:40;background:var(--surface);width:min(440px,100vw - 32px);max-height:min(560px,70vh);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 24px 60px #0000004d}.kce .prog-list{margin:0 -4px;padding:0 4px;overflow-y:auto}.kce .prog-group-head{z-index:1;background:var(--surface);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);justify-content:space-between;padding:10px 8px 4px;font-size:11px;font-weight:700;display:flex;position:sticky;top:0}.kce .prog-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:8px;display:flex}.kce .prog-row:hover,.kce .prog-row:focus-visible{background:var(--surface-2)}.kce .prog-row.active{background:var(--accent-soft)}.kce .prog-row.active .prog-row-name{color:var(--accent)}.kce .prog-row.empty .prog-row-name{color:var(--text-3)}.kce .prog-row-name{font-size:14px;font-weight:500}.kce .prog-row-meta{color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;gap:8px;font-size:12px;display:flex}.kce .prog-code{font-family:var(--mono);letter-spacing:.03em;font-size:11px}.kce .prog-empty{padding:16px 8px}.kce .prog-banner{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:20px 22px}.kce .prog-banner-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.kce .prog-kind{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 2px;font-size:12px;font-weight:600}.kce .prog-name{letter-spacing:-.015em;font-size:24px}.kce .prog-facts{color:var(--text-2);flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;font-size:14px;display:flex}.kce .prog-actions{flex:none;align-items:center;gap:8px;display:flex}.kce .prog-note{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);margin:14px 0 0;padding:10px 12px;font-size:14px}.kce .prog-controls{flex-wrap:wrap;gap:12px 20px;margin-top:16px;display:flex}.kce .segmented{background:var(--surface-2);border-radius:10px;align-items:center;padding:3px;display:inline-flex}.kce .segmented-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:0 10px 0 8px;font-size:12px;font-weight:600}.kce .segmented button{min-width:40px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 12px;font-size:14px;font-weight:500}.kce .segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.kce .card-role{flex-wrap:wrap;gap:6px;margin:-2px 0 4px;display:flex}.kce .role{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.kce .role:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.kce .role-mandatory{color:var(--mandatory);background:var(--mandatory-soft)}.kce .role-elective{color:var(--elective);background:var(--elective-soft)}.kce .role-track{border:1px solid var(--border);font-family:var(--mono);color:var(--text-3);border-radius:6px;padding:2px 7px;font-size:11px}.kce .card-mandatory{border-top:3px solid var(--mandatory)}.kce .modal-progs{gap:2px;margin:0;padding:0;list-style:none;display:grid}.kce .modal-progs li{border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:6px 8px;display:grid}.kce .modal-progs li.current{background:var(--accent-soft)}.kce .modal-prog-name{text-align:left;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:500}.kce .modal-prog-name:hover{text-decoration:underline}.kce .offerings li.for-prog{box-shadow:inset 3px 0 0 var(--accent)}.kce .for-prog-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600}@media (width<=767px){.kce .finder{flex-direction:column}.kce .prog-picker{flex-basis:auto}.kce .prog-pop{width:100%;left:0;right:auto}.kce .prog-banner{padding:16px}.kce .prog-name{font-size:20px}.kce .prog-banner-top .btn{display:none}.kce .modal-progs li{grid-template-columns:minmax(0,1fr) auto}.kce .modal-progs li .muted{display:none}}.kce{--t-mandatory:var(--mandatory);--t-conditional:#c8850c;--t-optional:#7c8799;--t-recommended:#3b7bd6;--t-other:#9aa3b2}.dark .kce{--t-conditional:#e9b44a;--t-optional:#8793a6;--t-recommended:#6ea4f0}.kce .tabs{border-bottom:1px solid var(--border);gap:4px;margin:16px 0 0;display:flex}.kce .tabs button{color:var(--text-3);cursor:pointer;background:0 0;border:0;padding:8px 14px 10px;font-size:14px;font-weight:600;position:relative}.kce .tabs button:hover{color:var(--text)}.kce .tabs button[aria-selected=true]{color:var(--accent)}.kce .tabs button[aria-selected=true]:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.kce .tab-count{color:var(--text-3);margin-left:4px;font-size:12px;font-weight:500}.kce .layout-plan{grid-template-columns:minmax(0,1fr);max-width:1080px}.kce .layout-plan .sidebar,.kce .layout-plan~.drawer{display:none}.kce .plan-loading{border-radius:var(--radius);height:420px}.kce .plan-controls{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:18px;display:flex}.kce .plan-track{align-items:center;gap:4px;display:inline-flex}.kce .plan-track select{width:auto;max-width:340px}.kce .plan-legend{color:var(--text-2);flex-wrap:wrap;gap:6px 16px;margin:0 0 0 auto;padding:0;font-size:13px;list-style:none;display:flex}.kce .plan-legend li{align-items:center;gap:6px;display:inline-flex}.kce .swatch{background:var(--t-color);border-radius:3px;flex:none;width:10px;height:10px}.kce .t-mandatory{--t-color:var(--t-mandatory)}.kce .t-conditional{--t-color:var(--t-conditional)}.kce .t-optional{--t-color:var(--t-optional)}.kce .t-recommended{--t-color:var(--t-recommended)}.kce .t-other{--t-color:var(--t-other)}.kce .plan-year{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px 22px}.kce .plan-year-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.kce .plan-year-head h3{font-size:20px}.kce .plan-year-head p{margin:2px 0 0}.kce .plan-sum{color:var(--text-2);flex-wrap:wrap;gap:4px 16px;font-size:14px;display:flex}.kce .plan-rule,.kce .plan-note{border-radius:var(--radius-sm);gap:10px;margin-bottom:10px;padding:10px 12px;font-size:14px;display:flex}.kce .plan-rule{background:color-mix(in srgb, var(--t-conditional) 12%, var(--surface));border-left:3px solid var(--t-conditional)}.kce .plan-rule strong{text-transform:uppercase;letter-spacing:.08em;color:var(--t-conditional);flex:none;padding-top:2px;font-size:11px}.kce .plan-rule-list{color:var(--text-2);margin-top:2px;font-size:13px;display:block}.kce .plan-note{background:var(--surface-2);color:var(--text-2)}.kce .plan-grid{display:grid}.kce .plan-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) repeat(4,minmax(52px,84px));align-items:center;min-height:52px;display:grid}.kce .plan-row.clickable{cursor:pointer}.kce .plan-row.clickable:hover{background:var(--surface-2)}.kce .plan-head{min-height:0;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;border-top:0;padding-bottom:6px;font-size:12px;font-weight:600}.kce .plan-col{color:var(--text-2);flex-direction:column;align-items:center;font-size:13px;display:flex}.kce .plan-col-term{color:var(--text-3);font-size:10px}.kce .plan-course{align-items:flex-start;gap:10px;min-width:0;padding:8px 12px 8px 4px;display:flex}.kce .plan-course .swatch{margin-top:5px}.kce .plan-course-text{flex-direction:column;min-width:0;display:flex}.kce .plan-link{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:600;text-decoration:none}.kce .plan-link:hover{color:var(--accent);text-decoration:underline}.kce .plan-course-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;display:flex}.kce .plan-hint{font-style:italic}.kce .plan-cell{height:22px;margin:0 -1px}.kce .plan-cell.on{background:var(--t-color)}.kce .plan-cell.first{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-left:6px}.kce .plan-cell.last{border-top-right-radius:6px;border-bottom-right-radius:6px;margin-right:6px}.kce .plan-cell.on.tentative{background:repeating-linear-gradient(135deg, var(--t-color) 0 6px, transparent 6px 10px);opacity:.7}.kce .plan-empty{padding:12px 4px}.kce .plan-source{text-align:center}.kce .plan-source a{color:var(--accent)}@media (width<=767px){.kce .plan-year{padding:16px 12px}.kce .plan-row{grid-template-columns:minmax(0,1fr) repeat(4,30px)}.kce .plan-col-term{display:none}.kce .plan-legend{margin-left:0}.kce .plan-year-head{flex-direction:column;align-items:flex-start}}.kce .finder .my-plan-box{flex:0 0 250px}.kce .my-plan-count{color:#16202e;text-align:center;font-variant-numeric:tabular-nums;background:#ffc300;border-radius:12px;flex:none;min-width:24px;height:24px;padding:0 7px;font-size:12px;font-weight:700;line-height:24px}.kce .pick-btn{z-index:2;border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--accent);cursor:pointer;border-radius:50%;flex:none;place-items:center;padding:0;transition:background .15s,color .15s,border-color .15s,transform .15s;display:inline-grid;position:relative}.kce .pick-btn svg{width:15px;height:15px}.kce .pick-btn:hover{border-color:var(--accent);transform:scale(1.08)}.kce .pick-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text);animation:.25s kce-pick}@keyframes kce-pick{50%{transform:scale(1.18)}}.kce .card-top-right{align-items:center;gap:8px;display:inline-flex}.kce .card-picked{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.kce .plan-course .pick-btn{align-self:center;margin-left:auto}.kce .modal-foot{gap:10px}.kce .pick-inline{border:1px solid var(--border);width:20px;height:20px;color:var(--accent);border-radius:50%;place-items:center;font-weight:700;line-height:1;display:inline-grid}.kce .my-plan-empty .btn{margin-top:8px}.kce .my-plan-total{margin:0}.kce .my-plan-total strong{color:var(--text)}.kce .my-plan-actions{gap:8px;margin-left:auto;display:flex}.kce .btn-sm{padding:6px 12px;font-size:13px}.kce .my-plan .plan-cell.on{background:var(--accent)}.kce .my-plan-opts{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.kce .my-plan-opts .input-sm{width:auto;padding:3px 8px;font-size:12px}.kce .my-plan-remove{width:28px;height:28px;color:var(--text-3);align-self:center;margin-left:auto;font-size:18px}.kce .my-plan-remove:hover{color:var(--text)}.kce .my-plan-load{min-height:40px;color:var(--text-2);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.kce .my-plan-load .plan-course{padding-top:10px;padding-bottom:10px}@media (width<=767px){.kce .finder .my-plan-box{flex-basis:auto}.kce .my-plan-actions{margin-left:0}}.kce-print{display:none}@media print{html.kce-printing body>:not(.kce-print){display:none!important}html.kce-printing,html.kce-printing body{background:#fff!important}.kce-print{color:#16202e;font:11pt/1.35 system-ui,-apple-system,Segoe UI,sans-serif;display:block}.kce-print h1{margin:0;font-size:20pt}.kce-print h2{margin:18pt 0 6pt;font-size:13pt}.kce-print h2 span{color:#5b6778;margin-left:8pt;font-size:9.5pt;font-weight:400}.kce-print-meta{color:#5b6778;font-size:9pt}.kce-print section{break-inside:avoid}.kce-print table{border-collapse:collapse;width:100%}.kce-print th,.kce-print td{text-align:left;vertical-align:middle;border-bottom:.5pt solid #d5dbe3;padding:5pt 6pt}.kce-print th{color:#5b6778;font-size:8.5pt}.kce-print .p{text-align:center;font-variant-numeric:tabular-nums;width:13%}.kce-print td.on{color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#1954a6;font-weight:600}.kce-print tfoot td{border-bottom:0;font-weight:600}}.kce .my-plan-grip{width:22px;height:32px;color:var(--text-3);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;flex:none;align-self:center;place-items:center;margin-right:-4px;padding:0;display:inline-grid}.kce .my-plan-grip svg{width:16px;height:16px}.kce .my-plan-grip:hover,.kce .my-plan-grip:focus-visible{color:var(--text);background:var(--surface-2,#7f7f7f1f)}.kce .my-plan-row.is-dragging{z-index:3;background:var(--surface);border-radius:10px;position:relative;box-shadow:0 10px 30px #00000040}.kce .my-plan-row.is-dragging .my-plan-grip{cursor:grabbing;color:var(--accent)}
