@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg:#f4efe6;--surface:#fffdf8;--surface-2:#f8f3ea;--line:#e4dccd;--ink:#1d2422;--ink-2:#56605c;--ink-3:#8a928e;--brand:#1f5f5b;--brand-ink:#f4efe6;--brand-soft:#dcebe8;--accent:#e8a33d;--ok:#2f7d4f;--ok-soft:#dff0e4;--warn:#a8670c;--warn-soft:#fbedd3;--bad:#b3402e;--bad-soft:#f8e1dc;--info:#3b5ea8;--info-soft:#e1e8f7;--radius:14px;--shadow:0 1px 2px #1d24220f, 0 8px 24px -12px #1d24222e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121615;--surface:#1a201e;--surface-2:#202725;--line:#2e3734;--ink:#e9ede9;--ink-2:#aab3ae;--ink-3:#78827d;--brand:#4fb3aa;--brand-ink:#0d1514;--brand-soft:#1d3936;--accent:#f0b555;--ok:#5cc287;--ok-soft:#1a3426;--warn:#f0b555;--warn-soft:#3a2c14;--bad:#ef7d69;--bad-soft:#3d1f1a;--info:#8fb0ff;--info-soft:#1d2740;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.5 Manrope,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:26px;font-weight:800}h2{font-size:19px;font-weight:700}h3{font-size:15px;font-weight:700}p{margin:0}small,.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:12px 24px;display:flex;position:sticky;top:0}.logo{color:var(--ink);align-items:center;gap:10px;font-size:18px;font-weight:800;display:flex}.logo:hover{text-decoration:none}.logo img{width:30px;height:30px}.nav{flex:1;gap:4px;display:flex}.nav a{color:var(--ink-2);border-radius:9px;padding:7px 12px;font-weight:600}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--brand-soft);color:var(--brand)}.page{flex-direction:column;gap:22px;width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 60px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card.flat{box-shadow:none}.empty{text-align:center;color:var(--ink-2);padding:40px 20px}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}button:hover,.btn:hover{background:var(--surface-2);text-decoration:none}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}button.primary:hover{background:color-mix(in srgb, var(--brand) 88%, black)}button.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}button.danger.solid{background:var(--bad);color:#fff;border-color:var(--bad)}button.ghost{background:0 0;border-color:#0000}button.small{border-radius:8px;padding:5px 10px;font-size:13px}button.big{border-radius:12px;padding:13px 22px;font-size:16px}label.field{color:var(--ink-2);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;outline:none;width:100%;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}textarea{resize:vertical;min-height:120px}input[type=checkbox]{width:auto;accent-color:var(--brand)}.check{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;font-weight:500;display:flex}.check input{margin-top:4px}.hint{color:var(--ink-3);font-size:12.5px;font-weight:500}.alert{border-radius:10px;padding:11px 14px;font-size:14px;font-weight:600}.alert.err{background:var(--bad-soft);color:var(--bad)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.info{background:var(--info-soft);color:var(--info)}.pill{background:var(--surface-2);color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.pill.live{background:var(--bad-soft);color:var(--bad)}.pill.live:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.4s infinite pulse}.pill.present{background:var(--ok-soft);color:var(--ok)}.pill.late{background:var(--info-soft);color:var(--info)}.pill.partial{background:var(--warn-soft);color:var(--warn)}.pill.absent{background:var(--bad-soft);color:var(--bad)}.pill.flag{background:var(--warn-soft);color:var(--warn)}@keyframes pulse{50%{opacity:.35}}.dot{background:var(--ink-3);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.dot.on{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap;padding:11px 12px;font-size:12px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}tr:last-child td{border-bottom:none}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.stat b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;display:block}.stat span{color:var(--ink-2);font-size:12.5px;font-weight:600}.modal-back{z-index:50;background:#0a0e0d73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(560px,100%);max-height:90vh;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:16px;padding:24px;display:flex;overflow:auto}.center-page{place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{flex-direction:column;gap:18px;width:min(440px,100%);display:flex}.suggest{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:-4px;overflow:hidden}.suggest button{border:none;border-bottom:1px solid var(--line);border-radius:0;justify-content:flex-start;width:100%;font-weight:600}.suggest button:last-child{border-bottom:none}.check-pop{z-index:60;background:var(--surface);color:var(--ink);text-align:center;border:3px solid var(--accent);border-radius:20px;flex-direction:column;gap:14px;width:min(380px,92vw);padding:28px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px #00000080}.check-pop .timer{font-variant-numeric:tabular-nums;color:var(--accent);font-size:40px;font-weight:800}.code-box{letter-spacing:.18em;background:var(--surface-2);border-radius:10px;padding:10px 14px;font:800 28px/1 ui-monospace,SF Mono,Menlo,monospace}@media (width<=860px){.topbar{flex-wrap:wrap;gap:10px;padding:10px 16px}.nav{order:3;width:100%;overflow-x:auto}.page{padding:20px 16px 48px}h1{font-size:22px}}.landing{flex-direction:column;min-height:100%;display:flex}.hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:40px;width:100%;max-width:1180px;margin:0 auto;padding:56px 24px 40px;display:grid}.hero h1{letter-spacing:-.03em;margin:16px 0;font-size:clamp(32px,5vw,52px);font-weight:800;line-height:1.05}.hero h1 em{color:var(--brand);font-style:normal}.lead{color:var(--ink-2);max-width:560px;font-size:17px}.join-box{gap:10px;max-width:520px;margin:26px 0 8px;display:flex}.join-box input{letter-spacing:.08em;text-transform:uppercase;padding:13px 16px;font:700 18px/1 ui-monospace,SF Mono,Menlo,monospace}.join-box input::placeholder{letter-spacing:0;text-transform:none;font:500 15px Manrope,sans-serif}.hero-card{flex-direction:column;gap:12px;display:flex;transform:rotate(1.2deg)}.grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.step-num{background:var(--brand);width:34px;height:34px;color:var(--brand-ink);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.cta{background:var(--brand-soft);border-color:#0000;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer{border-top:1px solid var(--line);color:var(--ink-2);justify-content:space-between;margin-top:auto;padding:22px 24px;font-size:14px;display:flex}@media (width<=860px){.hero{grid-template-columns:1fr;gap:28px;padding:32px 16px 24px}.hero-card{transform:none}.grid3{grid-template-columns:1fr}.join-box{flex-direction:column}}.settings-summary{background:var(--surface-2);border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface);flex-direction:column;align-items:center;gap:8px;padding:28px 20px;transition:border-color .15s,background .15s;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--brand);background:var(--brand-soft)}.dropzone .big-icon{font-size:34px}.name-list{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;max-height:420px;display:flex;overflow:auto}.name-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:7px 12px;display:flex}.name-row:last-child{border-bottom:none}.name-row .n{width:28px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.name-row input{box-shadow:none;background:0 0;border:none;padding:4px 0}.name-row input:focus{box-shadow:none}.lesson-card{color:inherit;align-items:center;gap:16px;text-decoration:none;display:flex}.lesson-card:hover{border-color:var(--brand);text-decoration:none}.lesson-card .when{text-align:center;background:var(--surface-2);border-radius:12px;flex:none;width:64px;padding:8px 4px}.lesson-card .when b{font-size:20px;line-height:1;display:block}.lesson-card .when span{color:var(--ink-2);font-size:12px;font-weight:700}.lesson-card.live{border-color:color-mix(in srgb, var(--bad) 45%, var(--line))}.steps{gap:10px;display:grid}.step{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:14px;padding:14px 16px;display:flex}.step.done{opacity:.6}.step .num{background:var(--brand-soft);width:32px;height:32px;color:var(--brand);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.step.done .num{background:var(--ok-soft);color:var(--ok)}.waiting-box{background:var(--brand-soft);color:var(--ink);border-radius:12px;align-items:center;gap:12px;padding:14px 16px;display:flex}.waiting-box>div{flex:1}.spinner{border:3px solid color-mix(in srgb, var(--brand) 30%, transparent);border-top-color:var(--brand);border-radius:50%;flex:none;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:99px;padding:5px 12px;font-size:13px;font-weight:700}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.live-stats{flex-wrap:wrap;gap:6px;display:flex}.live-stats span{background:var(--surface-2);color:var(--ink-2);border-radius:99px;padding:4px 11px;font-size:13px;font-weight:700}.live-stats b{color:var(--ink);font-variant-numeric:tabular-nums;margin-right:4px}.live-stats .s-ok b{color:var(--ok)}.live-stats .s-info b{color:var(--info)}.live-stats .s-warn b{color:var(--warn)}.live-stats .s-bad b{color:var(--bad)}.live-list{flex-direction:column;display:flex}.live-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 2px;display:flex}.live-row:last-child{border-bottom:none}.live-row .nm{text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.live-row .meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.lesson-stat{color:inherit;flex-direction:column;gap:10px;padding:14px 16px;text-decoration:none;display:flex}.lesson-stat:hover{border-color:var(--brand);text-decoration:none}.lesson-stat-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-stat-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.lesson-stat-num b{color:var(--ink);font-size:22px}.lesson-stat-num span{font-size:11px;display:block}.bar{background:var(--surface-2);border-radius:99px;width:100%;height:8px;display:flex;overflow:hidden}.bar.small{flex:none;width:90px;height:6px}.bar i{height:100%;display:block}.legend{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}button.dashed{color:var(--brand);background:0 0;border-style:dashed}.empty-hero{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:44px 24px 28px;display:flex}.empty-hero-icon{background:var(--brand-soft);border-radius:50%;place-items:center;width:76px;height:76px;font-size:36px;display:grid}.empty-hero h2{font-size:24px}.empty-hero>p{max-width:460px}.empty-hero>button{margin-top:6px}.how{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:760px;margin-top:26px;padding-top:22px;display:grid}.how>div{flex-direction:column;align-items:center;gap:4px;display:flex}.how .num{background:var(--surface-2);width:28px;height:28px;color:var(--ink-2);border-radius:50%;place-items:center;margin-bottom:4px;font-size:13px;font-weight:800;display:grid}.how small{color:var(--ink-3)}@media (width<=640px){.how{grid-template-columns:1fr}}.join-card{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.qr-btn{cursor:zoom-in;background:#fff;border:none;border-radius:14px;padding:8px}.qr-btn:hover{background:#fff;transform:scale(1.02)}.qr-btn img{width:150px;height:150px;display:block}a.btn.small{border-radius:8px;padding:5px 10px;font-size:13px}a.btn.tg{color:#2a9fd8}.qr-full{z-index:80;cursor:zoom-out;color:#1d2422;background:#f4efe6;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.qr-full img{background:#fff;border-radius:18px;width:min(70vh,86vw);height:auto;padding:16px}.qr-full-code{letter-spacing:.2em;color:#1f5f5b;font:800 clamp(40px,9vh,96px)/1 ui-monospace,Menlo,monospace}.qr-full-url{color:#56605c;font-size:clamp(18px,3vh,30px);font-weight:700}.grant-btns{gap:4px;display:inline-flex}.gbtn{opacity:.45;background:var(--surface-2);border-radius:8px;width:30px;height:30px;padding:0;font-size:14px}.gbtn.on{opacity:1;background:var(--brand-soft);border-color:var(--brand)}.gbtn:hover{opacity:1}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tabs button{color:var(--ink-2);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:10px 14px}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.a-cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.a-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:4px;padding:18px;display:flex}.a-card .a-ico{font-size:20px}.a-card b{font-variant-numeric:tabular-nums;font-size:36px;font-weight:800;line-height:1.1}.a-card span{color:var(--ink-2);font-weight:600}.a-card small{color:var(--ink-3);font-size:12px}.a-bars{align-items:flex-end;gap:6px;height:210px;padding-top:20px;display:flex}.a-bars.small{gap:3px;height:150px}.a-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.a-bar i{background:linear-gradient(#19a7cf,#5b4be0);border-radius:6px 6px 2px 2px;width:100%;min-height:2px;display:block}.a-bar-n{color:var(--ink-2);margin-bottom:4px;font-size:11px;font-weight:700}.a-bar-l{color:var(--ink-3);white-space:nowrap;margin-top:6px;font-size:11px}.a-bars.small .a-bar-l{font-size:9px}.a-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.a-row{flex-direction:column;gap:4px;font-size:14px;display:flex}.a-visitors{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;display:grid}.a-visitor{text-align:left;width:100%;padding:14px;font-weight:400;display:block}.a-visitor:hover{border-color:var(--brand);background:var(--surface)}.a-dev{font-size:26px;line-height:1}.a-kv{grid-template-columns:max-content 1fr;gap:6px 14px;font-size:14px;display:grid}.a-kv span{color:var(--ink-2)}@media (width<=640px){.a-bars .a-bar-l{display:none}.a-visitors{grid-template-columns:1fr}}.rec-card{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.rec-num{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.rec-video{background:#000;border-radius:12px;width:100%;max-height:70vh}
