@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/09f6c2baa931b883-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6b4fe0bff7871930-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/064ea76c844b54f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b0fde133b3c9bd9c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92daa4d0098aa288-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/09f6c2baa931b883-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6b4fe0bff7871930-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/064ea76c844b54f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b0fde133b3c9bd9c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/92daa4d0098aa288-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/09f6c2baa931b883-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6b4fe0bff7871930-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/064ea76c844b54f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b0fde133b3c9bd9c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/92daa4d0098aa288-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/09f6c2baa931b883-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6b4fe0bff7871930-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/064ea76c844b54f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b0fde133b3c9bd9c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/92daa4d0098aa288-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Libre Franklin Fallback;src:local("Arial");ascent-override:92.61%;descent-override:23.58%;line-gap-override:0.00%;size-adjust:104.31%}.__className_770d2d{font-family:Libre Franklin,Libre Franklin Fallback;font-style:normal}.__variable_770d2d{--font-sans:"Libre Franklin","Libre Franklin Fallback"}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_9cd094{font-family:"Source Serif 4","Source Serif 4 Fallback";font-style:normal}.__variable_9cd094{--font-serif:"Source Serif 4","Source Serif 4 Fallback"}:root{--ground:#f0eee9;--surface:#fcfbf9;--surface-2:#eaf1f5;--ink:#1b2a36;--muted:#5a7385;--faint:#7a91a0;--line:#dde3e7;--line-2:#c5d0d8;--accent:#003262;--accent-ink:#ffffff;--accent-2:#3b7ea1;--wordmark:#003262;--gold:#8a6200;--gold-fill:#fdb515;--gold-ink:#1b2a36;--gold-bg:#f8e8c4;--clear:#1e7a55;--clear-bg:#e6f4ed;--review:#8a6010;--review-bg:#fbf1dc;--blocked:#a8342a;--blocked-bg:#fbe9e7;--perm:#3b7ea1;--perm-bg:#eaf1f5;--wait:#c0362c;--wait-ink:#ffffff;--grade-a:#1e8a6e;--grade-b:#c77400;--grade-c:#9a7b2c;--grade-df:#a8342a;--loc:#a6b4be;--shadow:0 1px 3px rgba(27,42,54,.10);--sans:var(--font-sans),"Libre Franklin",sans-serif;--serif:var(--font-serif),"Source Serif 4",Georgia,serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}:root[data-theme=dark]{--ground:#051422;--surface:#071c2e;--surface-2:#0f2740;--ink:#e9eef2;--muted:#6f93a8;--faint:#4a6a80;--line:#123049;--line-2:#1a3d5c;--accent:#8fb8ce;--accent-ink:#071c2e;--accent-2:#8fb8ce;--wordmark:#fdb515;--gold:#fdb515;--gold-fill:#fdb515;--gold-ink:#1a1200;--gold-bg:#3a2e0a;--clear:#56c795;--clear-bg:#10301f;--review:#dda94a;--review-bg:#332711;--blocked:#ec8177;--blocked-bg:#3a1a16;--perm:#8fb8ce;--perm-bg:#0f2740;--wait:#e15347;--wait-ink:#ffffff;--grade-a:#56c795;--grade-b:#dda94a;--grade-c:#c4a05a;--grade-df:#ec8177;--loc:#4a6a80;--shadow:0 1px 3px rgba(0,0,0,.35)}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.wrap{max-width:1280px;margin:0 auto;padding:28px 20px 80px}.masthead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 24px;margin-bottom:22px}.masthead h1{font-family:var(--serif);font-weight:700;font-size:clamp(22px,3vw,30px);line-height:1.15;margin:0;letter-spacing:-.02em;text-wrap:balance;color:var(--wordmark)}.kicker{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);margin:0 0 6px}.masthead p.sub{margin:6px 0 0;color:var(--muted);font-size:14px;max-width:62ch}.theme-btn{margin-left:auto;align-self:flex-start;font:500 12px/1 var(--sans);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:8px 11px;cursor:pointer}.theme-btn:hover{border-color:var(--line-2);color:var(--ink)}.profile-card{margin-bottom:22px;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:14px 14px 16px}.profile-head{display:flex;align-items:baseline;gap:12px}.profile-head h2{font-size:13px;font-weight:600;margin:0;letter-spacing:-.01em}.profile-head .linkbtn{margin-left:auto}.profile-status{margin:8px 0 0;font-size:14px;color:var(--ink)}.profile-status.none{color:var(--muted)}.profile-error{margin:8px 0 0;font-size:13px;color:var(--blocked)}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.profile-privacy{margin:10px 0 0;font-size:12px;color:var(--muted);line-height:1.45}.profile-form{margin-top:12px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;display:flex;flex-direction:column;gap:10px}.profile-form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.profile-form-row label{display:flex;flex-direction:column;gap:5px;font:500 12px/1 var(--sans);color:var(--muted)}.profile-form-row input[type=text],.profile-form-row select{font:400 13px/1.3 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:3px;padding:8px 10px;min-width:0}.profile-form-row>label:not(.profile-check):first-of-type{flex:1 1 180px}.profile-form-row label.profile-check{flex-direction:row;align-items:center;gap:7px;cursor:pointer;color:var(--ink);font-weight:500}.profile-check input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}.profile-form-actions{display:flex;gap:8px}.profile-courses{font-size:13px;color:var(--muted)}.profile-courses summary{cursor:pointer;font-weight:500;color:var(--ink)}.profile-courses ul{margin:8px 0 0;padding-left:18px}.profile-courses li{margin-bottom:4px}.profile-courses b{color:var(--ink);font-weight:600}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:22px}.tile{background:var(--surface);padding:13px 14px}.tile .n{font-family:var(--sans);font-size:23px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.tile .l{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);margin-top:5px}.tile.is-clear .n{color:var(--clear)}.tile.is-gold .n{color:var(--gold)}.tile.is-review .n{color:var(--review)}.tile.is-blocked .n{color:var(--blocked)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{font:600 13px/1 var(--sans);color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;padding:11px 14px;cursor:pointer}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tab .count{font-family:var(--mono);font-size:11px;color:var(--faint);margin-left:6px}.controls{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--ground);border-bottom:1px solid var(--line);padding:12px 0 13px;margin-bottom:4px}.searchrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.search{flex:1 1 260px;position:relative}.search input{width:100%;font:400 14px/1.3 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:3px;padding:10px 12px}.search input::placeholder{color:var(--faint)}.mini,select{font:500 12px/1 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:3px;padding:9px 10px;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dropdown{position:relative;display:inline-block}.dropdown-toggle{font:500 12px/1 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:3px;padding:9px 10px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dropdown-toggle .arrow{font-size:10px;margin-left:4px;opacity:.55}.dropdown-toggle .dcount{font-family:var(--mono);font-size:10px;opacity:.72;margin-left:5px}.dropdown-panel{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:30;background:var(--surface);border:1px solid var(--line-2);border-radius:4px;box-shadow:var(--shadow);width:230px;max-height:370px;flex-direction:column}.dropdown.open .dropdown-panel{display:flex}.dropdown-head{display:flex;gap:6px;align-items:center;padding:8px 8px 6px;border-bottom:1px solid var(--line)}.dropdown-head input{flex:1 1;font:400 12px/1.3 var(--sans);color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:6px 8px;min-width:0}.dropdown-head input::placeholder{color:var(--faint)}.selall{font:600 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);background:none;border:0;padding:4px 6px;cursor:pointer;white-space:nowrap;border-radius:2px}.selall:hover{background:var(--surface-2)}.dropdown-list{overflow-y:auto;flex:1 1;padding:4px 0}.dropdown-list label{display:flex;align-items:center;gap:7px;font:400 12px/1 var(--sans);color:var(--ink);padding:5px 10px;cursor:pointer}.dropdown-list label:hover{background:var(--surface-2)}.dropdown-list input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent);cursor:pointer}.dropdown-list .noitems{padding:12px 10px;font-size:12px;color:var(--faint)}.chiprow{gap:12px 20px;margin-top:11px;align-items:flex-start}.chipgroup,.chiprow{display:flex;flex-wrap:wrap}.chipgroup{gap:5px;align-items:center}.glabel{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2)}.chipgroup>.glabel{margin-right:3px}.chip{font:500 12px/1 var(--sans);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:6px 9px;cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--line-2);color:var(--ink)}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip .c{font-family:var(--mono);font-size:10px;opacity:.72;margin-left:5px}.resultline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px;font-size:13px;color:var(--muted)}.resultline b{font-family:var(--sans);font-weight:600;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.linkbtn{font:500 12px/1 var(--sans);color:var(--accent);background:none;border:0;padding:4px 2px;cursor:pointer;text-decoration:underline}.sorthead{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.sortbtn{font:500 12px/1 var(--sans);color:var(--muted);background:none;border:1px solid transparent;border-radius:3px;padding:6px 8px;cursor:pointer}.sortbtn:hover{color:var(--ink);border-color:var(--line)}.sortbtn[aria-pressed=true]{color:var(--ink);border-color:var(--line-2);background:var(--surface)}.sortbtn .dir{font-family:var(--mono);font-size:10px;margin-left:4px}.ledger{--col-ease:.45s cubic-bezier(.32,.72,0,1);position:relative;isolation:isolate;border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow:clip}.gridrow,.ledger-head{display:grid;grid-template-columns:var(--ledger-cols,70px minmax(0,1fr) 44px 160px 24px)}.ledger-head{position:-webkit-sticky;position:sticky;top:var(--controls-h,0);z-index:12;gap:10px 6px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-2);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.ledger-head .h-seats{grid-column:var(--col-seats,1);grid-row:1}.ledger-head .h-course{grid-column:var(--col-course,2);grid-row:1}.ledger-head .h-avg{grid-column:var(--col-avg,3);grid-row:1;text-align:center}.ledger-head .h-when{grid-column:var(--col-when,4);grid-row:1;text-align:left}.ledger-head .h-action{grid-column:var(--col-action,5);grid-row:1}.ledger-head [data-col]{cursor:-webkit-grab;cursor:grab;min-width:0;display:flex;align-items:center;gap:4px}.ledger-head .h-avg{justify-content:center}.ledger-head [data-col]:hover{color:var(--ink)}.col-grip{flex:none;fill:currentColor;color:var(--faint);opacity:.85}.ledger-head [data-col]:hover .col-grip{color:var(--ink);opacity:1}.cell-seats{grid-column:var(--col-seats,1);grid-row:1}.cell-main{grid-column:var(--col-course,2);grid-row:1}.cell-avg{grid-column:var(--col-avg,3);grid-row:1}.cell-when{grid-column:var(--col-when,4);grid-row:1}.cell-action,.xbtn{grid-column:var(--col-action,5);grid-row:1}.ledger .cell-seats,.ledger .h-seats{transform:translate3d(var(--shift-seats,0),0,0)}.ledger .cell-main,.ledger .h-course,.ledger .row-detail{transform:translate3d(var(--shift-course,0),0,0)}.ledger .cell-avg,.ledger .h-avg{transform:translate3d(var(--shift-avg,0),0,0)}.ledger .cell-when,.ledger .h-when{transform:translate3d(var(--shift-when,0),0,0)}.ledger .cell-action,.ledger .h-action,.ledger .xbtn{transform:translate3d(var(--shift-action,0),0,0)}.ledger[data-dragging] .cell-action,.ledger[data-dragging] .cell-avg,.ledger[data-dragging] .cell-main,.ledger[data-dragging] .cell-seats,.ledger[data-dragging] .cell-when,.ledger[data-dragging] .h-action,.ledger[data-dragging] .h-avg,.ledger[data-dragging] .h-course,.ledger[data-dragging] .h-seats,.ledger[data-dragging] .h-when,.ledger[data-dragging] .row-detail,.ledger[data-dragging] .xbtn{transition:transform var(--col-ease)}.ledger[data-dragging]{overflow:visible;z-index:4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ledger[data-dragging],.ledger[data-dragging] .ledger-head [data-col]{cursor:-webkit-grabbing;cursor:grabbing}body:has(.ledger[data-dragging]){cursor:-webkit-grabbing;cursor:grabbing}.col-lift{position:absolute;top:3px;bottom:3px;z-index:6;pointer-events:none;border-radius:8px;background:var(--surface);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 10%,transparent),0 10px 28px color-mix(in srgb,var(--ink) 22%,transparent),0 2px 6px color-mix(in srgb,var(--ink) 10%,transparent);transform:translate3d(var(--lift-tx,0),var(--lift-ty,0),0) scale(1.02);transform-origin:50% 8px;will-change:transform;animation:col-lift-in .18s ease both}@keyframes col-lift-in{0%{opacity:0}to{opacity:1}}.ledger[data-settling] .col-lift{animation:none;box-shadow:0 0 0 1px transparent,0 0 0 0 transparent,0 0 0 0 transparent;transform:translate3d(var(--lift-tx,0),var(--lift-ty,0),0) scale(1);transition:transform var(--col-ease),box-shadow var(--col-ease)}.ledger[data-dragging=avg] .cell-avg,.ledger[data-dragging=avg] .h-avg,.ledger[data-dragging=course] .cell-main,.ledger[data-dragging=course] .h-course,.ledger[data-dragging=course] .row-detail,.ledger[data-dragging=seats] .cell-seats,.ledger[data-dragging=seats] .h-seats,.ledger[data-dragging=when] .cell-when,.ledger[data-dragging=when] .h-when{transform:translate3d(var(--lift-tx,0),var(--lift-ty,0),0);transition:none;z-index:8;position:relative;background:var(--surface);will-change:transform}.ledger[data-dragging=avg] .h-avg,.ledger[data-dragging=avg] .srow .cell-avg,.ledger[data-dragging=course] .h-course,.ledger[data-dragging=course] .srow .cell-main,.ledger[data-dragging=seats] .h-seats,.ledger[data-dragging=seats] .srow .cell-seats,.ledger[data-dragging=when] .h-when,.ledger[data-dragging=when] .srow .cell-when{background:var(--surface-2)}.ledger[data-settling][data-dragging=avg] .cell-avg,.ledger[data-settling][data-dragging=avg] .h-avg,.ledger[data-settling][data-dragging=course] .cell-main,.ledger[data-settling][data-dragging=course] .h-course,.ledger[data-settling][data-dragging=course] .row-detail,.ledger[data-settling][data-dragging=seats] .cell-seats,.ledger[data-settling][data-dragging=seats] .h-seats,.ledger[data-settling][data-dragging=when] .cell-when,.ledger[data-settling][data-dragging=when] .h-when{transition:transform var(--col-ease)}.course{background:var(--surface);border:0;border-bottom:1px solid var(--line);border-radius:0}.course:last-child{border-bottom:0}.gridrow{gap:3px 6px;align-items:start;padding:9px 12px}.sections{background:var(--surface-2)}.sections,.srow+.srow{border-top:1px solid var(--line)}.secid{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}.moresec{display:block;width:100%;text-align:left;font:500 12px/1 var(--sans);color:var(--accent);background:none;border:0;border-top:1px solid var(--line);padding:9px 12px 9px var(--moresec-indent,88px);cursor:pointer}.moresec:hover{background:var(--surface)}.cell-main{min-width:0;display:flex;flex-direction:column;gap:3px}.titleline{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.code{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}.code a{color:inherit;text-decoration:none}.code a:hover{color:var(--accent)}.title{font-size:12px;color:var(--muted)}.pills{display:flex;flex-wrap:wrap;gap:6px}.pill{font:500 10px/1.2 var(--sans);padding:1px 7px;border-radius:99px;white-space:nowrap}.pill-quiet{background:var(--surface-2);color:var(--ink)}.pill-gold{background:var(--gold-fill);color:var(--gold-ink)}.pill-review{background:var(--review-bg);color:var(--review)}.pill-blocked{background:var(--blocked-bg);color:var(--blocked)}.row-detail{grid-column:var(--col-course,2);grid-row:2;font-size:11px;color:var(--faint);min-width:0}.cell-seats{font-family:var(--sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;color:var(--gold)}.cell-seats.wait{color:var(--blocked)}.cell-avg{text-align:center;font-size:14px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cell-avg.grade-a{color:var(--grade-a)}.cell-avg.grade-b{color:var(--grade-b)}.cell-avg.grade-c{color:var(--grade-c)}.cell-avg.grade-df{color:var(--grade-df)}.cell-avg.grade-none{color:var(--faint);font-weight:500}.cell-when{font-size:12px;color:var(--muted);text-align:left;min-width:0}.cell-when .d{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.cell-when .when-loc{margin-top:3px;color:var(--loc);text-align:left}.xbtn{align-self:start;justify-self:end;width:18px;height:18px;padding:0;border-radius:3px;background:none;border:1px solid var(--line);color:var(--faint);font:400 12px/1 var(--sans);cursor:pointer;display:flex;align-items:center;justify-content:center}.xbtn:hover{border-color:var(--blocked);color:var(--blocked);background:var(--blocked-bg)}.empty{text-align:center;padding:56px 20px;color:var(--muted);border:1px dashed var(--line-2);border-radius:4px}.empty p{margin:0 0 6px}.more{display:block;width:100%;margin-top:12px;padding:12px;font:500 13px/1 var(--sans);color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:4px;cursor:pointer}.more:hover{border-color:var(--accent)}.caveats{margin-top:42px;border-top:1px solid var(--line);padding-top:20px}.caveats h2{font-size:14px;margin:0 0 10px;letter-spacing:-.01em}.caveats ol{margin:0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.65;max-width:74ch}.caveats li{margin-bottom:7px}.caveats code{font-size:12px;background:var(--surface-2);padding:1px 4px;border-radius:2px}.caveats code,.stamp{font-family:var(--mono)}.stamp{font-size:11px;color:var(--faint);margin-top:18px}.blocks-section{margin-bottom:18px;border:1px solid var(--line);border-radius:4px;background:var(--surface);overflow:hidden}.blocks-section summary{font:600 13px/1 var(--sans);color:var(--ink);padding:12px 14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:8px}.blocks-section summary::-webkit-details-marker{display:none}.blocks-section summary:before{content:"\25B8";font-size:11px;color:var(--faint);transition:transform .15s}.blocks-section[open] summary:before{transform:rotate(90deg)}.blocks-section summary .count{font-family:var(--mono);font-size:11px;color:var(--faint);margin-left:auto}.blocks-body{border-top:1px solid var(--line);padding:10px 14px 14px}.blocks-selall{display:flex;align-items:center;gap:7px;padding:6px 0 8px;font:500 12px/1 var(--sans);color:var(--muted);cursor:pointer}.blocks-selall input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}.blocks-list{display:flex;flex-direction:column}.block-row{display:grid;grid-template-columns:auto 1fr auto;grid-gap:8px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.block-row input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}.block-info{min-width:0}.block-name{font:600 13px/1 var(--sans);color:var(--ink)}.block-time{font:400 11.5px/1.3 var(--mono);color:var(--muted);margin-top:3px}.block-rm{width:24px;height:24px;border-radius:3px;background:none;border:1px solid var(--line);color:var(--faint);font:400 14px/1 var(--sans);cursor:pointer;display:grid;place-items:center}.block-rm:hover{border-color:var(--blocked);color:var(--blocked);background:var(--blocked-bg)}.add-block-btn{display:block;width:100%;margin-top:10px;padding:10px;font:600 12px/1 var(--sans);color:var(--accent);background:var(--surface-2);border:1px dashed var(--line-2);border-radius:4px;cursor:pointer;text-align:center}.add-block-btn:hover{border-color:var(--accent);background:var(--surface)}.block-form{margin-top:10px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;display:flex;flex-direction:column;gap:10px}.block-form input[type=text],.block-form input[type=time]{font:400 13px/1.3 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:3px;padding:8px 10px}.block-form input[type=time]{font-family:var(--mono);width:120px}.block-form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.block-form-row label{font:500 12px/1 var(--sans);color:var(--muted)}.block-day-chips{display:flex;gap:4px}.block-day-chip{font:600 11px/1 var(--sans);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:5px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.block-day-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.block-form-actions{display:flex;gap:8px}.block-save{font:600 12px/1 var(--sans);color:var(--accent-ink);background:var(--accent);border:0;border-radius:3px;padding:8px 16px;cursor:pointer}.block-save:hover{opacity:.9}.block-save:disabled{opacity:.4;cursor:default}.block-cancel{font:500 12px/1 var(--sans);color:var(--muted);background:none;border:1px solid var(--line);border-radius:3px;padding:8px 14px;cursor:pointer}.block-cancel:hover{border-color:var(--line-2);color:var(--ink)}.conflict-note{font:400 12px/1 var(--sans);color:var(--review)}.loading{text-align:center;padding:120px 20px;color:var(--muted);font-size:14px}@media (max-width:760px){.controls{position:static}.ledger-head{top:0}}@media (max-width:640px){.gridrow,.ledger-head{grid-template-columns:52px minmax(0,1fr) 36px 24px}.ledger-head{touch-action:auto}.ledger-head [data-col]{cursor:default}.ledger-head .col-grip{display:none}.ledger-head .h-seats{grid-column:1}.ledger-head .h-course{grid-column:2}.ledger-head .h-avg{grid-column:3}.ledger-head .h-when{display:none}.ledger-head .h-action{grid-column:4}.cell-seats{grid-column:1;grid-row:1}.cell-main{grid-column:2;grid-row:1}.cell-avg{grid-column:3;grid-row:1}.cell-when{grid-column:2;grid-row:2}.cell-action,.xbtn{grid-column:4;grid-row:1}.row-detail{grid-column:2;grid-row:3}.moresec{padding-left:70px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}