:root{--bg: #0a0a0f;--surface: #151520;--surface-light: #1c1c2b;--border: #252535;--border-light: #303045;--primary: #2563eb;--primary-light: #3b82f6;--primary-dim: rgba(37, 99, 235, .15);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .15);--success: #22c55e;--success-dim: rgba(34, 197, 94, .15);--text: #f1f5f9;--text-secondary: #cbd5e1;--muted: #6b7280;--accent: #06b6d4;--radius: 12px}body{background:var(--bg);color:var(--text)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{width:100%;max-width:400px}.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.login-brand h1{font-size:48px;font-weight:800;letter-spacing:-1px}.badge{background:var(--primary-dim);border:1px solid var(--primary);color:var(--primary-light);padding:4px 10px;border-radius:8px;font-size:14px;font-weight:700;letter-spacing:1px}.badge-sm{background:var(--primary-dim);border:1px solid rgba(37,99,235,.3);color:var(--primary-light);padding:2px 7px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.8px}.form-group{margin-bottom:20px}.form-group label{display:block;color:var(--text-secondary);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.form-group input,.form-group input[type=file]{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;color:var(--text);font-size:15px;outline:none;transition:border-color .2s}.form-group input:focus{border-color:var(--primary)}.form-group input::placeholder{color:var(--muted)}.error-box{background:var(--danger-dim);border-radius:10px;padding:10px 14px;color:var(--danger);font-size:14px;text-align:center;margin-bottom:16px}.btn-primary{width:100%;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:16px;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .2s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 14px;font-size:13px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.btn-sm:hover{opacity:.85}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--success-dim);color:var(--success)}.btn-danger{background:var(--danger-dim);color:var(--danger)}.btn-outline{background:var(--surface-light);color:var(--text-secondary);border:1px solid var(--border)}.btn-text{background:none;border:none;color:var(--danger);font-size:13px;cursor:pointer;padding:4px}.btn-text:hover{opacity:.8}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:0 20px 20px;border-bottom:1px solid var(--border)}.sidebar-brand h2{font-size:22px;font-weight:800;letter-spacing:-.5px}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-link{display:block;padding:10px 14px;color:var(--muted);text-decoration:none;border-radius:10px;font-size:15px;font-weight:500;transition:all .15s}.nav-link:hover{color:var(--text);background:var(--surface-light)}.nav-link.active{color:var(--primary-light);background:var(--primary-dim)}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}.sidebar-user{color:var(--text-secondary);font-size:13px;margin-bottom:8px}.main-content{flex:1;padding:32px;overflow-y:auto}.page h1{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-bottom:24px}.page h2{font-size:16px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.page section{margin-bottom:32px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header h1{margin-bottom:0}.page-header .btn-primary{width:auto;padding:10px 20px;font-size:14px}.page-loading{color:var(--muted);padding:40px;text-align:center}.empty-text{color:var(--muted);font-size:14px}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}thead{background:var(--surface-light)}th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}td{padding:14px 16px;font-size:14px;border-top:1px solid var(--border)}tr:hover td{background:#ffffff05}.badge-role{background:var(--surface-light);color:var(--text-secondary);padding:3px 8px;border-radius:6px;font-size:12px;font-weight:600}.status-badge{padding:3px 10px;border-radius:6px;font-size:12px;font-weight:600}.status-badge.active{background:var(--success-dim);color:var(--success)}.status-badge.inactive{background:var(--danger-dim);color:var(--danger)}.upload-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}.upload-form .btn-primary{width:auto;padding:10px 24px;font-size:14px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
