/**
 * UNICORN OVERRIDES — Premium SaaS UI
 * Loads LAST to override base components with design-system tokens.
 * Ensures: cards, tables, badges, buttons, filters, empty states use premium styling.
 */

/* Card: soft border, subtle shadow, hover lift */
.card-xl,
.dashboard-card,
.section-card {
  background: var(--surface, #ffffff) !important;
  border: 1px solid var(--border, #e2e8f0) !important;
  border-radius: var(--radius-md, 12px) !important;
  padding: var(--ds-space-3, 24px) !important;
  box-shadow: var(--shadow-1, 0 1px 3px rgba(15,23,42,0.06)) !important;
  transition: box-shadow 160ms ease, transform 160ms ease !important;
}

.card-xl:hover,
.dashboard-card:hover {
  box-shadow: var(--shadow-2, 0 4px 12px rgba(15,23,42,0.08)) !important;
}

/* Filter: Apply/Reset right aligned */
.filter-row {
  display: flex;
  align-items: center;
  gap: var(--ds-space-2, 16px);
  flex-wrap: wrap;
}

.filter-row .btn-ghost {
  margin-left: auto;
}

/* When filter has Apply + Reset, group them right */
.filter-form .filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-space-2, 16px);
}

.filter-form .filter-row .form-group:last-of-type,
.filter-form .filter-row .filter-actions-group,
.filter-form .filter-row .btn-primary + .btn-ghost {
  margin-left: auto;
}

.filter-form .filter-row .filter-actions-group {
  display: flex;
  gap: var(--ds-space-1, 8px);
  align-items: center;
}

/* Filter search: consistent height */
.filter-search {
  min-width: 200px;
}

.filter-search input {
  height: 40px;
  padding: 0 var(--ds-space-2) 0 var(--ds-space-2);
  border-radius: var(--radius-sm, 8px);
  border: 1px solid var(--border, #e2e8f0);
  font-size: var(--ds-body, 14px);
}

/* Empty state: premium look */
.empty-state {
  text-align: center;
  padding: var(--ds-space-6, 48px) var(--ds-space-4, 32px) !important;
  background: var(--surface-2, var(--color-bg-soft)) !important;
  border: 1px dashed var(--border, #e2e8f0) !important;
  border-radius: var(--radius-md, 12px) !important;
}

.empty-state .empty-title {
  font-size: var(--ds-section, 16px) !important;
  font-weight: 600 !important;
}

.empty-state .empty-description {
  font-size: var(--ds-body, 14px) !important;
  color: var(--text-muted, #64748b) !important;
}

/* Table: sticky header, row hover */
.table-wrapper {
  overflow-x: auto;
  border-radius: var(--radius-md, 12px);
}

.table thead {
  background: var(--surface-2, var(--color-bg-soft)) !important;
}

.table tbody tr:hover {
  background: var(--table-hover) !important;
}

.table .col-actions {
  text-align: right;
}

/* Preventivi/Lavori tabs: segmented control look */
.filter-row .btn {
  border-radius: var(--radius-sm, 8px);
}

.ds-card .filter-row .btn-ghost {
  border: 1px solid var(--border, #e2e8f0);
  background: var(--color-bg-card);
}

.ds-card .filter-row .btn-ghost:hover {
  background: var(--color-bg-soft);
  border-color: var(--border, #e2e8f0);
}

.ds-card .filter-row .btn-primary {
  background: var(--primary, #2563eb);
  border-color: var(--primary, #2563eb);
  color: #fff;
}

/* Button micro-interactions */
.btn:hover:not(:disabled) {
  transform: translateY(-1px);
}

.btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
}

/* ============================================
   DASHBOARD - KPI groups, Quick Actions, Activity
   ============================================ */
.ds-kpi-group-title {
  font-size: var(--ds-section, 16px);
  font-weight: var(--ds-section-weight, 600);
  color: var(--text-muted, #64748b);
  margin: 0 0 var(--ds-space-2, 16px);
  letter-spacing: 0.02em;
}

.ds-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--ds-space-2, 16px);
  margin-bottom: var(--ds-space-4, 32px);
}

.ds-kpi-card {
  position: relative;
  padding-left: var(--ds-space-3, 24px);
  border-left: 4px solid var(--border, #e2e8f0);
}

.ds-kpi-card.kpi-primary { border-left-color: var(--primary, #2563eb); }
.ds-kpi-card.kpi-success { border-left-color: var(--success, #16a34a); }
.ds-kpi-card.kpi-warning { border-left-color: var(--warning, #d97706); }
.ds-kpi-card.kpi-danger { border-left-color: var(--danger, #dc2626); }
.ds-kpi-card.kpi-info { border-left-color: var(--info, #0284c7); }
.ds-kpi-card.kpi-muted { border-left-color: var(--text-muted, #64748b); }

/* KPI icon positioned by polish-pack.css (top-left) */

.ds-quick-actions-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2, 16px);
  padding: var(--ds-space-2, 16px) 0;
  margin-bottom: var(--ds-space-3, 24px);
}

.ds-quick-primary {
  font-weight: 600;
}

.ds-activity-card {
  max-width: 480px;
}

.ds-activity-placeholder {
  text-align: center;
  padding: var(--ds-space-4, 32px);
  color: var(--text-muted, #64748b);
}

.ds-activity-placeholder i {
  font-size: 32px;
  margin-bottom: var(--ds-space-2, 16px);
  opacity: 0.5;
}

.ds-activity-placeholder p {
  margin: 0 0 var(--ds-space-1, 8px);
  font-size: var(--ds-body, 14px);
}

.ds-activity-hint {
  font-size: var(--ds-caption, 12px);
  opacity: 0.8;
}

/* SDI Dashboard */
.ds-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ds-space-2, 16px);
}

.ds-azioni-card .card-header {
  background: var(--warning-soft, #fef3c7);
  border-bottom: 1px solid var(--border, #e2e8f0);
}

.ds-azioni-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ds-azioni-item {
  display: flex;
  align-items: center;
  gap: var(--ds-space-2, 16px);
  flex-wrap: wrap;
  padding: var(--ds-space-1, 8px) 0;
  border-bottom: 1px solid var(--border-subtle, #f1f5f9);
}

.ds-azioni-item:last-child {
  border-bottom: none;
}

.ds-azioni-item .badge {
  flex-shrink: 0;
}

.ds-azioni-item .btn {
  margin-left: auto;
}
