/* density-calculator — extracted from inline <style> */
.dc-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem;
}
@media (max-width: 767.98px) { .dc-grid { grid-template-columns: 1fr; } }
.dc-field-disabled input,
.dc-field-disabled select {
  opacity: 0.45; pointer-events: none;
}
.dc-auto-badge {
  display: inline-block; font-size: 0.6875rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--cluster-dark, #1A237E); background: color-mix(in srgb, var(--cluster-dark, #1A237E) 10%, transparent);
  padding: 0.15rem 0.5rem; border-radius: var(--bs-border-radius-pill, 50rem);
  margin-left: 0.4rem; vertical-align: middle;
}
.dc-material-select {
  width: 100%; padding: 0.625rem 0.75rem; border-radius: 8px;
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  background: var(--bs-body-bg, #fff); color: var(--evvy-text-primary, #333);
  font-size: 0.875rem; cursor: pointer; appearance: auto;
}
.dc-material-select:focus {
  outline: none; border-color: var(--cluster-dark, #1A237E);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cluster-dark, #1A237E) 15%, transparent);
}
.dc-hero-value {
  font-size: 2.25rem; font-weight: 800; color: var(--cluster-dark, #1A237E);
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.dc-hero-unit {
  font-size: 1rem; font-weight: 600; color: var(--evvy-text-secondary);
  margin-left: 0.35rem;
}
.dc-trio-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.625rem;
  margin-top: 0.75rem;
}
@media (max-width: 575.98px) { .dc-trio-grid { grid-template-columns: 1fr; } }
.dc-trio-cell {
  background: var(--cluster-surface, #f8f9fa); border-radius: 8px;
  padding: 0.625rem 0.75rem; text-align: center;
  border: 1px solid var(--evvy-border-color);
}
.dc-trio-label {
  font-size: 0.6875rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--evvy-text-secondary); margin-bottom: 0.15rem;
}
.dc-trio-value {
  font-size: 1.125rem; font-weight: 700; color: var(--cluster-dark, #1A237E);
  font-variant-numeric: tabular-nums;
}
.dc-mystery-card {
  background: color-mix(in srgb, var(--cluster-dark, #1A237E) 6%, transparent);
  border-left: 3px solid var(--cluster-dark, #1A237E);
  border-radius: 8px; padding: 0.75rem 1rem; margin-top: 0.75rem;
}
.dc-mystery-label {
  font-size: 0.6875rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--evvy-text-secondary); margin-bottom: 0.15rem;
}
.dc-mystery-name {
  font-size: 1.125rem; font-weight: 700; color: var(--cluster-dark, #1A237E);
}
.dc-mystery-density {
  font-size: 0.8125rem; color: var(--evvy-text-secondary); margin-top: 0.1rem;
}
.dc-conv-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.5rem;
  margin-top: 0.75rem;
}
.dc-conv-card {
  background: var(--cluster-surface, #f8f9fa); border-radius: 8px;
  padding: 0.5rem 0.75rem; border: 1px solid var(--evvy-border-color);
  font-size: 0.8125rem; text-align: center;
}
.dc-conv-val {
  font-weight: 700; color: var(--cluster-dark, #1A237E);
  font-variant-numeric: tabular-nums;
}
.dc-conv-unit {
  font-size: 0.6875rem; color: var(--evvy-text-secondary);
}
.dc-buoy-result {
  text-align: center; padding: 1.25rem; margin-top: 0.75rem;
  border-radius: var(--evvy-radius-lg, 12px);
}
.dc-buoy-result.floats {
  background: color-mix(in srgb, #16a34a 10%, transparent);
  border-left: 3px solid #16a34a;
}
.dc-buoy-result.sinks {
  background: color-mix(in srgb, #dc2626 10%, transparent);
  border-left: 3px solid #dc2626;
}
.dc-buoy-result.neutral {
  background: color-mix(in srgb, #2563eb 10%, transparent);
  border-left: 3px solid #2563eb;
}
.dc-buoy-verdict {
  font-size: 1.5rem; font-weight: 800;
}
.dc-buoy-detail {
  font-size: 0.875rem; color: var(--evvy-text-secondary); margin-top: 0.25rem;
}
.dc-mat-table-wrap {
  max-height: 420px; overflow-y: auto; border: 1px solid var(--evvy-border-color);
  border-radius: var(--evvy-radius-lg, 12px); margin-top: 0.75rem;
}
.dc-mat-table {
  width: 100%; border-collapse: collapse; font-size: 0.8125rem;
}
.dc-mat-table thead {
  position: sticky; top: 0; background: var(--cluster-dark, #1A237E);
  color: var(--cluster-text, #ECEDF8);
}
.dc-mat-table th {
  padding: 0.5rem 0.75rem; font-weight: 600; font-size: 0.75rem;
  text-transform: uppercase; letter-spacing: 0.04em; cursor: pointer;
  user-select: none; white-space: nowrap;
}
.dc-mat-table th:hover { opacity: 0.85; }
.dc-mat-table td {
  padding: 0.4rem 0.75rem; border-bottom: 1px solid var(--evvy-border-color);
  font-variant-numeric: tabular-nums;
}
.dc-mat-table tbody tr:hover {
  background: color-mix(in srgb, var(--cluster-dark) 5%, transparent);
}
.dc-mat-filter {
  display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem;
}
.dc-mat-filter-btn {
  padding: 0.25rem 0.65rem; font-size: 0.75rem; font-weight: 600;
  border: 1.5px solid var(--evvy-border-color);
  border-radius: var(--bs-border-radius-pill, 50rem);
  background: none; color: var(--evvy-text-secondary);
  cursor: pointer; transition: all 0.15s ease;
}
.dc-mat-filter-btn:hover { border-color: var(--cluster-dark); color: var(--cluster-dark); }
.dc-mat-filter-btn.active {
  background: var(--cluster-dark); color: #fff; border-color: var(--cluster-dark);
}
.dc-custom-row {
  display: grid; grid-template-columns: 2fr 1fr auto; gap: 0.5rem;
  align-items: end; margin-bottom: 0.4rem;
}
.dc-custom-row input {
  padding: 0.4rem 0.6rem; border: 1px solid var(--evvy-border-color, #DEE2E6);
  border-radius: 8px; font-size: 0.8125rem;
  background: var(--bs-body-bg, #fff); color: var(--evvy-text-primary);
}
.dc-custom-row input:focus {
  outline: none; border-color: var(--cluster-dark);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cluster-dark) 15%, transparent);
}
.dc-add-btn {
  display: inline-flex; align-items: center; gap: 0.35rem;
  padding: 0.4rem 0.9rem; font-size: 0.8125rem; font-weight: 600;
  border: 1.5px dashed var(--cluster-dark); border-radius: var(--bs-border-radius-pill);
  background: none; color: var(--cluster-dark); cursor: pointer;
  transition: all 0.15s ease;
}
.dc-add-btn:hover { background: color-mix(in srgb, var(--cluster-dark) 8%, transparent); }
.dc-remove-btn {
  width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
  background: none; border: 1px solid var(--evvy-border-color);
  border-radius: 6px; color: var(--evvy-text-secondary);
  cursor: pointer; font-size: 0.8rem; transition: all 0.15s ease;
}
.dc-remove-btn:hover { color: #dc3545; border-color: #dc3545; }
[data-bs-theme="dark"] .dc-material-select {
  background: color-mix(in srgb, var(--cluster-dark, #1A237E) 8%, #1e1e2e);
  border-color: rgba(255,255,255,0.1); color: #e2e8f0;
}
[data-bs-theme="dark"] .dc-trio-cell {
  background: color-mix(in srgb, var(--cluster-dark) 8%, #1e1e2e);
  border-color: rgba(255,255,255,0.08);
}
[data-bs-theme="dark"] .dc-trio-value,
[data-bs-theme="dark"] .dc-hero-value,
[data-bs-theme="dark"] .dc-mystery-name,
[data-bs-theme="dark"] .dc-conv-val {
  color: var(--cluster-text, #ECEDF8);
}
[data-bs-theme="dark"] .dc-conv-card {
  background: color-mix(in srgb, var(--cluster-dark) 8%, #1e1e2e);
  border-color: rgba(255,255,255,0.08);
}
[data-bs-theme="dark"] .dc-mat-table thead {
  background: var(--cluster-dark); color: #1a1a2e;
}
[data-bs-theme="dark"] .dc-buoy-result.floats {
  background: color-mix(in srgb, #22c55e 12%, #1e1e2e);
}
[data-bs-theme="dark"] .dc-buoy-result.sinks {
  background: color-mix(in srgb, #ef4444 12%, #1e1e2e);
}
[data-bs-theme="dark"] .dc-buoy-result.neutral {
  background: color-mix(in srgb, #3b82f6 12%, #1e1e2e);
}
@media (max-width: 575.98px) {
  .dc-hero-value { font-size: 1.75rem; }
  .dc-conv-grid { grid-template-columns: 1fr 1fr; }
  .dc-custom-row { grid-template-columns: 1fr; }
}
