@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700&family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap');

:root{color-scheme:light;--ink:#111827;--ink-soft:#344054;--muted:#667085;--subtle:#98a2b3;--paper:#f7f8fa;--surface:#fff;--surface-raised:#fff;--surface-muted:#f2f4f7;--line:#e4e7ec;--line-strong:#d0d5dd;--brand:#4f46e5;--brand-hover:#4338ca;--brand-soft:#eef2ff;--navy:#101828;--sidebar:#101820;--sidebar-text:#d0d5dd;--sidebar-muted:#98a2b3;--mint:#dff5ee;--amber:#b54708;--success:#067647;--success-bg:#ecfdf3;--warning:#b54708;--warning-bg:#fffaeb;--danger:#b42318;--danger-bg:#fef3f2;--info:#175cd3;--info-bg:#eff8ff;--shadow-sm:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.05);--shadow-md:0 8px 24px rgba(16,24,40,.08);--shadow-lg:0 22px 50px rgba(16,24,40,.13);--radius-sm:9px;--radius:13px;--radius-lg:18px;--sidebar-width:264px;--sidebar-closed:76px}
:root[data-theme="dark"]{color-scheme:dark;--ink:#edf2f7;--ink-soft:#d0d5dd;--muted:#a0aab9;--subtle:#8490a2;--paper:#0b1017;--surface:#111923;--surface-raised:#151f2b;--surface-muted:#182331;--line:#253140;--line-strong:#344253;--brand:#818cf8;--brand-hover:#a5b4fc;--brand-soft:#1e1b4b;--navy:#e7edf5;--sidebar:#0d141c;--sidebar-text:#d5dde7;--sidebar-muted:#8794a5;--mint:#173a34;--success:#75d6a1;--success-bg:#102b20;--warning:#f2bd62;--warning-bg:#302613;--danger:#ff938c;--danger-bg:#351a1b;--info:#83b6ff;--info-bg:#14283e;--shadow-sm:0 1px 2px rgba(0,0,0,.18),0 1px 3px rgba(0,0,0,.2);--shadow-md:0 10px 28px rgba(0,0,0,.24);--shadow-lg:0 22px 50px rgba(0,0,0,.34)}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font:14px/1.65 Inter,"Noto Sans Arabic",system-ui,-apple-system,"Segoe UI",sans-serif;font-feature-settings:"kern";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .2s,color .2s}html:lang(ar) body,body:lang(ar){font-family:"Noto Sans Arabic",Inter,system-ui,sans-serif}a{color:var(--brand);text-decoration:none;transition:color .16s}a:hover{color:var(--brand-hover)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 36%,transparent);outline-offset:2px}img,svg{max-width:100%}h1,h2,h3,h4,p{overflow-wrap:anywhere}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.025em}p{color:inherit}.app-shell{min-height:100vh;display:flex;direction:inherit}.sidebar{width:var(--sidebar-width);height:100vh;height:100dvh;position:sticky;inset-block-start:0;z-index:30;flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;background:var(--sidebar);color:var(--sidebar-text);padding:18px 13px 14px;border-inline-end:1px solid rgba(255,255,255,.06);transition:width .22s ease,transform .24s ease,box-shadow .2s}.sidebar-head{min-height:54px;display:flex;align-items:center;gap:8px;margin-bottom:18px}.brand{min-width:0;flex:1;display:flex;align-items:center;gap:10px;color:#fff;padding:3px 6px}.brand:hover{color:#fff}.brand-mark{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#8ee4ce,#44bca4);color:#092820;font-weight:800;font-size:18px;box-shadow:0 5px 18px #37bd9c2c}.brand-copy{min-width:0}.brand strong,.brand small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand strong{font-size:13px;letter-spacing:-.01em}.brand small{font-size:10px;color:var(--sidebar-muted);margin-top:1px}.sidebar-collapse{width:32px;height:32px;flex:0 0 32px;border:1px solid #ffffff17;background:#ffffff0a;color:#c4d0db;border-radius:9px;font-size:19px;line-height:1;transition:background .15s,transform .15s}.sidebar-collapse:hover{background:#ffffff18}.profile-chip{display:flex;align-items:center;gap:10px;min-height:58px;padding:9px;margin:0 0 17px;border:1px solid #ffffff12;border-radius:11px;background:#ffffff08;position:relative}.avatar{width:35px;height:35px;flex:0 0 35px;display:grid;place-items:center;border-radius:11px;background:#daf6ed;color:#11695b;font-weight:700}.profile-copy{min-width:0;flex:1}.profile-copy b,.profile-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-copy b{font-size:11px;color:#fff}.profile-copy small{font-size:10px;color:var(--sidebar-muted)}.online-dot{width:8px;height:8px;border-radius:50%;background:#38d996;border:2px solid var(--sidebar);position:absolute;inset-inline-start:38px;inset-block-end:12px}.nav-label{margin:8px 10px 7px;color:#7f91a4;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.main-nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;padding:1px 0 8px;scrollbar-width:thin;scrollbar-color:#344253 transparent}.main-nav a{min-height:39px;flex:0 0 auto;display:flex;align-items:center;gap:11px;padding:7px 10px;border:1px solid transparent;border-radius:9px;color:var(--sidebar-text);font-size:12px;line-height:1.35;transition:background .16s,color .16s,border-color .16s,transform .16s}.main-nav a:hover{background:#ffffff0c;color:#fff}.main-nav a.active{background:#ffffff12;color:#fff;border-color:#ffffff12;box-shadow:inset -2px 0 #6bd8bd}.nav-icon{width:19px;height:19px;flex:0 0 19px;display:grid;place-items:center;color:#a9bac8}.main-nav a.active .nav-icon{color:#83e0c9}.nav-svg{width:18px;height:18px;display:block}.nav-count{margin-inline-start:auto;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:20px;background:#eab768;color:#1d2a31;font-size:10px;font-style:normal;font-weight:700}.sidebar-bottom{margin-top:auto;flex:0 0 auto;padding:9px 0 0;color:var(--sidebar-muted);font-size:10px}.secure-note{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #ffffff12;background:#ffffff08;border-radius:10px}.secure-icon{display:grid;place-items:center;color:#71d7b8}.secure-icon .nav-svg{width:17px}.secure-note b,.secure-note small{display:block}.secure-note b{font-size:10px;color:#d9e3e9}.secure-note small{font-size:9px;color:var(--sidebar-muted)}.version{display:block;margin:8px 4px 0;color:#738499;font-size:9px}.sidebar-collapsed .sidebar{width:var(--sidebar-closed)}.sidebar-collapsed .brand-copy,.sidebar-collapsed .profile-copy,.sidebar-collapsed .online-dot,.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-text,.sidebar-collapsed .nav-count,.sidebar-collapsed .secure-note span:not(.secure-icon),.sidebar-collapsed .version{display:none}.sidebar-collapsed .brand{justify-content:center;padding:0}.sidebar-collapsed .sidebar-head{justify-content:center}.sidebar-collapsed .sidebar-collapse{position:absolute;inset-block-start:54px;inset-inline-start:50%;transform:translateX(50%)}.sidebar-collapsed .profile-chip{justify-content:center;padding:8px 0}.sidebar-collapsed .main-nav a{justify-content:center;padding:8px}.sidebar-collapsed .secure-note{justify-content:center;padding:10px}.main-area{min-width:0;min-height:100vh;flex:1;display:flex;flex-direction:column}.topbar{min-height:76px;position:sticky;inset-block-start:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px clamp(18px,3.2vw,46px);background:color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.topbar-start{min-width:0;display:flex;align-items:center;gap:13px}.topbar h1{margin:2px 0 0;font-size:20px;line-height:1.3;letter-spacing:-.035em}.eyebrow{display:block;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.07em}.top-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}.top-actions form{margin:0}.icon-button{width:38px;height:38px;position:relative;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-soft);transition:background .16s,border-color .16s,transform .16s}.icon-button:hover{background:var(--surface-muted);border-color:var(--line-strong);transform:translateY(-1px)}.icon-button .nav-svg{width:17px;height:17px}.icon-button i{position:absolute;inset-block-start:-4px;inset-inline-start:-4px;min-width:16px;height:16px;padding:0 3px;display:grid;place-items:center;border-radius:20px;background:#ef6b68;color:white;font-size:9px;font-style:normal}.top-divider{width:1px;height:25px;background:var(--line);margin-inline:2px}.logout-button{min-height:36px;display:flex;align-items:center;gap:7px;padding:6px 8px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:600}.logout-button:hover{background:var(--surface-muted);color:var(--ink)}.mobile-menu{display:none;width:38px;height:38px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.mobile-menu span{height:2px;display:block;margin:4px 0;border-radius:2px;background:currentColor}.content{width:min(1320px,calc(100% - 64px));margin:28px auto 42px;flex:1}.footer{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px clamp(18px,3.2vw,46px);border-top:1px solid var(--line);color:var(--subtle);font-size:10px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 21px}.welcome-row h2{margin:2px 0;font-size:24px;line-height:1.35}.welcome-row p{margin:2px 0}.today-card{min-width:130px;padding:9px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.today-card span,.today-card strong{display:block}.today-card span{font-size:10px;color:var(--muted)}.today-card strong{font-size:13px;color:var(--ink)}.muted{color:var(--muted)}.small-note{font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.stat-card,.panel{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.stat-card{min-height:146px;position:relative;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s}.stat-card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow-md)}.stat-icon{width:35px;height:35px;display:grid;place-items:center;margin-bottom:12px;border-radius:10px;font-size:15px}.stat-icon .nav-svg{width:18px;height:18px}.teal{background:#e5f5f0;color:#16856f}.amber{background:#fff4df;color:#a35b00}.violet{background:#f2edff;color:#6941c6}.blue{background:#eff8ff;color:#175cd3}:root[data-theme="dark"] .teal{background:#14392f;color:#82dfbc}:root[data-theme="dark"] .amber{background:#392c16;color:#f5c46b}:root[data-theme="dark"] .violet{background:#2c2147;color:#c1a8ff}:root[data-theme="dark"] .blue{background:#142c43;color:#8bbcff}.stat-card small{display:block;color:var(--muted);font-size:11px}.stat-card>strong{display:block;margin:3px 0 7px;color:var(--ink);font-size:25px;line-height:1.3;letter-spacing:-.035em}.stat-card .stat-word{font-size:13px;line-height:1.5}.stat-card a,.text-link{font-size:11px;color:var(--brand);font-weight:650}.dashboard-columns{display:grid;grid-template-columns:1.05fr .95fr;gap:15px;margin-bottom:15px}.panel{padding:19px;margin-bottom:15px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-head h3{margin:2px 0 0;font-size:15px}.panel-head .eyebrow{display:block}.list-row{min-height:62px;display:flex;align-items:center;gap:11px;padding:9px 2px;border-top:1px solid var(--line)}.row-main{min-width:0;flex:1}.row-main strong,.row-main small{display:block}.row-main strong{font-size:12px;color:var(--ink)}.row-main small{font-size:10px;color:var(--muted)}.date-tile{width:42px;height:44px;flex:0 0 42px;display:grid;place-items:center;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:14px;font-weight:700;line-height:1.1}.date-tile small{font-size:9px}.badge,.status-pill{min-height:23px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:3px 9px;border-radius:30px;font-size:10px;font-weight:650}.badge-blue{background:var(--info-bg);color:var(--info)}.badge-amber{background:var(--warning-bg);color:var(--warning)}.badge-green{background:var(--success-bg);color:var(--success)}.badge-red{background:var(--danger-bg);color:var(--danger)}.empty-state{padding:32px 18px;text-align:center;color:var(--muted)}.empty-state>span{display:block;margin-bottom:7px;color:var(--subtle);font-size:23px}.empty-state strong{display:block;color:var(--ink-soft);font-size:12px}.empty-state p{margin:4px 0 0;font-size:11px}.task-dot,.notice-point{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#e5a74e}.notice-row{display:flex;gap:11px;padding:12px 3px;border-top:1px solid var(--line)}.notice-row strong{font-size:12px}.notice-row p{margin:2px 0;color:var(--muted);font-size:11px}.notice-row small{color:var(--subtle);font-size:10px}.status-banner{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.banner-pending{background:var(--warning-bg);border-color:color-mix(in srgb,var(--warning) 22%,var(--line))}.banner-approved{background:var(--success-bg);border-color:color-mix(in srgb,var(--success) 22%,var(--line))}.banner-icon{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:50%;background:var(--surface);font-size:16px;color:var(--warning)}.banner-approved .banner-icon{color:var(--success)}.status-banner div{min-width:0;flex:1}.status-banner strong{font-size:12px}.status-banner p{margin:2px 0 0;color:var(--muted);font-size:11px}.status-pill{background:var(--surface);color:var(--warning)}.button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:650;line-height:1.3;transition:transform .14s,box-shadow .16s,background .16s,border-color .16s,color .16s}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0) scale(.985)}.button-primary{background:#0f766e;color:#fff;box-shadow:0 2px 5px #0f766e26}.button-primary:hover{background:#115e59;color:#fff;box-shadow:0 5px 15px #0f766e30}.button-secondary{background:var(--surface);color:var(--ink-soft);border-color:var(--line-strong)}.button-secondary:hover{background:var(--surface-muted);color:var(--ink)}.button-danger{background:var(--danger-bg);color:var(--danger)}.button-quiet{background:transparent;color:var(--muted);padding:7px 9px}.button-small{min-height:31px;padding:6px 10px;font-size:10px}.full{width:100%}.notice{margin-bottom:15px;padding:11px 14px;border:1px solid transparent;border-radius:10px;font-size:12px;animation:notice-in .22s ease both}.notice-success{background:var(--success-bg);border-color:color-mix(in srgb,var(--success) 24%,var(--line));color:var(--success)}.notice-error{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 24%,var(--line));color:var(--danger)}.stack-form{display:grid;gap:13px}.stack-form label,.form-grid label{display:grid;gap:6px;color:var(--ink-soft);font-size:11px;font-weight:600}.stack-form input,.form-grid input,.form-grid select,.stack-form select,.search-form input,.inline-form select,.group-picker select,.stack-form textarea,.form-grid textarea,.chat-compose textarea,.test-answer-panel textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--ink);outline:none;font-size:12px;transition:border-color .16s,box-shadow .16s,background .16s}.stack-form input:focus,.form-grid input:focus,.form-grid select:focus,.stack-form select:focus,.stack-form textarea:focus,.form-grid textarea:focus,.chat-compose textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}input::placeholder,textarea::placeholder{color:var(--subtle)}.stack-form small,.optional{font-size:10px;color:var(--muted);font-weight:400}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 15px}.span-two{grid-column:1/-1}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.search-form{display:flex;gap:8px;margin-bottom:14px}.search-form input{max-width:360px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:15px}.subsection{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.subsection h4{margin:0 0 7px}.level-mark,.course-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-weight:700}.course-icon{font-size:15px}.course-icon-warm{background:var(--warning-bg);color:var(--warning)}.table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:11px;background:var(--surface);overscroll-behavior-inline:contain}table{width:100%;border-collapse:collapse;min-width:620px}th{text-align:start;color:var(--muted);font-size:10px;font-weight:650;padding:11px 10px;border-bottom:1px solid var(--line);background:var(--surface-muted)}td{padding:12px 10px;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:11px;vertical-align:middle}tr:last-child td{border-bottom:0}td strong{font-size:12px;color:var(--ink)}.table-sub{display:block;margin-top:2px;color:var(--muted);font-size:10px}.actions-cell{display:flex;gap:6px;flex-wrap:wrap}.actions-cell form{display:inline-block}.course-card,.exercise-card,.submission-card{margin-bottom:11px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.course-card-head{display:flex;align-items:center;gap:10px}.course-card-head h3,.course-card-head h4{margin:0;font-size:14px}.course-card-head small{color:var(--muted);font-size:10px}.course-card>p{margin:10px 0;color:var(--muted);font-size:12px}.lesson-list{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px}.lesson-list details{padding:8px 0;border-top:1px solid var(--line)}.lesson-list summary{cursor:pointer;font-weight:650}.lesson-body{padding:10px 4px;color:var(--muted);white-space:pre-wrap}.instructions{padding:11px;border-radius:9px;background:var(--surface-muted);color:var(--ink-soft);font-size:12px;white-space:pre-wrap}.exercise-meta{margin-bottom:9px;color:var(--muted);font-size:10px}.submission-form{max-width:760px}.feedback{margin-top:11px;padding:12px;border:1px solid color-mix(in srgb,var(--success) 20%,var(--line));border-radius:9px;background:var(--success-bg);font-size:11px}.feedback p{margin:4px 0}.submission-card h4 small{font-weight:400}.answer-box{margin:11px 0;padding:13px;border-radius:9px;background:var(--surface-muted);white-space:pre-wrap;font-size:12px}.class-card{display:flex;align-items:center;gap:12px;padding:14px 2px;border-top:1px solid var(--line)}.class-info{min-width:0;flex:1}.class-info h3{margin:0;font-size:13px}.class-info p{margin:2px 0;color:var(--muted);font-size:10px}.class-info small{color:var(--subtle);font-size:10px}.class-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.implementation-note{padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:10px}.group-picker select{width:auto;min-width:180px}.chat-window{min-height:230px;max-height:530px;overflow:auto;padding:5px 0;overscroll-behavior:contain}.message{max-width:84%;margin:9px 0;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.message-meta{display:flex;justify-content:space-between;gap:12px}.message-meta strong{font-size:11px;color:var(--brand)}.message-meta small{font-size:9px;color:var(--muted)}.message p{margin:4px 0 0;font-size:12px;white-space:pre-wrap}.chat-compose{display:flex;align-items:flex-end;gap:9px;padding-top:13px;border-top:1px solid var(--line)}.chat-compose textarea{resize:vertical}.notification-card{display:flex;align-items:flex-start;gap:11px;padding:13px 2px;border-top:1px solid var(--line)}.notification-card .notice-point{margin-top:6px}.notification-card.is-read{opacity:.65}.notification-body{min-width:0;flex:1}.notification-body strong{font-size:12px}.notification-body p{margin:3px 0;color:var(--muted);font-size:11px}.notification-body small{color:var(--muted);font-size:10px}.event-label{color:var(--brand);font-size:11px;font-weight:650}.profile-heading{display:flex;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid var(--line)}.profile-heading h2{margin:0;font-size:18px}.profile-heading p{margin:2px 0;color:var(--muted);font-size:11px}.profile-heading .badge{margin-inline-start:auto}.avatar-large{width:56px;height:56px;border-radius:17px;font-size:21px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;padding:20px 0}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);font-size:10px}.detail-grid strong{margin-top:3px;font-size:12px}.error-panel{text-align:center;padding:48px 20px}.error-mark{width:42px;height:42px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:var(--danger-bg);color:var(--danger);font-size:18px;font-weight:700}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:28px 16px;background:radial-gradient(ellipse at 15% 0%,color-mix(in srgb,var(--brand) 11%,var(--paper)),var(--paper) 46%)}.auth-card{width:min(450px,100%);padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-lg)}.auth-card-wide{width:min(520px,100%)}.auth-mark{margin-bottom:17px}.auth-card h2{margin:3px 0;font-size:22px}.auth-card>p{color:var(--muted);font-size:12px}.auth-card .stack-form{margin-top:19px}.auth-footer{margin-top:19px;padding-top:14px;border-top:1px solid var(--line);text-align:center;color:var(--muted)}.auth-footer a{font-weight:650}.announcement-card{padding:14px 2px;border-top:1px solid var(--line)}.announcement-card h3{margin:7px 0 3px;font-size:14px}.announcement-card p{margin:5px 0 7px;color:var(--muted);font-size:12px;white-space:pre-wrap}.announcement-meta{display:flex;align-items:center;justify-content:space-between}.announcement-meta small{color:var(--muted);font-size:10px}.check-field{display:flex!important;align-items:center;gap:8px;padding-top:24px}.check-field input,input[type="checkbox"],input[type="radio"]{width:16px;height:16px;min-height:16px;accent-color:var(--brand)}
/* Learning modules and protected viewers */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px}.resource-card{min-width:0;display:flex;gap:13px;padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.resource-icon{width:44px;height:52px;flex:0 0 44px;display:grid;place-items:center;border-radius:10px;background:#fff0ed;color:#bd5c4e;font-size:10px;font-weight:800}.resource-icon-test{background:var(--info-bg);color:var(--info)}.resource-body{min-width:0;flex:1}.resource-meta{display:flex;justify-content:space-between;gap:7px;color:var(--muted);font-size:10px}.resource-card h3{margin:5px 0;font-size:14px}.resource-card p{display:-webkit-box;margin:0 0 6px;color:var(--muted);font-size:11px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-card small{color:var(--muted);font-size:10px}.resource-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.viewer-shell,.live-shell{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.viewer-head,.live-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px;border-bottom:1px solid var(--line)}.viewer-head h2,.live-header h2{margin:3px 0;font-size:20px}.viewer-head small,.live-header small{color:var(--muted)}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--surface-muted);color:var(--muted);font-size:11px}.viewer-toolbar div{display:flex;align-items:center;gap:7px}.pdf-frame{height:calc(100vh - 255px);min-height:480px;position:relative;overflow:auto;background:#182b35}.pdf-frame iframe{width:100%;height:100%;border:0;transform:scale(var(--pdf-zoom,1));transform-origin:top center}.viewer-note{margin:0;padding:10px 15px;background:var(--surface-muted);color:var(--muted);font-size:10px}.test-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:15px;padding:15px;background:var(--surface-muted)}.test-layout .pdf-frame{height:calc(100vh - 190px);min-height:540px;border-radius:11px}.test-answer-panel{position:sticky;top:95px;height:max-content}.test-answer-panel h3{margin-top:0}.live-shell{background:#0e2029;color:#e2f1f0}.live-shell h2,.live-shell h3{color:#edf5f7}.live-header{background:#102c35;border-color:#ffffff14}.live-header .eyebrow{color:#76c9ad}.live-layout{min-height:calc(100vh - 185px);display:grid;grid-template-columns:minmax(0,1fr) 320px}.live-stage{display:flex;flex-direction:column;padding:17px;background:#0c1c24}.participant-grid{flex:1;align-content:start;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:11px}.participant-tile{min-height:170px;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid #ffffff17;border-radius:13px;background:linear-gradient(145deg,#213945,#142b34)}.participant-tile video{width:100%;height:100%;position:absolute;inset:0;display:none;object-fit:cover}.participant-tile.has-video video{display:block}.participant-tile.has-video .tile-placeholder{display:none}.tile-placeholder{display:grid;place-items:center;gap:4px;text-align:center}.tile-placeholder strong{font-size:12px}.tile-placeholder small{color:#91afb0;font-size:10px}.tile-label,.tile-status{position:absolute;bottom:9px;padding:3px 8px;border-radius:7px;background:#081820b8;font-size:9px}.tile-label{inset-inline-start:9px}.tile-status{inset-inline-end:9px;color:#9bd8c0}.live-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:15px 0 2px}.live-control{padding:9px 12px;border:1px solid #ffffff20;border-radius:9px;background:#203b45;color:#e1efee;font-size:11px;cursor:pointer;transition:background .14s,transform .14s}.live-control:hover,.live-control.is-off{background:#7c3f48}.live-control.danger{background:#a84f5b;border-color:#c76a73}.live-chat{padding:17px;background:var(--surface);color:var(--ink)}.live-chat .chat-window{min-height:360px;max-height:calc(100vh - 300px)}.sidebar-overlay{display:none}.appearance-preferences{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.appearance-preferences p{margin:2px 0 0;color:var(--muted);font-size:11px}.switch-control{display:flex!important;align-items:center;gap:9px;white-space:nowrap;color:var(--ink-soft)}.switch-control input{width:17px!important;height:17px!important;min-height:17px!important;accent-color:var(--brand)}
@keyframes notice-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:721px){.sidebar-overlay{display:none!important}.sidebar-collapsed .sidebar{width:var(--sidebar-closed)}}
@media(max-width:1100px){:root{--sidebar-width:238px}.content{width:calc(100% - 44px)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.live-layout{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:850px){.content{width:calc(100% - 36px)}.two-column{grid-template-columns:1fr}.test-layout,.live-layout{grid-template-columns:1fr}.test-answer-panel{position:static}.live-chat{border-top:1px solid var(--line)}.live-chat .chat-window{max-height:300px}.pdf-frame{height:70vh;min-height:440px}}
@media(max-width:720px){.app-shell{display:block}.sidebar{width:min(310px,88vw);height:100vh;height:100dvh;position:fixed;inset-block:0;inset-inline-start:0;transform:translateX(110%);box-shadow:var(--shadow-lg);transition:transform .24s cubic-bezier(.2,.75,.25,1)}[dir="ltr"] .sidebar{transform:translateX(-110%)}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;inset:0;z-index:25;background:rgba(7,16,24,.56);opacity:0;pointer-events:none;backdrop-filter:blur(2px);transition:opacity .2s}.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar-collapse{display:none}.mobile-menu{display:block}.topbar{min-height:66px;padding:10px 16px;gap:10px}.topbar-start{gap:9px}.topbar h1{font-size:17px}.top-actions{gap:6px}.top-actions .icon-button{width:35px;height:35px}.top-divider{display:none}.logout-label{display:none}.content{width:calc(100% - 30px);margin:19px auto 29px}.footer{padding:12px 16px}.welcome-row{align-items:flex-start;margin-bottom:16px}.welcome-row h2{font-size:20px}.today-card{min-width:110px;padding:8px 10px}.stat-grid{gap:10px;margin-bottom:13px}.stat-card{min-height:133px;padding:13px}.stat-card>strong{font-size:22px}.panel{padding:16px;margin-bottom:12px}.panel-head{align-items:flex-start}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.inline-form{grid-template-columns:1fr}.class-card{align-items:flex-start;flex-wrap:wrap}.class-actions{width:100%;justify-content:flex-start;padding-inline-start:50px}.class-card>.badge{margin-inline-start:auto}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.actions-cell{flex-wrap:wrap}.chat-compose{align-items:stretch;flex-direction:column}.group-picker select{width:100%;min-width:0}.auth-card{padding:25px 22px}.viewer-head,.live-header{padding:16px}.test-layout{padding:10px}.test-layout .pdf-frame{height:65vh;min-height:400px}.table-wrap{margin-inline:-2px}.live-stage{padding:12px}}
@media(max-width:480px){.content{width:calc(100% - 22px);margin-top:15px}.topbar{padding-inline:11px}.topbar h1{font-size:15px}.top-actions{gap:4px}.top-actions .icon-button{width:33px;height:33px}.top-actions form{display:none}.welcome-row{gap:8px}.welcome-row h2{font-size:18px}.welcome-row .eyebrow{font-size:9px}.today-card{min-width:auto;padding:6px 8px}.today-card strong{font-size:11px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{min-height:126px;padding:11px}.stat-card>strong{font-size:20px}.stat-card .stat-word{font-size:11px}.stat-icon{width:31px;height:31px;margin-bottom:9px}.panel{padding:13px}.panel-head{gap:8px}.panel-head h3{font-size:14px}.panel-head .badge{margin-top:3px}.form-grid{gap:11px}.auth-card{padding:22px 18px}.footer span:last-child{display:none}.resource-card{padding:12px}.viewer-head,.live-header{align-items:flex-start;flex-direction:column}.viewer-toolbar{align-items:flex-start;flex-direction:column}.viewer-toolbar div{flex-wrap:wrap}.pdf-frame{min-height:380px;height:66vh}.test-layout .pdf-frame{min-height:360px}.participant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-tile{min-height:125px}.live-controls{gap:5px}.live-control{padding:8px;font-size:10px}.appearance-preferences{align-items:flex-start;flex-direction:column}}
@media(max-width:360px){.stat-grid{grid-template-columns:1fr}.today-card{display:none}.content{width:calc(100% - 18px)}.panel{padding:11px}.topbar-start{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
