.login-card[data-v-1c874dc8]{width:400px;max-width:90vw;border-radius:16px}.card-header[data-v-1c874dc8]{text-align:center}.card-title[data-v-1c874dc8]{font-size:1.5rem;font-weight:700;color:#4f46e5;margin-bottom:.25rem}.card-subtitle[data-v-1c874dc8]{font-size:.875rem;color:#6b7280}.error-alert[data-v-1c874dc8]{margin-bottom:1rem}.auth-form[data-v-1c874dc8]{padding-top:1rem}.google-btn[data-v-1c874dc8]{display:flex;align-items:center;justify-content:center;gap:.5rem}.google-icon[data-v-1c874dc8]{flex-shrink:0}[data-v-1c874dc8] .n-tabs-tab{font-weight:500}[data-v-1c874dc8] .n-divider{margin:1.5rem 0}[data-v-1c874dc8] .n-divider__title{color:#9ca3af;font-size:.75rem}.app-header[data-v-5bcac173]{position:sticky;top:0;z-index:100;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);transition:all .25s ease}.dark .app-header[data-v-5bcac173]{background:#0a0a0af2}.header-content[data-v-5bcac173]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:64px}.logo[data-v-5bcac173]{display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:opacity .15s ease;min-width:0}.logo[data-v-5bcac173]:hover{opacity:.8}.logo-icon[data-v-5bcac173]{width:56px;height:56px;flex-shrink:0;border-radius:14px;object-fit:cover}.logo-text[data-v-5bcac173]{font-size:1.25rem;font-weight:700;color:var(--text-primary);transition:opacity .4s ease,transform .4s ease;display:inline-block;white-space:nowrap}.logo-text.logo-fade[data-v-5bcac173]{opacity:0;transform:translateY(-4px)}.header-nav[data-v-5bcac173]{display:flex;align-items:center;justify-content:center;gap:.25rem}.header-right[data-v-5bcac173]{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.nav-link[data-v-5bcac173]{font-size:1rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding:.375rem .75rem;border-radius:6px;transition:all .15s;white-space:nowrap}.nav-link[data-v-5bcac173]:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link--active[data-v-5bcac173]{color:var(--text-primary);font-weight:600;background:var(--bg-hover)}@media(max-width:640px){.nav-link[data-v-5bcac173]{font-size:.9375rem;padding:.25rem .5rem}}.nav-badge[data-v-5bcac173]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;font-size:.6875rem;font-weight:700;line-height:1;color:#fff;background:#ef4444;border-radius:9px;vertical-align:middle}.theme-toggle-btn[data-v-5bcac173]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#4f46e51a;color:#4f46e5;cursor:pointer;transition:all .15s}.theme-toggle-btn[data-v-5bcac173]:hover{background:#4f46e533}.dark .theme-toggle-btn[data-v-5bcac173]{background:#4f46e526;color:#a5b4fc}.dark .theme-toggle-btn[data-v-5bcac173]:hover{background:#4f46e540}.attendance-btn[data-v-5bcac173]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#4f46e51a;color:#4f46e5;cursor:pointer;transition:all .15s}.attendance-btn[data-v-5bcac173]:hover{background:#4f46e533}.dark .attendance-btn[data-v-5bcac173]{background:#4f46e526;color:#a5b4fc}.dark .attendance-btn[data-v-5bcac173]:hover{background:#4f46e540}.header-search-icon-wrap[data-v-5bcac173]{position:relative}.search-toggle-btn[data-v-5bcac173]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#4f46e51a;color:#4f46e5;cursor:pointer;transition:all .15s}.search-toggle-btn[data-v-5bcac173]:hover{background:#4f46e533}.dark .search-toggle-btn[data-v-5bcac173]{background:#4f46e526;color:#a5b4fc}.dark .search-toggle-btn[data-v-5bcac173]:hover{background:#4f46e540}.search-popup[data-v-5bcac173]{position:absolute;top:calc(100% + 8px);right:0;width:280px;padding:.5rem;background:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:200;animation:search-popup-in-5bcac173 .15s ease-out}.dark .search-popup[data-v-5bcac173]{background:#1a1a1a;border-color:#ffffff1a;box-shadow:0 8px 24px #0006}@keyframes search-popup-in-5bcac173{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.search-wrapper[data-v-5bcac173]{position:relative;display:flex;align-items:center}.search-icon[data-v-5bcac173]{position:absolute;left:10px;color:var(--text-muted);pointer-events:none}.search-input[data-v-5bcac173]{width:100%;height:34px;padding:0 .75rem 0 2rem;font-size:.8125rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-primary);outline:none;transition:all .2s ease}.search-input[data-v-5bcac173]::placeholder{color:var(--text-muted);font-size:.75rem}.search-input[data-v-5bcac173]:focus{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.dark .search-input[data-v-5bcac173]{background:#ffffff0f;border-color:#ffffff1a}.search-dropdown[data-v-5bcac173]{margin-top:.25rem;border-top:1px solid var(--border-color);max-height:360px;overflow-y:auto}.dark .search-dropdown[data-v-5bcac173]{border-color:#ffffff14}.search-result[data-v-5bcac173]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;border-radius:6px;transition:background .1s ease}.search-result[data-v-5bcac173]:hover{background:#4f46e50f}.dark .search-result[data-v-5bcac173]:hover{background:#ffffff0f}.search-result__type-badge[data-v-5bcac173]{flex-shrink:0;font-size:.625rem;font-weight:700;padding:1px 5px;border-radius:3px;line-height:1.4}.search-result__type-badge.bj[data-v-5bcac173]{background:#4f46e526;color:#4f46e5}.dark .search-result__type-badge.bj[data-v-5bcac173]{background:#8178ff33;color:#a5a0ff}.search-result__type-badge.donor[data-v-5bcac173]{background:#eab30826;color:#b45309}.dark .search-result__type-badge.donor[data-v-5bcac173]{background:#eab30833;color:#fbbf24}.search-result__name[data-v-5bcac173]{flex:1;font-size:.8125rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result__name[data-v-5bcac173] mark{background:#4f46e540;color:inherit;border-radius:2px;padding:0 1px}.search-result__id[data-v-5bcac173]{flex-shrink:0;font-size:.6875rem;color:var(--text-muted);opacity:.6}.auth-area[data-v-5bcac173]{display:flex;align-items:center;gap:.5rem}.user-info[data-v-5bcac173]{display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:opacity .15s ease}.user-info[data-v-5bcac173]:hover{opacity:.8}.points-badge[data-v-5bcac173]{font-size:.75rem;font-weight:600;color:#4f46e5;background:#4f46e51a;padding:.25rem .625rem;border-radius:10px;white-space:nowrap;cursor:pointer;transition:background .15s}.points-badge[data-v-5bcac173]:hover{background:#4f46e533}.dark .points-badge[data-v-5bcac173]{color:#a5b4fc;background:#4f46e533}.default-avatar[data-v-5bcac173]{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:600;font-size:.875rem}.mobile-logo-btn[data-v-5bcac173]{display:none;align-items:center;justify-content:center;width:48px;height:48px;border:none;border-radius:14px;background:transparent;cursor:pointer;padding:0;transition:opacity .15s}.mobile-logo-btn[data-v-5bcac173]:hover{opacity:.8}.mobile-logo-btn__img[data-v-5bcac173]{width:28px;height:28px;border-radius:7px;object-fit:cover}.mobile-menu-overlay[data-v-5bcac173]{position:fixed;inset:64px 0 0;background:#0006;z-index:99}.mobile-menu[data-v-5bcac173]{display:flex;flex-direction:column;background:#fff;border-bottom:1px solid var(--border-color);padding:.5rem 0;box-shadow:0 8px 24px #0000001a}.dark .mobile-menu[data-v-5bcac173]{background:#111;border-color:#ffffff14;box-shadow:0 8px 24px #0006}.mobile-nav-link[data-v-5bcac173]{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1.0625rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all .15s}.mobile-nav-link[data-v-5bcac173]:hover,.mobile-nav-link--active[data-v-5bcac173]{color:var(--text-primary);background:var(--bg-hover);font-weight:600}.mobile-nav-link--active[data-v-5bcac173]{border-left:3px solid #4F46E5;padding-left:calc(1.5rem - 3px)}.mobile-menu-enter-active[data-v-5bcac173],.mobile-menu-leave-active[data-v-5bcac173]{transition:opacity .2s ease}.mobile-menu-enter-active .mobile-menu[data-v-5bcac173],.mobile-menu-leave-active .mobile-menu[data-v-5bcac173]{transition:transform .2s ease}.mobile-menu-enter-from[data-v-5bcac173],.mobile-menu-leave-to[data-v-5bcac173]{opacity:0}.mobile-menu-enter-from .mobile-menu[data-v-5bcac173],.mobile-menu-leave-to .mobile-menu[data-v-5bcac173]{transform:translateY(-8px)}@media(max-width:768px){.header-content[data-v-5bcac173]{grid-template-columns:auto 1fr auto;height:56px;padding:0}.app-header .container[data-v-5bcac173]{padding:0 .5rem}.header-nav--desktop[data-v-5bcac173]{display:none}.mobile-logo-btn[data-v-5bcac173]{display:flex;order:-1}.logo[data-v-5bcac173]{justify-content:flex-start}.logo-icon[data-v-5bcac173]{display:none}.logo-text[data-v-5bcac173]{font-size:.9375rem}.header-right[data-v-5bcac173]{gap:.25rem}.header-actions .n-space[data-v-5bcac173]{gap:6px!important}.search-toggle-btn[data-v-5bcac173],.theme-toggle-btn[data-v-5bcac173],.attendance-btn[data-v-5bcac173]{width:28px;height:28px}.points-badge[data-v-5bcac173]{padding:.2rem .5rem;font-size:.6875rem}.search-popup[data-v-5bcac173]{position:fixed;top:56px;left:.5rem;right:.5rem;width:auto}.mobile-menu-overlay[data-v-5bcac173]{top:56px}}.app-footer[data-v-5bcd2467]{background:var(--bg-primary);border-top:1px solid var(--border-color);padding:2rem 0;margin-top:auto;transition:background-color .25s ease,border-color .25s ease}.footer-content[data-v-5bcd2467]{display:flex;flex-direction:column;gap:1.5rem}@media(min-width:768px){.footer-content[data-v-5bcd2467]{flex-direction:row;justify-content:space-between;align-items:flex-start}}.footer-left[data-v-5bcd2467]{display:flex;flex-direction:column;gap:.75rem}.footer-brand[data-v-5bcd2467]{display:flex;align-items:center;gap:.5rem}.footer-tagline[data-v-5bcd2467]{font-size:.75rem;color:var(--text-muted);opacity:.7;margin-left:.25rem;letter-spacing:.5px}.logo-icon[data-v-5bcd2467]{width:48px;height:48px;border-radius:12px;object-fit:cover}.logo-text[data-v-5bcd2467]{font-size:1rem;font-weight:600;color:var(--text-primary)}.footer-business p[data-v-5bcd2467]{font-size:.75rem;color:var(--text-muted);line-height:1.7;margin:0;word-break:keep-all}@media(max-width:480px){.app-footer[data-v-5bcd2467]{padding:1.5rem 0}.footer-business p[data-v-5bcd2467]{font-size:.6875rem}.footer-links[data-v-5bcd2467]{gap:1rem}.footer-link[data-v-5bcd2467]{font-size:.8125rem}}.footer-right[data-v-5bcd2467]{display:flex;flex-direction:column;gap:.75rem}@media(min-width:768px){.footer-right[data-v-5bcd2467]{align-items:flex-end;text-align:right}}.footer-links[data-v-5bcd2467]{display:flex;gap:1.5rem}.footer-link[data-v-5bcd2467]{font-size:.875rem;color:var(--text-muted);transition:color .15s ease}.footer-link[data-v-5bcd2467]:hover{color:#4f46e5}.footer-link.active[data-v-5bcd2467]{font-weight:600;color:var(--text-secondary)}.dark .footer-link[data-v-5bcd2467]:hover{color:#818cf8}.footer-copyright[data-v-5bcd2467]{font-size:.75rem;color:var(--text-muted)}:root{--bg-primary: #F9FAFB;--bg-secondary: #F3F4F6;--bg-tertiary: #E5E7EB;--bg-card: #ffffff;--bg-card-hover: #ffffff;--bg-hover: #F3F4F6;--text-primary: #111827;--text-secondary: #374151;--text-muted: #6B7280;--text-light: #9CA3AF;--border-color: #E5E7EB;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-md: 0 10px 20px -5px rgb(0 0 0 / .15)}.dark{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1f1f1f;--bg-card: #141414;--bg-card-hover: #1f1f1f;--bg-hover: #1f1f1f;--text-primary: #F9FAFB;--text-secondary: #E5E7EB;--text-muted: #9CA3AF;--text-light: #6B7280;--border-color: #2a2a2a;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .3);--shadow-md: 0 10px 20px -5px rgb(0 0 0 / .4)}#app-wrapper{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .25s ease,color .25s ease}.main-content{flex:1}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f9fafb;color:#111827;min-height:100vh;transition:background-color .25s ease,color .25s ease}.dark body{background-color:#111827;color:#f3f4f6}a{color:#4f46e5;text-decoration:none;transition:color .15s ease}a:hover{color:#3730a3}img{max-width:100%;height:auto}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media(min-width:640px){.container{padding:0 1.5rem}}@media(min-width:1024px){.container{padding:0 2rem}}#app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding:1.5rem 0}@media(min-width:768px){.main-content{padding:2rem 0}}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.dark .card{background:#1f2937}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:500;border-radius:9999px;background:#f3f4f6;color:#374151}.badge--live{background:#ef4444;color:#fff;animation:pulse 2s infinite}.badge--primary{background:#4f46e5;color:#fff}.dark .badge{background:#374151;color:#d1d5db}.dark .badge--live{background:#ef4444;color:#fff}.dark .badge--primary{background:#4f46e5;color:#fff}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.rank-badge{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-size:.875rem;font-weight:700;border-radius:50%;background:#e5e7eb;color:#374151}.rank-badge--1{background:linear-gradient(135deg,gold,orange);color:#fff;box-shadow:0 2px 8px #ffd70066}.rank-badge--2{background:linear-gradient(135deg,silver,#a8a8a8);color:#fff;box-shadow:0 2px 8px #c0c0c066}.rank-badge--3{background:linear-gradient(135deg,#cd7f32,sienna);color:#fff;box-shadow:0 2px 8px #cd7f3266}.dark .rank-badge{background:#4b5563;color:#d1d5db}.text-primary{color:#4f46e5}.text-muted{color:#6b7280}.dark .text-muted{color:#9ca3af}.text-success{color:#10b981}.text-warning{color:#f59e0b}.text-error{color:#ef4444}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.rounded{border-radius:8px}.rounded-lg{border-radius:12px}.rounded-full{border-radius:9999px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all .25s ease}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(20px)}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.dark .skeleton{background:linear-gradient(90deg,#374151 25%,#4b5563,#374151 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.number{font-variant-numeric:tabular-nums}.grid{display:grid;gap:1rem}.grid--cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media(min-width:640px){.grid--sm-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:768px){.grid--md-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--md-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.grid--lg-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--lg-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
