@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap";:root{--clr-primary:#6c63ff;--clr-primary-light:#8b85ff;--clr-primary-dark:#4b44d6;--clr-primary-glow:#6c63ff59;--clr-secondary:#00d4aa;--clr-secondary-light:#00edbe;--clr-secondary-dark:#00a882;--clr-secondary-glow:#00d4aa4d;--clr-accent:#ffb347;--clr-accent-light:#ffc87a;--clr-accent-dark:#e09000;--clr-accent-glow:#ffb3474d;--clr-danger:#ff6b6b;--clr-danger-light:#ff9090;--clr-danger-dark:#d44;--clr-danger-glow:#ff6b6b4d;--clr-success:#4ade80;--clr-success-glow:#4ade804d;--clr-warning:#fcd34d;--clr-warning-glow:#fcd34d4d;--clr-info:#38bdf8;--clr-admin:#f472b6;--clr-teacher:#6c63ff;--clr-parent:#00d4aa;--clr-student:#ffb347;--clr-bg:#080816;--clr-bg-2:#0f0f23;--clr-bg-3:#141430;--clr-surface:#ffffff0b;--clr-surface-2:#ffffff12;--clr-surface-hover:#ffffff1a;--clr-border:#ffffff14;--clr-border-bright:#ffffff2e;--clr-text:#e8eaf0;--clr-text-muted:#7c85a2;--clr-text-faint:#4a5168;--clr-text-on-primary:#fff;--font-family:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-base:1rem;--font-size-md:1.1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-size-3xl:2.25rem;--font-size-4xl:3rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 8px 40px #00000080;--shadow-primary:0 4px 20px var(--clr-primary-glow);--shadow-secondary:0 4px 20px var(--clr-secondary-glow);--sidebar-width:268px;--header-height:64px;--content-max-width:1200px;--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--transition:all .3s cubic-bezier(.4, 0, .2, 1);--transition-slow:all .5s cubic-bezier(.4, 0, .2, 1);--glass-bg:#ffffff0b;--glass-blur:blur(20px);--glass-border:1px solid #ffffff14}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--clr-text);background:var(--clr-bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-weight:400;line-height:1.6;overflow-x:hidden}a{color:var(--clr-primary-light);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--clr-primary)}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--font-family);border:none;outline:none}input,textarea,select{font-family:var(--font-family);outline:none}ul,ol{list-style:none}.splash-screen{background:radial-gradient(ellipse at 30% 20%, #6c63ff40 0%, transparent 60%), radial-gradient(ellipse at 70% 80%, #00d4aa33 0%, transparent 60%), var(--clr-bg);z-index:9999;justify-content:center;align-items:center;animation:.8s 1.8s forwards splashFade;display:flex;position:fixed;inset:0}.splash-content{text-align:center;align-items:center;gap:var(--space-10);flex-direction:column;display:flex}.splash-icon-wrapper{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-2xl);width:96px;height:96px;box-shadow:0 0 60px var(--clr-primary-glow);justify-content:center;align-items:center;margin:0 auto;font-size:48px;animation:1.5s ease-in-out infinite splashPulse;display:flex}.splash-title{font-size:var(--font-size-4xl);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;letter-spacing:-1px;margin-top:var(--space-4);-webkit-background-clip:text;background-clip:text;font-weight:800}.splash-tagline{color:var(--clr-text-muted);font-size:var(--font-size-md);margin-top:var(--space-2);font-weight:400}.splash-loader{width:240px}.loader-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);height:4px;overflow:hidden}.loader-fill{background:linear-gradient(90deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-full);width:0;height:100%;animation:1.8s cubic-bezier(.4,0,.2,1) forwards loaderFill}.loader-text{margin-top:var(--space-3);color:var(--clr-text-muted);font-size:var(--font-size-sm);font-weight:500}@keyframes splashPulse{0%,to{box-shadow:0 0 60px var(--clr-primary-glow);transform:scale(1)}50%{box-shadow:0 0 80px var(--clr-primary-glow);transform:scale(1.05)}}@keyframes loaderFill{to{width:100%}}@keyframes splashFade{to{opacity:0;pointer-events:none}}.app-layout{background:radial-gradient(ellipse at 0% 0%, #6c63ff1f 0%, transparent 50%), radial-gradient(ellipse at 100% 100%, #00d4aa14 0%, transparent 50%), var(--clr-bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--clr-bg-2);border-right:var(--glass-border);z-index:100;min-height:100vh;transition:var(--transition);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{padding:var(--space-6);align-items:center;gap:var(--space-3);border-bottom:var(--glass-border);display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-md);width:40px;height:40px;box-shadow:var(--shadow-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.sidebar-brand{font-size:var(--font-size-lg);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.sidebar-user-card{margin:var(--space-4) var(--space-4) 0;padding:var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg)}.sidebar-user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.sidebar-user-info{margin-top:var(--space-3)}.sidebar-user-name{font-weight:700;font-size:var(--font-size-sm);color:var(--clr-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user-role{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-weight:600}.role-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;padding:2px 10px;font-weight:700;display:inline-flex}.role-badge.admin{color:var(--clr-admin);background:#f472b626}.role-badge.teacher{color:var(--clr-teacher);background:#6c63ff26}.role-badge.parent{color:var(--clr-parent);background:#00d4aa26}.role-badge.student{color:var(--clr-student);background:#ffb34726}.sidebar-nav{padding:var(--space-5) var(--space-4);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-section-label{font-size:var(--font-size-xs);color:var(--clr-text-faint);text-transform:uppercase;letter-spacing:1px;padding:var(--space-3) var(--space-3) var(--space-2);font-weight:700}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--clr-text-muted);font-weight:500;font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;display:flex;position:relative}.nav-item:hover{background:var(--clr-surface);color:var(--clr-text);border-color:var(--clr-border)}.nav-item.active{color:var(--clr-primary-light);background:linear-gradient(135deg,#6c63ff33,#00d4aa1a);border-color:#6c63ff4d;font-weight:600}.nav-item.active .nav-icon{filter:none}.nav-icon{text-align:center;width:22px;font-size:18px}.nav-badge{background:var(--clr-danger);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) badgePop}@keyframes badgePop{0%{transform:scale(0)}to{transform:scale(1)}}.sidebar-footer{padding:var(--space-4);border-top:var(--glass-border)}.btn-logout{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--clr-danger);font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-fast);background:#ff6b6b14;border:1px solid #ff6b6b26;display:flex}.btn-logout:hover{background:#ff6b6b26;border-color:#ff6b6b4d}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-header{height:var(--header-height);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:var(--glass-border);padding:0 var(--space-8);z-index:50;background:#080816cc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.top-header-title{font-size:var(--font-size-lg);color:var(--clr-text);font-weight:700}.top-header-actions{align-items:center;gap:var(--space-4);display:flex}.notification-btn{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;width:40px;height:40px;transition:var(--transition-fast);color:var(--clr-text-muted);justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.notification-btn:hover{background:var(--clr-surface-2);color:var(--clr-text)}.notif-count{background:var(--clr-danger);color:#fff;border:2px solid var(--clr-bg);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.page-content{padding:var(--space-8);max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--font-size-2xl);color:var(--clr-text);font-weight:800;line-height:1.2}.page-subtitle{color:var(--clr-text-muted);font-size:var(--font-size-md);margin-top:var(--space-2);font-weight:400}.auth-page{background:radial-gradient(ellipse at 20% 20%, #6c63ff40 0%, transparent 55%), radial-gradient(ellipse at 80% 80%, #00d4aa33 0%, transparent 55%), radial-gradient(ellipse at 60% 10%, #ffb3471a 0%, transparent 40%), var(--clr-bg);min-height:100vh;padding:var(--space-8) var(--space-4);justify-content:center;align-items:center;display:flex}.auth-container{width:100%;max-width:480px}.auth-brand{text-align:center;margin-bottom:var(--space-8)}.auth-logo{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-xl);width:64px;height:64px;margin:0 auto var(--space-4);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;font-size:32px;display:flex}.auth-title{font-size:var(--font-size-3xl);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.auth-subtitle{color:var(--clr-text-muted);margin-top:var(--space-2);font-size:var(--font-size-sm)}.auth-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}.card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:var(--transition-fast)}.card:hover{border-color:var(--clr-border-bright)}.card-sm{padding:var(--space-4);border-radius:var(--radius-md)}.card-lg{padding:var(--space-8);border-radius:var(--radius-xl)}.card-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-md);color:var(--clr-text);font-weight:700}.card-subtitle{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-top:2px}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);align-items:flex-start;gap:var(--space-4);transition:var(--transition-fast);cursor:default;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-bright);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.stat-icon.purple{background:#6c63ff26}.stat-icon.teal{background:#00d4aa26}.stat-icon.amber{background:#ffb34726}.stat-icon.coral{background:#ff6b6b26}.stat-icon.pink{background:#f472b626}.stat-info{flex:1}.stat-label{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-value{font-size:var(--font-size-2xl);color:var(--clr-text);margin-top:2px;font-weight:800;line-height:1}.stat-trend{font-size:var(--font-size-xs);margin-top:var(--space-2);color:var(--clr-text-muted)}.stat-trend.up{color:var(--clr-success)}.stat-trend.down{color:var(--clr-danger)}.grid-2{gap:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.grid-auto{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-fast);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));color:#fff;box-shadow:0 2px 12px var(--clr-primary-glow)}.btn-primary:hover{background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-primary));box-shadow:0 4px 20px var(--clr-primary-glow)}.btn-secondary{background:linear-gradient(135deg, var(--clr-secondary), var(--clr-secondary-dark));color:#fff;box-shadow:0 2px 12px var(--clr-secondary-glow)}.btn-secondary:hover{background:linear-gradient(135deg, var(--clr-secondary-light), var(--clr-secondary))}.btn-accent{background:linear-gradient(135deg, var(--clr-accent), var(--clr-accent-dark));color:#fff;box-shadow:0 2px 12px var(--clr-accent-glow)}.btn-accent:hover{background:linear-gradient(135deg, var(--clr-accent-light), var(--clr-accent))}.btn-danger{background:linear-gradient(135deg, var(--clr-danger), var(--clr-danger-dark));color:#fff;box-shadow:0 2px 12px var(--clr-danger-glow)}.btn-danger:hover{opacity:.9}.btn-ghost{background:var(--clr-surface);color:var(--clr-text-muted);border:var(--glass-border)}.btn-ghost:hover{background:var(--clr-surface-hover);color:var(--clr-text)}.btn-success{background:linear-gradient(135deg, var(--clr-success), #22c55e);color:#0a2e1a;font-weight:700}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-lg)}.btn-full{justify-content:center;width:100%}.btn-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:16px;display:inline-flex}.form-group{margin-bottom:var(--space-5)}.form-label{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.4px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--clr-bg-3);border:1px solid var(--clr-border);border-radius:var(--radius-md);color:var(--clr-text);font-size:var(--font-size-base);font-family:var(--font-family);transition:var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-primary-glow);background:var(--clr-bg-2)}.form-input::placeholder,.form-textarea::placeholder{color:var(--clr-text-faint)}.form-select{appearance:none;cursor:pointer}.form-select option{background:var(--clr-bg-2)}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:var(--space-2)}.form-error{font-size:var(--font-size-xs);color:var(--clr-danger);margin-top:var(--space-2)}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.role-selector{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.role-option{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--clr-surface);border:2px solid var(--clr-border);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-fast);text-align:center;flex-direction:column;display:flex}.role-option:hover{background:var(--clr-surface-2);border-color:var(--clr-border-bright)}.role-option.selected{border-color:var(--clr-primary);background:#6c63ff1f}.role-option.selected .role-option-icon{background:var(--clr-primary)}.role-option-icon{border-radius:var(--radius-md);background:var(--clr-surface-2);width:44px;height:44px;transition:var(--transition-fast);justify-content:center;align-items:center;font-size:22px;display:flex}.role-option-name{font-size:var(--font-size-xs);color:var(--clr-text);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.table-wrapper{border-radius:var(--radius-lg);border:var(--glass-border);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table thead{background:var(--clr-bg-2)}.data-table th{padding:var(--space-3) var(--space-5);text-align:left;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;font-size:var(--font-size-xs);border-bottom:var(--glass-border);white-space:nowrap}.data-table td{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);color:var(--clr-text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--clr-surface)}.data-table tbody tr{transition:var(--transition-fast)}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-success{color:var(--clr-success);background:#4ade801f}.badge-warning{color:var(--clr-warning);background:#fcd34d1f}.badge-danger{color:var(--clr-danger);background:#ff6b6b1f}.badge-info{color:var(--clr-info);background:#38bdf81f}.subject-chip{border-radius:var(--radius-full);font-size:var(--font-size-xs);align-items:center;gap:6px;padding:4px 12px;font-weight:600;display:inline-flex}.progress-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.progress-value{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-align:right;min-width:36px;font-weight:700}.tab-bar{gap:var(--space-2);border-bottom:var(--glass-border);margin-bottom:var(--space-6);padding-bottom:1px;display:flex;overflow-x:auto}.tab-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);color:var(--clr-text-muted);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:flex}.tab-btn:hover{color:var(--clr-text)}.tab-btn.active{color:var(--clr-primary-light);border-bottom-color:var(--clr-primary)}.tab-count{background:var(--clr-surface-2);border-radius:var(--radius-full);color:var(--clr-text-muted);padding:1px 7px;font-size:11px}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.modal-container{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.3s cubic-bezier(.4,0,.2,1) slideUp;position:relative;overflow-y:auto}.modal-container.modal-lg{max-width:720px}.modal-container.modal-sm{max-width:400px}.modal-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);color:var(--clr-text);font-weight:800}.modal-close{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--clr-text-muted);transition:var(--transition-fast);justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--clr-danger);color:#fff}.modal-footer{gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--glass-border);justify-content:flex-end;display:flex}#toast-container{top:var(--space-5);right:var(--space-5);z-index:9998;gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:all;min-width:300px;max-width:400px;font-size:var(--font-size-sm);font-weight:500;animation:.4s cubic-bezier(.34,1.56,.64,1) toastIn;display:flex}.toast.toast-success{border-left:4px solid var(--clr-success)}.toast.toast-error{border-left:4px solid var(--clr-danger)}.toast.toast-warning{border-left:4px solid var(--clr-warning)}.toast.toast-info{border-left:4px solid var(--clr-primary)}.toast-icon{flex-shrink:0;font-size:20px}.toast-message{color:var(--clr-text);flex:1}.toast-out{animation:.3s forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{to{opacity:0;transform:translate(100px)}}.notification-panel{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);width:380px;box-shadow:var(--shadow-lg);z-index:200;animation:.2s fadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-panel-header{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);font-weight:700;font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.notification-list{max-height:360px;overflow-y:auto}.notification-item{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);transition:var(--transition-fast);cursor:pointer;display:flex}.notification-item:last-child{border-bottom:none}.notif-dot{background:var(--clr-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-text{font-size:var(--font-size-xs);color:var(--clr-text);line-height:1.5}.chart-container{padding:var(--space-4);justify-content:center;align-items:center;display:flex}.bar-chart{gap:var(--space-4);flex-direction:column;display:flex}.bar-label{width:120px;font-size:var(--font-size-xs);color:var(--clr-text-muted);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-weight:600;overflow:hidden}.bar-fill{border-radius:var(--radius-full);height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.bar-pct{font-size:var(--font-size-xs);min-width:40px;color:var(--clr-text);font-weight:700}.radar-chart svg{overflow:visible}.homework-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);align-items:flex-start;gap:var(--space-4);transition:var(--transition-fast);margin-bottom:var(--space-3);display:flex}.homework-card:hover{border-color:var(--clr-border-bright)}.homework-card.completed{opacity:.65}.hw-check{border:2px solid var(--clr-border-bright);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:16px;display:flex}.hw-check:hover{border-color:var(--clr-success);background:#4ade801a}.hw-check.checked{background:var(--clr-success);border-color:var(--clr-success);color:#0a2e1a;font-weight:700}.hw-info{flex:1}.hw-title{color:var(--clr-text);font-weight:700;font-size:var(--font-size-sm)}.hw-desc{color:var(--clr-text-muted);font-size:var(--font-size-xs);margin-top:2px;line-height:1.5}.hw-meta{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.hw-due{font-size:var(--font-size-xs);color:var(--clr-text-faint)}.hw-due.overdue{color:var(--clr-danger)}.question-number{font-size:var(--font-size-xs);color:var(--clr-primary-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);font-weight:700}.question-text{font-size:var(--font-size-md);color:var(--clr-text);margin-bottom:var(--space-4);font-weight:600;line-height:1.5}.mcq-option{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);font-size:var(--font-size-sm);font-weight:500;display:flex}.mcq-option:hover{background:var(--clr-surface-2);border-color:var(--clr-primary)}.mcq-option.correct{border-color:var(--clr-success);background:#4ade8026}.mcq-option.wrong{border-color:var(--clr-danger);background:#ff6b6b26}.option-circle{border:2px solid var(--clr-border-bright);width:22px;height:22px;transition:var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.mcq-option.selected .option-circle{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.score-circle{background:conic-gradient(var(--clr-primary) var(--pct,0%), var(--clr-surface-2) 0%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;display:flex;position:relative}.score-circle:before{content:"";background:var(--clr-bg-2);border-radius:50%;width:80px;height:80px;position:absolute}.score-number{font-size:var(--font-size-xl);color:var(--clr-text);font-weight:800;position:relative}.video-thumbnail{background:linear-gradient(135deg,#6c63ff4d,#00d4aa33);justify-content:center;align-items:center;height:140px;font-size:48px;display:flex;position:relative}.play-btn-overlay:after{content:"▶";color:#fff;font-size:32px}.video-title{font-weight:700;font-size:var(--font-size-sm);color:var(--clr-text);line-height:1.4}.video-meta{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:var(--space-2)}.empty-state{text-align:center;padding:var(--space-16) var(--space-8);color:var(--clr-text-muted)}.empty-icon{margin-bottom:var(--space-4);opacity:.5;font-size:64px}.empty-title{font-size:var(--font-size-lg);color:var(--clr-text);margin-bottom:var(--space-2);font-weight:700}.empty-desc{font-size:var(--font-size-sm);max-width:320px;margin:0 auto}.user-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);align-items:center;gap:var(--space-4);transition:var(--transition-fast);display:flex}.user-card:hover{border-color:var(--clr-border-bright)}.user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.user-info{flex:1;min-width:0}.user-name{color:var(--clr-text);font-weight:700;font-size:var(--font-size-sm)}.user-email{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:2px}.user-actions{gap:var(--space-2);display:flex}.request-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:var(--transition-fast);border-left:3px solid var(--clr-warning)}.request-card:hover{border-color:var(--clr-warning);background:var(--clr-surface)}.subject-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.section-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.text-right{text-align:right}.text-center{text-align:center}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}.hidden{display:none!important}.search-bar{align-items:center;gap:var(--space-2);background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);min-width:240px;display:flex}.search-bar input{color:var(--clr-text);font-size:var(--font-size-sm);background:0 0;border:none;width:100%}.search-bar input::placeholder{color:var(--clr-text-faint)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.animate-fadeIn{animation:.3s fadeIn}.animate-slideUp{animation:.4s cubic-bezier(.4,0,.2,1) slideUp}.skeleton{background:linear-gradient(90deg, var(--clr-surface) 25%, var(--clr-surface-2) 50%, var(--clr-surface) 75%);border-radius:var(--radius-md);background-size:400px 100%;animation:1.4s infinite shimmer}.welcome-greeting{font-size:var(--font-size-sm);color:var(--clr-secondary);text-transform:uppercase;letter-spacing:1px;font-weight:600}.welcome-name{font-size:var(--font-size-3xl);color:var(--clr-text);margin-top:var(--space-1);font-weight:800}.welcome-date{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-top:var(--space-2)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--clr-border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--clr-text-muted)}.demo-creds{background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-5);font-size:var(--font-size-xs)}.demo-creds-title{color:var(--clr-accent);margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);font-weight:700;display:flex}.demo-cred-row{padding:var(--space-2) 0;border-bottom:var(--glass-border);color:var(--clr-text-muted);justify-content:space-between;align-items:center;display:flex}.demo-cred-row:last-child{border-bottom:none}.demo-cred-email{color:var(--clr-text);font-weight:600}.demo-cred-pass{color:var(--clr-secondary);font-family:monospace;font-weight:600}.upload-area{border:2px dashed var(--clr-border-bright);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;cursor:pointer;transition:var(--transition-fast)}.upload-area:hover{border-color:var(--clr-primary);background:#6c63ff0d}.upload-icon{margin-bottom:var(--space-3);font-size:40px}.upload-title{color:var(--clr-text);margin-bottom:var(--space-2);font-weight:700}.upload-hint{font-size:var(--font-size-xs);color:var(--clr-text-muted)}.tab-bar{gap:var(--space-2);margin-bottom:var(--space-6);background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-lg);flex-wrap:wrap;padding:6px;display:flex;overflow-x:auto}.tab-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);color:var(--clr-text-muted);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;display:inline-flex}.tab-btn:hover{background:var(--clr-surface);color:var(--clr-text)}.tab-btn.active{background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));color:#fff;box-shadow:0 2px 8px var(--clr-primary-glow)}.tab-count{border-radius:var(--radius-full);background:#ffffff26;padding:1px 6px;font-size:11px;font-weight:700}.notification-panel{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);width:360px;max-height:480px;box-shadow:var(--shadow-lg);z-index:200;flex-direction:column;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.notification-panel-header{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}.notification-list{flex:1;overflow-y:auto}.notification-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);transition:var(--transition-fast);display:flex}.notification-item:hover{background:var(--clr-surface)}.notification-item.unread{background:#6c63ff0a}.notif-dot{background:var(--clr-primary);width:8px;height:8px;box-shadow:0 0 6px var(--clr-primary-glow);border-radius:50%;flex-shrink:0;margin-top:6px}.notif-text{font-size:13px;line-height:1.5}.notif-time{color:var(--clr-text-faint);margin-top:3px;font-size:11px}.animate-slideDown{animation:.2s slideDown}.bar-chart{flex-direction:column;gap:10px;display:flex}.bar-chart-row{align-items:center;gap:10px;display:flex}.bar-label{color:var(--clr-text-muted);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:120px;font-size:12px;font-weight:600;overflow:hidden}.bar-track{background:var(--clr-surface-2);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.bar-fill{border-radius:var(--radius-full);background:var(--clr-primary);height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.bar-fill.success{background:var(--clr-success)}.bar-fill.warning{background:var(--clr-warning)}.bar-fill.danger{background:var(--clr-danger)}.bar-pct{text-align:right;flex-shrink:0;width:44px;font-size:12px;font-weight:800}.progress-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:var(--clr-primary);height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.progress-fill.success{background:var(--clr-success)}.progress-fill.warning{background:var(--clr-warning)}.progress-fill.danger{background:var(--clr-danger)}.progress-bar-wrapper{align-items:center;gap:10px;display:flex}.progress-value{flex-shrink:0;width:44px;font-size:13px;font-weight:800}.test-question-card{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5)}.question-number{color:var(--clr-primary-light);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-3);font-size:11px;font-weight:700}.question-text{color:var(--clr-text);margin-bottom:var(--space-5);font-size:1.1rem;font-weight:600;line-height:1.6}.mcq-options{gap:var(--space-3);flex-direction:column;display:flex}.mcq-option{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--clr-bg-3);border:1px solid var(--clr-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);font-weight:500;display:flex}.mcq-option:hover{border-color:var(--clr-primary);background:#6c63ff1a}.mcq-option.selected{border-color:var(--clr-primary);color:var(--clr-primary-light);background:#6c63ff33}.option-circle{background:var(--clr-surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.mcq-option.selected .option-circle{background:var(--clr-primary);color:#fff}.welcome-banner{border-radius:var(--radius-xl);padding:var(--space-8);margin-bottom:var(--space-8);background:linear-gradient(135deg,#6c63ff26 0%,#00d4aa1a 50%,#ffb34714 100%);border:1px solid #6c63ff33;position:relative;overflow:hidden}.welcome-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#6c63ff26,#0000 70%);width:300px;height:300px;position:absolute;top:-50%;right:-20%}.welcome-greeting{color:var(--clr-text-muted);font-size:14px;font-weight:500}.welcome-name{color:var(--clr-text);margin-top:4px;font-size:1.75rem;font-weight:800}.welcome-date{color:var(--clr-text-muted);margin-top:6px;font-size:13px}.section-header{margin-bottom:var(--space-4);margin-top:var(--space-6);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-md);color:var(--clr-text);font-weight:700}.subject-chip{border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-flex}.video-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);transition:var(--transition-fast);cursor:pointer;overflow:hidden}.video-card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-bright);transform:translateY(-4px)}.video-thumbnail{background:linear-gradient(135deg,#6c63ff40,#00d4aa26);justify-content:center;align-items:center;height:140px;display:flex;position:relative;overflow:hidden}.play-btn-overlay{opacity:0;transition:var(--transition-fast);background:#0000004d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.play-btn-overlay:after{content:"▶";color:#fff;text-shadow:0 2px 8px #00000080;font-size:36px}.video-card:hover .play-btn-overlay{opacity:1}.video-info{padding:var(--space-4)}.video-title{color:var(--clr-text);margin-bottom:6px;font-size:13px;font-weight:700;line-height:1.4}.video-meta{color:var(--clr-text-muted);font-size:11px}.chart-container{justify-content:center;align-items:center;min-height:260px;display:flex}.divider{border:none;border-top:var(--glass-border);margin:var(--space-5) 0}.badge-neutral{background:var(--clr-surface-2);color:var(--clr-text-muted)}.badge-primary{color:var(--clr-primary-light);background:#6c63ff33}.request-card{padding:var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg)}.grid-3-col{grid-column:1/-1}@media (width<=900px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translate(-100%)}.main-content{margin-left:0}}@media (width<=640px){.grid-2,.grid-3,.grid-4,.form-row,.role-selector{grid-template-columns:1fr}.page-content{padding:var(--space-4)}.bar-label{width:80px}.notification-panel{width:300px}}.google-btn{color:#3c4043;border-radius:var(--radius-lg);cursor:pointer;background:#fff;border:1.5px solid #dadce0;justify-content:center;align-items:center;gap:12px;width:100%;margin-bottom:4px;padding:13px 20px;font-family:inherit;font-size:15px;font-weight:600;text-decoration:none;transition:box-shadow .2s,background .2s;display:flex}.google-btn:hover{color:#3c4043;background:#f8f9fa;text-decoration:none;box-shadow:0 2px 12px #0000001f}.auth-divider{color:var(--clr-text-faint);align-items:center;gap:12px;margin:20px 0;font-size:12px;font-weight:500;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--clr-border);flex:1;height:1px}.role-option input[type=radio]{display:none}.role-option:hover{border-color:var(--clr-primary-light)!important;background:#6c63ff14!important}[data-theme=light]{--clr-bg:#f0f4ff;--clr-bg-2:#e8eeff;--clr-bg-3:#dde5ff;--clr-surface:#ffffffd9;--clr-surface-2:#fffffff2;--clr-surface-hover:#4f46e50f;--clr-border:#4f46e524;--clr-border-bright:#4f46e547;--clr-text:#1e1b4b;--clr-text-muted:#4b5563;--clr-text-faint:#9ca3af;--clr-primary:#4f46e5;--clr-primary-light:#6366f1;--clr-primary-dark:#3730a3;--clr-primary-glow:#4f46e540;--glass-bg:#ffffffbf;--glass-blur:blur(20px);--glass-border:1px solid #4f46e529}[data-theme=light] body{background:var(--clr-bg)}[data-theme=light] .sidebar{border-right:1px solid var(--clr-border);background:#fff}[data-theme=light] .top-header{border-bottom:1px solid var(--clr-border);background:#ffffffe6}[data-theme=light] .card{border:1px solid var(--clr-border);background:#fff;box-shadow:0 2px 12px #4f46e514}[data-theme=light] .stat-card{background:#fff}[data-theme=light] .sidebar-brand{color:var(--clr-primary)}[data-theme=light] .nav-item{color:var(--clr-text-muted)}[data-theme=light] .nav-item:hover,[data-theme=light] .nav-item.active{color:var(--clr-primary);background:#4f46e514}[data-theme=light] .page-title{color:var(--clr-primary-dark)}[data-theme=light] .btn-primary{background:var(--clr-primary)}.brand-icon-forma,.brand-name-forma{display:none!important}.brand-icon-default,.brand-name-default{display:inline-block}.sidebar-subbrand{display:none}[data-theme=forma] .brand-icon-default,[data-theme=forma] .brand-name-default{display:none!important}[data-theme=forma] .brand-icon-forma,[data-theme=forma] .brand-name-forma{display:inline-block!important}[data-theme=forma] .sidebar-subbrand{display:block}[data-theme=forma]{--clr-bg:#f5f6f2;--clr-bg-2:#fff;--clr-bg-3:#e9f3ec;--clr-surface:#fff;--clr-surface-2:#fff;--clr-surface-hover:#f0f3ed;--clr-border:#e9ece7;--clr-border-bright:#d4ded1;--clr-text:#1f2925;--clr-text-muted:#87918a;--clr-text-faint:#b5beb8;--clr-primary:#246c50;--clr-primary-light:#2d8261;--clr-primary-dark:#1b533d;--clr-primary-glow:#246c502e;--clr-secondary:#246c50;--clr-accent:#c9ee84;--glass-bg:#ffffffeb;--glass-blur:blur(14px);--glass-border:1px solid #e9ece7;--forma-green:#246c50;--forma-pale-green:#e9f3ec;--forma-lime:#c9ee84;--forma-orange:#faeddd;--forma-orange-text:#9a5b18;--forma-pink:#f8e9e5;--forma-pink-text:#b33a29;--forma-lavender:#eeebf8;--forma-lavender-text:#574b90;--font-family:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Manrope", sans-serif}[data-theme=forma] body{background:var(--clr-bg);color:var(--clr-text);font-family:var(--font-family);letter-spacing:-.01em}[data-theme=forma] h1,[data-theme=forma] h2,[data-theme=forma] h3,[data-theme=forma] h4,[data-theme=forma] .page-title,[data-theme=forma] .top-header-title,[data-theme=forma] .card-title,[data-theme=forma] .stat-value,[data-theme=forma] .platform-hero-title{font-family:var(--font-heading);letter-spacing:-.025em;color:var(--clr-text);font-weight:700}[data-theme=forma] .sidebar{background:#fff;border-right:1px solid #e9ece7;box-shadow:1px 0 3px #1f292505}[data-theme=forma] .sidebar-header{border-bottom:1px solid #e9ece7;padding:18px 20px}[data-theme=forma] .sidebar-logo{color:#246c50;background:#e9f3ec;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;display:flex}[data-theme=forma] .sidebar-brand-wrap{flex-direction:column;display:flex}[data-theme=forma] .sidebar-brand{color:#1f2925;font-family:var(--font-heading);letter-spacing:-.02em;font-size:18px;font-weight:800}[data-theme=forma] .sidebar-subbrand{color:#87918a;font-size:11px;font-weight:500;font-family:var(--font-family)}[data-theme=forma] .sidebar-user-card{background:#f5f6f2;border:1px solid #e9ece7;border-radius:12px}[data-theme=forma] .sidebar-user-name{color:#1f2925;font-weight:600;font-family:var(--font-heading)}[data-theme=forma] .nav-section-label{color:#87918a;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}[data-theme=forma] .nav-item{color:#1f2925;border-radius:10px;font-weight:500;transition:all .15s}[data-theme=forma] .nav-item:hover{color:#1f2925;background:#f5f6f2}[data-theme=forma] .nav-item.active{color:#246c50;background:#e9f3ec;border-left:3px solid #246c50;font-weight:700}[data-theme=forma] .top-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-bottom:1px solid #e9ece7}[data-theme=forma] .card{background:#fff;border:1px solid #e9ece7;border-radius:14px;box-shadow:0 1px 3px #1f292508,0 4px 12px #1f292505}[data-theme=forma] .card:hover:not(.no-hover){box-shadow:0 3px 8px #1f29250f,0 8px 24px #1f29250a}[data-theme=forma] .stat-card{background:#fff;border:1px solid #e9ece7;border-radius:14px;box-shadow:0 1px 3px #1f292508}[data-theme=forma] .stat-card:hover{border-color:#d4ded1;box-shadow:0 4px 14px #246c500f}[data-theme=forma] .stat-icon.teal{color:#246c50;background:#e9f3ec}[data-theme=forma] .stat-icon.purple{color:#574b90;background:#eeebf8}[data-theme=forma] .stat-icon.amber{color:#9a5b18;background:#faeddd}[data-theme=forma] .stat-icon.coral{color:#b33a29;background:#f8e9e5}[data-theme=forma] .stat-label{color:#87918a;font-size:12px;font-weight:500}[data-theme=forma] .stat-value{color:#1f2925;font-size:28px;font-weight:800}[data-theme=forma] .btn-primary{color:#fff;background:#246c50;border-radius:10px;font-weight:600;box-shadow:0 2px 8px #246c5033}[data-theme=forma] .btn-primary:hover{background:#1b533d;box-shadow:0 4px 12px #246c504d}[data-theme=forma] .btn-secondary{color:#1f2925;background:#fff;border:1px solid #e9ece7}[data-theme=forma] .btn-secondary:hover{background:#f5f6f2}[data-theme=forma] .role-badge.admin,[data-theme=forma] .role-badge.superadmin{color:#574b90;background:#eeebf8}[data-theme=forma] .role-badge.teacher{color:#246c50;background:#e9f3ec}[data-theme=forma] .role-badge.student{color:#9a5b18;background:#faeddd}[data-theme=forma] .role-badge.parent{color:#1f2925;background:#c9ee84}[data-theme=forma] .platform-hero-banner{background:linear-gradient(135deg,#e9f3ec 0%,#fff 60%,#faeddd 100%);border:1px solid #e9ece7;box-shadow:0 2px 8px #1f292508}[data-theme=forma] .platform-hero-title{color:#1f2925;font-size:22px}[data-theme=forma] .platform-hero-subtitle{color:#87918a}[data-theme=forma] .platform-hero-chip{color:#1f2925;background:#fff;border:1px solid #e9ece7}[data-theme=forma] .platform-hero-chip .chip-num{color:#246c50;font-weight:800}[data-theme=forma] .perf-table th{color:#87918a;font-family:var(--font-heading);background:#f5f6f2;border-bottom:1px solid #e9ece7}[data-theme=forma] .perf-table td{color:#1f2925;border-bottom:1px solid #e9ece7}[data-theme=forma] .perf-bar{background:#246c50}[data-theme=forma] .activity-timeline{background:#fff;border:1px solid #e9ece7}[data-theme=forma] .activity-dot.hw{background:#246c50}[data-theme=forma] .activity-dot.exam{background:#9a5b18}[data-theme=forma] .activity-dot.notif{background:#574b90}[data-theme=forma] body:before{opacity:.6;background:radial-gradient(circle,#c9ee844d 0%,#0000 70%)}[data-theme=forma] body:after{opacity:.6;background:radial-gradient(circle,#246c5026 0%,#0000 70%)}[data-theme=forma] .login-hero{background:#f5f6f2}[data-theme=forma] .login-hero:before{background:radial-gradient(80% 60% at 15% 20%,#e9f3ecf2 0%,#0000 60%),radial-gradient(60% 80% at 85% 75%,#faedddb3 0%,#0000 60%),radial-gradient(50% 50% at 60% 10%,#c9ee844d 0%,#0000 60%)}[data-theme=forma] .login-glass-card{background:#fff;border:1px solid #e9ece7;box-shadow:0 20px 50px #1f29250f,0 1px 3px #1f29250a}[data-theme=forma] .login-card-title{color:#1f2925;font-family:var(--font-heading)}[data-theme=forma] .login-card-subtitle{color:#87918a}[data-theme=forma] .input-field,[data-theme=forma] input[type=text],[data-theme=forma] input[type=password],[data-theme=forma] input[type=email]{color:#1f2925;background:#fff;border:1px solid #e9ece7}[data-theme=forma] .input-field:focus,[data-theme=forma] input:focus{border-color:#246c50;box-shadow:0 0 0 3px #246c501f}[data-theme=forma] #theme-picker-widget{background:#fffffff2;border:1px solid #e9ece7;box-shadow:0 4px 20px #1f292514}[data-theme=forma] .tp-btn{color:#87918a}[data-theme=forma] .tp-btn:hover{color:#246c50;background:#e9f3ec}[data-theme=forma] .tp-btn.active{color:#fff;background:#246c50;box-shadow:0 2px 8px #246c5040}[data-theme=dual]{--clr-bg:#f5f7ff;--clr-bg-2:#eef2ff;--clr-surface:#ffffffe6;--clr-surface-2:#fff;--clr-border:#4f46e51f;--clr-text:#1e1b4b;--clr-text-muted:#4b5563;--clr-text-faint:#9ca3af;--clr-primary:#6c63ff;--clr-primary-light:#818cf8;--clr-primary-glow:#6c63ff40;--glass-bg:#fffc}[data-theme=dual] body{background:var(--clr-bg)}[data-theme=dual] .sidebar{background:#0f0f23;border-right:1px solid #ffffff0f}[data-theme=dual] .sidebar-brand,[data-theme=dual] .nav-item,[data-theme=dual] .sidebar-user-name{color:#e8eaf0}[data-theme=dual] .nav-item:hover,[data-theme=dual] .nav-item.active{color:#a78bfa;background:#6c63ff2e}[data-theme=dual] .top-header{border-bottom:1px solid var(--clr-border);background:#fffffff2}[data-theme=dual] .card{border:1px solid var(--clr-border);background:#fff;box-shadow:0 2px 16px #6c63ff12}[data-theme=bold]{--clr-bg:#0a0a1a;--clr-bg-2:#100a28;--clr-bg-3:#120a34;--clr-surface:#ffffff0d;--clr-surface-2:#ffffff17;--clr-border:#ffffff1a;--clr-text:#fafafa;--clr-text-muted:#a0a0c0;--clr-primary:#a855f7;--clr-primary-light:#c084fc;--clr-primary-dark:#7c3aed;--clr-primary-glow:#a855f766;--clr-secondary:#06b6d4;--clr-accent:#f59e0b;--glass-bg:#a855f714}[data-theme=bold] body{background:var(--clr-bg)}[data-theme=bold] .sidebar{background:linear-gradient(#1a0533 0%,#0a0a1a 100%);border-right:1px solid #a855f733}[data-theme=bold] .card{background:linear-gradient(135deg,#a855f714 0%,#06b6d40d 100%);border:1px solid #a855f738}[data-theme=bold] .stat-card:first-child{border-left:3px solid #a855f7}[data-theme=bold] .stat-card:nth-child(2){border-left:3px solid #06b6d4}[data-theme=bold] .stat-card:nth-child(3){border-left:3px solid #f59e0b}[data-theme=bold] .stat-card:nth-child(4){border-left:3px solid #4ade80}[data-theme=bold] .btn-primary{background:linear-gradient(135deg,#a855f7,#7c3aed);box-shadow:0 4px 24px #a855f780}[data-theme=bold] .top-header{background:linear-gradient(90deg,#a855f714 0%,#0000 100%)}body:before,body:after{content:"";pointer-events:none;z-index:0;filter:blur(80px);opacity:.4;border-radius:50%;position:fixed}body:before{background:radial-gradient(circle,#6c63ff73 0%,#06b6d426 60%,#0000 100%);width:600px;height:600px;top:-180px;right:-180px}body:after{background:radial-gradient(circle,#00d4aa59 0%,#ffb3471f 60%,#0000 100%);width:500px;height:500px;bottom:-150px;left:-150px}[data-theme=light] body:before{opacity:.5;background:radial-gradient(circle,#4f46e533 0%,#0000 70%)}[data-theme=light] body:after{opacity:.5;background:radial-gradient(circle,#00b8d42e 0%,#0000 70%)}[data-theme=bold] body:before{opacity:.5;background:radial-gradient(circle,#a855f780 0%,#0000 70%)}[data-theme=bold] body:after{opacity:.5;background:radial-gradient(circle,#06b6d466 0%,#0000 70%)}.login-hero{justify-content:center;align-items:center;min-height:100vh;padding:40px 16px;display:flex;position:relative;overflow:hidden}.login-hero:before{content:"";z-index:0;background:radial-gradient(80% 60% at 20% 20%,#6c63ff47 0%,#0000 60%),radial-gradient(60% 80% at 80% 70%,#00d4aa33 0%,#0000 60%),radial-gradient(50% 50% at 60% 10%,#ffb3471f 0%,#0000 60%);animation:12s ease-in-out infinite alternate meshShift;position:fixed;inset:0}@keyframes meshShift{0%{opacity:.7;transform:scale(1)}to{opacity:1;transform:scale(1.04)}}.login-float-emoji{opacity:0;pointer-events:none;z-index:0;filter:blur(.5px);font-size:32px;animation:linear infinite floatUp;position:fixed}.login-float-emoji:first-child{font-size:28px;animation-duration:14s;animation-delay:0s;left:6%}.login-float-emoji:nth-child(2){font-size:36px;animation-duration:17s;animation-delay:2s;left:16%}.login-float-emoji:nth-child(3){font-size:24px;animation-duration:12s;animation-delay:4s;left:28%}.login-float-emoji:nth-child(4){font-size:32px;animation-duration:19s;animation-delay:1s;left:42%}.login-float-emoji:nth-child(5){font-size:40px;animation-duration:15s;animation-delay:3s;left:57%}.login-float-emoji:nth-child(6){font-size:28px;animation-duration:11s;animation-delay:5s;left:70%}.login-float-emoji:nth-child(7){font-size:34px;animation-duration:16s;animation-delay:.5s;left:82%}.login-float-emoji:nth-child(8){font-size:26px;animation-duration:13s;animation-delay:2.5s;left:92%}@keyframes floatUp{0%{opacity:0;transform:translateY(110vh)rotate(0)}10%{opacity:.18}90%{opacity:.14}to{opacity:0;transform:translateY(-15vh)rotate(20deg)}}.login-glass-card{z-index:2;-webkit-backdrop-filter:blur(24px);background:#0f0c26b8 padding-box padding-box;border:1.5px solid #0000;border-radius:24px;width:100%;max-width:440px;padding:40px 36px;animation:4s ease-in-out infinite alternate glowBorder;position:relative;box-shadow:0 20px 60px #00000080,0 0 0 1.5px #6c63ff4d,inset 0 1px #ffffff14}@keyframes glowBorder{0%{box-shadow:0 20px 60px #00000080,0 0 0 1.5px #6c63ff59,0 0 40px #6c63ff1a}50%{box-shadow:0 20px 60px #00000080,0 0 0 1.5px #00d4aa59,0 0 40px #00d4aa1a}to{box-shadow:0 20px 60px #00000080,0 0 0 1.5px #ffb34759,0 0 40px #ffb3471a}}[data-theme=light] .login-glass-card{background:#ffffffd9;animation:4s ease-in-out infinite alternate glowBorderLight;box-shadow:0 20px 60px #4f46e526,0 0 0 1.5px #4f46e533}@keyframes glowBorderLight{0%{box-shadow:0 20px 60px #4f46e51f,0 0 0 1.5px #4f46e533}to{box-shadow:0 20px 60px #4f46e533,0 0 0 1.5px #06b6d44d}}.login-role-strip{border-top:1px solid var(--clr-border);flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;padding-top:16px;display:flex}.login-role-chip{background:var(--clr-surface-2);border:1px solid var(--clr-border);color:var(--clr-text-muted);border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.platform-hero-banner{background:linear-gradient(135deg,#6c63ff2e 0%,#00d4aa1a 50%,#ffb34714 100%);border:1px solid #6c63ff40;border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.platform-hero-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#6c63ff33 0%,#0000 70%);width:260px;height:260px;position:absolute;top:-60px;right:-60px}.platform-hero-title{color:var(--clr-text);margin:0;font-size:22px;font-weight:800}.platform-hero-subtitle{color:var(--clr-text-muted);margin:4px 0 0;font-size:13px}.platform-hero-chips{flex-wrap:wrap;gap:12px;display:flex}.platform-hero-chip{background:var(--clr-surface-2);border:1px solid var(--clr-border);border-radius:12px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:700;display:flex}.platform-hero-chip .chip-num{background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:900}.stat-sparkline{opacity:.7;width:100%;height:36px;margin-top:10px}.stat-sparkline polyline{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart-row{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}@media (width<=768px){.chart-row{grid-template-columns:1fr}}.chart-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;padding:20px 24px}.chart-card-title{color:var(--clr-text);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;font-weight:700;display:flex}.chart-canvas-wrap{justify-content:center;align-items:center;height:200px;display:flex;position:relative}.activity-timeline{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;margin-bottom:24px;padding:20px 24px}.activity-timeline-title{color:var(--clr-text);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;font-weight:700;display:flex}.activity-list{flex-direction:column;gap:12px;display:flex}.activity-item{align-items:flex-start;gap:12px;animation:.4s fadeIn;display:flex}.activity-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px}.activity-dot.hw{background:var(--clr-primary);box-shadow:0 0 6px var(--clr-primary-glow)}.activity-dot.exam{background:var(--clr-accent);box-shadow:0 0 6px var(--clr-accent-glow)}.activity-dot.att{background:var(--clr-success);box-shadow:0 0 6px var(--clr-success-glow)}.activity-dot.notif{background:var(--clr-info);box-shadow:0 0 6px #38bdf866}.activity-text{color:var(--clr-text);font-size:13px;font-weight:600}.activity-meta{color:var(--clr-text-muted);margin-top:2px;font-size:11px}.perf-table-wrap{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:16px;margin-bottom:24px;padding:20px 24px;overflow-x:auto}.perf-table-title{color:var(--clr-text);align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.perf-table{border-collapse:collapse;width:100%;font-size:13px}.perf-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-muted);border-bottom:1px solid var(--clr-border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 12px;font-size:11px;font-weight:700}.perf-table th:hover{color:var(--clr-primary-light)}.perf-table td{border-bottom:1px solid var(--clr-border);color:var(--clr-text);padding:10px 12px}.perf-table tr:last-child td{border-bottom:none}.perf-table tr:hover td{background:var(--clr-surface-hover)}.perf-bar{background:var(--clr-primary);vertical-align:middle;opacity:.7;border-radius:3px;height:6px;margin-right:6px;display:inline-block}#theme-picker-widget{z-index:9999;-webkit-backdrop-filter:blur(16px);background:#0f0c26e6;border:1px solid #ffffff1f;border-radius:40px;align-items:center;gap:4px;padding:6px 10px;animation:.5s .5s both fadeIn;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 8px 32px #00000080}[data-theme=light] #theme-picker-widget,[data-theme=dual] #theme-picker-widget{background:#ffffffeb;border-color:#4f46e533;box-shadow:0 8px 32px #4f46e526}.tp-label{margin-right:2px;font-size:15px}.tp-btn{color:var(--clr-text-muted);cursor:pointer;white-space:nowrap;font-size:11px;font-weight:600;font-family:var(--font-family);background:0 0;border:none;border-radius:20px;padding:4px 11px;transition:all .2s}.tp-btn:hover{color:var(--clr-text);background:#6c63ff26}.tp-btn.active{background:var(--clr-primary);color:#fff;box-shadow:0 2px 12px var(--clr-primary-glow)}[data-theme=light] .tp-btn{color:#4b5563}[data-theme=light] .tp-btn:hover{color:#1e1b4b;background:#4f46e51a}[data-theme=light] .tp-btn.active{background:var(--clr-primary);color:#fff}[data-theme=bold] .tp-btn.active{background:linear-gradient(135deg,#a855f7,#7c3aed);box-shadow:0 2px 16px #a855f780}.feature-cards-row{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}@media (width<=768px){.feature-cards-row{grid-template-columns:1fr}}.feature-card{background:var(--clr-surface);border:1px solid var(--clr-border);cursor:default;border-radius:16px;padding:20px;transition:transform .2s,box-shadow .2s}.feature-card:hover{box-shadow:0 8px 30px var(--clr-primary-glow);transform:translateY(-3px)}.feature-card-icon{background:var(--clr-surface-2);border:1px solid var(--clr-border);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:10px;font-size:28px;display:inline-flex}.feature-card-title{color:var(--clr-text);margin-bottom:6px;font-size:14px;font-weight:700}.feature-card-desc{color:var(--clr-text-muted);font-size:12px;line-height:1.6}.count-up{font-variant-numeric:tabular-nums;transition:color .3s}.card:not(.no-hover):hover,.stat-card:not(.no-hover):hover{box-shadow:0 12px 36px #00000059, 0 0 0 1px var(--clr-border-bright);transition:transform .2s,box-shadow .2s;transform:translateY(-3px)}.forma-dashboard{max-width:1440px;padding-top:30px}.forma-dashboard-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.forma-eyebrow{color:#246c50;letter-spacing:1.4px;margin-bottom:8px;font-size:10px;font-weight:800}.forma-dashboard .page-title{color:#1f2925;letter-spacing:-.04em;font:700 clamp(24px,3vw,32px)/1.15 Manrope,sans-serif}.forma-dashboard .page-subtitle{color:#87918a;margin-top:7px;font-size:13px}.forma-date{color:#758078;white-space:nowrap;background:#fff;border:1px solid #e9ece7;border-radius:9px;padding:9px 12px;font-size:12px}.forma-loading{color:#87918a;text-align:center;background:#fff;border:1px solid #e9ece7;border-radius:14px;padding:56px 20px}.forma-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.forma-stat-card{background:#fff;border:1px solid #e9ece7;border-radius:13px;min-width:0;padding:17px 18px;box-shadow:0 8px 24px #1f292509}.forma-stat-top{color:#79847c;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.forma-stat-card>strong{color:#1f2925;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:12px 0 3px;font:700 29px/1.2 Manrope,sans-serif;display:block}.forma-stat-card>small{color:#98a19a;font-size:10px}.forma-stat-icon{border-radius:9px;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.forma-stat-icon.green{color:#246c50;background:#e9f3ec}.forma-stat-icon.orange{color:#a96e2e;background:#faeddd}.forma-stat-icon.lavender{color:#695d9d;background:#eeebf8}.forma-stat-icon.pink{color:#ad695c;background:#f8e9e5}.forma-dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:15px;margin-bottom:15px;display:grid}.forma-panel{background:#fff;border:1px solid #e9ece7;border-radius:13px;min-width:0;padding:19px;box-shadow:0 8px 24px #1f292509}.forma-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px;display:flex}.forma-panel-head h2{color:#27332b;margin:0;font:700 14px/1.3 Manrope,sans-serif}.forma-panel-head p{color:#98a19a;margin:5px 0 0;font-size:10px}.forma-link{color:#246c50;white-space:nowrap;background:0 0;border:0;padding:3px 0;font-size:10px;font-weight:700}.forma-link:hover{color:#1b533d;text-decoration:underline}.forma-attendance-summary{border-bottom:1px solid #f0f2ef;align-items:center;gap:20px;padding:3px 0 18px;display:flex}.forma-attendance-ring{background:conic-gradient(#4f8a66 0 var(--attendance),#d5e9bf var(--attendance) calc(var(--attendance) + 18%),#f3e2c9 calc(var(--attendance) + 18%) calc(var(--attendance) + 23%),#edf0ec 0);border-radius:50%;flex:none;place-items:center;width:106px;height:106px;display:grid;position:relative}.forma-attendance-ring:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:10px}.forma-attendance-ring>div{z-index:1;text-align:center;position:relative}.forma-attendance-ring strong{color:#27332b;font:700 20px Manrope,sans-serif;display:block}.forma-attendance-ring small{color:#87918a;font-size:9px}.forma-attendance-legend{flex:1;gap:9px;display:grid}.forma-attendance-legend>div{color:#68736c;align-items:center;gap:7px;font-size:10px;display:flex}.forma-attendance-legend i{border-radius:50%;width:7px;height:7px}.forma-attendance-legend i.present{background:#4f8a66}.forma-attendance-legend i.absent{background:#d5e9bf}.forma-attendance-legend i.leave{background:#f3e2c9}.forma-attendance-legend i.unmarked{background:#edf0ec}.forma-attendance-legend strong{color:#344139;margin-left:auto;font-size:10px}.forma-class-attendance{gap:11px;padding-top:16px;display:grid}.forma-class-row{color:#647068;grid-template-columns:minmax(80px,1fr) minmax(50px,1.4fr) 38px;align-items:center;gap:10px;font-size:10px;display:grid}.forma-class-row>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.forma-class-row>b{text-align:right;color:#455249;font-size:10px}.forma-progress{background:#eef1ed;border-radius:10px;height:6px;overflow:hidden}.forma-progress i{background:#6e9a7b;border-radius:10px;height:100%;display:block}.forma-notices{gap:2px;display:grid}.forma-notice{border-bottom:1px solid #f0f2ef;align-items:flex-start;gap:11px;padding:11px 0;display:flex}.forma-notice:last-child{border-bottom:0}.forma-notice-icon{background:#f5f6f2;border-radius:8px;flex:none;place-items:center;width:29px;height:29px;font-size:13px;display:grid}.forma-notice>div{min-width:0}.forma-notice strong{color:#344139;font-size:11px;font-weight:650;display:block}.forma-notice small{color:#929c95;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:10px;line-height:1.45;display:-webkit-box;overflow:hidden}.forma-classes-panel{margin-bottom:15px}.forma-class-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.forma-class-card{text-align:left;color:#2c3930;background:#fff;border:1px solid #e9ece7;border-radius:10px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;padding:12px;transition:background .16s,border-color .16s,transform .16s;display:grid}.forma-class-card:hover{background:#f8faf7;border-color:#cbd9cd;transform:translateY(-1px)}.forma-class-symbol{color:#246c50;background:#e9f3ec;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.forma-class-card>span:nth-child(2){min-width:0}.forma-class-card strong{text-overflow:ellipsis;white-space:nowrap;font:700 11px Manrope,sans-serif;display:block;overflow:hidden}.forma-class-card span small{color:#929c95;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;display:block;overflow:hidden}.forma-class-card>b{color:#344139;text-align:right;font:700 15px Manrope,sans-serif}.forma-class-card>b small{color:#98a19a;font:500 8px DM Sans,sans-serif;display:block}.forma-class-card em{color:#246c50;grid-column:2/4;font-size:9px;font-style:normal}.forma-quick-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.forma-quick-actions button{text-align:left;color:#334138;background:#ffffffb8;border:1px solid #e9ece7;border-radius:10px;grid-template-columns:30px 1fr;align-items:center;column-gap:9px;min-width:0;padding:12px;display:grid;position:relative}.forma-quick-actions button:hover{background:#fff;border-color:#cbd9cd}.forma-quick-actions button>span{color:#246c50;background:#e9f3ec;border-radius:8px;grid-row:span 2;place-items:center;width:29px;height:29px;display:grid}.forma-quick-actions button>b{font-size:10px}.forma-quick-actions button>small{color:#929c95;margin-top:2px;font-size:9px}.forma-quick-actions button>i{color:#246c50;font-style:normal;position:absolute;top:12px;right:11px}.forma-empty-line{color:#98a19a;padding:15px 0;font-size:11px}.forma-error{color:#ad5140;background:#fff;border:1px solid #f2d8d2;border-radius:12px;justify-items:start;gap:10px;padding:24px;display:grid}.forma-error span{color:#87918a;font-size:12px}@media (width<=1100px){.forma-stats,.forma-class-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.forma-dashboard{padding:20px 16px 32px}.forma-dashboard-heading{flex-direction:column;align-items:flex-start;gap:9px}.forma-date{font-size:10px}.forma-dashboard-grid{grid-template-columns:1fr}.forma-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=460px){.forma-stats{gap:9px}.forma-stat-card{padding:13px}.forma-class-cards,.forma-quick-actions{grid-template-columns:1fr}.forma-attendance-summary{gap:12px}.forma-attendance-ring{width:90px;height:90px}}.ref-dashboard{max-width:1440px;padding:30px 38px 50px}.ref-dashboard .page-header{margin-bottom:22px}.ref-heading{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.ref-eyebrow{color:#246c50;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:700}.ref-dashboard .page-title{color:#1f2925;letter-spacing:-1px;font:700 27px/1.2 Manrope,sans-serif}.ref-dashboard .page-subtitle{color:#87918a;margin-top:6px;font-size:12px}.ref-heading-actions{gap:9px;display:flex}.ref-heading-actions .btn{border-radius:8px;font-size:11px}.ref-scope{align-items:center;gap:9px;margin:0 0 18px;padding:0 1px;display:flex;overflow-x:auto}.ref-scope-label{color:#929b95;white-space:nowrap;font-size:10px}.ref-scope-school{color:#526057;white-space:nowrap;font-size:11px;font-weight:600}.ref-scope select{color:#35423a;background:#fff;border:1px solid #e9ece7;border-radius:8px;outline:0;padding:8px 28px 8px 10px;font-size:11px}.ref-scope-note{color:#9aa29d;white-space:nowrap;margin-left:auto;font-size:10px}.ref-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.ref-stat{background:#fff;border:1px solid #eceeea;border-radius:13px;min-width:0;min-height:121px;padding:17px 18px 15px;box-shadow:0 12px 36px #25352c0a}.ref-stat-top{color:#7e8981;justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.ref-stat-icon{border-radius:8px;place-items:center;width:27px;height:27px;font-size:13px;display:grid}.ref-stat-icon.green{color:#34805c;background:#eaf4eb}.ref-stat-icon.orange{color:#b47836;background:#fbf1e4}.ref-stat-icon.pink{color:#c27965;background:#faece8}.ref-stat-icon.lavender{color:#7d70ab;background:#f0edfa}.ref-stat>strong{color:#1f2925;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-top:9px;font:700 25px/1.15 Manrope,sans-serif;display:block}.ref-stat-foot{color:#8d9790;align-items:center;gap:5px;margin-top:4px;font-size:10px;display:flex}.ref-stat-foot b{color:#438262}.ref-main-grid,.ref-lower-grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:14px;margin-top:14px;display:grid}.ref-lower-grid{grid-template-columns:1fr 1fr}.ref-panel{background:#fff;border:1px solid #eceeea;border-radius:13px;min-width:0;padding:18px;box-shadow:0 12px 36px #25352c0a}.ref-panel-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:16px;display:flex}.ref-panel-head h2{color:#26332b;letter-spacing:-.2px;margin:0;font:700 13px/1.3 Manrope,sans-serif}.ref-panel-head p{color:#919b94;margin:5px 0 0;font-size:10px}.ref-link{color:#246c50;white-space:nowrap;background:0 0;border:0;flex:none;padding:2px 0;font-size:10px;font-weight:700}.ref-link:hover{color:#1b533d;text-decoration:underline}.ref-legend{color:#7e8982;white-space:nowrap;align-items:center;gap:14px;font-size:9px;display:flex}.ref-legend span{align-items:center;gap:5px;display:inline-flex}.ref-legend i{border-radius:50%;width:7px;height:7px}.ref-legend i.previous{background:#dbe9dc}.ref-legend i.current{background:#6e9a7b}.ref-chart{height:174px;padding:8px 4px 27px 29px;position:relative}.ref-axis{color:#a0a8a2;flex-direction:column;justify-content:space-between;font-size:8px;display:flex;position:absolute;top:5px;bottom:28px;left:0}.ref-plot{background:repeating-linear-gradient(#0000 0 39px,#eff1ed 40px);border-bottom:1px solid #eaede8;position:absolute;inset:7px 3px 29px 30px}.ref-bars{z-index:1;justify-content:space-evenly;align-items:stretch;gap:16px;display:flex;position:absolute;inset:8px 3px 29px 30px}.ref-bar-group{flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.ref-bar{border-radius:5px 5px 1px 1px;width:min(42px,55%);min-height:2px;transition:height .3s}.ref-bar.previous{background:#dbe9dc}.ref-bar.current{background:#6e9a7b}.ref-bar-group label{color:#87918a;white-space:nowrap;justify-items:center;gap:2px;font-size:9px;display:grid;position:absolute;bottom:-22px}.ref-bar-group label b{color:#536057;font-size:9px}.ref-chart-note{color:#9aa39d;margin-top:7px;font-size:9px}.ref-notices{gap:11px;display:grid}.ref-notice{align-items:flex-start;gap:10px;min-width:0;display:flex}.ref-notice-icon{background:#f7f0e4;border-radius:8px;flex:none;place-items:center;width:29px;height:29px;font-size:13px;display:grid}.ref-notice>div{flex:1;min-width:0}.ref-notice strong{color:#344139;font-size:10px;font-weight:650;display:block}.ref-notice small{color:#919b94;margin-top:4px;font-size:9px;line-height:1.45;display:block}.ref-notice-pill{color:#aa783b;white-space:nowrap;background:#fdf2e5;border-radius:8px;padding:4px 6px;font-size:8px}.ref-attendance{align-items:center;gap:19px;padding:8px 3px 2px;display:flex}.ref-donut{background:conic-gradient(#4f8a66 0 var(--present),#d5e9bf var(--present) var(--absent),#f3e2c9 var(--absent) var(--leave),#edf0ec var(--leave) 100%);border-radius:50%;flex:none;place-items:center;width:112px;height:112px;display:grid;position:relative}.ref-donut:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:12px}.ref-donut>div{z-index:1;text-align:center}.ref-donut strong{color:#26332b;letter-spacing:-1px;font:700 22px/1.15 Manrope,sans-serif;display:block}.ref-donut small{color:#8a958d;font-size:9px}.ref-attendance-legend{flex:1;gap:11px;display:grid}.ref-attendance-legend>div{color:#68736c;align-items:center;gap:7px;font-size:10px;display:flex}.ref-attendance-legend i{border-radius:50%;width:7px;height:7px}.ref-attendance-legend i.present{background:#4f8a66}.ref-attendance-legend i.absent{background:#d5e9bf}.ref-attendance-legend i.leave{background:#f3e2c9}.ref-attendance-legend i.unmarked{background:#edf0ec}.ref-attendance-legend strong{color:#344139;margin-left:auto;font-size:10px}.ref-support-list{gap:0;display:grid}.ref-support-row{border-bottom:1px solid #f0f2ef;align-items:center;gap:9px;padding:9px 0;display:flex}.ref-support-row:last-child{border-bottom:0}.ref-student-avatar{color:#ae6e59;background:#f8e9e5;border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:9px;font-weight:700;display:grid}.ref-support-row>div{flex:1;min-width:0}.ref-support-row strong{color:#344139;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;display:block;overflow:hidden}.ref-support-row small{color:#919b94;margin-top:3px;font-size:9px;display:block}.ref-empty,.ref-loading{color:#929c95;padding:22px 8px;font-size:10px;line-height:1.6}.ref-loading{text-align:center;padding:50px}.ref-error{color:#a54d3f;background:#fff;border:1px solid #f0d9d2;border-radius:12px;justify-items:start;gap:10px;padding:22px;display:grid}.ref-error span{color:#87918a;font-size:12px}@media (width<=1050px){.ref-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ref-main-grid{grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr)}}@media (width<=760px){.ref-dashboard{padding:22px 16px 36px}.ref-heading{flex-direction:column;align-items:flex-start}.ref-scope-note{display:none}.ref-main-grid,.ref-lower-grid{grid-template-columns:1fr}}@media (width<=480px){.ref-stats{gap:9px}.ref-stat{min-height:110px;padding:13px}.ref-stat>strong{font-size:22px}.ref-panel{padding:14px}.ref-attendance{gap:12px}.ref-donut{width:92px;height:92px}.ref-legend{gap:8px}.ref-panel-head p{max-width:250px}}
