/* Soft Modern Pastel palette */
:root{
  --green-soft:#A7F3D0; --green:#22C55E;
  --purple-soft:#E9D5FF; --purple:#8B5CF6;
  --slate-bg:#F8FAFC;
}
body{font-family:ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;}
.app-header{background:linear-gradient(90deg,#8B5CF6 0%,#a78bfa 55%,#34d399 100%);box-shadow:0 6px 20px -12px rgba(139,92,246,.8)}
.logo-badge{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.22);color:#fff;font-size:17px}
.role-chip{background:#A7F3D0;color:#065f46;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.03em}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 10px 30px -24px rgba(15,23,42,.45)}
.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#475569;font-size:14px;font-weight:500}
.nav-link:hover{background:#F5F3FF;color:#6d28d9}
.nav-active{background:linear-gradient(90deg,#E9D5FF,#A7F3D0);color:#4c1d95;font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:12px;font-size:14px;font-weight:600;transition:.15s;cursor:pointer;border:1px solid transparent}
.btn-primary{background:#8B5CF6;color:#fff}.btn-primary:hover{background:#7c3aed}
.btn-success{background:#22C55E;color:#fff}.btn-success:hover{background:#16a34a}
.btn-danger{background:#f43f5e;color:#fff}.btn-danger:hover{background:#e11d48}
.btn-soft{background:#E9D5FF;color:#5b21b6}.btn-soft:hover{background:#ddd6fe}
.btn-mint{background:#A7F3D0;color:#065f46}.btn-mint:hover{background:#6ee7b7}
.btn-ghost{background:rgba(255,255,255,.18);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.3)}
.btn-outline{border-color:#e2e8f0;background:#fff;color:#475569}.btn-outline:hover{background:#f8fafc}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em}
.badge-pending{background:#FEF3C7;color:#92400e}
.badge-approved{background:#A7F3D0;color:#065f46}
.badge-rejected{background:#FFE4E6;color:#9f1239}
.input,select.input,textarea.input{width:100%;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;font-size:14px;background:#fff;color:#334155;outline:none}
.input:focus{border-color:#8B5CF6;box-shadow:0 0 0 3px #ede9fe}
.label{display:block;font-size:12px;font-weight:600;color:#64748b;margin-bottom:6px}
.alert{border-radius:14px;padding:12px 16px;font-size:14px;margin-bottom:18px}
.alert-success{background:#ECFDF5;color:#065f46;border:1px solid #A7F3D0}
.alert-error{background:#FFF1F2;color:#9f1239;border:1px solid #fecdd3}
.alert-info{background:#F5F3FF;color:#5b21b6;border:1px solid #E9D5FF}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.table th{background:#F8FAFC;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:11px 14px;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.table td{padding:12px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.table tbody tr:hover{background:#FAFAFF}
.stat-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:17px}
