html, body, #root { height: 100%; }
* { box-sizing: border-box; }
.card { background: white; border: 1px solid #e2e8f0; border-radius: 12px; }
.input {
  border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px 10px; font-size: 14px; width: 100%;
  background: white;
}
.input:focus { outline: none; border-color: #2D3091; box-shadow: 0 0 0 3px rgba(45,48,145,0.15); }
.btn { border-radius: 8px; padding: 8px 14px; font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent; }
.btn-primary { background: #2D3091; color: white; }
.btn-primary:hover { background: #4A52A3; }
.btn-secondary { background: white; color: #334155; border-color: #cbd5e1; }
.btn-secondary:hover { background: #f1f5f9; }
.btn-danger { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
table.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
table.data-table th { text-align: left; padding: 8px 10px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; font-weight: 600; color: #475569; position: sticky; top: 0; }
table.data-table td { padding: 7px 10px; border-bottom: 1px solid #f1f5f9; }
table.data-table tr:hover td { background: #f8fafc; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.scrollbar-thin::-webkit-scrollbar { height: 8px; width: 8px; }
.scrollbar-thin::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
