/* brix_console_design — shared by the console and its private embedded admin documents.
   Public pages and HTML email previews have neither scope marker. */
:is(.brix-admin-console, html[data-brix-console-site]) {
  --console-bg: #e8ebe3;
  --console-panel: #fffef8;
  --console-field: #fffefa;
  --console-line: #8f9b94;
  --console-ink: #101815;
  --console-muted: #4f5d57;
  --console-primary: #006f65;
  --console-focus: #1d5fa7;
  font: 14px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu", "Roboto", "Noto Sans", Arial, sans-serif;
}

/* Portal content sits outside the console root; keep the scope on the console document. */
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"], [role="listbox"], [role="menu"]) {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu", "Roboto", "Noto Sans", Arial, sans-serif;
  color: #101815;
  background-color: #fffef8;
  border-color: #8f9b94;
}
body:has(.brix-admin-console) :is([role="listbox"], [role="menu"]) { max-width: calc(100vw - 32px); }

:is(.brix-admin-console, html[data-brix-console-site]) *,
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"], [role="listbox"], [role="menu"]) * {
  box-sizing: border-box;
  border-radius: 0 !important;
}

:is(.brix-admin-console, html[data-brix-console-site]) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]), select, button:not([role="checkbox"]):not([role="switch"]), [role="combobox"], .button),
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"]) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]), select, button:not([role="checkbox"]):not([role="switch"]), [role="combobox"]) {
  min-height: 44px !important;
  min-width: 44px;
  font-size: 14px;
  line-height: 1.4;
}

:is(.brix-admin-console, html[data-brix-console-site]) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, [role="combobox"]),
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"]) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, [role="combobox"]) {
  max-width: 100%;
  background: #fffefa;
  color: #101815;
  border: 1px solid #8f9b94;
  padding: 10px 12px;
}

:is(.brix-admin-console, html[data-brix-console-site]) label,
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"]) label {
  letter-spacing: normal;
  line-height: 1.6;
}

:is(.brix-admin-console, html[data-brix-console-site]) :is(button, a, input, textarea, select, summary, [tabindex]):focus-visible,
body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"], [role="listbox"], [role="menu"]) :focus-visible {
  outline: 2px solid #1d5fa7 !important;
  outline-offset: 3px;
}

body:has(.brix-admin-console) :is([role="option"], [role="menuitem"]) {
  min-height: 44px;
  white-space: normal;
  overflow-wrap: anywhere;
}

body:has(.brix-admin-console) :is([role="dialog"], [role="alertdialog"]) {
  width: calc(100% - 32px);
  max-height: calc(100svh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.brix-admin-console main { min-width: 0; }
.brix-admin-console .site-admin-frame { background: #e8ebe3; }
.brix-admin-console .label-revision-status[data-status] { border-radius: 0 !important; }

/* Embedded apps cannot inherit host CSS. The proxy adds this marker and stylesheet. */
html[data-brix-console-site] { scrollbar-gutter: stable; }
html[data-brix-console-site] body {
  --bg: #e8ebe3;
  --surface: #fffef8;
  --ink: #101815;
  --muted: #4f5d57;
  --line: #8f9b94;
  --green: #006f65;
  margin: 0;
  background: var(--console-bg);
  color: var(--console-ink);
  font: inherit;
  overflow-wrap: anywhere;
}
html[data-brix-console-site] :is(button, input, select, textarea) { font-family: inherit; }
html[data-brix-console-site] :is(main, .panel, .card, .stat, .settings, .fields, .form-grid, .analytics-panel) { min-width: 0; }
html[data-brix-console-site] main { padding: 24px; max-width: 100%; }
html[data-brix-console-site] :is(h1, h2, h3) { color: var(--console-ink); font-weight: 800; }
html[data-brix-console-site] h1 { font-size: 24px; line-height: 1.3; }
html[data-brix-console-site] h2 { font-size: 20px; line-height: 1.4; }
html[data-brix-console-site] :is(.admin-header, .admin-nav, .panel, .card, .stat, .settings, .table-wrap, .seo-preview, dialog) {
  background: var(--console-panel);
  border-color: var(--console-line);
  color: var(--console-ink);
}
html[data-brix-console-site] :is(.panel, .card, .stat, .settings, .seo-preview) { padding: 20px; }
html[data-brix-console-site] :is(.admin-header, .admin-header > div, .page-title) { flex-wrap: wrap; }
html[data-brix-console-site] .admin-nav { padding: 12px 24px; gap: 8px; }
html[data-brix-console-site] .admin-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 10px 12px;
  color: var(--console-muted);
  font-size: 14px;
}
html[data-brix-console-site] .admin-nav [aria-current] { background: #e0f3ee; color: #005c54; font-weight: 700; }
html[data-brix-console-site] :is(a, .stat b, .fact-row legend, #slot-form legend) { color: var(--console-primary); }
html[data-brix-console-site] :is(.sub, #page-description, .count, .field small, td small, .hash, .info-list, .analytics-caption, .analytics-trend-dates, .analytics-summary .stat small, .seo-preview p) {
  color: var(--console-muted);
  font-size: 13px;
}
html[data-brix-console-site] :is(.button, button.primary, button[type="submit"]) {
  background: var(--console-primary);
  border: 1px solid var(--console-primary);
  color: white;
  padding: 10px 16px;
  font-weight: 700;
}
html[data-brix-console-site] :is(.button.secondary, [data-edit], [data-cancel], #page-actions button:not([type="submit"])) {
  background: var(--console-field);
  border: 1px solid var(--console-line);
  color: var(--console-primary);
}
html[data-brix-console-site] .button.danger { background: #fff1ee; color: #912f24; border-color: #bb766b; }
html[data-brix-console-site] :is(.buttons, .dialog-footer, .analytics-filter-buttons) { gap: 12px; flex-wrap: wrap; }
html[data-brix-console-site] :is(.field, .analytics-filter label) { font-size: 14px; gap: 8px; }
html[data-brix-console-site] .field > :is(span, label) { color: var(--console-muted); font-weight: 600; }
html[data-brix-console-site] :is(.filters input, .filters select) { flex: 1 1 280px; min-width: 0; }
html[data-brix-console-site] :is(.form-grid, .fields, .analytics-filter, .analytics-summary, .analytics-grid) { gap: 16px; }
html[data-brix-console-site] .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
html[data-brix-console-site] :is(.table-wrap, .analytics-table) { max-width: 100%; overflow: auto; overscroll-behavior-x: contain; }
html[data-brix-console-site] table { font-size: 14px; }
html[data-brix-console-site] :is(th, td) { border-color: #c3cbc5; }
html[data-brix-console-site] th { background: #edf1e8; color: var(--console-muted); font-size: 13px; }
html[data-brix-console-site] td .buttons { flex-wrap: wrap; }
html[data-brix-console-site] .badge { font-size: 12px; background: #edf1e8; color: #334d40; border-color: #8f9b94; }
html[data-brix-console-site] .badge.ok { background: #e2f5ec; color: #165b40; border-color: #71a68e; }
html[data-brix-console-site] .badge.blocked { background: #fff1ee; color: #912f24; border-color: #bb766b; }
html[data-brix-console-site] :is(.notice, .empty, .loading, .language-panel summary, .evidence, .dialog-header, .dialog-head) { background: #edf1e8; color: #334d40; border-color: var(--console-line); font-size: 14px; }
html[data-brix-console-site] .notice.warning { background: #fff2ce; color: #795113; border-color: #b98214; }
html[data-brix-console-site] .message.error { background: #fff1ee; color: #912f24; }
html[data-brix-console-site] .analytics-summary .stat { border-top-color: var(--console-primary); }
html[data-brix-console-site] :is(.fact-row, #slot-form fieldset) { border-color: var(--console-line); }
html[data-brix-console-site] input { accent-color: var(--console-primary); }
html[data-brix-console-site] dialog { max-width: calc(100vw - 32px); max-height: calc(100svh - 32px); overscroll-behavior: contain; }
html[data-brix-console-site] .dialog-header button { min-width: 44px; color: var(--console-ink); }

@media (max-width: 767px) {
  html[data-brix-console-site] :is(main, .admin-header, #dialog-body) { padding: 16px; }
  html[data-brix-console-site] :is(.panel, .card, .stat, .settings, .seo-preview) { padding: 16px; }
  html[data-brix-console-site] :is(.form-grid, .fields, .analytics-filter, .analytics-grid) { grid-template-columns: minmax(0, 1fr); }
  html[data-brix-console-site] .analytics-filter-buttons { grid-column: auto; }
  html[data-brix-console-site] :is(.filters, .page-title, .dialog-footer) { flex-direction: column; align-items: stretch; }
  html[data-brix-console-site] :is(.filters input, .filters select) { flex: 0 1 auto; width: 100%; }
  html[data-brix-console-site] h1 { font-size: 22px; }
  html[data-brix-console-site] .admin-nav { padding: 8px 16px; }
  .brix-admin-console :is(select, [role="combobox"]) { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.brix-admin-console, html[data-brix-console-site]) * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
