:root{--bg:#fff;--text:#37352f;--muted:#787774;--faint:#9b9a97;--line:#ececeb;--hover:#f6f6f5;--tag:#f1f1ef;--blue:#1a73c7;--blue-bg:#eaf2fb;--green:#0f7b6c;--green-bg:#e8f3f0;--amber:#8a5a00;--amber-bg:#fff7e6}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:16px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Assistant",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}.page,.coursebar{max-width:800px;margin:auto}.coursebar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:20px 24px 0;font-size:13px}.coursebar a{color:var(--muted);padding:5px 8px;border-radius:6px;text-decoration:none}.coursebar a:hover{background:var(--hover);color:var(--text)}.coursebar .current{font-weight:700;color:var(--blue);background:var(--blue-bg)}.page{padding:8px 24px 120px}.titlewrap{padding:30px 2px 4px}.emoji{font-size:44px;line-height:1;display:block;margin-bottom:12px}h1{margin:0;font-size:34px;line-height:1.2;letter-spacing:-.02em}.sub{color:var(--muted);font-size:14.5px;margin-top:10px}.bar{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);padding:12px 0 6px;margin-top:14px}.search{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:15px;outline:none}.search:focus{border-color:#d3d3d1;box-shadow:0 0 0 3px rgba(26,115,199,.08)}.ctrls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:8px 2px;font-size:13px;color:var(--muted)}.ctrls label{display:flex;align-items:center;gap:6px}.txtbtn{font:inherit;font-size:13px;color:var(--muted);background:none;border:0;padding:0}.txtbtn:hover{color:var(--text);text-decoration:underline}.txtbtn.danger:hover{color:#b33a3a}.prog{margin-inline-start:auto;color:var(--faint);font-variant-numeric:tabular-nums}.sync{margin:0 2px 8px;font-size:13px}.sync>summary{cursor:pointer;color:var(--muted)}.syncbody{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.syncbody .txtbtn{color:var(--blue);background:var(--blue-bg);border:1px solid transparent;border-radius:6px;padding:4px 10px}.syncbody .txtbtn:hover{background:#dbe9fa;text-decoration:none}.syncstat{color:var(--faint);min-width:110px}.toc{display:flex;flex-wrap:wrap;gap:3px 14px;margin:2px 2px 8px;font-size:13px}.toc a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}.toc a:hover{color:var(--text);border-bottom-color:var(--line)}details.topic{border-top:1px solid var(--line)}details.topic:last-of-type{border-bottom:1px solid var(--line)}details.topic>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px;padding:13px 4px;font-size:17px;font-weight:600;user-select:none}details.topic>summary::-webkit-details-marker{display:none}.caret{color:var(--faint);font-size:11px;transition:transform .15s}details[open] .caret{transform:rotate(90deg)}.count{margin-inline-start:auto;font-size:13px;color:var(--faint);font-weight:400}.cards{padding:0 2px 14px;display:flex;flex-direction:column}.card{padding:11px 10px;border-radius:8px}.card:hover{background:var(--hover)}.card+.card{border-top:1px solid var(--line)}.crow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:6px}.badge,.qn{font-size:12.5px;padding:2px 8px;border-radius:5px;white-space:nowrap}.badge{font-weight:500;color:var(--muted);background:var(--tag)}.qn{font-weight:600;color:var(--blue);background:var(--blue-bg)}.wipbtn,.donebtn{font:inherit;flex:none;font-size:12px;font-weight:600;color:var(--muted);background:none;border:1px solid var(--line);border-radius:999px;padding:3px 11px}.wipbtn{margin-inline-start:auto}.wipbtn:hover,.donebtn:hover{background:var(--hover)}.det{font-size:15.5px;margin:0 1px 10px}.links{display:flex;flex-wrap:wrap;gap:6px}.lnk{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:500;padding:5px 11px;border-radius:6px;border:1px solid transparent;text-decoration:none}.exam{color:var(--blue);background:var(--blue-bg)}.exam:hover{background:#dbe9fa}.soll{color:var(--green);background:var(--green-bg)}.soll:hover{background:#d9ece7}.resource{color:var(--muted);background:var(--tag)}.card.wip{background:var(--amber-bg)}.card.wip .wipbtn{color:var(--amber);background:#ffe6a8;border-color:#efce84}.card.done .det{opacity:.4;text-decoration:line-through}.card.done .links,.card.done .badge,.card.done .qn{opacity:.5}.card.done .donebtn{color:#fff;background:var(--green);border-color:var(--green)}.empty{color:var(--muted);text-align:center;padding:50px 0}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:8px}.mback{position:absolute;inset:0;background:rgba(15,15,15,.5);backdrop-filter:blur(3px)}.mbox{position:relative;width:98vw;height:96vh;background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35)}.mbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:#fbfbfa}.mtitle{font-size:14px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mact{font:inherit;font-size:13px;font-weight:600;padding:6px 11px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text);text-decoration:none}.mact:hover{background:var(--hover)}.mclose{border-color:transparent;font-size:16px}.mframe{flex:1;width:100%;border:0;background:#525659}@media(max-width:560px){h1{font-size:28px}.page{padding:8px 16px 90px}.prog{width:100%;margin:0}.modal{padding:0}.mbox{width:100vw;height:100vh;border-radius:0}.mbar{flex-wrap:wrap}.mtitle{flex-basis:calc(100% - 45px)}}
/* Linear Algebra 2 document viewer: PDF.js scrolls every page and split view reflows on tablets. */
.modal{z-index:100!important;display:flex!important;align-items:center;justify-content:center}.mpanes{flex:1;display:flex;min-height:0;background:#525659}.mframe{height:100%!important}.mframe2{border-inline-start:2px solid #333}.mframe2[hidden]{display:none}.msel{font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-family:inherit;max-width:160px}.msel:disabled{opacity:.38;cursor:default}.mact.on{background:var(--blue-bg);border-color:#bcd8f5;color:var(--blue)}.mact:disabled{opacity:.38;cursor:default}
@media(max-width:760px){.mpanes.split{flex-direction:column}.mframe2{border-inline-start:0;border-top:2px solid #333}}
@media(max-width:560px){.msel{max-width:120px}}
.modal[hidden]{display:none!important}
.modes{display:flex;flex-wrap:wrap;width:max-content;max-width:100%;gap:3px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--hover);margin:14px 0 6px}.modebtn{font:inherit;border:0;border-radius:6px;padding:7px 12px;background:transparent;color:var(--muted);font-size:13px;font-weight:650}.modebtn.active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(20,24,28,.1)}.toc{display:flex;flex-wrap:wrap;gap:3px 14px;margin:2px 2px 8px;font-size:13px}.toc a{font-size:13px;color:var(--muted);border-bottom:1px solid transparent;padding:0 0 1px;text-decoration:none}.toc a:hover{color:var(--text);border-bottom-color:var(--line)}.topic-note{margin:2px 2px 10px;color:var(--muted);font-size:13px}.modal{z-index:30!important}.mbox{height:96dvh}.mact{white-space:nowrap}.mframe{display:block}
