:root{--color-primary:#25b003;--color-primary-hover:#15803d;--color-primary-light:#eaf7e8;--color-secondary:#64748b;--color-success:#16a34a;--color-success-light:#dcfce7;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-info:#0891b2;--color-info-light:#cffafe;--color-bg:#f0fdf4;--color-surface:#fff;--color-border:#e5e7eb;--color-text:#1e293b;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--sidebar-width:260px;--header-height:64px;--radius:8px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--transition:.15s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:inherit}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition);width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-bg);font-size:.75rem;font-weight:600}tr:hover td{background:#25b0030f}.btn{border-radius:var(--radius);transition:all var(--transition);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);text-decoration:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg);text-decoration:none}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#b91c1c;text-decoration:none}.btn-sm{padding:.25rem .75rem;font-size:.8125rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;font-weight:600;display:flex}.card-body{padding:1.25rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h1{font-size:1.5rem;font-weight:700}.badge{text-transform:capitalize;border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-secondary{color:var(--color-secondary);background:#f1f5f9}.grid{gap:1.5rem;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.text-sm{font-size:.875rem}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:2rem;height:2rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
