:root{color-scheme:light;--bg: #f7f7f8;--surface: #ffffff;--text: #18181b;--muted: #71717a;--muted-strong: #52525b;--line: #e4e4e7;--line-strong: #d4d4d8;--soft: #f1f1f3;--soft-strong: #e9e9ec;--accent: #16784a;--accent-hover: #12613c;--accent-strong: #0f5b36;--accent-soft: #eef8f2;--accent-soft-hover: #e2f3e9;--accent-border: #9fd4b7;--candidate: #78787f;--candidate-soft: #f4f4f5;--warning: #8a5a14;--warning-soft: #fbf5e9;--focus: #1d4ed8;--shadow-soft: 0 8px 28px rgba(24, 24, 27, .055);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;background:var(--bg);scroll-behavior:smooth}body{min-height:100vh;margin:0;overflow-x:hidden;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Noto Sans JP,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{color:inherit;font:inherit}button{padding:0;background:transparent;border:0}button:not(:disabled),input:not(:disabled){cursor:pointer;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 68%,transparent);outline-offset:3px}::selection{color:var(--text);background:#cfeada}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:10px 14px;color:#fff;background:var(--text);border-radius:10px;text-decoration:none;transform:translateY(-150%);transition:transform .16s var(--ease-out)}.skip-link:focus{transform:translateY(0)}.icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.page-shell{width:min(1380px,calc(100% - 64px));margin:0 auto;padding:48px 0 156px}h1,h2,h3,p{text-wrap:pretty}.timetable-hero{position:relative;z-index:20}.hero-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.hero-title{display:flex;min-width:0;align-items:baseline;gap:14px}h1{margin:0;font-size:clamp(38px,4.6vw,52px);font-weight:735;letter-spacing:-.055em;line-height:1.08}.save-status{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}.save-status>span:first-child{width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px var(--accent-soft)}.hero-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.utility-button,.add-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-radius:12px;font-size:12px;font-weight:690;transition:color .15s ease,background-color .15s ease,transform .1s ease,box-shadow .18s ease}.utility-button{color:var(--muted-strong)}.utility-button:hover{color:var(--text);background:var(--soft)}.add-button{padding-inline:16px;color:#fff;background:var(--accent);box-shadow:0 7px 18px #16784a29}.add-button:hover{background:var(--accent-hover);box-shadow:0 9px 22px #16784a36}.utility-button:active,.add-button:active{transform:scale(.975)}.hero-actions .icon{width:17px;height:17px}.period-console{display:grid;min-height:94px;grid-template-columns:132px minmax(380px,570px) minmax(320px,1fr);align-items:stretch;margin-top:31px;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft);animation:console-in .42s var(--ease-spring) both}@keyframes console-in{0%{opacity:0;transform:translateY(8px)}}.year-selector{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 17px;grid-template-rows:auto auto;align-content:center;gap:2px 8px;padding:16px 19px;border-right:1px solid var(--line);text-align:left;transition:background-color .15s ease}.year-selector:hover{background:var(--soft)}.year-selector>span{grid-column:1;grid-row:1;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em;line-height:1.2}.year-selector strong{grid-column:1;grid-row:2;font-size:17px;font-weight:740;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.3}.year-selector .icon{width:15px;height:15px;grid-column:2;grid-row:2;align-self:center;color:var(--muted)}.quarter-tabs{position:relative;display:grid;min-width:0;grid-template-columns:repeat(4,1fr);align-items:center;gap:0;margin:13px;padding:4px;background:var(--soft);border-radius:17px}.quarter-indicator{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/4);background:var(--surface);border:1px solid rgba(212,212,216,.72);border-radius:13px;box-shadow:0 2px 7px #18181b14;transition:transform .32s var(--ease-spring)}.quarter-tabs button{position:relative;z-index:2;display:flex;min-width:0;min-height:60px;align-items:baseline;justify-content:center;gap:5px;color:var(--muted);border-radius:13px;transition:color .15s ease,transform .1s ease}.quarter-tabs button:hover{color:var(--text)}.quarter-tabs button:active{transform:scale(.97)}.quarter-tabs button[aria-selected=true]{color:var(--accent-strong)}.quarter-tabs button strong{font-size:15px;font-weight:740;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.quarter-tabs button small{font-size:9px;font-weight:680}.semester-divider{position:absolute;top:18px;bottom:18px;left:50%;width:1px;background:var(--line-strong);transform:translate(-.5px)}.credit-summary{display:grid;min-width:0;grid-template-columns:repeat(3,minmax(86px,1fr));align-items:center;padding:0 10px;margin:0;border-left:1px solid var(--line)}.credit-summary>div{position:relative;display:grid;min-width:0;justify-items:center;padding:11px 15px}.credit-summary>div+div:before{position:absolute;top:18px;bottom:18px;left:0;width:1px;background:var(--line);content:""}.credit-summary dt{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em;line-height:1.3}.credit-summary dd{display:flex;align-items:baseline;gap:4px;margin:2px 0 0;line-height:1}.credit-summary dd strong{font-size:21px;font-weight:745;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.credit-summary dd span{color:var(--muted-strong);font-size:9px;font-weight:660}.credit-summary .credit-total dt,.credit-summary .credit-total dd strong{color:var(--accent-strong)}.schedule-section{margin-top:58px}.schedule-toolbar{display:grid;min-height:61px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:22px;padding:0 3px 15px}.schedule-title-group{display:flex;align-items:flex-end;gap:12px}.schedule-title-group>div{display:flex;align-items:baseline;gap:9px}.schedule-title-group p{order:2;margin:0 0 2px;color:var(--muted);font-size:9px;font-weight:720;letter-spacing:.08em}.schedule-title-group h2{margin:0;font-size:27px;font-weight:740;letter-spacing:-.045em;line-height:1.05}.course-count{display:inline-flex;align-items:baseline;gap:3px;margin-bottom:1px;color:var(--muted);font-size:9px;font-weight:670}.course-count strong{color:var(--muted-strong);font-size:12px;font-variant-numeric:tabular-nums}.schedule-legend{display:flex;align-items:center;justify-content:center;gap:18px;padding-bottom:2px;color:var(--muted-strong);font-size:9px;font-weight:660}.schedule-legend span{display:inline-flex;align-items:center;gap:6px}.schedule-legend i{display:block;width:14px;height:14px;border-radius:5px}.legend-active{background:var(--accent-soft);border:1px solid var(--accent-border)}.legend-candidate{background:var(--candidate-soft);border:1px dashed #b8b8be}.more-button{display:grid;width:36px;height:36px;place-items:center;justify-self:end;color:var(--muted-strong);border-radius:10px;transition:color .15s ease,background-color .15s ease,transform .1s ease}.more-button:hover{color:var(--text);background:var(--soft)}.more-button:active{transform:scale(.94)}.more-button .icon{width:19px;height:19px}.desktop-schedule{min-width:0;overflow:hidden;border-radius:24px;box-shadow:0 5px 18px #18181b09}.timetable-grid{width:100%;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-spacing:0;border-radius:24px;table-layout:fixed}.timetable-grid th,.timetable-grid td{min-width:0}.timetable-grid thead th{height:58px;padding:10px 8px 9px;color:var(--muted-strong);background:#fafafa;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:680;text-align:center}.timetable-grid thead th:last-child{border-right:0}.timetable-grid thead th strong,.timetable-grid thead th small{display:block}.timetable-grid thead th strong{color:var(--text);font-size:13px;font-weight:720}.timetable-grid thead th small{margin-top:1px;color:var(--muted);font-size:7px;font-weight:720;letter-spacing:.08em}.timetable-grid .period-corner,.timetable-grid tbody th{width:58px}.timetable-grid tbody th{height:132px;padding:13px 6px;vertical-align:top;background:#fafafa;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.timetable-grid tbody th strong,.timetable-grid tbody th small{display:block}.timetable-grid tbody th strong{font-size:15px;font-weight:740;font-variant-numeric:tabular-nums;line-height:1.2}.timetable-grid tbody th small{margin-top:3px;color:var(--muted);font-size:7px;font-weight:670;font-variant-numeric:tabular-nums}.timetable-grid tbody td{height:132px;padding:8px;vertical-align:top;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color .15s ease}.timetable-grid tbody td:last-child{border-right:0}.timetable-grid tbody tr:last-child th,.timetable-grid tbody tr:last-child td{border-bottom:0}.timetable-grid tbody .empty-slot{position:relative;background:#fdfdfd}.timetable-grid tbody .empty-slot:after{position:absolute;top:50%;left:50%;width:4px;height:4px;background:var(--line);border-radius:50%;content:"";opacity:0;transform:translate(-50%,-50%) scale(.6);transition:opacity .16s ease,transform .22s var(--ease-spring)}.timetable-grid tbody .empty-slot:hover{background:#fafafa}.timetable-grid tbody .empty-slot:hover:after{opacity:1;transform:translate(-50%,-50%) scale(1)}.course-tile{position:relative;min-height:114px;padding:12px 12px 11px 14px;overflow:hidden;background:#f7fbf8;border:1px solid color-mix(in srgb,var(--accent-border) 60%,var(--line));border-radius:14px;transition:border-color .16s ease,box-shadow .18s ease,transform .18s var(--ease-out)}.course-tile:before{position:absolute;top:12px;bottom:12px;left:0;width:3px;background:var(--accent);border-radius:0 3px 3px 0;content:""}.course-tile:hover{border-color:var(--accent-border);box-shadow:0 7px 18px #18181b12;transform:translateY(-1px)}.course-tile-top{display:flex;min-width:0;min-height:17px;align-items:center;justify-content:space-between;gap:5px}.course-code{min-width:0;overflow:hidden;color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:760;font-variant-numeric:tabular-nums;letter-spacing:.035em;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.course-tile-top>button{display:grid;width:22px;height:18px;flex:0 0 auto;place-items:center;color:var(--muted);border-radius:6px}.course-tile-top>button:hover{color:var(--text);background:#ffffffd9}.course-tile-top>button .icon{width:14px;height:14px}.course-tile h3{display:-webkit-box;margin:5px 0 0;overflow:hidden;font-size:11px;font-weight:710;letter-spacing:-.02em;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.course-tile>p,.course-stack .course-tile p{margin:4px 0 0;overflow:hidden;color:var(--muted-strong);font-size:8px;font-weight:590;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.course-foot{display:block;margin-top:8px;overflow:hidden;color:var(--muted);font-size:7px;font-weight:650;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.linked-slot,.online-label,.candidate-label{display:inline-flex;min-height:18px;flex:0 0 auto;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;font-size:7px;font-weight:720;line-height:1;white-space:nowrap}.linked-slot{color:var(--accent-strong);background:var(--accent-soft)}.online-label{color:var(--accent-strong);background:#ffffffc7}.online-label .icon{width:9px;height:9px}.candidate-label{color:var(--candidate);background:var(--surface);border:1px solid var(--line)}.conflict-row th,.conflict-row td{height:224px!important}.has-conflict{background:#fdfbf7!important}.conflict-heading{display:flex;min-height:22px;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 5px}.conflict-heading span{color:var(--muted);font-size:7px;font-weight:680}.conflict-heading strong{color:var(--warning);font-size:7px;font-weight:740}.course-stack{display:grid;gap:6px}.course-stack .course-tile{display:grid;min-height:88px;grid-template-columns:17px 9px minmax(0,1fr) 17px;align-items:center;gap:5px;padding:9px 8px 9px 7px}.course-stack .course-tile:before{display:none}.course-stack .course-tile h3{margin-top:3px;font-size:9px;line-height:1.35}.course-stack .course-tile p{margin-top:3px;font-size:7px}.priority-number{display:grid;width:17px;height:17px;place-items:center;align-self:start;color:var(--accent-strong);background:var(--surface);border:1px solid color-mix(in srgb,var(--accent-border) 70%,var(--line));border-radius:6px;font-size:7px;font-weight:760;font-variant-numeric:tabular-nums}.drag-grip{display:grid;width:7px;grid-template-columns:repeat(2,2px);gap:2px 2px;align-self:center;justify-content:center;cursor:grab}.drag-grip i{width:2px;height:2px;background:var(--muted);border-radius:50%}.priority-check{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.course-tile.is-candidate,.mobile-course.is-candidate{background:var(--candidate-soft);border-color:#cfcfd4;border-style:dashed}.course-tile.is-candidate:before{background:#a1a1aa}.course-tile.is-candidate .priority-number{color:var(--muted-strong);border-color:var(--line-strong)}.course-stack .candidate-label{align-self:start}.single-candidate{opacity:.78}.mobile-schedule{display:none}.other-section{margin-top:52px}.other-section>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:0 3px 14px;border-bottom:1px solid var(--line)}.other-section>header>div{display:flex;align-items:baseline;gap:10px}.other-section h2,.add-course-section h2{margin:0;font-size:23px;font-weight:730;letter-spacing:-.04em;line-height:1.2}.other-section>header p{margin:0;color:var(--muted);font-size:9px;font-weight:650}.other-section>header>span{color:var(--muted);font-size:9px;font-weight:680}.other-course-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line)}.other-course{display:grid;min-width:0;min-height:106px;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;gap:13px;padding:19px 18px 19px 5px;transition:background-color .15s ease}.other-course+.other-course{border-left:1px solid var(--line)}.other-course:hover{background:#ffffff9e}.other-course-icon{display:grid;width:42px;height:42px;place-items:center;color:var(--accent);background:var(--accent-soft);border-radius:13px}.other-course-icon .icon{width:19px;height:19px}.other-course h3{margin:3px 0 0;overflow:hidden;font-size:13px;font-weight:710;letter-spacing:-.02em;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.other-course p{margin:4px 0 0;color:var(--muted);font-size:9px;font-weight:600}.other-course>button{display:grid;width:34px;height:34px;place-items:center;color:var(--muted);border-radius:10px}.other-course>button:hover{color:var(--text);background:var(--soft)}.other-course>button .icon{width:17px;height:17px}.add-course-section{display:grid;grid-template-columns:180px minmax(0,1fr);gap:42px;margin-top:76px;padding:34px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 7px 24px #18181b0a}.add-course-section>header{align-self:center}.add-paths{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(170px,1fr)) minmax(260px,1.25fr);border:1px solid var(--line);border-radius:18px}.add-path,.code-path{min-width:0;min-height:78px}.add-path{display:grid;grid-template-columns:34px minmax(0,1fr) 15px;align-items:center;gap:10px;padding:12px 14px;text-align:left;transition:background-color .15s ease}.add-path+.add-path,.code-path{border-left:1px solid var(--line)}.add-path:first-child{border-radius:17px 0 0 17px}.add-path:hover{background:var(--accent-soft)}.add-path-icon{display:grid;width:34px;height:34px;place-items:center;color:var(--accent);background:var(--accent-soft);border-radius:11px}.add-path:hover .add-path-icon{background:var(--surface)}.add-path-icon .icon{width:16px;height:16px}.add-path>span:nth-child(2),.code-path label{display:grid;min-width:0}.add-path strong,.code-path label strong{font-size:11px;font-weight:700;letter-spacing:-.01em;line-height:1.35}.add-path small,.code-path label small{margin-top:2px;color:var(--muted);font-size:8px;font-weight:590;line-height:1.3}.path-arrow{width:14px;height:14px;color:var(--muted);transition:transform .18s var(--ease-spring)}.add-path:hover .path-arrow{color:var(--accent);transform:translate(2px)}.code-path{display:grid;grid-template-columns:minmax(92px,.7fr) minmax(130px,1fr);align-items:center;gap:12px;padding:10px 11px 10px 16px;border-radius:0 17px 17px 0}.code-path>div{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:4px;padding:4px;background:var(--soft);border:1px solid transparent;border-radius:12px;transition:background-color .15s ease,border-color .15s ease}.code-path>div:focus-within{background:var(--soft-strong);border-color:transparent}.code-path input{width:100%;min-width:0;height:34px;padding:0 8px;background:transparent;border:0;outline:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:680;letter-spacing:.02em}.code-path input::placeholder{color:#a1a1aa;opacity:1}.code-path button{display:grid;width:34px;height:34px;place-items:center;color:#fff;background:var(--accent);border-radius:9px;transition:background-color .15s ease,transform .1s ease}.code-path button:hover{background:var(--accent-hover)}.code-path button:active{transform:scale(.94)}.code-path button .icon{width:15px;height:15px}.mobile-add-dock{display:none}@media(max-width:1160px){.page-shell{width:calc(100% - 48px)}.period-console{grid-template-columns:116px minmax(360px,1.4fr) minmax(280px,1fr)}.credit-summary>div{padding-inline:8px}.course-tile{padding-inline:10px}.course-tile h3{font-size:10px}.course-stack .course-tile{grid-template-columns:15px 7px minmax(0,1fr) 15px;gap:4px;padding-inline:5px}.priority-number{width:15px;height:15px}.course-stack .course-tile h3{font-size:8px}.add-course-section{grid-template-columns:150px minmax(0,1fr);gap:26px;padding:28px}.add-paths{grid-template-columns:repeat(2,minmax(145px,1fr))}.code-path{grid-column:1 / -1;border-top:1px solid var(--line);border-left:0;border-radius:0 0 17px 17px}}@media(max-width:1040px)and (min-width:961px){.period-console{grid-template-columns:116px minmax(0,1fr)}.credit-summary{grid-column:1 / -1;min-height:72px;border-top:1px solid var(--line);border-left:0}.credit-summary>div+div:before{top:14px;bottom:14px}.timetable-grid .period-corner,.timetable-grid tbody th{width:51px}.timetable-grid tbody td{padding:5px}.course-tile{padding-inline:8px}.course-tile h3{font-size:9px}.course-tile>p,.course-foot{font-size:7px}}@media(max-width:960px){.page-shell{width:calc(100% - 34px);padding:37px 0 178px}.hero-heading-row{align-items:center;gap:16px}h1{font-size:clamp(34px,10vw,42px)}.hero-title{display:block}.save-status{margin-top:7px;margin-left:4px;font-size:9px}.save-status>span:first-child{width:6px;height:6px;box-shadow:0 0 0 4px var(--accent-soft)}.hero-actions{gap:3px}.utility-button{width:40px;min-height:40px;padding:0}.utility-button span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.add-button{min-height:40px;padding-inline:13px}.add-button span{font-size:10px}.period-console{grid-template-columns:94px minmax(0,1fr);margin-top:25px;border-radius:21px}.year-selector{min-height:82px;padding:13px 14px}.year-selector strong{font-size:15px}.quarter-tabs{min-width:0;margin:10px;border-radius:15px}.quarter-indicator,.quarter-tabs button{border-radius:11px}.quarter-tabs button{min-height:54px;gap:3px}.quarter-tabs button strong{font-size:13px}.quarter-tabs button small{font-size:7px}.semester-divider{top:15px;bottom:15px}.credit-summary{grid-column:1 / -1;min-height:69px;padding:0 5px;border-top:1px solid var(--line);border-left:0}.credit-summary>div{padding-block:8px}.credit-summary>div+div:before{top:12px;bottom:12px}.credit-summary dd strong{font-size:18px}.schedule-section{margin-top:43px}.schedule-toolbar{display:flex;min-height:54px;align-items:flex-end;justify-content:space-between;padding-bottom:12px}.schedule-title-group>div{display:grid;gap:1px}.schedule-title-group p{order:0;margin:0;font-size:7px}.schedule-title-group h2{font-size:25px}.schedule-legend,.desktop-schedule{display:none}.mobile-schedule{display:block;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:21px;box-shadow:0 5px 18px #18181b09}.mobile-day-tabs{display:grid;grid-template-columns:repeat(6,minmax(45px,1fr));gap:2px;padding:7px;background:#fafafa;border-bottom:1px solid var(--line)}.mobile-day-tabs button{display:flex;min-width:0;min-height:48px;align-items:center;justify-content:center;gap:4px;color:var(--muted);border-radius:12px;font-size:11px;font-weight:700;transition:color .15s ease,background-color .15s ease,transform .1s ease}.mobile-day-tabs button:active{transform:scale(.96)}.mobile-day-tabs button[aria-selected=true]{color:var(--accent-strong);background:var(--accent-soft)}.mobile-day-tabs button small{display:grid;min-width:16px;height:16px;place-items:center;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;font-size:7px;font-weight:720;line-height:1}.mobile-day-tabs button[aria-selected=true] small{color:var(--accent-strong);border-color:color-mix(in srgb,var(--accent-border) 65%,var(--line))}.mobile-timeline{padding:0;margin:0;list-style:none}.mobile-timeline>li{display:grid;min-height:94px;grid-template-columns:58px minmax(0,1fr);border-bottom:1px solid var(--line)}.mobile-timeline>li:last-child{border-bottom:0}.mobile-period{padding-top:17px;background:#fafafa;border-right:1px solid var(--line);text-align:center}.mobile-period strong,.mobile-period small{display:block}.mobile-period strong{font-size:15px;font-weight:740;line-height:1.2}.mobile-period small{margin-top:3px;color:var(--muted);font-size:7px;font-weight:650;font-variant-numeric:tabular-nums}.mobile-timeline>.is-empty{min-height:72px}.mobile-timeline>.is-empty .mobile-period{padding-top:12px}.mobile-timeline>.is-empty>button{display:grid;min-width:0;place-items:center;color:#c1c1c6;transition:color .15s ease,background-color .15s ease}.mobile-timeline>.is-empty>button:hover{color:var(--accent);background:var(--accent-soft)}.mobile-timeline>.is-empty>button .icon{width:17px;height:17px}.mobile-course{position:relative;display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;margin:8px;padding:12px 10px 12px 14px;background:#f7fbf8;border:1px solid color-mix(in srgb,var(--accent-border) 60%,var(--line));border-radius:14px}.mobile-course:before{position:absolute;top:12px;bottom:12px;left:0;width:3px;background:var(--accent);border-radius:0 3px 3px 0;content:""}.mobile-course h3{margin:3px 0 0;font-size:13px;font-weight:710;letter-spacing:-.02em;line-height:1.4}.mobile-course p{margin:4px 0 0;color:var(--muted-strong);font-size:9px;font-weight:590;line-height:1.35}.mobile-course>button{display:grid;width:32px;height:32px;place-items:center;color:var(--muted);border-radius:9px}.mobile-course>button:hover{color:var(--text);background:var(--surface)}.mobile-course>button .icon{width:16px;height:16px}.has-mobile-conflict{min-height:262px!important}.has-mobile-conflict .mobile-period{padding-top:38px}.mobile-slot-content{min-width:0;padding:8px;background:#fdfbf7}.mobile-conflict-title{display:flex;align-items:center;justify-content:space-between;padding:0 2px 4px;color:var(--muted);font-size:8px;font-weight:660}.mobile-conflict-title strong{color:var(--warning);font-weight:720}.mobile-slot-content .mobile-course{grid-template-columns:20px 8px minmax(0,1fr) auto;gap:7px;margin:0;padding:12px 10px 12px 8px}.mobile-slot-content .mobile-course+.mobile-course{margin-top:7px}.mobile-slot-content .mobile-course:before{display:none}.mobile-rank{display:grid;width:20px;height:20px;place-items:center;align-self:start;color:var(--accent-strong);background:var(--surface);border:1px solid color-mix(in srgb,var(--accent-border) 70%,var(--line));border-radius:7px;font-size:8px;font-weight:760}.mobile-course.is-candidate .mobile-rank{color:var(--muted-strong);border-color:var(--line-strong)}.mobile-course.is-candidate:before{background:#a1a1aa}.mobile-slot-content .candidate-label,.mobile-slot-content .priority-check{align-self:start}.other-section{margin-top:44px}.other-section>header{padding-inline:2px}.other-section h2{font-size:21px}.other-course-list{grid-template-columns:1fr}.other-course{min-height:94px;padding:15px 5px}.other-course+.other-course{border-top:1px solid var(--line);border-left:0}.add-course-section{display:none}.mobile-add-dock{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;z-index:150;display:grid;max-width:460px;min-height:68px;grid-template-columns:58px 58px minmax(142px,1fr);align-items:center;gap:4px;padding:7px;margin:0 auto;background:#ffffffe0;border:1px solid rgba(212,212,216,.88);border-radius:20px;box-shadow:0 16px 48px #18181b2b,0 2px 8px #18181b0d;backdrop-filter:blur(18px) saturate(1.25)}.mobile-add-dock>button{display:grid;min-height:52px;place-items:center;align-content:center;gap:3px;color:var(--muted-strong);border-radius:14px;font-size:7px;font-weight:660;transition:color .15s ease,background-color .15s ease,transform .1s ease}.mobile-add-dock>button:hover{color:var(--text);background:var(--soft)}.mobile-add-dock>button:active{transform:scale(.96)}.mobile-add-dock>button .icon{width:17px;height:17px}.mobile-add-dock .mobile-primary-add{display:flex;flex-direction:row;color:#fff;background:var(--accent);font-size:11px;font-weight:710}.mobile-add-dock .mobile-primary-add:hover{color:#fff;background:var(--accent-hover)}}@media(max-width:420px){.page-shell{width:calc(100% - 28px)}.hero-heading-row{gap:9px}.hero-actions{gap:0}.materials-button{display:none}.add-button{padding-inline:11px}.quarter-tabs{margin-inline:7px}.quarter-tabs button{min-height:52px}.mobile-day-tabs{gap:0;padding-inline:5px}.mobile-day-tabs button{gap:2px}.mobile-day-tabs button small{min-width:14px;height:14px;font-size:6px}.mobile-timeline>li{grid-template-columns:52px minmax(0,1fr)}.mobile-slot-content{padding:7px 6px}.mobile-slot-content .mobile-course{grid-template-columns:18px 7px minmax(0,1fr) auto;gap:5px;padding-inline:6px}.mobile-rank{width:18px;height:18px}.mobile-course h3{font-size:12px}.other-course{grid-template-columns:38px minmax(0,1fr) 32px;gap:10px}.other-course-icon{width:38px;height:38px}}[hidden]{display:none!important}body.dialog-open{overflow:hidden}.period-console{overflow:visible}.year-picker{position:relative;min-width:0;border-right:1px solid var(--line);border-radius:23px 0 0 23px}.year-selector{width:100%;height:100%;border-right:0;border-radius:23px 0 0 23px}.year-picker.is-open .year-selector{background:var(--soft)}.year-picker.is-open .year-selector .icon{transform:rotate(180deg)}.year-selector .icon{transition:transform .18s var(--ease-spring)}.year-menu{position:absolute;top:calc(100% + 9px);left:0;z-index:180;display:grid;width:172px;gap:3px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 46px #18181b29,0 2px 8px #18181b0d;animation:timetable-menu-in .18s var(--ease-spring) both}.year-menu button{display:grid;min-height:40px;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:8px;padding:7px 9px 7px 11px;color:var(--muted-strong);border-radius:10px;font-size:11px;font-weight:680;text-align:left;transition:color .14s ease,background-color .14s ease}.year-menu button:hover,.year-menu button:focus-visible{color:var(--text);background:var(--soft)}.year-menu button[aria-selected=true]{color:var(--accent-strong);background:var(--accent-soft)}.year-menu button .icon{width:14px;height:14px;opacity:0}.year-menu button[aria-selected=true] .icon{opacity:1}.quarter-indicator{transform:translate(calc(var(--quarter-index, 0) * 100%))}.schedule-menu-wrap{position:relative;justify-self:end}.schedule-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:170;display:grid;width:254px;gap:3px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 46px #18181b29,0 2px 8px #18181b0d;animation:timetable-menu-in .18s var(--ease-spring) both}@keyframes timetable-menu-in{0%{opacity:0;transform:translateY(-5px) scale(.97)}}.menu-caption{padding:5px 10px 2px;color:var(--muted);font-size:8px;font-weight:730;letter-spacing:.08em}.detail-toggle-row{display:grid;min-height:58px;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:10px;padding:8px 9px 8px 11px;border-radius:12px;transition:background-color .14s ease}.detail-toggle-row:hover{background:var(--soft)}.detail-toggle-row>span:first-child{display:grid}.detail-toggle-row strong{font-size:11px;font-weight:700}.detail-toggle-row small{margin-top:2px;color:var(--muted);font-size:8px;font-weight:590}.detail-toggle-row input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{position:relative;width:36px;height:22px;background:#d4d4d8;border-radius:999px;transition:background-color .18s ease}.switch-track:after{position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #18181b33;content:"";transition:transform .22s var(--ease-spring)}.detail-toggle-row input:checked+.switch-track{background:var(--accent)}.detail-toggle-row input:checked+.switch-track:after{transform:translate(14px)}.detail-toggle-row input:focus-visible+.switch-track{outline:3px solid color-mix(in srgb,var(--focus) 68%,transparent);outline-offset:3px}.menu-divider{display:block;height:1px;margin:4px 5px;background:var(--line)}.schedule-menu>button,.course-action-menu>button{display:flex;min-height:40px;align-items:center;gap:9px;padding:7px 10px;color:var(--muted-strong);border-radius:11px;font-size:11px;font-weight:670;text-align:left;transition:color .14s ease,background-color .14s ease}.schedule-menu>button:hover,.course-action-menu>button:hover{color:var(--text);background:var(--soft)}.schedule-menu>button .icon,.course-action-menu>button .icon{width:15px;height:15px}.schedule-menu>.danger-menu-item,.course-action-menu>.danger-menu-item{color:#9f1239}.schedule-menu>.danger-menu-item:hover,.course-action-menu>.danger-menu-item:hover{color:#881337;background:#fff1f2}.timetable-grid tbody th,.timetable-grid tbody td{height:92px}.timetable-grid tbody td{padding:6px}.course-tile{min-height:78px;padding:8px 9px 8px 12px}.course-tile:before{top:10px;bottom:10px}.course-tile-top{min-height:16px}.course-menu-trigger{display:grid;width:22px;height:20px;flex:0 0 auto;place-items:center;color:var(--muted);border-radius:7px;transition:color .14s ease,background-color .14s ease,transform .1s ease}.course-menu-trigger:hover,.course-menu-trigger[aria-expanded=true]{color:var(--text);background:#ffffffe0}.course-menu-trigger:active{transform:scale(.92)}.course-menu-trigger .icon{width:14px;height:14px}.course-tile h3{margin-top:3px;font-size:10px;line-height:1.35}.course-credits{display:block;margin-top:5px;color:var(--muted-strong);font-size:7px;font-weight:670;line-height:1.25}.course-detail{display:none;min-width:0;flex-wrap:wrap;gap:3px 7px;margin-top:6px;color:var(--muted);font-size:7px;font-weight:600;line-height:1.35}.course-detail span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-detail span+span:before{margin-right:7px;color:var(--line-strong);content:"·"}.course-state-row,.stack-course-meta{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:6px}.course-state-row .course-credits{margin-top:5px}.candidate-label{min-height:16px;padding:2px 5px;font-size:6px}.conflict-row th,.conflict-row td{height:164px!important}.conflict-heading{min-height:18px;padding-bottom:3px}.course-stack{gap:4px}.course-stack .course-tile{min-height:66px;grid-template-columns:8px minmax(0,1fr) 22px;gap:5px;padding:7px 6px}.course-stack .course-tile h3{margin-top:2px;font-size:8px;line-height:1.3}.course-stack .course-credits{margin-top:3px;font-size:6px}.stack-course-copy{min-width:0}.stack-course-meta .candidate-label{margin-left:auto}.priority-number,.mobile-rank,.priority-check,.linked-slot,.online-label,.course-foot{display:none!important}.timetable-grid tbody .is-empty-row>th,.timetable-grid tbody .is-empty-row>td{height:50px;padding-top:5px;padding-bottom:5px;vertical-align:middle}.timetable-grid tbody .is-empty-row>th{padding-top:8px;vertical-align:top}.schedule-section.is-detailed .timetable-grid tbody tr:not(.is-empty-row)>th,.schedule-section.is-detailed .timetable-grid tbody tr:not(.is-empty-row)>td{height:132px}.schedule-section.is-detailed .conflict-row th,.schedule-section.is-detailed .conflict-row td{height:224px!important}.schedule-section.is-detailed .course-tile{min-height:114px;padding:11px 11px 10px 14px}.schedule-section.is-detailed .course-tile h3{margin-top:5px;font-size:11px;line-height:1.45}.schedule-section.is-detailed .course-detail{display:flex}.schedule-section.is-detailed .course-stack .course-tile{min-height:91px;padding:9px 7px}.course-action-menu{position:fixed;z-index:500;display:grid;width:230px;gap:3px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 48px #18181b2e,0 2px 8px #18181b0d;animation:timetable-menu-in .16s var(--ease-spring) both}.course-action-menu>header{display:grid;min-width:0;padding:6px 10px 7px}.course-action-menu>header span{color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:760;letter-spacing:.035em}.course-action-menu>header strong{margin-top:2px;overflow:hidden;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.materials-dialog{width:min(760px,calc(100% - 40px));max-width:none;max-height:min(82dvh,780px);padding:0;overflow:hidden;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 28px 90px #18181b3d;opacity:0;transform:translateY(10px) scale(.985);transition:opacity .18s ease,transform .24s var(--ease-spring),overlay .24s allow-discrete,display .24s allow-discrete;transition-behavior:allow-discrete}.materials-dialog[open]{opacity:1;transform:none}.materials-dialog::backdrop{background:#18181b47;backdrop-filter:blur(4px);opacity:0;transition:opacity .18s ease,overlay .24s allow-discrete,display .24s allow-discrete;transition-behavior:allow-discrete}.materials-dialog[open]::backdrop{opacity:1}@starting-style{.materials-dialog[open]{opacity:0;transform:translateY(10px) scale(.985)}.materials-dialog[open]::backdrop{opacity:0}}@keyframes materials-dialog-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}@keyframes materials-backdrop-in{0%{opacity:0}}.materials-dialog-shell{display:grid;height:100%;max-height:min(82dvh,780px);grid-template-rows:auto minmax(0,1fr);overflow:hidden}[data-materials-content]{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dialog-sheet-grabber{display:none}.materials-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 25px}.materials-dialog-header h2{margin:0;font-size:25px;font-weight:735;letter-spacing:-.045em;line-height:1.2}.materials-summary{display:flex;align-items:baseline;gap:14px;padding:13px 25px;background:var(--accent-soft);border-top:1px solid color-mix(in srgb,var(--accent-border) 54%,var(--line));border-bottom:1px solid color-mix(in srgb,var(--accent-border) 54%,var(--line));color:var(--accent-strong);font-size:9px;font-weight:670}.materials-summary span{display:inline-flex;align-items:baseline;gap:3px}.materials-summary strong{font-size:15px;font-weight:740}.materials-summary small{margin-left:auto;color:var(--muted-strong);font-size:8px;font-weight:650}.materials-list{padding:0 25px 18px;overflow-y:auto}.material-row{display:grid;min-width:0;grid-template-columns:minmax(140px,.7fr) minmax(0,1.3fr);gap:25px;padding:19px 1px;border-bottom:1px solid var(--line)}.material-row:last-child{border-bottom:0}.material-course,.material-copy{display:grid;min-width:0;align-content:start}.material-course span,.material-copy>span{color:var(--accent-strong);font-size:8px;font-weight:720}.material-course span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.material-course strong,.material-copy strong{margin-top:4px;font-size:12px;font-weight:700;letter-spacing:-.01em;line-height:1.45}.material-copy small{margin-top:3px;color:var(--muted);font-size:8px;font-weight:590}@media(max-width:960px){.year-picker,.year-selector{border-radius:20px 0 0}.year-menu{width:160px}.schedule-menu{width:244px}.mobile-timeline>li{min-height:78px}.mobile-timeline>.is-empty{min-height:54px}.mobile-timeline>.is-empty .mobile-period{padding-top:8px}.mobile-course{min-height:62px;padding-block:9px}.mobile-course h3{margin-top:2px}.mobile-course .course-credits{margin-top:4px;font-size:8px}.has-mobile-conflict{min-height:0!important}.has-mobile-conflict .mobile-period{padding-top:32px}.mobile-slot-content .mobile-course{min-height:64px;grid-template-columns:8px minmax(0,1fr) 22px;gap:6px;padding:8px 7px}.mobile-slot-content .mobile-course h3{font-size:11px}.mobile-slot-content .candidate-label{align-self:center}.schedule-section.is-detailed .mobile-course{min-height:88px;padding-block:12px}.schedule-section.is-detailed .mobile-course .course-detail{display:flex;font-size:8px}}@media(max-width:420px){.hero-actions>.utility-button:first-child{display:none}.materials-button{display:inline-flex}.mobile-slot-content .mobile-course{grid-template-columns:7px minmax(0,1fr) 22px;gap:5px}}.course-tile,.mobile-course,.other-course{-webkit-touch-callout:none;touch-action:pan-y}.other-course{position:relative}.course-detail-hitbox{position:absolute;inset:0;z-index:1;border-radius:inherit;cursor:pointer}.course-detail-hitbox:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:-3px}.course-tile.is-menu-open,.mobile-course.is-menu-open,.other-course.is-menu-open{border-color:var(--accent-border);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent),0 8px 22px #18181b14}.course-tile-top{justify-content:flex-start}.course-code-copy{position:relative;z-index:2;display:inline-flex;width:max-content;max-width:100%;min-height:16px;flex:0 1 auto;align-items:center;gap:4px;padding:1px 4px 1px 1px;color:var(--accent-strong);border-radius:5px;transition:color .14s ease,background-color .14s ease,transform .1s ease}.course-tile-top>.course-code-copy{display:inline-flex;width:max-content;height:auto;min-height:16px;flex:0 1 auto}.course-code-copy:hover,.course-code-copy:focus-visible{color:var(--accent);background:#ffffffe6;outline:none}.course-code-copy:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}.course-code-copy:active{transform:scale(.96)}.course-code-copy>i{position:relative;width:9px;height:9px;flex:0 0 9px;opacity:.56;transition:opacity .14s ease,transform .18s var(--ease-spring)}.course-code-copy>i:before,.course-code-copy>i:after{position:absolute;width:5px;height:5px;border:1px solid currentColor;border-radius:1.5px;content:""}.course-code-copy>i:before{right:0;bottom:0}.course-code-copy>i:after{top:0;left:0;background:inherit}.course-code-copy:hover>i,.course-code-copy:focus-visible>i,.course-code-copy.is-copied>i{opacity:1}.course-code-copy.is-copied>i{transform:scale(1.12) rotate(-4deg)}.drag-grip{position:relative;z-index:2;touch-action:none;user-select:none;-webkit-user-select:none}.course-stack .course-tile{grid-template-columns:8px minmax(0,1fr)}.mobile-course{grid-template-columns:minmax(0,1fr)}.mobile-slot-content .mobile-course{grid-template-columns:8px minmax(0,1fr)}.other-course{grid-template-columns:42px minmax(0,1fr);padding-right:18px}.materials-list{display:grid;gap:22px;padding-top:21px;padding-bottom:24px}.materials-load-note{margin:18px 25px 0;padding:9px 12px;border-radius:10px;background:var(--candidate-soft);color:var(--muted-strong);font-size:10px;font-weight:620}.materials-group{min-width:0}.materials-group+.materials-group{padding-top:22px;border-top:1px solid var(--line)}.materials-group-header{display:flex;min-height:28px;align-items:baseline;justify-content:space-between;gap:16px;padding:0 1px 8px}.materials-group-header h3{margin:0;font-size:16px;font-weight:730;letter-spacing:-.025em}.materials-group-header span{color:var(--muted);font-size:8px;font-weight:680}.materials-group-list .material-row:first-child{border-top:1px solid var(--line)}.materials-group-list .material-row:last-child{border-bottom:0}.timetable-toast{position:fixed;bottom:24px;left:50%;z-index:700;max-width:min(360px,calc(100% - 32px));padding:10px 15px;color:#fff;background:#18181bf0;border-radius:999px;box-shadow:0 12px 36px #18181b38;font-size:10px;font-weight:650;text-align:center;transform:translate(-50%);animation:timetable-menu-in .16s var(--ease-spring) both}@media(max-width:960px){.mobile-slot-content .mobile-course{grid-template-columns:8px minmax(0,1fr)}.other-course{grid-template-columns:38px minmax(0,1fr)}.mobile-add-dock{column-gap:6px}.mobile-add-dock .mobile-primary-add{min-width:0;justify-content:center;gap:7px;padding-inline:18px}.timetable-toast{bottom:max(94px,calc(env(safe-area-inset-bottom) + 82px))}}@media(max-width:540px){.materials-group-header h3{font-size:15px}.materials-group+.materials-group{padding-top:18px}}@media(max-width:420px){.mobile-slot-content .mobile-course{grid-template-columns:7px minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.share-banner{display:grid;min-height:66px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:13px;margin:0 0 27px;padding:12px 14px 12px 12px;color:var(--accent-strong);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-border) 78%,var(--line));border-radius:18px;animation:console-in .3s var(--ease-spring) both}.share-banner-icon{display:grid;width:34px;height:34px;place-items:center;background:#ffffffc7;border-radius:11px}.share-banner-icon .icon{width:17px;height:17px}.share-banner>span:nth-child(2){display:grid;min-width:0}.share-banner strong{color:var(--text);font-size:12px;font-weight:720}.share-banner small{margin-top:1px;color:var(--muted-strong);font-size:9px;font-weight:590}.share-banner>button{min-height:36px;padding:0 13px;color:#fff;background:var(--accent);border-radius:11px;font-size:10px;font-weight:700;transition:background-color .15s ease,transform .1s ease}.share-banner>button:hover{background:var(--accent-hover)}.share-banner>button:active{transform:scale(.97)}.save-status[data-state=error]{color:#9f1239}.save-status[data-state=error]>span:first-child{background:#e11d48;box-shadow:0 0 0 5px #fff1f2}.year-selector:disabled{cursor:default}.schedule-loading,.schedule-error{display:grid;min-height:360px;place-content:center;justify-items:center;gap:13px;color:var(--muted);background:var(--surface)}.schedule-loading>span,.dialog-loading>span{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:timetable-spin .72s linear infinite}@keyframes timetable-spin{to{transform:rotate(360deg)}}.schedule-loading p{margin:0;font-size:11px;font-weight:650}.schedule-error strong{color:var(--text);font-size:15px;font-weight:720}.schedule-error button,.add-retry,.add-empty-link{display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:0 14px;color:var(--accent-strong);background:var(--accent-soft);border-radius:11px;font-size:10px;font-weight:700;text-decoration:none}.empty-slot-button{position:absolute;inset:0;z-index:1;width:100%;height:100%;border-radius:0}.empty-slot-button:focus-visible{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-3px}.course-tile-top{position:relative;z-index:2;justify-content:flex-start}.course-tile-top .candidate-label{margin-left:auto}.course-tile.is-dragging,.mobile-course.is-dragging{opacity:.52;box-shadow:0 12px 28px #18181b21;transform:scale(.98)}.course-stack .course-tile[draggable=true],.mobile-slot-content .mobile-course[draggable=true]{cursor:grab}.course-stack .course-tile[draggable=true]:active,.mobile-slot-content .mobile-course[draggable=true]:active{cursor:grabbing}.sort-floating{position:fixed;z-index:700;pointer-events:none;opacity:.98;box-shadow:0 18px 42px #18181b33;transform:scale(1.025) rotate(.35deg);transition:none;will-change:left,top,transform}.is-sort-placeholder{color:transparent!important;background:color-mix(in srgb,var(--accent-soft) 72%,transparent)!important;border-color:var(--accent-border)!important;border-style:dashed!important;box-shadow:none!important}.is-sort-placeholder>*{visibility:hidden}.other-course .course-tile-top{padding-right:1px}.other-section>header>span strong{margin-right:2px;color:var(--text);font-size:11px}.add-course-dialog{width:min(720px,calc(100% - 40px));height:min(720px,calc(100dvh - 48px));max-width:none;max-height:none;padding:0;overflow:hidden;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 28px 90px #18181b3d;opacity:0;transform:translateY(10px) scale(.985);transition:opacity .18s ease,transform .24s var(--ease-spring),overlay .24s allow-discrete,display .24s allow-discrete;transition-behavior:allow-discrete}.add-course-dialog[open]{opacity:1;transform:none}.add-course-dialog::backdrop{background:#18181b4d;backdrop-filter:blur(4px);opacity:0;transition:opacity .18s ease,overlay .24s allow-discrete,display .24s allow-discrete;transition-behavior:allow-discrete}.add-course-dialog[open]::backdrop{opacity:1}.confirm-dialog::backdrop{background:#18181b4d;backdrop-filter:blur(4px);animation:materials-backdrop-in .18s ease both}@starting-style{.add-course-dialog[open]{opacity:0;transform:translateY(10px) scale(.985)}.add-course-dialog[open]::backdrop{opacity:0}}.add-course-dialog.is-closing,.materials-dialog.is-closing{opacity:0;transform:translateY(10px) scale(.985);transition-duration:.18s;transition-timing-function:ease-in}.add-course-dialog.is-closing::backdrop,.materials-dialog.is-closing::backdrop{opacity:0}.add-dialog-shell{display:grid;height:100%;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.add-dialog-header{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px 15px}.add-dialog-header>div{display:grid}.add-dialog-header h2{margin:1px 0 0;font-size:23px;font-weight:735;letter-spacing:-.04em;line-height:1.2}.add-dialog-header>button:not(.dialog-sheet-grabber),.materials-dialog-header>button:not(.dialog-sheet-grabber){display:grid;width:36px;height:36px;place-items:center;color:var(--muted);background:var(--soft);border-radius:11px;transition:color .14s ease,background-color .14s ease,transform .1s ease}.add-dialog-header>button:not(.dialog-sheet-grabber):hover,.materials-dialog-header>button:not(.dialog-sheet-grabber):hover{color:var(--text);background:var(--soft-strong)}.add-dialog-header>button:not(.dialog-sheet-grabber):active,.materials-dialog-header>button:not(.dialog-sheet-grabber):active{transform:scale(.94)}.add-dialog-tabs{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:0 22px 13px;padding:4px;background:var(--soft);border-radius:13px}.add-dialog-tabs button{min-height:36px;color:var(--muted-strong);border-radius:9px;font-size:10px;font-weight:680;transition:color .14s ease,box-shadow .16s ease}.add-dialog-tabs button[aria-selected=true]{color:var(--text);background:var(--surface);box-shadow:0 1px 4px #18181b17}.add-dialog-panel{width:100%;min-height:0;grid-row:3;grid-column:1;padding:0 22px 24px;overflow-y:auto;background:var(--surface);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.add-dialog-panel[hidden]{display:none}.add-dialog-panel.is-panel-staging,.add-dialog-panel.is-panel-dragging{transition:none}.add-dialog-panel.is-panel-animating{will-change:transform,opacity;transition:transform .28s var(--ease-spring),opacity .18s ease}.add-search-form{position:sticky;top:0;z-index:3;display:grid;min-height:50px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 6px 5px 14px;background:#f4f4f5;border:1px solid transparent;border-radius:15px;transition:border-color .15s ease,background-color .15s ease}.add-search-form:focus-within{background:var(--soft-strong);border-color:transparent}.add-search-form .icon{width:17px;height:17px;color:var(--muted)}.add-search-form input{min-width:0;height:40px;background:transparent;border:0;outline:0;font-size:12px;cursor:text}.add-search-form button{width:82px;height:40px;padding:0 12px;color:#fff;background:var(--accent);border-radius:10px;font-size:10px;font-weight:700}.add-search-form button:hover,.code-panel form button:hover{background:var(--accent-hover)}.add-results-heading{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:16px;padding:2px 3px 0}.add-results-status{min-width:0;min-height:0;padding:0;color:var(--muted);font-size:9px;font-weight:650}.add-dialog-panel>.add-results-status{min-height:44px;padding:15px 3px 8px}[data-advanced-search]{display:inline-flex;min-height:30px;flex:0 0 auto;align-items:center;gap:2px;padding:0 7px 0 9px;color:var(--accent-strong);border-radius:9px;font-size:9px;font-weight:700;text-decoration:none;transition:color .14s ease,background-color .14s ease}[data-advanced-search] .icon{width:13px;height:13px;transition:transform .16s var(--ease-spring)}[data-advanced-search]:hover,[data-advanced-search]:focus-visible{color:var(--accent);background:var(--accent-soft);outline:none}[data-advanced-search]:hover .icon,[data-advanced-search]:focus-visible .icon{transform:translate(2px)}.add-results:not(:empty){border-top:1px solid var(--line)}.add-results:empty{border-top:0}.add-results:has(>.add-empty-link:only-child),.add-results:has(>.add-retry:only-child){border-top:0}.add-result{display:grid;min-height:88px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 4px;border-bottom:1px solid var(--line)}.add-result>div{min-width:0}.add-result-code{color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:760;letter-spacing:.035em}.add-result h3{margin:2px 0 0;overflow:hidden;font-size:13px;font-weight:710;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.add-result p{margin:3px 0 0;overflow:hidden;color:var(--muted);font-size:9px;font-weight:590;text-overflow:ellipsis;white-space:nowrap}.add-result>button{min-width:62px;min-height:36px;padding:0 12px;color:#fff;background:var(--accent);border-radius:10px;font-size:10px;font-weight:700;transition:background-color .15s ease,transform .1s ease}.add-result>button:hover:not(:disabled){background:var(--accent-hover)}.add-result>button:active:not(:disabled){transform:scale(.96)}.add-result>button:disabled{color:var(--muted);background:var(--soft);cursor:default}.add-result-skeleton{height:87px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,transparent 20%,rgba(228,228,231,.52) 40%,transparent 60%);background-size:220% 100%;animation:timetable-skeleton 1.2s linear infinite}@keyframes timetable-skeleton{to{background-position-x:-220%}}.code-panel{display:grid;place-items:start center;padding-top:30px}.code-panel form{display:grid;width:min(100%,480px);padding:0}.code-panel label{display:grid}.code-panel label strong{font-size:14px;font-weight:720}.code-panel label small{margin-top:2px;color:var(--muted);font-size:9px}.code-panel form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:16px}.code-panel input{min-width:0;height:48px;padding:0 13px;background:var(--surface);border:1px solid var(--line);border-radius:11px;outline:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:680;cursor:text}.code-panel form button{width:96px;height:48px;padding:0 14px;color:#fff;background:var(--accent);border-radius:11px;font-size:10px;font-weight:700}.code-panel input:focus{background:var(--soft);border-color:var(--line);box-shadow:none}.code-panel form>p{min-height:20px;margin:10px 2px 0;color:var(--muted-strong);font-size:9px;font-weight:630}.dialog-loading,.dialog-empty{display:grid;min-height:300px;place-content:center;justify-items:center;gap:12px;padding:32px;color:var(--muted);font-size:10px;font-weight:650;text-align:center}.dialog-empty strong{color:var(--text);font-size:15px;font-weight:720}.dialog-empty p{max-width:340px;margin:-3px 0 0;color:var(--muted);font-weight:580}.confirm-dialog{width:min(420px,calc(100% - 36px));max-width:none;padding:0;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 26px 80px #18181b40}.confirm-dialog[open]{animation:materials-dialog-in .22s var(--ease-spring) both}.confirm-dialog form{display:grid;justify-items:center;padding:27px;text-align:center}.confirm-icon{display:grid;width:42px;height:42px;place-items:center;color:#be123c;background:#fff1f2;border-radius:14px}.confirm-icon .icon{width:20px;height:20px}.confirm-dialog h2{margin:15px 0 0;font-size:19px;font-weight:735;letter-spacing:-.035em}.confirm-dialog p{max-width:330px;margin:7px 0 0;color:var(--muted);font-size:10px;font-weight:580}.confirm-dialog form>div{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:8px;margin-top:23px}.confirm-dialog form>div button{min-height:42px;background:var(--soft);border-radius:11px;font-size:10px;font-weight:700}.confirm-dialog form>div .confirm-danger{color:#fff;background:#be123c}.confirm-dialog form>div .confirm-danger:hover{background:#9f1239}.timetable-toast{display:flex;min-height:40px;align-items:center;gap:13px;padding:8px 8px 8px 15px}.timetable-toast>button{min-height:28px;padding:0 10px;color:#fff;background:#ffffff29;border-radius:999px;font-size:9px;font-weight:720}.timetable-toast>button:hover{background:#ffffff3d}@media(max-width:960px){.share-banner{margin-bottom:22px}.schedule-loading,.schedule-error{min-height:280px}.mobile-course .course-tile-top{padding-right:0}.mobile-slot-content .mobile-course{grid-template-columns:8px minmax(0,1fr)}}@media(max-width:760px){.add-course-dialog,.materials-dialog{--sheet-drag-y: 0px;width:100dvw;height:min(88dvh,760px);max-height:none;margin:auto 0 0;border-right:0;border-bottom:0;border-left:0;border-radius:26px 26px 0 0;transform:translateY(calc(100% + var(--sheet-drag-y)))}.add-course-dialog[open],.materials-dialog[open]{transform:translateY(var(--sheet-drag-y))}.add-course-dialog.is-closing,.materials-dialog.is-closing{opacity:0;transform:translateY(100%)}.add-course-dialog.is-dragging,.materials-dialog.is-dragging{transition:none}.add-dialog-shell,.materials-dialog-shell{height:100%;max-height:none}.add-dialog-header,.materials-dialog-header{position:relative;min-height:76px;padding:27px 18px 12px}.dialog-sheet-grabber{position:absolute;top:0;left:50%;display:grid;width:72px;height:27px;place-items:center;padding:0;background:transparent;border-radius:0 0 12px 12px;transform:translate(-50%);touch-action:none}.dialog-sheet-grabber span{display:block;width:36px;height:4px;background:color-mix(in srgb,var(--muted) 62%,transparent);border-radius:999px;transition:width .14s ease,background-color .14s ease}.dialog-sheet-grabber:hover span,.dialog-sheet-grabber:focus-visible span{width:42px;background:var(--muted-strong)}.dialog-sheet-grabber:focus-visible{outline:none}.add-dialog-tabs{margin:0 16px 11px}.add-dialog-panel{padding-right:16px;padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:16px;touch-action:pan-y}.materials-list{padding-bottom:max(24px,env(safe-area-inset-bottom))}@starting-style{.add-course-dialog[open],.materials-dialog[open]{opacity:0;transform:translateY(100%)}}}@media(max-width:540px){.share-banner{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:11px;border-radius:15px}.share-banner-icon{width:30px;height:30px;border-radius:10px}.share-banner>button{grid-column:1 / -1;min-height:38px}.hero-actions>.utility-button:first-child{display:inline-flex}.add-dialog-header h2{font-size:21px}.add-search-form{min-height:48px;padding-left:12px}.add-search-form button{padding-inline:12px}.add-result{gap:10px}.add-result h3{font-size:12px}.add-result p{max-width:230px}.materials-summary,.materials-list{padding-inline:18px}.material-row{grid-template-columns:1fr;gap:9px;padding-block:17px}.timetable-toast{width:max-content}}@media(max-width:380px){.hero-actions>.utility-button:first-child span{display:none}.hero-actions>.utility-button:first-child{width:40px;padding:0}.add-result p{max-width:180px}}
