.card{background:var(--vg-surface);border:1px solid var(--vg-border);border-radius:var(--radius-lg);box-shadow:var(--vg-shadow-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:12px;padding:11px 15px;font-weight:720;transition:transform var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast)}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn-primary{color:white;background:linear-gradient(135deg,var(--vg-blue),#347cff);box-shadow:0 10px 24px rgba(10,132,255,.22)}
.btn-primary:hover:not(:disabled){box-shadow:0 14px 30px rgba(10,132,255,.28)}
.btn-ghost{color:var(--vg-navy);background:rgba(255,255,255,.7);border-color:var(--vg-border)}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:780;letter-spacing:.04em}
.badge-readonly{color:#0c68b9;background:#e8f5ff;border:1px solid #c7e7fb}
.status-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.11)}
.field{display:grid;gap:7px}
.field label,.field-label{font-size:12px;font-weight:700;color:var(--vg-muted)}
.field input,.field select,.control{width:100%;border:1px solid var(--vg-border);background:#fff;color:var(--vg-ink);border-radius:12px;padding:12px 13px;min-height:44px;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}
.field input:focus,.field select:focus,.control:focus{border-color:rgba(10,132,255,.52);box-shadow:0 0 0 4px rgba(10,132,255,.09);outline:none}
.kpi{min-width:0;padding:16px 17px;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center}
.kpi-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#eff8ff,#e6f2ff);color:var(--vg-blue);border:1px solid #d4ebff;font-weight:850}
.kpi-label{color:var(--vg-muted);font-size:11px;font-weight:680}
.kpi-value{font-size:22px;font-weight:820;color:var(--vg-navy);margin-top:2px}
.empty-state{display:grid;place-items:center;text-align:center;padding:32px;color:var(--vg-muted)}
.error-banner{padding:10px 12px;border-radius:11px;border:1px solid #ffd4d0;background:#fff1f0;color:#ae332a;font-size:12px}
