@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";.layout{background:var(--bg-gradient);max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.sidebar{background:var(--gradient-sidebar);color:#fff;z-index:100;width:270px;transition:width var(--transition), transform var(--transition);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;box-shadow:4px 0 24px #00000026}.sidebar.collapsed{width:76px}.sidebar-header{border-bottom:1px solid var(--border-sidebar);justify-content:space-between;align-items:center;min-height:72px;padding:18px 16px;display:flex}.sidebar-brand{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.brand-logo{border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.3rem;display:flex;box-shadow:0 4px 12px #7c3aed66}.brand-text{flex-direction:column;display:flex;overflow:hidden}.brand-name{color:#fff;letter-spacing:-.5px;white-space:nowrap;font-size:1.15rem;font-weight:800}.brand-sub{color:#fff6;text-transform:uppercase;letter-spacing:1px;white-space:nowrap;font-size:.68rem;font-weight:500}.close-btn{color:#fff;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;border-radius:6px;padding:4px;font-size:1.4rem;display:none}.close-btn:hover{background:#ffffff1a}.sidebar-search{border-radius:var(--radius-sm);transition:border-color var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff0f;align-items:center;gap:8px;margin:12px 14px 8px;padding:8px 12px;display:flex}.sidebar-search:focus-within{background:#7c3aed14;border-color:#7c3aed80}.sidebar-search .search-icon{color:#ffffff4d;flex-shrink:0;font-size:.95rem}.sidebar-search input{color:#fff;background:0 0;border:none;outline:none;width:100%;font-size:.83rem}.sidebar-search input::placeholder{color:#ffffff4d}.collapse-btn{color:#a2a3b7;cursor:pointer;z-index:101;width:24px;height:24px;transition:all var(--transition-fast);background:#1a1a2e;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;top:82px;right:-12px}.collapse-btn:hover{color:#fff;background:var(--primary);border-color:var(--primary)}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex:1;padding:4px 0;overflow:hidden auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.nav-section{margin-bottom:2px}.nav-section-toggle{cursor:pointer;color:#ffffff4d;width:100%;transition:color var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 22px 6px;display:flex}.nav-section-toggle:hover{color:#ffffff80}.nav-section-title{text-transform:uppercase;letter-spacing:1.2px;white-space:nowrap;font-size:.65rem;font-weight:600;overflow:hidden}.section-chevron{transition:transform var(--transition-fast);opacity:.5;font-size:.75rem}.nav-section-toggle.expanded .section-chevron{transform:rotate(180deg)}.sidebar.collapsed .nav-section-toggle{opacity:0;height:0;margin:0;padding:0;overflow:hidden}.nav-item{color:var(--text-sidebar);transition:all var(--transition-fast);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:12px;margin:1px 10px;padding:10px 20px;font-size:.88rem;font-weight:450;text-decoration:none;display:flex;position:relative;overflow:hidden}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:linear-gradient(135deg,#7c3aed40,#ec48991f);box-shadow:inset 0 0 0 1px #7c3aed4d}.nav-item.active .nav-icon{color:var(--accent)}.nav-item.active:before{content:"";background:var(--gradient-primary);border-radius:0 3px 3px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-icon{transition:color var(--transition-fast);flex-shrink:0;font-size:1.18rem}.nav-label{transition:opacity var(--transition-fast);flex:1}.sidebar.collapsed .nav-label{opacity:0;width:0}.sidebar.collapsed .nav-item{justify-content:center;margin:1px 8px;padding:10px}.nav-badge{border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;padding:2px 7px;font-size:.65rem;font-weight:700}.nav-badge-pending{color:#f59e0b;background:#f59e0b33;border:1px solid #f59e0b4d}.nav-badge-live{color:#ef4444;background:#ef444433;border:1px solid #ef44444d;animation:2s infinite pulse-glow}.nav-badge-open{color:#3b82f6;background:#3b82f633;border:1px solid #3b82f64d}.sidebar-footer{border-top:1px solid var(--border-sidebar);padding:14px}.admin-card{border-radius:var(--radius-md);background:#ffffff0a;align-items:center;gap:10px;min-width:0;margin-bottom:10px;padding:8px;display:flex;overflow:hidden}.sidebar.collapsed .admin-card{justify-content:center;padding:8px 4px}.admin-avatar{border-radius:var(--radius-sm);background:var(--gradient-primary);color:#fff;letter-spacing:.5px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.78rem;font-weight:700;display:flex}.admin-info{transition:opacity var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed .admin-info{opacity:0;width:0}.admin-name{color:#e4e4ed;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.admin-email{color:#6b6d85;white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.logout-btn{color:#8b8ca7;border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:all var(--transition-fast);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff14;justify-content:center;align-items:center;gap:8px;padding:9px 14px;font-size:.82rem;display:flex;overflow:hidden}.logout-btn:hover{color:#fff;background:#ef444426;border-color:#ef44444d}.sidebar.collapsed .logout-btn .nav-label{opacity:0;width:0}.main-content{min-width:0;max-width:calc(100vw - 270px);min-height:100vh;transition:margin-left var(--transition);flex-direction:column;flex:1;margin-left:270px;display:flex;overflow-x:hidden}.sidebar-collapsed .main-content{max-width:calc(100vw - 76px);margin-left:76px}.topbar{background:var(--bg-topbar);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);z-index:50;align-items:center;gap:14px;height:64px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000a}.menu-btn{cursor:pointer;color:var(--text-primary);border-radius:var(--radius-sm);transition:background var(--transition-fast);background:0 0;border:none;padding:4px;font-size:1.5rem;display:none}.menu-btn:hover{background:var(--bg-hover)}.topbar-title{color:var(--text-primary);letter-spacing:-.2px;white-space:nowrap;font-size:1.15rem;font-weight:700}.topbar-search{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);width:280px;transition:all var(--transition-fast);align-items:center;gap:8px;margin-left:16px;padding:8px 14px;display:flex}.topbar-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #7c3aed1a}.topbar-search-icon{color:var(--text-tertiary);flex-shrink:0;font-size:.95rem}.topbar-search input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.topbar-search input::placeholder{color:var(--text-tertiary)}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-icon-btn{background:var(--bg-input);border-radius:var(--radius-sm);cursor:pointer;width:38px;height:38px;color:var(--text-secondary);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:1.15rem;display:flex;position:relative}.topbar-icon-btn:hover{color:var(--primary);background:#7c3aed14}.topbar-icon-btn.has-badge .notif-badge{background:var(--danger);color:#fff;border:2px solid var(--bg-card);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.65rem;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px}.topbar-notif-wrapper{position:relative}.notif-dropdown{border-radius:var(--radius-lg);width:340px;box-shadow:var(--shadow-lg);z-index:200;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-header{border-bottom:1px solid var(--border-color);color:var(--text-primary);justify-content:space-between;align-items:center;padding:14px 18px;font-size:.9rem;font-weight:700;display:flex}.notif-clear{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:.78rem;font-weight:500}.notif-list{max-height:320px;overflow-y:auto}.notif-item{transition:background var(--transition-fast);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 18px;display:flex}.notif-item:hover{background:var(--bg-hover)}.notif-item p{color:var(--text-primary);margin:0;font-size:.85rem}.notif-item span{color:var(--text-tertiary);font-size:.75rem}.notif-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-dot-danger{background:var(--danger)}.notif-dot-warning{background:var(--warning)}.notif-dot-success{background:var(--success)}.topbar-profile-wrapper{position:relative}.topbar-admin{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:8px;padding:5px 12px 5px 5px;display:flex}.topbar-admin:hover{border-color:var(--primary);box-shadow:0 0 0 3px #7c3aed14}.topbar-avatar{border-radius:var(--radius-sm);background:var(--gradient-primary);color:#fff;justify-content:center;align-items:center;width:30px;height:30px;font-size:.7rem;font-weight:700;display:flex}.topbar-name{color:var(--text-primary);font-size:.82rem;font-weight:600}.profile-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);font-size:.85rem}.profile-dropdown{border-radius:var(--radius-lg);width:280px;box-shadow:var(--shadow-lg);z-index:200;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.profile-header{border-bottom:1px solid var(--border-color);align-items:center;gap:12px;padding:18px;display:flex}.profile-avatar-lg{border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:.9rem;font-weight:700;display:flex}.profile-name{color:var(--text-primary);margin:0;font-size:.9rem;font-weight:700}.profile-email{color:var(--text-tertiary);margin:2px 0 0;font-size:.78rem}.profile-menu{padding:8px}.profile-menu button{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;font-weight:500;display:flex}.profile-menu button:hover{background:var(--bg-hover);color:var(--text-primary)}.profile-menu button.profile-logout:hover{color:var(--danger);background:#ef444414}.page-content{flex:1;min-width:0;padding:24px 28px;overflow-x:auto}.sidebar-overlay{display:none}@media (width<=1024px){.topbar-search{width:200px}}@media (width<=768px){.sidebar{transform:translate(-100%);width:270px!important}.sidebar.open{transform:translate(0)}.close-btn{display:block}.menu-btn{display:flex}.main-content{max-width:100vw!important;margin-left:0!important}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99;background:#00000080;display:block;position:fixed;inset:0}.collapse-btn{display:none}.page-content{padding:16px}.topbar-search,.topbar-name,.profile-chevron{display:none}.sidebar.collapsed .nav-label,.sidebar.collapsed .admin-info,.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-section-toggle{opacity:1;width:auto;height:auto}.sidebar.collapsed .nav-item{justify-content:flex-start;margin:1px 10px;padding:10px 20px}}.login-page{background:linear-gradient(135deg,#0b1120 0%,#1a1a2e 50%,#2d1b3d 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";filter:blur(80px);opacity:.4;border-radius:50%;animation:20s ease-in-out infinite login-orb;position:absolute}.login-page:before{background:#7c3aed4d;width:400px;height:400px;top:-100px;right:-80px}.login-page:after{background:#ec489933;width:350px;height:350px;animation-delay:5s;bottom:-80px;left:-60px}@keyframes login-orb{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-40px)scale(1.05)}66%{transform:translate(-20px,30px)scale(.95)}}.login-card{-webkit-backdrop-filter:blur(24px);z-index:1;background:#ffffff14;border:1px solid #ffffff1f;border-radius:24px;width:100%;max-width:420px;padding:44px 40px;animation:.5s cubic-bezier(.16,1,.3,1) scaleIn;position:relative;box-shadow:0 24px 64px #0006,0 0 40px #7c3aed14}.login-card:before{content:"";background:linear-gradient(90deg,#7c3aed,#ec4899);border-radius:24px 24px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.login-header{text-align:center;margin-bottom:36px}.login-logo{justify-content:center;margin-bottom:16px;animation:4s ease-in-out infinite floatLogo;display:flex}@keyframes floatLogo{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.login-header h1{color:#fff;background:linear-gradient(90deg,#fff,#fffc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 6px;font-size:1.6rem;font-weight:800}.login-header p{color:#ffffff8c;margin:0;font-size:.9rem}.form-group{margin-bottom:20px}.form-group label{color:#ffffffb3;align-items:center;gap:6px;margin-bottom:8px;font-size:.85rem;font-weight:600;display:flex}.form-group input{box-sizing:border-box;color:#fff;background:#ffffff0d;border:1.5px solid #ffffff1a;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-size:.95rem;transition:border-color .25s,box-shadow .25s,background .25s}.form-group input::placeholder{color:#ffffff4d}.form-group input:focus{background:#ffffff14;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed26}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(90deg,#7c3aed,#ec4899);border:none;border-radius:12px;width:100%;margin-top:12px;padding:13px;font-size:1rem;font-weight:700;transition:transform .2s,box-shadow .2s,opacity .2s;position:relative;overflow:hidden}.login-btn:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #7c3aed4d}.login-btn:hover:not(:disabled):after{left:100%}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#7c3aed;--secondary:#ec4899;--accent:#8b5cf6;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--info:#3b82f6;--bg-base:#f0f2f5;--bg-gradient:linear-gradient(135deg, #f0f2f5 0%, #e8eaf0 100%);--bg-card:#fff;--bg-card-hover:#fafbff;--bg-glass:#ffffffb3;--bg-glass-border:#ffffff4d;--bg-sidebar:linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);--bg-topbar:#fffc;--bg-input:#fafbff;--bg-hover:#f5f6fa;--bg-overlay:#00000080;--text-primary:#1e1e2d;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--text-inverse:#fff;--text-sidebar:#8b8ca7;--text-sidebar-active:#fff;--border-color:#ecedf3;--border-hover:#d1d5db;--border-sidebar:#ffffff0f;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 14px #00000014;--shadow-lg:0 8px 32px #0000001f;--shadow-xl:0 16px 48px #00000029;--shadow-glow:0 0 24px #7c3aed26;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--gradient-primary:linear-gradient(135deg, #7c3aed 0%, #ec4899 100%);--gradient-accent:linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);--gradient-success:linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-danger:linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--gradient-warning:linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gradient-sidebar:linear-gradient(180deg, #0b1120 0%, #111827 50%, #1a1a2e 100%);--transition:.3s cubic-bezier(.4, 0, .2, 1);--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);color:var(--text-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}[data-theme=dark]{--bg-base:#0b1120;--bg-gradient:linear-gradient(135deg, #0b1120 0%, #111827 100%);--bg-card:#111827;--bg-card-hover:#1a2332;--bg-glass:#111827b3;--bg-glass-border:#ffffff14;--bg-sidebar:linear-gradient(180deg, #0b1120 0%, #111827 100%);--bg-topbar:#111827cc;--bg-input:#1a2332;--bg-hover:#1a2332;--bg-overlay:#000000b3;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-tertiary:#6b7280;--text-inverse:#0b1120;--text-sidebar:#8b8ca7;--text-sidebar-active:#fff;--border-color:#ffffff14;--border-hover:#ffffff26;--border-sidebar:#ffffff0f;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 14px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-xl:0 16px 48px #0009;--shadow-glow:0 0 24px #7c3aed40}body{background:var(--bg-gradient);min-height:100vh;transition:background var(--transition)}#root{min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--bg-glass-border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px #7c3aed4d}50%{box-shadow:0 0 20px #7c3aed99}}.animate-fade-in{animation:fadeIn var(--transition) ease-out}.animate-slide-up{animation:slideUp var(--transition) ease-out}.animate-slide-down{animation:slideDown var(--transition) ease-out}.animate-scale-in{animation:scaleIn var(--transition) ease-out}.skeleton{background:linear-gradient(90deg, var(--bg-hover) 25%, var(--bg-card) 50%, var(--bg-hover) 75%);border-radius:var(--radius-sm);background-size:1000px 100%;animation:2s linear infinite shimmer}
