:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#202a35;background:#f6f7f9;font-synthesis:none;--accent:#ad4d0d;--muted:#74808d;--border:#e8ecf0}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}svg{width:21px;height:21px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;font-weight:650}h2{font-size:19px;letter-spacing:-.4px}h3{font-size:15px}p{line-height:1.65}small{font-size:12px}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.loading{padding:60px;text-align:center}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:32px 19px}.brand{display:flex;gap:10px;align-items:center;font-size:23px;font-weight:750;letter-spacing:-1px;padding:0 13px;margin-bottom:42px}.brandmark{display:grid;place-items:center;background:var(--accent);color:white;border-radius:11px;width:36px;height:36px}.brandmark svg{width:23px;height:23px}.nav{display:grid;gap:7px}.nav a{padding:13px 16px;display:flex;align-items:center;gap:13px;border-radius:8px;font-size:14px;color:#6c7785}.nav a.active{color:var(--accent);background:#fff0e3;font-weight:600}.nav a:hover{background:#fff5ed}.sidebottom{margin-top:auto;border-top:1px solid var(--border);padding:20px 12px 0}.person{display:flex;gap:11px;align-items:center;font-size:13px;margin-bottom:18px}.avatar{background:#edf1f5;color:#677281;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:600}.textbutton{background:none;border:0;padding:0;color:var(--muted);font-size:13px}.main{margin-left:236px}.topbar{height:79px;border-bottom:1px solid var(--border);background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 42px;font-size:13px;color:var(--muted)}.topbar .local{display:flex;gap:8px;align-items:center}.dot{width:7px;height:7px;border-radius:50%;background:#d77b35;display:inline-block}.content{padding:37px 42px;max-width:1540px;margin:auto}.pagehead{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:29px}.pagehead p{color:var(--muted);font-size:14px;margin-top:8px}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;border:1px solid var(--border);background:white;color:#34414f;min-height:42px;padding:10px 17px;border-radius:8px;font-weight:550;font-size:13px}.button:hover{background:#fff7f0}.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.button.primary:hover{background:#903e09}.button.danger{color:#ae4949;border-color:#f0dddd}.button svg{width:17px;height:17px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stat{background:white;border:1px solid var(--border);border-radius:11px;padding:21px}.stat .label{font-size:12px;color:#74808d;display:flex;justify-content:space-between;gap:9px}.stat .label svg{color:#94a0aa;width:18px;height:18px}.stat .number{font-size:31px;font-weight:650;letter-spacing:-1px;margin:14px 0 8px}.stat small{font-size:11px;color:#84909a}.card{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:22px}.cardhead{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 25px;border-bottom:1px solid var(--border)}.cardhead .small{margin-top:6px}.cardbody{padding:25px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 25px}.search{position:relative;flex:1;min-width:180px;max-width:340px}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#99a1ab;width:17px;height:17px}.search input.control{padding-left:40px}.field{display:grid;gap:8px;margin-bottom:18px;font-size:13px;font-weight:550}.field small{font-weight:400;line-height:1.6}.field input,.field select,input.control,select.control{width:100%;height:42px;border:1px solid #dee4e9;border-radius:7px;background:white;color:#34414f;padding:9px 12px;font-size:13px;min-width:0}.field input:focus,.field select:focus,.control:focus{outline:2px solid #efba91;border-color:var(--accent)}select.control{width:auto;min-width:160px}.row{display:flex;gap:16px}.row>*{flex:1;min-width:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{background:#fafbfc;font-size:11px;font-weight:550;color:#84909b;white-space:nowrap;padding:14px 25px;border-block:1px solid var(--border)}td{padding:19px 25px;border-bottom:1px solid #f0f2f4;white-space:nowrap}tr:last-child td{border-bottom:0}td .sub{display:block;color:#8a95a0;font-size:11px;margin-top:5px}.lessonname{font-weight:600}.lessonname svg{margin-right:11px;color:#7b8b96}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:550;white-space:nowrap;padding:5px 9px;border-radius:5px;background:#f0f2f5;color:#7a8592}.badge.active{color:#a34c17;background:#fff0e0}.badge.upcoming{color:#8a6d24;background:#fcf5e5}.tableaction{border:0;background:none;display:flex;align-items:center;gap:7px;color:var(--accent);font-size:12px;white-space:nowrap}.tableaction svg{width:16px}.empty{text-align:center;padding:56px 24px}.emptyicon{width:58px;height:58px;border-radius:15px;display:grid;place-items:center;margin:0 auto 18px;background:#fff1e5;color:var(--accent)}.emptyicon svg{width:27px;height:27px}.empty h3{font-size:17px;margin-bottom:8px}.empty p{color:var(--muted);font-size:13px;max-width:440px;margin:0 auto 20px}.notice{display:flex;gap:11px;background:#fff4eb;border:1px solid #f4dfce;border-radius:8px;padding:14px 17px;font-size:12px;line-height:1.7;color:#805b42;margin:20px 0}.notice svg{flex-shrink:0;width:17px;height:17px;margin-top:2px}.notice.warning{background:#fff9ed;border-color:#f1e7ce;color:#87704b}.footer{font-size:11px;color:#9aa3ae;display:flex;justify-content:space-between;margin-top:30px}.livecard{background:#fff1e5;border-color:#f3dcc7;display:flex;align-items:center;justify-content:space-between;padding:26px;gap:22px}.livecard h2{font-size:22px;margin:13px 0 8px}.livecard p{font-size:13px;color:#896a54}.livecard .qrmini{background:white;border-radius:9px;padding:8px;width:112px;height:112px}.qrmini img{width:96px;height:96px}.livecard .button{margin-top:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.inlineform{display:flex;gap:12px;align-items:end}.inlineform .field{flex:1;margin:0}.inlineform button{flex-shrink:0}.tabs{display:flex;gap:6px}.tabs button{border:0;background:none;padding:8px 13px;border-radius:6px;font-size:12px;color:#7a8592}.tabs button.active{background:#fff0e3;color:var(--accent)}.reportfilters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.reportfilters .field{margin-bottom:4px}.reportnote{font-size:11px;color:#87929e;padding:17px 25px;border-top:1px solid var(--border)}dialog{border:1px solid var(--border);padding:0;width:min(620px,calc(100vw - 28px));border-radius:14px;box-shadow:0 20px 80px #4c2a1420;max-height:90vh;color:#202a35}dialog::backdrop{background:#1d2f3f55;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:23px 26px;border-bottom:1px solid var(--border)}.modalbody{padding:25px 26px}.close{border:0;background:none;color:#7c8791;font-size:24px;line-height:1;padding:4px 8px}.actions{display:flex;gap:12px;justify-content:end;margin-top:23px}.checklist{display:flex;gap:10px;flex-wrap:wrap;max-height:170px;overflow:auto}.check{font-size:12px;display:flex;align-items:center;gap:7px;padding:9px 12px;background:#f6f8fa;border:1px solid var(--border);border-radius:7px}.check input{accent-color:var(--accent);width:16px;height:16px}.error{color:#ad4242;background:#fff3f3;border-radius:7px;font-size:13px;padding:12px;margin-bottom:15px;line-height:1.6}.error:empty{display:none}.qrdisplay{text-align:center}.qrdisplay img{width:264px;max-width:100%;height:264px}.qrdisplay p{font-size:13px;color:var(--muted);margin:12px 0}.qrdisplay input{font-size:11px}.success{background:#fff0e3;color:var(--accent);display:grid;place-items:center;width:70px;height:70px;border-radius:50%;margin:0 auto 22px}.success svg{width:32px;height:32px}.authwrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.authstory{background:#fff0e2;padding:60px 12%;display:flex;flex-direction:column;justify-content:center}.authstory .brand{padding:0;margin-bottom:80px}.authstory h1{font-size:46px;max-width:460px;line-height:1.2;letter-spacing:-1.7px}.authstory>p{color:#8b6a54;max-width:390px;font-size:15px;margin-top:24px}.authsteps{display:flex;gap:12px;margin-top:45px;flex-wrap:wrap}.authsteps span{font-size:11px;padding:8px 11px;background:#ffffff8c;border-radius:6px;color:#8b542f}.authmain{display:grid;place-items:center;padding:30px}.authbox{width:100%;max-width:350px}.authbox h2{font-size:26px}.authbox>p{font-size:13px;color:var(--muted);margin:12px 0 28px}.authbox .button{width:100%;margin-top:6px}.authfoot{font-size:11px;color:#9aa3ad;text-align:center;margin-top:25px}.studentwrap{min-height:100vh;max-width:470px;padding:32px 22px;margin:auto}.studentwrap .brand{justify-content:center;padding:0;margin-bottom:34px}.studentcard{background:white;border:1px solid var(--border);border-radius:15px;padding:29px}.studentcard h1{font-size:25px;line-height:1.3;margin:15px 0}.studentmeta{display:grid;gap:8px;color:var(--muted);font-size:12px;padding-bottom:23px;margin-bottom:24px;border-bottom:1px solid var(--border)}.studentcard .button{width:100%}.studentfoot{text-align:center;color:#99a3ad;font-size:11px;line-height:1.8;margin-top:23px}.center{text-align:center}#toasts{position:fixed;right:24px;bottom:24px;z-index:10}.toast{background:#674127;color:white;padding:14px 20px;border-radius:9px;font-size:13px;box-shadow:0 5px 25px #0002;margin-top:8px;max-width:380px}.importbox{display:flex;gap:12px;align-items:center;flex-wrap:wrap}input[type=file]{font-size:12px;max-width:100%}.filehelp{margin-top:15px;line-height:1.8}code{font-size:12px;background:#f1f4f6;padding:3px 6px;border-radius:4px}progress{accent-color:var(--accent);width:80px;height:6px;margin-left:9px}body:has(dialog[open]){overflow:hidden}@media(min-width:1600px){.content{padding-top:45px}}@media(max-width:1100px){.sidebar{width:204px}.main{margin-left:204px}.content{padding:30px 25px}.topbar{padding:0 25px}.cards{gap:12px}.stat{padding:16px}td,th{padding-inline:18px}.split{grid-template-columns:1fr}.reportfilters{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{width:auto;position:relative;flex-direction:row;align-items:center;padding:15px 18px;border-right:0;border-bottom:1px solid var(--border);gap:20px}.brand{font-size:20px;padding:0;margin:0}.brandmark{width:31px;height:31px}.nav{display:flex;gap:3px;margin-left:auto}.nav a{padding:10px}.nav a span{display:none}.sidebottom{display:none}.main{margin:0}.topbar{height:52px;padding:0 20px;font-size:11px}.content{padding:25px 18px}.pagehead{align-items:start;gap:12px}.pagehead h1{font-size:25px}.pagehead p{font-size:12px}.pagehead>.button{font-size:11px;padding:9px 10px;min-height:38px}.cards{grid-template-columns:repeat(2,1fr)}.stat .number{font-size:27px}.cardhead,.cardbody{padding:20px}.toolbar{padding:15px}.livecard{padding:20px}.livecard h2{font-size:18px}.qrmini{display:none}.footer{display:block;line-height:1.8}.footer span{display:block}.row{gap:12px}.inlineform{flex-wrap:wrap}.inlineform .field{min-width:150px}.authwrap{grid-template-columns:1fr}.authstory{padding:35px 25px}.authstory .brand{margin-bottom:30px}.authstory h1{font-size:32px}.authstory>p,.authsteps{display:none}.authmain{padding:40px 25px}.reportfilters{grid-template-columns:1fr 1fr}.tabs{gap:0}.tabs button{padding:8px;font-size:11px}.modalbody{padding:22px}.studentcard{padding:25px 22px}}

.actions{flex-wrap:wrap}.tableaction{display:inline-flex;margin:3px 10px 3px 0}.deleteaction{color:#ad4242}.lesson-management{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}.lesson-management:empty{display:none}
.lesson-row-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:14px}.lesson-row-actions>.tableaction{margin:0;padding:0;line-height:20px;flex:none}
.group-selection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.group-selection-actions{display:flex;gap:14px}.group-selection-button{border:0;background:none;padding:3px 0;color:var(--accent);font-size:12px;line-height:20px}.group-selection-button:hover{text-decoration:underline}
