.markdown-message{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}.markdown-message>:first-child{margin-top:0}.markdown-message>:last-child{margin-bottom:0}.markdown-message p{margin:.4em 0 .65em}.markdown-message h1,.markdown-message h2,.markdown-message h3,.markdown-message h4{margin:.8em 0 .4em;line-height:1.3}.markdown-message ul,.markdown-message ol{margin:.45em 0;padding-left:1.4em}.markdown-message li+li{margin-top:.2em}.markdown-message blockquote{margin:.65em 0;padding-left:.8em;border-left:3px solid #94a3b8;color:#475569}.markdown-table-scroll{max-width:100%;margin:.7em 0;overflow-x:auto;border:1px solid #cbd5e1;border-radius:6px}.markdown-message table{width:100%;min-width:24rem;border-collapse:collapse;font-size:.92em}.markdown-message th,.markdown-message td{padding:.45em .65em;border-bottom:1px solid #cbd5e1;text-align:left;vertical-align:top}.markdown-message th{background:#e2e8f0;font-weight:700}.markdown-message tr:last-child td{border-bottom:0}.markdown-message code{padding:.08em .3em;border-radius:3px;background:#94a3b833;font-size:.92em}.markdown-message pre{max-width:100%;padding:.75em;overflow-x:auto;border-radius:6px;background:#e2e8f0}.markdown-message pre code{padding:0;background:transparent}.markdown-message a{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}.hostelnexus-widget{--hn-primary: #2563eb;--hn-primary-dark: #1d4ed8;--hn-primary-light: #eff6ff;--hn-bg: #ffffff;--hn-surface: #f8fafc;--hn-border: #e5e7eb;--hn-text: #111827;--hn-muted: #6b7280;width:370px;height:500px;background:var(--hn-bg);border:1px solid var(--hn-border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;z-index:99999;box-shadow:0 20px 60px #0f172a2e,0 5px 15px #0f172a14;animation:hostelNexusEntrance .45s cubic-bezier(.16,1,.3,1);transition:width .35s cubic-bezier(.16,1,.3,1),height .35s cubic-bezier(.16,1,.3,1),border-radius .3s ease,box-shadow .3s ease;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@keyframes hostelNexusEntrance{0%{opacity:0;transform:translateY(30px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.hostelnexus-widget.minimized{width:56px;height:36px;right:10px;bottom:10px;border-radius:999px;z-index:900;padding:6px;overflow:visible;display:flex;align-items:center;justify-content:center;cursor:pointer}.hostelnexus-widget.minimized .hostelnexus-widget-body{display:none}.hostelnexus-widget.minimized .hostelnexus-title-area strong,.hostelnexus-widget.minimized .hostelnexus-status{display:none!important}.hostelnexus-widget.minimized .hostelnexus-logo{width:18px;height:18px;font-size:11px}.hostelnexus-widget.minimized .icon-btn{display:none}.hostelnexus-widget.minimized .hostelnexus-header-actions{display:none!important}.hostelnexus-widget.minimized .hostelnexus-widget-body{pointer-events:none}.hostelnexus-widget.minimized:hover,.hostelnexus-widget.minimized:focus-within{max-width:220px;box-shadow:0 10px 30px #02061759;transform:translateY(-4px);background:linear-gradient(90deg,#2563eb1f,#4f7cff0f)}.hostelnexus-widget.minimized:hover .hostelnexus-title-area strong{opacity:1}@keyframes hostelNexusFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.hostelnexus-widget.dragging{animation:none!important;cursor:grabbing!important;transition:none}.hostelnexus-widget-header{min-height:68px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6,#1d4ed8);position:relative;-webkit-user-select:none;user-select:none;cursor:grab}.hostelnexus-widget-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.12),transparent 70%);animation:headerShine 5s ease-in-out infinite}@keyframes headerShine{0%{transform:translate(-100%)}40%,to{transform:translate(100%)}}.hostelnexus-title-area{display:flex;align-items:center;gap:10px;position:relative;z-index:2}.hostelnexus-title-area strong{display:block;font-size:15px;font-weight:700;letter-spacing:-.2px}.hostelnexus-status{display:flex;align-items:center;gap:5px;margin-top:3px;color:#ffffffc7;font-size:11px}.hostelnexus-logo{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#ffffff29;border:1px solid rgba(255,255,255,.2);font-size:19px;box-shadow:inset 0 1px #fff3,0 4px 12px #0000001a;animation:logoPulse 3s ease-in-out infinite}@keyframes logoPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.status-dot{width:6px;height:6px;border-radius:50%;background:#86efac;box-shadow:0 0 0 3px #86efac26;animation:statusPulse 2s infinite}@keyframes statusPulse{0%{box-shadow:0 0 #86efac80}70%{box-shadow:0 0 0 5px #86efac00}to{box-shadow:0 0 #86efac00}}.hostelnexus-header-actions{position:relative;z-index:5}.icon-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:#ffffff1f;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;transition:background .2s ease,transform .2s ease}.icon-btn:hover{background:#ffffff38;transform:scale(1.05)}.icon-btn:active{transform:scale(.92)}.maximize-btn{display:inline-flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.maximize-btn svg{display:block;width:14px;height:14px;color:#fff}.maximize-btn:hover{background:#ffffff29;transform:translateY(-2px)}.hostelnexus-widget.maximized .maximize-btn{transform:rotate(180deg)}.hostelnexus-widget-body{flex:1;height:200px;display:flex;flex-direction:column;background:var(--hn-bg);padding:10px;animation:bodyFade .3s ease}@keyframes bodyFade{0%{opacity:.5}to{opacity:1}}.hostelnexus-tabs{display:flex;gap:3px;padding:4px;margin-bottom:8px;background:var(--hn-surface);border:1px solid var(--hn-border);border-radius:11px}.hostelnexus-tabs .tab{flex:1;height:34px;border:none;border-radius:8px;background:transparent;color:var(--hn-muted);font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:color .2s ease,background .25s ease,transform .2s ease}.hostelnexus-tabs .tab:hover{color:var(--hn-primary);transform:translateY(-1px)}.hostelnexus-tabs .tab.active{background:var(--hn-bg);color:var(--hn-primary);box-shadow:0 2px 5px #0f172a14;animation:tabActive .25s ease}@keyframes tabActive{0%{transform:scale(.96)}to{transform:scale(1)}}.hostelnexus-chat-container{flex:1;min-height:0;display:flex;flex-direction:column}.hostelnexus-messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 3px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}.hostelnexus-messages::-webkit-scrollbar{width:4px}.hostelnexus-messages::-webkit-scrollbar-track{background:transparent}.hostelnexus-messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:20px}.hostelnexus-msg{width:100%;display:flex;align-items:flex-end;gap:7px;animation:messageAppear .3s cubic-bezier(.16,1,.3,1)}@keyframes messageAppear{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.hostelnexus-msg.user{justify-content:flex-end}.hostelnexus-msg.bot{justify-content:flex-start}.bot-avatar{flex-shrink:0;width:27px;height:27px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--hn-primary-light);color:var(--hn-primary);font-size:13px;animation:avatarAppear .35s ease}@keyframes avatarAppear{0%{transform:scale(0)}to{transform:scale(1)}}.hostelnexus-msg-text{max-width:78%;padding:9px 11px;font-size:12.5px;line-height:1.5;word-break:break-word;border-radius:13px}.hostelnexus-msg.bot .hostelnexus-msg-text{background:var(--hn-surface);border:1px solid var(--hn-border);color:var(--hn-text);border-bottom-left-radius:4px}.hostelnexus-msg.user .hostelnexus-msg-text{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border-bottom-right-radius:4px;box-shadow:0 3px 8px #2563eb2e}.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 13px;background:var(--hn-surface);border:1px solid var(--hn-border);border-radius:13px 13px 13px 4px}.typing-indicator span{width:5px;height:5px;background:#9ca3af;border-radius:50%;animation:typingBounce 1.2s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}.quick-suggestions-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 4px;align-items:center}.suggestion-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9999px;padding:5px 11px;font-size:11.5px;font-weight:500;color:#334155;cursor:pointer;white-space:nowrap;transition:all .2s cubic-bezier(.16,1,.3,1);line-height:1.3;outline:none;font-family:inherit;box-shadow:0 1px 2px #00000008}.suggestion-chip:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;transform:translateY(-1px);box-shadow:0 2px 5px #2563eb1f}.suggestion-chip:active:not(:disabled){transform:scale(.96)}.suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.hostelnexus-input-row{display:flex;align-items:center;gap:7px;margin:6px 12px 10px;padding-top:6px}.hostelnexus-input-row input{flex:1;min-width:0;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--hn-border);background:var(--hn-bg);color:var(--hn-text);outline:none;font-size:12.5px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.hostelnexus-input-row input::placeholder{color:#9ca3af}.hostelnexus-input-row input:focus{border-color:var(--hn-primary);box-shadow:0 0 0 3px #2563eb1a;transform:translateY(-1px)}.primary-btn{width:40px;height:40px;flex-shrink:0;border:none;border-radius:10px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;box-shadow:0 4px 10px #2563eb38;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 15px #2563eb4d}.primary-btn:active:not(:disabled){transform:scale(.92)}.primary-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.send-loader{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:sendSpin .7s linear infinite}@keyframes sendSpin{to{transform:rotate(360deg)}}.input-hint{text-align:center;margin-top:5px;color:#9ca3af;font-size:9px}.hostelnexus-tab-content{flex:1;min-height:0;overflow-y:auto;padding:6px 3px;animation:tabContentAppear .3s ease}@keyframes tabContentAppear{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.section-title{display:flex;justify-content:space-between;margin-bottom:12px}.section-title h4{margin:0;color:var(--hn-text);font-size:14px}.section-title span{display:block;margin-top:3px;color:var(--hn-muted);font-size:10px}.user-list{list-style:none;margin:0;padding:0}.user-list li{display:flex;gap:10px;padding:11px;border:1px solid var(--hn-border);border-radius:12px;background:var(--hn-surface);transition:transform .2s ease,box-shadow .2s ease}.user-list li:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0f172a12}.history-icon{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--hn-primary-light);color:var(--hn-primary)}.history-content{display:flex;flex-direction:column;gap:2px}.history-content strong{color:var(--hn-text);font-size:12px}.history-content span{color:var(--hn-muted);font-size:10px}.history-content small{margin-top:3px;color:#9ca3af;font-size:9px}.student-count-list{display:flex;flex-direction:column;gap:7px}.student-count-item{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border:1px solid var(--hn-border);border-radius:11px;background:var(--hn-surface);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.student-count-item:hover{transform:translate(3px);background:var(--hn-primary-light);box-shadow:0 4px 12px #2563eb14}.category-info{display:flex;align-items:center;gap:8px;color:var(--hn-text);font-size:12px}.category-icon{width:29px;height:29px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#fff;border:1px solid var(--hn-border);font-size:13px}.student-count-item strong{min-width:30px;text-align:right;color:var(--hn-primary);font-size:14px}.empty-state{height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--hn-muted)}.empty-icon{width:55px;height:55px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;border-radius:15px;background:var(--hn-primary-light);font-size:22px;animation:emptyFloat 3s ease-in-out infinite}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.empty-state strong{color:var(--hn-text);font-size:12px}.empty-state span{margin-top:4px;font-size:10px}.hostelnexus-widget.maximized{width:min(760px,calc(100vw - 30px));height:min(720px,calc(100vh - 30px));left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%);border-radius:20px;box-shadow:0 35px 100px #0f172a47;animation:maximizeWidget .35s cubic-bezier(.16,1,.3,1)}@keyframes maximizeWidget{0%{opacity:.7;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.hostelnexus-widget.maximized .hostelnexus-widget-body{padding:14px}.hostelnexus-widget.maximized .hostelnexus-msg-text{max-width:65%;font-size:13px;padding:10px 13px}.hostelnexus-widget.maximized .hostelnexus-messages{padding:12px 5px}@media (max-width: 600px){.hostelnexus-widget{width:calc(100vw - 20px);height:500px;right:10px!important;bottom:10px!important;left:auto!important;top:auto!important;border-radius:18px}.hostelnexus-widget.maximized{width:calc(100vw - 14px);height:calc(100vh - 14px);left:50%!important;top:50%!important;right:auto!important;bottom:auto!important}.hostelnexus-msg-text{max-width:84%}}.hostelnexus-tabs{display:flex;margin:10px 14px 6px;background:var(--hn-surface, #f1f5f9);padding:4px;border-radius:12px;border:1px solid var(--hn-border, #e2e8f0);gap:4px}.hostelnexus-tabs .tab{flex:1;padding:7px 14px;font-size:.85rem;font-weight:600;border:none;background:transparent;color:var(--hn-muted, #64748b);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:center}.hostelnexus-tabs .tab:hover{color:var(--hn-text, #0f172a)}.hostelnexus-tabs .tab.active{background:#fff;color:var(--hn-primary, #2563eb);box-shadow:0 1px 3px #00000014}.hostelnexus-tab-content{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.hostelnexus-tab-content .section-title h4{margin:0;font-size:.85rem;font-weight:700;color:var(--hn-text, #0f172a);text-transform:uppercase;letter-spacing:.04em}.empty-history-box{padding:18px 12px;text-align:center;color:var(--hn-muted, #64748b);font-size:.85rem;background:var(--hn-surface, #f8fafc);border-radius:10px;border:1px dashed var(--hn-border, #e2e8f0)}.history-items-list{display:flex;flex-direction:column;gap:6px}.history-item-row{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:var(--hn-surface, #f8fafc);border:1px solid var(--hn-border, #e2e8f0);border-radius:9px;cursor:pointer;transition:all .15s ease}.history-item-row:hover{border-color:var(--hn-primary, #2563eb);background:#fff}.history-item-text{font-size:.85rem;font-weight:500;color:var(--hn-text, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78%}.history-item-time{font-size:.72rem;color:var(--hn-muted, #94a3b8)}.suggestions-list{display:flex;flex-direction:column;gap:6px}.suggestion-card{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--hn-surface, #f8fafc);border:1px solid var(--hn-border, #e2e8f0);border-radius:8px;cursor:pointer;transition:all .15s ease}.suggestion-card:hover{border-color:var(--hn-primary, #2563eb);background:#fff}.suggestion-text{font-size:.82rem;color:var(--hn-text, #1e293b);font-weight:500}.suggestion-action-arrow{color:var(--hn-muted, #94a3b8);display:flex;align-items:center}.suggestion-card:hover .suggestion-action-arrow{color:var(--hn-primary, #2563eb)}@media (prefers-color-scheme: dark){.hostelnexus-widget{--hn-bg: #111827;--hn-surface: #1f2937;--hn-border: #374151;--hn-text: #f9fafb;--hn-muted: #9ca3af;--hn-primary-light: rgba(59, 130, 246, .12);box-shadow:0 25px 70px #00000073}.hostelnexus-tabs{background:#1e293b;border-color:#334155}.hostelnexus-tabs .tab.active{background:#0f172a;color:#60a5fa}.history-item-row,.suggestion-card,.empty-history-box,.suggestion-chip{background:#1e293b;border-color:#334155;color:#cbd5e1}.history-item-row:hover,.suggestion-card:hover,.suggestion-chip:hover:not(:disabled){background:#0f172a;border-color:#60a5fa;color:#93c5fd}}@media (prefers-reduced-motion: reduce){.hostelnexus-widget,.hostelnexus-widget *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-bottom:1.25rem}.metric-card{background:var(--glass, rgba(255, 255, 255, .06));border:1px solid var(--glass-2, rgba(255, 255, 255, .12));border-radius:14px;padding:1rem 1.15rem;display:flex;align-items:center;gap:.85rem;transition:transform .15s ease}[data-theme=light] .metric-card{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 3px #0000000d}.metric-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.metric-icon.pending{background:#ef444426;color:#ef4444}.metric-icon.in-progress{background:#f59e0b26;color:#f59e0b}.metric-icon.resolved{background:#10b98126;color:#10b981}.metric-icon.total{background:#4f7cff26;color:var(--accent-1, #72e3ff)}[data-theme=light] .metric-icon.total{background:#eff6ff;color:#2563eb}.metric-info h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #8cb2ff);margin:0 0 .15rem}[data-theme=light] .metric-info h4{color:#64748b}.metric-info p{font-size:1.45rem;font-weight:700;color:var(--text, #f8fbff);line-height:1;margin:0}[data-theme=light] .metric-info p{color:#0f172a}.complaints-controls{background:var(--glass, rgba(255, 255, 255, .06));border:1px solid var(--glass-2, rgba(255, 255, 255, .12));border-radius:14px;padding:.85rem 1rem;margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}[data-theme=light] .complaints-controls{background:#fff;border-color:#e2e8f0}.search-wrap{position:relative;flex:1;min-width:220px}.search-wrap svg{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--muted, #8cb2ff);font-size:.9rem}[data-theme=light] .search-wrap svg{color:#64748b}.search-wrap input{width:100%;padding:.55rem .85rem .55rem 2.3rem;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:var(--text, #f8fbff);font-size:.875rem;outline:none;font-family:inherit}[data-theme=light] .search-wrap input{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.filter-group{display:flex;gap:.55rem;flex-wrap:wrap}.filter-select{padding:.55rem .85rem;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:var(--text, #f8fbff);font-size:.85rem;outline:none;cursor:pointer;font-family:inherit}[data-theme=light] .filter-select{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.complaints-container-card{background:var(--glass, rgba(255, 255, 255, .05));border:1px solid var(--glass-2, rgba(255, 255, 255, .12));border-radius:16px;padding:1.25rem;margin-bottom:1.5rem}[data-theme=light] .complaints-container-card{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 4px #0000000d}.complaints-panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.9rem;margin-bottom:1.15rem;flex-wrap:wrap;gap:.75rem}[data-theme=light] .complaints-panel-head{border-bottom-color:#e2e8f0}.complaints-head-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ef444426;color:#ef4444;font-size:1.2rem}.complaints-counter-badge{padding:.3rem .85rem;border-radius:999px;font-size:.82rem;font-weight:700;background:#72e3ff1f;color:var(--accent-1, #72e3ff);border:1px solid rgba(114,227,255,.25)}[data-theme=light] .complaints-counter-badge{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.complaints-list{display:flex;flex-direction:column;gap:.85rem;max-height:72vh;overflow-y:auto;padding-right:.35rem}.complaint-card{background:var(--glass, rgba(255, 255, 255, .05));border:1px solid var(--glass-2, rgba(255, 255, 255, .1));border-radius:14px;padding:1.15rem 1.25rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start}[data-theme=light] .complaint-card{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 3px #0000000d}.complaint-main-content{display:flex;flex-direction:column;gap:.4rem}.complaint-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.badge-status{padding:.15rem .55rem;border-radius:9999px;font-size:.725rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-status.pending{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}[data-theme=light] .badge-status.pending{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.badge-status.in-progress{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}[data-theme=light] .badge-status.in-progress{background:#fef3c7;color:#b45309;border-color:#fde68a}.badge-status.resolved{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}[data-theme=light] .badge-status.resolved{background:#dcfce7;color:#15803d;border-color:#86efac}.badge-priority{padding:.12rem .45rem;border-radius:6px;font-size:.725rem;font-weight:600}.badge-priority.urgent{background:#dc2626;color:#fff}.badge-priority.high{background:#ea580c33;color:#ea580c}[data-theme=light] .badge-priority.high{background:#ffedd5;color:#c2410c}.badge-priority.medium{background:#eab30833;color:#eab308}[data-theme=light] .badge-priority.medium{background:#fef9c3;color:#a16207}.badge-priority.low{background:#3b82f626;color:#60a5fa}[data-theme=light] .badge-priority.low{background:#f1f5f9;color:#475569}.badge-category{background:#4f7cff26;color:var(--accent-1, #72e3ff);padding:.12rem .5rem;border-radius:6px;font-size:.725rem;font-weight:500}[data-theme=light] .badge-category{background:#eff6ff;color:#2563eb}.complaint-title{font-size:1rem;font-weight:600;color:var(--text, #f8fbff);margin:0}[data-theme=light] .complaint-title{color:#0f172a}.complaint-desc{color:var(--muted, #8cb2ff);font-size:.85rem;line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}[data-theme=light] .complaint-desc{color:#64748b}.complaint-meta{display:flex;flex-wrap:wrap;gap:.85rem;font-size:.78rem;color:var(--muted, #8cb2ff);margin-top:.2rem}[data-theme=light] .complaint-meta{color:#64748b}.complaint-meta-item{display:flex;align-items:center;gap:.3rem}.complaint-admin-feedback{margin-top:.35rem;padding:.5rem .75rem;background:#10b98114;border-left:3px solid #10b981;border-radius:0 8px 8px 0;font-size:.825rem;color:#34d399}[data-theme=light] .complaint-admin-feedback{background:#f0fdf4;color:#15803d}.complaint-card-actions{display:flex;flex-direction:column;gap:.45rem;justify-content:center;min-width:130px}.btn-action-respond{padding:.5rem .85rem;background:#4f7cff;color:#fff;border:none;border-radius:10px;font-size:.825rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:background .15s ease}.btn-action-respond:hover{background:#3b66e6}.btn-view-image{padding:.4rem .7rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:var(--text, #f8fbff);border-radius:10px;font-size:.78rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.35rem}[data-theme=light] .btn-view-image{background:#f1f5f9;border-color:#cbd5e1;color:#334155}.btn-view-image:hover{background:#ffffff24}[data-theme=light] .btn-view-image:hover{background:#e2e8f0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.25rem}.complaint-modal{background:#111d35;border:1px solid rgba(255,255,255,.14);border-radius:16px;width:100%;max-width:660px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0006;display:flex;flex-direction:column}[data-theme=light] .complaint-modal{background:#fff;border-color:#cbd5e1}.modal-header{padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}[data-theme=light] .modal-header{border-bottom-color:#e2e8f0}.modal-header h2{font-size:1.2rem;font-weight:700;color:var(--text, #f8fbff);margin:0}[data-theme=light] .modal-header h2{color:#0f172a}.modal-close-btn{background:transparent;border:none;color:var(--muted, #8cb2ff);font-size:1.2rem;cursor:pointer;padding:.3rem;border-radius:6px}[data-theme=light] .modal-close-btn{color:#64748b}.modal-body{padding:1.15rem 1.25rem;display:flex;flex-direction:column;gap:.95rem}.modal-section{background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:.85rem 1rem}[data-theme=light] .modal-section{background:#f8fafc;border-color:#e2e8f0}.modal-section h4{font-size:.75rem;color:var(--muted, #8cb2ff);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .35rem}[data-theme=light] .modal-section h4{color:#64748b}.modal-image-preview{max-width:100%;max-height:220px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.1);cursor:pointer}.response-form-group{display:flex;flex-direction:column;gap:.35rem;margin-top:.6rem}.response-form-group label{font-size:.8rem;font-weight:600;color:var(--muted, #8cb2ff)}[data-theme=light] .response-form-group label{color:#475569}.response-textarea{width:100%;min-height:85px;padding:.6rem;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:var(--text, #f8fbff);font-size:.875rem;outline:none;font-family:inherit;resize:vertical}[data-theme=light] .response-textarea{background:#fff;border-color:#cbd5e1;color:#0f172a}.quick-templates{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.btn-template{padding:.22rem .5rem;background:#4f7cff26;border:1px solid rgba(79,124,255,.25);color:var(--accent-1, #72e3ff);border-radius:8px;font-size:.725rem;cursor:pointer}[data-theme=light] .btn-template{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.modal-footer{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:flex-end;gap:.55rem}[data-theme=light] .modal-footer{border-top-color:#e2e8f0}.btn-cancel{padding:.5rem .95rem;background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--muted, #8cb2ff);border-radius:10px;font-size:.85rem;cursor:pointer}[data-theme=light] .btn-cancel{border-color:#cbd5e1;color:#64748b}.btn-submit-response{padding:.5rem 1.2rem;background:#10b981;color:#fff;border:none;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem}.btn-submit-response:hover{background:#059669}@media (max-width: 768px){.complaint-card{grid-template-columns:1fr}.complaint-card-actions{flex-direction:row;width:100%}}:root{--bg-1: #060b16;--bg-2: #111d35;--bg-3: #1b2847;--text: #f8fbff;--muted: #8cb2ff;--glass: rgba(255, 255, 255, .08);--glass-2: rgba(255, 255, 255, .14);--accent-1: #72e3ff;--accent-2: #4f7cff;font-family:Inter,Segoe UI,sans-serif;color:var(--text);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top right,rgba(80,140,255,.18),transparent 35%),linear-gradient(135deg,var(--bg-1),var(--bg-2) 45%,var(--bg-3));color:var(--text);transition:background .35s ease,color .25s ease}a{text-decoration:none;color:inherit}button,input{font:inherit}#root,.admin-shell{min-height:100vh}.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(100%,480px);padding:2rem;border-radius:30px;background:var(--glass);border:1px solid var(--glass-2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 20px 50px #00000040}.auth-form{display:grid;gap:1rem;margin-top:1rem}.input-group{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;border-radius:16px;background:var(--glass);border:1px solid var(--glass-2);transition:box-shadow .18s ease,transform .12s ease}.input-group input{flex:1;background:transparent;border:none;outline:none;color:var(--text)}.input-group input::placeholder{color:var(--muted)}.input-group:focus-within{box-shadow:0 6px 20px #5078ff0f;transform:translateY(-1px)}.icon-btn{background:none;border:none;color:#72e3ff;cursor:pointer}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem 2rem;font-size:1rem;font-weight:600;border-radius:999px;border:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.primary-btn{background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#07111f;font-weight:700;box-shadow:0 10px 35px #4f7cff40}.primary-btn:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 14px 40px #4f7cff59}.secondary-btn{background:#ffffff1f;color:var(--text);border:1px solid rgba(255,255,255,.15)}.secondary-btn:hover{transform:translateY(-3px) scale(1.03);background:#ffffff2e}.save-attendance-btn{min-width:170px;padding:.85rem 1.2rem;font-weight:800;letter-spacing:.2px;display:inline-flex;align-items:center;justify-content:center;gap:.6rem}.save-attendance-btn[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-loader{width:16px;height:16px;border-radius:50%;border:2px solid rgba(7,17,31,.08);border-top-color:#07111f29;box-shadow:inset 0 1px #ffffff0f;animation:btnSpin .8s linear infinite;display:inline-block}@keyframes btnSpin{to{transform:rotate(360deg)}}.auth-secondary-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.auth-secondary-actions.single{justify-content:center}.auth-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.68rem .9rem;border-radius:14px;border:1px solid rgba(114,227,255,.18);background:#72e3ff14;color:var(--text);cursor:pointer;font-weight:700;transition:transform .14s ease,background .14s ease,border-color .14s ease}.auth-link-btn:hover{transform:translateY(-2px);background:#72e3ff24;border-color:#72e3ff57}.auth-link-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.action-popup{position:fixed;top:1rem;right:1rem;z-index:10000;width:min(360px,calc(100vw - 2rem));display:flex;align-items:flex-start;gap:.7rem;padding:.9rem 1rem;border-radius:16px;border:1px solid rgba(52,211,153,.28);background:#061219f5;color:var(--text);box-shadow:0 22px 60px #00000052;animation:popupIn .22s ease both}.action-popup svg{margin-top:.15rem;color:#34d399;flex:0 0 auto}.action-popup.error{border-color:#f8717159;background:#230b12f5}.action-popup.error svg{color:#f87171}@keyframes popupIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dashboard-shell{display:grid;grid-template-columns:280px 1fr;gap:1rem;min-height:100vh;padding:1rem}.sidebar{padding:1rem;border-radius:24px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar-brand{display:flex;gap:.7rem;margin-bottom:1.2rem;align-items:center}.brand-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#72e3ff,#4f7cff);color:#07111f;font-weight:800}.brand-icon.large{width:80px;height:80px;border-radius:20px;font-size:1.3rem}.sidebar-nav{display:grid;gap:.6rem}.sidebar-nav a,.sidebar-logout{display:flex;align-items:center;gap:.7rem;width:100%;padding:.9rem 1rem;border:none;border-radius:14px;background:none;color:#dce7ff;cursor:pointer}.sidebar-nav a.active,.sidebar-nav a:hover,.sidebar-logout:hover{background:#924e4e1f}.sidebar-badge{display:inline-grid;min-width:22px;height:22px;padding:0 .5rem;place-items:center;border-radius:999px;background:linear-gradient(90deg,#72e3ff,#4f7cff);color:#07111f;font-weight:700;margin-left:auto;margin-right:6px;box-shadow:0 6px 18px #4f7cff1f}.sidebar-badge.pulse{animation:pulse-badge 1.8s ease-in-out}@keyframes pulse-badge{0%{transform:scale(1)}50%{transform:scale(1.22)}to{transform:scale(1)}}.dashboard-main{display:grid;gap:1rem;min-width:0}.dashboard-topbar{padding:1.1rem 1.2rem;border-radius:20px;background:var(--glass);border:1px solid var(--glass-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center}.panel-card{padding:1.1rem 1.2rem;border-radius:20px;background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid rgba(255,255,255,.04);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s ease,box-shadow .18s ease}.nb-search-row{display:flex;align-items:center;gap:.7rem;padding:0 .2rem;margin-bottom:1rem}.nb-search-row .table-search{flex:1}.nb-notice-list{display:grid;gap:1rem;margin-top:.5rem}.nb-notice-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:start;padding:1.15rem 1.1rem;border-radius:18px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.nb-notice-row:hover{transform:translateY(-2px);box-shadow:0 18px 40px #00000029;border-color:#72e1ff2e}.nb-notice-row.highlighted{border-color:#34d39966;box-shadow:0 0 0 2px #34d39924,0 20px 48px #00000026}.nb-notice-icon{width:48px;height:48px;min-width:48px;display:grid;place-items:center;border-radius:14px;background:#ffffff14;color:var(--accent-1);font-size:1.2rem}.nb-notice-body{display:grid;gap:.55rem}.nb-notice-title-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:center}.nb-notice-title{font-size:1rem;font-weight:700;color:var(--text)}.nb-new-badge,.nb-severity-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;font-size:.78rem;font-weight:700}.nb-new-badge{background:#10b98124;color:#a7f3d0}.nb-severity-pill{background:#ffffff14;color:var(--muted)}.nb-notice-content{margin:0;color:#f8fbffd9;line-height:1.7}.nb-notice-date{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem}.nb-notice-actions{display:grid;gap:.6rem;align-content:start;min-width:56px}.nb-notice-actions .table-action{width:40px;height:40px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;display:inline-flex;align-items:center;justify-content:center}.nb-notice-actions .table-action:hover{background:#ffffff14}.nb-notice-actions .table-action svg{width:18px;height:18px}.user-list-card{padding:1.2rem 1.3rem;border-radius:24px;background:#ffffff0f;border:1px solid rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px #ffffff05}.user-table{width:100%;border-collapse:separate;border-spacing:0 .5rem}.user-table th,.user-table td{text-align:left;padding:.95rem 1rem}.user-table th{color:var(--muted);font-size:.9rem;letter-spacing:.02em;text-transform:uppercase}.user-table tbody tr{background:#ffffff0a;border-radius:16px;overflow:hidden;transition:transform .14s ease,background .14s ease}.user-table tbody tr:hover{transform:translate(6px);background:#ffffff14}.table-edit-field input,.table-edit-field select{width:100%;min-width:120px;padding:.65rem .75rem;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff14;color:var(--text)}.table-row-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.compact-btn{width:auto;min-width:74px;padding:.55rem .8rem;border-radius:12px;white-space:nowrap}.empty-state{margin:0;color:var(--muted);padding:.8rem 0}.stat-card{padding:1.05rem;border-radius:18px;background:linear-gradient(90deg,#ffffff05,#ffffff03);border:1px solid rgba(255,255,255,.03);transition:transform .18s ease,box-shadow .18s ease,opacity .28s ease;transform-origin:center;opacity:0;transform:translateY(8px);animation:fadeInUp .56s cubic-bezier(.2,.9,.3,1) forwards}.stat-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 18px 50px #060c1e73}.stats-grid .stat-card:nth-child(1){animation-delay:80ms}.stats-grid .stat-card:nth-child(2){animation-delay:.16s}.stats-grid .stat-card:nth-child(3){animation-delay:.24s}.stats-grid .stat-card:nth-child(4){animation-delay:.32s}.topbar-actions{display:flex;align-items:center;gap:.8rem}.icon-button{position:relative;width:42px;height:42px;border-radius:12px;border:none;background:#ffffff1c;color:#fff}.notification-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 .35rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.profile-pill{display:flex;align-items:center;gap:.6rem;padding:.45rem .7rem;border-radius:999px;background:#ffffff1a}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.stat-card h3{margin:0 0 .35rem}.stat-card p{margin:0;color:#72e3ff;font-size:1.2rem;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.rooms-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:.75rem}.room-card{padding:1rem;border-radius:18px;display:grid;gap:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.room-card.room-free{background:#22c55e14;border-color:#22c55e2e}.room-card.room-full{background:#ef444414;border-color:#ef44442e}.room-card-title{font-weight:700}.room-card-meta{color:var(--muted);font-size:.95rem}.room-card-badge{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .7rem;border-radius:999px;font-size:.83rem;font-weight:700}.room-card.room-free .room-card-badge{color:#16a34a;background:#22c55e1f}.room-card.room-full .room-card-badge{color:#b91c1c;background:#ef44441f}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.user-list{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}.user-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem .1rem;border-bottom:1px solid rgba(255,255,255,.06);transition:transform .12s ease,background .12s ease;border-radius:10px}.user-list li:hover{transform:translate(6px);background:#ffffff05}.table-wrapper{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.8rem .4rem;border-bottom:1px solid rgba(255,255,255,.1)}.table-search{padding:.7rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff14;color:#fff}.status-pill{display:inline-block;padding:.35rem .6rem;border-radius:999px;font-size:.8rem}.attendance-filter{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f}.attendance-filter input{border:none;background:transparent;color:var(--text);outline:none}.attendance-line-chart-wrap{display:grid;gap:.75rem}.attendance-line-chart{width:100%;height:auto;min-height:220px}.attendance-chart-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--muted);font-size:.92rem}.attendance-report-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:end;margin-bottom:1rem}.attendance-report-form label{display:grid;gap:.4rem;font-size:.9rem;color:var(--muted)}.attendance-report-form input{padding:.75rem .8rem;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text)}.attendance-report-results{display:grid;gap:.8rem}.attendance-report-summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.attendance-report-wide-table{display:grid;gap:.55rem;overflow-x:auto}.attendance-report-wide-row{display:grid;gap:.35rem;align-items:center;min-width:fit-content;padding:.7rem .8rem;border-radius:12px;background:#ffffff0a}.attendance-report-wide-row.head{font-weight:700;color:var(--muted);background:#ffffff0f}.attendance-mark.present{color:#22c55e;font-weight:700}.attendance-mark.absent{color:#ef4444;font-weight:700}.attendance-total-cell{font-weight:700;color:var(--accent-1)}.status-pill.active,.status-pill.approved{background:#22c55e33;color:#bcf7d3}.status-pill.pending{background:#facc1533;color:#fef3c7}.status-pill.rejected{background:#ef44442e;color:#fecaca}.table-action{border:none;border-radius:999px;padding:.4rem .75rem;background:#ffffff1f;color:#fff}.room-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem}.room-modal{width:100%;max-width:900px;background:linear-gradient(180deg,#0a0e14b3,#060a1299);border-radius:12px;padding:1.1rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.04);box-shadow:0 24px 60px #020617b3}.room-modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem}.room-modal-header h3{margin:0;color:#fff;font-size:1.05rem;font-weight:800}.room-modal-close{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#fff;padding:.45rem .8rem;border-radius:999px;cursor:pointer}.room-modal-body{max-height:60vh;overflow-y:auto}.room-modal-table{width:100%;border-collapse:collapse;min-width:600px}.room-modal-table thead th{text-align:left;padding:.8rem .6rem;color:#fff;font-weight:800;border-bottom:1px solid rgba(255,255,255,.06)}.room-modal-table tbody td{padding:.7rem .6rem;color:#ffffffeb;border-bottom:1px solid rgba(255,255,255,.03)}.room-modal-table tbody tr:hover{background:#ffffff05}.muted{color:#ffffffa6}.room-modal::-webkit-scrollbar,.room-modal-body::-webkit-scrollbar{height:8px;width:8px}.room-modal::-webkit-scrollbar-thumb,.room-modal-body::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:10px}.attendance-section{color:var(--text)}.attendance-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.attendance-head h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem}.attendance-head p,.attendance-muted{margin:0;color:var(--muted)}.attendance-year{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem}.attendance-year select{border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff14;color:#fff;padding:.45rem .65rem}.attendance-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.attendance-stat{padding:.85rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff0d;display:flex;flex-direction:column;gap:.35rem}.attendance-stat span{color:var(--muted);font-size:.85rem}.attendance-stat strong{font-size:1rem}.attendance-stat.present strong,.present-text{color:#22c55e}.attendance-stat.absent strong,.absent-text{color:#ef4444}.attendance-heatmap-wrap{overflow-x:auto;padding:.75rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff0a}.attendance-heatmap{display:flex;gap:4px;min-width:max-content}.attendance-week{display:grid;grid-template-rows:repeat(7,12px);gap:4px}.attendance-day{width:12px;height:12px;border-radius:3px;display:inline-block;background:#94a3b840}.attendance-day.present{background:#22c55e}.attendance-day.absent{background:#ef4444}.attendance-day.notmarked{background:#94a3b859}.attendance-day.future,.attendance-day.empty{background:#94a3b81f}.attendance-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.75rem;color:var(--muted);font-size:.85rem}.attendance-legend span,.attendance-history-row strong{display:inline-flex;align-items:center;gap:.35rem}.attendance-history{margin-top:1.25rem}.attendance-history h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:1rem}.attendance-history-scroll{display:grid;gap:.75rem;max-height:260px;overflow:auto;padding-right:.25rem}.attendance-month-group h4{margin:.25rem 0 .5rem;color:var(--muted);font-size:.9rem}.attendance-history-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.form-card .profile-actions{margin-top:1rem}.admin-form-grid.compact-grid{grid-template-columns:repeat(1,minmax(0,1fr));max-width:640px}.profile-field{display:flex;flex-direction:column;gap:.45rem;position:relative}.profile-field .label-text{position:absolute;left:14px;top:50%;transform:translateY(-50%);transition:transform .16s ease,font-size .16s ease,color .16s ease;color:var(--muted);pointer-events:none;font-weight:600}.profile-field input,.profile-field select{width:100%;padding:.9rem .85rem .6rem;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:transparent;color:var(--text);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;font:inherit}.profile-field select{cursor:pointer}.profile-field select option{background:#060b16f2;color:var(--text)}.profile-field:focus-within .label-text{transform:translateY(-170%);font-size:.75rem;color:var(--accent-1)}.form-status{margin-top:.75rem;color:var(--accent-1);font-weight:600}.profile-image-panel{display:flex;gap:1rem;align-items:center}.avatar-shell{position:relative;width:120px;height:120px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.04)}.profile-avatar{width:100%;height:100%;object-fit:cover;display:block}.profile-fallback{width:100%;height:100%;display:grid;place-items:center;font-size:2.1rem;font-weight:800;color:var(--text);background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#07111f}.upload-overlay{position:absolute;inset:auto 0 10px 0;display:flex;justify-content:center}.image-upload-btn{padding:.45rem .7rem;border-radius:999px;border:none;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));color:#07111f;cursor:pointer;transform:translateY(6px);transition:transform .14s ease}.avatar-shell:hover .image-upload-btn{transform:translateY(0)}.image-actions{display:flex;gap:.5rem;margin-left:.6rem}.profile-card--standard{display:grid;grid-template-columns:1fr 1.2fr;gap:1rem;align-items:center}.profile-card--standard .profile-form-grid{grid-column:2 / 3}[data-theme=light]{--bg-1: #f7f9ff;--bg-2: #edf3ff;--bg-3: #e5edff;--text: #102033;--muted: #536782;--glass: rgba(255, 255, 255, .78);--glass-2: rgba(38, 73, 122, .14);--accent-1: #2563eb;--accent-2: #0f766e;color-scheme:light}[data-theme=light] body{background:radial-gradient(circle at top right,rgba(37,99,235,.14),transparent 34%),linear-gradient(135deg,var(--bg-1),var(--bg-2) 48%,var(--bg-3))}[data-theme=light] .login-card,[data-theme=light] .sidebar,[data-theme=light] .dashboard-topbar,[data-theme=light] .panel-card,[data-theme=light] .user-list-card,[data-theme=light] .nb-modal,[data-theme=light] .leave-modal-card{background:#ffffffdb;border-color:#274c7d24;box-shadow:0 18px 48px #24416e1f}[data-theme=light] .panel-card{background:linear-gradient(180deg,#ffffffeb,#f7faffe0)}[data-theme=light] .sidebar-nav a,[data-theme=light] .sidebar-logout{color:#203754}[data-theme=light] .sidebar-nav a.active,[data-theme=light] .sidebar-nav a:hover,[data-theme=light] .sidebar-logout:hover{background:#2563eb1a;color:#123b8f}[data-theme=light] .secondary-btn,[data-theme=light] .table-action,[data-theme=light] .icon-button,[data-theme=light] .profile-pill,[data-theme=light] .auth-link-btn,[data-theme=light] .quick-actions button{background:#2563eb14;color:var(--text);border:1px solid rgba(37,99,235,.12)}[data-theme=light] .secondary-btn:hover,[data-theme=light] .table-action:hover,[data-theme=light] .auth-link-btn:hover{background:#2563eb24}[data-theme=light] .input-group,[data-theme=light] .table-search,[data-theme=light] .attendance-filter,[data-theme=light] .profile-field input,[data-theme=light] .profile-field select,[data-theme=light] .attendance-report-form input,[data-theme=light] .table-edit-field input,[data-theme=light] .table-edit-field select,[data-theme=light] .nb-modal textarea,[data-theme=light] .nb-modal input[type=text]{background:#ffffffc7;border-color:#274c7d29;color:var(--text)}[data-theme=light] .input-group input,[data-theme=light] .attendance-filter input,[data-theme=light] .attendance-report-form input{color:var(--text)}[data-theme=light] .input-group input::placeholder,[data-theme=light] .table-search::placeholder{color:#71839a}[data-theme=light] .profile-field select option,[data-theme=light] .attendance-year select option{background:#fff;color:var(--text)}[data-theme=light] .stat-card,[data-theme=light] .room-card,[data-theme=light] .nb-notice-row,[data-theme=light] .upload-card,[data-theme=light] .student-card,[data-theme=light] .student-row,[data-theme=light] .attendance-stat,[data-theme=light] .attendance-heatmap-wrap,[data-theme=light] .attendance-report-room,[data-theme=light] .attendance-report-wide-table{background:#ffffffb8;border-color:#274c7d1f}[data-theme=light] .user-table tbody tr,[data-theme=light] .attendance-report-wide-row,[data-theme=light] .attendance-report-row.head,[data-theme=light] .attendance-report-room h4{background:#2563eb0d}[data-theme=light] .user-table tbody tr:hover,[data-theme=light] .student-row:hover,[data-theme=light] .nb-notice-row:hover{background:#2563eb17}[data-theme=light] th,[data-theme=light] td,[data-theme=light] .user-list li,[data-theme=light] .attendance-history-row,[data-theme=light] .attendance-report-wide-row,[data-theme=light] .attendance-report-wide-row>span,[data-theme=light] .attendance-report-row{border-color:#274c7d1f}[data-theme=light] .attendance-year select{background:#ffffffc7;border-color:#274c7d29;color:var(--text)}[data-theme=light] .attendance-report-wide-row.head{background:#eef4fffa}[data-theme=light] .action-popup{background:#fffffff5;color:var(--text)}[data-theme=light] .action-popup.error{background:#fff7f7fa}[data-theme=light] .nb-modal-overlay,[data-theme=light] .leave-modal-overlay{background:#10203352}[data-theme=light] .upload-summary strong,[data-theme=light] .upload-pill,[data-theme=light] .upload-summary .summary-pill{color:var(--text)}[data-theme=light] .nb-new-badge,[data-theme=light] .status-pill.active,[data-theme=light] .status-pill.approved{color:#047857}[data-theme=light] .status-pill.pending{color:#92400e}[data-theme=light] .status-pill.rejected{color:#b91c1c}[data-theme=light] .attendance-line-chart circle{fill:#fff}[data-theme=light] .attendance-line-chart line{stroke:#274c7d2e}[data-theme=light] .icon-btn,[data-theme=light] .view-link,[data-theme=light] .attendance-total-cell,[data-theme=light] .stat-card p{color:var(--accent-1)}[data-theme=light] .file-input-label,[data-theme=light] .preview-badge,[data-theme=light] .nb-severity-pill,[data-theme=light] .attendance-report-summary,[data-theme=light] .upload-summary{background:#2563eb0f;border-color:#2563eb24;color:var(--text)}[data-theme=light] .leave-attachment-fallback,[data-theme=light] .staff-card.admin-staff-card{background:#ffffffb8;border-color:#274c7d1f}[data-theme=light] .room-card.room-free{background:#16a34a14;border-color:#16a34a33}[data-theme=light] .room-card.room-full{background:#dc262614;border-color:#dc26262e}@media (max-width: 980px){.stats-grid,.dashboard-grid,.admin-form-grid,.attendance-stats{grid-template-columns:1fr!important}.attendance-head{flex-direction:column}.dashboard-shell{grid-template-columns:1fr}.dashboard-main{min-width:0}.dashboard-topbar{flex-wrap:wrap}.attendance-report-form{grid-template-columns:1fr}.attendance-report-wide-table{min-width:0}}@media (max-width: 760px){.dashboard-shell{display:block;padding:.65rem}.sidebar{position:sticky;top:.65rem;z-index:20;padding:.65rem;margin-bottom:.75rem;border-radius:18px}.sidebar-brand{display:flex;flex-direction:row;align-items:center;gap:.6rem;margin-bottom:.6rem}.sidebar-brand h3{margin:0;font-size:1rem}.sidebar-brand p{display:none}.brand-icon{width:34px;height:34px;border-radius:10px}.sidebar-nav{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.15rem;-webkit-overflow-scrolling:touch}.sidebar-nav a,.sidebar-logout{flex:0 0 auto;width:auto;justify-content:center;padding:.65rem .75rem;border-radius:12px;font-size:.86rem;white-space:nowrap}.sidebar-nav svg{width:16px;min-width:16px}.sidebar>div:last-child{display:none}.dashboard-topbar{flex-direction:column;align-items:flex-start;gap:.8rem;padding:1rem}.dashboard-topbar h2{margin:.15rem 0 0;line-height:1.2}.topbar-actions{width:100%;flex-wrap:wrap;align-items:stretch}.topbar-actions>*{flex:1 1 100%}.panel-card{padding:.9rem;border-radius:16px}.panel-head{align-items:flex-start;flex-direction:column;gap:.5rem}.stats-grid,.dashboard-grid{grid-template-columns:1fr!important}.room-attendance-card,.room-card,.attendance-filter,.attendance-filter input{width:100%}.attendance-line-chart-wrap{padding:.7rem}.attendance-chart-meta{flex-direction:column;align-items:flex-start}.nb-search-row{flex-wrap:wrap}.nb-search-row .table-search{width:100%}.nb-notice-row{grid-template-columns:1fr}.nb-notice-actions{grid-template-columns:repeat(2,1fr);min-width:0}.user-list-card{padding:.85rem}.user-table{min-width:720px}.user-table th,.user-table td{padding:.75rem .65rem;font-size:.88rem}.table-wrapper table{min-width:760px}.room-groups-container{max-height:none!important;overflow:visible!important;padding-right:0!important}.profile-card--standard{grid-template-columns:1fr}.profile-card--standard .profile-form-grid{grid-column:auto}.profile-image-panel{flex-direction:column;align-items:flex-start}.attendance-line-chart{min-width:560px}.attendance-report-results{max-height:none;overflow:visible;padding-right:0}.attendance-report-row{min-width:680px}.attendance-report-room{overflow-x:auto}}@media (max-width: 560px){.admin-login-page{padding:1rem}.login-card{padding:1.25rem;border-radius:20px}.dashboard-shell{padding:.5rem}.sidebar{top:.5rem;margin-bottom:.6rem}.sidebar-nav a,.sidebar-logout{padding:.6rem .7rem;font-size:.82rem}.topbar-actions>*{flex-basis:100%}.primary-btn,.secondary-btn{width:100%;padding:.1rem .1 rem}.compact-btn{width:auto;min-width:70px;padding:.5rem .7rem}.auth-secondary-actions{flex-direction:column}.auth-link-btn{width:100%}.action-popup{top:.65rem;right:.65rem;left:.65rem;width:auto}.dashboard-topbar h2{font-size:1.2rem}.panel-card{border-radius:16px}.stat-card{padding:.95rem}.nb-notice-row{grid-template-columns:1fr}.nb-notice-actions{grid-template-columns:repeat(2,1fr);min-width:0}.attendance-report-form{gap:.75rem}.attendance-report-form label,.attendance-report-form input{width:100%}.attendance-report-summary{flex-direction:column;align-items:flex-start}.leave-modal-card{padding:1rem}.leave-actions{flex-direction:column}.nb-modal-overlay,.leave-modal-overlay{padding:.65rem;align-items:flex-start;overflow:auto}.nb-modal,.leave-modal-card{border-radius:18px;padding:1rem}.upload-card-footer,.upload-action-row,.staff-card-actions,.student-actions{flex-direction:column;align-items:stretch}.table-search{width:100%!important}.attendance-line-chart{min-width:480px;height:220px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.leave-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#030814bd;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:9999}.leave-modal-card{width:min(760px,100%);max-height:min(90vh,860px);overflow:auto;background:#08101ff5;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:1.2rem;box-shadow:0 24px 70px #00000059}.leave-modal-card.attachment-only{width:min(920px,100%)}.leave-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.leave-modal-header h3{margin:0;display:flex;align-items:center;gap:.5rem}.leave-modal-header p{margin:.25rem 0 0;color:var(--muted)}.leave-modal-close{border:none;background:transparent;color:#fff;font-size:1.2rem;cursor:pointer}.leave-attachment-preview{min-height:320px;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;overflow:hidden}.leave-attachment-image{width:100%;height:100%;max-height:70vh;object-fit:contain;display:block}.leave-attachment-iframe{width:100%;min-height:70vh;border:none;background:#fff}.leave-attachment-fallback{text-align:center;color:var(--muted);padding:1.5rem}.leave-attachment-fallback a{color:var(--accent-1);font-weight:700}@media (max-width: 560px){.leave-details-grid{grid-template-columns:1fr}}.staff-grid.admin-staff-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(220px,1fr));max-width:1180px;margin:0 auto}.staff-card.admin-staff-card{display:grid;gap:.85rem;padding:.95rem;border-radius:22px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:transform .18s ease,box-shadow .18s ease;min-width:0}.staff-card.admin-staff-card:hover{transform:translateY(-2px);box-shadow:0 24px 60px #00000029}.staff-card-image-wrap img{width:100%;height:200px;object-fit:cover;border-radius:16px}.staff-card-content h3{margin:0}@media (max-width: 1060px){.staff-grid.admin-staff-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width: 760px){.staff-grid.admin-staff-grid{grid-template-columns:1fr}}.staff-info-row{color:var(--muted);font-size:.93rem;margin-top:.35rem}.staff-card-actions{display:flex;gap:.75rem;flex-wrap:wrap}.status-message{margin-bottom:.9rem;padding:.9rem 1rem;border-radius:14px;background:#48bb7821;color:#dafbe3}.error-text{color:#f87171}.file-input-label{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1rem;border-radius:14px;background:#ffffff0d;border:1px dashed rgba(255,255,255,.18);cursor:pointer;color:#cbd5e1}.file-input-label input{display:none}.fade-in-scale{opacity:0;animation:fadeInScale .42s ease forwards}@keyframes fadeInScale{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.upload-card{padding:1rem;border-radius:22px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.upload-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px #0003;border-color:#72e3ff29}.upload-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.upload-card-title{font-size:1.05rem;font-weight:800;letter-spacing:-.02em}.upload-card-subtitle{color:var(--muted);font-size:.95rem}.upload-meta{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.85rem;align-items:center}.upload-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:999px;background:#72e3ff1f;color:#dbeafe;font-weight:600;font-size:.82rem}.upload-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;gap:.75rem;flex-wrap:wrap}.upload-count{color:#a5b2ff;font-size:.92rem}.upload-button{min-width:120px}.student-card{display:grid;gap:.75rem;padding:1rem;border-radius:18px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.student-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1rem;border-radius:16px;background:#ffffff05;transition:transform .14s ease,background .14s ease}.student-row:hover{transform:translateY(-2px);background:#ffffff0d}.student-info{display:grid;gap:.25rem}.student-name{font-weight:700}.student-meta{color:var(--muted);font-size:.9rem}.student-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.view-doc-btn{border:none;border-radius:999px;padding:.65rem 1rem;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#07111f;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.view-doc-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px #4f7cff2e}.preview-badge{display:inline-flex;gap:.35rem;padding:.4rem .75rem;border-radius:999px;background:#ffffff14;color:var(--text);font-size:.82rem}.view-link{color:#72e3ff;text-decoration:underline}.upload-summary{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;padding:1rem;border-radius:20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);margin-bottom:1rem}.upload-summary strong{color:#fff}.upload-summary .summary-pill{display:inline-flex;align-items:center;padding:.55rem .85rem;border-radius:999px;background:#72e3ff1f;color:#dbeafe;font-weight:600}.upload-modal{width:min(100%,680px)}.upload-modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.upload-modal-title{margin:0}.upload-input-row{display:grid;gap:.9rem}.upload-action-row{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.quick-actions{display:flex;flex-direction:column;gap:.6rem}.quick-actions button{display:inline-flex;align-items:center;gap:.6rem;padding:.65rem .9rem;border-radius:12px;border:none;background:#ffffff08;color:var(--text);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .18s ease}.quick-actions button:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0a142859;background:linear-gradient(90deg,#72e3ff0f,#4f7cff0f)}.quick-actions button svg{opacity:.95}.attendance-visual-panel,.attendance-report-panel{margin-top:1rem}.attendance-filter{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a;color:var(--text)}.attendance-filter input,.attendance-report-form input{color:var(--text);background:transparent;border:none;outline:none}.attendance-line-chart-wrap{overflow-x:auto}.attendance-line-chart{width:100%;min-width:680px;height:260px}.attendance-line-chart line{stroke:#ffffff29;stroke-width:1}.attendance-line-chart polyline{fill:none;stroke:#72e3ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.attendance-line-chart circle{fill:#07111f;stroke:#72e3ff;stroke-width:3}.attendance-chart-meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem;font-weight:700}.attendance-chart-meta span{display:inline-flex;align-items:center;gap:.4rem}.attendance-report-form{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr)) auto;gap:.85rem;align-items:end;margin-top:.8rem}.attendance-report-form label{display:grid;gap:.35rem;color:var(--muted);font-size:.84rem;font-weight:700}.attendance-report-form input{width:100%;padding:.85rem .95rem;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a}.attendance-report-error{padding:.8rem 1rem;border:1px solid rgba(248,113,113,.22);border-radius:12px;color:#f87171;background:#f8717114}.attendance-report-results{margin-top:1rem;max-height:520px;overflow-y:auto;padding-right:.35rem}.attendance-report-summary{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;border:1px solid rgba(114,227,255,.16);border-radius:14px;background:#72e3ff0f;color:var(--text);margin-bottom:.8rem}.attendance-report-summary span{color:var(--muted)}.attendance-report-room{border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;background:#ffffff06;margin-bottom:.85rem}.attendance-report-room h4{margin:0;padding:.75rem 1rem;background:#ffffff0a}.attendance-report-table{min-width:680px}.attendance-report-wide-table{width:100%;max-height:520px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff06}.attendance-report-wide-row{display:grid;min-width:max-content;border-top:1px solid rgba(255,255,255,.06);color:var(--text);font-size:.86rem}.attendance-report-wide-row:first-child{border-top:none}.attendance-report-wide-row>span{min-width:0;padding:.68rem .62rem;border-right:1px solid rgba(255,255,255,.06);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-report-wide-row>span:last-child{border-right:none}.attendance-report-wide-row.head{position:sticky;top:0;z-index:2;color:var(--muted);font-weight:800;background:#0e182df5}.attendance-report-wide-row.head>span{text-align:center}.attendance-mark{text-align:center;font-weight:800}.attendance-mark.present{color:#34d399;background:#34d39914}.attendance-mark.absent{color:#f87171;background:#f8717114}.attendance-total-cell{text-align:center;font-weight:800;color:#72e3ff}.attendance-report-row{display:grid;grid-template-columns:1.5fr 1.6fr 1.4fr .8fr .8fr;gap:.8rem;padding:.72rem 1rem;border-top:1px solid rgba(255,255,255,.06);color:var(--text);font-size:.9rem}.attendance-report-row.head{color:var(--muted);font-weight:800;background:#ffffff08}@media (max-width: 760px){.attendance-report-form{grid-template-columns:1fr}}.nb-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#060b16bf}.nb-modal{width:min(100%,640px);background:#060b16fa;border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 90px #00000073;border-radius:28px;overflow:hidden;padding:1.5rem}.nb-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.nb-modal-header h3{margin:0;font-size:1.35rem;letter-spacing:-.03em}.nb-modal form{display:grid;gap:1rem}.nb-modal textarea,.nb-modal input[type=text]{width:100%;color:var(--text)}.nb-modal .profile-field input,.nb-modal textarea{border-color:#ffffff14;background:#ffffff08}.nb-modal .secondary-btn,.nb-modal .primary-btn{min-width:140px}.nb-modal .secondary-btn{background:#ffffff14}.nb-modal .primary-btn{box-shadow:0 12px 28px #4f7cff2e}@media (max-width: 760px){.admin-main,.dashboard-main,.panel-card,.dashboard-topbar,.table-card,.user-list-card{min-width:0;max-width:100%}.stats-grid,.dashboard-grid,.admin-form-grid,.attendance-stats,.profile-form-grid{grid-template-columns:1fr!important}.dashboard-topbar,.panel-head,.upload-card-header,.attendance-head,.leave-modal-header,.upload-modal-header{min-width:0}.dashboard-topbar>*,.panel-head>*,.topbar-actions,.nb-search-row,.attendance-filter,.upload-summary,.student-row{min-width:0;max-width:100%}.dashboard-topbar h2,.panel-card h2,.panel-card h3,.panel-card h4,.upload-card-title,.student-name,.student-meta{overflow-wrap:anywhere}.table-wrapper,.attendance-line-chart-wrap,.attendance-report-wide-table,.attendance-report-room{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrapper table,.user-table,.attendance-report-table{min-width:720px}.attendance-report-wide-row{min-width:max-content}.profile-field input,.profile-field select,.table-search,.attendance-report-form input,.attendance-filter input{min-width:0}}@media (max-width: 480px){.dashboard-topbar,.panel-card,.user-list-card{padding:.8rem}.sidebar-nav a,.sidebar-logout{gap:.4rem}.table-wrapper table,.user-table,.attendance-report-table{min-width:640px}.attendance-line-chart{min-width:420px}}.hostelnexus-page-container{padding:1.5rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#0f172a;background-color:#f8fafc;min-height:calc(100vh - 70px)}.hostelnexus-hero-card{background:linear-gradient(135deg,#1e1b4b,#312e81 40%,#4338ca);color:#fff;border-radius:16px;padding:1.75rem 2rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;box-shadow:0 10px 25px -5px #312e814d}.hero-left{display:flex;align-items:center;gap:1.25rem}.hero-icon{width:52px;height:52px;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;color:#e0e7ff}.hero-left h2{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.hero-left p{margin:.25rem 0 0;color:#c7d2fe;font-size:.9rem}.hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.connection-badge{display:flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border-radius:20px;font-size:.8rem;font-weight:600}.connection-badge.online{background:#10b98133;border:1px solid rgba(16,185,129,.4);color:#34d399}.connection-badge.offline{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#f87171}.connection-badge .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.endpoint-tag{font-family:monospace;font-size:.78rem;background:#00000040;padding:.2rem .6rem;border-radius:6px;color:#a5b4fc}.hostelnexus-grid{display:grid;grid-template-columns:1fr 340px;gap:1.5rem}@media (max-width: 1024px){.hostelnexus-grid{grid-template-columns:1fr}}.chat-hub-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;display:flex;flex-direction:column;height:600px;box-shadow:0 4px 12px #0f172a08;overflow:hidden}.chat-hub-header{padding:1rem 1.5rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.chat-hub-header h3{margin:0;font-size:1rem;font-weight:600;color:#1e293b}.live-indicator{font-size:.75rem;color:#10b981;font-weight:600}.chat-messages-area{flex:1;padding:1.25rem 1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;background:#fff}.chat-bubble-row{display:flex;gap:.75rem;max-width:85%}.chat-bubble-row.user{align-self:flex-end;flex-direction:row-reverse}.chat-bubble-row.bot{align-self:flex-start}.bot-bubble-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#4338ca);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}.bubble-body{background:#f1f5f9;padding:.85rem 1.15rem;border-radius:14px;color:#1e293b;font-size:.92rem;line-height:1.5}.chat-bubble-row.user .bubble-body{background:#4f46e5;color:#fff;border-bottom-right-radius:2px}.chat-bubble-row.bot .bubble-body{border-bottom-left-radius:2px;background:#f8fafc;border:1px solid #e2e8f0}.bubble-text{white-space:pre-wrap;word-break:break-word}.bubble-footer{margin-top:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.72rem}.badge-source{padding:.15rem .45rem;border-radius:4px;font-weight:600}.badge-source.groq{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.badge-source.local{background:#fef3c7;color:#d97706;border:1px solid #fde68a}.bubble-time{color:#94a3b8}.typing-dots{display:flex;align-items:center;gap:4px;padding:.85rem 1.15rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px}.typing-dots span{width:6px;height:6px;background:#6366f1;border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-dots span:nth-child(1){animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-input-bar{padding:1rem 1.25rem;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:.75rem}.chat-input-bar input{flex:1;padding:.75rem 1rem;border:1px solid #cbd5e1;border-radius:10px;font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s}.chat-input-bar input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.send-btn{padding:.75rem 1.25rem;background:#4f46e5;color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .2s}.send-btn:hover:not(:disabled){background:#4338ca}.send-btn:disabled{opacity:.6;cursor:not-allowed}.side-panel-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:1.25rem;box-shadow:0 4px 12px #0f172a08}.side-header h4{margin:0;font-size:.95rem;color:#0f172a}.side-header p{margin:.25rem 0 1rem;font-size:.8rem;color:#64748b}.prompt-cards-list{display:flex;flex-direction:column;gap:.65rem}.prompt-card-item{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s ease}.prompt-card-item:hover{background:#eff6ff;border-color:#bfdbfe;transform:translate(3px)}.card-icon{font-size:1.2rem}.card-info{flex:1;display:flex;flex-direction:column}.card-info strong{font-size:.82rem;color:#1e293b}.card-info small{font-size:.74rem;color:#64748b}.card-arrow{font-size:.85rem;color:#94a3b8}
