:root{--paper:#fff;--bg:#f3f8f1;--ink:#0a1f14;--ink-2:#3a4b41;--muted:#6b7a70;--line:#e7efe7;--line-2:#dce7db;--field:#f8faf7;--green:#12a150;--green-d:#0c7c3d;--green-ink:#0b3322;--lime:#c6f56a;--lime-d:#b4ee4e;--mint:#e4f6e0;--mint-2:#cfefc8;--mint-3:#eff9ea;--amber:#f0b23e;--amber-bg:#fbefcf;--amber-ink:#8a5e12;--red:#d64545;--red-bg:#fbe4e4;--sh:0 1px 2px #0b33220a,0 12px 26px -18px #0b332242;--sans:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,sans-serif}:root[data-theme=dark]{--paper:#122318;--bg:#0a1710;--ink:#e9f1eb;--ink-2:#b6c6bc;--muted:#8ca095;--line:#20362a;--line-2:#294636;--field:#0e1f16;--mint:#173021;--mint-2:#1f4a2f;--mint-3:#132719;--amber-bg:#3a2e14;--amber-ink:#eac77e;--red-bg:#3a1c1c;--sh:0 1px 2px #0000004d,0 14px 30px -18px #0009}*{box-sizing:border-box;margin:0;padding:0}html{font-size:13.5px}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.5;transition:background .25s,color .25s}a{color:inherit;text-decoration:none}.num{font-variant-numeric:tabular-nums}button{font-family:var(--sans)}.app{grid-template-columns:230px 1fr;align-items:stretch;min-height:100vh;display:grid}.mobilebar{background:var(--green-ink);color:#fff;z-index:30;align-items:center;gap:.7rem;padding:.6rem 1rem;display:none;position:sticky;top:0}.mobilebar .burger{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1}.mobilebar .mk{background:var(--lime);width:26px;height:26px;color:var(--green-ink);border-radius:7px;place-items:center;font-weight:800;display:grid}.backdrop{z-index:44;background:#00000073;display:none;position:fixed;inset:0}@media (width<=820px){.app{grid-template-columns:1fr}.side{z-index:45;width:230px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.side.open{transform:translate(0)}.mobilebar{display:flex}.backdrop.show{display:block}}.side{background:var(--green-ink);color:#c7d6cc;flex-direction:column;padding:1rem .8rem;display:flex}.logo{color:#fff;align-items:center;gap:.6rem;padding:.3rem .5rem .9rem;font-size:1.25rem;font-weight:800;display:flex}.logo .mk{background:var(--lime);width:32px;height:32px;color:var(--green-ink);border-radius:9px;place-items:center;font-weight:800;display:grid}.navlab{letter-spacing:.11em;text-transform:uppercase;color:#8ca596;border-top:1px solid #ffffff1f;margin:1.15rem .3rem .5rem;padding-top:.95rem;font-size:.7rem;font-weight:800}.nav a{color:#c7d6cc;cursor:pointer;border-radius:10px;align-items:center;gap:.7rem;margin-bottom:.12rem;padding:.58rem .6rem;font-size:.9rem;font-weight:600;display:flex}.nav a .ic{text-align:center;opacity:.85;width:20px}.nav a:hover{color:#fff;background:#ffffff0f}.nav a.on{background:var(--lime);color:var(--green-ink);font-weight:700}.nav a .badge{color:#fff;background:#ffffff24;border-radius:999px;margin-left:auto;padding:.05rem .4rem;font-size:.66rem;font-weight:800}.side .grow{flex:1}.exam{background:#ffffff0d;border:1px solid #ffffff17;border-radius:14px;padding:.9rem}.exam .k{color:#9fb4a6;font-size:.72rem;font-weight:700}.exam .v{color:#fff;margin:.25rem 0;font-size:1.9rem;font-weight:800;line-height:1}.exam .v b{color:var(--lime)}.exam .v small{color:#9fb4a6;font-size:.8rem;font-weight:700}.exam .d{color:#9fb4a6;margin-top:.15rem;font-size:.72rem}.exam .t{background:#ffffff1f;border-radius:99px;height:6px;margin-top:.6rem;overflow:hidden}.exam .t i{background:var(--lime);border-radius:99px;height:100%;display:block}.user{cursor:pointer;align-items:center;gap:.6rem;margin-top:.9rem;padding:.4rem .3rem;display:flex}.user .av{color:#dff3e2;background:#2b6b4b;border-radius:50%;place-items:center;width:34px;height:34px;font-size:.85rem;font-weight:800;display:grid}.user .nm{color:#fff;font-size:.85rem;font-weight:700}.user .em{color:#8fa89a;font-size:.72rem}.user .lbl{min-width:0}.user .lbl .nm,.user .lbl .em{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.signout-btn{color:#c7d6cc;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;margin-left:auto;font-size:1rem;line-height:1;display:grid}.signout-btn:hover{color:#fff;background:#e05c7a47}.btn.danger{color:#b3261e;background:var(--paper);border-color:#e6b0bb}.btn.danger:hover{background:#fdecec;border-color:#dc8a97}@media (width>=821px){.side.collapsed .signout-btn{display:none}}.collapse-btn{color:#9fb4a6;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff17;border-radius:9px;justify-content:center;align-items:center;gap:.4rem;width:100%;margin-top:.6rem;padding:.42rem;font-size:.78rem;font-weight:700;display:flex}.collapse-btn:hover{color:#fff;background:#ffffff1f}.collapse-btn .ca{font-size:.95rem;line-height:1}@media (width<=820px){.collapse-btn{display:none}}@media (width>=821px){.side{align-self:start;height:100vh;position:sticky;top:0;overflow-y:auto}.app.collapsed{grid-template-columns:66px 1fr}.side.collapsed{align-items:stretch;padding:1rem .4rem}.side.collapsed .lbl{display:none}.side.collapsed .navlab{color:#0000;border-top:none;height:1px;margin:.7rem 0 .2rem;overflow:hidden}.side.collapsed .exam{display:none}.side.collapsed .nav a{justify-content:center;gap:0;padding:.58rem 0}.side.collapsed .nav a .ic{opacity:1}.side.collapsed .user{justify-content:center;padding:.4rem 0}.side.collapsed .logo{justify-content:center;gap:0}.side.collapsed .collapse-btn{padding:.42rem 0}}.preread{background:var(--mint);border:1px solid var(--mint-2);border-radius:12px;margin-bottom:1rem;padding:.55rem .9rem}.preread summary{cursor:pointer;color:var(--green-d);font-size:.85rem;font-weight:700;list-style:none}.preread summary::-webkit-details-marker{display:none}.preread summary:before{content:"▸";margin-right:.45rem;font-size:.7rem}.preread[open] summary:before{content:"▾"}.preread .refs{margin-top:.6rem}.confetti-root{pointer-events:none;z-index:9999;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:.95;border-radius:2px;width:9px;height:14px;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:-14px}@keyframes confetti-fall{to{opacity:.85;transform:translateY(106vh)rotate(680deg)}}.banner{border-radius:12px;padding:.7rem .9rem;font-size:.86rem;line-height:1.45}.banner.info{background:var(--mint);border:1px solid var(--mint-2);color:var(--green-d)}.banner.warn{background:var(--amber-bg);color:var(--amber-ink);border:1px solid #f0b23e73;margin-bottom:.8rem;font-weight:600}.cd.low{background:var(--amber-bg);color:var(--amber-ink);border-color:#f0b23e73}.cd.over{color:#b3261e;background:#fdecec;border-color:#f3b4b4}.resultcard{text-align:center;border:1px solid var(--line);background:var(--paper);border-radius:18px;margin-bottom:1rem;padding:1.6rem 1.2rem}.resultcard.good{background:linear-gradient(180deg,var(--mint),var(--paper));border-color:var(--mint-2)}.resultcard.poor{background:linear-gradient(180deg,#fdecec,var(--paper));border-color:#f3b4b4}.rc-emoji{font-size:2.4rem;line-height:1}.rc-score{margin-top:.4rem;font-size:2rem;font-weight:800}.rc-score span{color:var(--muted);font-size:1.1rem;font-weight:700}.rc-pct{color:var(--muted);margin:.1rem 0 .5rem;font-size:1rem;font-weight:700}.reviewitem{border:1px solid var(--line);border-radius:12px;margin-top:.6rem;padding:.55rem .8rem}.reviewitem summary{cursor:pointer;align-items:center;gap:.6rem;font-size:.86rem;list-style:none;display:flex}.reviewitem summary::-webkit-details-marker{display:none}.reviewitem .rv-x{color:#b3261e;font-weight:800}.reviewitem .rv-q{flex:1}.reviewitem .rv-mk{color:var(--muted);font-weight:700}.reviewitem .rv-body{margin-top:.6rem;font-size:.86rem;line-height:1.5}.reviewitem .rv-body p{margin:.35rem 0}.mocktabs{gap:.4rem;margin:.2rem 0 .8rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.mocktabs button{background:var(--field);border:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:.34rem .8rem;font-size:.8rem;font-weight:700}.mocktabs button:hover{border-color:var(--green);color:var(--ink)}.mocktabs button.on{background:var(--green-ink);border-color:var(--green-ink);color:#fff}.mock-section{letter-spacing:.05em;text-transform:uppercase;color:var(--green-d);background:var(--mint);border:1px solid var(--mint-2);border-radius:8px;margin-bottom:.7rem;padding:.4rem .7rem;font-size:.72rem;font-weight:800}.exam-structure{border:1px solid var(--line);border-radius:10px;margin-top:.7rem;overflow:hidden}.es-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .8rem;font-size:.83rem;display:flex}.es-row:last-child{border-bottom:none}.es-lbl{font-weight:700}.es-kind{color:var(--muted);white-space:nowrap;font-size:.76rem}.qtype-badge{color:var(--green-d);background:var(--mint);border:1px solid var(--mint-2);border-radius:999px;align-items:center;padding:.3rem .75rem;font-size:.76rem;font-weight:800;display:inline-flex}.numentry{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.numinput{max-width:220px}.numunit{color:var(--muted);font-weight:700}.mcqopt .chk{margin-right:.55rem;font-size:1rem}.wrongtxt{color:#b3261e;font-weight:700}@media (width<=820px){.grid.c3{grid-template-columns:1fr}}.navlab-plain{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:.2rem 0 .5rem;font-size:.7rem;font-weight:800}.stat .v small{color:var(--muted);letter-spacing:0;font-size:.62rem;font-weight:700}.ctrylist{flex-direction:column;gap:.55rem;margin-top:.5rem;display:flex}.ctryrow{align-items:center;gap:.7rem;font-size:.85rem;display:flex}.ctryrow .cn{width:130px;font-weight:600}.ctryrow .cb{background:var(--field);border-radius:99px;flex:1;height:10px;overflow:hidden}.ctryrow .cb i{background:var(--green);border-radius:99px;height:100%;display:block}.ctryrow .cc{text-align:right;width:34px;color:var(--muted);font-weight:700}.opt-why{color:var(--muted);margin-top:.35rem;font-size:.78rem;line-height:1.45;display:block}.mcqopt.correct .opt-why{color:var(--green-d)}.mcqopt.wrong .opt-why{color:#b3261e}.opt-whys{margin:.3rem 0}.opt-whys p{margin:.28rem 0;font-size:.84rem;line-height:1.45}.tutor-sources{border-top:1px solid var(--line);max-height:190px;padding:.6rem .7rem;overflow-y:auto}.tutor-sources .ts-head{color:var(--green-d);margin-bottom:.45rem;font-size:.74rem;font-weight:800}.ts-item{margin-bottom:.55rem}.ts-snip{color:var(--muted);font-size:.77rem;line-height:1.45}.ts-src{color:var(--green);margin-top:.15rem;font-size:.74rem;font-weight:700;text-decoration:none;display:inline-block}.ts-src:hover{text-decoration:underline}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--paper);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:1rem;padding:.85rem 1.4rem;display:flex;position:sticky;top:0}.topbar h1{font-size:1.1rem;font-weight:800;line-height:1.25}.topbar h1 .tb-sub{color:var(--muted);margin-top:.1rem;font-size:.82rem;font-weight:600;display:block}.tb-right{align-items:center;gap:.8rem;margin-left:auto;display:flex}.cd{color:var(--green-d);background:var(--mint);border:1px solid var(--mint-2);border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .75rem;font-size:.82rem;font-weight:700;display:flex}.streak{color:var(--amber-ink);background:var(--amber-bg);border:1px solid #f0b23e59;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.82rem;font-weight:700;display:flex}.toggle{background:var(--field);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem;display:inline-flex}.toggle span{width:30px;height:26px;color:var(--muted);border-radius:999px;place-items:center;font-size:.85rem;display:grid}.toggle .sun{background:var(--lime);color:var(--green-ink)}:root[data-theme=dark] .toggle .sun{color:var(--muted);background:0 0}:root[data-theme=dark] .toggle .moon{color:var(--lime);background:#26402f}.av2{color:#dff3e2;background:#2b6b4b;border-radius:50%;place-items:center;width:36px;height:36px;font-size:.82rem;font-weight:800;display:grid}.langsel-wrap{align-items:center;display:inline-flex;position:relative}.langsel-wrap .globe{pointer-events:none;opacity:.85;font-size:.8rem;line-height:1;position:absolute;left:.6rem}.langsel{appearance:none;background:var(--field);border:1px solid var(--line);height:34px;font-family:var(--sans);color:var(--ink-2);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238CA095' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-position:right .65rem center;background-repeat:no-repeat;border-radius:999px;padding:0 1.7rem 0 1.75rem;font-size:.8rem;font-weight:700}.langsel:hover{border-color:var(--green);color:var(--ink)}.langsel:focus{border-color:var(--green);outline:none}.page{padding:1.2rem 1.4rem;overflow:auto}.page h2{margin-bottom:.2rem;font-size:1.3rem;font-weight:800}.page .sub{color:var(--muted);margin-bottom:1.1rem;font-size:.9rem}.card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);border-radius:16px;margin-bottom:.8rem;padding:1rem 1.1rem}.card h3{align-items:center;gap:.5rem;margin-bottom:.6rem;font-size:.9rem;font-weight:800;display:flex}.grid{gap:.8rem;display:grid}.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}.stat{background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);border-radius:16px;padding:1rem 1.1rem}.stat .k{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:800}.stat .v{margin-top:.3rem;font-size:2rem;font-weight:800;line-height:1.1}.stat .v small{color:var(--muted);font-size:.85rem;font-weight:700}.stat .d{color:var(--muted);margin-top:.25rem;font-size:.78rem}.bar{background:var(--mint);border-radius:99px;height:8px;overflow:hidden}.bar i{background:linear-gradient(90deg,var(--green),var(--green-d));border-radius:99px;height:100%;display:block}.btn{cursor:pointer;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);border-radius:10px;padding:.7rem 1.1rem;font-size:.9rem;font-weight:800}.btn:hover{border-color:var(--green)}.btn.prim{background:var(--lime);color:var(--green-ink);border-color:var(--lime)}.btn.block{text-align:center;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:.45rem .7rem;font-size:.8rem}.field{flex-direction:column;gap:.3rem;margin-bottom:.8rem;display:flex}.field label{color:var(--ink-2);font-size:.78rem;font-weight:700}.field input,.field select,.field textarea{font-family:var(--sans);background:var(--field);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;width:100%;padding:.6rem .7rem;font-size:.92rem}.field select{cursor:pointer;appearance:auto}.field select option,.field select optgroup{background:var(--paper);color:var(--ink)}.field textarea{resize:vertical;min-height:120px;line-height:1.6}.err{color:var(--red);margin:.3rem 0;font-size:.82rem}.ok{color:var(--green-d);margin:.3rem 0;font-size:.82rem}table.tbl{border-collapse:collapse;width:100%;font-size:.86rem}table.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:.5rem .6rem;font-size:.7rem}table.tbl td{border-bottom:1px solid var(--line);padding:.6rem}.pill{color:var(--green-d);background:var(--mint);border:1px solid var(--mint-2);border-radius:999px;padding:.22rem .6rem;font-size:.68rem;font-weight:800;display:inline-block}.pill.amber{color:var(--amber-ink);background:var(--amber-bg);border-color:#f0b23e59}.pill.grey{color:var(--muted);background:var(--field);border-color:var(--line)}.authwrap{background:var(--bg);place-items:center;min-height:100vh;padding:1rem;display:grid}.authcard{background:var(--paper);border:1px solid var(--line);width:100%;max-width:400px;box-shadow:var(--sh);border-radius:18px;padding:1.6rem}.authcard .logo{color:var(--ink);padding:0 0 1rem}.authcard .mk{background:var(--green-ink);color:var(--lime)}.muted{color:var(--muted)}.center{text-align:center}.row{align-items:center;gap:.6rem;display:flex}.divider{color:var(--muted);align-items:center;gap:.6rem;margin:.9rem 0;font-size:.78rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.link{color:var(--green-d);cursor:pointer;font-weight:700}.lessonwrap{flex:1;grid-template-columns:1fr 330px;min-height:0;display:grid}@media (width<=1120px){.lessonwrap{grid-template-columns:1fr}.tutor{display:none}}.lesson{border-right:1px solid var(--line);flex-direction:column;padding:1rem 1.2rem 1.2rem;display:flex;overflow:auto}.lhead{align-items:center;gap:.6rem;margin-bottom:1.1rem;display:flex}.lhead .step{color:var(--muted);font-size:.82rem;font-weight:600}.lhead .prog{color:var(--muted);align-items:center;gap:.5rem;margin-left:auto;font-size:.76rem;font-weight:700;display:flex}.lhead .prog .t{background:var(--mint);border-radius:99px;width:120px;height:6px;overflow:hidden}.lhead .prog .t i{background:linear-gradient(90deg,var(--green),var(--green-d));border-radius:99px;height:100%;display:block}.qcard{background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);border-radius:16px;margin-bottom:.8rem;padding:1rem 1.1rem}.qlab{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;font-size:.66rem;font-weight:800;display:block}.qtext{font-size:1.05rem;font-weight:700;line-height:1.5}.qtext .m{color:var(--green-d);font-weight:800}.modes{gap:.4rem;margin:1.1rem 0 .7rem;display:flex}.modes button{color:var(--muted);background:var(--field);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;font-weight:700}.modes button.on{background:var(--green-ink);color:#fff;border-color:var(--green-ink)}:root[data-theme=dark] .modes button.on{background:var(--lime);color:var(--green-ink);border-color:var(--lime)}.answerbox{background:var(--field);border:1px solid var(--line-2);width:100%;min-height:80px;font-size:.92rem;line-height:1.65;font-family:var(--sans);color:var(--ink);border-radius:13px;padding:.7rem .85rem}.answerview .g{background:var(--mint-2);box-shadow:inset 0 -2px var(--green);border-radius:4px;padding:.02rem .14rem}.answerview .l{background:var(--amber-bg);box-shadow:inset 0 -2px var(--amber);border-radius:4px;padding:.02rem .14rem}.abfoot{flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.7rem;display:flex}.abfoot .leg{color:var(--muted);font-size:.72rem}.abfoot .leg .sw{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:.25rem;display:inline-block}.abfoot .leg .sw.g{background:var(--mint-2);border:1px solid var(--green)}.abfoot .leg .sw.l{background:var(--amber-bg);border:1px solid var(--amber)}.abfoot .score{color:var(--green-d);margin-left:auto;font-size:1.25rem;font-weight:800}.abfoot .score span{color:var(--muted);font-size:.82rem;font-weight:700}.mcqopt{border:1px solid var(--line-2);cursor:pointer;background:var(--field);border-radius:11px;align-items:center;gap:.6rem;margin-bottom:.5rem;padding:.65rem .8rem;font-size:.9rem;display:flex}.mcqopt:hover{border-color:var(--green)}.mcqopt.sel{border-color:var(--green);background:var(--mint-3)}.mcqopt.correct{border-color:var(--green);background:var(--mint-2)}.mcqopt.wrong{border-color:var(--red);background:var(--red-bg)}.anno{grid-template-columns:1.4rem 1fr auto;align-items:start;gap:.5rem;margin-bottom:.5rem;font-size:.86rem;line-height:1.45;display:grid}.anno .s{border-radius:6px;place-items:center;width:1.4rem;height:1.25rem;margin-top:.05rem;font-size:.72rem;font-weight:800;display:grid}.anno.p .s{color:var(--green-d);background:var(--mint)}.anno.m .s{color:var(--amber-ink);background:var(--amber-bg)}.anno .tx{color:var(--ink-2)}.anno .tx b{color:var(--ink)}.anno .mk{font-weight:800}.anno.p .mk{color:var(--green-d)}.anno.m .mk{color:var(--amber-ink)}.expl{color:var(--ink-2);border-top:1px solid var(--line);margin-top:.5rem;padding-top:.85rem;font-size:.9rem;line-height:1.6}.refs{gap:.5rem;display:grid}.ref{color:var(--ink);border:1px solid var(--line);background:var(--field);border-radius:11px;align-items:center;gap:.6rem;padding:.6rem .7rem;font-size:.86rem;display:flex}.ref .ty{text-transform:uppercase;color:var(--green-d);background:var(--mint);border-radius:6px;padding:.16rem .45rem;font-size:.62rem;font-weight:800}.ref .ex{color:var(--green-d);margin-left:auto;font-weight:800}.lnav{gap:.7rem;margin-top:auto;padding-top:1rem;display:flex}.lnav .btn.prim{margin-left:auto}.tutor{background:var(--paper);flex-direction:column;min-height:0;display:flex}.tutor .th{border-bottom:1px solid var(--line);align-items:center;gap:.55rem;padding:.9rem 1.1rem;font-size:.9rem;font-weight:800;display:flex}.tutor .th .dot{background:var(--green);border-radius:50%;width:8px;height:8px}.tutor .th .who{color:var(--muted);margin-left:auto;font-size:.72rem;font-weight:600}.chat{flex-direction:column;flex:1;gap:.5rem;padding:.9rem 1rem;display:flex;overflow:auto}.bub{border-radius:14px;max-width:90%;padding:.6rem .8rem;font-size:.85rem;line-height:1.5}.bub.a{background:var(--mint-3);border:1px solid var(--mint-2);color:var(--ink-2);border-bottom-left-radius:5px;align-self:flex-start}.bub.u{background:var(--green-ink);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}:root[data-theme=dark] .bub.u{background:var(--lime);color:var(--green-ink)}.chips{flex-wrap:wrap;gap:.4rem;padding:0 1rem .6rem;display:flex}.chip{color:var(--green-d);background:var(--field);border:1px solid var(--mint-2);cursor:pointer;border-radius:999px;padding:.35rem .65rem;font-size:.76rem;font-weight:600}.cform{border-top:1px solid var(--line);gap:.4rem;padding:.8rem 1rem;display:flex}.cform input{min-width:0;font-family:var(--sans);background:var(--field);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;flex:1;padding:.6rem .7rem;font-size:.85rem}.cform button{background:var(--lime);color:var(--green-ink);cursor:pointer;border:none;border-radius:10px;padding:0 .95rem;font-weight:800}.loading{min-height:60vh;color:var(--muted);place-items:center;font-weight:700;display:grid}.spinner{border:3px solid var(--mint-2);border-top-color:var(--green);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.badge-role{background:var(--mint);color:var(--green-d);border-radius:999px;padding:.15rem .5rem;font-size:.66rem;font-weight:800}.badge-role.admin{background:var(--amber-bg);color:var(--amber-ink)}.hstack{align-items:center;gap:.6rem;display:flex}.vstack{flex-direction:column;gap:.5rem;display:flex}.spacer{flex:1}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.2rem;margin-bottom:1rem;display:flex}.tabs button{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .9rem;font-size:.88rem;font-weight:700}.tabs button.on{color:var(--ink);border-bottom-color:var(--green)}.tabs button:hover{color:var(--ink)}.crumbs{color:var(--muted);margin-bottom:.5rem;font-size:.82rem}.crumbs a{color:var(--green-d);font-weight:700}.crumbs .sep{opacity:.55;margin:0 .45rem}.tile{background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);cursor:pointer;border-radius:16px;padding:1rem 1.1rem;transition:border-color .15s,transform .15s;display:block}.tile:hover{border-color:var(--green);transform:translateY(-1px)}.tile h3{align-items:center;gap:.4rem;margin-bottom:.3rem;display:flex}.scratch-fab{background:var(--lime);width:44px;height:44px;color:var(--green-ink);cursor:pointer;box-shadow:var(--sh);z-index:40;border:none;border-radius:50%;font-size:1.2rem;position:fixed;bottom:18px;right:18px}.scratch-panel{background:var(--paper);border:1px solid var(--line);width:320px;height:300px;box-shadow:var(--sh);z-index:40;border-radius:14px;flex-direction:column;padding:.6rem;display:flex;position:fixed;bottom:72px;right:18px}.scratch-head{align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.9rem;display:flex}.scratch-panel textarea{resize:none;font-family:var(--sans);background:var(--field);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;flex:1;padding:.5rem;font-size:.85rem}.exhibit{background:var(--field);border:1px solid var(--line-2);border-left:3px solid var(--green);border-radius:10px;margin-bottom:.85rem;padding:.7rem .9rem}.exhibit .ex-head{letter-spacing:.04em;text-transform:uppercase;color:var(--green-d);margin-bottom:.4rem;font-size:.72rem;font-weight:800}.exhibit .ex-body{white-space:pre-wrap;font-size:.88rem;line-height:1.55}
