:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f7;--bg2:#ffffffb8;--panel:#ffffff9e;--panel-solid:#fff;--line:#00000014;--line-strong:#0000001f;--text:#1d1d1f;--muted:#6e6e73;--accent:#0071e3;--accent2:#0077ed;--ok:#1a7f37;--warn:#9a6700;--danger:#cf222e;--shadow:0 1px 2px #0000000a, 0 8px 24px #0000000a;--glass:saturate(180%) blur(20px);--radius:16px;--radius-sm:10px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}body{min-width:320px;color:var(--text);background:radial-gradient(1200px 600px at 12% -10%, #0071e312, transparent 55%), radial-gradient(900px 500px at 100% 0%, #00000008, transparent 50%), var(--bg);background-attachment:fixed;margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}.app{max-width:1180px;margin:0 auto;padding:28px 20px 64px}.top{flex-direction:column;gap:18px;margin-bottom:28px;display:flex}.brand{align-items:center;gap:14px;display:flex}.logo{border:1px solid var(--line);width:40px;height:40px;box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);color:var(--text);letter-spacing:-.04em;background:#ffffffb3;border-radius:12px;place-items:center;font-size:13px;font-weight:650;display:inline-grid}.brand h1{letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:650}.brand p{color:var(--muted);margin:2px 0 0;font-size:.8rem;font-weight:450}.tabs{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#ffffff73;border-radius:14px;flex-wrap:nowrap;gap:2px;padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:10px;flex:1 0 auto;min-width:max-content;padding:9px 14px;font-size:.875rem;font-weight:500;transition:background .15s,color .15s,box-shadow .15s}.tabs button:hover{color:var(--text)}.tabs button.on{background:var(--panel-solid);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000000f}.main{min-height:60vh}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);padding:22px}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.panel-head h2{letter-spacing:-.02em;margin:0 0 4px;font-size:1.1rem;font-weight:650}.muted{color:var(--muted)}.small{font-size:.85rem}.badge{color:var(--accent);white-space:nowrap;background:#0071e314;border:1px solid #0071e324;border-radius:8px;padding:5px 10px;font-size:.8rem;font-weight:600}.check-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:18px;display:grid}.check-card{border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#ffffff8c;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:14px;transition:border-color .15s,background .15s;display:grid}.check-card:hover{border-color:var(--line-strong);background:#fffc}.check-card.on{background:#1a7f370f;border-color:#1a7f3747}.check-card strong{display:block}.check-card .muted{font-size:.8rem}.tag{background:var(--line);color:var(--muted);border-radius:6px;margin-left:6px;padding:2px 6px;font-size:.7rem;font-style:normal}.tag.must{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent)}.tag.equiv{color:var(--muted);border:1px solid var(--line);background:#0000000f}.tag.waived-tag{color:var(--muted);background:#0000000d}.tag.ok-tag{color:var(--ok);background:#1a7f371a}.check-card.waived{opacity:.55;cursor:not-allowed;background:#00000008;border-style:dashed}.check-card.waived strong{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.waived-msg{color:var(--muted);margin-top:4px;font-size:.75rem;font-weight:550;display:block}.check-tags{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.equiv-legend{margin-top:0}tr.waived-row{opacity:.45;background:#00000008}tr.waived-row td{color:var(--muted)}tr.taken-row{background:#1a7f370a}.equiv-alt{font-size:.72rem}.prefs{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.prefs label{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line-strong);cursor:pointer;background:#ffffffb3;border-radius:10px;padding:9px 14px;font-size:.875rem;font-weight:500;line-height:1.2;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.btn:hover{background:#fff;border-color:#0000002e}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 2px #0071e333}.btn.primary:hover{background:var(--accent2);border-color:var(--accent2)}.btn.danger{color:var(--danger);background:#cf222e0a;border-color:#cf222e47}.btn.ghost{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;padding-inline:10px}.btn.ghost:hover{color:var(--text);background:#0000000a;border-color:#0000}.btn.sm{border-radius:8px;padding:6px 11px;font-size:.8rem}.btn-row{flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 10px;display:flex}.stars-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.stars-label{width:48px;color:var(--muted);font-size:.9rem}.stars{align-items:center;gap:2px;display:flex}.star-btn{cursor:pointer;color:var(--line);background:0 0;border:none;padding:0 2px;font-size:1.25rem;line-height:1}.star-btn.on{color:#f5b301}.stars-read{color:#f5b301;letter-spacing:1px;font-size:.85rem}.stars-read em{color:var(--muted);letter-spacing:0;margin-left:6px;font-style:normal}.tag-cloud{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chip.on{background:color-mix(in srgb, var(--accent) 18%, var(--bg2));border-color:var(--accent);color:var(--accent)}.textarea{resize:vertical;width:100%;min-height:96px}.instructor-cell{flex-wrap:wrap;align-items:baseline;gap:6px;display:inline-flex}.prof-score{color:#f5b301;white-space:nowrap;font-size:.8rem;font-style:normal}.tight-prefs{margin:8px 0 12px;font-size:.85rem}.eta-import{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff6;margin:8px 0 14px;padding:14px}.eta-import .toolbar{flex-wrap:wrap;margin-top:0;margin-bottom:8px}.prof-layout{flex-direction:column;gap:10px;min-height:calc(100vh - 120px);display:flex}.prof-toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.prof-split{flex:1;grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:stretch;gap:14px;min-height:0;display:grid}.prof-list,.prof-detail{overscroll-behavior:contain;align-self:start;max-height:calc(100vh - 150px);position:sticky;top:10px;overflow-y:auto}.prof-list-cards{gap:6px;margin-top:4px;display:grid}.prof-detail{max-height:calc(100vh - 150px)}.eta-dump{padding-bottom:8px}@media (width<=900px){.prof-split{grid-template-columns:1fr}.prof-list,.prof-detail{max-height:none;position:static}.prof-list{max-height:42vh}}.eta-steps{margin:0 0 10px 1.2rem;padding:0;line-height:1.7}.eta-script-details{margin-bottom:10px}.eta-script-details summary{cursor:pointer;color:var(--muted);margin-bottom:6px;font-size:.85rem}.textarea.mono,.input.textarea.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.35}.prof-paste-result{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.prof-overall-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:8px;padding-bottom:10px;display:flex}.prof-overall{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.prof-overall strong{letter-spacing:-.03em;color:var(--text);font-size:1.45rem;font-weight:700}.prof-radar-block{margin-top:14px}.prof-radar-row{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.radar-chart{flex:none}.radar-ring,.radar-axis{stroke:var(--line);stroke-width:1px}.radar-area{fill:color-mix(in srgb, var(--accent,#0071e3) 22%, transparent);stroke:var(--accent,#0071e3);stroke-width:2px}.radar-dot{fill:var(--accent,#0071e3)}.radar-label{fill:var(--text);font-size:11px;font-weight:600}.prof-axis-list{flex-direction:column;gap:8px;min-width:180px;margin:0;padding:0;list-style:none;display:flex}.prof-axis-list li{flex-direction:column;gap:2px;display:flex}.prof-reviews-details{margin-top:16px}.prof-reviews-details summary{cursor:pointer;font-size:.9rem;font-weight:600}.prof-review-list{flex-direction:column;gap:12px;max-height:320px;margin:10px 0 0;padding:0;list-style:none;display:flex;overflow:auto}.prof-review-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff59;padding:10px 12px}.prof-review-list p{margin:4px 0 0;font-size:.88rem;line-height:1.45}.prof-metrics{flex-wrap:wrap;gap:10px 16px;margin-bottom:10px;font-size:.85rem;display:flex}.prof-metric{color:var(--muted)}.tag-cloud.readonly{pointer-events:none}.quick-rate{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.big-num{font-weight:700;padding:12px 14px!important;font-size:1.4rem!important}.subh{letter-spacing:-.02em;margin:22px 0 10px;font-size:.95rem;font-weight:650}.plans-layout{grid-template-columns:280px 1fr;align-items:start;gap:14px;display:grid}@media (width<=900px){.plans-layout{grid-template-columns:1fr}}.plan-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);padding:16px}.plan-list h2{margin:0 0 4px;font-size:1.05rem}.aside-head{margin-bottom:10px}.aside-head h2{margin:0 0 2px}.plan-cards{gap:6px;display:grid}.plan-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#ffffff8c;gap:4px;width:100%;margin-top:0;padding:12px 14px;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.plan-card:hover{border-color:var(--line-strong);background:#ffffffd9}.plan-card strong{font-size:.92rem;font-weight:600}.plan-card .plan-sub{color:var(--muted);font-size:.75rem;font-style:normal;line-height:1.35}.plan-card .plan-why{color:var(--text);opacity:.82;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;font-style:normal;line-height:1.4;display:-webkit-box;overflow:hidden}.plan-chips{flex-wrap:wrap;gap:4px;margin:2px 0;display:flex}.plan-chips.detail{margin:0 0 12px}.plan-chip{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#0000000a;border-radius:6px;padding:3px 7px;font-size:.7rem;font-style:normal;font-weight:550}.plan-card.active .plan-chip{color:var(--accent);background:#0071e314;border-color:#0071e329}.plan-reasons{border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffff73;margin:0 0 12px;padding:8px 12px}.plan-reasons summary,.roadmap-more summary{cursor:pointer;color:var(--muted);font-size:.84rem;font-weight:600;list-style:none}.plan-reasons summary::-webkit-details-marker{display:none}.roadmap-more summary::-webkit-details-marker{display:none}.plan-reasons summary:after,.roadmap-more summary:after{content:" ▾";font-size:.7rem}.plan-reasons[open] summary:after,.roadmap-more[open] summary:after{content:" ▴"}.plan-reasons ul{gap:3px;margin:8px 0 0;padding-left:18px;display:grid}.plan-reasons li{font-size:.84rem;line-height:1.35}.roadmap-more{border:1px solid var(--line);background:#fff6;border-radius:10px;margin:0 0 10px;padding:8px 10px}.plan-card span,.plan-card em{color:var(--muted);font-size:.78rem;font-style:normal}.plan-card.active{background:#fff;border-color:#0071e359;box-shadow:0 0 0 1px #0071e31f}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(10px);background:#ffffff80;overflow:auto}.table-wrap.tall{max-height:70vh}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}th{-webkit-backdrop-filter:blur(8px);z-index:1;color:var(--muted);background:#f5f5f7eb;font-size:.8rem;font-weight:600;position:sticky;top:0}tr.dim{opacity:.55}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.input{border:1px solid var(--line-strong);background:#fffc;border-radius:10px;outline:none;min-width:180px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:#0071e373;box-shadow:0 0 0 3px #0071e31f}.warn-box{color:var(--warn);background:#9a670014;border:1px solid #9a670029;border-radius:10px;margin:12px 0;padding:10px 12px;font-size:.875rem}.reg-order{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reg-order li{border:1px solid var(--line);background:var(--bg2);border-radius:10px;grid-template-columns:36px 1fr;align-items:start;gap:10px;padding:10px;display:grid}.reg-rank{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.reg-order strong{display:block}.stat-row{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}@media (width<=700px){.stat-row{grid-template-columns:repeat(2,1fr)}}.stat{border:1px solid var(--line);border-radius:var(--radius-sm);text-align:center;-webkit-backdrop-filter:blur(10px);background:#ffffff8c;padding:14px}.stat strong{letter-spacing:-.03em;font-size:1.35rem;font-weight:650;display:block}.stat span{color:var(--muted);font-size:.8rem}.info-card{border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(10px);background:#ffffff8c;padding:14px 16px}.info-card ul{margin:8px 0;padding-left:18px}.info-card li{margin:4px 0}.pill{letter-spacing:-.01em;border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-block}.pill.ok{color:var(--ok);background:#1a7f371a}.pill.mid{color:var(--warn);background:#9a67001a}.pill.no{color:var(--danger);background:#cf222e1a}.stack-lg{flex-direction:column;gap:4px;display:flex}.tt-wrap{margin:8px 0 16px}.tt-wrap.compact{margin:4px 0 8px}.tt-wrap.compact .tt-day{padding-bottom:2px;font-size:.75rem}.tt-wrap.compact .tt-time{font-size:.58rem}.tt-wrap.compact .tt-block{border-radius:6px;padding:2px 3px}.tt-wrap.compact .tt-block strong{letter-spacing:-.02em;font-size:.58rem}.tt-wrap.compact .tt-col{border-radius:8px}.tt-compare{grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 12px;display:grid}@media (width<=800px){.tt-compare{grid-template-columns:1fr}}.tt-compare-pane{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff80;min-width:0;padding:10px}.tt-compare-head{gap:2px;margin-bottom:6px;display:grid}.tt-compare-head strong{letter-spacing:-.02em;font-size:.88rem}.tt-compare-reasons{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}@media (width<=800px){.tt-compare-reasons{grid-template-columns:1fr}}.tt-compare-reasons ul{gap:2px;margin:4px 0 0;padding-left:16px;display:grid}.tt-compare-reasons li{font-size:.8rem;line-height:1.35}.tt-day.diff{color:var(--accent);font-weight:700}.tt-day.same{opacity:.45}.tt-col.diff-day{background:#0071e30a;box-shadow:inset 0 0 0 1.5px #0071e359}.tt-col.same-day{opacity:.38}.diff-summary{grid-template-columns:1.2fr 1fr;gap:12px;margin:0 0 10px;display:grid}@media (width<=700px){.diff-summary{grid-template-columns:1fr}}.diff-summary-col{border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffff8c;padding:10px 12px}.diff-summary-col.shared{background:#1a7f370a;border-color:#1a7f372e}.diff-summary-col h3{color:var(--muted);margin:0 0 6px;font-size:.8rem;font-weight:650}.diff-summary-col ul{gap:3px;margin:0;padding-left:16px;display:grid}.diff-summary-col li{font-size:.86rem;line-height:1.35}.diff-day-hint{margin:0 0 8px}.diff-mark{color:var(--accent);font-style:normal;font-weight:700}.diff-courses{border:1px dashed var(--line);border-radius:10px;gap:4px;margin:0 0 12px;padding:8px 12px;display:grid}.diff-courses p{margin:0;font-size:.84rem;line-height:1.35}tr.diff-row td:nth-child(2),tr.diff-row td:nth-child(3){font-weight:600}tr.same-row{opacity:.55}.tt-legend{flex-wrap:wrap;gap:10px;margin-bottom:8px;display:flex}.tt-leg{color:var(--muted);align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.tt-leg i{border-radius:2px;width:10px;height:10px;display:inline-block}.tt-grid{grid-template-columns:44px repeat(5,1fr);gap:4px;display:grid}.tt-day{text-align:center;padding-bottom:4px;font-size:.9rem;font-weight:600}.tt-times{position:relative}.tt-time{color:var(--muted);font-size:.7rem;position:absolute;right:4px}.tt-col{border:1px solid var(--line);background:#ffffff8c;border-radius:12px;position:relative}.tt-line{border-top:1px solid var(--line);opacity:.7;position:absolute;left:0;right:0}.tt-block{color:#fff;opacity:.88;text-align:left;font:inherit;border:1px solid #fff3;border-radius:8px;padding:4px 6px;position:absolute;left:3px;right:3px;overflow:hidden}.tt-block.clickable{cursor:pointer;z-index:1}.tt-block.clickable:hover,.tt-block.clickable:focus-visible{opacity:1;outline-offset:1px;outline:2px solid #ffffffd9}.tt-block.selected{opacity:1;box-shadow:0 0 0 2px #fff, 0 0 0 4px color-mix(in srgb, var(--accent) 70%, #000);z-index:2}.tt-block strong{align-items:baseline;gap:4px;font-size:.68rem;line-height:1.2;display:flex}.tt-star{opacity:.95;font-size:.62rem;font-style:normal;font-weight:600}.tt-block span{opacity:.92;font-size:.62rem;line-height:1.2;display:block}.tt-prof{opacity:.8!important;font-size:.58rem!important}.tt-prof-peek{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg2) 88%, var(--accent) 6%);margin:0 0 14px;padding:12px 14px}.tt-prof-peek-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.tt-prof-peek-head strong{letter-spacing:-.02em;font-size:.95rem}.tt-prof-peek-grid{gap:12px;display:grid}.tt-prof-card{border:1px solid var(--line);background:var(--bg);border-radius:10px;gap:10px;padding:12px;display:grid}.tt-prof-card-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.tt-prof-card-top h3{letter-spacing:-.02em;margin:0;font-size:1.05rem}.tt-prof-scores{flex-wrap:wrap;align-items:baseline;gap:8px 14px;font-size:.85rem;display:flex}.tt-prof-axes{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.tt-prof-reviews h4{margin:0 0 6px;font-size:.82rem}.tt-prof-reviews ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tt-prof-reviews li{background:color-mix(in srgb, var(--bg2) 70%, transparent);border-radius:8px;padding:8px 10px;font-size:.82rem;line-height:1.4}.tt-prof-reviews li p{margin:2px 0 0}.prof-axis-list.compact{gap:2px}.prof-axis-list.compact li strong{font-size:.8rem}.tag-cloud.tight{margin:0}.instructor-link{font:inherit;padding:0}.prof-review-list li.course-hit{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);padding-left:8px}.callout{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--bg2));border-radius:10px;gap:4px;margin-bottom:14px;padding:12px 14px;font-size:.9rem;display:grid}.hint{color:var(--warn);margin-top:4px;font-size:.75rem;display:block}.prefs.wrap{align-items:flex-end}.field{color:var(--muted);gap:4px;font-size:.85rem;display:grid}.field.tight{margin:8px 0 4px}.field .input{color:var(--text)}.stat-row.mini .stat strong{font-size:1.15rem}.backups{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:.8rem;display:flex}.backups code{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:2px 6px;font-size:.75rem}.tips{color:var(--muted);margin:0;padding-left:18px;font-size:.9rem}.tips li{margin:4px 0}.block-grid-wrap{margin-bottom:12px}.block-grid{gap:3px;margin:8px 0;display:grid}.block-head,.block-time{text-align:center;color:var(--muted);font-size:.75rem}.block-cell{border:1px solid var(--line);cursor:pointer;background:#ffffffb3;border-radius:5px;height:22px;padding:0}.block-cell.on{background:#cf222e8c;border-color:#cf222eb3}.plan-card-wrap{grid-template-columns:1fr auto;align-items:stretch;gap:4px;margin-top:8px;display:grid}.plan-card-wrap .plan-card{margin-top:0}.cmp-btn{writing-mode:horizontal-tb;align-self:stretch;min-width:52px}.cmp-btn.on{background:var(--accent)!important;color:#fff!important}.badge-col{justify-items:end;gap:6px;display:grid}.metric-row{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin:8px 0 12px;font-size:.8rem;display:flex}.compare-box{margin:12px 0}.star{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:1.1rem}.star.on{color:#eab308}.wish-list{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.wish-list li{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.875rem;display:flex}.input.area{resize:vertical;width:100%;margin-bottom:8px}.linkish{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.toolbar.wrap{flex-wrap:wrap}@media print{.top,.plan-list,.tabs,.toolbar,.check-grid,.block-grid-wrap{display:none!important}.print-area,.flow{break-inside:avoid}}.flow{border:1px solid var(--line);background:var(--bg2);border-radius:12px;margin:8px 0 16px;padding:14px}.flow-phase{flex-direction:column;align-items:center;display:flex}.flow-node{text-align:center;border:1px solid var(--line);background:var(--panel);border-radius:10px;width:min(100%,420px);padding:10px 14px;font-size:.9rem;font-weight:600}.flow-node span{color:var(--muted);margin-top:4px;font-size:.8rem;font-weight:400;display:block}.flow-node.start.accent{background:var(--accent);border-color:var(--accent);color:#fff}.flow-node.end{border-color:color-mix(in srgb, var(--ok) 45%, var(--line));background:color-mix(in srgb, var(--ok) 12%, var(--panel))}.flow-node.prep{border-style:dashed}.flow-arrow{color:var(--muted);-webkit-user-select:none;user-select:none;padding:4px 0;font-size:.85rem}.flow-arrow.mid{text-align:center;width:100%}.flow-steps{flex-direction:column;gap:0;margin-top:4px;display:flex}.flow-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;grid-template-columns:44px 1fr;gap:10px;width:100%;padding:12px;display:grid}.flow-num{background:var(--accent);color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:800;display:grid}.flow-title{flex-wrap:wrap;align-items:baseline;gap:8px;font-weight:700;display:flex}.flow-title em{color:var(--accent);font-size:.8rem;font-style:normal;font-weight:600}.flow-name{margin-top:2px;font-size:.9rem}.flow-why{color:var(--muted);margin-top:4px;font-size:.8rem}.flow-branch{gap:6px;margin-top:10px;display:grid}.flow-ok,.flow-fail{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.82rem}.flow-ok{background:color-mix(in srgb, var(--ok) 10%, transparent);border-color:color-mix(in srgb, var(--ok) 35%, var(--line))}.flow-fail{background:color-mix(in srgb, var(--warn) 10%, transparent);border-color:color-mix(in srgb, var(--warn) 35%, var(--line))}.flow-alts{color:var(--text);gap:2px;margin-top:6px;padding-left:4px;font-size:.8rem;display:grid}.chip-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;color:var(--text);background:#ffffffb3;border-radius:8px;padding:5px 10px;font-size:.78rem}.chip:hover{border-color:var(--danger);color:var(--danger)}.save-msg{color:var(--ok);margin:8px 0 0;font-size:.9rem}.roadmap-view{gap:16px}.roadmap-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.roadmap-filter{flex:auto;max-width:360px}.roadmap-filter .seg-item{flex:1 1 0;padding:8px 6px}.roadmap-filter .seg-item span{display:none}.roadmap-hint{margin:0}.roadmap-viz{grid-template-columns:1fr minmax(260px,320px);align-items:start;gap:14px;display:grid}@media (width<=900px){.roadmap-viz{grid-template-columns:1fr}}.roadmap-scroll{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;margin:0 -4px;padding:4px;overflow-x:auto}.roadmap-scroll.dragging{cursor:grabbing}.roadmap-scroll.dragging .road-node,.roadmap-scroll.dragging .roadmap-col-head{pointer-events:none}.roadmap-track{align-items:flex-start;gap:12px;min-width:max-content;display:flex}.roadmap-col{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);width:210px;box-shadow:var(--shadow);background:#ffffff8c;flex:none;padding:12px;transition:border-color .15s,box-shadow .15s;position:relative}.roadmap-col.focus{box-shadow:0 0 0 1px #0071e31f, var(--shadow);border-color:#0071e359}.roadmap-col-head{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;padding:0 0 8px;display:block}.roadmap-col-head:hover h3{color:var(--accent)}.roadmap-col-head h3{letter-spacing:-.02em;margin:0;font-size:.95rem;font-weight:650}.roadmap-col-head p{margin:2px 0 8px}.roadmap-bar{background:var(--line);border-radius:99px;height:4px;margin-bottom:4px;overflow:hidden}.roadmap-bar i{background:var(--accent);height:100%;display:block}.roadmap-nodes{gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}.road-node{text-align:left;border:1px solid var(--line);cursor:default;width:100%;color:inherit;font:inherit;background:#ffffffbf;border-radius:10px;gap:4px;padding:8px 10px;transition:border-color .15s,background .15s,box-shadow .15s,opacity .15s;display:grid}.road-node.selectable{cursor:pointer}.road-node.selectable:hover{background:#fff;border-color:#0071e359}.road-node.selected{border-color:var(--accent);background:#fff;box-shadow:0 0 0 1px #0071e333}.road-node.related{border-color:#0071e340;box-shadow:inset 0 0 0 1px #0071e314}.road-node.done{background:#1a7f370f;border-color:#1a7f3747}.road-node.partial{border-color:#9a670059}.road-node.milestone{border-style:dashed}.road-node.waived{opacity:.55;background:#00000008;border-style:dashed}.road-node.waived strong{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.road-node-top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.road-node-top strong{font-size:.85rem}.road-node-top em{color:var(--muted);white-space:nowrap;font-size:.72rem;font-style:normal}.road-node.done .road-node-top em{color:var(--ok)}.road-node-meta{flex-wrap:wrap;gap:4px;display:flex}.road-node-meta .plan-chip{padding:2px 6px;font-size:.65rem}.road-node-note{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.35;display:-webkit-box;overflow:hidden}.road-node-bar{background:var(--line);border-radius:99px;height:3px;overflow:hidden}.road-node-bar i{background:var(--warn);height:100%;display:block}.roadmap-arrow{display:none}.roadmap-inspector{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);min-height:280px;padding:16px;position:sticky;top:12px}.roadmap-inspector-empty h3{margin:0 0 8px;font-size:1rem}.roadmap-inspector-empty p{margin:0 0 8px;line-height:1.45}.roadmap-inspector-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.roadmap-inspector-head h3{letter-spacing:-.02em;margin:2px 0 0;font-size:1.05rem}.roadmap-summary{margin:0 0 8px;font-size:.88rem;font-weight:500;line-height:1.4}.roadmap-block{margin:8px 0 0}.roadmap-block h4{color:var(--muted);letter-spacing:.02em;text-transform:none;margin:0 0 6px;font-size:.78rem;font-weight:650}.roadmap-block p{margin:0 0 4px;font-size:.88rem;line-height:1.45}.roadmap-block ul{gap:3px;margin:0;padding-left:18px;display:grid}.roadmap-block li{font-size:.86rem;line-height:1.4}.ok-line{color:var(--ok);margin:6px 0 0;font-size:.84rem;font-weight:600}.stack-lg{gap:16px;display:grid}.plans-wrap{gap:12px;display:grid}.seg{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);background:#ffffff73;border-radius:14px;flex-wrap:wrap;gap:2px;padding:4px;display:flex}.seg-item{cursor:pointer;text-align:center;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:120px;gap:2px;padding:10px 12px;transition:background .15s,color .15s,box-shadow .15s;display:grid}.seg-item:hover{color:var(--text)}.seg-item strong{color:inherit;letter-spacing:-.02em;font-size:.875rem;font-weight:600}.seg-item span{opacity:.85;font-size:.72rem;font-weight:450}.seg-item.on{background:var(--panel-solid);color:var(--text);box-shadow:0 1px 3px #0000000f}.seg-item.on span{opacity:.75}.ratio-warn{color:var(--danger);margin:4px 0;font-size:.9rem;font-weight:600}.ratio-alert{color:var(--danger);margin-left:4px;font-size:.75rem;font-weight:700}.rule-list{gap:8px;margin:0 0 14px;display:grid}.rule-section{margin-top:6px}.rule-section-title{align-items:baseline;gap:10px;margin:14px 0 8px;font-size:.95rem;display:flex}.rule-section-title span{color:var(--muted,#666);font-size:.78rem;font-weight:500}.rule-card{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;padding:0;overflow:hidden}.rule-card-toggle{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:4px 10px;width:100%;padding:12px 14px;display:grid}.rule-card-main{flex-wrap:wrap;grid-column:1;align-items:baseline;gap:6px 8px;display:flex}.rule-card-main strong{letter-spacing:-.02em;font-size:.92rem}.rule-card-summary{color:color-mix(in srgb, var(--text) 78%, transparent);grid-column:1;font-size:.84rem;line-height:1.4}.rule-card .chev{opacity:.55;grid-area:1/2/span 2;align-self:center;font-size:.85rem}.rule-card-body{border-top:1px dashed var(--line);gap:6px;padding:0 14px 12px;display:grid}.rule-card-body p{margin:8px 0 0;font-size:.84rem;line-height:1.45}.credit-pill{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;padding:2px 7px;font-size:.72rem;font-weight:600}.code-chips{flex-wrap:wrap;gap:4px;display:flex;margin:4px 0 0!important}.code-chips code{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:4px;padding:2px 6px;font-size:.72rem}.credit-viz{border:1px solid var(--line);background:var(--panel-solid);border-radius:10px;padding:14px}.credit-viz-head{flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:10px;display:flex}.credit-stack{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 60%, #fff);border-radius:6px;height:40px;display:flex;overflow:hidden}.credit-seg{--seg:#8a8a90;border-right:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:color-mix(in srgb, var(--seg) 22%, #f0f0f2);justify-content:center;align-items:center;min-width:0;padding:0 2px;display:flex}.credit-seg:last-child{border-right:0}.credit-seg-label{letter-spacing:-.03em;text-align:center;color:color-mix(in srgb, var(--text) 78%, var(--seg));flex-direction:column;align-items:center;font-size:.58rem;font-weight:600;line-height:1.15;display:flex}.credit-seg-label em{color:var(--text);font-size:.72rem;font-style:normal;font-weight:700}.tone-math{--seg:#7a6e72}.tone-sci{--seg:#6e7a88}.tone-cs{--seg:#7a7868}.tone-eng{--seg:#687a7c}.tone-hss{--seg:#7a7268}.tone-bundle{--seg:#726e7a}.tips-card .tip-grid{gap:6px;margin:8px 0 0;padding-left:18px;display:grid}.tips-card .tip-grid li{font-size:.86rem;line-height:1.4}.board-cat{margin-top:8px}.board-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.board-card{border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;gap:6px;padding:12px;display:grid}.board-card header{flex-wrap:wrap;align-items:baseline;gap:6px 8px;display:flex}.board-card header strong{letter-spacing:-.02em;font-size:.9rem}.board-meta{gap:10px;font-size:.78rem;font-weight:600;display:flex}.board-card.status-ok{border-left:2px solid color-mix(in srgb, var(--ok) 55%, #888)}.board-card.status-mid{border-left:2px solid color-mix(in srgb, var(--warn) 50%, #888)}.board-card.status-no{border-left:2px solid var(--line)}.tag.kind-or,.tag.kind-substitute,.tag.kind-bundle,.tag.kind-bucket,.tag.kind-exception{border:1px solid var(--line);color:var(--muted);background:0 0;font-weight:550}.tag.kind-or{border-color:color-mix(in srgb, var(--ok) 35%, var(--line));color:color-mix(in srgb, var(--ok) 70%, var(--text))}.tag.kind-substitute{border-color:color-mix(in srgb, var(--warn) 35%, var(--line));color:color-mix(in srgb, var(--warn) 65%, var(--text))}.tag.kind-bundle{border-color:color-mix(in srgb, #6e6a7a 40%, var(--line))}.tag.kind-bucket{border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:color-mix(in srgb, var(--accent) 55%, var(--text))}.tag.kind-exception{border-color:color-mix(in srgb, var(--danger) 30%, var(--line));color:color-mix(in srgb, var(--danger) 55%, var(--text))}@media (width<=640px){.credit-seg-label{font-size:.5rem}.credit-seg-label em{font-size:.62rem}}.source-links{gap:4px;margin:0 0 16px;padding-left:18px;display:grid}.source-links a{color:var(--accent)}.tag.soft{opacity:.85;font-weight:500}.rule-card.scope-foundation,.rule-card.scope-semiconductor{background:var(--panel-solid)}.rule-card.kind-or{border-left:2px solid color-mix(in srgb, var(--ok) 45%, #999)}.rule-card.kind-substitute{border-left:2px solid color-mix(in srgb, var(--warn) 45%, #999)}.rule-card.kind-bundle{border-left:2px solid #8a8694}.rule-card.kind-bucket{border-left:2px solid color-mix(in srgb, var(--accent) 40%, #999)}.rule-card.kind-exception{border-left:2px solid color-mix(in srgb, var(--danger) 40%, #999)}.seg.tight .seg-item{padding:8px 10px}.course-tree-scroll{margin:0 -4px;padding-bottom:8px;overflow-x:auto}.course-tree-grid{gap:10px;min-width:min-content;padding:4px;display:flex}.tree-term{flex:0 0 168px;min-width:160px}.tree-term h3{letter-spacing:-.02em;margin:0 0 8px;font-size:.82rem}.tree-term ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tree-course{border:1px solid #00000014;border-radius:8px;gap:2px;padding:8px 8px 8px 10px;font-size:.72rem;line-height:1.25;display:grid;position:relative}.tree-course.foundation{box-shadow:inset 0 0 0 2px #28282873}.tree-course.major strong:before{content:""}.tree-course .dot{font-weight:800;position:absolute;top:6px;left:3px}.tree-course.done{outline:2px solid var(--accent);outline-offset:1px;opacity:.95}.tree-course strong{letter-spacing:-.02em;font-weight:650}.tree-legend{flex-wrap:wrap}.tree-chip{margin-right:2px;font-style:normal;font-weight:700}.tree-ms-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tree-footer{padding-left:18px}.cal-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cal-item{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:10px 12px;display:flex}.cal-item time{font-variant-numeric:tabular-nums;min-width:7.5rem;font-weight:650}.cal-item.hi{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.cal-item.now{background:color-mix(in srgb, var(--accent) 10%, #fff)}.cal-item.past{opacity:.55}.cal-list.compact .cal-item{padding:8px 10px}*{margin:0}body{min-height:100vh}
