/* ==========================================================================
   C-LAB3D Konfigurator & Admin-Vault Stylesheet
   Modern, Precision CAD-Engineering UI (Dark/Light Balance)
   ========================================================================== */

:root {
  /* Brand Colors */
  --c3d-bg: #f8fafc;
  --c3d-surface: #ffffff;
  --c3d-surface-muted: #f1f5f9;
  --c3d-surface-card: #ffffff;
  --c3d-border: #e2e8f0;
  --c3d-border-hover: #cbd5e1;
  --c3d-border-focus: #2563eb;

  /* Anthracite Slate Typography */
  --c3d-text-primary: #0f172a;
  --c3d-text-body: #334155;
  --c3d-text-muted: #64748b;
  --c3d-text-light: #94a3b8;

  /* High-Tech Blue Accents */
  --c3d-blue: #2563eb;
  --c3d-blue-hover: #1d4ed8;
  --c3d-blue-light: #eff6ff;
  --c3d-blue-border: #bfdbfe;
  --c3d-blue-glow: rgba(37, 99, 235, 0.25);
  --c3d-gradient-blue: linear-gradient(135deg, #2563eb 0%, #0284c7 100%);
  --c3d-gradient-subtle: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(2, 132, 199, 0.03) 100%);

  /* Status Colors */
  --c3d-green: #10b981;
  --c3d-green-bg: #ecfdf5;
  --c3d-green-border: #a7f3d0;
  --c3d-amber: #f59e0b;
  --c3d-amber-bg: #fffbeb;
  --c3d-amber-border: #fde68a;
  --c3d-red: #ef4444;
  --c3d-red-bg: #fef2f2;
  --c3d-red-border: #fecaca;

  /* Typography */
  --font-heading: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;

  /* Geometry & Radius */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-subtle: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-card: 0 4px 14px -2px rgba(15, 23, 42, 0.06), 0 2px 6px -1px rgba(15, 23, 42, 0.04);
  --shadow-elevated: 0 12px 28px -4px rgba(15, 23, 42, 0.1), 0 4px 10px -2px rgba(15, 23, 42, 0.04);
  --shadow-glow: 0 0 25px -4px rgba(37, 99, 235, 0.3);

  /* Admin Dark Mode Theme Variables */
  --vault-bg: #090d16;
  --vault-surface: #111827;
  --vault-surface-card: #162032;
  --vault-border: #1f293d;
  --vault-border-active: #3b82f6;
  --vault-text-primary: #f8fafc;
  --vault-text-secondary: #94a3b8;
  --vault-text-muted: #64748b;
  --vault-accent: #38bdf8;
}

/* Reset & Base */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  background-color: var(--c3d-bg);
  color: var(--c3d-text-body);
  font-family: var(--font-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* App Header */
.c3d-app-header {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--c3d-border);
  position: sticky;
  top: 0;
  z-index: 50;
  padding: 0.75rem 1.5rem;
}

.c3d-header-inner {
  max-width: 1680px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.c3d-brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  text-decoration: none;
  color: inherit;
}

.c3d-brand img {
  height: 48px;
  width: auto;
}

.c3d-brand-text {
  display: flex;
  flex-direction: column;
}

.c3d-brand-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--c3d-text-primary);
  line-height: 1.1;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.c3d-brand-badge {
  background: var(--c3d-blue-light);
  color: var(--c3d-blue);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: var(--radius-full);
  border: 1px solid var(--c3d-blue-border);
}

.c3d-brand-sub {
  font-size: 0.75rem;
  color: var(--c3d-text-muted);
}

.c3d-beta-badge {
  background: #eff6ff;
  color: #2563eb;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: var(--radius-full);
  border: 1px solid #bfdbfe;
  line-height: 1;
}

.c3d-beta-subbar {
  background: #f8fafc;
  border-bottom: 1px solid var(--c3d-border);
  padding: 0.35rem 1.5rem;
  font-size: 0.78rem;
  color: var(--c3d-text-secondary);
}

.c3d-beta-subbar-inner {
  max-width: 1680px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.c3d-beta-pill {
  background: #dbeafe;
  color: #1e40af;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  letter-spacing: 0.04em;
}

.c3d-beta-text {
  color: #475569;
}

.c3d-beta-link-btn {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #0284c7;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.c3d-beta-link-btn:hover {
  background-color: #f0f9ff;
  border-color: #38bdf8;
}

.c3d-header-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

/* Buttons */
.c3d-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 600;
  padding: 0.55rem 1.1rem;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
  text-decoration: none;
  white-space: nowrap;
}

.c3d-btn-sm {
  font-size: 0.8rem;
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-xs);
}

.c3d-btn-primary {
  background: var(--c3d-gradient-blue);
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
}

.c3d-btn-primary:hover {
  background: linear-gradient(135deg, #1d4ed8 0%, #0369a1 100%);
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35);
  transform: translateY(-1px);
}

.c3d-btn-secondary {
  background: var(--c3d-surface);
  color: var(--c3d-text-primary);
  border-color: var(--c3d-border);
}

.c3d-btn-secondary:hover {
  background: var(--c3d-surface-muted);
  border-color: var(--c3d-border-hover);
  color: var(--c3d-blue);
}

.c3d-btn-outline {
  background: transparent;
  color: var(--c3d-text-body);
  border-color: var(--c3d-border);
}

.c3d-btn-outline:hover {
  background: var(--c3d-surface-muted);
  border-color: var(--c3d-border-hover);
}

.c3d-btn-vault {
  background: #0f172a;
  color: #38bdf8;
  border: 1px solid #1e293b;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.3);
}

.c3d-btn-vault:hover {
  background: #1e293b;
  color: #7dd3fc;
  border-color: #38bdf8;
  box-shadow: 0 0 15px rgba(56, 189, 248, 0.25);
}

/* Main Layout Grid */
.c3d-main-wrapper {
  max-width: 1680px;
  margin: 0 auto;
  padding: 1.25rem 1.5rem 3rem;
}

.c3d-konfigurator-grid {
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 1200px) {
  .c3d-konfigurator-grid {
    grid-template-columns: 1fr;
  }
}

/* Left Column: 3D Stage & Geometry Stats */
.c3d-stage-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.c3d-viewport-card {
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
}

/* 3D Canvas Container */
.c3d-canvas-container {
  width: 100%;
  height: 520px;
  position: relative;
  background: radial-gradient(circle at 50% 40%, #f6f8fa 0%, #ebedf0 85%, #dce0e5 100%);
  cursor: grab;
  user-select: none;
}

.c3d-canvas-container:active {
  cursor: grabbing;
}

#c3d-three-canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
}

/* Viewport HUD Overlays */
.c3d-viewport-hud-top {
  position: absolute;
  top: 1rem;
  left: 1rem;
  right: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  pointer-events: none;
  z-index: 10;
}

.c3d-viewport-hud-top > * {
  pointer-events: auto;
}

.c3d-bed-info-pill {
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(8px);
  color: #f8fafc;
  padding: 0.35rem 0.75rem;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-family: var(--font-mono);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: var(--shadow-subtle);
}

.c3d-bed-info-pill .status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c3d-green);
  box-shadow: 0 0 8px var(--c3d-green);
}

.c3d-view-controls {
  display: flex;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  padding: 3px;
  gap: 2px;
  box-shadow: var(--shadow-subtle);
}

.c3d-view-btn {
  background: transparent;
  border: none;
  padding: 0.35rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c3d-text-body);
  border-radius: var(--radius-xs);
  cursor: pointer;
  transition: all 0.15s;
}

.c3d-view-btn:hover {
  background: var(--c3d-surface-muted);
  color: var(--c3d-blue);
}

/* Viewport Bottom Controls */
.c3d-viewport-hud-bottom {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  pointer-events: none;
  z-index: 10;
}

.c3d-viewport-hud-bottom > * {
  pointer-events: auto;
}

.c3d-hud-actions-left {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.c3d-hud-badge {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid var(--c3d-border);
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-md);
  font-size: 0.78rem;
  font-weight: 600;
  box-shadow: var(--shadow-subtle);
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

/* Overhang Heatmap Legend */
.c3d-heatmap-legend {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.85rem;
  box-shadow: var(--shadow-subtle);
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.c3d-legend-item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 500;
}

.c3d-legend-color {
  width: 10px;
  height: 10px;
  border-radius: 2px;
}

.c3d-legend-color.green { background: #10b981; }
.c3d-legend-color.yellow { background: #f59e0b; }
.c3d-legend-color.red { background: #ef4444; }

/* Dropzone Overlay (when dragging file over viewport or initial state) */
.c3d-dropzone-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(10, 16, 24, 0.92);
  backdrop-filter: blur(4px);
  z-index: 20;
  padding: 2rem;
  text-align: center;
  transition: all 0.2s ease;
  border: 2px dashed var(--c3d-blue-border);
}

.c3d-dropzone-overlay.drag-over {
  background: rgba(11, 31, 56, 0.96);
  border-color: var(--c3d-blue);
  box-shadow: inset 0 0 30px rgba(37, 99, 235, 0.15);
}

.c3d-dropzone-overlay.hidden {
  display: none !important;
}

.c3d-dropzone-icon {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--c3d-blue-light);
  color: var(--c3d-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  font-size: 2rem;
  box-shadow: var(--shadow-subtle);
  border: 1px solid var(--c3d-blue-border);
  animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.c3d-dropzone-title {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  margin-bottom: 0.35rem;
}

.c3d-dropzone-subtitle {
  color: var(--c3d-text-muted);
  font-size: 0.88rem;
  max-width: 440px;
  margin-bottom: 1.25rem;
}

.c3d-dropzone-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}

.c3d-file-input {
  display: none;
}

/* Loading Spinner Overlay */
.c3d-loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(5px);
  z-index: 30;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  transition: opacity 0.2s ease;
}

.c3d-loading-overlay.hidden {
  display: none !important;
}

.c3d-spinner {
  width: 44px;
  height: 44px;
  border: 3px solid var(--c3d-blue-light);
  border-top-color: var(--c3d-blue);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Stage Bottom Toolbar */
.c3d-stage-toolbar {
  padding: 0.75rem 1.15rem;
  background: var(--c3d-surface);
  border-top: 1px solid var(--c3d-border);
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.c3d-toolbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  flex-wrap: wrap;
  width: 100%;
}

.c3d-toolbar-row-scale {
  padding-top: 0.45rem;
  border-top: 1px dashed rgba(226, 232, 240, 0.5);
}

.c3d-scale-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  min-width: 260px;
}

.c3d-scale-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c3d-text-primary);
  white-space: nowrap;
}

.c3d-scale-slider-wrap {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex: 1;
}

.c3d-range-slider {
  flex: 1;
  height: 6px;
  border-radius: var(--radius-full);
  background: var(--c3d-surface-muted);
  outline: none;
  -webkit-appearance: none;
  accent-color: var(--c3d-blue);
  cursor: pointer;
}

.c3d-scale-val-badge {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 700;
  background: var(--c3d-surface-muted);
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius-xs);
  min-width: 52px;
  text-align: center;
  border: 1px solid var(--c3d-border);
}

.c3d-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Visual Appearance Toolbar Group & Pills */
.c3d-visual-mode-group {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.c3d-toolbar-section-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  white-space: nowrap;
}

.c3d-vis-pills {
  display: inline-flex;
  background: var(--c3d-surface-muted);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-full);
  padding: 3px;
  gap: 2px;
}

.c3d-vis-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  border-radius: var(--radius-full);
  border: none;
  background: transparent;
  color: var(--c3d-text-body);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s ease;
  white-space: nowrap;
}

.c3d-vis-btn:hover {
  color: var(--c3d-blue);
  background: rgba(37, 99, 235, 0.06);
}

.c3d-vis-btn.active {
  background: var(--c3d-surface);
  color: var(--c3d-blue);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1);
  font-weight: 700;
}

.c3d-opacity-control-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.2rem 0.65rem;
  background: rgba(2, 132, 199, 0.06);
  border: 1px solid rgba(2, 132, 199, 0.2);
  border-radius: var(--radius-full);
  min-width: 170px;
}

.c3d-opacity-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c3d-blue);
  white-space: nowrap;
}

/* Geometry Metrics Cards Grid */
.c3d-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

@media (max-width: 900px) {
  .c3d-metrics-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.c3d-metric-card {
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.85rem 1rem;
  box-shadow: var(--shadow-subtle);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.c3d-metric-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-metric-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c3d-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.c3d-metric-icon {
  font-size: 0.95rem;
  opacity: 0.75;
}

.c3d-metric-value {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  line-height: 1.15;
}

.c3d-metric-sub {
  font-size: 0.75rem;
  color: var(--c3d-text-muted);
}

/* Machbarkeit & Printability Score Card */
.c3d-feasibility-card {
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow-subtle);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.c3d-feasibility-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-feasibility-title {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.c3d-score-badge {
  padding: 0.3rem 0.75rem;
  border-radius: var(--radius-full);
  font-size: 0.82rem;
  font-weight: 700;
  font-family: var(--font-mono);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.c3d-score-badge.excellent {
  background: var(--c3d-green-bg);
  color: #065f46;
  border: 1px solid var(--c3d-green-border);
}

.c3d-score-badge.warning {
  background: var(--c3d-amber-bg);
  color: #92400e;
  border: 1px solid var(--c3d-amber-border);
}

.c3d-score-badge.critical {
  background: var(--c3d-red-bg);
  color: #fca5a5;
  border: 1px solid var(--c3d-red-border);
}

.c3d-progress-stacked {
  height: 8px;
  width: 100%;
  background: var(--c3d-surface-muted);
  border-radius: var(--radius-full);
  display: flex;
  overflow: hidden;
}

.c3d-progress-segment {
  height: 100%;
  transition: width 0.3s ease;
}

.c3d-progress-segment.green { background: var(--c3d-green); }
.c3d-progress-segment.yellow { background: var(--c3d-amber); }
.c3d-progress-segment.red { background: var(--c3d-red); }

.c3d-feasibility-legend {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--c3d-text-muted);
}

/* Compact Overhang / Geometry Advisory Banner */
.c3d-internal-overhang-alert {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid #7f1d1d;
  border-left: 4px solid #ef4444;
  border-radius: var(--radius-md, 8px);
  padding: 0.55rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  box-shadow: 0 2px 8px rgba(239, 68, 68, 0.08);
  margin-top: 0.5rem;
  animation: fadeInDown 0.25s ease;
}

.c3d-internal-overhang-alert.warning {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid #92400e;
  border-left: 4px solid #f59e0b;
}

.c3d-internal-overhang-alert.hidden {
  display: none !important;
}

.c3d-internal-overhang-alert .alert-compact-content {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex: 1;
  min-width: 0;
}

.c3d-internal-overhang-alert .alert-icon-pill {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(239, 68, 68, 0.18);
  color: #fca5a5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.c3d-internal-overhang-alert.warning .alert-icon-pill {
  background: rgba(245, 158, 11, 0.18);
  color: #fcd34d;
}

.c3d-internal-overhang-alert .alert-text-body {
  font-size: 0.78rem;
  color: #fca5a5;
  line-height: 1.35;
  flex: 1;
}

.c3d-internal-overhang-alert.warning .alert-text-body {
  color: #78350f;
}

.c3d-internal-overhang-alert .alert-text-body strong {
  font-weight: 700;
  margin-right: 0.35rem;
}

.c3d-internal-overhang-alert .alert-close-btn {
  background: transparent;
  border: none;
  font-size: 1rem;
  line-height: 1;
  color: #fca5a5;
  cursor: pointer;
  padding: 0.3rem 0.45rem;
  border-radius: 4px;
  transition: all 0.15s;
  flex-shrink: 0;
}

.c3d-internal-overhang-alert.warning .alert-close-btn {
  color: #92400e;
}

.c3d-internal-overhang-alert .alert-close-btn:hover {
  background: rgba(0, 0, 0, 0.08);
  color: #000000;
}

.c3d-score-badge.critical-internal {
  background: #7f1d1d !important;
  color: #fecaca !important;
  border-color: #ef4444 !important;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.4);
  animation: pulseCritical 2s infinite ease-in-out;
}

@keyframes pulseCritical {
  0%, 100% { box-shadow: 0 0 10px rgba(239, 68, 68, 0.3); }
  50% { box-shadow: 0 0 16px rgba(239, 68, 68, 0.6); }
}

/* Right Column: Configurator Panel */
.c3d-sidebar-column {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.c3d-config-card {
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* Accordion Card Mechanics & Smooth Slider Animations */
.c3d-accordion-card {
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  padding: 1.1rem 1.25rem;
  gap: 0.85rem;
}

.c3d-accordion-header {
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-title-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.c3d-accordion-toggle-btn {
  background: var(--c3d-surface-muted);
  border: 1px solid var(--c3d-border);
  width: 28px;
  height: 28px;
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--c3d-text-muted);
  transition: all 0.2s ease;
}

.c3d-accordion-toggle-btn:hover {
  background: var(--c3d-blue-light);
  border-color: var(--c3d-blue-border);
  color: var(--c3d-blue);
}

.c3d-accordion-chevron {
  display: inline-block;
  font-size: 0.85rem;
  line-height: 1;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.c3d-accordion-card.open .c3d-accordion-chevron {
  transform: rotate(180deg);
}

/* Summary Bar (displayed when accordion card is collapsed) */
.c3d-accordion-summary-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  background: var(--c3d-surface-muted);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.65rem 0.85rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.c3d-accordion-summary-bar:hover {
  background: #f1f5f9;
  border-color: var(--c3d-border-hover);
}

.c3d-accordion-card.open .c3d-accordion-summary-bar {
  display: none !important;
}

.c3d-summary-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.c3d-summary-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.c3d-summary-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-shadow: 0 0 0 1px var(--c3d-border);
  flex-shrink: 0;
}

.c3d-summary-text-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.25;
  min-width: 0;
  overflow: hidden;
  flex: 1;
}

.c3d-summary-title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  overflow: hidden;
}

.c3d-summary-title-row strong,
.c3d-summary-text-group strong {
  font-size: 0.88rem;
  font-family: var(--font-heading);
  color: var(--c3d-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c3d-summary-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--c3d-blue);
  background: var(--c3d-blue-light);
  padding: 1px 6px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.3;
}

.c3d-summary-sub {
  font-size: 0.74rem;
  color: var(--c3d-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c3d-summary-specs {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--c3d-text-muted);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c3d-summary-action-btn {
  background: #ffffff;
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-xs);
  padding: 0.35rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c3d-blue);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.c3d-summary-action-btn:hover {
  background: var(--c3d-blue-light);
  border-color: var(--c3d-blue-border);
}

/* Accordion Body with smooth max-height animation */
.c3d-accordion-body {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height 0.38s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.28s ease, margin 0.28s ease;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.c3d-accordion-card.open .c3d-accordion-body {
  max-height: 3500px;
  opacity: 1;
  pointer-events: auto;
  margin-top: 0.25rem;
}

.c3d-section-title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-section-title span.tag {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--c3d-blue);
  background: var(--c3d-blue-light);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}

/* Form Groups */
.c3d-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.c3d-form-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c3d-text-primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-form-label small {
  font-weight: normal;
  color: var(--c3d-text-muted);
}

/* Material Selection Cards */
.c3d-material-selector-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  width: 100%;
  min-width: 0;
}

.c3d-mat-radio-card {
  position: relative;
  cursor: pointer;
  min-width: 0;
  width: 100%;
}

.c3d-mat-radio-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.c3d-mat-card-body {
  border: 1.5px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.65rem 0.75rem;
  transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
  background: var(--c3d-surface);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  height: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.c3d-mat-radio-card:hover .c3d-mat-card-body {
  border-color: var(--c3d-border-hover);
  background: var(--c3d-surface-muted);
}

.c3d-mat-radio-card input:checked + .c3d-mat-card-body {
  border-color: var(--c3d-blue);
  background: var(--c3d-blue-light);
  box-shadow: 0 0 0 1px var(--c3d-blue), var(--shadow-subtle);
}

.c3d-mat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  overflow: hidden;
  min-width: 0;
  width: 100%;
}

.c3d-mat-color-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-shadow: 0 0 0 1px var(--c3d-border);
  flex-shrink: 0;
}

.c3d-mat-category-tag {
  font-size: 0.63rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--c3d-text-muted);
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.c3d-mat-sku-tag {
  font-size: 0.60rem;
  color: #a9b8ca;
  font-family: monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 78px;
  flex-shrink: 1;
}

.c3d-mat-name {
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  margin: 0.2rem 0 0.1rem 0;
}

.c3d-mat-specs {
  font-size: 0.72rem;
  color: var(--c3d-text-muted);
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  margin-top: 0.15rem;
}

.c3d-mat-props {
  color: #93a3b7;
  white-space: nowrap;
  font-weight: 500;
}

.c3d-mat-price {
  font-size: 0.78rem;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}

/* Deaktivierte / gesperrte Materialien im 3D-Konfigurator */
.c3d-mat-radio-card.is-disabled {
  cursor: not-allowed !important;
  opacity: 0.65;
}

.c3d-mat-radio-card.is-disabled .c3d-mat-card-body {
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  filter: grayscale(40%);
}

.c3d-mat-radio-card.is-disabled:hover .c3d-mat-card-body {
  border-color: #cbd5e1 !important;
  background: #f8fafc !important;
  box-shadow: none !important;
  transform: none !important;
}

.c3d-mat-lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.62rem;
  font-weight: 700;
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.c3d-mat-unavailable-notice {
  font-size: 0.65rem;
  color: #b91c1c;
  font-weight: 600;
  margin-top: 0.15rem;
  line-height: 1.25;
}

.c3d-mat-price.is-disabled-price {
  color: #a9b8ca;
  text-decoration: line-through;
}

/* Material TDS Specs Box */
.c3d-tds-highlight-box {
  background: var(--c3d-surface-muted);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.75rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

.c3d-tds-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  text-align: center;
}

.c3d-tds-item {
  display: flex;
  flex-direction: column;
}

.c3d-tds-val {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--c3d-blue);
}

.c3d-tds-lbl {
  font-size: 0.68rem;
  color: var(--c3d-text-muted);
}

/* Proportional Dimension Direct Inputs */
.c3d-dim-input-wrapper {
  display: flex;
  align-items: center;
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  padding: 0.15rem 0.4rem;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.c3d-dim-input-wrapper:focus-within {
  border-color: var(--c3d-blue);
  box-shadow: 0 0 0 2px var(--c3d-blue-light);
}

.c3d-dim-input {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  background: transparent;
  border: none;
  width: 100%;
  outline: none;
  padding: 0.1rem 0.2rem;
}

.c3d-dim-unit {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--c3d-text-muted);
  user-select: none;
}

/* Extended Material Details Box */
.c3d-mat-detail-box {
  background: linear-gradient(135deg, rgba(240, 249, 255, 0.9) 0%, rgba(248, 250, 252, 0.95) 100%);
  border: 1px solid rgba(186, 230, 253, 0.8);
  border-radius: var(--radius-md);
  padding: 0.85rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.05);
}

.c3d-mat-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.c3d-mat-detail-title-group {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.c3d-mat-detail-title-group strong {
  font-family: var(--font-heading);
  font-size: 0.92rem;
  color: var(--c3d-text-primary);
}

.c3d-mat-detail-category-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #0369a1;
}

.c3d-mat-detail-sku {
  font-family: monospace;
  font-size: 0.75rem;
  font-weight: 600;
  color: #0284c7;
  background: rgba(2, 132, 199, 0.08);
  padding: 2px 6px;
  border-radius: 4px;
}

.c3d-mat-detail-char {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.35;
}

.c3d-mat-detail-desc {
  font-size: 0.78rem;
  color: #475569;
  line-height: 1.4;
}

.c3d-mat-detail-apps {
  background: rgba(255, 255, 255, 0.7);
  border: 1px dashed rgba(2, 132, 199, 0.25);
  border-radius: var(--radius-sm);
  padding: 0.45rem 0.65rem;
  font-size: 0.76rem;
  color: #334155;
  line-height: 1.35;
}

.c3d-mat-detail-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #0369a1;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(186, 230, 253, 0.6);
  flex-wrap: wrap;
  gap: 0.4rem;
}

/* Profiles Selector */
.c3d-profile-pills {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
}

.c3d-profile-btn {
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  padding: 0.5rem 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c3d-text-body);
  cursor: pointer;
  text-align: center;
  transition: all 0.15s;
}

.c3d-profile-btn:hover {
  background: var(--c3d-surface-muted);
}

.c3d-profile-btn.active {
  background: var(--c3d-blue);
  color: #ffffff;
  border-color: var(--c3d-blue);
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3);
}

/* Load Direction & Mechanical Strength Indicator */
.c3d-load-section {
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  padding: 0.85rem;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.c3d-load-toggle-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.c3d-load-toggle-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.6rem 0.5rem;
  border-radius: var(--radius-sm);
  border: 1.5px solid var(--c3d-border);
  background: var(--c3d-surface);
  cursor: pointer;
  text-align: center;
  transition: all 0.2s;
}

.c3d-load-toggle-btn:hover {
  border-color: var(--c3d-border-hover);
  background: var(--c3d-surface-muted);
}

.c3d-load-toggle-btn.active {
  border-color: var(--c3d-blue);
  background: var(--c3d-blue-light);
  box-shadow: 0 0 0 1px var(--c3d-blue);
}

.c3d-load-icon {
  font-size: 1.25rem;
}

.c3d-load-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
}

.c3d-load-subtitle {
  font-size: 0.68rem;
  color: var(--c3d-text-muted);
}

.c3d-strength-result-box {
  background: var(--c3d-surface-muted);
  border-radius: var(--radius-sm);
  padding: 0.65rem 0.85rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
}

.c3d-strength-range {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
}

.c3d-delamination-warning {
  background: var(--c3d-red-bg);
  border: 1px solid var(--c3d-red-border);
  color: #fca5a5;
  border-radius: var(--radius-sm);
  padding: 0.65rem 0.85rem;
  font-size: 0.75rem;
  line-height: 1.4;
  display: flex;
  gap: 0.45rem;
  align-items: flex-start;
}

.c3d-delamination-warning.hidden {
  display: none;
}

/* Step 3 Advisory & Disclaimer Notice */
.c3d-advisory-box {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-left: 4px solid #f59e0b;
  border-radius: var(--radius-sm);
  padding: 0.75rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.c3d-advisory-header {
  font-size: 0.82rem;
  font-weight: 700;
  color: #92400e;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.c3d-advisory-desc {
  font-size: 0.76rem;
  color: #78350f;
  line-height: 1.45;
  margin: 0;
}

.c3d-disclaimer-notice {
  background: var(--c3d-surface-muted);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  padding: 0.65rem 0.85rem;
  font-size: 0.72rem;
  color: var(--c3d-text-muted);
  line-height: 1.45;
}

.c3d-disclaimer-notice em {
  font-style: normal;
  display: block;
}

/* Quantity & Express */
.c3d-options-row {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0.85rem;
  align-items: center;
}

.c3d-qty-control {
  display: flex;
  align-items: center;
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--c3d-surface);
}

.c3d-qty-btn {
  background: var(--c3d-surface-muted);
  border: none;
  width: 36px;
  height: 38px;
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--c3d-text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}

.c3d-qty-btn:hover {
  background: var(--c3d-border);
}

.c3d-qty-input {
  width: 50px;
  border: none;
  text-align: center;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  outline: none;
}

.c3d-express-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c3d-text-primary);
}

.c3d-express-checkbox input {
  width: 16px;
  height: 16px;
  accent-color: var(--c3d-blue);
  cursor: pointer;
}

/* Price Calculation Box */
.c3d-pricing-card {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
  color: #f8fafc;
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Step 4 Plate Counter Box */
.c3d-plate-counter-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-md);
  padding: 0.65rem 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  transition: all 0.2s ease;
}

.c3d-plate-counter-box .plate-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.c3d-plate-counter-box .plate-text-group {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  flex: 1;
}

.c3d-plate-counter-box .plate-label {
  font-size: 0.72rem;
  color: #a9b8ca;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.c3d-plate-counter-box .plate-status-badge {
  font-size: 0.88rem;
  color: #38bdf8;
  font-weight: 700;
  font-family: var(--font-heading);
}

.c3d-plate-counter-box.multi-plate {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.35);
}

.c3d-plate-counter-box.multi-plate .plate-status-badge {
  color: #fbbf24;
}

.c3d-pricing-breakdown {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  font-size: 0.82rem;
  color: #cbd5e1;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  padding-bottom: 0.85rem;
}

.c3d-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.c3d-price-row.discount {
  color: #34d399;
}

.c3d-price-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.c3d-total-label {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: #ffffff;
}

.c3d-total-amount-box {
  text-align: right;
}

.c3d-total-price {
  font-family: var(--font-heading);
  font-size: 1.85rem;
  font-weight: 700;
  color: #38bdf8;
  line-height: 1;
}

.c3d-total-tax-note {
  font-size: 0.72rem;
  color: #a9b8ca;
  margin-top: 0.2rem;
}

/* Price Estimate Disclaimer */
.c3d-price-estimate-disclaimer {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-md);
  padding: 0.65rem 0.85rem;
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.75rem;
  color: #a9b8ca;
  line-height: 1.45;
  margin-top: 0.35rem;
}

.c3d-price-estimate-disclaimer .disclaimer-icon {
  font-size: 1.1rem;
  line-height: 1;
  color: #38bdf8;
  flex-shrink: 0;
}

.c3d-price-estimate-disclaimer strong {
  color: #f1f5f9;
}

/* Customer Inquiry Form Section */
.c3d-inquiry-box {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.c3d-input {
  width: 100%;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--c3d-text-primary);
  background: var(--c3d-surface);
  outline: none;
  transition: border-color 0.15s;
}

.c3d-input:focus {
  border-color: var(--c3d-blue);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.c3d-textarea {
  min-height: 70px;
  resize: vertical;
}

/* Modal Overlay & Base */
.c3d-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.7);
  backdrop-filter: blur(8px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.c3d-modal-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.c3d-modal-window {
  background: var(--c3d-surface);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-elevated);
  max-width: 640px;
  width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(12px) scale(0.98);
  transition: transform 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.c3d-modal-backdrop.active .c3d-modal-window {
  transform: translateY(0) scale(1);
}

.c3d-modal-header {
  padding: 1.1rem 1.5rem;
  border-bottom: 1px solid var(--c3d-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c3d-modal-title {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--c3d-text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.c3d-modal-close-btn {
  background: transparent;
  border: none;
  font-size: 1.2rem;
  color: var(--c3d-text-muted);
  cursor: pointer;
  padding: 0.3rem;
  border-radius: var(--radius-xs);
  line-height: 1;
  transition: color 0.15s;
}

.c3d-modal-close-btn:hover {
  color: var(--c3d-text-primary);
}

.c3d-modal-body {
  padding: 1.5rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.c3d-modal-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--c3d-border);
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  background: var(--c3d-surface-muted);
}

/* ==========================================================================
   ADMIN VAULT STYLES (Dark Mode Dedicated Theme)
   ========================================================================== */

.c3d-vault-window {
  max-width: 980px;
  background: var(--vault-bg);
  color: var(--vault-text-primary);
  border: 1px solid var(--vault-border);
  box-shadow: 0 20px 45px -5px rgba(0, 0, 0, 0.6);
}

.c3d-vault-window .c3d-modal-header {
  border-bottom-color: var(--vault-border);
  background: var(--vault-surface);
}

.c3d-vault-window .c3d-modal-title {
  color: var(--vault-text-primary);
}

.c3d-vault-window .c3d-modal-close-btn {
  color: var(--vault-text-secondary);
}

.c3d-vault-window .c3d-modal-close-btn:hover {
  color: #ffffff;
}

.c3d-vault-window .c3d-modal-footer {
  border-top-color: var(--vault-border);
  background: var(--vault-surface);
}

/* Admin Vault Nav Tabs */
.c3d-vault-tabs {
  display: flex;
  border-bottom: 1px solid var(--vault-border);
  background: var(--vault-surface);
  padding: 0 1rem;
  gap: 0.35rem;
  overflow-x: auto;
}

.c3d-vault-tab-btn {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--vault-text-secondary);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.75rem 0.95rem;
  cursor: pointer;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  transition: all 0.15s;
}

.c3d-vault-tab-btn:hover {
  color: var(--vault-text-primary);
}

.c3d-vault-tab-btn.active {
  color: var(--vault-accent);
  border-bottom-color: var(--vault-accent);
  background: rgba(56, 189, 248, 0.05);
}

/* Admin Vault Tab Content Panes */
.c3d-vault-pane {
  display: none;
  flex-direction: column;
  gap: 1.25rem;
}

.c3d-vault-pane.active {
  display: flex;
}

.c3d-vault-card {
  background: var(--vault-surface);
  border: 1px solid var(--vault-border);
  border-radius: var(--radius-md);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.c3d-vault-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.c3d-vault-card-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
}

.c3d-vault-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (max-width: 680px) {
  .c3d-vault-grid-2 {
    grid-template-columns: 1fr;
  }
}

.c3d-vault-input-group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.c3d-vault-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--vault-text-secondary);
  display: flex;
  justify-content: space-between;
}

.c3d-vault-label span.unit {
  color: var(--vault-text-muted);
}

.c3d-vault-input {
  background: var(--vault-bg);
  border: 1px solid var(--vault-border);
  border-radius: var(--radius-sm);
  color: #f8fafc;
  padding: 0.55rem 0.85rem;
  font-family: var(--font-mono);
  font-size: 0.88rem;
  outline: none;
  transition: border-color 0.15s;
}

.c3d-vault-input:focus {
  border-color: var(--vault-accent);
  box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.2);
}

/* Material Management Table */
.c3d-mat-table-wrapper {
  overflow-x: auto;
  border: 1px solid var(--vault-border);
  border-radius: var(--radius-sm);
}

.c3d-mat-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  text-align: left;
}

.c3d-mat-table th {
  background: var(--vault-surface-card);
  color: var(--vault-text-secondary);
  font-weight: 600;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--vault-border);
  white-space: nowrap;
}

.c3d-mat-table td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--vault-border);
  color: var(--vault-text-primary);
  white-space: nowrap;
}

.c3d-mat-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

.c3d-table-actions {
  display: flex;
  gap: 0.35rem;
}

/* Admin PIN Gate View */
.c3d-pin-gate {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.5rem 1rem;
  gap: 1.25rem;
}

.c3d-pin-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.1);
  color: var(--vault-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  border: 1px solid rgba(56, 189, 248, 0.25);
}

.c3d-pin-input {
  max-width: 220px;
  font-family: var(--font-mono);
  font-size: 1.25rem;
  letter-spacing: 0.25em;
  text-align: center;
  padding: 0.6rem 1rem;
}

/* Simulation Payload Code Viewer */
.c3d-payload-pre {
  background: #090d16;
  color: #38bdf8;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  line-height: 1.45;
  padding: 1.25rem;
  border-radius: var(--radius-md);
  border: 1px solid #1e293b;
  overflow-x: auto;
  max-height: 400px;
}

/* Toast Notifications */
.c3d-toast {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  background: #0f172a;
  color: #f8fafc;
  padding: 0.75rem 1.25rem;
  border-radius: var(--radius-md);
  border: 1px solid #334155;
  box-shadow: var(--shadow-elevated);
  font-size: 0.85rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  z-index: 1000;
  transform: translateY(100px);
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.c3d-toast.show {
  transform: translateY(0);
  opacity: 1;
}

.c3d-toast.success { border-color: var(--c3d-green); }
.c3d-toast.error { border-color: var(--c3d-red); }
.c3d-toast.info { border-color: var(--c3d-blue); }

/* Proportional Dimension Direct Inputs */
.c3d-dim-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.c3d-dim-input {
  width: 100%;
  font-family: var(--font-heading, inherit);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--c3d-text-primary, #0f172a);
  background: var(--c3d-surface-muted, #f8fafc);
  border: 1.5px solid var(--c3d-border, #e2e8f0);
  border-radius: var(--radius-sm, 6px);
  padding: 0.25rem 2.2rem 0.25rem 0.5rem;
  line-height: 1.2;
  transition: all 0.2s ease;
}

.c3d-dim-input:hover {
  border-color: #cbd5e1;
}

.c3d-dim-input:focus {
  outline: none;
  border-color: var(--c3d-blue, #2563eb);
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.c3d-dim-unit {
  position: absolute;
  right: 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--c3d-text-muted, #64748b);
  pointer-events: none;
}

/* Extended Material Detail Box */
.c3d-mat-detail-box {
  background: var(--c3d-surface, #ffffff);
  border: 1px solid var(--c3d-border, #e2e8f0);
  border-left: 4px solid var(--c3d-blue, #2563eb);
  border-radius: var(--radius-md, 8px);
  padding: 1rem 1.15rem;
  margin-top: 0.85rem;
  box-shadow: var(--shadow-subtle, 0 1px 3px rgba(0,0,0,0.06));
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  animation: fadeIn 0.25s ease-out;
}

.c3d-mat-detail-box.hidden {
  display: none !important;
}

.c3d-mat-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.c3d-mat-detail-title-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.c3d-mat-detail-title-group strong {
  font-family: var(--font-heading, inherit);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--c3d-text-primary, #0f172a);
}

.c3d-mat-detail-category-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--c3d-blue-light, #eff6ff);
  color: var(--c3d-blue, #2563eb);
  border: 1px solid var(--c3d-blue-border, #bfdbfe);
}

.c3d-mat-detail-category-badge.badge-technisch {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
}

.c3d-mat-detail-category-badge.badge-compositecf {
  background: #f3e8ff;
  color: #6b21a8;
  border-color: #e9d5ff;
}

.c3d-mat-detail-category-badge.badge-flexibel {
  background: #ecfdf5;
  color: #065f46;
  border-color: #a7f3d0;
}

.c3d-mat-detail-sku {
  font-family: var(--font-mono, monospace);
  font-size: 0.72rem;
  color: #93a3b7;
  background: var(--c3d-surface-muted, #f8fafc);
  border: 1px solid var(--c3d-border, #e2e8f0);
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
}

.c3d-mat-detail-char {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--c3d-text-primary, #1e293b);
  line-height: 1.4;
}

.c3d-mat-detail-desc {
  font-size: 0.8rem;
  color: var(--c3d-text-muted, #64748b);
  line-height: 1.45;
}

.c3d-mat-detail-apps {
  font-size: 0.8rem;
  color: var(--c3d-text-primary, #1e293b);
  background: rgba(37, 99, 235, 0.05);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  line-height: 1.45;
}

.c3d-mat-detail-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.45rem;
  border-top: 1px dashed var(--c3d-border, #e2e8f0);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--c3d-text-muted, #64748b);
  flex-wrap: wrap;
}

/* ============================================================================
   HUD TOP-LEFT & ACTIVE FILE PILL
   ============================================================================ */
.c3d-hud-top-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.c3d-active-file-pill {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid var(--c3d-border);
  color: var(--c3d-text-primary);
  padding: 0.35rem 0.75rem;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-family: var(--font-heading);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  box-shadow: var(--shadow-subtle);
  max-width: 280px;
}

.c3d-active-file-pill #c3d-active-file-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
}

/* ============================================================================
   STEP 5: INQUIRY CAD ATTACHMENT BADGE & GDPR
   ============================================================================ */
.c3d-inquiry-file-badge {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--c3d-surface-muted, #f8fafc);
  border: 1px solid var(--c3d-border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  padding: 0.65rem 0.85rem;
  margin-bottom: 0.85rem;
}

.c3d-inquiry-file-icon {
  font-size: 1.3rem;
  flex-shrink: 0;
}

.c3d-inquiry-file-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.c3d-inquiry-file-meta strong {
  font-size: 0.82rem;
  color: var(--c3d-text-primary, #0f172a);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c3d-inquiry-file-meta span {
  font-size: 0.72rem;
  color: var(--c3d-text-muted, #64748b);
}

.c3d-btn-xs {
  padding: 0.25rem 0.5rem;
  font-size: 0.72rem;
  border-radius: var(--radius-xs, 4px);
  font-weight: 600;
}

.c3d-gdpr-box {
  margin-top: 0.75rem;
  margin-bottom: 0.35rem;
  padding: 0.55rem 0.75rem;
  background: rgba(37, 99, 235, 0.04);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: var(--radius-sm, 6px);
}

.c3d-gdpr-label {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.72rem;
  color: var(--c3d-text-body, #334155);
  line-height: 1.4;
  cursor: pointer;
}

.c3d-gdpr-label input[type="checkbox"] {
  margin-top: 2px;
  cursor: pointer;
  accent-color: var(--c3d-blue);
  flex-shrink: 0;
}

/* ==========================================================================
   2-STEP ONBOARDING & CAD-UPLOAD MODAL
   ========================================================================== */
.c3d-onboarding-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.78);
  backdrop-filter: blur(8px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  opacity: 1;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.hidden {
  display: none !important;
}

.c3d-onboarding-overlay.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  display: none !important;
}

.c3d-onboarding-modal {
  background: #ffffff;
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: var(--radius-lg, 16px);
  box-shadow: 0 25px 60px -15px rgba(15, 23, 42, 0.25);
  max-width: 648px;
  width: 94%;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  animation: scaleInModal 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes scaleInModal {
  from { transform: scale(0.95); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.c3d-onboarding-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.15rem 1.75rem;
  border-bottom: 1px solid #f1f5f9;
}

.c3d-onboarding-brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.c3d-onboarding-logo {
  height: 44px;
  width: auto;
}

.c3d-onboarding-title-wrap h2 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.c3d-onboarding-subtitle,
.c3d-onboarding-step-indicator {
  font-size: 0.78rem;
  color: #0284c7;
  font-weight: 600;
}

.c3d-onboarding-close-btn {
  background: transparent;
  border: none;
  font-size: 1.25rem;
  color: #a9b8ca;
  cursor: pointer;
  padding: 0.35rem 0.6rem;
  border-radius: var(--radius-sm, 6px);
  transition: all 0.15s;
}

.c3d-onboarding-close-btn:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.c3d-onboarding-body {
  padding: 1.25rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.c3d-onboarding-top-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 0.85rem;
  align-items: stretch;
}

@media (max-width: 720px) {
  .c3d-onboarding-top-grid {
    grid-template-columns: 1fr;
  }
}

.c3d-onboarding-intro-card {
  background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
  border: 1px solid #dbeafe;
  border-radius: var(--radius-md, 10px);
  padding: 0.9rem 1.1rem;
}

.c3d-onboarding-badge {
  display: inline-block;
  background: #0284c7;
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  margin-bottom: 0.35rem;
}

.c3d-onboarding-lead {
  font-size: 0.85rem;
  color: #334155;
  line-height: 1.45;
  margin: 0;
}

.c3d-onboarding-legal-box {
  display: flex;
  gap: 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md, 10px);
  padding: 0.9rem 1.1rem;
  align-items: flex-start;
}

.c3d-legal-badge-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(2, 132, 199, 0.08);
  border: 1px solid #e0f2fe;
  flex-shrink: 0;
}

.c3d-legal-content h4 {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.25rem 0;
}

.c3d-legal-content p {
  font-size: 0.8rem;
  color: #475569;
  line-height: 1.4;
  margin: 0;
}

.c3d-onboarding-specs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

@media (max-width: 680px) {
  .c3d-onboarding-specs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.c3d-spec-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md, 10px);
  padding: 0.75rem 0.9rem;
  display: flex;
  flex-direction: column;
}

.c3d-spec-card .spec-label {
  font-size: 0.65rem;
  font-weight: 700;
  color: #93a3b7;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.c3d-spec-card .spec-value {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0.18rem 0;
}

.c3d-spec-card .spec-sub {
  font-size: 0.7rem;
  color: #a9b8ca;
}

.c3d-onboarding-dropzone {
  border: 2px dashed #93c5fd;
  background: rgba(239, 246, 255, 0.45);
  border-radius: var(--radius-md, 12px);
  padding: 1.25rem 1.25rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.c3d-onboarding-dropzone:hover, .c3d-onboarding-dropzone.dragover, .c3d-onboarding-dropzone.drag-over {
  border-color: #0284c7;
  background: rgba(224, 242, 254, 0.75);
  transform: translateY(-1px);
}

.c3d-onboarding-dropzone .dropzone-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.4rem;
}

.c3d-onboarding-dropzone h3 {
  font-size: 0.98rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.25rem 0;
}

.c3d-onboarding-dropzone p {
  font-size: 0.8rem;
  color: #93a3b7;
  margin: 0 0 0.45rem 0;
}

.dropzone-formats-badge {
  display: inline-block;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  color: #475569;
}

.c3d-onboarding-checkbox-row {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-md, 10px);
  padding: 0.65rem 0.85rem;
  transition: border-color 0.15s, background-color 0.15s;
}

.c3d-onboarding-checkbox-row:has(input:checked) {
  border-color: #0284c7;
  background: rgba(2, 132, 199, 0.04);
}

.c3d-custom-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.8rem;
  color: #1e293b;
  cursor: pointer;
  line-height: 1.4;
}

.c3d-custom-checkbox-label input {
  margin-top: 2px;
  cursor: pointer;
  accent-color: #0284c7;
  flex-shrink: 0;
}

.c3d-custom-checkbox-label a {
  color: #0284c7;
  font-weight: 600;
  text-decoration: underline;
}

.c3d-onboarding-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid #f1f5f9;
  padding-top: 0.85rem;
  flex-wrap: wrap;
}

/* Per-upload AGB confirmation (kept above the onboarding dialog) */
.c3d-upload-consent-overlay {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(15, 23, 42, 0.82);
  backdrop-filter: blur(8px);
}

.c3d-upload-consent-overlay.hidden {
  display: none !important;
}

.c3d-upload-consent-modal {
  max-width: 520px;
  width: 100%;
}

#btn-upload-consent-continue:disabled {
  background: #cbd5e1 !important;
  color: #93a3b7 !important;
  border-color: #cbd5e1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  opacity: 0.85;
}

#btn-onboarding-use-demo {
  border: 1px solid #cbd5e1 !important;
  background: #ffffff;
  color: #334155;
  transition: all 0.15s;
}

#btn-onboarding-use-demo:hover {
  background: #f8fafc;
  border-color: #a9b8ca !important;
}

/* Tooltip Wrapper and Floating Tooltip for Onboarding Button */
.c3d-onboarding-btn-wrapper {
  position: relative;
  display: inline-flex;
}

.c3d-onboarding-tooltip {
  position: absolute;
  bottom: calc(100% + 12px);
  right: 0;
  background: #0f172a;
  color: #ffffff;
  font-size: 0.75rem;
  line-height: 1.4;
  font-weight: 500;
  padding: 0.6rem 0.9rem;
  border-radius: 8px;
  box-shadow: 0 10px 25px -4px rgba(15, 23, 42, 0.4);
  white-space: normal;
  width: 290px;
  text-align: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s ease;
  z-index: 1000;
}

.c3d-onboarding-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  right: 36px;
  border-width: 6px;
  border-style: solid;
  border-color: #0f172a transparent transparent transparent;
}

/* Show tooltip when hovering over the wrapper while disabled */
.c3d-onboarding-btn-wrapper.is-disabled:hover .c3d-onboarding-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Button States: Gray and not clickable when unchecked, colored and active when checked */
#btn-onboarding-step1-next:disabled {
  background: #cbd5e1 !important;
  color: #93a3b7 !important;
  border-color: #cbd5e1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  opacity: 0.85;
  pointer-events: none;
}

#btn-onboarding-step1-next:not(:disabled) {
  background: #0284c7 !important;
  color: #ffffff !important;
  border-color: #0284c7 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(2, 132, 199, 0.25);
  transition: all 0.2s ease;
}

#btn-onboarding-step1-next:not(:disabled):hover {
  background: #0369a1 !important;
  border-color: #0369a1 !important;
  transform: translateY(-1px);
}

/* ==========================================================================
   TDS TECHNICAL SPECS CARDS GRID (MATCHING SCREENSHOT 3)
   ========================================================================== */
.c3d-tds-highlight-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md, 10px);
  padding: 1rem;
  margin-top: 0.75rem;
}

.c3d-tds-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.c3d-tds-section-title {
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #334155;
}

.c3d-tds-badge {
  font-size: 0.7rem;
  font-weight: 600;
  background: #e0f2fe;
  color: #0369a1;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
}

.c3d-tds-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  width: 100%;
  min-width: 0;
}

@media (max-width: 480px) {
  .c3d-tds-cards-grid {
    grid-template-columns: 1fr;
  }
}

.c3d-tds-metric-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm, 8px);
  padding: 0.65rem 0.75rem;
  display: flex;
  flex-direction: column;
  transition: all 0.15s ease;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.c3d-tds-metric-card:hover {
  border-color: #93c5fd;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}

.c3d-tds-metric-card .tds-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #93a3b7;
  margin-bottom: 0.2rem;
}

.c3d-tds-metric-card .tds-value {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0284c7;
  line-height: 1.2;
}

.c3d-tds-metric-card .tds-norm {
  font-size: 0.68rem;
  color: #a9b8ca;
  margin-top: 0.2rem;
}

/* ==========================================================================
   3D DIMENSION BADGES & PLACE ON FACE BANNER
   ========================================================================== */
.c3d-3d-dim-badge {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: none;
  font-size: 0.72rem;
  font-weight: 700;
  font-family: var(--font-mono, monospace);
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  z-index: 15;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.c3d-3d-dim-badge.dim-x {
  background: rgba(185, 28, 28, 0.95);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.c3d-3d-dim-badge.dim-y {
  background: rgba(21, 128, 61, 0.95);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.c3d-3d-dim-badge.dim-z {
  background: rgba(30, 64, 175, 0.95);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.c3d-face-select-banner {
  position: absolute;
  top: 4.5rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(15, 23, 42, 0.95);
  backdrop-filter: blur(10px);
  color: #ffffff;
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  z-index: 100;
  pointer-events: auto;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(56, 189, 248, 0.5);
  animation: slideDownBanner 0.25s ease;
  max-width: 90%;
}

@keyframes slideDownBanner {
  from { transform: translate(-50%, -15px); opacity: 0; }
  to { transform: translate(-50%, 0); opacity: 1; }
}

.c3d-face-select-banner .banner-text {
  color: #f1f5f9;
}

.c3d-face-select-banner strong {
  color: #38bdf8;
}

/* 7 Profile Pills Grid */
.c3d-profile-pills {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.5rem;
}

/* Wide Preiszusammensetzung Grid Layout (Under 3D Feasibility Score) */
.c3d-pricing-content-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 960px) {
  .c3d-pricing-content-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.c3d-pricing-left-pane {
  display: flex;
  flex-direction: column;
}

.c3d-pricing-right-pane {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.c3d-price-total-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-md);
  padding: 1.1rem 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.c3d-total-header .c3d-total-label {
  font-size: 0.88rem;
  color: #a9b8ca;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.c3d-total-header .c3d-total-tax-note {
  font-size: 0.75rem;
  color: #93a3b7;
  margin-top: 2px;
}

/* ==========================================================================
   INQUIRY SUBMISSION POPUP & SENDING ANIMATION
   ========================================================================== */
.c3d-send-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}

.c3d-send-popup-overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.c3d-send-popup-card {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 25px 65px -12px rgba(15, 23, 42, 0.35), 0 0 0 1px rgba(226, 232, 240, 0.9);
  max-width: 480px;
  width: 100%;
  padding: 2.25rem 2rem;
  text-align: center;
  position: relative;
  transform: translateY(20px) scale(0.96);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  font-family: inherit;
  color: #0f172a;
}

.c3d-send-popup-overlay.active .c3d-send-popup-card {
  transform: translateY(0) scale(1);
}

.c3d-send-popup-close-x {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: #f1f5f9;
  color: #93a3b7;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.c3d-send-popup-close-x:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.c3d-send-icon-wrapper {
  position: relative;
  width: 84px;
  height: 84px;
  margin: 0 auto 1.35rem auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c3d-send-pulse-ring {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 2px solid rgba(2, 132, 199, 0.4);
  animation: c3d-ring-pulse 2s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c3d-send-pulse-ring-2 {
  position: absolute;
  inset: -18px;
  border-radius: 50%;
  border: 1.5px solid rgba(2, 132, 199, 0.2);
  animation: c3d-ring-pulse 2s infinite cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s;
}

@keyframes c3d-ring-pulse {
  0% { transform: scale(0.75); opacity: 0.95; }
  100% { transform: scale(1.35); opacity: 0; }
}

.c3d-send-badge-center {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0284c7, #2563eb);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.45);
  position: relative;
  z-index: 2;
}

.c3d-send-plane-icon {
  animation: c3d-plane-float 2s ease-in-out infinite alternate;
}
@keyframes c3d-plane-float {
  0% { transform: translate(-2px, 2px) rotate(0deg); }
  100% { transform: translate(3px, -3px) rotate(4deg); }
}

.c3d-send-badge-success {
  background: linear-gradient(135deg, #10b981, #059669);
  box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.45);
  animation: c3d-success-pop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes c3d-success-pop {
  0% { transform: scale(0.4); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.c3d-send-badge-error {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.45);
}

.c3d-send-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.5rem 0;
  line-height: 1.3;
}

.c3d-send-subtitle {
  font-size: 0.92rem;
  color: #93a3b7;
  margin: 0 0 1.25rem 0;
  line-height: 1.5;
}

.c3d-send-progress-bar {
  width: 100%;
  height: 6px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
  position: relative;
  margin: 1.25rem 0 0.75rem 0;
}
.c3d-send-progress-bar-fill {
  position: absolute;
  height: 100%;
  width: 45%;
  background: linear-gradient(90deg, #0284c7, #38bdf8, #0284c7);
  border-radius: 999px;
  animation: c3d-shimmer-run 1.4s infinite ease-in-out;
}
@keyframes c3d-shimmer-run {
  0% { left: -45%; }
  100% { left: 100%; }
}

.c3d-send-status-text {
  font-size: 0.82rem;
  font-weight: 500;
  color: #0284c7;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.c3d-send-id-card {
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  border-radius: 12px;
  padding: 1rem 1.1rem;
  margin: 1.25rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.c3d-send-id-card-label {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #93a3b7;
}
.c3d-send-id-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}
.c3d-send-id-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.25rem;
  font-weight: 800;
  color: #0284c7;
  letter-spacing: 0.04em;
  background: #e0f2fe;
  padding: 0.25rem 0.65rem;
  border-radius: 8px;
  user-select: all;
}
.c3d-send-copy-btn {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.35rem 0.75rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: all 0.2s ease;
}
.c3d-send-copy-btn:hover {
  background: #f1f5f9;
  border-color: #a9b8ca;
  color: #0f172a;
}
.c3d-send-copy-btn.copied {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #059669;
}

.c3d-send-email-box {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  padding: 0.95rem 1.1rem;
  color: #166534;
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: left;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 1.25rem;
}
.c3d-send-email-icon {
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}

.c3d-send-actions {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 1rem;
}
.c3d-send-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.85rem 1.25rem;
  border-radius: 10px;
  background: linear-gradient(135deg, #0284c7, #2563eb);
  color: #ffffff !important;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none !important;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(2, 132, 199, 0.35);
  transition: all 0.2s ease;
}
.c3d-send-btn-primary:hover {
  opacity: 0.95;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(2, 132, 199, 0.45);
}
.c3d-send-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.75rem 1.25rem;
  border-radius: 10px;
  background: #f1f5f9;
  color: #475569;
  font-weight: 600;
  font-size: 0.9rem;
  border: 1px solid #e2e8f0;
  cursor: pointer;
  transition: all 0.2s ease;
}
.c3d-send-btn-secondary:hover {
  background: #e2e8f0;
  color: #1e293b;
}



/* ==========================================================================
   MULTI-PLATE MANAGER, LOADER PROGRESS & PLATE OVERFLOW (v3.0)
   ========================================================================== */

/* --- Druckplatten-Leiste direkt über dem 3D-Canvas --- */
.c3d-plate-manager {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.c3d-plate-tabs-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.c3d-plate-manager-label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--c3d-text-light);
  padding-right: 0.35rem;
  border-right: 1px solid var(--c3d-border);
  line-height: 1.2;
}

.c3d-plate-tabs {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.c3d-plate-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.34rem 0.7rem;
  border-radius: 7px;
  border: 1px solid var(--c3d-border);
  background: #ffffff;
  color: var(--c3d-text-body);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.c3d-plate-tab:hover {
  border-color: var(--c3d-border-hover);
  background: var(--c3d-surface-muted);
}

.c3d-plate-tab.active {
  background: #0f172a;
  border-color: #0f172a;
  color: #f8fafc;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.c3d-plate-tab .c3d-plate-tab-count {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  background: rgba(37, 99, 235, 0.1);
  color: var(--c3d-blue);
}

.c3d-plate-tab.active .c3d-plate-tab-count {
  background: rgba(56, 189, 248, 0.22);
  color: #7dd3fc;
}

.c3d-add-plate-btn {
  border-style: dashed !important;
  color: var(--c3d-blue) !important;
  white-space: nowrap;
}

/* --- Bauteil-Chips & Transfer --- */
.c3d-part-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.c3d-part-chips {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  min-height: 26px;
}

.c3d-part-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.22rem 0.3rem 0.22rem 0.55rem;
  border-radius: 6px;
  border: 1px solid var(--c3d-border);
  background: var(--c3d-surface-muted);
  font-size: 0.73rem;
  color: var(--c3d-text-muted);
  transition: all 0.15s ease;
}

.c3d-part-chip.active {
  border-color: var(--c3d-blue);
  background: var(--c3d-blue-light);
  color: #1e3a8a;
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18);
}

.c3d-part-chip-btn {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  max-width: 230px;
}

.c3d-part-chip-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.c3d-part-chip-dims {
  font-family: var(--font-mono);
  font-size: 0.64rem;
  opacity: 0.75;
  white-space: nowrap;
}

.c3d-part-chip-remove {
  border: none;
  background: transparent;
  color: #a9b8ca;
  width: 18px;
  height: 18px;
  border-radius: 4px;
  line-height: 1;
  font-size: 0.8rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.c3d-part-chip-remove:hover {
  background: #fee2e2;
  color: #dc2626;
}

.c3d-part-empty {
  font-size: 0.74rem;
  color: var(--c3d-text-light);
  font-style: italic;
}

.c3d-part-transfer {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
}

.c3d-transfer-select {
  font-family: var(--font-body);
  font-size: 0.73rem;
  padding: 0.3rem 0.4rem;
  border: 1px solid var(--c3d-border);
  border-radius: 6px;
  background: #ffffff;
  color: var(--c3d-text-body);
  max-width: 150px;
}

.c3d-part-transfer.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

/* --- Staged Loader --- */
.c3d-loading-overlay {
  background: rgba(248, 250, 252, 0.92);
  backdrop-filter: blur(6px);
}

.c3d-loader-panel {
  width: min(340px, 86%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.4rem 1.5rem;
  background: #ffffff;
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-md);
  box-shadow: 0 18px 40px -12px rgba(15, 23, 42, 0.25);
}

.c3d-loader-title {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--c3d-text-primary, #f1f5f9);
  text-align: center;
  line-height: 1.4;
}

.c3d-loading-track {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
  position: relative;
}

.c3d-loading-fill {
  height: 100%;
  width: 0%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0284c7 0%, #2563eb 100%);
  transition: width 0.25s ease;
  box-shadow: 0 0 12px rgba(37, 99, 235, 0.5);
}

.c3d-loading-meta {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.67rem;
  letter-spacing: 0.02em;
  color: var(--c3d-text-light);
  text-transform: uppercase;
}

.c3d-loading-meta #c3d-loading-percent {
  color: var(--c3d-blue);
  font-weight: 700;
}

/* --- Bauraum-Überlauf Banner --- */
.c3d-plate-overflow {
  position: absolute;
  left: 50%;
  bottom: 4.6rem;
  transform: translateX(-50%);
  z-index: 22;
  width: min(430px, calc(100% - 2rem));
  background: rgba(69, 26, 3, 0.96);
  border: 1px solid rgba(251, 191, 36, 0.55);
  border-radius: var(--radius-md);
  padding: 0.85rem 0.95rem;
  box-shadow: 0 18px 38px -10px rgba(0, 0, 0, 0.55);
  color: #fef3c7;
  backdrop-filter: blur(6px);
}

.c3d-plate-overflow.hidden {
  display: none !important;
}

.c3d-plate-overflow-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
}

.c3d-plate-overflow-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fbbf24;
  color: #451a03;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.78rem;
  flex-shrink: 0;
}

.c3d-plate-overflow p {
  margin: 0 0 0.6rem;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #fde68a;
}

.c3d-plate-overflow-actions {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.c3d-plate-overflow-actions .c3d-btn-outline {
  border-color: rgba(253, 230, 138, 0.45) !important;
  color: #fef3c7 !important;
  background: transparent !important;
}

.c3d-plate-overflow-actions .c3d-btn-outline:hover {
  background: rgba(253, 230, 138, 0.12) !important;
}

/* --- Aktives Bauteil im 3D-Viewport --- */
.c3d-part-hover-hint {
  position: absolute;
  right: 1rem;
  bottom: 4.6rem;
  z-index: 11;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  color: #cbd5e1;
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 5px;
  padding: 0.22rem 0.45rem;
  pointer-events: none;
}

@media (max-width: 900px) {
  .c3d-plate-manager {
    padding: 0.55rem 0.75rem;
  }
  .c3d-part-transfer {
    margin-left: 0;
  }
  .c3d-part-chip-btn {
    max-width: 160px;
  }
  .c3d-plate-overflow {
    bottom: 4.9rem;
  }
}

/* --- Mobile: keep the plate manager and viewport inside the column --- */
.c3d-konfigurator-grid > * {
  min-width: 0;
}

@media (max-width: 1200px) {
  .c3d-konfigurator-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .c3d-header-inner {
    flex-wrap: wrap;
  }
  .c3d-header-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .c3d-toolbar-row,
  .c3d-toolbar-actions,
  .c3d-hud-actions-left {
    flex-wrap: wrap;
  }
  .c3d-viewport-hud-bottom {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .c3d-plate-tabs-row {
    gap: 0.4rem;
  }
  .c3d-plate-manager-label {
    width: 100%;
    border-right: none;
    padding-right: 0;
  }
  .c3d-part-transfer {
    width: 100%;
  }
  .c3d-transfer-select {
    flex: 1;
    max-width: none;
  }
}

/* ==========================================================================
   MANUFAKTUR DARK THEME (konfigurator + schilder studio)
   Dark slate surfaces, 1px technical borders, blue precision accents.
   ========================================================================== */
:root {
  --c3d-bg: #0a1018;
  --c3d-surface: #101827;
  --c3d-surface-muted: #16213340;
  --c3d-surface-card: #121c2c;
  --c3d-border: rgba(148, 163, 184, 0.16);
  --c3d-border-hover: rgba(148, 163, 184, 0.32);
  --c3d-text-primary: #f4f8fd;
  --c3d-text-body: #d7e2ef;
  --c3d-text-muted: #a9b8ca;
  --c3d-text-light: #93a3b7;
  --c3d-blue: #38bdf8;
  --c3d-blue-hover: #0ea5e9;
  --c3d-blue-light: rgba(56, 189, 248, 0.12);
  --c3d-blue-border: rgba(56, 189, 248, 0.32);
  --c3d-green-bg: rgba(16, 185, 129, 0.12);
  --c3d-green-border: rgba(16, 185, 129, 0.3);
  --c3d-amber-bg: rgba(245, 158, 11, 0.12);
  --c3d-amber-border: rgba(245, 158, 11, 0.3);
  --c3d-red-bg: rgba(239, 68, 68, 0.12);
  --c3d-red-border: rgba(239, 68, 68, 0.3);
  --shadow-subtle: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-card: 0 10px 24px -14px rgba(0, 0, 0, 0.8);
  --shadow-elevated: 0 24px 48px -20px rgba(0, 0, 0, 0.85);
}

body { background-image: radial-gradient(circle at 20% -10%, rgba(56, 189, 248, 0.08), transparent 55%); }

.c3d-app-header { background: rgba(10, 16, 24, 0.92); }
.c3d-brand img { filter: none; }
.c3d-brand-badge { background: rgba(56, 189, 248, 0.14); color: #7dd3fc; border-color: rgba(56, 189, 248, 0.3); }
.c3d-brand-sub { color: var(--c3d-text-muted); }
.c3d-beta-subbar { background: rgba(56, 189, 248, 0.06); border-color: var(--c3d-border); }
.c3d-beta-text { color: var(--c3d-text-muted); }
.c3d-beta-link-btn { background: #162133; color: #7dd3fc; border: 1px solid var(--c3d-border); }

/* Cards, panels, toolbars */
.c3d-viewport-card,
.c3d-config-card,
.c3d-feasibility-card,
.c3d-metric-card,
.c3d-pricing-card,
.c3d-plate-manager,
.c3d-stage-toolbar {
  background: var(--c3d-surface);
  border-color: var(--c3d-border);
}
.c3d-config-card,
.c3d-feasibility-card,
.c3d-metric-card,
.c3d-pricing-card,
.c3d-plate-manager {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) inset, var(--shadow-card);
}
.c3d-section-title,
.c3d-metric-label,
.c3d-summary-title-row strong,
.c3d-price-row strong,
.c3d-total-amount-box,
.c3d-mat-name,
.c3d-onboarding-title-wrap h2 {
  color: var(--c3d-text-primary);
}
.c3d-metric-sub, .c3d-summary-specs, .c3d-total-tax-note, .c3d-price-estimate-disclaimer,
.c3d-advisory-desc, .c3d-tds-norm, .c3d-mat-props, .c3d-mat-detail-desc, .c3d-mat-detail-char {
  color: var(--c3d-text-muted);
}
.c3d-metric-card, .c3d-tds-metric-card, .c3d-mat-radio-card .c3d-mat-card-body,
.c3d-profile-btn, .c3d-load-section, .c3d-summary-action-btn, .c3d-part-strip,
.c3d-accordion-summary-bar, .c3d-tds-highlight-box, .c3d-mat-colors-section,
.c3d-inquiry-box, .c3d-payload-pre, .c3d-modal-window, .c3d-onboarding-modal,
.c3d-onboarding-legal-box, .c3d-spec-card, .c3d-onboarding-checkbox-row,
.c3d-dropzone-content, .c3d-onboarding-dropzone {
  background: #0e1725 !important;
  border-color: var(--c3d-border) !important;
  color: var(--c3d-text-body);
}
.c3d-accordion-summary-bar:hover, .c3d-summary-action-btn:hover { background: #162133 !important; }
.c3d-dropzone-formats-badge, .dropzone-formats-badge { background: #162133 !important; color: var(--c3d-text-muted); }
.c3d-format-hint-box {
  background: rgba(56, 189, 248, 0.07) !important;
  border-color: rgba(56, 189, 248, 0.22) !important;
  color: #bae6fd !important;
}
.c3d-format-hint-box strong { color: #e0f2fe; }
.c3d-format-hint-box a { color: #7dd3fc !important; }

/* Inputs */
.c3d-input, .c3d-textarea, .c3d-dim-input, .c3d-qty-input, .c3d-transfer-select, textarea, select {
  background: #0b1320 !important;
  border-color: var(--c3d-border) !important;
  color: var(--c3d-text-primary) !important;
}
.c3d-input::placeholder, .c3d-textarea::placeholder { color: #5b6b80; }
.c3d-dim-input:focus, .c3d-input:focus, .c3d-textarea:focus { border-color: var(--c3d-blue) !important; }

/* Buttons */
.c3d-btn-outline { background: transparent; border-color: var(--c3d-border); color: var(--c3d-text-body); }
.c3d-btn-outline:hover { border-color: var(--c3d-blue); color: #e0f2fe; background: rgba(56, 189, 248, 0.08); }
.c3d-btn-secondary { background: #162133; border-color: var(--c3d-border); color: var(--c3d-text-primary); }
.c3d-btn-secondary:hover { background: #1c2a40; border-color: var(--c3d-border-hover); }
.c3d-btn-primary { background: linear-gradient(135deg, #0284c7, #0369a1); border-color: transparent; color: #fff; }
.c3d-vis-btn, .c3d-view-btn, .c3d-plate-tab, .c3d-part-chip {
  background: #131e2f; border-color: var(--c3d-border); color: var(--c3d-text-body);
}
.c3d-view-btn:hover, .c3d-vis-btn:hover, .c3d-plate-tab:hover { background: #1a2740; color: #fff; }
.c3d-plate-tab.active, .c3d-vis-btn.active { background: rgba(56, 189, 248, 0.16); border-color: rgba(56, 189, 248, 0.45); color: #e0f2fe; }
.c3d-part-chip.active { border-color: var(--c3d-blue); background: rgba(56, 189, 248, 0.12); }

/* Accordion + material cards */
.c3d-mat-radio-card { background: transparent; }
.c3d-mat-radio-card:has(input:checked) .c3d-mat-card-body {
  border-color: rgba(56, 189, 248, 0.55) !important;
  background: rgba(56, 189, 248, 0.1) !important;
  box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.25) inset;
}
.c3d-mat-sku-tag { color: #93a3b7; }
.c3d-accordion-header, .c3d-tds-header-row { border-color: var(--c3d-border); }
.c3d-tds-metric-card { background: #0c1522 !important; }
.c3d-tds-badge, .tag { background: rgba(56, 189, 248, 0.12); color: #7dd3fc; border-color: rgba(56, 189, 248, 0.25); }

/* Pricing + totals */
.c3d-price-total-box { background: linear-gradient(160deg, rgba(56, 189, 248, 0.1), rgba(2, 132, 199, 0.04)); border-color: rgba(56, 189, 248, 0.25); }
.c3d-total-price { color: #7dd3fc; }
.c3d-price-estimate-disclaimer { background: rgba(148, 163, 184, 0.06); border-color: var(--c3d-border); }
.c3d-plate-counter-box { background: #0c1522; border-color: var(--c3d-border); }

/* Viewport chrome */
.c3d-bed-info-pill, .c3d-active-file-pill { background: rgba(12, 21, 34, 0.9); border-color: var(--c3d-border); color: var(--c3d-text-body); }
.c3d-canvas-container {
  background: radial-gradient(circle at 50% 35%, #1a2740 0%, #0e1626 68%, #070c14 100%);
  cursor: grab;
}
.c3d-canvas-container.is-light {
  background: radial-gradient(circle at 50% 35%, #f8fafc 0%, #e9eef5 70%, #dbe2ea 100%);
}
.c3d-plate-overflow { background: rgba(69, 26, 3, 0.96); border-color: #b45309; }
.c3d-loading-overlay { background: rgba(7, 12, 20, 0.82); }
.c3d-loader-panel { background: #101a29; border-color: var(--c3d-border); }
.c3d-modal-window, .c3d-onboarding-modal { background: #0e1725 !important; border: 1px solid var(--c3d-border); }
.c3d-modal-header, .c3d-modal-footer { background: #0c1522; border-color: var(--c3d-border); }
.c3d-payload-pre { background: #080f1a !important; color: #bae6fd; }

/* Legacy inline light tints inside generated markup */
.c3d-onboarding-modal [style*="background:#f8fafc"],
.c3d-onboarding-modal [style*="background: #f8fafc"],
.c3d-onboarding-modal [style*="background:#ffffff"],
.c3d-onboarding-modal [style*="background: #ffffff"] { background: #0e1725 !important; }
.c3d-onboarding-modal [style*="color:#0f172a"],
.c3d-onboarding-modal [style*="color: #0f172a"] { color: #e2e8f0 !important; }

/* Explorer */
.c3d-stage-split { display: flex; gap: 0.75rem; align-items: stretch; }
.c3d-stage-split > .c3d-viewport-card { flex: 1 1 auto; min-width: 0; }
.c3d-explorer {
  flex: 0 0 216px;
  width: 216px;
  background: var(--c3d-surface);
  border: 1px solid var(--c3d-border);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: flex-basis 0.18s ease, width 0.18s ease;
}
.c3d-explorer-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.4rem; padding: 0.6rem 0.7rem;
  border-bottom: 1px solid var(--c3d-border);
  background: #0c1522;
}
.c3d-explorer-title { font-family: var(--font-heading); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #a9b8ca; white-space: nowrap; }
.c3d-explorer-toggle {
  width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--c3d-border); border-radius: 6px; color: #a9b8ca; cursor: pointer;
}
.c3d-explorer-toggle:hover { color: #e0f2fe; border-color: var(--c3d-blue); }
.c3d-explorer-body { flex: 1 1 auto; overflow-y: auto; padding: 0.45rem; display: flex; flex-direction: column; gap: 0.35rem; min-height: 160px; }
.c3d-explorer-plate { border: 1px solid transparent; border-radius: 8px; }
.c3d-explorer-plate.is-active { border-color: rgba(56, 189, 248, 0.28); background: rgba(56, 189, 248, 0.05); }
.c3d-explorer-plate-btn {
  width: 100%; display: flex; align-items: center; gap: 0.35rem;
  background: transparent; border: none; color: #cbd5e1; cursor: pointer;
  padding: 0.35rem 0.3rem; font-size: 0.76rem; font-weight: 600; text-align: left;
}
.c3d-explorer-plate-btn:hover { color: #fff; }
.c3d-explorer-chevron { color: #93a3b7; font-size: 0.6rem; width: 9px; }
.c3d-explorer-plate-name { flex: 1; }
.c3d-explorer-count { font-family: var(--font-mono); font-size: 0.62rem; color: #7dd3fc; background: rgba(56, 189, 248, 0.12); border-radius: 999px; padding: 1px 6px; }
.c3d-explorer-parts { display: flex; flex-direction: column; gap: 2px; padding: 0 0 0.3rem 0.55rem; }
.c3d-explorer-part { display: flex; align-items: center; gap: 0.2rem; border-radius: 6px; border-left: 1px solid rgba(148, 163, 184, 0.18); }
.c3d-explorer-part.is-selected { background: rgba(56, 189, 248, 0.12); border-left-color: var(--c3d-blue); }
.c3d-explorer-part.is-active .c3d-explorer-part-name { color: #e0f2fe; }
.c3d-explorer-part-btn { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; background: transparent; border: none; padding: 0.3rem 0.35rem; text-align: left; cursor: pointer; }
.c3d-explorer-part-name { font-size: 0.72rem; color: #cbd5e1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
.c3d-explorer-part-meta { font-size: 0.6rem; color: #93a3b7; font-family: var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c3d-explorer-part-remove { background: transparent; border: none; color: #93a3b7; font-size: 0.9rem; cursor: pointer; padding: 0 0.3rem; }
.c3d-explorer-part-remove:hover { color: #f87171; }
.c3d-explorer-empty { font-size: 0.68rem; color: #93a3b7; padding: 0.15rem 0.35rem; }
.c3d-explorer-add {
  margin: 0.45rem; display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem;
  padding: 0.45rem; border-radius: 8px; border: 1px dashed rgba(56, 189, 248, 0.35);
  background: rgba(56, 189, 248, 0.06); color: #7dd3fc; font-size: 0.7rem; font-weight: 600; cursor: pointer;
}
.c3d-explorer-add:hover { background: rgba(56, 189, 248, 0.14); }
.c3d-explorer.is-collapsed { flex-basis: 42px; width: 42px; }
.c3d-explorer.is-collapsed .c3d-explorer-title,
.c3d-explorer.is-collapsed .c3d-explorer-body,
.c3d-explorer.is-collapsed .c3d-explorer-add span { display: none; }
.c3d-explorer.is-collapsed .c3d-explorer-head { justify-content: center; padding: 0.6rem 0.2rem; }
.c3d-explorer.is-collapsed .c3d-explorer-toggle svg { transform: rotate(180deg); }
.c3d-explorer.is-collapsed .c3d-explorer-add { margin: 0.3rem; padding: 0.4rem; }
/* Viewport theme toggle */
.c3d-viewport-theme-btn {
  width: 30px; height: 28px; margin-left: 0.25rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--c3d-border); border-radius: 6px;
  background: #131e2f; color: #cbd5e1; cursor: pointer;
}
.c3d-viewport-theme-btn:hover { border-color: var(--c3d-blue); color: #e0f2fe; }
.c3d-viewport-theme-btn .icon-sun { display: none; }
.c3d-viewport-theme-btn.is-light .icon-sun { display: block; }
.c3d-viewport-theme-btn.is-light .icon-moon { display: none; }

/* Upload progress inside the AGB modal */
.c3d-onboarding-progress {
  margin-top: 0.75rem; padding: 0.7rem 0.85rem;
  background: #0b1320; border: 1px solid rgba(56, 189, 248, 0.25); border-radius: 8px;
}
.c3d-onboarding-progress-head {
  display: flex; justify-content: space-between; gap: 0.75rem;
  font-size: 0.76rem; color: #bae6fd; margin-bottom: 0.45rem;
}
.c3d-onboarding-progress-percent { font-family: var(--font-mono); color: #7dd3fc; font-weight: 700; }
.c3d-onboarding-progress-track { height: 6px; border-radius: 999px; background: #162133; overflow: hidden; }
.c3d-onboarding-progress-fill {
  height: 100%; width: 0%; border-radius: 999px;
  background: linear-gradient(90deg, #0284c7, #38bdf8);
  transition: width 0.18s ease;
}

/* Inline color palette under the chosen material card */
.c3d-mat-colors-inline { grid-column: 1 / -1; margin-top: 0.15rem !important; }
.c3d-color-swatch-btn { border-color: rgba(255, 255, 255, 0.25) !important; }

/* Icon system */
.c3d-ico, .clab-ico { display: inline-flex; align-items: center; justify-content: center; vertical-align: -0.14em; line-height: 1; }
.c3d-ico svg, .clab-ico svg { width: 1em; height: 1em; display: block; }

@media (max-width: 1180px) {
  .c3d-stage-split { flex-direction: column; }
  .c3d-explorer { width: 100%; flex-basis: auto; }
  .c3d-explorer-body { max-height: 190px; }
  .c3d-explorer-part-name { max-width: none; }
}

/* Schilder-Studio: 3D preview joins the dark workspace */
.c3d-3d-canvas-box {
  background: radial-gradient(circle at 50% 40%, #16233a 0%, #0b1320 70%, #070c14 100%) !important;
}
.c3d-studio-workspace,
.c3d-2d-canvas-box { border-color: rgba(148, 163, 184, 0.16); }
.c3d-canvas-floating-bar,
.c3d-studio-mode-bar { background: rgba(12, 21, 34, 0.9) !important; border-color: rgba(148, 163, 184, 0.16) !important; }

/* Remaining light HUD tiles inside the dark workspace */
.c3d-view-controls,
.c3d-heatmap-legend {
  background: rgba(12, 21, 34, 0.9) !important;
  border: 1px solid rgba(148, 163, 184, 0.16);
  color: #cbd5e1;
}
.c3d-advisory-box { background: rgba(245, 158, 11, 0.1) !important; border-color: rgba(245, 158, 11, 0.28) !important; }
.c3d-advisory-box, .c3d-advisory-box * { color: #fcd34d !important; }
.c3d-mat-lock-badge { background: rgba(239, 68, 68, 0.14) !important; color: #fca5a5 !important; }
.c3d-legend-item { color: #a9b8ca; }

@media (max-width: 1320px) {
  .c3d-header-inner { flex-wrap: wrap; row-gap: 0.5rem; }
  .c3d-header-actions { flex-wrap: wrap; justify-content: flex-end; }
}

/* Schilder-Studio controls */
.c3d-f-btn { background: #131e2f !important; color: #cbd5e1 !important; border-color: rgba(148, 163, 184, 0.2) !important; }
.c3d-f-btn:hover { background: #1a2740 !important; color: #fff !important; }
.c3d-f-btn.active { background: rgba(56, 189, 248, 0.16) !important; border-color: rgba(56, 189, 248, 0.45) !important; color: #e0f2fe !important; }
input[type="range"].c3d-range,
input[type="range"].c3d-range-slider { accent-color: #38bdf8; }

/* Onboarding demo button keeps the dark modal language */
#btn-onboarding-use-demo {
  background: #162133 !important;
  border-color: rgba(148, 163, 184, 0.25) !important;
  color: #e2e8f0 !important;
}
#btn-onboarding-use-demo:hover { background: #1c2a40 !important; }
.c3d-beta-badge { background: #f59e0b; color: #1f1300; }

/* ==========================================================================
   ONBOARDING MODAL – full dark pass (fixes light intro card & dark copy)
   ========================================================================== */
.c3d-onboarding-intro-card {
  background: linear-gradient(135deg, #132033 0%, #0e1929 100%) !important;
  border: 1px solid rgba(56, 189, 248, 0.2) !important;
  color: #cbd5e1 !important;
}
.c3d-onboarding-intro-card p,
.c3d-onboarding-intro-card .c3d-onboarding-lead,
.c3d-onboarding-intro-card strong,
.c3d-onboarding-intro-card span,
.c3d-onboarding-intro-card div { color: #cbd5e1; }
.c3d-onboarding-intro-card .c3d-onboarding-badge {
  background: #0369a1 !important;
  color: #ffffff !important;
}
.c3d-onboarding-intro-card a,
.c3d-onboarding-intro-card button {
  color: #7dd3fc !important;
}
.c3d-onboarding-intro-card .secure-mail-action { color: #7dd3fc !important; }

.c3d-onboarding-legal-box h4 { color: #f1f5f9 !important; }
.c3d-onboarding-legal-box p,
.c3d-onboarding-legal-box strong { color: #cbd5e1 !important; }

.c3d-spec-card .spec-label { color: #a9b8ca !important; }
.c3d-spec-card .spec-value { color: #f1f5f9 !important; }
.c3d-spec-card .spec-sub { color: #a9b8ca !important; }

.c3d-onboarding-dropzone h3,
.c3d-dropzone-content h3,
.c3d-dropzone-title { color: #f1f5f9 !important; }
.c3d-onboarding-dropzone p,
.c3d-dropzone-content p,
.c3d-dropzone-subtitle { color: #a9b8ca !important; }

.c3d-custom-checkbox-label,
.c3d-checkbox-text,
.c3d-onboarding-checkbox-row .c3d-checkbox-text { color: #cbd5e1 !important; }
.c3d-checkbox-input { accent-color: #38bdf8; }

/* disabled "start" button: dark, not a white box */
#btn-onboarding-step1-next:disabled {
  background: #162133 !important;
  color: #93a3b7 !important;
  border: 1px solid rgba(148, 163, 184, 0.18) !important;
  opacity: 1 !important;
}
.c3d-onboarding-btn-wrapper.is-disabled { opacity: 1; }
#btn-onboarding-step1-next:not(:disabled) {
  background: linear-gradient(135deg, #0284c7, #0369a1);
  color: #fff;
}

/* ==========================================================================
   CONTRAST PASS – dark text, light boxes and small labels
   ========================================================================== */
.c3d-score-badge.excellent { background: rgba(16, 185, 129, 0.16) !important; color: #6ee7b7 !important; border-color: rgba(16, 185, 129, 0.35) !important; }
.c3d-score-badge.warning { background: rgba(245, 158, 11, 0.16) !important; color: #fcd34d !important; border-color: rgba(245, 158, 11, 0.35) !important; }
.c3d-score-badge.critical { background: rgba(239, 68, 68, 0.16) !important; color: #fca5a5 !important; border-color: rgba(239, 68, 68, 0.35) !important; }

.c3d-mat-price { color: #e2e8f0 !important; }
.c3d-mat-price.is-disabled-price { color: #a9b8ca !important; }
.c3d-mat-unavailable-notice { color: #fca5a5 !important; }
.c3d-tds-section-title { color: #e2e8f0 !important; }
.c3d-tds-badge { color: #7dd3fc !important; }
.c3d-mat-detail-sku,
.c3d-total-tax-note,
.c3d-plate-manager-label,
.c3d-part-empty,
.c3d-explorer-empty,
.tds-label { color: #a9b8ca !important; }

/* Inline light tag ("Virtuelle Vorprüfung") becomes a dark amber badge */
.c3d-section-title .tag[style*="background:#fef3c7"],
.c3d-section-title .tag[style*="background: #fef3c7"] {
  background: rgba(245, 158, 11, 0.16) !important;
  color: #fcd34d !important;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

/* Slightly brighter muted grey for all small technical labels */
.c3d-metric-sub,
.c3d-summary-specs,
.c3d-mat-props,
.c3d-mat-detail-char,
.c3d-mat-detail-desc,
.c3d-feasibility-legend span,
.c3d-price-estimate-disclaimer,
.c3d-total-shipping-note { color: #a9b8ca !important; }

/* Part chips in the plate strip */
.c3d-part-chip-name { color: #e0f2fe !important; }
.c3d-part-chip-dims { color: #a9b8ca !important; }
.c3d-part-chip.active .c3d-part-chip-name { color: #ffffff !important; }
.c3d-explorer-part-meta,
.c3d-explorer-part-remove { color: #a9b8ca !important; }

/* ==========================================================================
   SCHILDER-STUDIO CONTRAST PASS
   ========================================================================== */
.c3d-shape-title { color: #e2e8f0 !important; }
.c3d-shape-sub { color: #a9b8ca !important; }
.c3d-shape-icon { color: #7dd3fc !important; }
.c3d-shape-btn.active .c3d-shape-title { color: #ffffff !important; }
.c3d-shape-btn.active .c3d-shape-sub { color: #bae6fd !important; }

.c3d-asa-pill { color: #7dd3fc !important; border-color: rgba(56, 189, 248, 0.32) !important; }
.c3d-asa-pill .dot { background: #38bdf8; box-shadow: 0 0 6px #38bdf8; }

/* Solid blue controls need a darker fill for white labels */
.c3d-mode-btn.active,
.c3d-studio-action-btn:hover,
.c3d-cam-btn.active,
.c3d-f-btn.active,
.c3d-next-step-btn,
.c3d-symbol-cat-btn.active,
.c3d-modal-cat-btn.active {
  background: #0369a1 !important;
  border-color: #0369a1 !important;
  color: #ffffff !important;
}
.c3d-next-step-btn:hover { background: #075985 !important; }

/* Range sliders: no white bars */
input[type="range"].c3d-range,
input[type="range"].c3d-range-slider {
  -webkit-appearance: none;
  appearance: none;
  background: transparent !important;
  height: 18px;
}
input[type="range"].c3d-range::-webkit-slider-runnable-track,
input[type="range"].c3d-range-slider::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: #1b2a40;
}
input[type="range"].c3d-range::-webkit-slider-thumb,
input[type="range"].c3d-range-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  margin-top: -5px;
  border-radius: 50%;
  background: #38bdf8;
  border: 2px solid #0b1320;
  box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.5);
  cursor: pointer;
}
input[type="range"].c3d-range::-moz-range-track,
input[type="range"].c3d-range-slider::-moz-range-track {
  height: 4px; border-radius: 999px; background: #1b2a40;
}
input[type="range"].c3d-range::-moz-range-thumb,
input[type="range"].c3d-range-slider::-moz-range-thumb {
  width: 12px; height: 12px; border-radius: 50%; background: #38bdf8; border: 2px solid #0b1320;
}

/* Schilder shape cards use legacy unprefixed span classes */
.shape-title { color: #e2e8f0 !important; }
.shape-sub { color: #a9b8ca !important; }
.shape-icon { color: #7dd3fc !important; }
.c3d-shape-btn.active .shape-title { color: #ffffff !important; }
.c3d-shape-btn.active .shape-sub { color: #bae6fd !important; }
.c3d-brand-badge { background: #0369a1 !important; color: #ffffff !important; }

/* Schilder: relief & warning copy in the hidden detail panels */
.emboss-title { color: #e2e8f0 !important; }
.emboss-desc { color: #a9b8ca !important; }
.c3d-elem-badge.type-icon { background: rgba(147, 51, 234, 0.2) !important; color: #d8b4fe !important; }
#countersink-warn-title { color: #fca5a5 !important; }
.c3d-studio-workspace [style*="color:#b45309"],
.c3d-studio-workspace [style*="color: #b45309"] { color: #fbbf24 !important; }
.c3d-studio-workspace [style*="color:#92400e"],
.c3d-studio-workspace [style*="color: #92400e"] { color: #fcd34d !important; }

/* Native Formularsteuerelemente (Checkboxen, Scrollbars) im Dunkelmodus */
html, body { color-scheme: dark; }

/* Per-part 90° rotation controls */
.c3d-part-chip-rotate {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding-left: 3px;
  border-left: 1px solid var(--c3d-border);
}

.c3d-part-chip-rotate-btn {
  border: 1px solid var(--c3d-border);
  background: var(--c3d-surface);
  color: var(--c3d-text-muted);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
  padding: 3px 4px;
  min-width: 18px;
  border-radius: 4px;
  cursor: pointer;
}

.c3d-part-chip-rotate-btn:hover {
  border-color: var(--c3d-blue);
  color: var(--c3d-blue);
  background: var(--c3d-blue-light);
}

/* ==========================================================================
   CLEAN UPLOAD MODAL, EXPLORER ACTIONS, ROTATION GIZMO & SCALE RANGE
   ========================================================================== */

/* --- Aufgeräumtes Upload-Fenster --- */
.c3d-onboarding-header { padding: 1rem 1.35rem; }
.c3d-onboarding-body { padding: 1.35rem; gap: 0.9rem; }
.c3d-onboarding-title-wrap h2 { font-size: 1.02rem; }
.c3d-onboarding-logo { height: 30px; }

.c3d-onboarding-dropzone.is-hero {
  padding: 2.6rem 1.5rem 2.2rem;
  border-radius: 14px;
  border-width: 1.5px;
  border-color: rgba(56, 189, 248, 0.45);
  background: radial-gradient(circle at 50% 0%, rgba(56, 189, 248, 0.12), rgba(14, 23, 37, 0.9) 65%) !important;
}
.c3d-onboarding-dropzone.is-hero .dropzone-icon { margin-bottom: 0.75rem; }
.c3d-onboarding-dropzone.is-hero h3 {
  font-size: 1.12rem;
  letter-spacing: -0.01em;
  color: #f1f5f9;
  margin-bottom: 0.3rem;
}
.c3d-onboarding-dropzone.is-hero p {
  font-size: 0.83rem;
  color: #93a3b7;
  margin-bottom: 0;
}
.c3d-dropzone-cta { margin-top: 1.1rem; }
.c3d-dropzone-cta .c3d-btn { min-width: 190px; justify-content: center; }

.c3d-onboarding-checkbox-row.is-plain {
  background: transparent !important;
  border: none !important;
  padding: 0.1rem 0.1rem 0;
}
.c3d-onboarding-checkbox-row.is-plain .c3d-custom-checkbox-label { color: #cbd5e1; }
.c3d-onboarding-checkbox-row.is-plain .c3d-custom-checkbox-label a { color: #7dd3fc; }

.c3d-onboarding-footnote {
  margin: 0;
  text-align: center;
  font-size: 0.72rem;
  line-height: 1.5;
  color: #7b8ba0;
}
.c3d-onboarding-footnote a { color: #7dd3fc; text-decoration: underline; }

/* --- Explorer: Aktionsleiste & Platten löschen --- */
.c3d-explorer-actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0 0.45rem 0.45rem;
}
.c3d-explorer-actions .c3d-explorer-add { margin: 0; }
.c3d-explorer-add.is-plate {
  border-color: rgba(148, 163, 184, 0.3);
  background: rgba(148, 163, 184, 0.06);
  color: #a9b8ca;
}
.c3d-explorer-add.is-plate:hover { background: rgba(148, 163, 184, 0.14); color: #e0f2fe; }

.c3d-explorer-plate-row { display: flex; align-items: center; gap: 0.1rem; }
.c3d-explorer-plate-btn { flex: 1; min-width: 0; }
.c3d-explorer-plate-remove {
  background: transparent;
  border: none;
  color: #7b8ba0;
  cursor: pointer;
  font-size: 0.72rem;
  line-height: 1;
  padding: 0.25rem 0.35rem;
  border-radius: 5px;
}
.c3d-explorer-plate-remove:hover { color: #f87171; background: rgba(239, 68, 68, 0.1); }

.c3d-explorer.is-collapsed .c3d-explorer-actions { display: none; }

/* --- Rotation-Gizmo am aktiven Bauteil --- */
.c3d-rot-gizmo {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 5px;
  border-radius: 999px;
  background: rgba(8, 15, 26, 0.72);
  border: 1px solid rgba(56, 189, 248, 0.35);
  box-shadow: 0 8px 20px -10px rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(4px);
  transform: translate(-50%, -50%);
  opacity: 0.72;
  transition: opacity 0.15s ease;
  z-index: 12;
  pointer-events: auto;
}
.c3d-rot-gizmo.hidden { display: none !important; }
.c3d-rot-gizmo:hover { opacity: 1; }

.c3d-rot-gizmo-btn {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px 7px 3px 4px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: #bae6fd;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.c3d-rot-gizmo-btn svg { opacity: 0.95; width: 22px; height: 22px; }
.c3d-rot-gizmo-btn:hover {
  background: rgba(56, 189, 248, 0.18);
  border-color: rgba(56, 189, 248, 0.5);
  color: #ffffff;
}

/* --- Skalierungs-Slider: dynamischer Bereich --- */
.c3d-scale-minmax {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  color: #7b8ba0;
  white-space: nowrap;
  min-width: 34px;
  text-align: center;
}

.c3d-arrange-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .c3d-onboarding-dropzone.is-hero { padding: 1.8rem 1rem 1.5rem; }
  .c3d-arrange-btn span { font-size: 0.74rem; }
}

/* Anordnen-Button linksbündig vor den Optik-Pills */
.c3d-stage-toolbar .c3d-toolbar-row:first-child { justify-content: flex-start; gap: 1rem; }

/* Skalierungszeile darf umbrechen, damit keine Regler-Teile abgeschnitten werden */
.c3d-scale-slider-wrap { flex-wrap: wrap; row-gap: 0.45rem; }
.c3d-scale-slider-wrap .c3d-range-slider { min-width: 120px; }

@media (max-width: 900px) {
  .c3d-scale-minmax { display: none; }
  .c3d-scale-slider-wrap .c3d-range-slider { flex: 1 1 140px; }
}

@media (max-width: 900px) {
  .c3d-scale-group { flex-direction: column; align-items: stretch; gap: 0.4rem; }
}
