*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--font-size-base); -webkit-font-smoothing: antialiased; }
body { font-family: var(--font-family); background: var(--bg-primary); color: var(--text-primary); line-height: 1.5; min-height: 100vh; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }
button { cursor: pointer; font-family: inherit; }
input, select, textarea { font-family: inherit; font-size: inherit; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: var(--spacing-sm) var(--spacing-md); }
th { font-weight: 600; color: var(--text-secondary); border-bottom: 2px solid var(--border-color); }
td { border-bottom: 1px solid var(--border-color); }
tr:hover { background: var(--bg-hover); }
.loading { color: var(--text-muted); font-style: italic; padding: var(--spacing-xl); }
.empty { color: var(--text-muted); text-align: center; padding: var(--spacing-3xl); }
.badge { display: inline-block; padding: 2px var(--spacing-sm); border-radius: var(--radius-full); font-size: var(--font-size-xs); font-weight: 500; }
.badge-active { background: var(--color-success-light); color: var(--color-success); }
.badge-pending { background: var(--color-warning-light); color: var(--color-warning); }
.badge-failed { background: var(--color-danger-light); color: var(--color-danger); }
.badge-info { background: var(--color-info-light); color: var(--color-info); }
.btn { display: inline-flex; align-items: center; gap: var(--spacing-xs); padding: var(--spacing-sm) var(--spacing-lg); border: none; border-radius: var(--radius-md); font-size: var(--font-size-sm); font-weight: 500; transition: all var(--transition-fast); }
.btn-primary { background: var(--color-primary); color: white; }
.btn-primary:hover { background: var(--color-primary-hover); }
.btn-secondary { background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border-color); }
.btn-secondary:hover { background: var(--bg-hover); }
.btn-danger { background: var(--color-danger); color: white; }
.btn-danger:hover { background: #a31d1a; }
.btn-sm { padding: var(--spacing-xs) var(--spacing-sm); font-size: var(--font-size-xs); }
.btn-lg { padding: var(--spacing-md) var(--spacing-xl); font-size: var(--font-size-base); }