:root{--color-primary:#4e008a;--color-primary-hover:#390066;--color-primary-light:#4e008a14;--color-primary-glow:#4e008a40;--color-secondary:#ffbe50;--color-secondary-hover:#e5a845;--color-success:#10b981;--color-success-light:#d1fae5;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-light:#fee2e2;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-info:#3b82f6;--color-info-light:#dbeafe;--bg-app:#f5f5f5;--bg-surface:#fff;--bg-sidebar:#fff;--bg-sidebar-hover:#f8fafc;--text-main:#374151;--text-heading:#121212;--text-muted:#6b7280;--text-inverse:#fff;--border-color:#e5e7eb;--shadow-sm:0 2px 4px #00000005;--shadow-md:0 8px 16px -4px #0000000d, 0 4px 8px -4px #00000005;--shadow-lg:0 20px 25px -5px #0000000d, 0 10px 10px -5px #00000005;--shadow-xl:0 25px 50px -12px #4e008a26;--shadow-glow:0 0 20px var(--color-primary-glow);--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-pill:9999px;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif}.bg-brand-gradient{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);color:var(--text-inverse)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px}#root{flex-direction:column;width:100vw;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{color:var(--text-heading);letter-spacing:-.02em;font-weight:800}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-primary);border:2px solid var(--bg-app);border-radius:20px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-hover)}.admin-layout{background-color:var(--bg-app);width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;flex-shrink:0;width:280px;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:4px 0 24px #00000008}.sidebar-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:center;align-items:center;height:auto;min-height:80px;padding:0;display:flex}.sidebar-header h2{color:var(--color-primary);letter-spacing:-.02em;font-size:1.15rem;font-weight:800}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex;overflow-y:auto}.nav-item-wrapper{flex-direction:column;display:flex}.nav-link{color:#475569;border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;width:100%;padding:12px 16px;font-size:.95rem;font-weight:500;text-decoration:none;transition:all .2s ease-in-out;display:flex;position:relative}.nav-link:hover{background-color:var(--bg-sidebar-hover);color:var(--color-primary)}.nav-link.active{background-color:var(--color-primary);color:#fff;box-shadow:0 2px 4px var(--color-primary-glow);font-weight:600}.nav-link svg{color:#64748b;flex-shrink:0;width:16px;height:16px;margin-right:10px;transition:color .2s}.nav-link:hover svg{color:var(--color-primary)}.nav-link.active svg{color:#fff}.nav-link .chevron{width:14px;height:14px;margin-left:auto;margin-right:0;transition:transform .2s}.nav-link .chevron.open{transform:rotate(180deg)}.sub-menu{flex-direction:column;gap:2px;margin-top:4px;padding-left:24px;display:flex}.nav-link.nested{padding:10px 16px;font-size:.9rem}.nav-link.nested svg{width:14px;height:14px;margin-right:10px}.nav-indicator{display:none}.sidebar-footer{border-top:1px solid var(--border-color);background-color:#fafbfc;flex-shrink:0;padding:20px 16px}.logout-btn{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text-muted);box-shadow:var(--shadow-sm);align-items:center;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .3s;display:flex}.logout-btn svg{width:16px;height:16px;margin-right:10px}.logout-btn:hover{background-color:var(--color-danger-light);color:var(--color-danger);box-shadow:var(--shadow-md);border-color:#fecaca;transform:translateY(-2px)}.main-content{background-color:var(--bg-app);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.page-content{scroll-behavior:smooth;flex:1;padding:24px 32px;overflow-y:auto}.page-container{margin-bottom:24px;animation:.6s cubic-bezier(.16,1,.3,1) fadeSlideUp}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.page-header h2{color:var(--color-primary);margin-bottom:4px;font-size:1.5rem}.page-header p{color:var(--text-muted);font-size:.85rem;font-weight:500}button{font-family:inherit}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);color:var(--text-inverse);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 4px 12px var(--color-primary-glow);border:none;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px var(--color-primary-glow);transform:translateY(-3px)}.btn-primary:focus{box-shadow:0 0 0 4px var(--bg-surface), 0 0 0 8px var(--color-primary-light);outline:none}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background-color:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;box-shadow:var(--shadow-sm);padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .3s ease-in-out}.btn-secondary:hover{box-shadow:var(--shadow-md);background-color:#f3f4f6;border-color:#d1d5db;transform:translateY(-2px)}.action-buttons{align-items:center;gap:12px;display:flex}.btn-view,.btn-edit,.btn-delete{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;padding:10px 16px;font-size:.95rem;font-weight:700;transition:all .3s;display:inline-flex}.btn-view{background-color:var(--color-info-light);color:var(--color-info)}.btn-edit{background-color:var(--color-warning-light);color:#d97706}.btn-delete{background-color:var(--color-danger-light);color:var(--color-danger)}.btn-view:hover{background-color:var(--color-info);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.btn-edit:hover{background-color:var(--color-warning);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.btn-delete:hover{background-color:var(--color-danger);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.datatable-container{border-radius:var(--radius-xl);border:1px solid var(--border-color);background:var(--bg-surface);width:100%;box-shadow:var(--shadow-md);overflow:hidden}.datatable-wrapper{width:100%;overflow-x:auto}.datatable-wrapper::-webkit-scrollbar{height:6px}.datatable-wrapper::-webkit-scrollbar-thumb{background:#e2e8f0;border:none;border-radius:10px}.datatable-wrapper::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.datatable{border-collapse:separate;border-spacing:0;text-align:left;width:100%;font-size:.85rem}.datatable th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);white-space:nowrap;background-color:#fafbfc;padding:12px 16px;font-size:.75rem;font-weight:600}.datatable td{border-bottom:1px solid var(--border-color);color:var(--text-main);vertical-align:middle;padding:12px 16px}.datatable-actions{align-items:center;gap:12px;display:flex}.datatable tbody tr{transition:all .3s}.datatable tbody tr:hover{background-color:#f8faf9;transform:scale(1.001)}.datatable tbody tr:last-child td{border-bottom:none}.datatable-empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:16px;padding:40px;font-size:1.1rem;display:flex}.datatable-pagination{background-color:var(--bg-surface);border-top:1px solid var(--border-color);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pagination-info{color:var(--text-muted);align-items:center;gap:16px;font-size:.85rem;font-weight:500;display:flex}.per-page-select{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-app);color:var(--text-heading);cursor:pointer;outline:none;padding:6px 12px;font-size:.85rem}.pagination-controls{align-items:center;gap:4px;display:flex}.page-btn{border-radius:var(--radius-sm);min-width:32px;height:32px;color:var(--text-main);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 8px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.page-btn:hover:not(:disabled){background-color:var(--bg-app);color:var(--color-primary)}.page-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 6px var(--color-primary-glow)}.page-btn:disabled{opacity:.5;cursor:not-allowed;color:var(--text-muted)}.page-btn.nav-btn{padding:0}.status-dropdown{border-radius:var(--radius-pill);background-color:var(--bg-surface);color:var(--text-heading);cursor:pointer;appearance:none;box-shadow:var(--shadow-sm);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;border:1px solid #d1d5db;outline:none;padding:8px 32px 8px 12px;font-size:.85rem;font-weight:700;transition:all .3s}.status-dropdown:hover{border-color:var(--color-primary)}.status-dropdown:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.modal-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;background-color:#11182799;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.3s ease-out fadeInOverlay;display:flex;position:fixed;top:0;left:0}@keyframes fadeInOverlay{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.modal-content{background-color:var(--bg-surface);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-xl);border:1px solid #fff3;flex-direction:column;animation:.4s cubic-bezier(.16,1,.3,1) scaleInModal;display:flex;position:relative;overflow:hidden}@keyframes scaleInModal{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border-color);background-color:var(--bg-surface);justify-content:space-between;align-items:center;padding:24px 32px;display:flex}.modal-header h2{color:var(--text-heading);margin:0;font-size:1.25rem;font-weight:800}.modal-close-btn{background:var(--bg-app);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s ease-in-out;display:flex}.modal-close-btn:hover{background-color:var(--color-danger-light);color:var(--color-danger);transform:rotate(90deg)}.modal-body{padding:32px;overflow-y:auto}.modal-actions{border-top:1px solid var(--border-color);background-color:#fafbfc;justify-content:flex-end;gap:12px;padding:20px 32px;display:flex}.form-group{margin-bottom:20px}.form-group label{color:var(--text-heading);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea,.form-control{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;background-color:var(--bg-surface);width:100%;color:var(--text-heading);padding:10px 14px;font-family:inherit;font-size:.85rem;transition:all .3s;box-shadow:inset 0 2px 4px #00000005}.form-group input[type=file]{padding:8px}.form-group input[type=file]::file-selector-button{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;margin-right:12px;padding:6px 12px;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .2s}.form-group input[type=file]::file-selector-button:hover{background-color:var(--color-primary);color:#fff}.dashboard-stats-grid{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:32px;display:grid}@media (width<=1200px){.dashboard-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.dashboard-stats-grid{grid-template-columns:1fr}}.stat-card{border-radius:var(--radius-lg);border:1px solid var(--border-color);background-color:#fff;align-items:center;padding:20px;transition:all .2s;display:flex;overflow:hidden;box-shadow:0 1px 2px #00000005}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000000a}.stat-icon-wrapper{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;margin-right:16px;display:flex}.stat-card.primary .stat-icon-wrapper{color:#4e008a;background-color:#4e008a1a}.stat-card.info .stat-icon-wrapper{color:#0284c7;background-color:#e0f2fe}.stat-card.success .stat-icon-wrapper{color:#16a34a;background-color:#dcfce7}.stat-card.danger .stat-icon-wrapper{color:#dc2626;background-color:#fee2e2}.stat-card.gold .stat-icon-wrapper{color:#d97706;background-color:#fef3c7}.stat-info{flex-direction:column;display:flex}.stat-info h3{color:var(--text-muted);margin:0 0 4px;font-size:.8rem;font-weight:500;line-height:1}.stat-value{color:var(--text-heading);margin:0;font-size:1.5rem;font-weight:700;line-height:1}.dashboard-grid{grid-template-columns:repeat(12,1fr);gap:24px;display:grid}.chart-card{background-color:var(--bg-surface);border-radius:var(--radius-xl);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);flex-direction:column;padding:24px;display:flex}.chart-card h3{color:var(--text-heading);margin:0 0 24px;font-size:1.1rem;font-weight:700}.chart-container{flex:1;width:100%;min-height:300px}.col-span-8{grid-column:span 8}.col-span-4{grid-column:span 4}.col-span-6{grid-column:span 6}@media (width<=1200px){.col-span-8,.col-span-4,.col-span-6{grid-column:span 12}}.form-group input::placeholder,.form-group textarea::placeholder{color:#9ca3af;font-weight:400}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light);background-color:#fff;outline:none}.error-msg{color:var(--color-danger);background-color:var(--color-danger-light);border-radius:var(--radius-md);margin-top:8px;padding:12px 16px;font-size:.95rem;font-weight:600}.view-details{flex-direction:column;gap:24px;display:flex}.view-row{gap:24px;display:flex}.view-row .view-group{flex:1}.view-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.view-group p{border-radius:var(--radius-lg);border:1px solid var(--border-color);color:var(--text-heading);background-color:#fafbfc;margin:0;padding:16px 20px;font-size:1.05rem;font-weight:500}.highlight-total p{background-color:var(--color-success-light);color:var(--color-success);border-color:#a7f3d0;font-size:1.5rem;font-weight:800;box-shadow:0 4px 12px #10b9811a}.shimmer-container{border-radius:var(--radius-xl);border:1px solid var(--border-color);background:var(--bg-surface);width:100%;box-shadow:var(--shadow-md);overflow:hidden}.shimmer-table{border-collapse:collapse;width:100%}.shimmer-table th,.shimmer-table td{border-bottom:1px solid var(--border-color);padding:32px}.shimmer-box{border-radius:var(--radius-md);background:#f3f4f6;height:24px;position:relative;overflow:hidden}.shimmer-box:after{content:"";background-image:linear-gradient(90deg,#fff0 0,#fff9 50%,#fff0 100%);animation:1.5s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.login-container{background:radial-gradient(circle at 0 0,#d1eae5 0%,#f4f7f6 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);text-align:center;border:1px solid #fffc;width:100%;max-width:480px;padding:56px 48px;animation:.6s cubic-bezier(.16,1,.3,1) fadeSlideUp}.login-card h2{color:var(--color-primary);margin-bottom:12px;font-size:2.25rem}.login-card p{color:var(--text-muted);margin-bottom:40px;font-size:1.125rem}.login-card form{text-align:left}.login-card .btn-primary{width:100%;margin-top:24px;padding:16px;font-size:1.125rem}.datatable-filter-select{border-radius:var(--radius-md);border:1px solid var(--border-color);color:var(--text-main);background-color:var(--bg-surface);cursor:pointer;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236b7280%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-position:right .7em top 50%,0 0;background-repeat:no-repeat,repeat;background-size:.65em,100%;outline:none;padding:8px 32px 8px 12px;font-size:.85rem;font-weight:500;transition:all .2s}.datatable-filter-select:hover{border-color:var(--color-primary-light);background-color:var(--bg-sidebar-hover)}.datatable-filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}
