:root{font-family:Manrope,system-ui,sans-serif;color-scheme:light;--accent:#248963;--accent-deep:#17664a;--mint:#dff4ea;--bg:#eef5f1;--bg2:#f8faf9;--text:#18241f;--muted:#64736c;--glass:rgba(255,255,255,.68);--glass-strong:rgba(255,255,255,.86);--border:rgba(255,255,255,.82);--line:rgba(39,72,58,.11);--shadow:0 12px 32px rgba(30,76,58,.09),inset 0 1px rgba(255,255,255,.82);--danger:#d94f4f;--danger-bg:#fff0ee;--warning:#c87920;--warning-bg:#fff5df;--info:#596bd8;--radius-xl:26px;--radius-lg:20px;--radius-md:14px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px}:root[data-theme=dark]{color-scheme:dark;--bg:#0c1511;--bg2:#111d18;--text:#edf5f1;--muted:#98aaa2;--glass:rgba(28,43,36,.72);--glass-strong:rgba(33,49,42,.9);--border:rgba(188,239,216,.1);--line:rgba(210,241,227,.1);--shadow:0 16px 42px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.06);--mint:#183b2e;--danger-bg:#3c2020;--warning-bg:#3b3020}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 92% 2%,rgba(36,137,99,.16),transparent 30%),radial-gradient(circle at -10% 35%,rgba(91,109,216,.08),transparent 28%),linear-gradient(160deg,var(--bg2),var(--bg));-webkit-font-smoothing:antialiased}button,input{font:inherit}.shell{width:min(100%,720px);margin:auto;padding:max(20px,env(safe-area-inset-top)) 18px calc(36px + env(safe-area-inset-bottom));animation:appear .3s ease}.top{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.top h1,.shell>h1{font-size:clamp(24px,7vw,34px);line-height:1.15;letter-spacing:-.045em;margin:4px 0 0}.top>span:last-child{width:44px}.eyebrow{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.icon-button{width:46px;height:46px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;color:var(--text);background:var(--glass);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer}.icon-button:active{transform:scale(.94)}.glass{position:relative;border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(145deg,var(--glass-strong),var(--glass));box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.next-class{padding:20px;display:flex;align-items:center;gap:16px;overflow:hidden}.next-class:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-45px;top:-60px;background:#2489631f}.orb,.block-icon,.menu-icon{display:grid;place-items:center;flex:none;background:linear-gradient(145deg,#43aa83,var(--accent));color:#fff;box-shadow:0 8px 20px #2489633d,inset 0 1px #ffffff4d}.orb{width:52px;height:52px;border-radius:17px}.next-class span{font-size:12px;color:var(--muted);font-weight:600}.next-class h2{font-size:19px;margin:2px 0}.next-class p{font-size:13px;margin:4px 0 0;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 2px 12px}.section-title h2,.section-heading{font-size:19px;letter-spacing:-.025em;margin:0}.section-title>span{font-size:12px;background:var(--mint);color:var(--accent);padding:4px 9px;border-radius:20px;font-weight:800}.h-scroll{display:flex;overflow:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -18px;padding:0 18px 10px;scrollbar-width:none}.announcement{padding:18px;min-width:min(86vw,380px);scroll-snap-align:start;overflow:hidden}.announcement>svg{position:absolute;right:16px;top:16px;color:var(--warning)}.announcement h3{margin:10px 0 5px;font-size:18px}.announcement p{margin:0;color:var(--muted);font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.announcement--urgent{background:linear-gradient(145deg,var(--danger-bg),var(--glass));border-color:#d94f4f33}.badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:10px;font-weight:800;padding:5px 8px;border-radius:20px;background:#64736c1c;color:var(--muted)}.badge--success{background:var(--mint);color:var(--accent-deep)}.badge--warning,.badge--important{background:var(--warning-bg);color:var(--warning)}.badge--danger,.badge--urgent{background:var(--danger-bg);color:var(--danger)}.course-progress{padding:21px;margin-top:20px}.progress-head{display:flex;align-items:end;justify-content:space-between}.progress-head h2{font-size:18px;margin:4px 0 13px}.progress-head strong{font-size:31px;letter-spacing:-.06em;color:var(--accent);margin-bottom:8px}.progress{height:8px;background:#506c601f;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-deep),#3bb081);box-shadow:0 0 12px #2489634d;transition:width .7s ease}.course-progress p{display:flex;gap:7px;align-items:center;margin:12px 0 0;color:var(--muted);font-size:12px}.course-progress p svg{color:var(--accent)}.stack{display:grid;gap:14px}.block-card{padding:18px;display:flex;align-items:flex-start;gap:14px}.block-icon{width:46px;height:46px;border-radius:15px}.grow{min-width:0;flex:1}.block-card h3{margin:3px 0 12px;font-size:17px}.mini-progress{display:flex;gap:10px;align-items:center}.mini-progress .progress{flex:1;height:6px}.mini-progress>span{font-size:11px;color:var(--muted);font-weight:700}.task-row{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);padding:13px 0 0;margin-top:13px;cursor:pointer;text-align:left}.task-row>span{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px}.task-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-row>span:first-child svg{color:var(--muted);flex:none}.profile-card{text-align:center;padding:25px}.avatar{width:78px;height:78px;border-radius:27px;margin:0 auto 12px;display:grid;place-items:center;overflow:hidden;background:var(--mint);color:var(--accent)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar svg{width:36px;height:36px}.profile-card h2{margin:0;font-size:22px}.profile-card>p{color:var(--muted);font-size:13px;margin:4px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.stats div{display:grid;gap:3px}.stats div+div{border-left:1px solid var(--line)}.stats b{font-size:22px}.stats span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.section-heading{margin:27px 2px 12px}.settings{overflow:hidden;border-radius:var(--radius-lg)}.settings button,.admin-menu button{display:flex;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);padding:16px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.settings button:last-child,.admin-menu button:last-child{border:0}.settings button>svg:first-child{color:var(--accent);margin-right:12px}.settings button span{flex:1}.settings button>svg:last-child{color:var(--accent)}.achievements{display:grid;gap:10px}.achievements .glass{padding:15px;display:flex;gap:13px;align-items:center}.achievement-icon{font-size:30px}.achievements b{font-size:14px}.achievements p{margin:3px 0;color:var(--muted);font-size:12px}.achievements small{color:var(--accent);font-size:10px}.meta{display:flex;gap:12px;align-items:center;margin:14px 0 20px}.meta>span:not(.badge){display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.prose{padding:20px}.prose h2{margin:0 0 12px;font-size:18px}.prose p{white-space:pre-line;line-height:1.7;color:var(--muted);font-size:14px}.upload{display:flex;flex-direction:column;align-items:center;text-align:center;padding:25px;border:1.5px dashed rgba(36,137,99,.35);border-radius:var(--radius-xl);margin-top:15px;background:#2489630e;color:var(--accent);cursor:pointer}.upload b{margin:8px 0 3px}.upload span{font-size:11px;color:var(--muted)}.upload input{position:absolute;width:1px;height:1px;opacity:0}.upload.disabled{opacity:.45;pointer-events:none}.error{color:var(--danger);font-size:13px}.submission{padding:16px;margin:10px 0;display:grid;grid-template-columns:1fr auto;gap:7px}.submission time{color:var(--muted);font-size:11px}.submission p{grid-column:1/-1;margin:4px 0 0;font-size:13px}.admin-avatar{width:45px;height:45px;border-radius:15px;background:linear-gradient(145deg,#43aa83,var(--accent));color:#fff;display:grid;place-items:center;font-weight:800}.admin-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-kpis .glass{padding:18px;display:flex;flex-direction:column}.admin-kpis span{font-size:12px;color:var(--muted)}.admin-kpis b{font-size:32px;margin-top:5px}.admin-menu{overflow:hidden;border-radius:var(--radius-lg)}.admin-menu button{gap:12px}.menu-icon{width:39px;height:39px;border-radius:13px}.menu-icon svg{width:19px}.admin-menu button>span:nth-child(2){display:grid;gap:2px;flex:1}.admin-menu small{color:var(--muted)}.admin-menu button>svg{color:var(--muted);width:18px}.state{min-height:100vh;display:grid;place-content:center;text-align:center;padding:32px}.state>span{font-size:48px}.state h1{margin:16px 0 5px;font-size:25px}.state p{color:var(--muted);max-width:360px;line-height:1.6}.state button{justify-self:center;border:0;border-radius:14px;padding:12px 18px;background:var(--accent);color:#fff;font-weight:700}.skeleton{border-radius:20px;background:linear-gradient(90deg,var(--glass),var(--glass-strong),var(--glass));background-size:200%;animation:shimmer 1.2s infinite}.skeleton.wide{height:64px}.skeleton.card{height:130px;margin-top:18px}@keyframes shimmer{to{background-position:-200%}}@keyframes appear{0%{opacity:0;transform:translateY(5px)}}@media(min-width:600px){.shell{padding-left:26px;padding-right:26px}.stack{grid-template-columns:1fr 1fr}.block-card{min-height:170px}.admin-kpis{grid-template-columns:repeat(4,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.kpi-button{border:0;background:transparent;padding:0;color:var(--text);text-align:left;cursor:pointer}.kpi-button>.glass{height:100%;padding:18px;display:flex;flex-direction:column}.kpi-button small{color:var(--muted);font-size:10px;line-height:1.4}.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell{max-width:820px}.admin-list{display:grid;gap:10px}.admin-item{padding:18px;display:grid;gap:10px}.admin-item small,.muted{color:var(--muted);font-size:12px}.admin-item select,.admin-form input,.admin-form select,.admin-form textarea,.field input,.field select,.field textarea,.section-toolbar select,.attendance-person select,.deadline-row input{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--glass-strong);color:var(--text);outline:none}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2489631f}.admin-form{display:flex;gap:9px;margin-bottom:15px}.admin-form>input{flex:1}.admin-form.vertical{display:grid;margin:0}.admin-form label,.field{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:600}.form-card{padding:18px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-form fieldset{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:9px}.admin-form legend{color:var(--muted);font-size:11px;font-weight:700}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{width:18px!important;height:18px}.primary,.secondary,.danger-button{border:0;border-radius:12px;padding:11px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.primary{background:var(--accent);color:#fff}.primary:hover{background:var(--accent-deep)}.primary:disabled{opacity:.45}.secondary{background:var(--warning-bg);color:var(--warning)}.danger-button{background:var(--danger-bg);color:var(--danger)}.primary svg,.secondary svg,.danger-button svg{width:16px}.row-actions,.review-actions{display:flex;gap:8px;flex-wrap:wrap}.success-text{color:var(--accent);font-size:13px}.analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.analytics-grid .glass{padding:18px;display:grid}.analytics-grid b{font-size:28px}.analytics-grid span{font-size:11px;color:var(--muted)}.compact{gap:9px}.back-link{border:0;background:transparent;color:var(--accent);padding:0;margin:0 0 16px;display:flex;gap:7px;align-items:center;font-weight:700}.back-link svg{width:18px}.entity-row{width:100%;border:1px solid var(--border);padding:17px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--text);cursor:pointer}.entity-row>div{min-width:0;display:grid;gap:4px}.entity-row small,.entity-row span{color:var(--muted);font-size:11px}.entity-row>svg{flex:none;color:var(--muted)}.entity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.entity-head h2{font-size:27px;margin:4px 0}.entity-head p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.person-row,.schedule-row{padding:14px;display:flex;align-items:center;gap:12px}.person-row>svg,.schedule-row>svg{color:var(--accent);flex:none}.person-row div,.schedule-row div{display:grid;gap:3px}.person-row small,.schedule-row small{color:var(--muted);font-size:11px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-toolbar h2{margin:0}.section-toolbar select{width:auto}.review-conditions,.student-answer{padding:18px;margin-bottom:12px}.review-conditions h3,.student-answer h3{margin:0 0 10px;display:flex;align-items:center;gap:8px}.review-conditions p,.student-answer>p{color:var(--muted);white-space:pre-line;line-height:1.55}.file-list{display:grid;gap:8px;margin-top:14px}.file-list button{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--glass);color:var(--text);display:flex;align-items:center;gap:10px;text-align:left}.file-list button>svg{color:var(--accent);flex:none}.file-list button>svg:last-child{margin-left:auto}.file-list button span{display:grid;gap:2px}.file-list small{color:var(--muted)}.review-actions{margin:12px 0}.history-row{padding:14px;margin-bottom:8px;display:grid;grid-template-columns:1fr auto;gap:5px}.history-row small,.history-row p{grid-column:1/-1;color:var(--muted);margin:0}.rollcall-hero{display:flex;gap:12px;align-items:center;padding:13px;border-radius:14px;background:var(--mint)}.rollcall-hero>svg{color:var(--accent)}.rollcall-hero p{margin:3px 0 0;color:var(--muted);font-size:11px}.live-lobby{padding:20px;border-color:#24896359;margin-bottom:20px}.live-heading{display:flex;gap:12px;align-items:center;margin-bottom:15px}.live-heading>div{flex:1}.live-heading h2{margin:2px 0}.live-heading p{margin:0;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:5px}.live-heading p svg{width:14px}.live-heading strong{font-size:26px;color:var(--accent)}.live-lobby>.danger-button{margin-top:14px}.live-dot{width:12px;height:12px;border-radius:50%;background:#e34f4f;box-shadow:0 0 0 6px #e34f4f1f;animation:pulse 1.4s infinite;flex:none}.attendance-roster{display:grid;gap:8px}.attendance-person{padding:13px;display:grid;grid-template-columns:auto 1fr 112px;align-items:center;gap:10px}.attendance-person.is-present{border-color:#24896352;background:linear-gradient(145deg,var(--mint),var(--glass))}.presence-icon{color:var(--danger)}.is-present .presence-icon{color:var(--accent)}.attendance-person div{display:grid;gap:2px}.attendance-person small{color:var(--muted);font-size:10px}.attendance-person select{padding:8px;font-size:11px}.announcement-admin{padding:18px}.announcement-admin-head{display:flex;align-items:center;justify-content:space-between}.announcement-admin-head>div{display:flex;gap:5px}.announcement-admin-head>span,.announcement-admin>small{color:var(--muted);font-size:11px}.announcement-admin h3{margin:12px 0 6px}.announcement-admin p{color:var(--muted);font-size:13px;line-height:1.5;white-space:pre-line}.announcement-admin .row-actions{margin-top:14px}.achievement-preview{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;margin:auto;background:var(--mint);font-size:35px;color:var(--accent);font-weight:800}.achievement-admin-grid{display:grid;gap:12px}.achievement-admin-grid>.glass{padding:17px;display:grid;grid-template-columns:auto 1fr;gap:13px}.achievement-admin-grid .achievement-icon{width:50px;height:50px;border-radius:17px;background:var(--mint);display:grid;place-items:center}.achievement-admin-grid h3{margin:7px 0 4px}.achievement-admin-grid p{margin:0;color:var(--muted);font-size:12px}.achievement-admin-grid small{display:block;color:var(--muted);margin-top:7px}.achievement-admin-grid .row-actions{grid-column:1/-1}.is-disabled{opacity:.55}.course-admin-tree{display:grid;gap:12px}.course-admin-block{overflow:hidden}.course-admin-block-head{width:100%;padding:17px;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:12px;text-align:left}.course-admin-block-head>div{display:grid;gap:3px;flex:1}.course-admin-block-head small{color:var(--muted)}.block-number{width:38px;height:38px;border-radius:13px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800}.course-admin-tasks{border-top:1px solid var(--line);padding:0 15px 14px}.course-admin-tasks>button{width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);display:flex;align-items:center;gap:8px;text-align:left}.course-admin-tasks>button>div{display:grid;gap:4px;flex:1}.course-admin-tasks small{font-size:10px;color:var(--muted)}.course-admin-tasks .add-inline{justify-content:center;color:var(--accent);border:1px dashed rgba(36,137,99,.3);border-radius:12px;margin-top:12px}.assignment-meta{padding:14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.assignment-meta>span{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.deadline-row{padding:13px;display:grid;grid-template-columns:1fr minmax(180px,240px);gap:10px;align-items:center}.deadline-row div{display:grid;gap:3px}.deadline-row small{color:var(--muted)}@keyframes pulse{50%{box-shadow:0 0 0 10px #e34f4f00}}@media(min-width:640px){.analytics-grid{grid-template-columns:repeat(5,1fr)}.achievement-admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.form-columns{grid-template-columns:1fr}.attendance-person{grid-template-columns:auto 1fr}.attendance-person select{grid-column:2}.deadline-row{grid-template-columns:1fr}.section-toolbar{align-items:flex-start}.section-toolbar .primary{padding:9px}}.request-user{display:flex;gap:10px;align-items:center}.request-user>img,.request-user>span{width:46px;height:46px;border-radius:15px;object-fit:cover;display:grid;place-items:center;background:var(--mint)}.extension-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.group-deadline{padding:12px;border:1px solid var(--line);border-radius:14px;display:grid;gap:8px}.publish-actions{display:flex;gap:9px;flex-wrap:wrap}.publish-actions>*{flex:1}.linked-deadline{grid-template-columns:1fr minmax(150px,210px) minmax(150px,210px)}.upload-instruction{padding:14px;margin-bottom:12px}.upload-instruction p{margin:5px 0 0;color:var(--muted)}@media(max-width:620px){.course-toolbar{align-items:flex-start;flex-direction:column}.course-toolbar .row-actions{width:100%}.course-toolbar .row-actions>*{flex:1}.linked-deadline{grid-template-columns:1fr}.extension-grid{grid-template-columns:repeat(2,1fr)}}.student-group-actions{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px}.student-achievement-row{padding:12px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.student-achievement-row .achievement-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;overflow:hidden}.student-achievement-row div{display:grid;gap:3px}.student-achievement-row small{color:var(--muted)}@media(max-width:480px){.student-group-actions{grid-template-columns:1fr}.student-achievement-row{grid-template-columns:auto 1fr}.student-achievement-row .danger-button{grid-column:1/-1}}.student-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.student-title small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.student-assignment-row{padding:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.student-assignment-row>div{display:grid;gap:4px;min-width:0}.student-assignment-row small{color:var(--muted);font-size:11px}.empty-state{text-align:center}.empty-state>svg{color:var(--muted);width:42px;height:42px}.empty-state p{color:var(--muted)}.review-group-card{padding:14px}.review-group-title{width:100%;border:0;background:transparent;color:var(--text);display:flex;justify-content:space-between;align-items:center;padding:4px 4px 12px;font-size:17px}.attention-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.attention-grid button{border:1px solid var(--line);border-radius:14px;background:var(--glass);color:var(--text);padding:11px 8px;display:grid;gap:4px;text-align:left}.attention-grid svg{width:17px;color:var(--accent)}.attention-grid b{font-size:24px}.attention-grid span{font-size:10px;color:var(--muted);line-height:1.25}.attention-revision{background:var(--warning-bg)!important}.attention-revision svg{color:var(--warning)!important}.attention-overdue{background:var(--danger-bg)!important}.attention-overdue svg{color:var(--danger)!important}@media(max-width:480px){.attention-grid{grid-template-columns:1fr}.attention-grid button{grid-template-columns:auto auto 1fr;align-items:center}.attention-grid b{font-size:20px}}.review-group-title>span{margin-left:auto;color:var(--muted);font-size:11px;font-weight:500}.attention-grid--four{grid-template-columns:repeat(4,1fr)}.attention-missing{background:var(--danger-bg)!important}.attention-missing svg{color:var(--danger)!important}.review-scope-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:5px;margin-bottom:16px;border-radius:15px;background:var(--glass)}.review-scope-tabs button{border:0;border-radius:11px;padding:11px;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.review-scope-tabs button.is-active{background:var(--glass-strong);color:var(--accent);box-shadow:0 4px 16px #11291f17}.review-scope-tabs svg{width:17px}.review-missing{cursor:default}.urgent-analytics{margin-bottom:16px}.urgent-analytics svg{color:var(--accent)}.urgent-analytics .glass:last-child{grid-column:span 2}.urgent-analytics .glass:last-child b{font-size:15px}.urgent-announcement-row{padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.urgent-announcement-row>div{display:flex;align-items:center;gap:10px;min-width:0}.urgent-announcement-row>div>svg{color:var(--accent);flex:none}.urgent-announcement-row>div>span{display:grid;gap:4px}.urgent-announcement-row small{color:var(--muted);font-size:11px}@media(max-width:600px){.attention-grid--four{grid-template-columns:1fr 1fr}.urgent-announcement-row{align-items:flex-start;flex-direction:column}.urgent-analytics .glass:last-child{grid-column:1/-1}}@media(max-width:380px){.attention-grid--four,.review-scope-tabs{grid-template-columns:1fr}}.block-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.block-card{min-width:0;width:100%;overflow:hidden}.block-card .grow{overflow:hidden}.task-list,.task-row{min-width:0}.task-row>span:first-child{max-width:58%}.attendance-banner{margin-bottom:14px;overflow:hidden;border-color:#e34f4f40}.attendance-banner>button{width:100%;padding:16px;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:13px;text-align:left}.attendance-banner>button>div{flex:1}.attendance-banner h2{margin:3px 0;font-size:17px}.attendance-banner small{color:var(--muted)}.attendance-banner--done{border-color:#2489634d;background:linear-gradient(145deg,var(--mint),var(--glass))}.attendance-banner--done .live-dot{background:var(--accent);box-shadow:none;animation:none}.attendance-action{display:grid;gap:9px;padding:0 16px 16px}.attendance-action input,.submission-editor textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--glass-strong);color:var(--text)}.submission-editor{padding:18px;margin-top:14px;display:grid;gap:11px}.submission-editor h2{margin:0}.file-picker{border:1px dashed rgba(36,137,99,.35);border-radius:13px;padding:13px;display:flex;align-items:center;gap:9px;color:var(--accent);cursor:pointer}.file-picker input{position:absolute;opacity:0;width:1px}.submission-editor>.primary{justify-self:stretch}.file-link{grid-column:1/-1;border:1px solid var(--line);border-radius:11px;padding:9px;background:var(--glass);color:var(--accent);display:flex;align-items:center;gap:7px;text-align:left}.file-link svg{width:17px}.teacher-note{padding:10px;border-radius:10px;background:var(--mint)}.stats{align-items:stretch}.stats>.achievement-stat{border:0;border-left:1px solid var(--line);background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 4px;position:relative}.achievement-stat>svg{position:absolute;right:0;width:13px;color:var(--muted)}.recent-icons{display:flex!important;justify-content:center}.recent-icons i{width:25px;height:25px;margin-left:-5px;border-radius:9px;background:var(--mint);display:grid;place-items:center;font-style:normal;font-size:14px;border:2px solid var(--glass-strong)}.recent-icons i:first-child{margin-left:0}.achievement-catalog{display:grid;gap:11px}.achievement-card{padding:16px;display:flex;gap:13px}.achievement-card>.achievement-icon{width:50px;height:50px;border-radius:17px;display:grid;place-items:center;background:var(--mint);font-size:25px;flex:none}.achievement-card h3{margin:4px 0}.achievement-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.achievement-card small{display:block;color:var(--accent);margin-top:7px}.achievement-card.is-locked{filter:saturate(0);opacity:.68}.achievement-card.is-locked>.achievement-icon{background:#64736c21}@media(min-width:700px){.block-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:380px){.task-row{align-items:flex-start;flex-direction:column}.task-row>span:first-child{max-width:100%}.task-row>span:last-child{width:100%;justify-content:flex-end}}.task-badges{display:flex;gap:6px;flex-wrap:wrap}.student-task-card small{display:block;margin-top:5px;color:var(--muted)}.new-counter{display:inline-flex;min-width:20px;height:20px;padding:0 6px;align-items:center;justify-content:center;border-radius:10px;background:var(--accent);color:#fff;font-size:10px;margin-left:5px}.announcements-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px}.announcements-heading .section-title{margin:0;min-width:0}.announcements-heading .slider-controls{position:static;display:flex;gap:6px;flex:none}.slider-controls button{width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:11px;background:var(--glass);color:var(--text);display:grid;place-items:center;cursor:pointer}.slider-controls button:disabled{opacity:.3;cursor:default}.slider-controls svg{width:18px}.announcement time{display:block;margin-top:10px;color:var(--muted);font-size:11px}.announcement-button{min-width:0}.announcements-section{overflow:hidden}.upload-help{padding:10px 12px;border-radius:12px;background:var(--mint);color:var(--muted);font-size:12px;line-height:1.5}.announcements-heading>h2{margin:0;min-width:0;font-size:19px;letter-spacing:-.025em}.announcement-heading-actions{display:flex;align-items:center;gap:8px;flex:none}.announcement-archive-button{border:0;border-radius:12px;padding:9px 11px;background:var(--mint);color:var(--accent);display:flex;align-items:center;gap:6px;font-weight:800;white-space:nowrap;cursor:pointer}.announcement-archive-button svg{width:16px;flex:none}.announcement-slider{scroll-behavior:smooth;overscroll-behavior-inline:contain;touch-action:pan-x;cursor:grab;scroll-padding-inline:18px}.announcement-slider.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.announcement-button{display:flex;align-items:stretch;flex:0 0 360px;width:360px;max-width:calc(100vw - 52px);padding:0;border:0;background:transparent;color:var(--text);scroll-snap-align:start;scroll-snap-stop:always;cursor:pointer}.announcement-button>.announcement{height:230px;width:100%;min-width:0;display:flex;flex-direction:column;text-align:left}.announcement h3{min-height:2.45em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.announcement p{max-height:6.2em;-webkit-line-clamp:4}.announcement time{margin-top:auto!important;padding-top:11px;border-top:1px solid var(--line);white-space:nowrap;line-height:1.2;flex:none}.announcements-section{max-width:100%}@media(max-width:599px){body{overflow-x:hidden}.announcements-heading{gap:8px}.announcements-heading .slider-controls{display:none}.announcement-heading-actions{margin-left:auto}.announcement-archive-button{padding:8px 9px;font-size:12px}.announcement-slider{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:auto}.announcement-button{flex-basis:min(82vw,340px);width:min(82vw,340px);min-width:min(82vw,340px);max-width:calc(100vw - 54px)}.announcement-button>.announcement{height:220px}.announcement h3{font-size:17px;margin-top:9px}.announcement p{-webkit-line-clamp:3;max-height:4.65em}}@media(max-width:350px){.announcements-heading>h2{font-size:17px}.announcement-archive-button{padding:7px 8px;gap:4px}.announcement-archive-button svg{width:14px}.announcement-button{flex-basis:80vw;width:80vw;min-width:80vw}}.task-row>span:first-child{max-width:62%}.task-main>span{display:grid;gap:2px;min-width:0}.task-main b{font-size:12px;overflow:hidden;text-overflow:ellipsis}.task-main small{font-size:9px;color:var(--muted)}.achievement-image{width:100%;height:100%;object-fit:cover;border-radius:inherit}.recent-icons .achievement-image{border-radius:7px}.live-toast{position:fixed;z-index:1000;left:50%;top:14px;transform:translate(-50%);width:min(calc(100% - 24px),520px);padding:14px;display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;border:1px solid rgba(36,137,99,.35);border-radius:18px;background:var(--glass-strong);box-shadow:0 18px 55px #00000038;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:toast-in .25s ease-out}.live-toast-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--mint);font-size:26px;overflow:hidden}.live-toast h3{margin:3px 0;font-size:16px}.live-toast p{margin:0;color:var(--muted);font-size:12px;line-height:1.35;max-height:48px;overflow:hidden}.live-toast>button{border:0;background:transparent;color:var(--muted);align-self:start}.live-toast>button svg{width:18px}.student-preview{display:grid;gap:12px}.student-management{padding:18px;display:grid;gap:16px}.student-title{display:flex;gap:12px;align-items:center}.student-title>svg{color:var(--accent);width:38px;height:38px}.student-title h2,.student-title p{margin:0}.student-title p{color:var(--muted);font-size:12px}.section-heading>svg,.section-toolbar h2>svg{width:19px;vertical-align:middle}.live-lobby .error{margin:10px 0 0;color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-20px)}}.next-class-button,.course-overview-button,.block-button,.announcement-button,.section-title-button{display:block;width:100%;border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer}.next-class-button:active,.course-overview-button:active,.block-button:active,.student-block-card:active,.student-task-card:active{transform:scale(.985)}.next-class-button .next-class,.course-overview-button .course-progress{width:100%}.next-class strong{display:flex;align-items:center;gap:4px;color:var(--accent);font-size:11px;margin-top:8px}.next-class strong svg{width:14px}.section-title-button{display:flex}.section-title-button>span{display:flex;align-items:center;gap:4px}.section-title-button svg{width:14px}.announcement-button{min-width:min(86vw,380px);scroll-snap-align:start}.announcement-button .announcement{min-width:0;width:100%;height:160px}.announcement h3,.announcement p{overflow-wrap:anywhere}.block-button .block-card{width:100%;height:100%;cursor:pointer}.block-button .block-card>svg{align-self:center;color:var(--muted);flex:none}.student-block-list,.student-task-list,.announcement-archive,.schedule-days{display:grid;gap:12px}.student-block-card,.student-task-card,.archive-row{width:100%;border:1px solid var(--border);padding:17px;display:flex;align-items:center;gap:13px;color:var(--text);text-align:left;cursor:pointer}.student-block-card>div,.student-task-card>div,.archive-row>div{min-width:0;flex:1}.student-block-card h3,.student-task-card h3,.archive-row h3{margin:5px 0}.student-block-card p,.archive-row p{margin:0;color:var(--muted);font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.student-task-card strong{display:block;color:var(--accent);font-size:13px;margin-top:7px}.student-block-card>svg,.student-task-card>svg{color:var(--muted);flex:none}.deadline-hero{padding:17px;margin:15px 0;display:grid;gap:5px;border-color:#24896347;background:linear-gradient(145deg,var(--mint),var(--glass))}.deadline-hero b{font-size:18px;color:var(--accent)}.deadline-hero strong{font-size:14px}.deadline-hero--expired{background:linear-gradient(145deg,var(--danger-bg),var(--glass));border-color:#d94f4f40}.deadline-hero--expired b{color:var(--danger)}.schedule-nav{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;margin-bottom:18px}.schedule-nav button{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--glass);color:var(--text)}.schedule-days section>h2{font-size:16px;text-transform:capitalize;margin:18px 2px 8px}.lesson-card{padding:15px;display:grid;grid-template-columns:58px 1fr;gap:13px;margin-bottom:8px}.lesson-time{font-size:17px;font-weight:800;color:var(--accent);display:grid;align-content:start}.lesson-time small{font-size:11px;color:var(--muted)}.lesson-card h3{margin:7px 0}.lesson-card p{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}.lesson-card p svg{width:14px}.lesson-card.is-cancelled{opacity:.65;filter:saturate(.5)}.empty-day{padding:14px;color:var(--muted);border:1px dashed var(--line);border-radius:14px;display:flex;gap:8px;align-items:center;font-size:12px}.empty-day svg{width:17px}.announcement-detail{padding:21px}.announcement-detail h2{font-size:25px;margin:12px 0 4px}.announcement-detail time{font-size:11px;color:var(--muted)}.announcement-detail>p{white-space:pre-line;line-height:1.65}.announcement-detail .acknowledge{width:100%;margin-top:18px}.archive-row{min-height:120px}.empty-state{padding:30px;text-align:center;color:var(--muted)}.urgent-overlay{position:fixed;inset:0;z-index:2000;background:#06100cc7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;place-items:center;padding:18px}.urgent-dialog{width:min(100%,480px);max-height:90vh;overflow:auto;border-radius:28px;padding:28px;background:var(--glass-strong);border:1px solid rgba(217,79,79,.35);box-shadow:0 30px 80px #0006;text-align:center}.urgent-dialog>svg{width:52px;height:52px;color:var(--danger)}.urgent-dialog h2{font-size:25px}.urgent-dialog p{text-align:left;white-space:pre-line;line-height:1.65}.urgent-dialog .primary{width:100%;margin-top:15px}.urgent-dialog small{display:block;color:var(--muted);margin-top:10px}.profile-group{display:inline-block;margin-top:9px;padding:6px 11px;border-radius:99px;background:var(--mint);color:var(--accent);font-size:12px}.avatar-change{display:flex;justify-content:center;align-items:center;gap:5px;color:var(--accent);font-size:11px;cursor:pointer;margin-bottom:10px}.avatar-change input{position:absolute;opacity:0;width:1px}.avatar-change.is-disabled{color:var(--muted);cursor:not-allowed}.settings button:disabled{opacity:.5}.feature-toggle,.sound-settings{padding:16px;margin-bottom:17px;display:flex;align-items:center;justify-content:space-between;gap:12px}.feature-toggle>div{display:grid;gap:3px}.feature-toggle small{color:var(--muted)}.sound-settings{display:grid}.sound-settings audio{width:100%}.block-actions{padding:10px 0}.block-actions button{width:auto!important;border:0!important;padding:8px!important;margin:0!important}@media(min-width:700px){.student-block-list{grid-template-columns:1fr 1fr}}.registration-shell{max-width:520px}.registration-head{text-align:center;padding:24px 10px}.registration-head>svg{width:58px;height:58px;padding:14px;border-radius:20px;background:var(--mint);color:var(--accent)}.registration-head h1{margin:8px 0}.registration-head p{color:var(--muted);line-height:1.5}.registration-rejected{padding:15px;margin-bottom:12px;border-color:#e34f4f4d}.registration-rejected b{color:var(--danger)}.registration-confirm{padding:14px;border-radius:14px;background:var(--mint);display:grid;gap:9px}.registration-confirm p{margin:0;color:var(--muted)}.admin-toasts{position:fixed;right:14px;top:max(14px,env(safe-area-inset-top));z-index:3000;width:min(390px,calc(100vw - 28px));display:grid;gap:8px;pointer-events:none}.admin-toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--border);border-radius:15px;background:var(--glass-strong);box-shadow:0 14px 38px #11291f33;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:appear .2s ease}.admin-toast>svg{width:20px;color:var(--accent)}.admin-toast--error>svg{color:var(--danger)}.admin-toast span{font-size:13px;font-weight:700}.admin-toast button{border:0;background:transparent;color:var(--muted);padding:3px}.admin-toast button svg{width:17px}.admin-busy .admin-shell button[type=submit],.admin-busy .admin-shell .primary,.admin-busy .admin-shell .danger-button{pointer-events:none;opacity:.58}.admin-busy body:before{content:"";position:fixed;z-index:3100;left:0;top:0;height:3px;width:45%;background:var(--accent);animation:admin-loading 1s ease-in-out infinite alternate}@keyframes admin-loading{to{transform:translate(125%)}}.user-toasts{position:fixed;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:1200;display:grid;gap:8px;pointer-events:none}.user-toast{max-width:520px;margin:auto;width:100%;padding:12px 14px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--line);box-shadow:0 12px 35px #0000002e;display:flex;align-items:center;gap:10px;pointer-events:auto}.user-toast>svg{width:20px;flex:none}.user-toast--success>svg{color:var(--accent)}.user-toast--error>svg{color:var(--danger)}.user-toast span{flex:1;font-size:13px;font-weight:650}.user-toast button{border:0;background:transparent;color:var(--muted);padding:3px}.user-toast button svg{width:17px}.achievement-icon,.achievement-preview,.achievement-card>.achievement-icon{overflow:hidden;border:1px solid var(--line);isolation:isolate}.achievement-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;border-radius:inherit}.achievement-placeholder{width:100%;height:100%;display:grid;place-items:center;background:var(--mint);font-size:24px}.achievement-card>.achievement-icon,.achievement-admin-grid .achievement-icon{width:54px!important;height:54px!important;min-width:54px;flex:none}.achievement-card{min-width:0;overflow:hidden}.achievement-card>div:last-child{min-width:0}.achievement-catalog{grid-template-columns:minmax(0,1fr)}.recent-icons i{overflow:hidden;flex:none}.recent-icons .achievement-image{object-fit:contain}.achievement-icon>.achievement-placeholder,.recent-icons .achievement-placeholder{border-radius:inherit}.achievement-preview{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;padding:14px;border-radius:16px}.achievement-preview>div{display:grid;gap:3px;min-width:0}.achievement-preview b,.achievement-preview small{overflow-wrap:anywhere}.achievement-preview>div>span{font-size:11px;color:var(--muted)}.achievement-filters{display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,minmax(130px,auto));gap:8px;margin:12px 0}.achievement-filters label{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:var(--glass)}.achievement-filters svg{width:17px}.achievement-filters input{border:0;background:transparent;width:100%;padding:11px 0}.achievement-filters select{min-width:0}.achievement-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.achievement-meta>span{font-size:11px;color:var(--muted)}.rarity-common{--rarity:#91a39c}.rarity-rare{--rarity:#3c83d5}.rarity-epic{--rarity:#9657d6}.rarity-legendary{--rarity:#d38b25}.achievement-card,.achievement-admin-grid>*,.student-achievement-row,.achievement-preview{border-color:color-mix(in srgb,var(--rarity,#91a39c) 55%,var(--line))!important}.achievement-card .achievement-icon,.achievement-admin-grid .achievement-icon{box-shadow:0 0 0 2px color-mix(in srgb,var(--rarity,#91a39c) 28%,transparent)}.student-award-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}.show-more{margin:14px auto;display:flex}@media(max-width:720px){.achievement-filters{grid-template-columns:1fr 1fr}.achievement-filters label{grid-column:1/-1}.student-award-form{grid-template-columns:1fr}.achievement-admin-grid .row-actions{flex-wrap:wrap}}@media(max-width:390px){.achievement-filters{grid-template-columns:1fr}.achievement-filters label{grid-column:auto}.achievement-card{grid-template-columns:48px minmax(0,1fr)}.achievement-card>.achievement-icon{width:48px!important;height:48px!important;min-width:48px}}html,body,#root{max-width:100%;overflow-x:hidden}.announcements-section{position:relative;min-width:0;overflow:hidden}.announcements-heading{min-height:40px;margin-bottom:12px}.announcements-heading .slider-controls{display:flex;justify-content:flex-end;gap:6px;margin:0;position:static}.announcements-heading .slider-controls button{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:var(--glass);color:var(--text);display:grid;place-items:center}.announcement-slider{margin:0!important;padding:0 0 10px!important;width:100%;overscroll-behavior-x:contain;touch-action:pan-x;scroll-snap-type:x mandatory}.announcement-slider .announcement-button{display:flex;flex:0 0 360px;width:360px;min-width:360px;max-width:calc(100vw - 52px);scroll-snap-align:start;scroll-snap-stop:always}.announcement-slider .announcement-button>.announcement{width:100%;min-width:0;height:230px;display:flex;flex-direction:column}.announcement-slider .announcement time{margin-top:auto!important}@media(max-width:599px){.announcements-heading{gap:8px;margin-bottom:11px}.announcements-heading .slider-controls{display:none}.announcement-slider{-webkit-overflow-scrolling:touch}.announcement-slider .announcement-button{flex-basis:min(82vw,340px);width:min(82vw,340px);min-width:min(82vw,340px);max-width:calc(100vw - 54px)}.announcement-slider .announcement-button>.announcement{height:220px}}@media(max-width:350px){.announcement-slider .announcement-button{flex-basis:80vw;width:80vw;min-width:80vw}}.technical-link{width:100%;margin:18px 0 8px;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;cursor:pointer}.technical-link svg{width:15px}.notification-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;margin-bottom:16px;border-radius:15px;background:var(--glass)}.notification-tabs button{border:0;border-radius:11px;padding:10px 6px;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:700}.notification-tabs button.is-active{background:var(--glass-strong);color:var(--accent);box-shadow:0 4px 16px #11291f17}.notification-tabs svg{width:15px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.service-grid>.glass{padding:15px;display:grid;gap:8px;justify-items:start}.service-grid svg{color:var(--accent);width:22px}.show-more{width:100%;margin-top:10px}.admin-toast .toast-undo{border:0;border-radius:9px;padding:7px 9px;background:var(--mint);color:var(--accent);font-size:11px;font-weight:800;white-space:nowrap}@media(max-width:480px){.service-grid{grid-template-columns:1fr}.service-grid>.glass{grid-template-columns:auto 1fr auto;align-items:center}.notification-tabs button{font-size:10px}}.selected-occurrence{padding:13px;display:grid;gap:4px;border-color:#24896359}.selected-occurrence span,.selected-occurrence small{color:var(--muted)}.override-heading{margin-top:28px}.cancelled-occurrence{border-color:#d23e3e47;background:linear-gradient(145deg,var(--danger-bg),var(--glass))}.notification-campaign>div{gap:7px}.notification-campaign span{display:flex;align-items:center;gap:5px}.notification-campaign span svg{width:14px}.campaign-badges{display:flex;gap:5px;flex-wrap:wrap}.notification-stats{margin-bottom:18px}.recipient-filters{display:grid;gap:9px;margin-bottom:14px}.recipient-tabs{grid-template-columns:repeat(4,1fr)}.recipient-tabs button{display:grid;gap:2px}.recipient-tabs small{font-size:9px}.search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 11px;background:var(--glass-strong)}.search-field svg{width:17px;color:var(--muted)}.search-field input,.recipient-filters select{width:100%;border:0;padding:11px 0;background:transparent;color:var(--text);outline:none}@media(max-width:480px){.recipient-tabs,.notification-stats{grid-template-columns:1fr 1fr}}.danger-zone{margin-top:42px;border-top:1px solid var(--line);padding-top:18px}.danger-zone>summary{cursor:pointer;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:7px}.danger-zone>summary svg{width:16px}.danger-zone>.glass{margin-top:12px;border-color:#e34f4f4d}.purge-confirm{padding:14px;border-radius:14px;background:var(--danger-bg);display:grid;gap:8px}.purge-confirm code{word-break:break-all}.purge-confirm input{border:1px solid var(--danger);border-radius:11px;padding:11px;background:var(--glass-strong);color:var(--text)}.danger-zone{margin-top:18px}.error-summary{width:100%;border:1px solid var(--line);margin-top:18px;padding:15px;display:flex;align-items:center;gap:12px;color:var(--text);text-align:left}.error-summary>svg{color:var(--warning)}.error-summary>div{display:grid;gap:3px;flex:1}.error-summary span{color:var(--muted);font-size:11px}.compact-errors{margin-top:10px}.compact-errors .admin-item{padding:12px}.compact-errors p{max-height:4.5em;overflow:hidden}.status-chart{padding:17px;margin-top:14px}.status-chart h3{margin-top:0}.status-chart>div{display:grid;grid-template-columns:110px 1fr 30px;gap:8px;align-items:center;margin-top:9px;font-size:11px}.status-chart>div:has(i){background:linear-gradient(90deg,var(--mint),transparent);background-size:var(--bar,0) 100%;background-repeat:no-repeat}.status-chart i{height:8px;border-radius:10px;background:var(--accent);min-width:2px}.status-chart b{text-align:right}.course-home-section{margin-top:34px;padding-top:4px}.course-home-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 12px}.course-home-heading h2{margin:0;font-size:19px;letter-spacing:-.025em}.course-home-section .course-progress{margin-top:0;padding:21px}.course-home-metrics{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 15px}.course-home-metrics span{display:flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:var(--glass);color:var(--muted);font-size:11px}.course-home-metrics svg{width:15px;color:var(--accent)}.course-home-metrics b{color:var(--text)}.new-counter--new{background:var(--accent)}.new-counter--warning{background:var(--warning);box-shadow:0 0 0 4px var(--warning-bg)}.new-counter--danger{background:var(--danger);box-shadow:0 0 0 4px var(--danger-bg)}.student-task-card--revision_required{border-color:#d68f2d59}.student-task-card--failed{border-color:#d94f4f66;background:linear-gradient(145deg,var(--danger-bg),var(--glass))}@media(max-width:420px){.course-home-section{margin-top:29px}.course-home-metrics{gap:7px}.course-home-metrics span{padding:6px 8px}.course-home-section .course-progress{padding:18px}}.loading-screen{position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px 22px calc(32px + env(safe-area-inset-bottom));overflow:hidden;text-align:center;animation:loading-enter .22s ease}.loading-glow{position:absolute;z-index:-1;width:min(86vw,480px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(36,137,99,.2),transparent 68%);filter:blur(10px)}.loading-visual{width:min(62vw,260px);aspect-ratio:4/3;display:grid;place-items:center;padding:12px;overflow:hidden}.loading-visual img{display:block;width:100%;height:100%;object-fit:contain}.loading-screen h1{max-width:520px;margin:0;font-size:clamp(22px,6vw,34px);line-height:1.18;letter-spacing:-.035em}.loading-progress{width:min(50vw,190px);height:6px;border-radius:99px;overflow:hidden;background:#506c6021}.loading-progress i{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-deep),#57b58f);animation:loading-slide 1.15s ease-in-out infinite}.loading-screen--simple{gap:0}.loading-spinner{width:42px;height:42px;border:4px solid rgba(36,137,99,.18);border-top-color:var(--accent);border-radius:50%;animation:loading-spin .8s linear infinite}.loading-screen--preview{min-height:430px;border-radius:calc(var(--radius-xl) - 2px);padding:28px 18px}.loading-screen--preview .loading-visual{width:min(58%,220px)}.loading-disabled-label{padding:6px 10px;border-radius:99px;background:var(--warning-bg);color:var(--warning);font-size:11px;font-weight:800}.loading-preview-frame{overflow:hidden}.loading-image-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-lg)}.loading-image-choices legend{padding:0 5px;color:var(--muted);font-size:12px}.loading-image-choices button{min-width:0;padding:8px;border:1px solid var(--line);border-radius:15px;background:var(--glass);color:var(--text);cursor:pointer}.loading-image-choices button.is-active{border-color:var(--accent);box-shadow:0 0 0 2px #24896321}.loading-image-choices img{display:block;width:100%;height:72px;object-fit:contain}.loading-image-choices span{font-size:11px;font-weight:700}.loading-settings .file-picker{position:relative}.loading-settings .file-picker input{position:absolute;width:1px;height:1px;opacity:0}.loading-settings .secondary.is-active{border-color:var(--accent);color:var(--accent)}@keyframes loading-enter{0%{opacity:0}to{opacity:1}}@keyframes loading-slide{0%{transform:translate(-115%)}50%{transform:translate(140%)}to{transform:translate(260%)}}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(max-width:420px){.loading-image-choices{gap:6px;padding:8px}.loading-image-choices button{padding:5px}.loading-image-choices img{height:58px}.loading-screen--preview{min-height:380px}}.data-audit{margin-top:18px;padding:16px;display:grid;gap:13px}.data-audit>div:first-child{display:flex;align-items:center;gap:11px}.data-audit>div:first-child>svg{color:var(--accent)}.data-audit h3{margin:0;font-size:16px}.data-audit p{margin:3px 0 0;color:var(--muted);font-size:11px}.audit-results{display:grid;gap:9px;border-top:1px solid var(--line);padding-top:12px}.audit-results>small{color:var(--muted)}.audit-row{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:13px;background:#506c600f}.audit-row>div{display:grid;gap:3px;min-width:0;flex:1}.audit-row span{color:var(--muted);font-size:11px}.audit-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.loading-stage{position:relative;width:min(88vw,520px);height:min(68vh,620px);min-height:390px;overflow:hidden;background:linear-gradient(145deg,var(--glass-strong),var(--glass))}.loading-media{position:absolute;inset:-2%;width:104%;height:104%;object-fit:contain;transition:transform .18s ease-out;will-change:transform}.loading-stage--custom .loading-media{object-fit:cover}.loading-shade{position:absolute;inset:0;background:linear-gradient(180deg,#08191205 20%,#08191238 58%,#081912b8)}.loading-content{position:absolute;z-index:2;left:16px;right:16px;bottom:16px;display:grid;justify-items:center;gap:14px;padding:20px;border:1px solid rgba(255,255,255,.28);border-radius:22px;background:#11261d70;color:#fff;box-shadow:0 16px 38px #0000002e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.loading-content h1{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.28)}.loading-brand{font-size:10px;font-weight:900;letter-spacing:.2em;color:#ffffffc7}.loading-content .loading-progress{background:#fff3}.loading-content .loading-progress i{background:linear-gradient(90deg,#fff,#69d3a8)}.loading-media--float{animation:loading-float 7s ease-in-out infinite alternate}@keyframes loading-float{0%{transform:translate3d(-5px,-3px,0) scale(1.025)}50%{transform:translate3d(3px,4px,0) scale(1.035)}to{transform:translate3d(6px,-2px,0) scale(1.025)}}.loading-master-toggle{padding:13px;border:1px solid var(--line);border-radius:15px;background:#2489630f}.loading-master-toggle span,.loading-settings .check-row span{display:grid;gap:3px}.loading-settings label>small,.loading-settings .check-row small{color:var(--muted);font-size:10px;line-height:1.45}.loading-preview-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:16px;background:#050f0bb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.loading-preview-dialog{width:min(100%,960px);max-height:calc(100dvh - 32px);overflow:auto;padding:16px}.loading-preview-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.loading-preview-toolbar>.icon-button{margin-left:auto;flex:none}.preview-switch{display:flex;gap:4px;padding:4px;border-radius:14px;background:#506c601a}.preview-switch button{display:flex;align-items:center;gap:5px;border:0;border-radius:10px;padding:8px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.preview-switch button.is-active{background:var(--glass-strong);color:var(--accent);box-shadow:var(--shadow)}.preview-switch svg{width:15px}.loading-preview-canvas{overflow:hidden;margin:auto;border:1px solid var(--line);border-radius:22px;background:var(--bg);color:var(--text);box-shadow:0 18px 50px #00000038}.preview-theme-light{--bg:#eef5f1;--bg2:#f8faf9;--text:#18241f;--muted:#64736c;--glass:rgba(255,255,255,.68);--glass-strong:rgba(255,255,255,.86);--border:rgba(255,255,255,.82)}.preview-theme-dark{--bg:#0c1511;--bg2:#111d18;--text:#edf5f1;--muted:#98aaa2;--glass:rgba(28,43,36,.72);--glass-strong:rgba(33,49,42,.9);--border:rgba(188,239,216,.1)}.preview-device-mobile{width:min(100%,390px);aspect-ratio:9/16}.preview-device-desktop{width:100%;aspect-ratio:16/9}.loading-preview-canvas .loading-screen{min-height:100%;height:100%;padding:12px}.loading-preview-canvas .loading-stage{width:100%;height:100%;min-height:0}.loading-preview-canvas .loading-content{padding:14px;gap:9px}.loading-preview-canvas .loading-content h1{font-size:clamp(17px,4vw,28px)}.loading-preview-dialog>small{display:block;margin-top:10px;color:var(--muted);text-align:center}.loading-screen--preview{min-height:100%;height:100%}@media(max-width:620px){.loading-stage{width:100%;height:min(72vh,620px)}.loading-preview-toolbar{align-items:stretch;flex-wrap:wrap}.preview-switch{flex:1}.preview-switch button{justify-content:center;flex:1;padding:7px 5px}.loading-preview-toolbar>.icon-button{width:40px;height:40px}.preview-device-desktop{aspect-ratio:4/3}.loading-content{left:11px;right:11px;bottom:11px;padding:16px}.loading-content h1{font-size:clamp(21px,7vw,30px)}}@media(prefers-reduced-motion:reduce){.loading-media{transform:none!important;will-change:auto}}.app-frame{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-frame>.shell,.app-frame>.state{flex:1}.app-version-footer{flex:none;padding:8px 18px calc(14px + env(safe-area-inset-bottom));color:var(--muted);font-size:9px;letter-spacing:.04em;text-align:center;opacity:.68}.app-version-setting{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(110px,180px) auto;align-items:center;gap:11px;margin-top:18px;padding:14px}.app-version-setting>svg{color:var(--accent)}.app-version-setting>div{display:grid;gap:3px}.app-version-setting small{color:var(--muted);font-size:10px}.app-version-setting input{min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--glass-strong);color:var(--text)}.app-version-setting button{white-space:nowrap}@media(max-width:520px){.app-version-setting{grid-template-columns:auto 1fr}.app-version-setting input,.app-version-setting button{grid-column:1/-1;width:100%}.app-version-footer{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}
