: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;--ease-out:cubic-bezier(.25, .1, .25, 1);--ease-spring:cubic-bezier(.25, .1, .25, 1);--dur:.2s;--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs:1.0625rem;--fs-md:1.125rem;--fs-lg:1.375rem;--fs-xl:1.75rem;--lh:1.55;--lh-tight:1.28;font-family:var(--font);font-size:var(--fs);line-height:var(--lh);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;letter-spacing:-.015em}*{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:0 16px 64px}.top-sticky{z-index:80;background:color-mix(in srgb, var(--bg) 72%, #fff);-webkit-backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--line);margin:0 -16px 20px;padding:12px 16px 14px;position:sticky;top:0}.top-bar{justify-content:center;align-items:center;max-width:1180px;min-height:48px;margin:0 auto;display:flex;position:relative}.top-bar .brand{z-index:2;position:absolute;top:50%;left:0;transform:translateY(-50%)}.brand-btn{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.logo{color:#0b6bcb;border-radius:9px;flex-shrink:0;width:36px;height:36px;display:block;box-shadow:0 1px 2px #0b6bcb2e}.brand-text{flex-direction:column;gap:1px;min-width:0;display:flex}.brand-name{letter-spacing:-.045em;color:var(--text);font-size:1.05rem;font-weight:700;line-height:1.15}.brand-tag{color:var(--muted);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;max-width:28vw;font-size:.68rem;font-weight:500;overflow:hidden}.tabs{box-shadow:none;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:0 0;border:0;border-radius:0;flex-wrap:nowrap;gap:2px;min-width:0;padding:0;display:flex;overflow-x:auto}.primary-tabs{flex:0 auto;justify-content:center;gap:6px;max-width:calc(100% - 8rem)}.sub-nav-wrap{justify-content:center;max-width:1180px;margin:12px auto 0;display:flex}.sub-nav-wrap .seg{width:auto;min-width:min(100%,320px)}.seg.glass{-webkit-backdrop-filter:saturate(160%)blur(18px);background:#ffffff47;border:1px solid #ffffff73;border-radius:14px;padding:3px;box-shadow:0 1px 12px #0000000a}.seg.glass .seg-pill{background:#ffffffc7;transition:transform .28s cubic-bezier(.22,1,.36,1),width .28s cubic-bezier(.22,1,.36,1),opacity .14s;box-shadow:0 1px 2px #0000000a,0 4px 14px #0000000d}.seg.glass .seg-item{color:#1d1d1f8c}.seg.glass .seg-item.on{color:var(--text)}.seg.compact .seg-item{flex:auto;min-width:4.5rem;padding:9px 18px}.seg.compact .seg-item span{display:none}.seg.compact .seg-item strong{font-size:.875rem;font-weight:560}.seg.center{margin-left:auto;margin-right:auto}@media (width<=720px){.top-bar{flex-direction:column;align-items:stretch;gap:10px;min-height:0}.top-bar .brand{position:static;transform:none}.brand-tag{max-width:70vw}.primary-tabs{justify-content:center;width:100%;max-width:100%}.sub-nav-wrap{margin-top:10px}.sub-nav-wrap .seg{width:100%}}.tabs::-webkit-scrollbar{display:none}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;font-size:var(--fs-sm);min-width:max-content;transition:color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:8px 14px;font-weight:500}.tabs button:hover{color:var(--text)}.primary-tabs button.on{color:var(--text);box-shadow:none;border-bottom-color:var(--text);background:0 0;font-weight:650}@media (width<=720px){.top-bar{flex-direction:column;align-items:stretch;gap:10px;min-height:0}.top-bar .brand{position:static;transform:none}.brand-tag{max-width:70vw}.primary-tabs{justify-content:center;width:100%;max-width:100%}.sub-tabs button{width:4.25rem;height:4.25rem;font-size:.75rem}}.main{max-width:1180px;min-height:60vh;margin:0 auto}.main.page-enter{animation:page-enter var(--dur) var(--ease-out) both}.hint-row{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.checklist-actions{align-items:center}.checklist-lead{margin:4px 0 0}.info-hint{display:inline-flex;position:relative}.info-hint-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:5px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.info-hint-btn:hover,.info-hint-btn.open{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--accent) 6%, #fff)}.info-hint-mark{background:color-mix(in srgb, var(--accent) 14%, #fff);width:14px;height:14px;color:var(--accent);border-radius:50%;place-items:center;font-size:.65rem;font-weight:700;line-height:1;display:inline-grid}.info-hint-pop{z-index:40;border:1px solid var(--line);width:min(280px,78vw);color:var(--text);background:#fff;border-radius:10px;padding:10px 12px;font-size:.8rem;font-weight:450;line-height:1.45;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001a}@media (width<=720px){.top-sticky{padding:8px 12px 10px}.logo{border-radius:8px;width:34px;height:34px}.brand-name{font-size:1rem}.brand-tag{display:none}.primary-tabs button{padding:8px 10px;font-size:.82rem}.hint-row{width:100%;margin-top:4px;margin-left:0}.info-hint-pop{left:0;right:auto}}.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{font-size:var(--fs-lg);letter-spacing:-.025em;font-weight:650;line-height:var(--lh-tight);margin:0 0 6px}.muted{color:var(--muted);font-size:var(--fs-sm);letter-spacing:-.01em;line-height:1.55}.small{font-size:var(--fs-xs);line-height:1.45}.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(280px,1fr));gap:10px;margin-bottom:8px;display:grid}.check-section{margin-bottom:8px}.check-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.check-section-head .subh{margin-bottom:0}.check-section-lead{margin:4px 0 10px}.check-subh{font-size:var(--fs-sm);color:var(--muted);margin:14px 0 8px;font-weight:650}.check-filter{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.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{letter-spacing:-.02em;font-size:.95rem;line-height:1.35;display:block}.check-card-body{flex-direction:column;gap:3px;min-width:0;display:flex}.check-card .muted{font-size:.8rem}.check-codes{color:var(--muted);letter-spacing:-.01em;font-size:.78rem}.check-card.is-or{border-style:dashed}.rot-slot{height:1.3em;margin-top:1px;display:block;position:relative}.rot-line{color:var(--muted);letter-spacing:-.02em;font-size:.76rem;font-weight:500;line-height:1.3}.rot-slot .rot-line{opacity:0;pointer-events:none;transition:opacity .75s;position:absolute;top:0;left:0;right:0}.rot-slot .rot-line.on{opacity:1}.rot-line.static{margin-top:1px;display:block}@media (prefers-reduced-motion:reduce){.rot-slot .rot-line{transition:none}}.check-hover-note{opacity:0;color:var(--muted);grid-template-rows:0fr;margin:0;padding:0;font-size:.75rem;line-height:1.45;transition:grid-template-rows .18s,opacity .14s,margin-top .18s;display:grid}.check-hover-note-inner{min-height:0;overflow:hidden}.check-card:hover .check-hover-note,.check-card:focus-within .check-hover-note{opacity:1;grid-template-rows:1fr;margin-top:4px}@media (hover:none){.check-hover-note{opacity:1;grid-template-rows:1fr;margin-top:4px;transition:none}}.tag{color:var(--muted);border:1px solid var(--line);background:#0000000a;border-radius:6px;margin-left:0;padding:2px 6px;font-size:.7rem;font-style:normal}.tag.opt{color:#7a6b4a;background:#f3efe6;border-color:#e4dcc8}.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;font-size:var(--fs-sm);letter-spacing:-.02em;transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);background:#ffffffb3;border-radius:10px;padding:9px 14px;font-weight:560;line-height:1.25}.btn:hover{background:#fff;border-color:#0000002e}.btn:active{opacity:.88}.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{font-size:var(--fs-md);letter-spacing:-.02em;margin:18px 0 10px;font-weight:650;line-height:1.3}.plans-layout{transition:opacity .28s var(--ease-out), transform .28s var(--ease-out);opacity:1;will-change:opacity, transform;grid-template-columns:280px 1fr;align-items:start;gap:14px;display:grid;transform:translateY(0)}.plans-layout.is-switching{opacity:.42;pointer-events:none;transform:translateY(6px)}.plans-layout.is-ready{opacity:1;transform:translateY(0)}@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-sticky,.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;min-width:0;max-width:420px}.roadmap-filter .seg-track{width:100%}.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:none;-webkit-backdrop-filter:none;background:#ffffff80;border-radius:12px;flex-flow:row;align-items:stretch;gap:0;padding:3px;display:flex;overflow-x:auto}.seg>.seg-item{flex:1 1 0;min-width:0}.seg-track{scrollbar-width:none;flex-wrap:nowrap;flex:auto;gap:0;display:flex;position:relative;overflow-x:auto}.seg-track::-webkit-scrollbar{display:none}.seg-pill{pointer-events:none;opacity:0;transition:transform .22s var(--ease-out), width .22s var(--ease-out), opacity .12s ease;z-index:0;background:#fffffff2;border-radius:9px;position:absolute;top:0;bottom:0;left:0;box-shadow:0 1px 2px #0000000a}.seg-pill.on{opacity:1}.seg-item{z-index:1;cursor:pointer;text-align:center;color:var(--muted);transition:color var(--dur) var(--ease-out);background:0 0;border:0;border-radius:10px;flex:120px;gap:2px;padding:10px 12px;display:grid;position:relative}.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}.seg-item.on{color:var(--text);box-shadow:none;background:0 0}.seg-item.on span{opacity:.9}.fade-swap{animation:fade-swap .32s var(--ease-out) both}@keyframes fade-swap{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.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{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px;margin:0 0 14px;display:grid}.rule-section{margin-top:10px}.rule-section-title{letter-spacing:-.02em;align-items:baseline;gap:10px;margin:18px 0 10px;font-size:1rem;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:#6e9cff;border-right:1px solid color-mix(in srgb, var(--line) 55%, transparent);background:color-mix(in srgb, var(--seg) 32%, #fff);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:.62rem;font-weight:600;line-height:1.2;display:flex}.credit-seg-label em{color:var(--text);font-size:.72rem;font-style:normal;font-weight:700}.tone-math{--seg:#6b8cff}.tone-sci{--seg:#3dba8a}.tone-cs{--seg:#e0a84a}.tone-eng{--seg:#4aa8c9}.tone-hss{--seg:#d48a6a}.tone-bundle{--seg:#9b87d4}.tips-card h3{letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:650}.tips-card .tip-grid{border:1px solid var(--line);background:#ffffff8c;border-radius:12px;grid-template-columns:1fr;gap:0;margin:10px 0 0;padding:0;list-style:none;display:grid;overflow:hidden}@media (width>=720px){.tips-card .tip-grid{grid-template-columns:1fr 1fr}}.tips-card .tip-grid li{letter-spacing:-.015em;border:0;border-bottom:1px solid var(--line);color:var(--text);background:0 0;border-radius:0;padding:12px 14px;font-size:.9rem;line-height:1.55}@media (width>=720px){.tips-card .tip-grid li:nth-child(odd){border-right:1px solid var(--line)}}.tips-card .tip-grid li:last-child,.tips-card .tip-grid li:nth-last-child(2):nth-child(odd){border-bottom:0}@media (width>=720px){.tips-card .tip-grid li:nth-last-child(2):nth-child(odd){border-bottom:0}}.tips-lead{margin:6px 0 0}.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) 28%, var(--line));color:color-mix(in srgb, var(--ok) 55%, var(--text));background:color-mix(in srgb, var(--ok) 6%, #fff)}.tag.kind-substitute{border-color:color-mix(in srgb, var(--warn) 28%, var(--line));color:color-mix(in srgb, var(--warn) 50%, var(--text));background:color-mix(in srgb, var(--warn) 6%, #fff)}.tag.kind-bundle{border-color:color-mix(in srgb, #8b8499 35%, var(--line));background:#f9f9fa}.tag.kind-bucket{border-color:color-mix(in srgb, var(--accent) 25%, var(--line));color:color-mix(in srgb, var(--accent) 45%, var(--text));background:color-mix(in srgb, var(--accent) 5%, #fff)}.tag.kind-exception{border-color:color-mix(in srgb, var(--danger) 25%, var(--line));color:color-mix(in srgb, var(--danger) 45%, var(--text));background:color-mix(in srgb, var(--danger) 5%, #fff)}@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) 35%, #bbb)}.rule-card.kind-substitute{border-left:2px solid color-mix(in srgb, var(--warn) 35%, #bbb)}.rule-card.kind-bundle{border-left:2px solid #aea8b8}.rule-card.kind-bucket{border-left:2px solid color-mix(in srgb, var(--accent) 32%, #bbb)}.rule-card.kind-exception{border-left:2px solid color-mix(in srgb, var(--danger) 32%, #bbb)}.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{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.cal-item{border:1px solid var(--line);background:#ffffffa6;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;display:flex}.cal-item time{font-variant-numeric:tabular-nums;color:var(--muted);min-width:0;font-size:.82rem;font-weight:650}.cal-item strong{letter-spacing:-.02em;font-size:.95rem;line-height:1.35}.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}.page-enter{animation:page-enter var(--dur) var(--ease-out) both}@keyframes page-enter{0%{opacity:.96;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-enter,.btn,.tabs button,.check-card,.click-row,.phase-item{transition:none!important;animation:none!important}}.eyebrow{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-weight:600}.battle-page .battle-hero{align-items:flex-end}.battle-countdown{border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffffbf;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 14px;display:flex}.battle-countdown strong{font-size:var(--fs-md);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.battle-countdown.urgent{border-color:color-mix(in srgb, var(--danger) 35%, var(--line));background:color-mix(in srgb, var(--danger) 6%, #fff)}.battle-ready{background:#0000000f;border-radius:99px;height:6px;margin:-4px 0 8px;position:relative;overflow:hidden}.battle-ready-bar{background:linear-gradient(90deg, var(--accent), #34c759);border-radius:inherit;transition:width var(--dur) var(--ease-out);position:absolute;inset:0 auto 0 0}.battle-ready .muted{position:absolute;top:10px;right:0}.battle-stack-top{flex-direction:column;gap:12px;display:flex}.phase-grid-flat{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:none;display:grid;overflow:visible}@media (width<=720px){.phase-grid-flat{grid-template-columns:1fr}}.battle-grid-top{grid-template-columns:minmax(240px,.85fr) minmax(0,1.35fr);align-items:start;gap:14px;display:grid}@media (width<=720px){.battle-grid-top{grid-template-columns:1fr}}.battle-grid-top .battle-phases{margin:0}.battle-grid-top .phase-grid{grid-template-columns:1fr;gap:8px}.cheat-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cheat-controls .input{flex:140px;min-width:0}.battle-cheat-block{margin-top:2px}.prof-toolbar-note{margin:0 0 8px}.battle-card{border-radius:var(--radius);border:1px solid var(--line);background:#ffffffb8;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.battle-card h3{font-size:var(--fs-md);letter-spacing:-.02em;margin:0;font-weight:650}.pill.inline{align-self:flex-start;margin:0;display:inline-flex}.click-board{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.click-row{border-radius:var(--radius-sm);border:1px solid var(--line);transition:border-color var(--dur) var(--ease-out);background:#ffffffc7;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.click-row:hover{border-color:color-mix(in srgb, var(--accent) 22%, var(--line))}.click-rank{background:var(--text);color:#fff;height:2rem;font-weight:700;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;border-radius:999px;flex:0 0 2rem;place-items:center;display:grid}.click-body{flex-direction:column;gap:2px;min-width:0;display:flex}.click-body strong{font-size:var(--fs);letter-spacing:-.02em}.click-why{font-size:var(--fs-xs);color:var(--accent);font-weight:550}.click-backs{font-size:var(--fs-xs);color:var(--muted)}.click-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.click-carted{background:color-mix(in srgb, var(--accent) 12%, #fff);color:var(--accent);font-size:var(--fs-xs);border-radius:6px;align-items:baseline;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.click-carted strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.demand-edit-trigger{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));color:var(--accent);font-weight:600}.demand-edit{border-radius:var(--radius);border:1.5px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 5%, #fff);flex-direction:column;gap:12px;margin-top:14px;padding:14px 16px;display:flex}.demand-edit-head h4{font-size:var(--fs);letter-spacing:-.02em;color:var(--accent);margin:0 0 2px;font-weight:700}.demand-edit-list{flex-direction:column;gap:8px;display:flex}.demand-edit-row{border:1px solid var(--line);cursor:text;background:#ffffffd9;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.demand-edit-name{flex-direction:column;gap:1px;min-width:0;display:flex}.demand-edit-name em{font-style:normal}.demand-edit-field{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.demand-edit-label{font-size:var(--fs-xs);color:var(--accent);letter-spacing:-.02em;font-weight:700}.demand-cart-input{font-variant-numeric:tabular-nums;text-align:right;border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:#fff;width:5.25rem;padding:8px 10px;font-size:1rem;font-weight:700}.demand-cart-input:focus{outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:1px;border-color:var(--accent)}.demand-edit-actions{margin-top:2px}.phase-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=900px){.phase-grid{grid-template-columns:1fr}}.phase-card{border-radius:var(--radius);border:1px solid var(--line);background:#ffffffa6;padding:12px 14px}.phase-card header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.phase-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.phase-item{cursor:pointer;transition:background var(--dur) var(--ease-out);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.phase-item:hover{background:#0071e30d}.phase-item.on{background:color-mix(in srgb, var(--ok) 8%, #fff)}.phase-item em{font-style:normal}.battle-secondary{grid-template-columns:1.2fr 1fr;gap:18px;display:grid}@media (width<=800px){.battle-secondary{grid-template-columns:1fr}}.syllabus-import{margin-bottom:14px}.syllabus-import h3{margin:0 0 4px;font-size:1rem}.info-card h3{letter-spacing:-.02em;margin:0 0 2px;font-size:1.05rem;font-weight:650}.rule-card-main strong{font-size:.95rem}.rule-card-summary{font-size:.88rem;line-height:1.5}.server-clock{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:1.55rem;font-weight:650}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.cheat-preview{border:1px solid var(--line);white-space:pre-wrap;background:#00000005;border-radius:10px;max-height:180px;margin:0;padding:10px 12px;font-size:.75rem;line-height:1.45;overflow:auto}.demand-table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb3;margin-bottom:14px;overflow-x:auto}.demand-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.demand-table th,.demand-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.demand-table th{font-size:var(--fs-xs);color:var(--muted);background:#00000005;font-weight:600}.input.sm-num{width:4.5rem;padding:6px 8px}.demand-cap{text-align:center;font-variant-numeric:tabular-nums}.alt-cell{flex-direction:column;gap:1px;min-width:6rem;display:flex}.tip-list{font-size:var(--fs-sm);color:var(--muted);flex-direction:column;gap:6px;margin:0;padding-left:1.1rem;display:flex}.tip-list a{color:var(--accent)}.section-head-row{justify-content:space-between;align-items:flex-end;margin-bottom:10px;display:flex}.section-head-row h3{font-size:var(--fs-md);margin:0 0 2px}*{margin:0}body{min-height:100vh}
