.sidebar-overlay{background-color:rgba(var(--accent-black), .5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;display:none;position:fixed;inset:0}.sidebar{inset-block:0;z-index:30;width:18rem;transition:transform var(--transition-normal);background-color:var(--blue);color:var(--surface);box-shadow:var(--shadow-xl);flex-direction:column;flex-shrink:0;display:flex;position:fixed;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}@media (min-width:1024px){.sidebar-overlay{display:none!important}.sidebar{height:100vh;box-shadow:none;height:100vh;position:sticky;top:0;transform:translate(0)}}.sidebar-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;height:5rem;padding:0 2rem;display:flex}.sidebar-brand{align-items:center;gap:.75rem;display:flex}.sidebar-logo{background-color:var(--surface);color:var(--blue);box-shadow:var(--shadow-sm);border-radius:.75rem;padding:.5rem;display:flex}.sidebar-brand-logo{width:110px;height:auto;display:block}.sidebar-title{letter-spacing:-.025em;color:var(--surface);font-size:1.25rem;font-weight:700}.sidebar-wordmark{flex-direction:column;gap:2px;line-height:1;display:flex}.sidebar-wordmark-title{font-family:var(--font-brand-blaze), "Nunito", system-ui, sans-serif;letter-spacing:-.04em;color:var(--surface);font-size:1.125rem;font-weight:900;line-height:1}.sidebar-wordmark-subtitle{font-family:var(--font-brand-education), "Montserrat", system-ui, sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#ffffffeb;margin-left:.12em;font-size:.72rem;font-weight:500}.sidebar-close{color:#bfdbfe;cursor:pointer;background:0 0;border:none;display:flex}.sidebar-close:hover{color:var(--surface)}@media (min-width:1024px){.sidebar-close{display:none}}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#fff3 transparent;flex-direction:column;flex:1;gap:.375rem;padding:1.5rem 1rem;display:flex;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:10px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.nav-link{transition:all var(--transition-fast);color:#dbeafe;border-radius:.75rem;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--surface);background-color:#1e40af80}.nav-link.active{background-color:var(--surface);color:var(--blue);box-shadow:var(--shadow-sm);font-weight:700}.nav-icon{color:#93c5fd;transition:color var(--transition-fast)}.nav-link:hover .nav-icon{color:var(--surface)}.nav-link.active .nav-icon{color:var(--blue)}.sidebar-footer{margin-bottom:1rem;padding:1rem}.btn-logout{color:#bfdbfe;cursor:pointer;width:100%;transition:all var(--transition-fast);background:0 0;border:none;border-radius:.75rem;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;display:flex}.btn-logout:hover{color:var(--surface);background-color:#1e40af}
.faq-floating-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.faq-floating-btn:hover{background:var(--bg-hover);color:var(--text-primary)}
.gs-container{z-index:900;display:none;position:relative}@media (min-width:768px){.gs-container{display:block}}.gs-input-wrapper{background:var(--background,#f1f5f9);border:1px solid #0000;border-radius:12px;align-items:center;gap:.25rem;width:clamp(18rem,28vw,26rem);height:2.5rem;padding:0 .75rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.gs-input-wrapper.focused{border-color:var(--primary,#3b82f6);background:#fff;box-shadow:0 0 0 3px #3b82f61f,0 4px 16px -4px #00000014}.gs-search-icon{color:#94a3b8;flex-shrink:0}.gs-input{color:#1e293b;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0;font-size:.875rem}.gs-input:focus-visible{outline:none}.gs-input::placeholder{color:#94a3b8}.gs-clear-btn{color:#64748b;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex}.gs-clear-btn:hover{color:#1e293b;background:#cbd5e1}.gs-spinner{color:var(--primary,#3b82f6);flex-shrink:0;animation:1s linear infinite gs-spin}.gs-spinner-large{color:var(--primary,#3b82f6);animation:1s linear infinite gs-spin}@keyframes gs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gs-dropdown{z-index:1110;background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;width:100%;min-width:0;max-width:100%;max-height:480px;animation:.2s cubic-bezier(.4,0,.2,1) gs-dropdown-enter;display:flex;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 20px 60px -12px #00000026,0 8px 24px -6px #0000000f}@keyframes gs-dropdown-enter{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gs-tabs{flex-wrap:wrap;flex-shrink:0;gap:.25rem;padding:.75rem .75rem 0;display:flex;overflow-x:visible}.gs-tab{color:#64748b;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;align-items:center;gap:.25rem;padding:.375rem .625rem;font-size:.6875rem;font-weight:600;transition:all .15s;display:flex}.gs-tab:hover{color:#334155;background:#f8fafc;border-color:#cbd5e1}.gs-tab:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #3b82f6a6}.gs-tab.active{background:var(--primary,#3b82f6);border-color:var(--primary,#3b82f6);color:#fff}.gs-tab.active:focus-visible{box-shadow:inset 0 0 0 2px #ffffffbf}.gs-results-body{flex:1;max-height:360px;padding:.5rem;overflow-y:auto}.gs-group{margin-bottom:.25rem}.gs-group-header{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;align-items:center;gap:.375rem;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700;display:flex}.gs-group-count{color:#64748b;background:#f1f5f9;border-radius:8px;justify-content:center;align-items:center;min-width:18px;height:16px;padding:0 4px;font-size:.5625rem;font-weight:700;display:inline-flex}.gs-result-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;transition:all .12s;display:flex}.gs-result-item:hover,.gs-result-item.highlighted{background:#f8fafc;border-color:#e2e8f0}.gs-result-item.highlighted{background:#eff6ff;border-color:#bfdbfe}.gs-result-icon{width:32px;height:32px;color:var(--primary,#3b82f6);background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gs-result-icon.recent{color:#94a3b8;background:#f1f5f9}.gs-result-info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.gs-result-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.gs-result-subtitle{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}.gs-result-arrow{color:#cbd5e1;opacity:0;flex-shrink:0;transition:all .15s;transform:translate(-4px)}.gs-result-item:hover .gs-result-arrow,.gs-result-item.highlighted .gs-result-arrow{opacity:1;transform:translate(0)}.gs-empty{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.375rem;padding:2.5rem 1.5rem;display:flex}.gs-empty p{color:#64748b;margin:0;font-size:.8125rem}.gs-empty span{font-size:.75rem}.gs-footer{color:#94a3b8;border-top:1px solid #f1f5f9;flex-shrink:0;justify-content:center;align-items:center;gap:1.25rem;padding:.5rem .75rem;font-size:.6875rem;display:flex}.gs-footer span{align-items:center;gap:.25rem;display:flex}.gs-footer kbd{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 4px;font-family:inherit;font-size:.625rem;font-weight:700;display:inline-flex}
.dashboard-header{border-bottom:1px solid var(--border-color);background-color:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;height:5rem;padding:0 2rem;display:flex}@media (max-width:640px){.dashboard-header{height:4.5rem;padding:0 1rem}}@media (min-width:1024px){.dashboard-header{padding:0 2.5rem}}.header-left{align-items:center;gap:1rem;display:flex}.menu-btn{color:var(--text-secondary);border-radius:var(--radius-lg);transition:background-color var(--transition-fast);cursor:pointer;background:0 0;border:none;padding:.5rem;display:flex}.menu-btn:hover{background-color:var(--background)}@media (min-width:1024px){.menu-btn{display:none}}.header-title{color:#1e293b;margin:0;font-size:1.25rem;font-weight:700;display:none}@media (min-width:640px){.header-title{display:block}}.header-right{align-items:center;gap:1.25rem;display:flex}@media (max-width:640px){.header-right{gap:.75rem}}@media (max-width:480px){.header-right .header-icon-wrapper:nth-child(2),.header-right .header-icon-wrapper:nth-child(4){display:none}}.search-container{align-items:center;display:none;position:relative}@media (min-width:768px){.search-container{display:flex}}.search-icon{color:#94a3b8;pointer-events:none;position:absolute;left:.875rem}.search-input{background-color:var(--background);border-radius:var(--radius-lg);width:18rem;transition:all var(--transition-fast);color:#334155;border:1px solid #0000;outline:none;padding:.5rem 1rem .5rem 2.5rem;font-size:.875rem}.search-input:focus{background-color:var(--surface)}.search-input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px #dbeafe}.header-icon-wrapper{position:relative}.header-icon-btn{color:var(--text-secondary);border-radius:var(--radius-lg);cursor:pointer;background:0 0;border:none;padding:.5rem;transition:all .2s;display:flex;position:relative}.header-icon-btn:hover{background-color:var(--background);color:var(--primary)}.notification-dot{background-color:var(--error);border:2px solid var(--surface);border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:.375rem;right:.375rem}.header-badge{border:2px solid var(--surface);color:#fff;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-2px;right:-4px}.reminder-badge{background:linear-gradient(135deg,#f59e0b,#ef4444);box-shadow:0 2px 6px #ef444459}.header-icon-btn.has-alerts{color:#ef4444}.header-icon-btn.reminder-pulse{animation:2s ease-in-out infinite reminder-pulse-anim}@keyframes reminder-pulse-anim{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.header-dropdown{z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:1rem;flex-direction:column;width:360px;max-height:440px;animation:.2s ease-out dropdown-slide;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 20px 40px -8px #0000001f,0 8px 16px -4px #0000000f}@media (max-width:640px){.header-dropdown{max-height:calc(100vh - 6rem);position:fixed;top:5rem;width:calc(100vw - 2rem)!important;left:1rem!important;right:1rem!important}}@keyframes dropdown-slide{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.header-dropdown-top{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.header-dropdown-top h4{color:#0f172a;margin:0;font-size:.9375rem;font-weight:700}.dropdown-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:all .15s;display:flex}.dropdown-close-btn:hover{color:#0f172a;background:#f1f5f9}.header-dropdown-body{flex:1;padding:.5rem;overflow-y:auto}.dropdown-empty{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2.5rem 1rem;display:flex}.dropdown-empty p{margin:0;font-size:.875rem}.dropdown-item{cursor:default;border:1px solid #0000;border-radius:.625rem;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem .875rem;transition:all .15s;display:flex}.dropdown-item:hover{background:#f8fafc}.dropdown-item.item-due{background:#fef2f2;border-color:#fecaca}.dropdown-item.item-due:hover{background:#fee2e2}.dropdown-item.item-approaching{background:#fffbeb;border-color:#fde68a}.dropdown-item.item-approaching:hover{background:#fef3c7}.dropdown-item-info{flex:1;min-width:0}.dropdown-item-title{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;margin:0 0 .125rem;font-size:.875rem;font-weight:600;line-height:1.4;overflow:hidden}.dropdown-item-desc{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin:0 0 .375rem;font-size:.75rem;line-height:1.4;overflow:hidden}.dropdown-item-meta{color:#94a3b8;align-items:center;gap:.375rem;font-size:.6875rem;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;padding:1px 6px;font-size:.5625rem;font-weight:700}.badge-due{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);animation:1s ease-in-out infinite badge-flash}@keyframes badge-flash{0%,to{opacity:1}50%{opacity:.7}}.badge-approaching{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706)}.dropdown-item-actions{flex-shrink:0;gap:.25rem;padding-top:2px;display:flex}.action-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.action-btn:hover{transform:scale(1.1)}.action-snooze:hover{color:#3b82f6;background:#eff6ff}.action-dismiss:hover{color:#ef4444;background:#fef2f2}.reminder-toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.75rem;width:100%;max-width:380px;display:flex;position:fixed;top:1.5rem;right:1.5rem}.reminder-toast{pointer-events:all;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;animation:.4s cubic-bezier(.22,1,.36,1) toast-slide-in;display:flex;box-shadow:0 16px 48px -12px #0000002e,0 4px 12px -2px #0000000f}.reminder-toast.toast-due{border-left:4px solid #ef4444}.reminder-toast.toast-approaching{border-left:4px solid #f59e0b}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.reminder-toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.reminder-toast-icon.icon-due{color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.reminder-toast-icon.icon-approaching{color:#d97706;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.reminder-toast-body{flex:1;min-width:0}.reminder-toast-label{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin:0 0 .125rem;font-size:.6875rem;font-weight:700}.toast-due .reminder-toast-label{color:#ef4444}.toast-approaching .reminder-toast-label{color:#d97706}.reminder-toast-title{color:#0f172a;margin:0 0 .125rem;font-size:.875rem;font-weight:700;line-height:1.3}.reminder-toast-message{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-size:.75rem;line-height:1.4;overflow:hidden}.reminder-toast-time{color:#94a3b8;font-size:.6875rem}.reminder-toast-actions{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.reminder-toast-actions button{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex}.reminder-toast-actions button:first-child:hover{color:#3b82f6;background:#eff6ff}.reminder-toast-actions button:last-child:hover{color:#ef4444;background:#fef2f2}.user-profile{border-left:1px solid var(--border-color);cursor:pointer;border-radius:var(--radius-lg);-webkit-user-select:none;user-select:none;align-items:center;gap:.75rem;padding:.5rem .5rem .5rem 1.25rem;transition:background-color .2s;display:flex}.user-profile:hover,.user-profile.active{background-color:var(--background)}.user-avatar{color:#1e3a8a;width:2.5rem;height:2.5rem;transition:background-color var(--transition-fast);background-color:#dbeafe;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.user-profile:hover .user-avatar{background-color:#bfdbfe}.user-details{flex-direction:column;display:none}@media (min-width:640px){.user-details{display:flex}}.user-name{color:#334155;margin:0;font-size:.875rem;font-weight:700;line-height:1.25}.user-role{color:var(--text-secondary);margin:.125rem 0 0;font-size:.75rem;font-weight:500}.user-dropdown{width:280px}@media (max-width:640px){.user-dropdown{width:auto}}.user-dropdown-header{background:linear-gradient(#f8fafc,#fff);border-bottom:1px solid #f1f5f9;align-items:center;gap:1rem;padding:1.5rem 1.25rem;display:flex}.user-avatar-large{background-color:var(--primary-light);width:3.5rem;height:3.5rem;color:var(--primary);border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;display:flex;box-shadow:0 4px 12px #0000000d}.user-meta{flex:1;min-width:0}.user-full-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.user-email{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin:.25rem 0 0;font-size:.75rem;overflow:hidden}.user-dropdown-body{padding:.5rem}.user-dropdown-item{color:#475569;cursor:pointer;background:0 0;border:none;border-radius:.625rem;align-items:center;gap:.75rem;width:100%;padding:.75rem .875rem;font-size:.875rem;font-weight:600;transition:all .15s;display:flex}.user-dropdown-item:hover{color:#0f172a;background:#f1f5f9}.user-dropdown-item svg{color:#94a3b8;transition:color .15s}.user-dropdown-item:hover svg{color:var(--primary)}.user-dropdown-divider{background:#f1f5f9;height:1px;margin:.5rem}.user-dropdown-item.logout{color:#ef4444}.user-dropdown-item.logout:hover{background:#fef2f2}.user-dropdown-item.logout svg{color:#ef4444}.notif-badge-count{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 6px #ef444459}.header-icon-btn.has-notifs{color:#6366f1}.notif-dropdown{width:400px;max-height:520px}@media (max-width:640px){.notif-dropdown{width:auto}.notif-mark-all-btn{padding:.25rem .5rem;font-size:.75rem}.header-dropdown-top h4{font-size:.875rem}}.notif-top-actions{align-items:center;gap:.5rem;display:flex}.notif-mark-all-btn{color:#6366f1;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;transition:all .2s}.notif-mark-all-btn:hover{background:#f5f3ff}.notif-body{padding:.25rem .5rem}.notif-item-admin{cursor:pointer;border-bottom:1px solid #f8fafc;border-radius:.625rem;align-items:flex-start;gap:.75rem;padding:.875rem;transition:background .2s;display:flex;position:relative}.notif-item-admin:last-child{border-bottom:none}.notif-item-admin:hover{background:#f8fafc}.notif-item-admin.notif-unread{background:#6366f108}.notif-item-admin.notif-unread:hover{background:#6366f10f}.notif-item-icon-admin{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.notif-item-content-admin{word-wrap:break-word;overflow-wrap:break-word;flex:1;min-width:0}.notif-item-title-admin{color:#1e293b;word-break:break-word;margin:0 0 .2rem;font-size:.875rem;font-weight:700;line-height:1.3}.notif-item-msg-admin{color:#64748b;word-break:break-word;margin:0 0 .35rem;font-size:.8rem;line-height:1.45}.notif-item-time-admin{color:#94a3b8;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;display:inline-flex}.notif-item-dismiss-admin{opacity:0;color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:.25rem;transition:all .2s}.notif-item-admin:hover .notif-item-dismiss-admin{opacity:1}.notif-item-dismiss-admin:hover{color:#ef4444;background:#fee2e2}.notif-unread-dot{background:#6366f1;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.notif-panel-footer-admin{text-align:center;border-top:1px solid #f1f5f9;padding:.75rem 1rem}.notif-panel-footer-admin button{color:#6366f1;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem 1rem;font-size:.85rem;font-weight:700;transition:all .2s}.notif-panel-footer-admin button:hover{background:#f5f3ff}
