.class-blocks[data-v-e5f0b035]{display:grid;gap:16px;margin-top:20px}.block-head[data-v-e5f0b035]{display:flex;align-items:center;justify-content:space-between;gap:12px}.block-head h2[data-v-e5f0b035]{margin:0}.block-section>summary[data-v-e5f0b035]{cursor:pointer;list-style:none}.block-section>summary[data-v-e5f0b035]::-webkit-details-marker{display:none}.block-section>summary h2[data-v-e5f0b035]:before{content:"▸ ";color:var(--amber)}.block-section[open]>summary h2[data-v-e5f0b035]:before{content:"▾ "}.assign-title[data-v-e5f0b035]{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.assign-body[data-v-e5f0b035]{margin:0 0 8px}.count[data-v-e5f0b035]{min-width:1.6rem;padding:2px 8px;border-radius:999px;background:var(--primary-container);color:var(--on-primary-container);font-size:13px;font-weight:500;text-align:center}.doc-links[data-v-e5f0b035]{display:flex;flex-wrap:wrap;gap:8px 16px;margin:8px 0 0}.block-group[data-v-e5f0b035]{border-top:1px solid color-mix(in srgb,var(--line) 45%,transparent);margin-top:12px}.block-group summary[data-v-e5f0b035]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-size:16px;font-weight:500;color:var(--ink);list-style:none}.block-group summary[data-v-e5f0b035]::-webkit-details-marker{display:none}.block-group summary span[data-v-e5f0b035]:first-child:before{content:"▸ ";color:var(--amber)}.block-group[open] summary span[data-v-e5f0b035]:first-child:before{content:"▾ "}.block-group ul[data-v-e5f0b035]{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:10px}.block-group li[data-v-e5f0b035]{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent)}.block-group li[data-v-e5f0b035]:last-child{border-bottom:0;padding-bottom:0}.block-group p[data-v-e5f0b035]{margin:4px 0 0;color:var(--ink-soft);font-size:14px}.assign-pane[data-v-a79c75f4]{position:relative;min-height:160px}.assign-pane>div[data-v-a79c75f4]{background:var(--surface);border-radius:var(--radius);padding:8px 20px 20px;box-shadow:var(--elev-1)}.assign-title[data-v-a79c75f4]{margin:4px 0 8px;font-size:22px;font-weight:500}.assign-plan[data-v-a79c75f4]{margin:12px 0}.assign-plan h2[data-v-a79c75f4]{margin-top:0}.assign-body pre[data-v-a79c75f4],.assign-body .prompt[data-v-a79c75f4]{white-space:normal;font-family:var(--font);margin:0;color:var(--ink)}.assign-body[data-v-a79c75f4] h2,.assign-body[data-v-a79c75f4] h3,.assign-body[data-v-a79c75f4] h4{margin:16px 0 8px;font-size:16px;letter-spacing:0;text-transform:none;color:var(--ink)}.assign-body[data-v-a79c75f4] p{margin:0 0 10px}.assign-body[data-v-a79c75f4] ul,.assign-body[data-v-a79c75f4] ol{margin:0 0 10px;padding-left:1.3em}.assign-body[data-v-a79c75f4] li{margin:0 0 4px}.assign-body[data-v-a79c75f4] hr{border:0;border-top:1px solid var(--line);margin:14px 0}.assign-body[data-v-a79c75f4] a{color:var(--amber)}.assign-body[data-v-a79c75f4] img{max-width:100%;height:auto}.assign-body[data-v-a79c75f4] .screenreader-only,.assign-body[data-v-a79c75f4] .external_link_icon{display:none}:root{--bg: #141316;--bg-2: #1c1b1f;--surface: #211f24;--select: #2d2a31;--ink: #e6e1e6;--ink-soft: #cac4cf;--ink-faint: #938f96;--line: #49454e;--amber: #f5bc48;--amber-dim: #d4a03a;--amber-muted: #b08a48;--rose: #ffb4ab;--accent-2: #8fd98a;--accent-3: #efb0ff;--accent-2-ink: #8fd98a;--accent-3-ink: #efb0ff;--on-primary: #422d00;--primary-container: #3f2e00;--on-primary-container: #ffdf9a;--error-container: #3d1513;--radius: 16px;--radius-sm: 8px;--elev-1: 0 1px 2px rgba(0, 0, 0, .32), 0 1px 3px 1px rgba(0, 0, 0, .15);--elev-2: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 6px 2px rgba(0, 0, 0, .15);--font: "Roboto", "Segoe UI", system-ui, sans-serif;--mono: "Roboto Mono", "Cascadia Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font)}html{scrollbar-width:thin;scrollbar-color:var(--amber-muted) var(--bg-2)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--bg-2)}*::-webkit-scrollbar-thumb{background:var(--amber-muted);border-radius:8px;border:2px solid var(--bg-2)}*::-webkit-scrollbar-thumb:hover{background:var(--amber)}*::-webkit-scrollbar-corner{background:var(--bg-2)}button,input{font:inherit}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;font-size:20px;line-height:1;vertical-align:middle}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;align-items:center;gap:20px;padding:12px 20px;background:var(--bg-2);box-shadow:var(--elev-1);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--primary-container);color:var(--on-primary-container);display:grid;place-items:center;font-size:22px}.brand-title{font-size:18px;font-weight:500;letter-spacing:0;color:var(--ink)}.brand-sub{font-size:12px;color:var(--ink-faint);margin-top:1px}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--ink-soft);border:0;border-radius:20px;padding:8px 16px;text-decoration:none;font-size:14px;font-weight:500}.nav a:hover{text-decoration:none;background:var(--select);color:var(--ink)}.nav a.active{color:var(--on-primary-container);background:var(--primary-container)}.nav a.active .material-symbols-outlined{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.meta{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--ink-faint);font-size:12px}.meta-date{white-space:nowrap}.page{padding:24px;max-width:1480px}.fire-layout{display:grid;grid-template-columns:minmax(0,1fr) 0fr;gap:0;margin-top:24px;align-items:start;transition:grid-template-columns .28s ease,gap .28s ease}.fire-layout.split{grid-template-columns:minmax(280px,.85fr) minmax(340px,1.15fr);gap:16px}.fire-list h2{margin:0 0 12px;font-size:14px;letter-spacing:.1px;text-transform:none;color:var(--ink);font-weight:500}.fire-table-wrap{overflow:auto;max-height:calc(100vh - 280px);background:var(--surface);border:0;border-radius:var(--radius);box-shadow:var(--elev-1)}.fire-detail{position:relative;min-width:0;min-height:120px;overflow:hidden}.fire-layout:not(.split) .fire-detail{pointer-events:none}tr.selected td{background:var(--primary-container);color:var(--on-primary-container)}.slide-enter-active,.slide-leave-active{transition:transform .22s ease,opacity .22s ease}.slide-leave-active{position:absolute;top:0;right:0;bottom:0;left:0;width:100%}.slide-enter-from{transform:translate(20px);opacity:0}.slide-leave-to{transform:translate(12px);opacity:0}.swap-enter-active,.swap-leave-active{transition:transform .18s ease,opacity .18s ease}.swap-leave-active{position:absolute;top:0;right:0;bottom:0;left:0;width:100%}.swap-enter-from{transform:translate(14px);opacity:0}.swap-leave-to{transform:translate(-10px);opacity:0}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{background:var(--surface);border:0;border-radius:var(--radius);padding:20px 20px 16px;box-shadow:var(--elev-1)}.card h2,.section h2{margin:0 0 8px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.stat{font-size:32px;font-weight:500;letter-spacing:-.5px;color:var(--amber)}.stat.bad{color:var(--rose)}.stat.ok{color:var(--accent-2-ink)}.req-groups{display:grid;gap:16px;margin-top:14px}.req-group summary{cursor:pointer;font-size:13px;font-weight:500;color:var(--ink);list-style:none}.req-group summary::-webkit-details-marker{display:none}.req-group summary:before{content:"▸ ";color:var(--amber)}.req-group[open] summary:before{content:"▾ "}.req-group summary .faint{margin-left:8px}.req-group ul{margin-top:8px}.req-group ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.req-group li{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent)}.req-group li:last-child{border-bottom:0;padding-bottom:0}.req-title{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.req-group p{margin:4px 0 0;color:var(--ink-soft);font-size:14px}.plan-doc{white-space:pre-wrap;max-height:28rem;overflow:auto;margin:12px 0 0;color:var(--ink-soft);font-size:14px;line-height:1.55}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent);vertical-align:top}th{font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-faint);font-weight:500}tr:last-child td{border-bottom:0}tr:hover td{background:var(--select)}tr.selected:hover td{background:var(--primary-container)}.pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:8px;border:0;background:var(--select);color:var(--ink-soft);font-size:12px;font-weight:500}.pill.miss{color:var(--rose);background:var(--error-container)}.pill.soon{color:var(--on-primary-container);background:var(--primary-container)}.section{margin-top:28px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal .dow{color:var(--ink-faint);font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding:4px 8px;font-weight:500}.day{min-height:100px;background:var(--surface);border:0;border-radius:var(--radius-sm);padding:10px;box-shadow:var(--elev-1)}.day.today{outline:2px solid var(--amber);outline-offset:0}.day .n{font-size:13px;font-weight:500;color:var(--ink-soft)}.day .ev{font-size:12px;margin-top:6px;background:var(--select);border:0;display:block;width:100%;text-align:left;cursor:pointer;padding:4px 8px;font:inherit;border-radius:6px;color:var(--ink)}.day .ev:hover{background:var(--primary-container);color:var(--on-primary-container)}.day .ev.plan{color:var(--ink-soft);font-style:italic}.gantt{overflow-x:auto}.gantt-row{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:center;margin-bottom:10px}.gantt-track{position:relative;height:32px;background:var(--surface);border:0;border-radius:16px}.gantt-bar{position:absolute;top:6px;height:20px;background:var(--amber-dim);border-radius:10px;color:var(--on-primary);font-size:11px;font-weight:500;padding:0 8px;overflow:hidden;white-space:nowrap}.gantt-bar.miss{background:var(--rose);color:#3d1513}.gantt-bar.pace{background:var(--select);color:var(--ink-soft)}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--amber);border-radius:1px}.bell{list-style:none;margin:0;padding:0;display:grid;gap:14px}.bell-time{font-weight:500}.sched{display:grid;grid-template-columns:108px 1fr 1fr;gap:12px;align-items:stretch}.period{display:grid;align-content:center;gap:2px}.sched .head{color:var(--ink-faint);font-size:12px;letter-spacing:.4px;text-transform:uppercase;font-weight:500}.slot{background:var(--surface);border:0;border-radius:var(--radius);padding:16px;box-shadow:var(--elev-1)}.slot .avg{font-weight:500;color:var(--amber)}.back{display:inline-flex;align-items:center;gap:4px;background:none;border:0;color:var(--amber);cursor:pointer;padding:8px 12px 8px 0;margin-bottom:8px;font-weight:500;border-radius:20px}.back:hover{text-decoration:none;color:var(--amber-dim)}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:min(420px,100%);background:var(--surface);border-radius:var(--radius);box-shadow:var(--elev-1);padding:28px 24px;display:grid;gap:12px}.gate-card h2{margin:0;font-size:22px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink)}.gate-card p{margin:0;color:var(--ink-soft)}.gate-card input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.gate-error{color:var(--rose)}.refresh{display:inline-flex;align-items:center;gap:6px;background:var(--amber);color:var(--on-primary);border:0;border-radius:20px;padding:10px 20px;cursor:pointer;font-weight:500;box-shadow:var(--elev-1)}.refresh:hover{filter:brightness(1.05)}.refresh:disabled{opacity:.6;cursor:wait}.click-row{cursor:pointer}.class-row td{background:color-mix(in srgb,var(--amber) 6%,transparent)}.class-name{font-weight:500}.open-hint{color:var(--amber);font-weight:500;white-space:nowrap}.pill.more,.pill.level{margin-left:8px;background:var(--primary-container);color:var(--on-primary-container)}
