@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--bg-primary:#f5f5f7;--bg-secondary:#fafafc;--bg-tertiary:#fff;--bg-card:#fff;--bg-card-hover:#fff;--border-color:#00000014;--border-color-subtle:#0000000d;--border-color-card:#e5e5ea;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#86868b;--apple-blue:#0071e3;--apple-blue-hover:#0077ed;--apple-blue-rgb:0, 113, 227;--apple-green:#34c759;--apple-orange:#ff9500;--apple-red:#ff3b30;--apple-purple:#af52de;--apple-yellow:#fc0;--sidebar-width:240px;--header-height:64px;--font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Plus Jakarta Sans", "Outfit", "Segoe UI", Roboto, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 16px #0000000f, 0 1px 3px #00000005;--shadow-lg:0 12px 32px #00000014, 0 2px 6px #00000008;--shadow-modal:0 24px 60px #00000029, 0 4px 12px #0000000d;--transition-fast:.15s cubic-bezier(.16, 1, .3, 1);--transition-normal:.25s cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--bg-primary:#202124;--bg-secondary:#292a2d;--bg-tertiary:#303134;--bg-card:#292a2d;--bg-card-hover:#35363a;--border-color:#ffffff1a;--border-color-subtle:#ffffff0f;--border-color-card:#3c4043;--text-primary:#e8eaed;--text-secondary:#9aa0a6;--text-tertiary:#80868b;--apple-blue:#8ab4f8;--apple-blue-hover:#adc8ff;--apple-blue-rgb:138, 180, 248;--apple-green:#81c995;--apple-orange:#fdd663;--apple-red:#f28b82;--apple-purple:#c58af9;--apple-yellow:#fdd663;--shadow-sm:0 1px 3px #00000059;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 12px 32px #0000008c;--shadow-modal:0 24px 60px #000000b3}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;margin:0;padding:0}html{scrollbar-width:none;-ms-overflow-style:none;min-height:100%}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);min-height:100%;padding:0;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);-webkit-overflow-scrolling:touch;margin:0}@media screen and (width<=768px){input[type=text],input[type=password],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=url],select,textarea,.form-input{font-size:16px!important}}html,body{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.glass{-webkit-backdrop-filter:blur(12px)saturate(160%);border:1px solid var(--border-color);background:#ffffffd9;transform:translateZ(0)}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}@media (hover:hover) and (pointer:fine){.glass-card:hover{box-shadow:var(--shadow-md)}}@media (width<=768px){.glass{-webkit-backdrop-filter:blur(10px)saturate(140%)}.glass-card{transition:none}}.app-container{background-color:var(--bg-primary);width:100%;min-height:100dvh;padding-top:calc(60px + env(safe-area-inset-top,0px));box-sizing:border-box;flex-direction:column;display:flex;position:relative}.app-container.student-app-root{padding-top:0!important}@media (width<=900px){.app-container{padding-top:calc(56px + env(safe-area-inset-top,0px))}.app-container.student-app-root{padding-top:max(env(safe-area-inset-top,0px), 4px)!important}}.bg-glow-1,.bg-glow-2{display:none}.main-content{flex:1;width:100%;min-width:0;max-width:1280px;margin:0 auto;padding:32px 28px;overflow:visible}.main-content.student-main-content{padding:16px 20px}@media (width<=900px){.main-content{padding:14px 12px;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.main-content.student-main-content{padding:10px 14px;padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}}.page-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:16px;display:flex}@media (width<=600px){.page-header{flex-direction:column;align-items:stretch;gap:14px}.page-header .btn,.page-header button{width:100%}}.page-title{letter-spacing:-.03em;color:var(--text-primary);font-size:1.85rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem;font-weight:400}.btn{border-radius:var(--radius-md);font-family:var(--font-family);cursor:pointer;letter-spacing:-.01em;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:.88rem;font-weight:600;display:inline-flex}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:.8rem}.btn-primary{color:#fff;background:#1d1d1f;box-shadow:0 1px 3px #0000001f}.btn-primary:hover{background:#333336;box-shadow:0 1px 3px #0000001f}.btn-primary:active{background:#1d1d1f}.btn-secondary{color:var(--text-primary);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #d2d2d7}.btn-secondary:hover{background:#f5f5f7;border-color:#c7c7cc}.btn-secondary:active{background:#ebebed}.btn-danger{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.btn-danger:hover{color:#b91c1c;background:#fca5a5}.btn-danger:active{background:#f87171}.form-group{margin-bottom:18px}.form-label{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.form-input{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-family);transition:all var(--transition-fast);background:#fff;border:1px solid #d2d2d7;padding:10px 14px;font-size:.92rem}.form-input:focus{border-color:var(--apple-blue);outline:none;box-shadow:0 0 0 4px #0071e324}.toast-container{bottom:calc(28px + env(safe-area-inset-bottom));right:max(28px, env(safe-area-inset-right));z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed}.toast{pointer-events:auto;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(20px)saturate(180%);min-width:280px;box-shadow:var(--shadow-lg);color:var(--text-primary);background:#ffffffeb;border:1px solid #00000014;align-items:center;gap:12px;padding:12px 18px;font-size:.88rem;font-weight:600;display:flex}.toast-success{border-left:4px solid var(--apple-green)}.toast-error{border-left:4px solid var(--apple-red)}.toast-info{border-left:4px solid var(--apple-blue)}@media (width<=680px){.toast-container{bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:100002;align-items:center;left:16px;right:16px}.toast{min-width:unset;border-radius:var(--radius-full);justify-content:center;width:100%;max-width:380px;box-shadow:0 4px 20px #00000026}}.modal-overlay{-webkit-backdrop-filter:blur(12px);z-index:2000;box-sizing:border-box;background:#00000061;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out forwards modalBackdropFadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{box-sizing:border-box;border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-modal);background:#fff;border:1px solid #00000014;max-height:calc(100dvh - 50px);margin:auto;padding:28px 24px 22px;animation:.25s cubic-bezier(.16,1,.3,1) forwards modalScaleIn;position:relative;overflow-y:auto}.modal-close-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);width:32px;height:32px;transition:all var(--transition-fast);z-index:20;background:#f5f5f7;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.modal-close-btn:hover{color:var(--text-primary);background:#e5e5ea}.modal-close-btn:active{background:#d1d1d6}@media (width<=900px){.modal-overlay{padding:12px;padding-bottom:calc(85px + env(safe-area-inset-bottom,0px))}.modal-content{border-radius:var(--radius-lg);max-width:100%;padding:22px 18px 16px}}.avatar-tabs-header{border-radius:var(--radius-sm);background:#f5f5f7;border:1px solid #0000000a;margin-bottom:12px;padding:3px;display:flex}.avatar-tab-btn{font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);background:0 0;border:none;border-radius:6px;flex:1;padding:7px 12px;font-size:.8rem;font-weight:600}.avatar-tab-btn:hover{color:var(--text-primary)}.avatar-tab-btn.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 4px #00000014}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-title{letter-spacing:-.02em;border-bottom:1px solid var(--border-color);color:var(--text-primary);margin-bottom:16px;padding-bottom:12px;font-size:1.25rem;font-weight:700}.modal-actions{border-top:1px solid var(--border-color);gap:10px;margin-top:22px;padding-top:14px;display:flex}.modal-actions .btn{flex:1}.avatar-gallery-picker-grid{border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;background:#f5f5f7;border:1px solid #0000000a;grid-template-columns:repeat(5,1fr);gap:8px;max-height:220px;padding:8px;display:grid;overflow-y:auto}@media (width<=480px){.avatar-gallery-picker-grid{grid-template-columns:repeat(4,1fr);gap:6px;max-height:190px}}.avatar-gallery-item-btn{aspect-ratio:1;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;border:2.5px solid #0000;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.avatar-gallery-item-btn:hover{box-shadow:var(--shadow-md)}.avatar-gallery-item-btn.selected{border-color:var(--apple-blue);box-shadow:0 0 0 2px #0071e359}.gallery-thumb-img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.gallery-selected-badge{background:var(--apple-blue);color:#fff;z-index:2;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:3px;right:3px;box-shadow:0 1px 4px #0000004d}.student-svg-picker-grid{border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;background:#f5f5f7;border:1px solid #0000000a;grid-template-columns:repeat(6,1fr);gap:8px;max-height:220px;padding:8px;display:grid;overflow-y:auto}@media (width<=480px){.student-svg-picker-grid{grid-template-columns:repeat(4,1fr);gap:6px;max-height:190px}}.student-svg-btn{aspect-ratio:1;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast);background:#fff;border:2px solid #0000;justify-content:center;align-items:center;padding:6px;display:flex}.student-svg-btn:hover{box-shadow:var(--shadow-md)}.student-svg-btn.selected{border-color:var(--apple-blue);background:#fff;box-shadow:0 0 0 2px #0071e359}.emoji-picker-grid{border-radius:var(--radius-md);background:#f5f5f7;border:1px solid #0000000a;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;padding:8px;display:grid}.emoji-btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#fff;border:1px solid #0000;justify-content:center;align-items:center;padding:6px;font-size:1.3rem;display:flex}.emoji-btn:hover{box-shadow:var(--shadow-sm)}.emoji-btn.selected{color:#fff;background:#1d1d1f}.color-picker-grid{border-radius:var(--radius-md);background:#f5f5f7;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:10px;padding:8px;display:grid}.color-btn{aspect-ratio:1;cursor:pointer;transition:all var(--transition-fast);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0000001a}.color-btn:hover{box-shadow:0 0 0 2px #0071e359}.color-btn.selected{box-shadow:0 0 0 2.5px var(--apple-blue)}.quick-tags-picker{border-radius:var(--radius-md);background:#f5f5f7;flex-wrap:wrap;gap:8px;padding:10px;display:flex}.quick-tag-bubble{color:var(--text-primary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #00000014;padding:6px 14px;font-size:.82rem;font-weight:600}.quick-tag-bubble:hover{color:#fff;background:#1d1d1f;border-color:#1d1d1f}.quick-tag-bubble:active{background:#333336}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.avatar-circle{border-radius:var(--radius-md);width:44px;height:44px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:1.3rem;font-weight:700;display:flex}.badge{border-radius:var(--radius-full);letter-spacing:-.01em;color:var(--text-primary);background:#f5f5f7;border:1px solid #0000000f;align-items:center;padding:4px 10px;font-size:.76rem;font-weight:600;display:inline-flex}.logo-badge{color:#fff;border-radius:var(--radius-full);letter-spacing:.02em;transition:background-color var(--transition-fast), color var(--transition-fast);background:#1d1d1f;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.login-wrapper{background-color:var(--bg-primary);z-index:10000;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px 16px;display:flex;position:relative;overflow-y:auto}.login-card{border-radius:var(--radius-xl);width:90%;max-width:420px;box-shadow:var(--shadow-lg);background:#fff;border:1px solid #00000014;padding:44px 36px}.login-title{letter-spacing:-.03em;text-align:center;color:var(--text-primary);margin-bottom:6px;font-size:2.1rem;font-weight:700}.login-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:32px;font-size:.9rem;font-weight:400}.password-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.password-input{padding-right:48px}.password-toggle-btn{cursor:pointer;color:var(--text-secondary);transition:transform var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:1.15rem;display:flex;position:absolute;right:12px}.login-error-text{color:var(--apple-red);border-radius:var(--radius-sm);background:#fee2e2;border:1px solid #fecaca;margin-top:10px;padding:8px 12px;font-size:.82rem;font-weight:600}.login-btn{width:100%;margin-top:18px;padding:12px 18px;font-size:.95rem}.sync-indicator{top:max(16px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sm);color:var(--text-primary);border-radius:var(--radius-full);z-index:9998;background:#ffffffe6;border:1px solid #00000014;align-items:center;gap:8px;padding:6px 14px;font-size:.76rem;font-weight:600;animation:.2s forwards pageFadeIn;display:flex;position:fixed;right:20px}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.sync-dot{background:var(--apple-green);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s ease-in-out infinite pulseDot}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-fade-in{animation:.2s forwards pageFadeIn}*{-webkit-tap-highlight-color:transparent}button,a,[role=button]{touch-action:manipulation}button:focus,a:focus,input:focus,select:focus,textarea:focus,[role=button]:focus{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--apple-blue);outline-offset:2px}.scale-active{transition:opacity .12s}.scale-active:active{opacity:.85}.full-screen-loader{-webkit-backdrop-filter:blur(20px);z-index:9999;background:#f5f5f7d9;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;top:0;left:0}.loader-spinner{border:3px solid #00000014;border-top-color:#1d1d1f;border-radius:50%;width:44px;height:44px;margin-bottom:16px;animation:.8s linear infinite spin}.loader-text{font-family:var(--font-family);color:var(--text-secondary);letter-spacing:-.01em;font-size:.95rem;font-weight:600;animation:1.5s ease-in-out infinite pulse}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}[data-theme=dark] body{background-color:var(--bg-primary);color:var(--text-primary)}[data-theme=dark] .glass{border-color:var(--border-color);background:#292a2dd9}[data-theme=dark] .glass-card{background:var(--bg-card);border-color:var(--border-color);box-shadow:var(--shadow-sm)}@media (hover:hover) and (pointer:fine){[data-theme=dark] .glass-card:hover{box-shadow:var(--shadow-md)}}[data-theme=dark] .btn-primary{color:#202124;background:#e8eaed;box-shadow:0 1px 3px #0006}[data-theme=dark] .btn-primary:hover{background:#fff;box-shadow:0 4px 12px #00000080}[data-theme=dark] .btn-secondary{color:#e8eaed;box-shadow:var(--shadow-sm);background:#303134;border-color:#494c50}[data-theme=dark] .btn-secondary:hover{background:#3c4043;border-color:#5f6368}[data-theme=dark] .btn-danger{color:#f28b82;background:#f28b8226;border-color:#f28b824d}[data-theme=dark] .btn-danger:hover{color:#f6aea9;background:#f28b8240}.theme-toggle-btn{border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}[data-theme=dark] .theme-toggle-btn{color:#fdd663;background:#303134;border-color:#494c50}[data-theme=dark] .theme-toggle-btn:hover{color:#ffe082;background:#3c4043}[data-theme=dark] .form-input,[data-theme=dark] input[type=text],[data-theme=dark] input[type=number],[data-theme=dark] input[type=password],[data-theme=dark] input[type=date],[data-theme=dark] select,[data-theme=dark] textarea{color:#e8eaed;background:#303134;border-color:#494c50}[data-theme=dark] .form-input:focus,[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:var(--apple-blue);box-shadow:0 0 0 3px #8ab4f840}[data-theme=dark] .form-label{color:var(--text-primary)}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal-content{color:var(--text-primary);background:#292a2d;border-color:#3c4043;box-shadow:0 24px 60px #000000bf}[data-theme=dark] .modal-close-btn{color:#9aa0a6;background:#35363a}[data-theme=dark] .modal-close-btn:hover{color:#e8eaed;background:#3c4043}[data-theme=dark] .modal-title{color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] .modal-actions{border-color:var(--border-color)}[data-theme=dark] .avatar-tabs-header,[data-theme=dark] .avatar-gallery-picker-grid,[data-theme=dark] .student-svg-picker-grid,[data-theme=dark] .emoji-picker-grid,[data-theme=dark] .color-picker-grid,[data-theme=dark] .quick-tags-picker{background:#202124;border-color:#3c4043}[data-theme=dark] .avatar-tab-btn{color:var(--text-secondary)}[data-theme=dark] .avatar-tab-btn:hover{color:var(--text-primary)}[data-theme=dark] .avatar-tab-btn.active{color:#e8eaed;background:#303134;box-shadow:0 1px 4px #0006}[data-theme=dark] .avatar-gallery-item-btn,[data-theme=dark] .student-svg-btn,[data-theme=dark] .emoji-btn{background:#292a2d;border-color:#0000}[data-theme=dark] .avatar-gallery-item-btn:hover,[data-theme=dark] .student-svg-btn:hover,[data-theme=dark] .emoji-btn:hover{background:#35363a}[data-theme=dark] .avatar-gallery-item-btn.selected,[data-theme=dark] .student-svg-btn.selected{border-color:var(--apple-blue);background:#303134;box-shadow:0 0 0 2px #8ab4f866}[data-theme=dark] .emoji-btn.selected{color:#202124;background:#8ab4f8}[data-theme=dark] .quick-tag-bubble{color:#e8eaed;background:#292a2d;border-color:#3c4043}[data-theme=dark] .quick-tag-bubble:hover{color:#202124;background:#8ab4f8;border-color:#8ab4f8}[data-theme=dark] .color-btn{border-color:#202124;box-shadow:0 0 0 1px #ffffff26}[data-theme=dark] .badge{color:#e8eaed;background:#303134;border-color:#3c4043}[data-theme=dark] .toast{color:#e8eaed;box-shadow:var(--shadow-lg);background:#292a2df2;border-color:#3c4043}[data-theme=dark] .sync-indicator{color:#e8eaed;background:#292a2deb;border-color:#3c4043}[data-theme=dark] .full-screen-loader{background:#202124e6}[data-theme=dark] .loader-spinner{border-color:#8ab4f8 #ffffff1f #ffffff1f}[data-theme=dark] .loader-text{color:var(--text-secondary)}.app-navbar{z-index:1000;-webkit-backdrop-filter:blur(12px)saturate(160%);width:100%;padding-top:env(safe-area-inset-top,0px);box-sizing:border-box;background:#ffffffd9;border-bottom:1px solid #00000014;position:fixed;top:0;left:0;right:0;transform:translate(0,0)}.navbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto;padding:12px 24px;display:flex}.navbar-brand-section{cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;display:flex}.navbar-logo-text{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:1.15rem;font-weight:700;display:flex}.logo-badge{color:#fff;border-radius:var(--radius-full);letter-spacing:.02em;transition:background-color var(--transition-fast), color var(--transition-fast);background:#1d1d1f;padding:2px 8px;font-size:.72rem;font-weight:700}.admin-nav-role-badge{color:#fff;border-radius:var(--radius-full);letter-spacing:.02em;background:#8b5cf6;padding:2px 8px;font-size:.72rem;font-weight:700}.student-header-actions,.teacher-header-actions{align-items:center;gap:8px;display:flex}.student-logout-btn{font-family:var(--font-family);color:#dc2626;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#fee2e2;border:1px solid #fecaca;align-items:center;gap:6px;padding:7px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.student-logout-btn:hover{background:#fca5a5}.navbar-nav-desktop{border-radius:var(--radius-md);background:#f5f5f7;border:1px solid #0000000a;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;padding:4px;display:flex}.nav-item-btn{border-radius:var(--radius-sm);font-family:var(--font-family);color:var(--text-secondary);letter-spacing:-.01em;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:7px;padding:7px 14px;font-size:.84rem;font-weight:600;display:inline-flex}.nav-item-btn:hover{color:var(--text-primary);background:#0000000a}.nav-item-btn.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 4px #00000014}.nav-item-btn.nav-item-icon-only{padding:7px 10px}.nav-icon{justify-content:center;align-items:center;display:flex}.landing-nav-login-btn{font-family:var(--font-family);border-radius:var(--radius-md);justify-content:center;align-items:center;padding:7px 16px;font-size:.84rem;font-weight:600;display:inline-flex}@media (width<=900px){.navbar-nav-desktop{display:none}.navbar-inner{padding:10px 16px}}[data-theme=dark] .app-navbar{-webkit-backdrop-filter:blur(16px)saturate(180%);background:#202124e0;border-bottom:1px solid #3c4043}[data-theme=dark] .app-navbar .navbar-logo-text{color:#e8eaed}[data-theme=dark] .app-navbar .logo-badge{color:#e8eaed;background:#3c4043}[data-theme=dark] .app-navbar .navbar-nav-desktop{background:#202124;border-color:#3c4043}[data-theme=dark] .app-navbar .nav-item-btn{color:#9aa0a6}.navbar-logo-text{color:var(--text-primary);font-family:var(--font-family);-webkit-user-select:none;user-select:none}[data-theme=dark] .logo-badge{color:#e8eaed;background:#3c4043}.mobile-menu-overlay{z-index:9999999!important;pointer-events:auto!important;flex-direction:column!important;width:100vw!important;height:100dvh!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}@media (width>=768px){.mobile-menu-overlay{display:none!important}}[data-theme=dark] .nav-item-btn:hover{color:#e8eaed;background:#ffffff0f}[data-theme=dark] .nav-item-btn.active{color:#fff;background:#3c4043;box-shadow:0 1px 4px #00000040}[data-theme=dark] .student-logout-btn{color:#f87171;background:#ef444426;border-color:#ef44444d}[data-theme=dark] .student-logout-btn:hover{color:#fca5a5;background:#ef444440}[data-theme=dark] .app-navbar .theme-toggle-btn{color:#fdd663;background:#202124;border-color:#3c4043}[data-theme=dark] .app-navbar .theme-toggle-btn:hover{color:#ffe082;background:#303134;border-color:#fff3}[data-theme=dark] .mobile-bottom-navbar{background:#292a2df2;border-color:#3c4043}[data-theme=dark] .mobile-tab-btn{color:var(--text-secondary)}[data-theme=dark] .mobile-tab-btn.active{color:#8ab4f8}[data-theme=dark] .tab-control-brutalist{background:#202124;border-color:#3c4043}[data-theme=dark] .tab-btn-brutalist{color:var(--text-secondary)}[data-theme=dark] .tab-btn-brutalist:hover{color:var(--text-primary)}[data-theme=dark] .tab-btn-brutalist.active{color:#e8eaed;background:#303134;font-weight:600;box-shadow:0 1px 4px #0006}[data-theme=dark] .filters-toolbar{background:#292a2d;border-color:#3c4043}[data-theme=dark] .student-scope-toggle,[data-theme=dark] .timeframe-toggle,[data-theme=dark] .segmented-control{background:#202124;border-color:#3c4043}[data-theme=dark] .student-scope-btn,[data-theme=dark] .toggle-btn,[data-theme=dark] .seg-btn{color:var(--text-secondary)}[data-theme=dark] .student-scope-btn:hover,[data-theme=dark] .toggle-btn:hover,[data-theme=dark] .seg-btn:hover{color:var(--text-primary)}[data-theme=dark] .student-scope-btn.active,[data-theme=dark] .toggle-btn.active,[data-theme=dark] .seg-btn.active{color:#e8eaed;background:#303134;font-weight:600;box-shadow:0 1px 4px #0006}[data-theme=dark] .filter-select-btn{color:#e8eaed;background:#303134;border-color:#494c50}[data-theme=dark] .custom-dropdown-list{box-shadow:var(--shadow-lg);background:#292a2d;border-color:#3c4043}[data-theme=dark] .custom-dropdown-item{color:var(--text-primary);border-bottom-color:#ffffff0d}[data-theme=dark] .custom-dropdown-item:hover,[data-theme=dark] .custom-dropdown-item.active{color:#8ab4f8;background:#35363a}[data-theme=dark] .standings-card{background:#292a2d;border-color:#3c4043}[data-theme=dark] .standings-header{color:var(--text-secondary);background:#202124;border-bottom-color:#3c4043}[data-theme=dark] .standings-row{border-bottom-color:#ffffff0d}[data-theme=dark] .standings-row:hover{background:#303134}[data-theme=dark] .row-rank-1{background:#fdd66314!important}[data-theme=dark] .row-rank-1:hover{background:#fdd66324!important}[data-theme=dark] .rank-badge{color:var(--text-primary);background:#303134}[data-theme=dark] .rank-gold{color:#202124;background:#fdd663}[data-theme=dark] .rank-silver{color:#202124;background:#bdc1c6}[data-theme=dark] .rank-bronze{color:#fff;background:#cd7f32}[data-theme=dark] .profile-modal{color:#e8eaed;background:#292a2d}[data-theme=dark] .profile-stat-box{background:#202124;border-color:#3c4043}[data-theme=dark] .dashboard-hero,[data-theme=dark] .stat-card,[data-theme=dark] .card-spotlight,[data-theme=dark] .dashboard-card{background:#292a2d;border-color:#3c4043}[data-theme=dark] .stat-icon-wrapper{background:#202124}[data-theme=dark] .spotlight-card-item{background:#202124;border-color:#3c4043}[data-theme=dark] .group-card-modern{box-shadow:var(--shadow-sm);border-color:#3c4043}[data-theme=dark] .group-card-badge{background:#ffffff0f;border-color:#ffffff14}[data-theme=dark] .group-stat-pill{color:var(--text-secondary);background:#202124;border-color:#3c4043}[data-theme=dark] .group-action-btn{color:var(--text-secondary);background:#303134;border-color:#494c50}[data-theme=dark] .group-action-btn:hover{color:var(--text-primary);background:#3c4043}[data-theme=dark] .student-card-modern{background:#292a2d;border-color:#3c4043}[data-theme=dark] .student-card-modern:hover{border-color:#5f6368}[data-theme=dark] .btn-points-action{color:var(--text-primary);background:#303134;border-color:#494c50}[data-theme=dark] .btn-points-action:hover{background:#3c4043}[data-theme=dark] .attendance-card,[data-theme=dark] .attendance-table-container{background:#292a2d;border-color:#3c4043}[data-theme=dark] .attendance-table-header{color:var(--text-secondary);background:#202124;border-bottom-color:#3c4043}[data-theme=dark] .attendance-table-row{border-bottom-color:#ffffff0d}[data-theme=dark] .attendance-table-row:hover{background:#303134}[data-theme=dark] .status-btn{color:var(--text-secondary);background:#303134;border-color:#494c50}[data-theme=dark] .status-btn.present{color:#81c995;background:#81c99526;border-color:#81c9954d}[data-theme=dark] .status-btn.absent{color:#f28b82;background:#f28b8226;border-color:#f28b824d}[data-theme=dark] .status-btn.late{color:#fdd663;background:#fdd66326;border-color:#fdd6634d}[data-theme=dark] .date-nav-btn{color:#e8eaed;background:#303134;border-color:#494c50}[data-theme=dark] .date-nav-btn:hover{background:#3c4043}[data-theme=dark] .attendance-summary-card{background:#202124;border-color:#3c4043}[data-theme=dark] .history-card{background:#292a2d;border-color:#3c4043}[data-theme=dark] .history-table-header{color:var(--text-secondary);background:#202124;border-bottom-color:#3c4043}[data-theme=dark] .history-row-item{border-bottom-color:#ffffff0d}[data-theme=dark] .history-row-item:hover{background:#303134}[data-theme=dark] .settings-card,[data-theme=dark] .settings-hero{background:#292a2d;border-color:#3c4043}[data-theme=dark] .tag-card-modern,[data-theme=dark] .trash-item-card,[data-theme=dark] .snapshot-item-card{background:#202124;border-color:#3c4043}[data-theme=dark] .tag-card-modern:hover,[data-theme=dark] .trash-item-card:hover{background:#292a2d}.theme-selector-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:14px;display:grid}@media (width<=600px){.theme-selector-grid{grid-template-columns:1fr}}.theme-option-card{border:2px solid var(--border-color-card);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#fff;flex-direction:column;gap:10px;padding:14px;display:flex}.theme-option-card:hover{border-color:var(--apple-blue)}.theme-option-card.active{border-color:var(--apple-blue);box-shadow:0 0 0 2px rgba(var(--apple-blue-rgb), .25);background:#fafafc}[data-theme=dark] .theme-option-card{background:#202124;border-color:#3c4043}[data-theme=dark] .theme-option-card.active{background:#303134;border-color:#8ab4f8;box-shadow:0 0 0 2px #8ab4f84d}.theme-preview-box{border:1px solid #00000014;border-radius:8px;flex-direction:column;gap:4px;height:68px;padding:6px;display:flex}.theme-preview-box.light-preview{background:#f5f5f7}.theme-preview-box.light-preview .preview-header{background:#fff;border:1px solid #e5e5ea;border-radius:4px;height:14px}.theme-preview-box.light-preview .preview-body{background:#fff;border:1px solid #e5e5ea;border-radius:4px;flex:1}.theme-preview-box.dark-preview{background:#202124;border-color:#3c4043}.theme-preview-box.dark-preview .preview-header{background:#292a2d;border:1px solid #3c4043;border-radius:4px;height:14px}.theme-preview-box.dark-preview .preview-body{background:#292a2d;border:1px solid #3c4043;border-radius:4px;flex:1}.theme-option-info{justify-content:space-between;align-items:center;display:flex}.theme-option-name{color:var(--text-primary);font-size:.9rem;font-weight:700}.landing-header{z-index:1000;width:100%;padding-top:env(safe-area-inset-top,0px);box-sizing:border-box;position:fixed;top:0;left:0;right:0;transform:translate(0,0)}.landing-header-inner{box-sizing:border-box;justify-content:space-between;align-items:center;min-height:60px;display:flex}.login-page-apple{padding-top:calc(60px + env(safe-area-inset-top,0px));box-sizing:border-box}.landing-main-split{min-height:calc(100vh - 60px - 45px - env(safe-area-inset-top,0px));flex:1;display:flex}.landing-left-panel{background-color:var(--bg-primary)}.landing-right-panel{border-left:1px solid var(--border-color);background-color:#fff}@media (width<=1023px){.landing-right-panel{border-left:none;border-top:1px solid var(--border-color)}}.landing-feature-card{box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border:1px solid #0000000f}.landing-feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.landing-support-divider{border-top:1px solid #00000014}.landing-footer{border-top:1px solid var(--border-color);color:var(--text-secondary)}.landing-footer-link{color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.landing-footer-link:hover{color:var(--text-primary)}[data-theme=dark] .login-page-apple{color:#e8eaed!important;background-color:#202124!important}[data-theme=dark] .login-card{background:#292a2d;border-color:#3c4043}[data-theme=dark] .login-title{color:#e8eaed}[data-theme=dark] .login-subtitle{color:#9aa0a6}[data-theme=dark] .login-page-apple .bg-white{background-color:#292a2d!important;border-color:#3c4043!important}[data-theme=dark] .login-page-apple .text-gray-900{color:#e8eaed!important}[data-theme=dark] .login-page-apple .text-gray-500{color:#9aa0a6!important}[data-theme=dark] .landing-left-panel{background-color:#202124!important}[data-theme=dark] .landing-right-panel{background-color:#292a2d!important;border-color:#3c4043!important}@media (width<=1023px){[data-theme=dark] .landing-right-panel{border-color:#3c4043!important}}[data-theme=dark] .landing-feature-card{box-shadow:var(--shadow-sm);background:#292a2d;border-color:#3c4043}[data-theme=dark] .landing-support-divider{border-top-color:#3c4043}[data-theme=dark] .login-error-text{color:#f28b82;background:#f28b8226;border-color:#f28b824d}[data-theme=dark] .login-page-apple footer,[data-theme=dark] .landing-footer{border-color:#3c4043}@keyframes loginShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.animate-shake{animation:.35s ease-in-out loginShake}.login-bg-grid{background-image:repeating-linear-gradient(-45deg,#0000,#0000 100px,#0000000d 100px 101.5px)}[data-theme=dark] .login-bg-grid{background-image:repeating-linear-gradient(-45deg,#0000,#0000 100px,#ffffff0a 100px 101.5px)}@keyframes slideDownNotice{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:.28s cubic-bezier(.16,1,.3,1) forwards slideDownNotice}:root{--stack-base-top:calc(76px + env(safe-area-inset-top,0px));--stack-step-y:8px;--stack-gap:32vh}.landing-root{width:100%;max-width:100%;position:relative;overflow-x:clip}.landing-root ::selection{color:#fff!important;background-color:#0071e3!important}.landing-root ::selection{color:#fff!important;background-color:#0071e3!important}:root{--stack-base-top:calc(80px + env(safe-area-inset-top,0px));--stack-step-y:8px;--stack-gap:25vh;--stack-end-spacer:40vh}.stacking-cards-container{width:100%;display:flow-root;position:relative}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}@keyframes slideDownDrawer{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.2s ease-out forwards fadeInBackdrop}.animate-drawer-down{animation:.25s cubic-bezier(.16,1,.3,1) forwards slideDownDrawer}@media (width<=767px){.stacking-card-item{will-change:transform;margin-bottom:var(--stack-gap,25vh)!important;position:sticky!important}.stacking-card-frame{transform-origin:top;will-change:transform;transition:transform .2s,border-color .2s;height:calc(100dvh - 150px)!important;min-height:320px!important;max-height:540px!important}}@media (width>=768px){:root{--stack-base-top:calc(80px + env(safe-area-inset-top,0px));--stack-step-y:10px;--stack-gap:35vh;--stack-end-spacer:50vh}.stacking-card-item{will-change:transform;margin-bottom:var(--stack-gap,35vh)!important;position:sticky!important}.stacking-card-frame{transform-origin:top;will-change:transform;transition:transform .2s,border-color .2s}.stacking-card-frame:hover{border-color:#ffffff59}}@media (width>=1024px){:root{--stack-base-top:calc(88px + env(safe-area-inset-top,0px));--stack-step-y:10px;--stack-gap:34vh;--stack-end-spacer:50vh}}@media (width>=1200px){:root{--stack-base-top:calc(92px + env(safe-area-inset-top,0px));--stack-step-y:12px;--stack-gap:32vh;--stack-end-spacer:50vh}}@media (width>=1536px){:root{--stack-base-top:calc(100px + env(safe-area-inset-top,0px));--stack-step-y:14px;--stack-gap:30vh;--stack-end-spacer:50vh}}@keyframes slideInRightDrawer{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeBackdropIn{0%{opacity:0}to{opacity:1}}.animate-drawer-right{animation:.28s cubic-bezier(.16,1,.3,1) forwards slideInRightDrawer}.animate-backdrop-in{animation:.22s ease-out forwards fadeBackdropIn}
