@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap";:root{--bg:#070d16;--ink:#f4f8ff;--muted:#e9f0fcad;--line:#ffffff24;--panel:#0c131ead;--panel-2:#ffffff14;--brand:#5da8ff;--brand-strong:#84beff;--sky:#2dd4bf;--amber:#f59e0b;--coral:#ef4444;--ok:#22c55e;--danger:#ef4444;--shadow:0 18px 44px #00000047;--radius:8px;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 620px at 12% -8%, #5da8ff38, transparent 65%), radial-gradient(950px 540px at 88% 0%, #2dd4bf24, transparent 63%), linear-gradient(180deg, #ffffff0a, transparent 260px), var(--bg);background-attachment:fixed;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}img,iframe{max-width:100%}p,h1,h2,h3{margin:0}.app-shell{min-height:100vh;display:block}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg, var(--brand), var(--sky));border-radius:8px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand strong,.brand small{overflow-wrap:anywhere;display:block}.brand small{color:var(--muted)}.app-dock{z-index:40;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);pointer-events:none;grid-template-columns:minmax(160px,220px) minmax(0,auto) minmax(94px,auto);justify-content:space-between;align-items:end;gap:12px;width:min(1180px,100% - 28px);margin:0 auto;display:grid;position:fixed}.dock-brand,.dock-surface,.dock-actions{pointer-events:auto}.dock-brand{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);width:max-content;max-width:100%;min-height:64px;box-shadow:var(--shadow);background:linear-gradient(#ffffff14,#ffffff08),#0c131eb8;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.dock-brand strong,.dock-brand small{white-space:nowrap;display:block}.dock-surface{-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);background:linear-gradient(#ffffff17,#ffffff09),#0c131eb8;border:1px solid #ffffff29;border-radius:8px;align-items:center;min-width:0;max-width:min(70vw,780px);min-height:64px;padding:8px 10px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 44px #0000004d,inset 0 1px #ffffff14}.dock-track{scrollbar-width:none;align-items:center;gap:8px;min-width:0;padding:6px 2px;display:flex;overflow:auto hidden}.dock-track::-webkit-scrollbar{display:none}.dock-item,.dock-button,.dock-user{width:42px;height:42px;color:var(--muted);background:#ffffff12;border:1px solid #ffffff26;border-radius:8px;flex:none;place-items:center;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s,background-color .22s,color .22s;display:inline-grid;box-shadow:inset 0 1px #ffffff14,0 8px 18px #0208103d}.dock-item:hover,.dock-button:hover,.dock-user:hover,.dock-item-active{color:var(--brand-strong);background:#5da8ff24;border-color:#5da8ff6b;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1f,0 12px 24px #02081052}.dock-item-active{position:relative}.dock-item-active:after{content:"";background:linear-gradient(90deg, var(--brand), var(--sky));border-radius:999px;width:18px;height:3px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.dock-actions{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);min-height:64px;box-shadow:var(--shadow);background:linear-gradient(#ffffff14,#ffffff08),#0c131eb8;border-radius:8px;justify-content:flex-end;align-items:center;gap:8px;padding:8px;display:flex}.dock-user{color:var(--ink);font-weight:800}.nav-list{gap:6px;display:grid}.nav-link{color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:11px 12px;text-decoration:none;display:flex}.nav-link.active,.nav-link:hover{color:var(--brand-strong);background:#5da8ff29}.main-area{width:min(1280px,100%);min-width:0;margin:0 auto;padding:24px 24px 132px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.topbar h1{letter-spacing:0;font-size:30px;line-height:1.12}.muted{color:var(--muted)}.page-grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.grid-2>.empty,.grid-3>.empty,.grid-4>.empty{grid-column:1/-1}.panel,.item-card,.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.panel{padding:18px}.item-card{gap:12px;padding:16px;display:grid}.section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-title h2{letter-spacing:0;font-size:18px}.stat{border-left:4px solid var(--brand);min-height:106px}.stat:nth-child(2){border-left-color:var(--sky)}.stat:nth-child(3){border-left-color:var(--amber)}.stat:nth-child(4){border-left-color:var(--coral)}.stat-value{color:var(--ink);font-size:28px;font-weight:800}.pill{width:max-content;max-width:100%;color:var(--muted);background:#ffffff14;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:12px;font-weight:700;display:inline-flex}.pill.ok{color:var(--ok);background:#22c55e26}.pill.warn{color:var(--amber);background:#f59e0b29}.pill.danger{color:var(--danger);background:#ef444429}.course-media{aspect-ratio:16/8;object-fit:cover;background:#ffffff14;border-radius:8px;width:100%}.course-overview{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg, #5da8ff24, #2dd4bf14), var(--panel);box-shadow:var(--shadow);grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:stretch;gap:18px;padding:18px;display:grid}.course-cover{object-fit:cover;border-radius:8px;width:100%;height:100%;min-height:220px}.course-overview-body{flex-direction:column;justify-content:space-between;gap:18px;min-width:0;display:flex}.course-overview-body h2{margin-top:12px;font-size:28px;line-height:1.15}.access-state{width:max-content;max-width:100%;color:var(--ok);background:#22c55e1f;border:1px solid #22c55e6b;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-weight:800;display:inline-flex}.access-state.warn{color:var(--amber);background:#f59e0b21;border-color:#f59e0b6b}.course-tabs{border:1px solid var(--line);background:#ffffff0d;border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:8px;display:grid}.tab-button{min-width:0;min-height:48px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px;font-weight:800;display:flex}.tab-button small{min-width:22px;height:22px;color:var(--ink);background:#ffffff17;border-radius:999px;place-items:center;display:inline-grid}.tab-button.active,.tab-button:hover{color:var(--brand-strong);background:#5da8ff24;border-color:#5da8ff6b}.teacher-tool-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.tool-block{align-content:start;gap:10px;min-width:0;display:grid}.tool-block h3{font-size:15px}.timeline-list{gap:10px;display:grid}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:12px 0;display:grid}.timeline-item:last-child{border-bottom:0}.timeline-icon{width:38px;height:38px;color:var(--brand-strong);background:#5da8ff21;border-radius:8px;place-items:center;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.btn{background:var(--brand);color:#fff;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 13px;font-weight:700;text-decoration:none;display:inline-flex}.btn.secondary{color:var(--ink);border-color:var(--line);background:#ffffff12}.btn.warning{background:var(--amber)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.62;cursor:not-allowed}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:700}.input,.select,.textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffff14;border-radius:8px;min-height:44px;padding:10px 12px}.textarea{resize:vertical;min-height:96px}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 8px}.data-table th{color:var(--muted);text-transform:uppercase;font-size:12px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);width:min(1040px,100%);display:grid;overflow:hidden}.login-visual{color:#fff;background:linear-gradient(135deg,#060d1ae6,#5da8ff70),url(https://images.unsplash.com/photo-1524995997946-a1c2e315a42f?auto=format&fit=crop&w=1500&q=80) 50%/cover;flex-direction:column;justify-content:space-between;min-height:560px;padding:30px;display:flex}.login-visual h1{letter-spacing:0;max-width:540px;font-size:40px;line-height:1.1}.login-form{align-content:center;gap:16px;padding:34px;display:grid}.error-box{color:var(--danger);background:#ef44441f;border:1px solid #ef44446b;border-radius:8px;padding:10px 12px}.lesson-shell{grid-template-columns:minmax(0,1fr) 320px;gap:16px;display:grid}.player{aspect-ratio:16/9;background:#111;border:0;border-radius:8px;width:100%}.lesson-list{gap:8px;display:grid}.module-group{border-bottom:1px solid var(--line);gap:8px;padding-bottom:12px;display:grid}.module-group:last-child{border-bottom:0}.meeting-workspace{grid-template-columns:360px minmax(0,1fr);gap:16px;display:grid}.branded-meeting{padding:0;overflow:hidden}.meeting-brandbar{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#2dd4bf29,#5da8ff1f);align-items:center;gap:12px;padding:14px 16px;display:flex}.meeting-brandbar span,.meeting-brandbar strong{display:block}.meeting-frame{background:#101214;border:0;border-radius:8px;width:100%;height:min(72vh,720px)}.branded-meeting .meeting-frame{border-radius:0}.grade-summary{margin-bottom:10px}.empty{color:var(--muted);border:1px dashed var(--line);background:#ffffff0d;border-radius:8px;padding:20px}.attendance-layout{grid-template-columns:360px minmax(0,1fr);gap:16px;display:grid}.compact-grid{gap:10px}.list-button{width:100%;color:inherit;text-align:left;cursor:pointer}.list-button.selected{background:#5da8ff1f;border-color:#5da8ff85}.table-subline{margin-top:4px;display:block}.attendance-table{min-width:560px}.icon-actions{flex-wrap:wrap;gap:8px;display:flex}.icon-btn{border:1px solid var(--line);width:38px;height:38px;color:var(--muted);background:#ffffff0f;border-radius:8px;place-items:center;display:inline-grid}.icon-btn.ok{color:var(--ok);background:#22c55e24;border-color:#22c55e80}.icon-btn.warn{color:var(--amber);background:#f59e0b26;border-color:#f59e0b85}.icon-btn.danger{color:var(--danger);background:#ef444424;border-color:#ef444485}.forum-reply-input{flex:240px}@media (width<=980px){.app-shell{grid-template-columns:1fr}.app-dock{width:calc(100% - 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 10px);grid-template-columns:minmax(0,1fr) auto;gap:8px}.dock-brand{display:none}.dock-surface{max-width:none}.dock-actions{min-width:auto}.main-area{padding:16px 16px 116px}.topbar{flex-direction:column;align-items:flex-start}.grid-2,.grid-3,.grid-4,.course-overview,.teacher-tool-grid,.meeting-workspace,.attendance-layout,.lesson-shell,.login-panel{grid-template-columns:1fr}.course-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.course-cover{min-height:180px}.login-visual{min-height:260px}.login-visual h1{font-size:30px}}@media (width<=620px){.main-area{padding:12px 12px 112px}.app-dock{gap:6px;width:calc(100% - 16px)}.dock-surface,.dock-actions{min-height:58px;padding:7px}.dock-track{gap:6px}.dock-item,.dock-button,.dock-user{width:40px;height:40px}.dock-user{display:none}.panel,.item-card,.login-form{padding:14px}.topbar h1{font-size:24px}.course-overview-body h2{font-size:23px}.course-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tab-button{justify-content:flex-start}.login-page{padding:10px}}
