:root{color-scheme:light;--bg:#f4f6fa;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--primary:#111827;--on-primary:#fff;--accent:#edf2ff;--danger:#dc2626;--shadow:0 12px 35px rgba(16,24,40,.09)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif}.dark{color-scheme:dark;--bg:#080d18;--card:#111827;--text:#f8fafc;--muted:#94a3b8;--line:#253148;--primary:#2684ff;--on-primary:#fff;--accent:#112b50;--danger:#fb7185;--shadow:0 15px 45px rgba(0,0,0,.35)}
button,input,select{font:inherit}.shell{width:min(100%,520px);min-height:100dvh;margin:auto;background:var(--bg);position:relative;padding-bottom:84px}.topbar{height:72px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px);z-index:5}.brand{display:flex;align-items:center;gap:10px}.brand div{display:grid}.brand small{color:var(--muted);font-size:11px}.logo,.avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#0866c6,#39a0ff);color:#fff;font-weight:800}.icon-button,.back{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;width:42px;height:42px;cursor:pointer}.gate{display:none;min-height:calc(100dvh - 156px);padding:40px 28px;text-align:center;place-content:center}.gate.active{display:grid}.gate h1{margin:14px 0 8px}.gate p{color:var(--muted);line-height:1.55}.gate-icon{font-size:50px}.spinner{width:50px;height:50px;border:4px solid var(--line);border-top-color:#2684ff;border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}
.button{border:0;border-radius:12px;padding:13px 17px;background:var(--primary);color:var(--on-primary);font-weight:700;cursor:pointer;text-decoration:none;text-align:center;margin-top:9px}.button.secondary{background:var(--accent);color:var(--text);border:1px solid var(--line)}.view{display:none;padding:16px 18px 28px}.view.active{display:block}.hero{display:flex;gap:13px;align-items:center;padding:12px 0 18px}.hero h1,.page-head h1{font-size:24px;margin:0}.hero p,.page-head p{margin:4px 0 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stats div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;text-align:center;box-shadow:var(--shadow)}.stats b{display:block;font-size:22px}.stats span{color:var(--muted);font-size:11px}.view>h2{font-size:17px;margin:25px 0 12px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-card{min-height:130px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);padding:16px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer;box-shadow:var(--shadow)}.menu-card>span{font-size:27px}.menu-card small{color:var(--muted)}
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.back{font-size:28px}.filters{display:flex;gap:7px;overflow:auto;padding-bottom:10px}.filter{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--card);color:var(--text)}.filter.active{background:var(--primary);color:var(--on-primary)}.lesson-list,.user-list{display:grid;gap:9px}.lesson,.user-row,.profile-card,.lesson-form,.admin{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:var(--shadow)}.lesson{display:flex;align-items:center;gap:12px}.lesson-icon{font-size:26px}.lesson div:nth-child(2){flex:1}.lesson b,.lesson small{display:block}.lesson small{color:var(--muted);margin-top:4px}.empty{padding:32px 15px;text-align:center;color:var(--muted)}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.subject{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:16px;padding:20px 10px;cursor:pointer}.subject span{display:block;font-size:28px;margin-bottom:7px}
.lesson-form{display:grid;gap:15px}.lesson-form label{display:grid;gap:7px;color:var(--muted);font-size:13px}.lesson-form input,.lesson-form select,.access-form input,.access-form select{border:1px solid var(--line);border-radius:11px;padding:12px;background:var(--bg);color:var(--text)}.lesson-form .check{display:flex;align-items:center}.profile-card{text-align:center}.avatar.large{width:72px;height:72px;border-radius:24px;font-size:28px;margin:auto}.profile-card h2{margin:13px 0 3px}.profile-card p{color:var(--muted)}.role-badge{display:inline-block;background:var(--accent);padding:7px 12px;border-radius:99px}.profile-card .button{display:block;width:100%;margin-top:20px}.admin{margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:17px;margin:0}.section-title p{color:var(--muted);font-size:12px;margin:4px 0}.access-form{display:grid;grid-template-columns:1fr 105px;gap:8px;margin:12px 0}.access-form .button{grid-column:1/-1;margin:0}.user-row{box-shadow:none;display:grid;grid-template-columns:1fr auto;align-items:center}.user-row small{color:var(--muted);display:block}.user-actions{display:flex;gap:5px}.tiny{border:1px solid var(--line);border-radius:9px;padding:7px;background:var(--accent);color:var(--text);cursor:pointer}.tiny.danger{color:var(--danger)}
nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:70px;background:color-mix(in srgb,var(--card) 92%,transparent);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);backdrop-filter:blur(16px);z-index:4}nav button{border:0;background:none;color:var(--muted);display:grid;place-content:center;gap:2px;font-size:20px;cursor:pointer}nav button span{font-size:10px}nav button.active{color:#2684ff}.toast{position:fixed;left:50%;bottom:85px;transform:translate(-50%,20px);background:#111827;color:white;padding:11px 15px;border-radius:11px;opacity:0;pointer-events:none;transition:.2s;z-index:10;max-width:88%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}
@media(min-width:521px){body{padding:20px}.shell{min-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}nav{bottom:20px;border-radius:0 0 28px 28px}}
.materials,.test-list,.quiz{display:grid;gap:9px}.materials{grid-template-columns:1fr 1fr;margin-bottom:16px}.materials a,.test-card,.question{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:var(--shadow)}.materials a{text-decoration:none;color:var(--text)}.materials span{font-size:28px}.materials b,.materials small{display:block}.materials small,.test-card small{color:var(--muted);margin-top:4px}.test-card{width:100%;color:var(--text);text-align:left;cursor:pointer;margin-bottom:9px}.test-card small{display:block}.lesson-form textarea{border:1px solid var(--line);border-radius:11px;padding:12px;background:var(--bg);color:var(--text);resize:vertical;font:inherit}.question h3{font-size:16px;margin:0 0 12px}.option{display:flex;gap:9px;padding:9px;border-radius:10px}.option:has(input:checked){background:var(--accent)}#testScore .profile-card{margin-top:14px}
.lesson{width:100%;color:var(--text);text-align:left;cursor:pointer}.lesson-form input[type=file]{padding:10px}.form-divider{text-align:center;color:var(--muted);font-size:12px}.form-note{color:var(--muted);line-height:1.45}.user-row{gap:10px}.user-actions{flex-wrap:wrap;justify-content:flex-end}.access-state{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;font-size:11px}.access-state.open{background:#dcfce7;color:#166534}.access-state.pending{background:#fef3c7;color:#92400e}.lesson-content{white-space:pre-wrap;line-height:1.7;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:14px}.pdf-frame{width:100%;height:calc(100dvh - 190px);min-height:520px;border:1px solid var(--line);border-radius:16px;background:#fff}
@media(min-width:800px){.shell{width:min(100%,1100px)}nav{width:min(calc(100% - 40px),1100px)}.view{padding:24px 32px 38px}.menu-grid{grid-template-columns:repeat(4,1fr)}.lesson-list,.test-list{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-grid{grid-template-columns:repeat(6,1fr)}.admin{padding:22px}.access-form{grid-template-columns:1fr 180px auto}.access-form .button{grid-column:auto;margin:0}.lesson-form{max-width:760px;margin-inline:auto}.pdf-frame{height:calc(100dvh - 180px)}}
@media(min-width:1400px){body{font-size:18px}.shell{width:min(94vw,1500px)}nav{width:min(calc(94vw - 40px),1500px);height:82px}.view{padding:34px 50px 55px}.topbar{height:88px;padding-inline:34px}.menu-card{min-height:170px}.lesson-list,.test-list{grid-template-columns:repeat(3,minmax(0,1fr))}.button{padding:16px 22px}.tiny{padding:10px 13px}.pdf-frame{min-height:720px}}
@media(max-width:420px){.view{padding-inline:12px}.topbar{padding-inline:12px}.menu-grid{gap:8px}.menu-card{min-height:118px;padding:13px}.user-row{grid-template-columns:1fr}.user-actions{justify-content:flex-start}.access-form{grid-template-columns:1fr}.access-form .button{grid-column:auto}.pdf-frame{min-height:430px}}
.lesson-create-inline{margin-top:26px}.lesson-create-inline h2{margin:0 0 4px}.lesson-video{display:block;width:100%;max-height:72dvh;border-radius:16px;background:#000;margin-bottom:14px}.lesson-video[hidden]{display:none}
.video-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.video-picker-head small{display:block;color:var(--muted);margin-top:4px}.video-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.video-choice{min-width:0;padding:8px;border:2px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);text-align:left}.video-choice.selected{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.video-select{display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.video-thumb{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#172033;display:grid;place-items:center;margin-bottom:8px}.video-thumb img{width:100%;height:100%;object-fit:cover}.video-thumb span{font-size:30px;color:#fff}.video-choice b,.video-choice small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-choice small{color:var(--muted);margin-top:4px}.video-remove{width:100%;margin-top:9px;padding:7px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line));border-radius:8px;background:transparent;color:var(--danger);cursor:pointer}details summary{cursor:pointer;color:var(--muted);padding:5px 0}details label{margin-top:10px}@media(min-width:800px){.video-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1400px){.video-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}
