/** ASM Design Framework — Component Foundation */
.ads-button {
    min-height: var(--ads-control-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ads-space-sm);
    padding: 0 var(--ads-space-lg);
    border: 1px solid transparent;
    border-radius: var(--ads-radius-md);
    font: inherit;
    font-weight: var(--ads-font-weight-semibold);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--ads-transition), border-color var(--ads-transition), color var(--ads-transition), box-shadow var(--ads-transition), transform var(--ads-transition-fast);
}

.ads-button:hover { transform: translateY(-1px); }
.ads-button:active { transform: translateY(0); }
.ads-button--primary { color: var(--ads-primary-contrast); background: var(--ads-primary); }
.ads-button--primary:hover { color: var(--ads-primary-contrast); background: var(--ads-primary-hover); }
.ads-button--secondary { color: var(--ads-text); background: var(--ads-surface); border-color: var(--ads-border); }
.ads-button--secondary:hover { color: var(--ads-primary-active); border-color: var(--ads-border-strong); background: var(--ads-surface-subtle); }

.ads-card {
    padding: var(--ads-space-lg);
    color: var(--ads-text);
    background: var(--ads-surface);
    border: 1px solid var(--ads-border);
    border-radius: var(--ads-radius-lg);
    box-shadow: var(--ads-shadow-xs);
}

.ads-input,
.ads-select,
.ads-textarea {
    width: 100%;
    min-height: var(--ads-control-height);
    padding: 0 var(--ads-space-md);
    color: var(--ads-text);
    background: var(--ads-surface);
    border: 1px solid var(--ads-border-strong);
    border-radius: var(--ads-radius-md);
    font: inherit;
    transition: border-color var(--ads-transition), box-shadow var(--ads-transition), background-color var(--ads-transition);
}

.ads-textarea { min-height: 96px; padding-block: var(--ads-space-md); resize: vertical; }
.ads-input:hover, .ads-select:hover, .ads-textarea:hover { border-color: var(--ads-primary); }
.ads-input:focus, .ads-select:focus, .ads-textarea:focus { border-color: var(--ads-primary); outline: none; box-shadow: var(--ads-focus-ring); }

.ads-badge {
    min-height: var(--ads-badge-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ads-space-xs);
    padding: 2px var(--ads-space-sm);
    border-radius: var(--ads-radius-pill);
    font-size: var(--ads-font-size-xs);
    font-weight: var(--ads-font-weight-bold);
    line-height: 1;
    color: var(--ads-text-secondary);
    background: var(--ads-surface-muted);
}
.ads-badge--success { color: #126647; background: var(--ads-success-soft); }
.ads-badge--warning { color: #7a5600; background: var(--ads-warning-soft); }
.ads-badge--danger { color: #8c2730; background: var(--ads-danger-soft); }
.ads-badge--info { color: #1f5f9f; background: var(--ads-info-soft); }

.ads-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: var(--ads-surface);
    border: 1px solid var(--ads-border);
    border-radius: var(--ads-radius-lg);
}
.ads-table th, .ads-table td { padding: var(--ads-space-md) var(--ads-space-lg); border-bottom: 1px solid var(--ads-border); text-align: left; }
.ads-table th { color: var(--ads-text-secondary); background: var(--ads-surface-subtle); font-size: var(--ads-font-size-sm); font-weight: var(--ads-font-weight-bold); }
.ads-table tr:last-child td { border-bottom: 0; }
.ads-table tbody tr { transition: background-color var(--ads-transition-fast); }
.ads-table tbody tr:hover { background: var(--ads-primary-soft); }

.ads-tooltip {
    padding: var(--ads-space-sm) var(--ads-space-md);
    color: #fff;
    background: #173d34;
    border-radius: var(--ads-radius-sm);
    box-shadow: var(--ads-shadow-md);
    font-size: var(--ads-font-size-xs);
    line-height: var(--ads-line-height-normal);
}
