/**
 * Bloom RC2.1 §10 — Visual consistency overrides (loads last).
 * Safely overrides legacy polish layers without changing app logic.
 */

body.bloom-rc21 {
  --bloom-rc21-ink: var(--bloom-charcoal, #2f2a2c);
  --bloom-rc21-muted: var(--bloom-muted, #6b6166);
  --bloom-rc21-surface: var(--bloom-surface, #fff);
  --bloom-rc21-line: var(--bloom-border, #e8ddd5);
  --bloom-rc21-brand: var(--brand-primary, #8d4a63);
  --bloom-rc21-brand-deep: #4d2540;
  --bloom-rc21-success: var(--bloom-success, #3d6b52);
  --bloom-rc21-warn: #b8860b;
  --bloom-rc21-error: var(--bloom-error, #9b3d4a);
  --bloom-rc21-radius: 14px;
  --bloom-rc21-shadow: 0 8px 28px rgba(47, 42, 44, 0.07);
  background: var(--bloom-ivory, #faf7f2);
  color: var(--bloom-rc21-ink);
}

/* App shell */
body.bloom-rc21 #app header {
  border-bottom: 1px solid var(--bloom-rc21-line);
  background: rgba(255, 252, 249, 0.96);
}

body.bloom-rc21 .content {
  max-width: var(--bloom-page-max, 1280px);
  margin-inline: auto;
  width: 100%;
}

body.bloom-rc21 .platform-top-strip {
  border-bottom: 1px solid var(--bloom-rc21-line);
  background: var(--bloom-warm-white, #fffcf9);
}

/* Typography rhythm */
body.bloom-rc21 .page > .heading,
body.bloom-rc21 .page .heading {
  gap: 12px 16px;
  margin-bottom: 20px;
}

body.bloom-rc21 .page .heading .subtle {
  color: var(--bloom-rc21-muted);
  max-width: 62ch;
}

body.bloom-rc21 h2,
body.bloom-rc21 .panel h2,
body.bloom-rc21 dialog h2 {
  font-family: var(--bloom-font-display, Georgia, serif);
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* Unified surfaces — neutralize legacy clip-path / hot shadows */
body.bloom-rc21 .panel,
body.bloom-rc21 .card,
body.bloom-rc21 .metric-box,
body.bloom-rc21 .product-card,
body.bloom-rc21 .production-card,
body.bloom-rc21 .payment-panel,
body.bloom-rc21 .studio-section,
body.bloom-rc21 .rose-welcome-card,
body.bloom-rc21 .lily-suggestion-card,
body.bloom-rc21 .profit-score-card,
body.bloom-rc21 .checkout-card,
body.bloom-rc21 .progress-card {
  background: var(--bloom-rc21-surface) !important;
  border: 1px solid var(--bloom-rc21-line) !important;
  border-radius: var(--bloom-rc21-radius) !important;
  box-shadow: var(--bloom-rc21-shadow) !important;
  clip-path: none !important;
  mask: none !important;
}

body.bloom-rc21 .panel::before,
body.bloom-rc21 .panel::after,
body.bloom-rc21 .card::before,
body.bloom-rc21 .card::after {
  display: none !important;
}

/* Buttons & inputs */
body.bloom-rc21 .primary {
  background: linear-gradient(145deg, var(--bloom-rc21-brand), var(--bloom-rc21-brand-deep)) !important;
  border-color: transparent !important;
  color: #fff !important;
}

body.bloom-rc21 .secondary {
  background: #fff !important;
  border-color: var(--bloom-rc21-line) !important;
  color: var(--bloom-rc21-ink) !important;
}

body.bloom-rc21 .secondary.danger,
body.bloom-rc21 button.danger {
  color: var(--bloom-rc21-error) !important;
  border-color: #e8bcc4 !important;
}

body.bloom-rc21 .badge {
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.06em;
  font-weight: 700;
}

body.bloom-rc21 .badge.good {
  background: #e8f3ec;
  color: var(--bloom-rc21-success);
}

body.bloom-rc21 .badge.warn {
  background: #fff5e6;
  color: #8a5a00;
}

/* Search & toolbars */
body.bloom-rc21 .search,
body.bloom-rc21 .library-toolbar,
body.bloom-rc21 .inventory-toolbar,
body.bloom-rc21 .expense-toolbar,
body.bloom-rc21 .bloom-orders-toolbar,
body.bloom-rc21 .product-toolbar {
  margin-bottom: 18px;
}

body.bloom-rc21 .library-toolbar {
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 769px) {
  body.bloom-rc21 .library-toolbar {
    grid-template-columns: 2fr 1fr;
  }
}

body.bloom-rc21 .expense-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

body.bloom-rc21 .expense-toolbar input,
body.bloom-rc21 .expense-toolbar select {
  flex: 1 1 160px;
  min-width: 0;
}

/* Summary strips (dashboard-adjacent pages) */
body.bloom-rc21 .delivery-summary,
body.bloom-rc21 .invoice-summary,
body.bloom-rc21 .report-summary {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
}

body.bloom-rc21 .delivery-summary {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

body.bloom-rc21 .invoice-summary,
body.bloom-rc21 .report-summary {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

body.bloom-rc21 .delivery-summary article,
body.bloom-rc21 .invoice-summary .metric-box,
body.bloom-rc21 .report-summary > div {
  padding: 16px;
  border-radius: var(--bloom-rc21-radius);
  background: var(--bloom-rc21-surface);
  border: 1px solid var(--bloom-rc21-line);
  box-shadow: var(--bloom-rc21-shadow);
}

/* Grids */
body.bloom-rc21 .cards,
body.bloom-rc21 .product-grid,
body.bloom-rc21 .kanban {
  gap: 16px;
}

body.bloom-rc21 .cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* Orders production board */
body.bloom-rc21 .order-command-layout {
  display: grid;
  gap: 16px;
}

body.bloom-rc21 .order-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  gap: 12px;
  align-items: start;
  overflow-x: auto;
  padding-bottom: 8px;
  -webkit-overflow-scrolling: touch;
}

body.bloom-rc21 .order-board-column {
  min-width: 220px;
  background: var(--bloom-warm-white, #fffcf9);
  border: 1px solid var(--bloom-rc21-line);
  border-radius: var(--bloom-rc21-radius);
  padding: 12px;
}

body.bloom-rc21 .production-card {
  margin-bottom: 10px;
}

body.bloom-rc21 .production-actions,
body.bloom-rc21 .card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.bloom-rc21 .production-actions button,
body.bloom-rc21 .card-actions button {
  flex: 1 1 auto;
  min-width: min(100%, 120px);
}

/* Payments */
body.bloom-rc21 .payment-hub-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

body.bloom-rc21 .payment-hub-tabs .secondary.active {
  background: var(--bloom-blush, #f5e6ea) !important;
  border-color: var(--bloom-dusty-rose, #c9899e) !important;
}

body.bloom-rc21 .payment-workspace {
  display: grid;
  gap: 16px;
}

@media (min-width: 900px) {
  body.bloom-rc21 .payment-workspace {
    grid-template-columns: 1fr 1fr;
  }
}

/* POS / Dashboard */
body.bloom-rc21 .pos-workspace {
  display: grid;
  gap: 16px;
}

@media (min-width: 1100px) {
  body.bloom-rc21 .pos-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  }
}

body.bloom-rc21 .profit-intelligence-grid {
  display: grid;
  gap: 16px;
  margin: 16px 0;
}

@media (min-width: 900px) {
  body.bloom-rc21 .profit-intelligence-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

body.bloom-rc21 .product-pad-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
}

body.bloom-rc21 .cart-row input[type="number"] {
  min-width: 0;
  width: 100%;
}

/* Reports tables */
body.bloom-rc21 .report-table,
body.bloom-rc21 .report-grid {
  overflow-x: auto;
}

body.bloom-rc21 .report-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  padding: 12px 0;
  border-bottom: 1px solid var(--bloom-rc21-line);
}

/* Settings */
body.bloom-rc21 .settings-grid {
  display: grid;
  gap: 16px;
}

@media (min-width: 900px) {
  body.bloom-rc21 .settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Website / BloomShot / AI Studio */
body.bloom-rc21 .bloomshot-page,
body.bloom-rc21 .ai-studio-page,
body.bloom-rc21 #websitePage {
  max-width: 100%;
}

body.bloom-rc21 .ai-studio-composer textarea {
  min-height: 88px;
}

body.bloom-rc21 .ai-empty-state,
body.bloom-rc21 .bloomshot-empty {
  padding: 24px;
  border: 1px dashed var(--bloom-rc21-line);
  border-radius: var(--bloom-rc21-radius);
  text-align: center;
  background: var(--bloom-warm-white);
}

/* Recipe builder in product dialog */
body.bloom-rc21 .recipe-builder-box,
body.bloom-rc21 .recipe-row {
  overflow-x: auto;
}

@media (max-width: 768px) {
  body.bloom-rc21 .recipe-row {
    grid-template-columns: 1fr !important;
  }
}

/* Dialogs */
body.bloom-rc21 dialog {
  border: 1px solid var(--bloom-rc21-line);
  border-radius: 18px;
  padding: 0;
  max-width: min(640px, calc(100vw - 24px));
  box-shadow: 0 24px 64px rgba(47, 42, 44, 0.18);
}

body.bloom-rc21 dialog[open] {
  margin: auto;
}

body.bloom-rc21 dialog form,
body.bloom-rc21 .dialog-shell {
  padding: 20px 22px 22px;
}

body.bloom-rc21 dialog .actions,
body.bloom-rc21 .dialog-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 16px;
}

body.bloom-rc21 dialog .actions button,
body.bloom-rc21 .dialog-tools button {
  flex: 1 1 auto;
  min-width: min(100%, 140px);
}

@media (min-width: 480px) {
  body.bloom-rc21 dialog .actions button,
  body.bloom-rc21 .dialog-tools button {
    flex: 0 1 auto;
  }
}

body.bloom-rc21 .order-builder-dialog {
  max-width: min(920px, calc(100vw - 16px));
}

/* Empty / error / toast states */
body.bloom-rc21 .bloom-empty-state,
body.bloom-rc21 .bloom-error-state,
body.bloom-rc21 .bloom-empty-luxury,
body.bloom-rc21 .card.subtle.bloom-empty-state {
  grid-column: 1 / -1;
  text-align: center;
  padding: 28px 20px !important;
  border: 1px dashed var(--bloom-rc21-line) !important;
  border-radius: var(--bloom-rc21-radius) !important;
  background: linear-gradient(145deg, #fff, var(--bloom-warm-white, #fffcf9)) !important;
  box-shadow: none !important;
}

body.bloom-rc21 .bloom-error-state,
body.bloom-rc21 .bloom-state-error {
  border-left: 4px solid var(--bloom-rc21-error) !important;
  border-color: #e8bcc4 !important;
}

body.bloom-rc21 .bloom-state-success,
body.bloom-rc21 .toast[data-tone="success"] {
  border-left: 4px solid var(--bloom-rc21-success);
}

body.bloom-rc21 .toast {
  z-index: 9100;
  max-width: min(420px, calc(100vw - 32px));
  min-height: 44px;
  padding: 12px 16px;
}

/* Assistants — avoid covering nav / primary actions */
body.bloom-rc21 .lily-fab {
  z-index: 8500;
  bottom: max(22px, env(safe-area-inset-bottom, 0px) + 22px);
}

body.bloom-rc21 .lily-panel {
  z-index: 8501;
  bottom: max(92px, env(safe-area-inset-bottom, 0px) + 92px);
}

body.bloom-rc21 .bloom-daisy {
  z-index: 30;
  pointer-events: none;
  max-width: 100px;
}

@media (max-width: 820px) {
  body.bloom-rc21 .content {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.bloom-rc21 .lily-fab {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    right: 12px;
    width: 52px;
    height: 52px;
  }

  body.bloom-rc21 .lily-panel {
    bottom: calc(136px + env(safe-area-inset-bottom, 0px));
    left: 12px;
    right: 12px;
    width: auto;
  }

  body.bloom-rc21 .bloom-daisy {
    left: 8px;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    transform: scale(0.78);
    transform-origin: left bottom;
  }

  body.bloom-rc21 .toast {
    left: 12px;
    right: 12px;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }

  body.bloom-rc21 .mobile-nav {
    z-index: 8000;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  body.bloom-rc21 .mobile-nav button {
    min-height: 48px;
    font-size: 11px;
  }

  body.bloom-rc21 .mobile-nav button.active {
    background: var(--bloom-blush, #f5e6ea) !important;
    color: var(--bloom-rc21-brand-deep) !important;
  }

  body.bloom-rc21 .order-board {
    grid-template-columns: repeat(5, minmax(260px, 1fr));
  }

  body.bloom-rc21 .inventory-scan-banner {
    flex-direction: column;
    align-items: stretch;
  }

  body.bloom-rc21 .inventory-toolbar {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 390px) {
  body.bloom-rc21 .bloom-command-center {
    grid-template-columns: 1fr 1fr;
  }

  body.bloom-rc21 .header-brand .brand-wordmark {
    max-width: 120px;
  }

  body.bloom-rc21 .card-actions,
  body.bloom-rc21 .production-actions {
    flex-direction: column;
  }

  body.bloom-rc21 .card-actions button,
  body.bloom-rc21 .production-actions button {
    width: 100%;
  }
}

/* Marketplace / wholesale */
body.bloom-rc21 .marketplace-shell,
body.bloom-rc21 .wholesale-seller-root,
body.bloom-rc21 #ecosystemRoot,
body.bloom-rc21 .shop-billing-root {
  display: grid;
  gap: 16px;
}

/* Focus visibility (keyboard) */
body.bloom-rc21 :focus-visible {
  outline: 2px solid var(--bloom-rc21-brand);
  outline-offset: 2px;
}

/* Reduced motion: page animation handled in bloom-rc2.1-polish.css */
@media (prefers-reduced-motion: reduce) {
  body.bloom-rc21 .bloom-daisy--wag {
    animation: none !important;
  }
}
