:root{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif;color-scheme:light;color:var(--text);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility;--canvas: #f6f7f9;--surface: #fff;--surface-subtle: #fafbfc;--subtle: #f0f2f5;--text: #16181d;--secondary: #555d6b;--tertiary: #676f7b;--border: #dce0e6;--border-strong: #8a93a0;--accent: #2b59c3;--accent-hover: #20459e;--accent-soft: #e8eefc;--success: #146c43;--warning: #8a5b00;--danger: #b42318;--focus: #1d4ed8;--on-accent: #fff;--accent-ink: #18325e;--header-surface: rgba(255,255,255,.97);--backdrop: rgba(22,24,29,.42);--success-soft: #ecfdf3;--warning-soft: #fffaeb;--warning-border: #fedf89;--danger-soft: #fef3f2;--danger-border: #fecdca;--danger-border-strong: #fda29b;--grid-minor: #edf0f3;--accent-quiet: #f7f9fe;--accent-border-soft: #b8c7e8;--accent-divider: #dce4f4;--profile-warning-bg: #fff9ea;--profile-warning-border: #d9a441;--profile-warning-text: #5b4314;--toast-bg: #242830;--toast-text: #fff;--toast-action: #c9d7fb;--course-border: rgba(22,24,29,.28);--course-text: #000;--course-0-bg: #f28e8e;--course-1-bg: #f3a973;--course-2-bg: #f7cf68;--course-3-bg: #7bcd8a;--course-4-bg: #6cb0cf;--course-5-bg: #768ad9;--course-6-bg: #b382e6;--course-7-bg: #e37bb3;--course-8-bg: #6ccfa0;--course-9-bg: #d19275;--course-10-bg: #a3cb38;--course-11-bg: #12cbd6;--course-12-bg: #a55eea;--course-13-bg: #ff7675;--course-14-bg: #74b9ff;--course-15-bg: #a29bfe;--course-16-bg: #ffeaa7;--course-17-bg: #fab1a0;--course-18-bg: #55efc4;--course-19-bg: #81ecec;--shadow-faint: rgba(22,24,29,.06);--shadow-soft: rgba(22,24,29,.12);--shadow-medium: rgba(22,24,29,.13);--shadow-strong: rgba(22,24,29,.16);--shadow-heavy: rgba(22,24,29,.2);--elevated-shadow: 0 8px 24px var(--shadow-strong);--drop-target-layer: 7;--drop-chooser-layer: 8}@media screen and (prefers-color-scheme:dark){:root{color-scheme:dark;--canvas: #0f1115;--surface: #171a20;--surface-subtle: #1c2027;--subtle: #22262e;--text: #f3f4f6;--secondary: #b7bdc8;--tertiary: #959da9;--border: #303640;--border-strong: #667080;--accent: #8fb0ff;--accent-hover: #abc3ff;--accent-soft: #202e4e;--success: #72d6a5;--warning: #f0c36a;--danger: #ff928b;--focus: #a9c1ff;--on-accent: #0c1730;--accent-ink: #dce7ff;--header-surface: rgba(23,26,32,.96);--backdrop: rgba(0,0,0,.68);--success-soft: #173426;--warning-soft: #352b16;--warning-border: #755b28;--danger-soft: #3b201f;--danger-border: #7d3735;--danger-border-strong: #a94d49;--grid-minor: #252a32;--accent-quiet: #1b253b;--accent-border-soft: #4f6595;--accent-divider: #344465;--profile-warning-bg: #352b16;--profile-warning-border: #846728;--profile-warning-text: #f1cf87;--toast-bg: #eceef2;--toast-text: #16181d;--toast-action: #244fba;--course-border: rgba(255,255,255,.55);--shadow-faint: rgba(0,0,0,.2);--shadow-soft: rgba(0,0,0,.3);--shadow-medium: rgba(0,0,0,.38);--shadow-strong: rgba(0,0,0,.48);--shadow-heavy: rgba(0,0,0,.58)}}*{box-sizing:border-box}html{min-width:320px;background:var(--canvas);scroll-padding-bottom:104px;overscroll-behavior-y:none}body{margin:0;min-width:320px;min-height:100dvh;color:var(--text);background:var(--canvas);overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){background-color:var(--surface)}::placeholder{color:var(--tertiary);opacity:1}button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .12s ease-out,background-color .12s ease-out,border-color .12s ease-out,opacity .12s ease-out}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:32px;font-weight:600}h2{font-size:18px;line-height:26px;font-weight:600}h3{font-size:16px;line-height:24px;font-weight:600}p{line-height:1.5}a{color:var(--accent)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100dvh;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.app-header{position:sticky;top:0;z-index:20;height:52px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--header-surface);border-bottom:1px solid var(--border)}.brand-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border:0;background:none;font-weight:600}.brand-mark{display:grid;place-items:center;width:30px;height:30px;color:var(--on-accent);background:var(--accent);border-radius:6px;font-size:12px}.header-summary{margin-left:auto;font-size:14px;font-weight:600;white-space:nowrap}.header-actions{min-width:0;align-items:center}.desktop-header-actions,.header-actions .icon-button{display:none}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent}.icon-button:hover,.text-button:hover{background:var(--subtle)}.header-link{display:none;min-height:44px;border:0;background:none;color:var(--accent);font-weight:600}.profile-chip,.account-button{min-height:44px;padding:0 10px;border:0;border-radius:999px;background:var(--subtle);color:var(--secondary);font-size:12px;font-weight:600;white-space:nowrap}.profile-chip{max-width:104px;overflow:hidden;text-overflow:ellipsis}.profile-chip:hover,.account-button:hover{color:var(--accent);background:var(--accent-soft)}.account-button{margin-left:4px;color:var(--accent);background:transparent}.account-button.authenticated{color:var(--success);background:var(--success-soft)}.mobile-command-menu{position:relative}.more-button{min-height:44px;padding:0 8px;border:0;background:transparent;color:var(--accent);font-weight:600}.command-menu{position:absolute;z-index:45;top:46px;right:0;width:210px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--elevated-shadow);animation:popover-enter .14s ease-out}.command-menu button{display:flex;width:100%;min-height:44px;align-items:center;padding:0 10px;border:0;border-radius:6px;background:transparent;text-align:left}.command-menu button:hover{background:var(--subtle)}.data-status{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;padding:8px 16px;color:var(--warning);background:var(--warning-soft);border-bottom:1px solid var(--warning-border);font-size:12px;line-height:16px}.global-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;color:var(--danger);background:var(--danger-soft);border-bottom:1px solid var(--danger-border);font-size:14px}.global-error button,.conflict-notice button,.text-button{min-height:44px;border:0;background:transparent;color:var(--accent);font-weight:600}.editor-layout{width:100%;max-width:1440px;margin:auto}.desktop-search{display:none}.mobile-course-entry{padding:12px 12px 0}.course-entry-panel{padding:0 0 16px;border-bottom:1px solid var(--border)}.course-entry-panel>.full-button{width:calc(100% - 32px);margin:0 16px 8px}.course-entry-panel.compact{padding:0;border:0}.course-entry-panel.compact>.full-button{width:100%;margin:0 0 8px}.required-guidance{display:flex;width:calc(100% - 32px);min-height:52px;align-items:center;justify-content:space-between;gap:10px;margin:0 16px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left}.course-entry-panel.compact .required-guidance{width:100%;margin:0}.required-guidance:hover{border-color:var(--border-strong);background:var(--subtle)}.required-guidance strong,.required-guidance small{display:block}.required-guidance strong{font-size:13px}.required-guidance small{margin-top:2px;overflow:hidden;color:var(--secondary);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.required-guidance>span:first-child{min-width:0}.required-guidance>span:last-child{flex:none;color:var(--accent);font-size:20px}.profile-guidance{display:flex;width:calc(100% - 32px);min-height:44px;align-items:center;justify-content:space-between;gap:8px;margin:0 16px;padding:0 10px;border:0;border-radius:9px;color:var(--secondary);background:transparent;text-align:left;font-size:12px}.course-entry-panel.compact .profile-guidance{width:100%;margin:0}.profile-guidance:hover{color:var(--accent);background:var(--subtle)}.profile-guidance span{flex:none;color:var(--accent);font-size:18px}.application-summary-bar{display:flex;width:calc(100% - 24px);min-height:46px;align-items:center;justify-content:space-between;gap:12px;margin:10px 12px 0;padding:0 12px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--surface);text-align:left}.application-summary-bar:hover{border-color:var(--accent);background:var(--accent-soft)}.application-summary-bar strong{color:var(--accent);font-size:13px}.tablet-editor-actions{display:none}.editor-main{min-width:0;background:var(--surface)}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 16px 12px}.section-heading p{margin-top:2px;color:var(--secondary);font-size:14px;line-height:20px}.section-heading>span{flex:none;color:var(--tertiary);font-size:13px}.timetable-heading{align-items:center}.timetable-grid{display:grid;grid-template-columns:38px repeat(var(--day-count),minmax(0,1fr));margin:0 8px 16px;border:1px solid var(--border);background:var(--surface);overflow:hidden}.grid-corner,.day-heading{height:34px;border-bottom:1px solid var(--border);background:var(--surface)}.day-heading{display:grid;place-items:center;font-size:13px;font-weight:600}.time-axis{position:relative;border-right:1px solid var(--border)}.time-axis span{position:absolute;right:5px;transform:translateY(-7px);color:var(--tertiary);font-size:10px;line-height:14px;font-variant-numeric:tabular-nums}.grid-body{position:relative;grid-column:2 / -1}.grid-line{position:absolute;left:0;right:0;border-top:1px solid var(--border)}.grid-line.minor{border-color:var(--grid-minor)}.day-line{position:absolute;top:0;bottom:0;border-left:1px solid var(--border)}.course-block{position:absolute;z-index:2;min-width:0;padding:4px;overflow:hidden;text-align:left;border:1px solid var(--course-border);border-radius:4px;color:var(--course-text);transition:transform .12s ease-out,opacity .12s ease-out,border-color .12s ease-out,box-shadow .12s ease-out;animation:course-enter .16s ease-out}.course-block strong,.course-block span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-block strong{font-size:11px;line-height:14px;font-weight:700}.course-block span{font-size:10px;line-height:13px;font-weight:500}.course-block .block-state{margin-top:2px;font-weight:600}.course-block.conflict{z-index:3;border:2px solid var(--danger)}.course-block[aria-disabled=true]{cursor:default}.course-block.preview-kept{border:2px solid var(--accent)}.course-block.preview-added{z-index:4;border:2px solid var(--success)}.course-block.preview-removed{z-index:3;opacity:.66;border:2px dashed var(--danger)}.course-block.preview-swapped-in{z-index:5;border:2px solid var(--accent)}.course-block.preview-swapped-out{z-index:4;opacity:.66;border:2px dashed var(--warning)}.course-block[draggable=true]{cursor:grab}.course-block[draggable=true]:active,.course-block.drag-source{cursor:grabbing;transform:scale(.985)}.course-block.drag-source{opacity:.42}.section-drop-slot{position:absolute;z-index:var(--drop-target-layer);min-width:0;padding:5px;overflow:hidden;color:var(--text);background:var(--accent-soft);border:2px dashed var(--accent);border-radius:4px;box-shadow:0 0 0 2px var(--surface)}.section-drop-slot.active{color:var(--on-accent);background:var(--accent);border-style:solid}.section-drop-slot strong,.section-drop-slot span{display:block;overflow:hidden;font-size:10px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.section-drop-chooser{position:relative;z-index:var(--drop-chooser-layer);margin:-4px 16px 16px;padding:12px;border:1px solid var(--accent);border-radius:10px;background:var(--surface);box-shadow:var(--elevated-shadow)}.section-drop-chooser>div:first-child p{margin-top:2px;color:var(--secondary);font-size:13px}.drop-choice-list{margin:10px 0;border:1px solid var(--border);border-radius:10px;overflow:hidden}.drop-choice-list button{display:flex;width:100%;min-height:52px;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;background:var(--surface);text-align:left}.drop-choice-list button+button{border-top:1px solid var(--border)}.drop-choice-list button:hover{background:var(--subtle)}.drop-choice-list strong,.drop-choice-list small{display:block}.drop-choice-list small{margin-top:2px;color:var(--secondary);font-size:12px}.drop-choice-list button>span:last-child{color:var(--accent);font-size:13px;font-weight:600}.section-drop-chooser>.secondary-button{width:100%}.course-0{background:var(--course-0-bg)}.course-1{background:var(--course-1-bg)}.course-2{background:var(--course-2-bg)}.course-3{background:var(--course-3-bg)}.course-4{background:var(--course-4-bg)}.course-5{background:var(--course-5-bg)}.course-6{background:var(--course-6-bg)}.course-7{background:var(--course-7-bg)}.course-8{background:var(--course-8-bg)}.course-9{background:var(--course-9-bg)}.course-10{background:var(--course-10-bg)}.course-11{background:var(--course-11-bg)}.course-12{background:var(--course-12-bg)}.course-13{background:var(--course-13-bg)}.course-14{background:var(--course-14-bg)}.course-15{background:var(--course-15-bg)}.course-16{background:var(--course-16-bg)}.course-17{background:var(--course-17-bg)}.course-18{background:var(--course-18-bg)}.course-19{background:var(--course-19-bg)}.status{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600}.status svg{width:14px;height:14px}.status.danger{color:var(--danger);background:var(--danger-soft)}.status.success{color:var(--success);background:var(--success-soft)}.status.warning{color:var(--warning);background:var(--warning-soft)}.status.neutral{color:var(--secondary);background:var(--subtle)}.mobile-summary{border-top:1px solid var(--border)}.selected-section{min-width:0}.empty-copy,.muted-copy{padding:8px 16px 20px;color:var(--secondary);font-size:14px}.selected-list{margin:0;padding:0 0 12px;list-style:none}.selected-list li+li{border-top:1px solid var(--border)}.selected-list button{display:flex;width:100%;min-height:64px;align-items:center;gap:10px;padding:10px 16px;border:0;background:var(--surface);text-align:left}.selected-list button:hover{background:var(--subtle)}.role-mark{flex:none;min-width:44px;padding:3px 6px;border-radius:999px;color:var(--secondary);background:var(--subtle);font-size:10px;text-align:center;white-space:nowrap}.role-must{color:var(--accent-ink);background:var(--accent-soft)}.role-backup{color:var(--warning);background:var(--warning-soft)}.role-exclude{color:var(--danger);background:var(--danger-soft)}.selected-main{min-width:0;flex:1}.selected-main strong,.selected-main small{display:block}.selected-main small{margin-top:2px;overflow:hidden;color:var(--secondary);font-size:12px;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.lock-label{display:flex;align-items:center;gap:3px;color:var(--secondary);font-size:11px}.lock-label svg{width:14px;height:14px}.candidate-basket{min-width:0;padding-bottom:16px;border-bottom:8px solid var(--canvas)}.candidate-basket-empty{padding:0 16px}.candidate-basket-empty p{margin-bottom:10px;color:var(--secondary);font-size:13px}.candidate-basket-empty button{width:100%}.candidate-basket-list{margin:0;padding:0;list-style:none}.candidate-basket-list li{display:flex;min-width:0;min-height:64px;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 16px;border-top:1px solid var(--border)}.candidate-basket-list li:first-child{border-top:0}.candidate-basket-main{min-width:0;flex:1}.candidate-basket-main strong,.candidate-basket-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-basket-main small{margin-top:2px;color:var(--secondary);font-size:11px}.candidate-basket-actions{display:flex;flex:none;align-items:center}.candidate-basket-actions>button:first-child,.candidate-add-more{min-height:44px;padding:0 8px;border:0;color:var(--accent);background:transparent;font-size:12px;font-weight:600}.candidate-basket-actions .icon-button{color:var(--secondary)}.candidate-basket-actions svg,.candidate-add-more svg{width:17px;height:17px}.candidate-add-more{display:flex;align-items:center;gap:5px;margin:2px 8px 0 auto}.excluded-course-list{margin:8px 16px 0;border-top:1px solid var(--border);color:var(--secondary);font-size:12px}.excluded-course-list summary{display:flex;min-height:44px;align-items:center;cursor:pointer}.excluded-course-list ul{margin:0;padding:0;list-style:none}.excluded-course-list li{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--border)}.excluded-course-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excluded-course-list button{min-height:40px;border:0;color:var(--accent);background:transparent;font-weight:600}.conflict-notice{margin:12px 16px 0;border:1px solid var(--danger-border);border-radius:10px;background:var(--danger-soft)}.conflict-notice>div{display:flex;gap:10px;padding:12px;color:var(--danger)}.conflict-notice>div>svg{flex:none;margin-top:2px}.conflict-notice h2{font-size:15px;line-height:21px}.conflict-notice p{margin-top:2px;font-size:13px}.conflict-notice ul{margin:0;padding:0;list-style:none;background:var(--surface);border-radius:0 0 10px 10px}.conflict-notice li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid var(--danger-border);font-size:13px}.conflict-notice li strong,.conflict-notice li small{display:block}.conflict-notice li small{color:var(--secondary)}.conflict-notice.preview-read-only{border-color:var(--border-strong)}.conflict-notice.preview-read-only>div{color:var(--secondary);background:var(--subtle)}.conflict-notice.preview-read-only li{border-top-color:var(--border)}.primary-button,.secondary-button,.danger-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border-radius:10px;font-weight:600}.primary-button{color:var(--on-accent);background:var(--accent);border:1px solid var(--accent)}.primary-button:hover{background:var(--accent-hover)}.secondary-button{background:var(--surface);border:1px solid var(--border-strong)}.secondary-button:hover{background:var(--subtle)}.danger-button{color:var(--danger);background:var(--surface);border:1px solid var(--danger-border-strong)}.full-button{width:100%}.mobile-action-bar{position:fixed;z-index:15;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1.35fr;gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:var(--header-surface);border-top:1px solid var(--border);box-shadow:0 -4px 16px var(--shadow-faint)}.sheet{width:100%;max-width:none;height:min(92dvh,850px);max-height:none;margin:auto 0 0;padding:0;border:1px solid var(--border);border-radius:14px 14px 0 0;background:var(--surface);box-shadow:0 -8px 28px var(--shadow-medium);overflow:hidden;overscroll-behavior:contain;transform:translateY(calc(20px + var(--sheet-drag-y, 0px)));transition:transform .2s ease-out}.sheet::backdrop{background:var(--backdrop);opacity:0;transition:opacity .18s ease-out}.sheet[open]{display:flex;flex-direction:column;transform:translateY(var(--sheet-drag-y, 0px))}.sheet[open]::backdrop{opacity:1}.sheet.sheet-dragging{transition:none}@starting-style{.sheet[open]{transform:translateY(20px)}.sheet[open]::backdrop{opacity:0}}.sheet-header{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 16px 14px;border-bottom:1px solid var(--border);touch-action:none;cursor:grab}.sheet-header:before{position:absolute;top:7px;left:50%;width:34px;height:4px;border-radius:999px;background:var(--border-strong);content:"";transform:translate(-50%)}.sheet-dragging .sheet-header{cursor:grabbing}.sheet-header h2{font-size:20px}.sheet-header p{color:var(--secondary);font-size:13px}.search-controls{flex:none;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface)}.search-field{display:flex;height:48px;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border-strong);border-radius:10px}.search-field:focus-within{border-color:var(--focus);outline:1px solid var(--focus)}.search-field svg{flex:none;color:var(--secondary)}.search-field input{width:100%;height:100%;padding:0;border:0;outline:0;background:transparent}.search-filter-toolbar{display:flex;gap:6px;margin-top:8px;overflow-x:auto;scrollbar-width:none}.search-filter-toolbar::-webkit-scrollbar{display:none}.search-filter-chip,.search-filter-reset{flex:none;min-height:40px;padding:0 11px;border:1px solid var(--border);border-radius:999px;color:var(--secondary);background:var(--surface);font-size:12px;font-weight:600;white-space:nowrap}.search-filter-chip:hover,.search-filter-reset:hover{border-color:var(--border-strong);background:var(--subtle)}.search-filter-chip.selected{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.search-filter-reset{border-color:transparent;color:var(--accent);background:transparent}.filter-row{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin-top:8px}.filter-row label,.preference-grid label,.primary-preference label,.profile-grid label{display:grid;gap:4px}.filter-row label>span,.preference-grid label>span,.primary-preference label>span,.profile-grid label>span,.completed-field>span{color:var(--secondary);font-size:12px;font-weight:500}.filter-row select,.preference-grid input,.preference-grid select,.primary-preference input,.profile-grid input,.profile-grid select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface)}.search-results{flex:1;min-height:0;overflow-y:auto}.empty-result{padding:48px 24px;text-align:center}.empty-result p{margin-top:4px;color:var(--secondary)}.course-group+.course-group{border-top:1px solid var(--border)}.course-group-toggle{display:flex;width:100%;min-height:68px;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border:0;background:var(--surface);text-align:left}.course-group-toggle:hover{background:var(--subtle)}.course-group-toggle strong,.course-group-toggle small{display:block}.course-group-toggle small,.course-group-toggle>span:last-child{color:var(--secondary);font-size:12px}.course-group-toggle>span:last-child{flex:none;color:var(--accent);font-weight:600}.candidate-course-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.candidate-course-row .course-group-toggle{min-width:0;padding-right:8px}.candidate-course-row .course-group-toggle>span:first-child{min-width:0}.candidate-course-row .course-group-toggle strong,.candidate-course-row .course-group-toggle small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-course-add{min-width:88px;margin:10px 12px 10px 0;padding:0 10px;border:1px solid var(--border-strong);border-radius:9px;color:var(--accent);background:var(--surface);font-size:12px;font-weight:600}.candidate-course-add:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.candidate-section-preview{margin:0 16px 16px;padding:0;border:1px solid var(--border);border-radius:10px;list-style:none;overflow:hidden;animation:content-enter .14s ease-out}.candidate-section-preview li{display:grid;gap:2px;min-height:48px;justify-content:center;padding:7px 10px;border-top:1px solid var(--border)}.candidate-section-preview li:first-child{border-top:0}.candidate-section-preview strong{font-size:12px}.candidate-section-preview span{color:var(--secondary);font-size:11px}.section-options{border:1px solid var(--border);border-radius:10px;overflow:hidden;animation:content-enter .14s ease-out}.section-option{display:grid;grid-template-columns:50px 1fr auto;width:100%;min-height:58px;align-items:center;gap:10px;padding:8px 10px;border:0;background:var(--surface);text-align:left}.section-option+.section-option{border-top:1px solid var(--border)}.section-option:hover{background:var(--subtle)}.section-option.selected{background:var(--accent-soft)}.section-number{color:var(--secondary);font-size:12px}.section-option strong,.section-option small{display:block}.section-option small{margin-top:2px;color:var(--secondary);font-size:11px;line-height:15px}.add-label,.selected-label{color:var(--accent);font-size:12px;font-weight:600}.selected-label{display:flex;align-items:center;gap:2px}.selected-label svg{width:14px;height:14px}.course-group .section-options{margin:0 16px 16px}.section-option.conflict{box-shadow:inset 3px 0 var(--danger)}.section-statuses{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px;color:var(--accent);font-size:11px;font-weight:600}.section-statuses .danger-text{color:var(--danger)}.detail-sheet{height:auto;max-height:88dvh;overflow-y:auto}.detail-list{margin:0;padding:8px 16px}.detail-list>div{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.detail-list dt{color:var(--secondary)}.detail-list dd{margin:0}.role-fieldset,.adjustment-fieldset,.free-day-field{margin:8px 16px 16px;padding:0;border:0}.role-fieldset legend,.adjustment-fieldset legend,.free-day-field legend{margin-bottom:8px;font-size:14px;font-weight:600}.role-fieldset>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.adjustment-fieldset>div,.free-day-field>div{display:flex;gap:6px;flex-wrap:wrap}.role-fieldset label,.adjustment-fieldset label,.free-day-field label{display:flex;min-width:0;min-height:40px;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:1px solid var(--border);border-radius:10px;font-size:13px;white-space:nowrap}.role-fieldset label.checked,.adjustment-fieldset label.checked,.free-day-field label.checked{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.role-fieldset input,.adjustment-fieldset input,.free-day-field input{accent-color:var(--accent)}.role-fieldset p,.adjustment-fieldset p{min-height:18px;margin-top:7px;color:var(--secondary);font-size:12px;line-height:18px}.adjustment-fieldset{padding-top:14px;border-top:1px solid var(--border)}.adjustment-fieldset label{flex:1 1 92px}.detail-actions{display:flex;justify-content:flex-end;padding:0 16px 16px}.detail-actions button{width:auto}.alternative-section{padding:16px;border-top:8px solid var(--canvas)}.alternative-list{margin-top:8px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.alternative-list button{display:flex;width:100%;min-height:58px;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;background:var(--surface);text-align:left}.alternative-list button+button{border-top:1px solid var(--border)}.alternative-list strong,.alternative-list small{display:block}.alternative-list small{color:var(--secondary);font-size:12px}.alternative-list button>span:last-child{color:var(--accent);font-size:13px;font-weight:600}.tools-panel{display:none}.tools-dialog{position:fixed;inset:52px 0 0;width:100%;max-width:none;height:calc(100dvh - 52px);max-height:none;margin:0;padding:0 0 calc(24px + env(safe-area-inset-bottom));border:0;background:var(--surface);overflow-y:auto;overscroll-behavior:contain;transform:translateY(10px);transition:transform .18s ease-out}.tools-dialog::backdrop{background:var(--backdrop);opacity:0;transition:opacity .16s ease-out}.tools-dialog[open]{display:block;transform:translateY(0)}.tools-dialog[open]::backdrop{opacity:1}@starting-style{.tools-dialog[open]{transform:translateY(10px)}.tools-dialog[open]::backdrop{opacity:0}}.mobile-tools-header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border)}.mobile-tools-header button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--accent);font-weight:600}.preferences-panel,.optimizer-panel,.checklist-panel,.export-panel{padding-bottom:20px;border-bottom:8px solid var(--canvas)}.preset-section{padding:0 16px 12px}.preset-section h3{margin-bottom:8px;font-size:14px}.preset-grid{display:grid;gap:6px}.preset-grid button{display:grid;min-height:52px;gap:2px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left}.preset-grid button:hover{background:var(--subtle)}.preset-grid button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.preset-grid strong,.preset-grid small{display:block}.preset-grid small{color:var(--secondary);font-size:12px}.primary-preference{padding:0 16px 4px}.preference-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}.range-field{display:grid;gap:8px;padding:12px 16px 16px}.range-field>span{display:flex;justify-content:space-between;font-size:14px}.range-field output{color:var(--accent)}.range-field input{width:100%;accent-color:var(--accent)}.check-row{display:flex;align-items:flex-start;gap:10px;padding:8px 16px}.check-row input{width:20px;height:20px;accent-color:var(--accent)}.check-row strong,.check-row small{display:block}.check-row small{color:var(--secondary)}.advanced-preferences{margin:8px 16px 0;border-top:1px solid var(--border)}.advanced-preferences summary{display:flex;min-height:44px;align-items:center;color:var(--accent);cursor:pointer;font-size:14px;font-weight:600}.advanced-preferences>p{margin:-2px 0 12px;color:var(--secondary);font-size:12px}.advanced-preferences .preference-grid,.advanced-preferences .range-field{padding-left:0;padding-right:0}.optimizer-panel>.full-button,.checklist-panel>.full-button{width:calc(100% - 32px);margin:0 16px}.helper-copy{margin:10px 16px 0;color:var(--secondary);font-size:12px;line-height:1.5}.application-list-content{min-height:0;overflow-y:auto}.application-list-content .checklist-panel{border-bottom:8px solid var(--canvas)}.application-list-content .export-panel{border-bottom:0}.job-status{display:flex;align-items:center;gap:10px;margin:0 16px;padding:12px;background:var(--subtle);border-radius:10px}.job-status>div{flex:1}.job-status p{color:var(--secondary);font-size:12px}.job-status button{min-height:44px;border:0;background:transparent;color:var(--danger)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.inline-error,.infeasible{margin:0 16px 12px;padding:12px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:10px;font-size:14px}.infeasible ul{margin:8px 0 12px;padding-left:20px}.candidate-list{padding:0 16px}.candidate{padding:16px 0;border-top:1px solid var(--border)}.candidate:first-child{border-top:0}.candidate-heading{display:flex;justify-content:space-between;gap:8px}.candidate-heading span{color:var(--accent);font-size:12px;font-weight:600}.candidate-heading>strong{color:var(--secondary);font-size:13px}.candidate dl{display:flex;gap:24px;margin:12px 0 8px}.candidate dl div{display:grid;gap:2px}.candidate dt{color:var(--secondary);font-size:11px}.candidate dd{margin:0;font-size:14px;font-weight:600}.candidate-change-summary{margin-bottom:10px;color:var(--secondary);font-size:12px;font-weight:600}.reason-list{margin:0 0 10px;padding:0;list-style:none}.reason-list li{display:flex;gap:6px;margin-top:4px;font-size:13px}.reason-list svg{flex:none;width:16px;height:16px;color:var(--success)}.unmet{margin-bottom:10px;color:var(--warning);font-size:12px}.candidate>button{width:100%}.optimizer-panel>.text-button{margin:0 16px}.preview-comparison{margin:12px 16px;padding:14px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;scroll-margin-top:12px}.preview-comparison:focus{outline:2px solid var(--focus);outline-offset:2px}.preview-comparison-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.preview-comparison-heading h2{margin-top:2px;font-size:18px;line-height:24px}.preview-comparison-heading p{color:var(--secondary);font-size:12px;text-align:right}.preview-eyebrow{color:var(--accent);font-size:12px;font-weight:600}.preview-change-list{display:grid;gap:4px;margin:10px 0 0;padding-left:20px;font-size:13px}.preview-no-changes{margin-top:10px;color:var(--secondary);font-size:13px}.preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.preview-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:12px 0 0}.preview-metrics div{min-width:0;padding:8px 4px}.preview-metrics div+div{border-left:1px solid var(--border)}.preview-metrics dt{color:var(--secondary);font-size:12px;line-height:16px}.preview-metrics dd{margin:4px 0 0;overflow:hidden;font-size:14px;line-height:20px;font-weight:600;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.stale-candidate-notice{margin:0 16px 12px;padding:10px 12px;color:var(--secondary);background:var(--subtle);border:1px solid var(--border);border-radius:10px;font-size:13px}.checklist{margin:0;padding:0 16px 8px 48px}.checklist li{padding:6px 0}.checklist span,.checklist small{display:block}.checklist strong{margin-right:6px}.checklist small{color:var(--secondary)}.backup-list{margin:0 16px 12px;border:1px solid var(--border);border-radius:10px}.backup-list h3{padding:10px 12px;border-bottom:1px solid var(--border)}.backup-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px}.backup-list>div+div{border-top:1px solid var(--border)}.backup-list strong,.backup-list small{display:block}.backup-list small{color:var(--secondary)}.backup-list button{min-height:44px;border:0;background:transparent;color:var(--accent);font-weight:600}.export-panel{padding:20px 16px}.export-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.toast{position:fixed;z-index:50;left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 10px 16px;color:var(--toast-text);background:var(--toast-bg);border-radius:10px;box-shadow:0 6px 18px var(--shadow-heavy);font-size:14px;animation:toast-enter .18s ease-out}.toast button{min-height:36px;padding:0 8px;color:var(--toast-action);background:transparent;border:0;font-weight:600}.requirements-page{max-width:960px;min-height:100dvh;margin:auto;padding:16px 16px 64px;background:var(--surface)}.requirements-header{padding:8px 0 24px;border-bottom:1px solid var(--border)}.requirements-header .text-button{margin-left:-8px}.requirements-header h1{margin-top:8px}.requirements-header p{margin-top:4px;color:var(--secondary)}.profile-panel{padding:24px 0;border-bottom:1px solid var(--border)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.profile-grid label:first-child,.profile-grid label:nth-child(3){grid-column:span 2}.completed-field{display:grid;gap:6px;margin-top:16px}.completed-field textarea{width:100%;resize:vertical;padding:10px;border:1px solid var(--border-strong);border-radius:10px}.completed-field small{color:var(--secondary)}.completed-history{display:grid;gap:14px;padding:20px 0 24px;border-bottom:1px solid var(--border)}.completed-history .section-heading{padding:0}.completion-notice{padding:10px 12px;color:var(--success);background:var(--success-soft);border:1px solid var(--success);border-radius:9px;font-size:13px}.completed-empty{padding:20px;color:var(--secondary);border:1px dashed var(--border-strong);border-radius:10px;text-align:center}.completed-course-list .status{align-self:center}.department-evidence{padding:16px 0 20px;border-bottom:1px solid var(--border)}.department-evidence .section-heading{padding-left:0;padding-right:0}.department-evidence dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.department-evidence dl>div{padding:10px 12px;background:var(--subtle);border-radius:10px}.department-evidence dt{color:var(--secondary);font-size:12px}.department-evidence dd{margin:3px 0 0;font-size:14px;font-weight:600}.evidence-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.evidence-actions a{min-height:44px;display:inline-flex;align-items:center;font-weight:600}.source-note{color:var(--secondary);font-size:13px}.rule-results .section-heading{padding-left:0;padding-right:0}.rule-list{border-top:1px solid var(--border)}.rule-item{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--border)}.rule-content p{margin-top:4px;color:var(--secondary);font-size:14px}.rule-content details{margin-top:10px;color:var(--secondary);font-size:12px}.rule-content summary{min-height:36px;color:var(--accent);cursor:pointer}.rule-content ul{margin:4px 0 0;padding-left:20px}.requirement-recommendations{padding:16px 0}.requirement-recommendations .section-heading{padding-left:0;padding-right:0}.requirement-recommendations>div:last-child{border:1px solid var(--border);border-radius:10px}.requirement-recommendations article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.requirement-recommendations article+article{border-top:1px solid var(--border)}.requirement-recommendations strong,.requirement-recommendations small{display:block}.requirement-recommendations small{color:var(--secondary)}.requirement-recommendations button{min-height:44px;border:0;background:transparent;color:var(--accent);font-weight:600}.requirements-disclaimer{display:flex;gap:10px;margin-top:24px;padding:14px;color:var(--warning);background:var(--warning-soft);border:1px solid var(--warning-border);border-radius:10px}.requirements-disclaimer svg{flex:none}.requirements-disclaimer p{margin-top:2px;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes content-enter{0%{transform:translateY(-4px)}}@keyframes course-enter{0%{opacity:0;transform:scale(.985)}}@keyframes popover-enter{0%{opacity:0;transform:translateY(-4px) scale(.99)}}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:767px){.course-entry-panel.compact .course-search-action{display:none}}@media(min-width:768px){.app-shell{padding-bottom:0}.app-header{padding:0 24px}.desktop-header-actions{display:flex}.mobile-command-menu{display:none}.header-link{display:inline-block}.data-status{padding-left:24px;padding-right:24px}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:calc(100dvh - 52px)}.editor-main{border-right:1px solid var(--border)}.tablet-editor-actions{display:flex;justify-content:flex-end;padding:16px 24px 0}.tools-panel{display:block;min-width:0;background:var(--surface)}.mobile-tools-header,.mobile-action-bar{display:none}.mobile-summary{display:block}.timetable-grid{margin:0 24px 24px;grid-template-columns:44px repeat(var(--day-count),minmax(0,1fr))}.course-block{padding:6px}.course-block strong{font-size:12px;line-height:16px}.course-block span{font-size:11px;line-height:15px}.toast{left:50%;right:auto;bottom:24px;width:min(480px,calc(100% - 32px));transform:translate(-50%)}.sheet{width:min(680px,90vw);height:min(84dvh,850px);margin:auto;border-radius:14px;transform:scale(.985)}.sheet[open]{transform:scale(1)}.detail-sheet{width:min(540px,90vw)}.requirements-page{padding:24px 32px 80px}.profile-grid{grid-template-columns:repeat(3,1fr)}.profile-grid label:first-child,.profile-grid label:nth-child(3){grid-column:auto}.sheet-header{padding:14px 16px;touch-action:auto;cursor:default}.sheet-header:before{display:none}@starting-style{.sheet[open]{transform:scale(.985)}}.data-status+.editor-layout{min-height:calc(100dvh - 85px)}}@media(min-width:1200px){.editor-layout{grid-template-columns:280px minmax(560px,1fr) 320px;padding:0 32px;background:var(--surface)}.desktop-search{display:block;min-width:0;padding:16px 0;border-right:1px solid var(--border)}.desktop-search .section-heading{padding-top:16px}.desktop-search .selected-list button{padding-left:16px;padding-right:12px}.desktop-search .candidate-basket{border-top:1px solid var(--border);border-bottom:0}.tablet-editor-actions,.mobile-course-entry,.mobile-summary{display:none}.editor-main{border-right:1px solid var(--border)}.tools-panel{min-width:0}.app-header{padding-left:32px;padding-right:32px}}@media print{.app-header,.data-status,.desktop-search,.tools-panel,.mobile-action-bar,.mobile-course-entry,.application-summary-bar,.conflict-notice,.mobile-summary{display:none!important}.app-shell{padding:0}.editor-layout{display:block}.editor-main{border:0}.timetable-section{break-inside:avoid}.timetable-grid{margin:0}}.onboarding{position:fixed;z-index:60;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;overflow-y:auto;background:var(--surface)}.onboarding::backdrop{background:var(--surface)}.onboarding-frame{width:100%;max-width:680px;min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) 20px calc(24px + env(safe-area-inset-bottom))}.onboarding-header{position:sticky;z-index:2;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:56px;margin:0 -8px;background:var(--header-surface)}.onboarding-header span{color:var(--tertiary);font-size:12px}.onboarding-header .text-button:first-child{justify-self:start}.onboarding-header .text-button:last-child{justify-self:end}.welcome-step,.onboarding-step{min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));display:flex;flex-direction:column;animation:content-enter .16s ease-out}.onboarding-header+.onboarding-step{min-height:calc(100dvh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.welcome-step{justify-content:center;gap:32px;padding:32px 0}.welcome-brand{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;color:var(--on-accent);background:var(--accent);font-size:17px;font-weight:700;letter-spacing:-.02em}.eyebrow{margin-bottom:10px;color:var(--accent);font-size:13px;line-height:18px;font-weight:700}.welcome-step h1,.onboarding-step h1{font-size:30px;line-height:1.27;letter-spacing:-.035em}.welcome-step h1+p,.onboarding-step h1+p{margin-top:14px;color:var(--secondary);font-size:15px;line-height:1.65}.onboarding-actions{display:grid;gap:10px;margin-top:auto;padding-top:24px}.welcome-step .onboarding-actions{margin-top:4px}.onboarding-actions>button{width:100%;min-height:52px}.onboarding-actions small{color:var(--tertiary);font-size:12px;line-height:18px;text-align:center}.onboarding-actions .login-entry{min-height:44px}.onboarding-step{padding:28px 0 0}.department-search{margin-top:24px}.department-search input{width:100%;height:50px;padding:0 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}.department-search input:focus{border-color:var(--focus);outline:1px solid var(--focus)}.department-options{min-height:0;margin:12px -4px 0;padding:0 4px 40px;overflow-y:auto}.department-options>button{display:flex;width:100%;min-height:66px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-bottom:1px solid var(--border);background:var(--surface);text-align:left}.department-options>button:hover,.department-options>button.selected{background:var(--accent-soft)}.department-options strong,.department-options small{display:block}.department-options small{margin-top:2px;color:var(--secondary);font-size:12px}.details-step{padding-bottom:0}.onboarding-fields{display:grid;gap:24px;margin-top:28px}.onboarding-fields>label{display:grid;gap:8px}.onboarding-fields label>span,.onboarding-fields legend{color:var(--secondary);font-size:13px;font-weight:600}.onboarding-fields select{width:100%;min-height:50px;padding:0 12px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}.onboarding-fields fieldset{margin:0;padding:0;border:0}.onboarding-fields legend{margin-bottom:8px}.segmented-control{display:grid;grid-template-columns:repeat(4,1fr);padding:3px;border-radius:12px;background:var(--subtle)}.segmented-control button{min-height:44px;padding:0 4px;border:0;border-radius:9px;background:transparent;color:var(--secondary);font-size:13px}.segmented-control button.selected{color:var(--text);background:var(--surface);box-shadow:0 1px 3px var(--shadow-soft);font-weight:600}.section-group-control{grid-template-columns:repeat(3,1fr)}.field-help{margin-top:7px;color:var(--tertiary);font-size:11px;line-height:17px}.onboarding-fields>label>.field-help{margin-top:0;font-weight:400}.transfer-disclosure{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.transfer-disclosure.selected{border-color:var(--accent-border-soft);background:var(--accent-quiet)}.transfer-disclosure>label{display:flex;align-items:flex-start;gap:10px;min-height:64px;padding:13px 14px;cursor:pointer}.transfer-disclosure input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}.transfer-disclosure span{display:grid;gap:3px}.transfer-disclosure strong{color:var(--text);font-size:13px;line-height:20px}.transfer-disclosure small{color:var(--tertiary);font-size:11px;line-height:17px}.transfer-options{padding:13px 14px;border-top:1px solid var(--accent-divider)}.transfer-options p{margin-top:5px;color:var(--secondary);font-size:12px;line-height:19px}.academic-basis-disclosure{overflow:hidden;border:1px solid var(--border);border-radius:12px}.academic-basis-disclosure.selected{border-color:var(--accent-border-soft)}.academic-basis-disclosure>label{display:flex;align-items:flex-start;gap:10px;min-height:68px;padding:13px 14px;cursor:pointer}.academic-basis-disclosure>label input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}.academic-basis-disclosure>label span{display:grid;gap:3px}.academic-basis-disclosure>label strong{font-size:13px;line-height:20px}.academic-basis-disclosure>label small{color:var(--tertiary);font-size:11px;line-height:17px}.academic-basis-options{display:grid;gap:20px;padding:16px 14px;border-top:1px solid var(--border);background:var(--surface-subtle)}.academic-basis-options>label{display:grid;gap:8px}.academic-basis-options>label>span,.academic-basis-options legend{color:var(--secondary);font-size:13px;font-weight:600}.academic-basis-options select{width:100%;min-height:50px;padding:0 12px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}.academic-basis-options fieldset{margin:0;padding:0;border:0}.academic-basis-options legend{margin-bottom:8px}.academic-basis-prompt{display:grid;gap:8px;padding:18px 14px;border-top:1px solid var(--border)}.academic-basis-prompt p{color:var(--secondary);font-size:13px;line-height:20px}.academic-basis-prompt button{justify-self:start;margin-top:4px}.profile-consistency-warning{display:grid;gap:8px;padding:14px;border:1px solid var(--profile-warning-border);border-radius:12px;background:var(--profile-warning-bg);color:var(--profile-warning-text);font-size:13px;line-height:20px}.profile-consistency-warning p{margin:0}.profile-consistency-warning label{display:flex;align-items:flex-start;gap:8px;font-weight:600}.profile-consistency-warning input{width:18px;height:18px;margin-top:1px;accent-color:var(--accent)}.choice-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-cards button{min-height:76px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:left}.choice-cards button.selected{border-color:var(--accent);background:var(--accent-soft)}.choice-cards strong,.choice-cards small{display:block}.choice-cards small{margin-top:4px;color:var(--secondary);font-size:11px}.auth-content{display:grid;gap:16px;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}.auth-content>label{display:grid;gap:7px}.auth-content label>span{color:var(--secondary);font-size:13px;font-weight:600}.auth-content label>small,.auth-content>p{color:var(--secondary);font-size:12px;line-height:18px}.email-input{display:flex;min-height:50px;align-items:center;border:1px solid var(--border-strong);border-radius:12px;overflow:hidden}.email-input:focus-within{border-color:var(--focus);outline:1px solid var(--focus)}.email-input input{min-width:0;flex:1;height:48px;padding:0 0 0 12px;border:0;outline:0}.email-input span{padding:0 12px 0 4px;color:var(--secondary);font-size:13px}.otp-input{width:100%;height:56px;padding:0 14px;border:1px solid var(--border-strong);border-radius:12px;font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:.28em}.auth-content .inline-error{margin:0}.auth-message{padding:10px 12px;border-radius:10px;color:var(--accent-ink)!important;background:var(--accent-soft)}.auth-back,.resend-button{justify-self:start;padding:0 4px}.auth-disclaimer{padding-top:12px;border-top:1px solid var(--border)}.required-panel{background:var(--surface)}.required-panel.profile-prompt{display:grid;gap:14px;padding:20px 16px calc(24px + env(safe-area-inset-bottom))}.required-panel.profile-prompt p{margin-top:4px;color:var(--secondary);font-size:13px;line-height:20px}.required-panel.profile-prompt button{justify-self:start}.required-panel-heading{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--surface)}.required-panel-heading h2{font-size:15px;line-height:22px}.required-panel-heading p{margin-top:2px;color:var(--secondary);font-size:11px;line-height:17px}.required-panel-heading>button{flex:none;padding:0 2px;font-size:12px}.required-panel-body{border-top:1px solid var(--border);animation:content-enter .14s ease-out}.required-groups>section{padding:16px}.required-groups>section+section{border-top:1px solid var(--border)}.required-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.required-group-heading h3{font-size:14px}.required-group-heading span{flex:none;color:var(--tertiary);font-size:10px}.required-reference-note{margin:-2px 0 8px;color:var(--secondary);font-size:11px;line-height:17px}.required-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 14px;border-top:1px solid var(--border)}.required-status strong{font-size:13px}.required-status button{flex:none}.required-option{padding:12px 0;border-top:1px solid var(--border)}.required-option:first-child{border-top:0}.required-option.selected{background:var(--accent-soft)}.required-option-main{display:flex;min-width:0;align-items:center;gap:10px}.required-option-main>span:last-child{min-width:0}.required-option-main strong,.required-option-main small{display:block}.required-option-main small{margin-top:2px;color:var(--secondary);font-size:11px}.required-state{flex:none;display:grid;place-items:center;width:32px;height:28px;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:10px;font-weight:700}.required-state svg{width:15px}.required-option-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:9px;padding-left:42px}.required-option-action select{min-width:0;min-height:44px;padding:0 8px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);font-size:11px}.required-option-action button{min-height:44px;padding:0 11px;font-size:12px}.unavailable-label{display:block;margin:6px 0 0 42px;color:var(--tertiary);font-size:11px}.required-groups .muted-copy{padding:4px 0 8px}.required-disclaimer{padding:10px 14px;border-top:1px solid var(--border);color:var(--tertiary);background:var(--surface-subtle);font-size:11px}.required-disclaimer summary{cursor:pointer}.required-disclaimer p{margin-top:6px}@media(min-width:768px){.header-actions .icon-button{display:inline-grid}.profile-chip{max-width:180px}.onboarding-frame{padding-left:40px;padding-right:40px}.welcome-step h1,.onboarding-step h1{font-size:36px}.required-groups{display:grid;grid-template-columns:1fr 1fr}.required-groups>section+section{border-top:0;border-left:1px solid var(--border)}.required-option-action{grid-template-columns:1fr}.required-option-action button{width:100%}}@media print{.required-panel,.onboarding{display:none!important}}.strict-day-field{margin-top:-4px}.strict-day-field label.checked{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border)}.course-review-link{width:100%;min-height:38px;border:0;border-top:1px solid var(--border);background:var(--surface-subtle);color:var(--accent);font-size:12px;font-weight:600}.review-content{display:grid;gap:18px;padding:16px 16px calc(24px + env(safe-area-inset-bottom));overflow-y:auto}.review-form{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}.review-form label{display:grid;gap:6px}.review-form label>span{color:var(--secondary);font-size:12px;font-weight:600}.review-form select,.review-form textarea{width:100%;padding:10px;border:1px solid var(--border-strong);border-radius:9px}.review-form-actions,.form-actions{display:flex;justify-content:flex-end;gap:8px}.review-list{display:grid;gap:10px}.review-list article{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:10px}.review-list article>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.review-list small{color:var(--tertiary);font-size:11px}.review-list article>div:last-child{display:flex;gap:4px}.login-required{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px}.session-expired-notice{position:sticky;z-index:30;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;color:var(--warning);background:var(--warning-soft);border-bottom:1px solid var(--warning-border);font-size:13px}.session-expired-notice button{min-height:36px;border:0;border-radius:8px;color:var(--on-accent);background:var(--accent)}.my-page,.shared-page{width:min(1040px,100%);min-height:100dvh;margin:auto;padding:20px 16px 80px}.page-header{display:grid;gap:14px;margin-bottom:20px}.page-header p{margin-top:4px;color:var(--secondary)}.mypage-section{display:grid;gap:14px;margin-top:14px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.mypage-nav{position:sticky;z-index:5;top:0;display:flex;gap:6px;padding:8px;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mypage-nav a{flex:0 0 auto;padding:8px 10px;border-radius:8px;color:var(--secondary);font-size:12px;font-weight:700;text-decoration:none}.mypage-nav a:hover,.mypage-nav a:focus-visible{color:var(--accent);background:var(--accent-soft)}.academic-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.academic-summary-grid article{display:grid;gap:3px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.academic-summary-grid strong{color:var(--accent);font-size:24px}.academic-summary-grid span{color:var(--secondary);font-size:11px}.mypage-form-grid,.completed-form{display:grid;gap:10px}.mypage-form-grid label,.completed-form label,.danger-zone label{display:grid;gap:5px}.mypage-form-grid label>span,.completed-form label>span,.danger-zone label>span{color:var(--secondary);font-size:12px;font-weight:600}.mypage-form-grid input,.mypage-form-grid select,.completed-form input,.completed-form select,.danger-zone input,.inline-create input,.saved-card-list input{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--border-strong);border-radius:9px}.inline-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.inline-check{display:flex;align-items:center;gap:6px;color:var(--secondary);font-size:12px}.mypage-meta{color:var(--secondary);font-size:12px}.historical-search{display:grid;gap:10px}.historical-search label{display:grid;gap:5px}.historical-search label>span{color:var(--secondary);font-size:12px;font-weight:600}.historical-search input,.historical-search select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--border-strong);border-radius:9px}.historical-result-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.historical-result-heading p{color:var(--secondary);font-size:12px}.historical-course-list{display:grid;gap:8px}.historical-course-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.historical-course-list article.selected{border-color:var(--accent);background:var(--accent-soft)}.historical-course-list label{display:flex;align-items:flex-start;gap:10px;min-width:0;cursor:pointer}.historical-course-list label>input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}.historical-course-list label>span{min-width:0}.historical-course-list strong,.historical-course-list small{display:block}.historical-course-list small{margin-top:3px;color:var(--secondary);font-size:11px;overflow-wrap:anywhere}.history-pagination{display:flex;align-items:center;justify-content:center;gap:12px}.history-pagination button{min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent)}.history-pagination span{color:var(--secondary);font-size:12px}.completed-semester-groups{display:grid;gap:16px}.completed-semester-groups>section{display:grid;gap:8px}.completed-semester-groups h3{color:var(--secondary);font-size:13px}.simple-list,.saved-card-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simple-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}.simple-list small{color:var(--tertiary)}.saved-card-list article{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.saved-card-list article>div:first-child{min-width:0}.saved-card-list strong,.saved-card-list small{display:block}.saved-card-list small{margin-top:4px;color:var(--secondary);font-size:11px}.saved-card-list p{margin-top:4px;font-size:13px}.card-actions{display:flex;flex-wrap:wrap;gap:5px}.card-actions button,.saved-card-list article>button{min-height:36px;padding:0 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--accent);font-size:11px;font-weight:600}.danger-zone{border-color:var(--danger-border)}.danger-zone>div{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--danger-border)}.danger-button{min-height:44px;padding:0 14px;border:1px solid var(--danger-border-strong);border-radius:9px;color:var(--danger);background:var(--danger-soft);font-weight:600}.status-page{display:grid;place-items:center;align-content:center;gap:14px;min-height:100dvh;padding:24px;text-align:center}.status-page p{max-width:520px;color:var(--secondary)}.area-status-grid{display:grid;gap:8px}.area-status-grid article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:9px}.area-status-grid strong{font-size:13px}@media(min-width:768px){.my-page,.shared-page{padding:32px 32px 100px}.page-header{grid-template-columns:auto 1fr;align-items:start}.mypage-form-grid{grid-template-columns:repeat(2,1fr)}.completed-form{grid-template-columns:repeat(3,1fr)}.academic-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.historical-search{grid-template-columns:minmax(220px,.7fr) minmax(280px,1fr) auto;align-items:end}.saved-card-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.area-status-grid{grid-template-columns:repeat(2,1fr)}}
