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