:root{--ink:#1a1c1e;--paper:#f7f5f0;--accent:#0d5c46;--accent-2:#e0532f;--line:#d8d3c8;--muted:#6b6f66;--card:#fff;--ok:#0d5c46;--warn:#c98a10;--bad:#b0483a;--violet:#5b5f9e;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--serif:"Fraunces",Georgia,serif;--sans:"Public Sans",ui-sans-serif,system-ui,sans-serif}:root[data-theme=dark]{--ink:#e7e9ec;--paper:#16181c;--card:#1e2126;--line:#333840;--muted:#9aa0a8;--accent:#3fae86;--accent-2:#e0714f;--violet:#8b8fe0;--ok:#3fae86;--warn:#d6a24a;--bad:#e0714f}:root[data-theme=dark] body{background:var(--paper)}:root[data-theme=dark] .topbar{background:#0f1114;color:#ece7db}:root[data-theme=dark] .ednav,:root[data-theme=dark] .gradeans,:root[data-theme=dark] .inbox .convos,:root[data-theme=dark] .side,:root[data-theme=dark] .terms .k,:root[data-theme=dark] th{background:#23262c}:root[data-theme=dark] .askrow input,:root[data-theme=dark] .blk input.f,:root[data-theme=dark] .blk textarea,:root[data-theme=dark] .chip,:root[data-theme=dark] .classcard,:root[data-theme=dark] .genrow input,:root[data-theme=dark] .goalin,:root[data-theme=dark] .lhead input,:root[data-theme=dark] .opt,:root[data-theme=dark] .qcard,:root[data-theme=dark] .stdinrow input,:root[data-theme=dark] input.f,:root[data-theme=dark] select.f,:root[data-theme=dark] textarea.f{background:#23262c;color:var(--ink)}:root[data-theme=dark] .goalbox{background:#1c2a24}:root[data-theme=dark] .callout.mistake{background:#2a1f1c}:root[data-theme=dark] .callout.tip{background:#16261f}:root[data-theme=dark] .callout.note{background:#1e2030}:root[data-theme=dark] .msg.a{background:#22302b}:root[data-theme=dark] .objectives{background:#1e2030}:root[data-theme=dark] .mono,:root[data-theme=dark] code{background:#2b2f36;color:#cdd3da}:root[data-theme=dark] .lrow.on,:root[data-theme=dark] .topic.on{background:#2b2f36}:root[data-theme=dark] .btn.ghost{color:var(--ink)}:root[data-theme=dark] .cellpill.n,:root[data-theme=dark] .statuschip.draft{background:#2b2f36}:root[data-theme=dark] .quoteline{background:#3a3320;color:var(--ink)}:root[data-theme=dark] .check,:root[data-theme=dark] .classcard,:root[data-theme=dark] .diff .box,:root[data-theme=dark] .histpanel,:root[data-theme=dark] .padai-msgs,:root[data-theme=dark] .terms,:root[data-theme=dark] .test,:root[data-theme=dark] .tryit{background:var(--card)}:root[data-theme=dark] .diff .box h5,:root[data-theme=dark] .kpi{background:#23262c}:root[data-theme=dark] .kpi .n{color:#e7e9ec}:root[data-theme=dark] .aigrade,:root[data-theme=dark] .notice,:root[data-theme=dark] .qcard.info{background:#1e2030}:root[data-theme=dark] .offline-note{background:#2a2410}:root[data-theme=dark] .confirmbar{background:#2a1f1c}:root[data-theme=dark] .opt.right,:root[data-theme=dark] .sebres.pass,:root[data-theme=dark] .test.pass{background:#16261f}:root[data-theme=dark] .opt.wrong,:root[data-theme=dark] .sebres.fail,:root[data-theme=dark] .test.fail{background:#2a1f1c}:root[data-theme=dark] .cellpill.m{background:#16261f}:root[data-theme=dark] .cellpill.p{background:#2a2410}:root[data-theme=dark] .opt.sel{background:#2b2f36}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.5;font-size:15px}.avatar-sm{width:24px;height:24px;border-radius:99px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;overflow:hidden;flex-shrink:0}.avatar-sm img{width:100%;height:100%;object-fit:cover}.avatar-lg{width:96px;height:96px;border-radius:99px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:38px;overflow:hidden;border:2px solid var(--line)}.avatar-lg img{width:100%;height:100%;object-fit:cover}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.topbar{background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:14px;padding:12px 22px;flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;z-index:30}.topbar .logo{font-family:var(--serif);font-weight:900;font-size:18px}.topbar .logo em{color:#7fd6b8;font-style:normal}.topbar .proto{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:#b9bcb2;border:1px solid #4a4d47;border-radius:99px;padding:3px 10px}.topbar .spacer{flex:1 1}.viewswitch{display:flex;border:1px solid #4a4d47;border-radius:9px;overflow:hidden}.viewswitch a,.viewswitch button{background:transparent;color:#b9bcb2;border:none;padding:8px 15px;font-size:13px;font-weight:600}.viewswitch a.on,.viewswitch button.on{background:var(--paper);color:var(--ink)}.modelbox{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:#b9bcb2}.modelbox select{background:#2a2d2b;color:#e9e4d8;border:1px solid #4a4d47;border-radius:8px;padding:7px 10px;font-family:var(--mono);font-size:12px;cursor:pointer;max-width:220px}.costbadge{font-family:var(--mono);font-size:11px;color:#7fd6b8;border:1px solid #2f5c4c;border-radius:99px;padding:5px 12px;background:#22302b}.tbtn{background:#2a2d2b;color:#e9e4d8;border:1px solid #4a4d47;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600}.tbtn:hover{background:#33372f}.savebadge{font-family:var(--mono);font-size:11px;color:#7fd6b8}.shell{display:flex;min-height:calc(100vh - 57px)}.side{width:280px;border-right:1.5px solid var(--line);padding:22px 16px;background:#f1eee6;flex-shrink:0;position:-webkit-sticky;position:sticky;top:57px;height:calc(100vh - 57px);overflow-y:auto}.side h3{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:4px 8px 12px}.topic{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1.5px solid transparent;border-radius:10px;padding:11px 12px;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:4px}.topic:hover{background:#e9e5da}.topic.on{background:var(--card);border-color:var(--ink);box-shadow:3px 3px 0 rgba(26,28,30,.1)}.topic .mini{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--muted)}.dot{width:10px;height:10px;border-radius:99px;flex-shrink:0}.dot.m{background:var(--ok)}.dot.p{background:var(--warn)}.dot.n{background:#c7c2b6}.legend{margin-top:14px;padding:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em}.legend div{display:flex;align-items:center;gap:8px;margin-top:6px}.main{flex:1 1;padding:28px 34px;max-width:940px}.crumb{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.08em;margin-bottom:8px}h1.title{font-family:var(--serif);font-weight:900;font-size:34px;letter-spacing:-.01em;margin-bottom:4px}.status-pill{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:4px 12px;border-radius:99px;font-weight:600;margin:0 8px 10px 0}.status-pill.m{background:var(--ok);color:#fff}.status-pill.p{background:var(--warn);color:#fff}.status-pill.n{background:#c7c2b6;color:var(--ink)}.ready{margin:6px 0 22px;max-width:560px}.ready .barwrap{height:12px;background:#e9e5da;border:1.5px solid var(--ink);border-radius:99px;overflow:hidden}.ready .bar{height:100%;background:linear-gradient(90deg,var(--warn),var(--accent));transition:width .5s}.ready .lbl{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:5px;line-height:1.5}.panel{background:var(--card);border:1.5px solid var(--ink);border-radius:14px;padding:24px 26px;margin-bottom:22px;box-shadow:4px 4px 0 rgba(26,28,30,.08)}.panel h2{font-family:var(--serif);font-size:20px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.panel h2 .tag{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;background:var(--accent);color:#fff;padding:3px 9px;border-radius:99px;font-weight:600}.panel h2 .tag.o{background:var(--accent-2)}.panel h2 .tag.k{background:var(--ink)}.panel h2 .tag.ai{background:var(--violet)}.panel h2 .tag.run{background:#2a6f97}.panel p{margin-bottom:10px}.panel ul{margin:0 0 10px 22px}.mono,code{font-family:var(--mono);font-size:13px;background:#eee9de;padding:1px 6px;border-radius:5px}.lesson h2{font-family:var(--serif);font-weight:700;font-size:21px;margin:26px 0 10px;padding-bottom:5px;border-bottom:2px solid var(--line);display:block}.lesson p{margin-bottom:13px;font-size:15.5px}.goalbox{font-size:15.5px;margin-bottom:20px;padding:12px 16px;background:#e7f2ec;border-left:4px solid var(--accent);border-radius:0 8px 8px 0}.codeblock{margin:14px 0;border-radius:10px;overflow:hidden;border:1.5px solid #2a2d25}.codeblock pre{font-family:var(--mono);font-size:13.5px;background:#1e211f;color:#dfe6db;padding:14px 16px;overflow-x:auto;line-height:1.55;margin:0}.codeblock .out{background:#0f120d;color:#b7d3ad;font-family:var(--mono);font-size:12.5px;padding:9px 16px;border-top:1px dashed #2a2d25;white-space:pre-wrap}.codeblock .out .lbl{color:#6b7268;margin-right:10px;font-size:9.5px;letter-spacing:.1em}.callout{border-radius:10px;padding:14px 18px;margin:16px 0;border-left:4px solid}.callout .ch{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:6px}.callout p{margin:0}.callout.mistake{background:#f9ebe7;border-color:var(--accent-2)}.callout.mistake .ch{color:var(--accent-2)}.callout.tip{background:#e7f2ec;border-color:var(--accent)}.callout.tip .ch{color:var(--accent)}.callout.note{background:#eef0f7;border-color:var(--violet)}.callout.note .ch{color:var(--violet)}.terms{border:1.5px solid var(--line);border-radius:10px;overflow:hidden;margin:16px 0;background:#fff}.terms .row{display:grid;grid-template-columns:170px 1fr;border-top:1px solid var(--line)}.terms .row:first-child{border-top:none}.terms .k{font-family:var(--mono);font-size:12.5px;padding:9px 14px;background:#f1eee6;color:var(--accent);font-weight:600}.terms .v{padding:9px 14px;font-size:14px}.check{border:1.5px dashed var(--line);border-radius:10px;padding:6px 16px;margin:16px 0;background:#fdfcf9}.check details{padding:9px 0;border-top:1px dashed var(--line)}.check details:first-child{border-top:none}.check summary{cursor:pointer;font-weight:600;font-size:14px}.check .ans{color:var(--muted);font-size:14px;margin-top:6px;padding-left:16px}.tryit{border:1.5px solid var(--ink);border-radius:10px;padding:14px 18px;margin:18px 0;background:#fff}.tryit .ch{font-family:var(--mono);font-size:11px;color:var(--accent-2);margin-bottom:6px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.tryit .meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:8px}.btn{border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:9px;padding:10px 18px;font-size:13.5px;font-weight:700}.btn:hover{background:#33362f}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:#eee9de}.btn.green{background:var(--accent);border-color:var(--accent)}.btn.orange{background:var(--accent-2);border-color:var(--accent-2)}.btn.purple{background:var(--violet);border-color:var(--violet)}.btn.blue{background:#2a6f97;border-color:#2a6f97}.btn:disabled{opacity:.45;cursor:not-allowed}.qitem{margin-bottom:18px;padding-bottom:16px;border-bottom:1px dashed var(--line)}.qitem:last-of-type{border-bottom:none}.qitem .qh{font-weight:700;margin-bottom:9px}.qitem .qh .n{font-family:var(--mono);font-size:11px;color:var(--accent-2);margin-right:8px}.opt{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;border:1.5px solid var(--line);border-radius:10px;padding:10px 13px;margin-bottom:7px;cursor:pointer;background:#fdfcf9;font-size:14px}.opt.sel,.opt:hover{border-color:var(--ink)}.opt.sel{background:#f1eee6;box-shadow:2px 2px 0 rgba(26,28,30,.12)}.opt.right{border-color:var(--ok);background:#e7f2ec}.opt.wrong{border-color:var(--bad);background:#f7e9e6}.opt .letter{font-family:var(--mono);font-weight:600;font-size:12px;background:var(--ink);color:#fff;border-radius:6px;padding:2px 7px;flex-shrink:0}.why{font-size:13px;margin:4px 0 0;padding:8px 12px;border-radius:8px;background:#f1eee6;border-left:3px solid var(--accent)}.quizfoot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}.score{font-family:var(--mono);font-weight:600;font-size:13px}.score.ok{color:var(--ok)}.score.bad{color:var(--bad)}.cm-wrap{border-radius:10px;overflow:hidden;border:1.5px solid #2a2d25}.cm-wrap .cm-editor{font-family:var(--mono);font-size:13px}.runrow{display:flex;gap:10px;margin-top:12px;align-items:center;flex-wrap:wrap}.runnote{font-family:var(--mono);font-size:10.5px;color:var(--muted)}.console{margin-top:12px;background:#12140f;border:1.5px solid #2a2d25;border-radius:10px;overflow:hidden}.console .chead{background:#1e211f;color:#8b9186;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;padding:7px 14px;display:flex;justify-content:space-between;border-bottom:1px solid #2a2d25}.console .cbody{font-family:var(--mono);font-size:13px;color:#cfe3c9;padding:14px 16px;white-space:pre-wrap;min-height:44px;line-height:1.5}.console .cbody.err{color:#f0a08f}.console .cbody .mutedtx{color:#6b7268}.stdinrow{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}.stdinrow input{border:1.5px solid var(--ink);border-radius:8px;padding:8px 12px;font-family:var(--mono);font-size:12.5px;background:#fdfcf9;min-width:240px}.stdinrow label{font-family:var(--mono);font-size:10.5px;color:var(--muted)}.modeseg{display:inline-flex;border:1.5px solid var(--ink);border-radius:9px;overflow:hidden;margin-bottom:6px}.modeseg button{background:#fdfcf9;border:none;padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--muted)}.modeseg button.on{background:var(--ink);color:var(--paper)}.modehint{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin:4px 0 12px}.tests{margin-top:14px}.test{display:flex;gap:10px;align-items:flex-start;font-family:var(--mono);font-size:12.5px;padding:10px 12px;border-radius:8px;margin-bottom:6px;border:1px solid var(--line);background:#fdfcf9}.test.pass{border-color:var(--ok);background:#e7f2ec}.test.fail{border-color:var(--bad);background:#f7e9e6}.test .mark{font-weight:700;flex-shrink:0}.diff{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:8px}.diff .box{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.diff .box h5{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 10px;background:#f1eee6;border-bottom:1px solid var(--line)}.diff .box pre{font-family:var(--mono);font-size:12px;padding:9px 11px;white-space:pre-wrap;line-height:1.45}.aigrade{margin-top:12px;padding:14px 16px;border-radius:10px;border-left:3px solid var(--violet);background:#eef0f7;font-size:13.5px}.aigrade .verdict{font-weight:700;font-family:var(--mono);font-size:11px;letter-spacing:.08em;margin-bottom:6px;display:block}.aigrade .verdict.ok{color:var(--ok)}.aigrade .verdict.bad{color:var(--bad)}.aigrade .m{display:block;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}.genrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.genrow input{flex:1 1;min-width:220px;border:1.5px solid var(--ink);border-radius:9px;padding:10px 14px;font-family:inherit;font-size:14px;background:#fdfcf9}.genhint{font-family:var(--mono);font-size:10.5px;color:var(--muted);line-height:1.6}.offline-note{margin:10px 0;padding:12px 16px;border-radius:10px;border-left:4px solid var(--warn);background:#fbf3e2;font-size:13.5px}.tutor .quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip{border:1.5px solid var(--ink);background:#fdfcf9;border-radius:99px;padding:7px 14px;font-size:12.5px;font-weight:600}.chip:hover{background:var(--ink);color:#fff}.askrow{display:flex;gap:8px}.askrow input{flex:1 1;border:1.5px solid var(--ink);border-radius:9px;padding:10px 14px;font-family:inherit;font-size:14px;background:#fdfcf9}.msgs{max-height:360px;overflow-y:auto;margin-bottom:14px;display:flex;flex-direction:column;gap:10px}.msg{border-radius:12px;padding:12px 15px;font-size:14px;max-width:92%;white-space:pre-wrap}.msg.u{background:var(--ink);color:var(--paper);align-self:flex-end}.msg.a{background:#e7f2ec;border:1px solid var(--ok);align-self:flex-start}.msg.a .who{letter-spacing:.1em;color:var(--accent);margin-bottom:5px;font-weight:600}.msg.a .meta,.msg.a .who{font-family:var(--mono);font-size:10px;display:block}.msg.a .meta{margin-top:8px;color:var(--muted)}.msg.think{color:var(--muted);font-style:italic;background:#f1eee6;border:1px dashed var(--line)}.scopenote{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:10px;line-height:1.6}.dash{flex:1 1;padding:28px 34px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-bottom:22px}.kpi{background:var(--ink);color:var(--paper);border-radius:12px;padding:18px 20px}.kpi .n{font-family:var(--serif);font-size:30px;font-weight:900;color:#e9e4d8}.kpi .n em{color:#7fd6b8;font-style:normal}.kpi p{font-size:12.5px;color:#b9bcb2;margin-top:2px}.dashgrid{background:var(--card);border:1.5px solid var(--ink);border-radius:14px;overflow:auto;box-shadow:4px 4px 0 rgba(26,28,30,.08)}table{width:100%;border-collapse:collapse;font-size:14px}th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:13px 16px;background:#f1eee6;border-bottom:1.5px solid var(--ink);color:var(--muted)}td{padding:12px 16px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:none}td.name{font-weight:700}.cellpill{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;padding:4px 11px;border-radius:99px;font-weight:600;white-space:nowrap}.cellpill.m{background:#e7f2ec;color:var(--ok);border:1px solid var(--ok)}.cellpill.p{background:#fbf3e2;color:#9a6c0d;border:1px solid var(--warn)}.cellpill.n{background:#f1eee6;color:var(--muted);border:1px solid var(--line)}.flag{font-size:11px;font-weight:700;color:#fff;background:var(--bad);border-radius:6px;padding:2px 8px;margin-left:8px;font-family:var(--mono)}.flag.coast{background:var(--violet)}.dashnote{margin-top:16px;font-size:13px;color:var(--muted);max-width:75ch}.overlay{position:fixed;inset:0;background:rgba(26,28,30,.72);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.sebwin{background:var(--paper);border-radius:16px;max-width:680px;width:100%;max-height:92vh;overflow-y:auto;border:2px solid var(--ink)}.sebbar{background:var(--bad);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.12em;padding:10px 18px;display:flex;justify-content:space-between;border-radius:13px 13px 0 0;flex-wrap:wrap;gap:6px}.sebbody{padding:26px 28px}.sebbody h2{font-family:var(--serif);font-size:24px;font-weight:900;margin-bottom:6px}.sebbody .sub{font-size:13px;color:var(--muted);margin-bottom:18px}.sebres{margin-top:14px;padding:16px 18px;border-radius:10px;font-weight:600}.sebres.pass{background:#e7f2ec;border:1.5px solid var(--ok);color:var(--ok)}.sebres.fail{background:#f7e9e6;border:1.5px solid var(--bad);color:var(--bad)}.ednav{width:262px;flex-shrink:0;border-right:1.5px solid var(--line);background:#f1eee6;min-height:calc(100vh - 57px);overflow-y:auto;padding:16px 12px}.chap{margin-bottom:14px}.chaphead{display:flex;align-items:center;gap:6px;padding:0 6px 6px}.chaphead input{flex:1 1;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:transparent;border:none;font-weight:700}.chaphead input:focus{outline:1px solid var(--accent);border-radius:4px;background:#fff}.lrow{display:flex;gap:8px;align-items:center;width:100%;text-align:left;background:transparent;border:1.5px solid transparent;border-radius:8px;padding:8px 9px;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer}.lrow:hover{background:#e9e5da}.lrow.on{background:var(--card);border-color:var(--ink);box-shadow:2px 2px 0 rgba(26,28,30,.1);font-weight:700}.lrow .num{font-family:var(--mono);font-size:10.5px;color:var(--accent);font-weight:600}.addbtn{width:100%;text-align:left;background:transparent;border:1px dashed var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;color:var(--muted);margin-top:3px}.addbtn:hover{border-color:var(--accent);color:var(--accent)}.edmain{flex:1 1;max-width:860px;margin:0 auto;padding:26px 34px 120px}.edbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.edbar .seg{display:flex;border:1.5px solid var(--ink);border-radius:9px;overflow:hidden}.edbar .seg button{background:#fdfcf9;border:none;padding:8px 15px;font-size:13px;font-weight:600;color:var(--muted)}.edbar .seg button.on{background:var(--ink);color:var(--paper)}.edbar .save{font-family:var(--mono);font-size:11px;color:var(--accent)}.lhead{display:flex;gap:10px;margin-bottom:8px}.lhead input{border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font-family:inherit;background:#fff}.lhead .lcode{width:76px;font-family:var(--mono);font-size:13px}.lhead .ltitle{flex:1 1;font-family:var(--serif);font-weight:700;font-size:20px}.goalin{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font-family:inherit;font-size:14px;margin-bottom:18px}.blk,.goalin{background:#fff}.blk{border:1.5px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.blk.dragover{border-color:var(--accent);box-shadow:0 -3px 0 var(--accent)}.blk.dragging{opacity:.4}.blk .bh{display:flex;align-items:center;gap:8px;background:#f1eee6;padding:6px 10px;border-bottom:1px solid var(--line)}.blk .bh .grip{cursor:-webkit-grab;cursor:grab;color:var(--muted);font-size:14px;padding:0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.blk .bh .grip:active{cursor:-webkit-grabbing;cursor:grabbing}.blk .bh .kind{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted)}.blk .bh .sp{flex:1 1}.blk .bh button{background:#fff;border:1px solid var(--line);border-radius:6px;width:26px;height:24px;font-size:12px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.blk .bh button:hover{border-color:var(--ink);color:var(--ink)}.blk .bh button.del:hover{border-color:var(--accent-2);color:var(--accent-2)}.blk .bb{padding:12px 14px}.blk input.f,.blk textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px;background:#fdfcf9;resize:vertical}.blk textarea.monoarea{font-family:var(--mono);font-size:13px;background:#1e211f;color:#dfe6db;border:none;min-height:90px;line-height:1.55}.blk .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:8px 0 4px}.blk .lbl:first-child{margin-top:0}.blk select{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-family:inherit;font-size:13px;background:#fff}.itemrow{display:flex;gap:6px;margin-bottom:6px}.itemrow input{flex:1 1}.itemrow input:first-child{flex:0 0 180px;font-family:var(--mono);font-size:12.5px}.itemrow button{background:#fff;border:1px solid var(--line);border-radius:6px;width:28px;color:var(--muted)}.itemrow button:hover{border-color:var(--accent-2);color:var(--accent-2)}.addbar{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0;padding:14px;border:1.5px dashed var(--accent);border-radius:12px;background:#fbfdfb}.addbar .lbl{width:100%;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}.addbar button{border:1.5px solid var(--ink);background:#fff;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600}.addbar button:hover{background:var(--ink);color:var(--paper)}.pv h1{font-family:var(--serif);font-weight:900;font-size:30px;margin-bottom:8px;line-height:1.1}.dockrail{position:fixed;right:0;top:38%;display:flex;flex-direction:column;gap:8px;z-index:40}.dockrail button{writing-mode:vertical-rl;background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);border-right:none;border-radius:10px 0 0 10px;padding:16px 9px;font-size:12.5px;font-weight:700;letter-spacing:.04em;box-shadow:-3px 3px 0 rgba(26,28,30,.15)}.dockrail button.on,.dockrail button:hover{background:var(--accent);border-color:var(--accent)}.toolwin{background:var(--paper);border:1.5px solid var(--ink);display:flex;flex-direction:column;box-shadow:4px 6px 0 rgba(26,28,30,.14);overflow:hidden}.toolwin.floating{border-radius:14px}.toolwin.docked{border-radius:0;border-right:none;box-shadow:-8px 0 28px rgba(26,28,30,.16)}.toolbar{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;background:var(--ink);color:var(--paper);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.toolbar:active{cursor:-webkit-grabbing;cursor:grabbing}.toolbar .ttitle{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;font-weight:700}.toolbar .tctl{background:transparent;color:#b9bcb2;border:1px solid #4a4d47;border-radius:6px;width:26px;height:24px;font-size:12px}.toolbar .tctl:hover{background:#33372f;color:#fff}.toolbody{flex:1 1;overflow-y:auto;padding:16px;min-height:0}.resizer{position:absolute}.resizer.corner{right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--muted) 50%,var(--muted) 60%,transparent 60%)}.resizer.left{left:0;top:0;bottom:0;width:7px;cursor:ew-resize}.resizer.left:hover{background:var(--accent)}.askpop2{position:fixed;transform:translateX(-50%);z-index:60;background:var(--paper);border:1.5px solid var(--ink);border-radius:12px;padding:10px;width:340px;box-shadow:4px 6px 0 rgba(26,28,30,.16);display:flex;flex-direction:column;gap:7px}.askpop2 .quoteprev{font-size:12px;color:var(--muted);font-style:italic;border-left:3px solid var(--violet);padding-left:8px}.askpop2 input{border:1.5px solid var(--line);border-radius:8px;padding:8px 11px;font-family:inherit;font-size:13.5px;background:#fdfcf9}.sentnote{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:60;background:var(--accent);color:#fff;border-radius:10px;padding:10px 18px;font-size:13.5px;font-weight:600;box-shadow:0 6px 18px rgba(26,28,30,.3)}.padgrid{flex:1 1;gap:10px;flex-wrap:wrap}.padcode,.padgrid{display:flex;min-height:200px}.padcode{flex:1 1 320px;min-width:280px}.padcode .cm-wrap{flex:1 1;display:flex;flex-direction:column}.padcode .cm-wrap>div{flex:1 1}.padgrid .console{flex:1 1 240px;min-width:220px;min-height:160px}.padai{border-top:1.5px dashed var(--line);padding-top:10px}.padai-msgs{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.qcard{border:1.5px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px;background:#fff}.qcard.info{background:#eef0f7;border-left:4px solid var(--violet)}.qedit{display:flex;flex-direction:column;gap:6px}.qedit-head{display:flex;gap:8px;align-items:flex-start}.qedit-head .pts{font-family:var(--mono);font-size:10px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px}.qedit-head .pts input{width:52px;text-align:center}.qbuild.dragging{opacity:.4}.qbuild.dragover{box-shadow:0 -4px 0 var(--accent),4px 4px 0 rgba(26,28,30,.08)}.qbuild-head{display:flex;align-items:center;gap:6px;margin-bottom:10px}.qbuild-head .qtype{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--violet)}.testsettings{display:grid;grid-template-columns:1fr 130px 1fr;grid-gap:12px;gap:12px;margin-bottom:8px}.gradeans{background:#f1eee6;border-radius:8px;padding:8px 12px;margin:6px 0;font-size:14px}.graderow{display:flex;align-items:center;gap:8px;margin-top:8px}.graderow input[type=number]{width:60px;padding:6px;border:1.5px solid var(--ink);border-radius:7px;text-align:center}.examwrap{min-height:calc(100vh - 57px);background:var(--paper)}.exambody{max-width:760px;margin:0 auto;padding:34px 24px 80px}.objectives{border:1.5px solid var(--line);border-left:4px solid var(--violet);border-radius:0 10px 10px 0;background:#eef0f7;padding:12px 18px;margin:0 0 18px}.objectives .ch{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;font-weight:700;color:var(--violet);margin-bottom:6px}.objectives ul{margin:0 0 0 20px;font-size:14.5px}.objectives li{margin:3px 0}.msgrow{position:relative}.msgrow .msgacts{display:none;position:absolute;top:4px;right:6px;gap:3px}.msgrow:hover .msgacts{display:inline-flex}.msgrow .msgacts button{border:none;background:rgba(255,255,255,.85);border-radius:5px;width:22px;height:20px;font-size:11px;cursor:pointer;color:var(--ink)}.lessonref{display:block;margin-top:6px;font-family:var(--mono);font-size:11px;color:var(--accent);text-decoration:underline}.msg.u .lessonref{color:#7fd6b8}.confirmbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fbeceb;border-top:1.5px solid var(--accent-2);font-size:13px}.quoteline{display:block;background:#fdf2b8;color:var(--ink);border-left:3px solid var(--warn);padding:5px 10px;margin:4px 0;border-radius:0 6px 6px 0;font-style:italic}.msg.u .quoteline{background:rgba(255,255,255,.9)}.msgline{display:flex;align-items:flex-end;gap:8px;max-width:92%}.msgline.mine{align-self:flex-end;flex-direction:row-reverse}.msgline.theirs{align-self:flex-start}.msgline .msg{max-width:100%}.lesson-highlight{background:#fde68a;color:var(--ink);border-radius:3px;padding:1px 2px;box-shadow:0 0 0 3px #fde68a;animation:hlpulse 1.4s ease 2}@keyframes hlpulse{0%,to{background:#fde68a}50%{background:#fbbf24}}.cropview{position:relative;margin:0 auto;overflow:hidden;border-radius:12px;background:#000;touch-action:none;cursor:-webkit-grab;cursor:grab}.cropview:active{cursor:-webkit-grabbing;cursor:grabbing}.cropring{position:absolute;inset:0;border-radius:999px;box-shadow:0 0 0 999px rgba(22,24,28,.55);pointer-events:none}.edblk{position:relative;border-radius:8px}.edblk:focus-within,.edblk:hover{outline:1.5px dashed #c9d6cf;outline-offset:6px}.edblk.dragging{opacity:.35}.edblk.dragover{box-shadow:0 -4px 0 var(--accent)}.blktools{position:absolute;top:-13px;right:6px;display:none;gap:4px;z-index:5;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:3px 5px;box-shadow:2px 2px 0 rgba(26,28,30,.1)}.edblk:focus-within .blktools,.edblk:hover .blktools{display:flex}.blktools button,.blktools select{border:1px solid var(--line);background:#fff;border-radius:5px;min-width:24px;height:22px;font-size:11px;color:var(--muted)}.blktools button:hover{border-color:var(--ink);color:var(--ink)}.blktools button.del:hover{border-color:var(--accent-2);color:var(--accent-2)}.blktools .grip{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}[contenteditable]{outline:none;border-radius:4px}[contenteditable]:focus{background:rgba(13,92,70,.045);box-shadow:0 0 0 2px rgba(13,92,70,.18)}[contenteditable]:empty:before{content:attr(data-ph);color:#b5b9ae}.insrow{display:flex;align-items:center;gap:8px;height:18px;margin:2px 0;opacity:0;transition:opacity .12s}.insrow.open,.insrow:hover{opacity:1}.insrow .line{flex:1 1;border-top:1.5px dashed var(--accent)}.insrow .plus{border:1.5px solid var(--accent);background:#fff;color:var(--accent);border-radius:99px;width:22px;height:22px;font-size:14px;line-height:1;font-weight:700}.insrow .plus:hover{background:var(--accent);color:#fff}.insmenu{display:flex;gap:5px;flex-wrap:wrap}.insmenu button{border:1.5px solid var(--ink);background:#fff;border-radius:7px;padding:4px 10px;font-size:11.5px;font-weight:600}.insmenu button:hover{background:var(--ink);color:var(--paper)}.fmtbar{position:fixed;z-index:60;display:flex;gap:3px;background:var(--ink);border-radius:8px;padding:4px 5px;box-shadow:0 4px 14px rgba(26,28,30,.3)}.fmtbar button{background:transparent;color:var(--paper);border:none;border-radius:5px;min-width:26px;height:24px;font-size:12.5px}.fmtbar button:hover{background:#33362f}.codeedit{width:100%;font-family:var(--mono);font-size:13.5px;background:#1e211f;color:#dfe6db;border:none;padding:14px 16px;line-height:1.55;resize:vertical;min-height:60px;display:block}.outedit{display:flex;align-items:baseline;gap:10px;background:#0f120d;border-top:1px dashed #2a2d25;padding:6px 16px}.outedit .lbl{color:#6b7268;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em}.outedit textarea{flex:1 1;background:transparent;border:none;color:#b7d3ad;font-family:var(--mono);font-size:12.5px;resize:vertical;min-height:20px;outline:none}.statuschip{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;padding:5px 12px;border-radius:99px;font-weight:700}.statuschip.draft{background:#fbf3e2;color:#9a6c0d;border:1.5px solid var(--warn)}.statuschip.live{background:#e7f2ec;color:var(--ok);border:1.5px solid var(--ok)}.histpanel{border:1.5px solid var(--ink);border-radius:12px;background:#fff;padding:14px 16px;margin-bottom:16px;box-shadow:3px 3px 0 rgba(26,28,30,.08)}.histpanel .vrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}.histpanel .vrow:last-child{border-bottom:none}.draftdot{width:7px;height:7px;border-radius:99px;background:var(--warn);flex-shrink:0;margin-left:auto}.edh2{font-family:var(--serif);font-weight:700;font-size:21px;margin:26px 0 10px;padding-bottom:5px;border-bottom:2px solid var(--line)}.navbadge{position:absolute;top:-6px;right:-6px;background:var(--accent-2);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.classcard{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:#fdfcf9}.cchead{display:flex;gap:10px;flex-wrap:wrap}.cchead,.tbtn2{align-items:center}.tbtn2{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:28px;height:28px;padding:0 8px;font-size:13px;color:var(--muted);display:inline-flex;justify-content:center;text-decoration:none}.tbtn2:hover{border-color:var(--ink);color:var(--ink)}.tbtn2.danger:hover{border-color:var(--accent-2);color:var(--accent-2)}.gbanner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;background:#eef0f7;border:1.5px solid var(--violet);border-radius:10px;font-size:14px}:root[data-theme=dark] .gbanner{background:#1e2030}.glink{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;background:#f1eee6;border-radius:8px;font-size:13px}:root[data-theme=dark] .glink{background:#23262c}.roster{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}.rstudent{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px}.inbox{display:grid;grid-template-columns:260px 1fr;grid-gap:0;gap:0;border:1.5px solid var(--ink);border-radius:14px;overflow:hidden;min-height:460px;box-shadow:4px 4px 0 rgba(26,28,30,.08);background:#fff}.inbox .convos{border-right:1.5px solid var(--line);background:#f1eee6;overflow-y:auto}.inbox .newmsg{padding:10px;border-bottom:1px solid var(--line)}.inbox .newmsg select{width:100%;padding:8px;border-radius:8px;border:1.5px solid var(--ink);background:#fff;font-family:inherit;font-size:13px}.inbox .convo{display:block;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--line);padding:10px 12px;cursor:pointer}.inbox .convo:hover{background:#e9e5da}.inbox .convo.on{background:#fff;box-shadow:inset 3px 0 0 var(--accent)}.inbox .crow{display:flex;align-items:center;gap:8px}.inbox .ubadge{margin-left:auto;background:var(--accent-2);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;padding:1px 6px;border-radius:99px}.inbox .cprev{color:var(--muted);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox .thread{display:flex;flex-direction:column}.inbox .empty{margin:auto;color:var(--muted)}.inbox .thead{padding:12px 16px;border-bottom:1.5px solid var(--line);font-family:var(--serif);font-weight:700;font-size:16px}.inbox .tmsgs{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;max-height:420px}.inbox .tmsgs .msg{max-width:78%}.classtile{display:block;border:1.5px solid var(--ink);border-radius:12px;padding:16px 18px;background:var(--card);box-shadow:3px 3px 0 rgba(26,28,30,.08);text-decoration:none;color:var(--ink)}.classtile:hover{box-shadow:5px 5px 0 rgba(26,28,30,.12);transform:translate(-1px,-1px)}.classtabs{display:flex;gap:4px;border-bottom:1.5px solid var(--line);flex-wrap:wrap}.classtabs a{padding:9px 16px;font-weight:600;font-size:14px;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1.5px}.classtabs a:hover{color:var(--ink)}.classtabs a.on{color:var(--accent);border-bottom-color:var(--accent)}.foldpanel{border:1.5px solid var(--line);border-radius:12px;margin-bottom:16px;background:var(--card);overflow:hidden}.foldhead{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;background:#f1eee6;border-bottom:1px solid var(--line)}.foldbtn{flex:1 1;text-align:left;background:transparent;border:none;padding:10px 12px;font-family:var(--serif);font-weight:700;font-size:16px;color:var(--ink);cursor:pointer}.foldcaret{display:inline-block;transition:transform .15s;color:var(--muted)}.foldcaret.open{transform:rotate(90deg)}.foldbody{padding:14px 16px}:root[data-theme=dark] .foldhead{background:#23262c}.promptbox{background:#1e211f;color:#dfe6db;font-family:var(--mono);font-size:11.5px;line-height:1.55;padding:14px 16px;border-radius:10px;max-height:320px;overflow:auto;white-space:pre-wrap;margin:10px 0}.authwrap{min-height:calc(100vh - 57px);display:flex;align-items:flex-start;justify-content:center;padding:60px 20px}.authcard{width:100%;max-width:420px}.authalt{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);font-size:13.5px;color:var(--muted)}.authalt a{color:var(--accent);font-weight:600}.codein{font-family:var(--mono);font-size:18px;letter-spacing:.25em;text-transform:uppercase;text-align:center}.gsignin{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px;border:1.5px solid var(--line);border-radius:9px;background:#fff;color:#3c4043;font-weight:600;font-size:14px;text-decoration:none}.gsignin:hover{background:#f7f8fa;border-color:var(--muted)}:root[data-theme=dark] .gsignin{background:#fff}.gsignin .gicon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:99px;background:conic-gradient(from -45deg,#ea4335 0 25%,#fbbc05 0 50%,#34a853 0 75%,#4285f4 0);color:#fff;font-weight:800;font-size:13px}.orsep{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-size:12px}.orsep:after,.orsep:before{content:"";flex:1 1;height:1px;background:var(--line)}label.field{display:block;margin:14px 0}label.field .l{font-size:13px;font-weight:600;margin-bottom:5px;display:block}label.field .hint{font-size:12px;color:var(--muted);font-weight:400}input.f,select.f,textarea.f{width:100%;padding:9px 12px;border-radius:8px;border:1.5px solid var(--line);font-size:14px;font-family:var(--sans);background:#fdfcf9}.notice{background:#eef0f7;border-left:4px solid var(--violet);border-radius:0 8px 8px 0;padding:12px 16px;font-size:13px;margin:14px 0}.meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:8px}@media (max-width:840px){.ednav,.side{display:none}.dash,.edmain,.main{padding:20px}.diff,.kpis{grid-template-columns:1fr}}.flowplay{margin:18px 0}.flowbar{gap:12px;margin-bottom:10px;flex-wrap:wrap}.flowbar,.flowdots{display:flex;align-items:center}.flowdots{gap:5px}.flowdots .d{width:9px;height:9px;border-radius:99px;background:var(--line);transition:all .25s}.flowdots .d.on{background:var(--accent)}.flowdots .d.now{background:var(--ink);transform:scale(1.35)}.flowstep{padding:22px 26px;transition:border-color .3s}.flowstep.won{border-color:var(--accent)}.flowq{font-family:var(--serif);font-size:20px;font-weight:700;margin-bottom:14px;line-height:1.35}.flowcode{width:100%;font-family:var(--mono);font-size:14.5px;line-height:1.6;background:#14171c;color:#e6e1d6;border:1.5px solid #2a2f37;border-radius:10px;padding:14px 16px;white-space:pre;overflow-x:auto}textarea.flowcode{resize:vertical}pre.flowcode.ro{margin:0}.flowtarget{margin-top:12px}.flowout .lbl,.flowtarget .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--muted);margin-bottom:4px}.flowtarget pre{margin:0;background:#f2f6f1;border:1.5px dashed var(--accent);border-radius:10px;padding:10px 14px;font-family:var(--mono);font-size:14px}:root[data-theme=dark] .flowtarget pre{background:#17211a}.flowout{margin-top:12px}.flowout pre{margin:0;background:#101317;color:#d9efe0;border-radius:10px;padding:10px 14px;font-family:var(--mono);font-size:14px;white-space:pre-wrap}.flowout.err pre{color:#f2c4bd}.flowopts{display:grid;grid-gap:8px;gap:8px;margin-top:6px}.optbtn{text-align:left;font-family:var(--mono);font-size:14px;padding:12px 16px;border-radius:10px;border:1.5px solid var(--line);background:transparent;color:inherit;cursor:pointer;transition:all .15s}.optbtn:hover:not(:disabled){border-color:var(--ink);transform:translateX(3px)}.optbtn.right{border-color:var(--accent);background:rgba(46,125,80,.09)}.optbtn.wrong{border-color:#b3352e;background:rgba(179,53,46,.08);animation:flowshake .3s}.optbtn.dim{opacity:.45}@keyframes flowshake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.flowrun{display:flex;gap:10px;margin-top:14px;align-items:center}.flowwhy{margin-top:12px;padding:10px 14px;border-radius:10px;font-size:14.5px;line-height:1.5}.flowwhy.yes{background:rgba(46,125,80,.09);border-left:3px solid var(--accent)}.flowwhy.no{background:rgba(179,53,46,.07);border-left:3px solid #b3352e}.flowhelp{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}.flowhelp .hinttext{font-size:13.5px;color:var(--muted);background:rgba(90,74,158,.08);border-radius:8px;padding:7px 12px;flex:1 1;min-width:200px}.flownext{display:flex;justify-content:flex-end;margin-top:16px;align-items:center}.skiplink{background:none;border:none;color:var(--muted);font-size:12.5px;cursor:pointer;font-family:var(--mono)}.skiplink:hover{text-decoration:underline}.flowarrange .pool{margin-bottom:12px}.flowarrange .built,.flowarrange .pool{display:flex;flex-direction:column;gap:6px}.flowarrange .built{min-height:44px;border:1.5px dashed var(--line);border-radius:10px;padding:10px}.linebtn{text-align:left;font-family:var(--mono);font-size:13.5px;padding:9px 13px;border-radius:8px;border:1.5px solid var(--line);background:transparent;color:inherit;cursor:pointer}.linebtn:hover{border-color:var(--ink)}.linebtn.placed{border-color:var(--accent)}.linebtn .n{display:inline-block;width:18px;height:18px;border-radius:99px;background:var(--accent);color:#fff;font-size:11px;text-align:center;line-height:18px;margin-right:8px}.flowspot{display:flex;flex-direction:column;gap:3px}.spotline{display:flex;gap:10px;align-items:center;text-align:left;font-family:var(--mono);font-size:14px;padding:7px 12px;border-radius:8px;border:1.5px solid transparent;background:#14171c;color:#e6e1d6;cursor:pointer}.spotline:hover:not(:disabled){border-color:var(--accent)}.spotline .ln{color:#6b7280;font-size:11px;width:18px}.spotline pre{margin:0;font-family:inherit}.spotline.right{border-color:var(--accent);background:#17241b}.spotline.wrong{border-color:#b3352e;animation:flowshake .3s}.spotline.dim{opacity:.5}.fillslot{display:inline-block;min-width:34px;text-align:center;border:1.5px dashed var(--muted);border-radius:6px;padding:0 8px;margin:0 2px;color:#eab308}.fillslot.set{border-style:solid;border-color:var(--violet);color:#cdc3f0}.fillslot.right{border-color:var(--accent);color:#9fe0b5}.fillslot.wrong{border-color:#b3352e;color:#f2a59e}.fillrow{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}.bchip{font-family:var(--mono);font-size:13px;padding:6px 12px;border-radius:99px;border:1.5px solid var(--line);background:transparent;color:inherit;cursor:pointer}.bchip:hover{border-color:var(--ink)}.bchip.on{border-color:var(--violet);background:rgba(90,74,158,.12)}.bchip.hintright{border-color:var(--accent)}.flowbuckets{margin-top:8px}.bucketrow{display:flex;gap:10px;align-items:center;padding:7px 10px;border-radius:8px;flex-wrap:wrap}.bucketrow .itext{font-family:var(--mono);font-size:14px;flex:1 1;min-width:140px}.bucketrow .bchips{display:flex;gap:6px;flex-wrap:wrap}.bucketrow.right{background:rgba(46,125,80,.08)}.bucketrow.wrong{background:rgba(179,53,46,.07)}.flowmatch{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:8px}.flowmatch .mcol{display:flex;flex-direction:column;gap:6px}.flowmatch .btn{grid-column:1/-1;justify-self:start}.mchip{text-align:left;font-family:var(--mono);font-size:13px;padding:9px 12px;border-radius:8px;border:1.5px solid var(--line);background:transparent;color:inherit;cursor:pointer}.mchip:hover:not(:disabled){border-color:var(--ink)}.mchip.sel{border-color:var(--violet);background:rgba(90,74,158,.12)}.mchip.paired{border-color:var(--accent)}.mchip:disabled{opacity:.5;cursor:default}.flowtracer{margin-top:10px}.flowexplain{margin-top:6px}.flowstdin{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-6px 0 14px}.flowstdin .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.flowstdin .chip{font-family:var(--mono);font-size:12.5px;padding:3px 10px;border-radius:99px;border:1.5px solid var(--violet);color:var(--violet)}.playmark{color:var(--accent);font-size:10px;margin-left:6px;letter-spacing:-.05em}.lessonpicker{display:none}@media (max-width:840px){.shell{display:block}.lessonpicker{display:block;border-bottom:1.5px solid var(--line);background:#f1eee6}:root[data-theme=dark] .lessonpicker{background:#1b1e23}.lessonpicker>summary{cursor:pointer;padding:12px 20px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);list-style:none}.lessonpicker>summary::-webkit-details-marker{display:none}.lessonpicker .pickerbody{padding:0 12px 12px;max-height:55vh;overflow-y:auto}}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 5px rgba(255,255,255,.55);border-radius:4px}:root[data-theme=dark] :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{box-shadow:0 0 0 5px rgba(0,0,0,.6)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.assist{margin:-6px 0 12px}.assistbtn{background:none;border:none;padding:2px 0;cursor:pointer;font-family:var(--mono);font-size:11.5px;color:var(--violet)}.assistbtn:hover{text-decoration:underline}.assisttext{margin:4px 0 0;padding:8px 12px;border-left:3px solid var(--violet);background:rgba(90,74,158,.07);border-radius:0 8px 8px 0;font-size:14px;line-height:1.5;display:flex;gap:10px;align-items:flex-start}.assisttext[dir=rtl]{border-left:none;border-right:3px solid var(--violet);border-radius:8px 0 0 8px}.assisttext .assistbtn{-webkit-margin-start:auto;margin-inline-start:auto;flex-shrink:0}.langpick{font-family:var(--mono);font-size:11.5px;padding:3px 8px;border-radius:99px;border:1.5px solid var(--line);background:transparent;color:inherit;cursor:pointer}.optbtn.sel,.spotline.sel{border-color:var(--violet);background:rgba(90,74,158,.12)}.teachcard{margin-top:12px}.teachpoint{display:grid;grid-template-columns:minmax(70px,auto) 1fr;grid-gap:12px;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line)}.teachpoint:first-child{border-top:none}.teachpoint .tp-label{font-family:var(--mono);font-size:12.5px;color:var(--violet);background:rgba(90,74,158,.1);padding:2px 8px;border-radius:5px;white-space:nowrap}.teachpoint .tp-text{font-size:14.5px;line-height:1.5}.docs{margin:18px 0 24px;border:1.5px solid var(--line);border-radius:10px;padding:14px 18px;background:var(--paper)}.docs-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.docs section+section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.docs h4{font-family:var(--serif);font-size:14.5px;margin:0 0 8px}.docs dl{margin:0}.docs-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-gap:14px;gap:14px;align-items:start;padding:5px 0}.docs-item dt{margin:0;min-width:0}.docs-item dt pre{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.5;color:var(--ink);background:transparent;padding:0;white-space:pre-wrap;word-break:break-word}.docs-item dd{margin:0;font-size:13px;color:var(--muted);line-height:1.5}@media (max-width:620px){.docs-item{grid-template-columns:1fr;gap:2px}}