/* Shared cards and panels */
.card,
.panel,
.dashboard-panel,
.content-panel,
.form-panel,
.report-panel,
.table-panel,
.employee-card,
.modal-content {
    border-color: var(--hris-border);
    border-radius: var(--hris-radius-lg);
    box-shadow: var(--hris-shadow-card);
}

/* Buttons */
button,
.btn,
.button,
a.btn {
    border-radius: var(--hris-radius-md);
    transition: transform var(--hris-transition), box-shadow var(--hris-transition), background-color var(--hris-transition), border-color var(--hris-transition);
}
button:not(:disabled):active,
.btn:not(.disabled):active { transform: translateY(1px); }
.btn-primary,
button.primary,
.primary-button {
    background: var(--hris-primary);
    border-color: var(--hris-primary);
}
.btn-primary:hover,
button.primary:hover,
.primary-button:hover {
    background: var(--hris-primary-hover);
    border-color: var(--hris-primary-hover);
    box-shadow: 0 8px 20px rgba(37, 99, 235, .2);
}

/* Forms */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.form-control,
.form-select {
    border-color: var(--hris-border-strong);
    border-radius: var(--hris-radius-md);
    background-color: var(--hris-surface);
    transition: border-color var(--hris-transition), box-shadow var(--hris-transition), background-color var(--hris-transition);
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
    outline: none;
}
input::placeholder,
textarea::placeholder { color: #94a3b8; }

/* Tables */
table { border-color: var(--hris-border); }
thead th {
    color: #334155;
    background: var(--hris-surface-muted);
    border-bottom-color: var(--hris-border-strong);
    font-size: .78rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}
tbody tr { transition: background-color var(--hris-transition); }
tbody tr:hover { background: #f8fbff; }
td { border-color: var(--hris-border); }

/* Dropdowns and expandable controls */
details > summary { cursor: pointer; }
details[open] > summary { color: var(--hris-primary-hover); }
.dropdown-menu,
.popover,
.filter-panel,
.search-panel {
    border-color: var(--hris-border);
    border-radius: var(--hris-radius-md);
    box-shadow: var(--hris-shadow-popover);
}

/* Status treatments */
.badge,
.status-badge,
.status-pill {
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: .01em;
}

/* Accessible focus */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .35);
    outline-offset: 3px;
}

/* Empty/loading states */
.empty-state { color: var(--hris-text-muted); }
.skeleton,
[aria-busy="true"] .placeholder {
    background: linear-gradient(90deg, #eef2f7 25%, #f8fafc 50%, #eef2f7 75%);
    background-size: 200% 100%;
    animation: hris-shimmer 1.4s infinite linear;
}
@keyframes hris-shimmer { to { background-position: -200% 0; } }
