@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);:root{--color-primary:#1e3a8a;--color-primary-light:#2563eb;--color-secondary:#4f46e5;--color-accent:#f0a92d;--color-accent-dark:#d9961e;--color-bg:#f0f4ff;--color-surface:#fff;--color-text:#0f172a;--color-muted:#64748b;--color-border:#e2e8f0;--color-danger:#ef4444;--color-success:#10b981;--color-warning:#f59e0b;--sidebar-width:260px;--topbar-height:64px;--shadow-sm:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.06);--shadow-md:0 4px 12px rgba(15,23,42,.1),0 2px 6px rgba(15,23,42,.06);--shadow-lg:0 10px 30px rgba(15,23,42,.12),0 4px 12px rgba(15,23,42,.08);--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--transition:0.2s cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box}body{background-color:var(--color-bg);color:var(--color-text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:.9375rem;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.text-primary{color:var(--color-primary)!important}.text-secondary{color:var(--color-secondary)!important}.text-accent{color:var(--color-accent)!important}.bg-primary{background-color:var(--color-primary)!important}.bg-secondary{background-color:var(--color-secondary)!important}.btn{font-weight:500;letter-spacing:.01em;border-radius:var(--radius-sm);transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition),opacity var(--transition)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(30,58,138,.3)}.btn-primary:focus,.btn-primary:hover{background:linear-gradient(135deg,#1a3278 0,var(--color-primary) 100%);border-color:transparent;box-shadow:0 4px 14px rgba(30,58,138,.4);color:#fff;transform:translateY(-1px)}.btn-accent{background:linear-gradient(135deg,var(--color-accent) 0,#f7bf57 100%);box-shadow:0 2px 8px rgba(240,169,45,.3);font-weight:600}.btn-accent,.btn-accent:hover{border-color:transparent;color:#fff}.btn-accent:hover{background:linear-gradient(135deg,var(--color-accent-dark) 0,var(--color-accent) 100%);box-shadow:0 4px 14px rgba(240,169,45,.4);transform:translateY(-1px)}.btn-outline-primary{color:var(--color-primary);border-color:var(--color-primary)}.btn-outline-primary:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-outline-danger{border-radius:var(--radius-sm)}.dashboard-wrapper{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);height:100vh;background:linear-gradient(180deg,#0f2564,#1e3a8a 60%,#1a357e);color:#fff;flex-shrink:0;position:fixed;top:0;left:0;overflow:hidden;z-index:100;display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 24px rgba(15,37,100,.18)}.sidebar-brand{padding:1.35rem 1.5rem 1.1rem;border-bottom:1px solid hsla(0,0%,100%,.1);flex-shrink:0}.sidebar-brand-name{font-size:1.05rem;font-weight:800;letter-spacing:-.2px;color:#fff}.sidebar-org{font-size:.75rem;margin-top:.25rem;color:hsla(0,0%,100%,.55);font-weight:500;letter-spacing:.02em}.sidebar-nav{flex:1;padding:.75rem 0 1.5rem;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.2) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:4px}.sidebar-nav .nav-link{color:hsla(0,0%,100%,.72);padding:.6rem 1.5rem;display:flex;align-items:center;gap:.75rem;border-radius:0;transition:background var(--transition),color var(--transition),border-color var(--transition);font-size:.875rem;font-weight:500;border-left:3px solid transparent;position:relative}.sidebar-nav .nav-link i{font-size:1rem;flex-shrink:0;width:18px;text-align:center}.sidebar-nav .nav-link:hover{background:hsla(0,0%,100%,.08);color:#fff;border-left-color:hsla(0,0%,100%,.4)}.sidebar-nav .nav-link.router-link-active,.sidebar-nav .nav-link.router-link-exact-active{background:hsla(0,0%,100%,.14);color:#fff;border-left-color:var(--color-accent);font-weight:600}.sidebar-nav .nav-link.router-link-active i,.sidebar-nav .nav-link.router-link-exact-active i{color:var(--color-accent)}.sidebar-section-label{padding:.9rem 1.5rem .35rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:hsla(0,0%,100%,.35)}.main-content{margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column;min-height:100vh;min-width:0;overflow-x:hidden}.topbar{height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 1.5rem;position:sticky;top:0;z-index:99;box-shadow:0 1px 0 rgba(15,23,42,.06);gap:.75rem}.topbar-brand{font-size:.95rem;font-weight:700;color:var(--color-primary);letter-spacing:-.2px}.topbar-user-name{font-size:.85rem;font-weight:500;color:var(--color-text)}.topbar-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px rgba(79,70,229,.25)}.page-content{padding:1.75rem;flex:1;min-width:0;overflow-x:hidden}.page-header{margin-bottom:1.5rem}.page-header h3,.page-header h4{font-weight:700;color:var(--color-text);letter-spacing:-.3px;margin-bottom:.2rem}.page-header .page-sub{color:var(--color-muted);font-size:.875rem}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.35rem 1.5rem;box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8);transition:transform var(--transition),box-shadow var(--transition);position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.stat-card .stat-label{font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted)}.stat-card .stat-value{font-size:2rem;font-weight:800;color:var(--color-primary);line-height:1.1;margin:.35rem 0 0;letter-spacing:-1px}.stat-card .stat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.stat-icon-blue{background:rgba(30,58,138,.1);color:var(--color-primary)}.stat-icon-indigo{background:rgba(79,70,229,.1);color:var(--color-secondary)}.stat-icon-amber{background:rgba(240,169,45,.15);color:#b45309}.stat-icon-green{background:rgba(16,185,129,.1);color:var(--color-success)}.stat-icon-red{background:rgba(239,68,68,.1);color:var(--color-danger)}.form-card{padding:2rem}.form-card,.table-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8)}.table-card{overflow:hidden}.table-card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.table-card-header h6{font-weight:700;font-size:.875rem;color:var(--color-text);margin:0;letter-spacing:-.1px}.table{margin-bottom:0;font-size:.875rem}.table thead th{background:#f8fafc;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:.75rem 1rem;white-space:nowrap}.table tbody td{padding:.7rem 1rem;vertical-align:middle;border-bottom:1px solid #f1f5f9;color:var(--color-text)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#f8faff}.badge{font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:.3em .65em;border-radius:5px}.form-control,.form-select{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);color:var(--color-text);background:#fafbff}.form-control:focus,.form-select:focus{border-color:var(--color-secondary);box-shadow:0 0 0 3px rgba(79,70,229,.1);background:#fff;outline:none}.form-label{font-size:.84rem;font-weight:600;color:#374151;margin-bottom:.4rem}.dashboard-footer{text-align:center;padding:1rem 1.5rem;font-size:.78rem;color:var(--color-muted);border-top:1px solid var(--color-border);background:var(--color-surface)}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}.toast-item{min-width:280px;max-width:380px;padding:.85rem 1.1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.6rem;animation:toastIn .25s cubic-bezier(.34,1.56,.64,1);border-left:4px solid}.toast-item.success{background:#f0fdf4;color:#166534;border-left-color:var(--color-success)}.toast-item.error{background:#fef2f2;color:#991b1b;border-left-color:var(--color-danger)}.toast-item.info{background:#eff6ff;color:#1e40af;border-left-color:var(--color-primary-light)}.toast-item.warn{background:#fffbeb;color:#92400e;border-left-color:var(--color-warning)}@keyframes toastIn{0%{opacity:0;transform:translateX(1rem) scale(.95)}to{opacity:1;transform:translateX(0) scale(1)}}.auth-page{min-height:100vh;display:flex}.auth-brand-panel{width:44%;background:linear-gradient(150deg,#0f2564 0,var(--color-primary) 40%,var(--color-secondary) 100%);position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:3rem 2.5rem;flex-shrink:0}.auth-brand-content{position:relative;z-index:2;text-align:center;color:#fff}.brand-logo-wrap{width:88px;height:88px;background:hsla(0,0%,100%,.15);border-radius:22px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.75rem;backdrop-filter:blur(6px);border:1px solid hsla(0,0%,100%,.25);box-shadow:0 8px 32px rgba(0,0,0,.2)}.brand-logo{width:58px;height:58px;-o-object-fit:contain;object-fit:contain}.brand-name{font-size:2.1rem;font-weight:800;letter-spacing:-.5px;margin-bottom:1rem;line-height:1.1}.brand-tagline{font-size:.98rem;opacity:.82;line-height:1.7;max-width:300px;margin:0 auto 2rem}.brand-features{display:flex;flex-direction:column;gap:.75rem;text-align:left;max-width:240px;margin:0 auto}.brand-feature{display:flex;align-items:center;gap:.8rem;font-size:.875rem;opacity:.9;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);border-radius:var(--radius-sm);padding:.5rem .8rem;backdrop-filter:blur(4px)}.brand-feature-icon{font-size:1.1rem;flex-shrink:0}.brand-shape{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.06)}.brand-shape-1{width:400px;height:400px;top:-130px;right:-110px}.brand-shape-2{width:260px;height:260px;bottom:-70px;left:-70px;background:hsla(0,0%,100%,.05)}.brand-shape-3{width:140px;height:140px;bottom:28%;right:-25px;background:hsla(0,0%,100%,.04)}.auth-form-panel{flex:1;background:#fff;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;min-height:100vh}.auth-form-scroll{width:100%;max-width:440px}.auth-card{width:100%}.auth-heading{font-size:1.65rem;font-weight:800;color:var(--color-primary);letter-spacing:-.4px;margin-bottom:.35rem}.auth-sub{color:var(--color-muted);font-size:.9rem;margin-bottom:2rem}.auth-form-panel .form-control,.auth-form-panel .form-select{border:1.5px solid #e2e8f0;border-radius:var(--radius-sm);padding:.7rem .95rem;font-size:.9375rem;background:#fafbff;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);color:var(--color-text)}.auth-form-panel .form-control:focus,.auth-form-panel .form-select:focus{border-color:var(--color-secondary);box-shadow:0 0 0 3.5px rgba(79,70,229,.1);background:#fff;outline:none}.auth-form-panel .form-control.is-invalid{border-color:var(--color-danger);background:#fff}.auth-form-panel .form-label{font-size:.84rem;font-weight:600;color:#374151;margin-bottom:.4rem}.auth-form-panel .input-group .form-control{border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.auth-form-panel .input-group .btn-outline-secondary{border:1.5px solid #e2e8f0;border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#fafbff;color:var(--color-muted);transition:background var(--transition),color var(--transition);padding:0 .85rem}.auth-form-panel .input-group .btn-outline-secondary:hover{background:#f1f5f9;color:var(--color-primary)}.auth-form-panel .input-group:focus-within .btn-outline-secondary,.auth-form-panel .input-group:focus-within .form-control{border-color:var(--color-secondary)}.auth-form-panel .input-group:focus-within .btn-outline-secondary{box-shadow:none}.auth-btn{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);border:none;border-radius:var(--radius-sm);padding:.8rem;font-weight:700;font-size:.95rem;letter-spacing:.2px;color:#fff;width:100%;transition:opacity var(--transition),transform var(--transition),box-shadow var(--transition);box-shadow:0 4px 16px rgba(79,70,229,.35);cursor:pointer}.auth-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 22px rgba(79,70,229,.42)}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.auth-divider{border:none;border-top:1px solid #f1f5f9;margin:1.5rem 0}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--color-muted)}.auth-footer a{color:var(--color-secondary);font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-form-panel .alert{border-radius:var(--radius-sm);font-size:.875rem;padding:.7rem 1rem}.public-navbar{background:linear-gradient(90deg,#0f2564 0,var(--color-primary) 100%);box-shadow:0 2px 16px rgba(15,37,100,.25)}.public-navbar .navbar-brand{font-weight:800;font-size:1.15rem;letter-spacing:-.3px}.event-card{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8);transition:transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;height:100%}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.event-card .event-banner{height:180px;-o-object-fit:cover;object-fit:cover;width:100%}.event-card .event-banner-placeholder{height:130px;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center}.event-card-body{padding:1.1rem 1.25rem;display:flex;flex-direction:column;flex:1}.event-card-title{font-weight:700;font-size:.9375rem;margin-bottom:.5rem;color:var(--color-text);line-height:1.3}.event-card-meta{font-size:.8rem;color:var(--color-muted);display:flex;align-items:center;gap:.35rem;margin-bottom:.3rem}.feature-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:2rem 1.5rem;box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8);transition:transform var(--transition),box-shadow var(--transition);text-align:center}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.feature-card .feature-icon{font-size:2.2rem;margin-bottom:1rem;display:block}.feature-card h5{font-weight:700;margin-bottom:.5rem;color:var(--color-text)}.feature-card p{color:var(--color-muted);font-size:.875rem;line-height:1.6;margin:0}.hero-section{background:linear-gradient(135deg,#0f2564 0,var(--color-primary) 50%,var(--color-secondary) 100%);position:relative;overflow:hidden}.hero-section:before{width:500px;height:500px;top:-200px;right:-100px}.hero-section:after,.hero-section:before{content:"";position:absolute;border-radius:50%;background:hsla(0,0%,100%,.04);pointer-events:none}.hero-section:after{width:300px;height:300px;bottom:-100px;left:-50px}@media (max-width:800px){.auth-page{flex-direction:column;background:#fff}.auth-brand-panel{width:100%;height:auto;position:relative;overflow:hidden;padding:1.5rem 1.25rem;flex-direction:row;justify-content:flex-start;gap:1rem}.auth-brand-content{display:flex;align-items:center;gap:.9rem;text-align:left}.brand-logo-wrap{width:48px;height:48px;border-radius:12px;flex-shrink:0;margin:0}.brand-logo{width:30px;height:30px}.brand-name{font-size:1.3rem;margin-bottom:0}.brand-features,.brand-shape-1,.brand-shape-2,.brand-shape-3,.brand-tagline{display:none}.auth-form-panel{flex:1;min-height:auto;padding:2rem 1.25rem 3rem;align-items:flex-start}.auth-form-scroll{max-width:100%}.auth-heading{font-size:1.4rem}.auth-sub{margin-bottom:1.5rem}}@media (max-width:480px){.auth-brand-panel{padding:1.1rem 1rem}.brand-logo-wrap{width:40px;height:40px;border-radius:10px}.brand-logo{width:26px;height:26px}.brand-name{font-size:1.15rem}.auth-form-panel{padding:1.5rem 1rem 2.5rem}.auth-heading{font-size:1.25rem}.auth-form-panel .form-control,.auth-form-panel .form-select{padding:.75rem .9rem;font-size:1rem}.auth-form-panel .input-group .btn-outline-secondary{padding:0 .9rem}.auth-btn{padding:.85rem;font-size:1rem}.auth-form-panel .d-flex.justify-content-between{flex-wrap:wrap;gap:.5rem}}.sidebar-close-btn{filter:brightness(0) invert(1);opacity:.8}.sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99;backdrop-filter:blur(2px)}.sidebar-toggle{color:var(--color-primary);border-color:#e2e8f0;padding:.28rem .6rem;line-height:1;border-radius:var(--radius-sm);background:#f8fafc}.sidebar-toggle:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (max-width:991.98px){.sidebar{transform:translateX(-100%);z-index:200}.sidebar.sidebar-open{transform:translateX(0)}.main-content{margin-left:0}.page-content{padding:1.1rem}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-card{overflow:hidden;min-width:0}.stat-card{padding:1rem 1.1rem}}@media (max-width:575.98px){.page-content{padding:.75rem}.modal-dialog{margin:.5rem}.table td .btn{font-size:.78rem;padding:.2rem .45rem}.topbar{padding:0 .75rem}.form-card{padding:1.25rem}}