*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1115;--card:#1a1d24;--card2:#22262f;--line:#2c313c;--text:#e8eaf0;--dim:#9aa3b2;--accent:#5b8cff;--green:#34c77b;--amber:#f5b942;--red:#ef6a6a}body,html{background:var(--bg);color:var(--text)}body{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,sans-serif}a{color:inherit;text-decoration:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(15,17,21,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.tabs{display:flex;gap:4px;padding:10px 12px;max-width:1100px;margin:0 auto}.tabs a{padding:8px 14px;border-radius:10px;font-size:15px;font-weight:600;color:var(--dim)}.tabs a:active,.tabs a:hover{background:var(--card2);color:var(--text)}.main{max-width:1100px;margin:0 auto;padding:14px 12px 80px}h1{font-size:22px;margin:8px 2px 14px}h2{font-size:17px;margin:14px 2px 8px}.sub{color:var(--dim);font-size:13px}.grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}@media (min-width:700px){.grid{grid-template-columns:1fr 1fr}}@media (min-width:1000px){.grid{grid-template-columns:1fr 1fr 1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;display:block}.card:active{background:var(--card2)}.card .title{font-size:15px;font-weight:700;line-height:1.35}.card .easy{color:var(--dim);font-size:13px;margin-top:6px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .meta{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--dim)}.bar{flex:1 1;height:6px;background:var(--card2);overflow:hidden}.bar,.bar>div{border-radius:3px}.bar>div{height:100%;background:var(--green)}.course-layout{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px}@media (min-width:900px){.course-layout{grid-template-columns:5fr 7fr;align-items:start}}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}details.onepager summary{cursor:pointer;font-weight:700;font-size:15px;padding:2px 0}details.onepager p{margin-top:10px;font-size:14px;line-height:1.7;color:var(--text);white-space:pre-wrap}.modlist{display:flex;flex-direction:column;gap:8px;margin-top:10px}.mod{background:var(--card2);border-radius:10px;padding:10px 12px}.mod .mt{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.mod .name{font-size:14px;font-weight:600;line-height:1.4}.mod .desc{color:var(--dim);font-size:12.5px;margin-top:4px;line-height:1.5}.stbtn{flex-shrink:0;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}.stbtn.learning{color:var(--amber);border-color:var(--amber)}.stbtn.done{color:var(--green);border-color:var(--green)}.chatbox,.msgs{display:flex;flex-direction:column;gap:10px}.msgs{min-height:120px}.msg{border-radius:12px;padding:11px 13px;font-size:14px;line-height:1.65;white-space:pre-wrap;word-break:break-word}.msg.user{background:var(--accent);color:#fff;align-self:flex-end;max-width:85%}.msg.bot{background:var(--card2);align-self:flex-start;max-width:100%}.msg.bot.thinking{color:var(--dim);font-style:italic}.srcs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.srcchip{font-size:11.5px;background:var(--bg);border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:3px 9px;cursor:pointer}.srcchip:active{color:var(--text);border-color:var(--accent)}.srcdetail{margin-top:8px;font-size:12.5px;background:var(--bg);border:1px solid var(--accent);border-radius:10px;padding:9px 11px;line-height:1.6}.srcdetail b{color:var(--accent)}.inputrow{display:flex;gap:8px;position:-webkit-sticky;position:sticky;bottom:10px}.inputrow input{flex:1 1;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 14px;font-size:15px;outline:none}.inputrow input:focus{border-color:var(--accent)}.inputrow button{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:0 18px;font-size:15px;font-weight:700;cursor:pointer}.inputrow button:disabled{opacity:.5}.modes{display:flex;gap:6px}.modes button{background:var(--card);border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;cursor:pointer}.modes button.on{background:var(--accent);border-color:var(--accent);color:#fff}.searchrow{display:flex;gap:8px;margin-bottom:12px}.searchrow input{flex:1 1;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:11px 14px;font-size:15px;outline:none}.conlist{display:flex;flex-direction:column;gap:8px}.con{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}.con .cn{font-weight:700;font-size:14.5px;display:flex;justify-content:space-between;gap:8px}.con .cd{color:var(--dim);font-size:12.5px;margin-top:4px;line-height:1.5}.con .cc{margin-top:6px;display:flex;flex-wrap:wrap;gap:5px}.tag{font-size:11px;background:var(--card2);border-radius:999px;padding:2px 8px}.mention,.tag{color:var(--dim)}.mention{font-size:12.5px;padding:7px 0 0 2px;line-height:1.55;border-top:1px dashed var(--line);margin-top:8px}.mention b{color:var(--text);font-weight:600}.ts{color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login{max-width:360px;margin:18vh auto 0;display:flex;flex-direction:column;gap:12px}.login input{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:13px 15px;font-size:16px;outline:none}.login button{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:13px;font-size:15px;font-weight:700}.err{color:var(--red);font-size:13px}.backlink{display:inline-block;color:var(--dim);font-size:13px;margin-bottom:8px}.modlink{display:block}.golink,.modlink:active{color:var(--accent)}.golink{font-weight:700}.guide{font-size:14px;line-height:1.75;white-space:pre-wrap;word-break:break-word}.doclist{display:flex;flex-direction:column;gap:8px}.doc{background:var(--card2);border-radius:10px;overflow:hidden}.dochead{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:transparent;border:0;color:var(--text);padding:11px 12px;font-size:13.5px;font-weight:600;cursor:pointer;text-align:left}.dochead .dt{line-height:1.4}.transcript{border-top:1px solid var(--line);padding:10px 12px;max-height:60vh;overflow-y:auto}.seg{padding:7px 0;border-bottom:1px dashed var(--line)}.seg:last-child{border-bottom:0}.seg .ts{font-size:11.5px;margin-bottom:3px}.segtext{font-size:13.5px;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word}