@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafc;--bg2:#f1f5f9;--panel:#fff;--panel-hover:#f1f5f9;--panel-border:#e2e8f0;--text:#0f172a;--muted:#64748b;--accent:#0ea5e9;--accent-hover:#0284c7;--warning:#f59e0b;--danger:#ef4444;--success:#10b981;--blue:#3b82f6;--purple:#8b5cf6;--radius:8px;--radius-sm:6px;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--font:"Inter", -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.layout{min-height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--panel-border);z-index:100;flex-direction:column;width:240px;padding:24px 0;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--panel-border);margin-bottom:12px;padding:0 24px 20px}.sidebar-brand h2{color:var(--text);font-size:16px;font-weight:700}.sidebar-brand p{color:var(--muted);margin-top:2px;font-size:12px}.sidebar nav{flex:1;padding:0 12px}.sidebar nav a{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.sidebar nav a:hover,.sidebar nav a.active{background:var(--panel-hover);color:var(--text)}.sidebar nav a.active{color:var(--accent);background:#e0f2fe}.sidebar-footer{border-top:1px solid var(--panel-border);color:var(--muted);padding:16px 24px;font-size:12px}.main-content{background:var(--bg);flex:1;min-height:100vh;margin-left:240px;padding:24px 32px}.page-header{margin-bottom:24px}.page-header h1{color:var(--text);font-size:24px;font-weight:700;line-height:1.2}.page-header p{color:var(--muted);margin-top:4px;font-size:14px}.grid{gap:16px;display:grid}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;transition:border-color .2s,box-shadow .2s}.card:hover{border-color:#cbd5e1;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.stat-label{color:var(--muted);font-size:12px;font-weight:500}.stat-value{color:var(--text);margin-top:4px;font-size:28px;font-weight:700;line-height:1}.table-wrap{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table{border-collapse:collapse;width:100%;font-size:13px}thead{background:var(--bg2);border-bottom:1px solid var(--panel-border)}th{text-align:left;text-transform:uppercase;letter-spacing:.02em;color:var(--muted);padding:10px 16px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--panel-border);color:var(--text);padding:10px 16px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg2)}.badge{letter-spacing:.02em;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-pending{color:#d97706;background:#fef3c7}.badge-active{color:#059669;background:#d1fae5}.badge-disabled,.badge-rejected{color:#dc2626;background:#fee2e2}.badge-admin{color:#2563eb;background:#dbeafe}.btn{border:1px solid var(--panel-border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;background:var(--panel);color:var(--text);align-items:center;gap:4px;padding:6px 12px;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0000000d}.btn:hover{background:var(--bg2);border-color:#cbd5e1}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:#fef2f2}.btn-success{border-color:var(--success);color:var(--success)}.btn-success:hover{background:#ecfdf5}.btn-sm{padding:4px 8px;font-size:12px}.btn-group{gap:6px;display:flex}.form-group{margin-bottom:16px}.form-group label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.form-input{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-size:13px;font-family:var(--font);outline:none;padding:8px 12px;transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 2px #0000000d}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #0ea5e933}.form-input::placeholder{color:#94a3b8}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;width:380px;padding:36px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.login-box h1{text-align:center;color:var(--text);margin-bottom:6px;font-size:22px}.login-box p.sub{text-align:center;color:var(--muted);margin-bottom:24px;font-size:13px}.login-error{color:var(--danger);border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-bottom:16px;padding:8px 12px;font-size:13px}.empty-state{text-align:center;color:var(--muted);padding:48px 16px}.empty-state p{font-size:15px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.text-muted{color:var(--muted)}.text-sm{font-size:13px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.spinner{border:3px solid var(--panel-border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;margin:40px auto;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:999;padding:12px 20px;font-size:14px;animation:.25s ease-out slideUp;position:fixed;bottom:24px;right:24px}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
