/* Phase 82.7.6.38.5.8.1.30 · UI Consistency Audit / Legacy Surface Cleanup
   Presentation only. Final consistency layer over .1.24-.1.29 foundations.
   Scope: platform console, tenant admin SPA and employee/admin standalone workbenches.
   Meaningful business colors (tenant branding, expense category colors, QR colors) remain data-driven.
   Customer ordering, POS and legacy KDS are intentionally excluded. */

:root {
  --ui-audit-gap:18px;
  --ui-audit-card-pad:18px;
  --ui-audit-soft:#F8FAFC;
  --ui-audit-line:#E2E8F0;
  --ui-audit-ink:#0F172A;
  --ui-audit-muted:#64748B;
}

/* ================================================================
   Page rhythm: older admin pages now follow the same page hierarchy
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-page,.settings-page,.promotion-page,.online-payment-page,.privacy-admin-page,
  .business-hours-page,.reservation-desk-heading,.food-safety-heading,.workforce-heading,
  .security-layout,.ai-admin-grid,.feedback-grid,.expense-ledger-tabs
) {
  min-width:0;
}
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-page,.settings-page,.promotion-page,.online-payment-page,.privacy-admin-page,
  .business-hours-page
) {
  display:grid;
  gap:var(--ui-audit-gap);
}

/* ================================================================
   Legacy panel/card surfaces
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .data-panel,.settings-panel,.ai-config-card,.ai-safety-card,.provider-card,
  .promotion-card,.privacy-request-panel,.retention-panel,.workforce-panel,
  .payment-ledger,.consent-box,.security-password,.security-sessions,.security-session,
  .food-safety-grid > article,.safety-exceptions,.safety-log,.safety-plan,.incident-list,
  .branch-plan-meter,.public-booking-admin,.reservation-desk-panel,.reservation-print-sheet,
  .media-storage-panel,.online-control-panel,.delivery-zones-settings,.usage-card,.audit-panel,
  .qr-card,.new-table-card,.print-centre-modal,.recall-grid > article,.course-grid > article,
  .feedback-grid > article,.feedback-tags-summary,.feedback-filters
) {
  border:1px solid var(--ui-border,var(--ui-audit-line));
  border-radius:var(--ui-radius-lg,16px);
  background:var(--ui-surface,#fff);
  box-shadow:var(--ui-shadow-card,0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.055));
}
html:not(.legacy-kds-view) .admin-shell :where(
  .data-panel,.settings-panel,.ai-config-card,.ai-safety-card,.provider-card,
  .promotion-card,.privacy-request-panel,.retention-panel,.workforce-panel,
  .payment-ledger,.consent-box,.security-password,.security-sessions,
  .public-booking-admin,.reservation-desk-panel,.media-storage-panel,.online-control-panel,
  .delivery-zones-settings,.usage-card,.audit-panel,.safety-exceptions,.safety-log,.safety-plan,
  .incident-list,.feedback-tags-summary,.feedback-filters
) {
  padding:var(--ui-audit-card-pad);
}

/* Cards in repeated grids should line up rather than inherit historic radii. */
html:not(.legacy-kds-view) .admin-shell :where(
  .provider-grid,.promotion-grid,.area-grid,.table-card-grid,.food-safety-grid,
  .safety-plan-grid,.profile-grid,.feedback-grid,.course-grid,.recall-grid,
  .channel-toggle-grid,.usage-grid,.ai-admin-grid
) {
  gap:14px;
}
html:not(.legacy-kds-view) .admin-shell :where(
  .provider-card,.promotion-card,.course-grid > article,.recall-grid > article,
  .feedback-grid > article,.food-safety-grid > article,.usage-card
) {
  overflow:hidden;
}

/* ================================================================
   Tabs / segmented navigation: remove remaining brown/black legacy pills
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-tabs,.modifier-tabs,.expense-ledger-tabs,.workforce-tabs,.reservation-view-tabs
) {
  display:flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  overflow-x:auto;
  padding:5px;
  border:1px solid var(--ui-border,var(--ui-audit-line));
  border-radius:14px;
  background:#fff;
  scrollbar-width:none;
}
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-tabs,.modifier-tabs,.expense-ledger-tabs,.workforce-tabs,.reservation-view-tabs
)::-webkit-scrollbar { display:none; }
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-tabs,.modifier-tabs,.expense-ledger-tabs,.workforce-tabs,.reservation-view-tabs
) :where(button,a) {
  min-height:38px;
  flex:0 0 auto;
  border:0!important;
  border-radius:10px!important;
  padding:8px 12px;
  background:transparent!important;
  color:var(--ui-muted,var(--ui-audit-muted))!important;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:none!important;
}
html:not(.legacy-kds-view) .admin-shell :where(
  .trace-tabs,.modifier-tabs,.expense-ledger-tabs,.workforce-tabs,.reservation-view-tabs
) :where(button.active,a.active,[aria-current="page"]) {
  background:var(--ui-primary,#0F766E)!important;
  color:#fff!important;
}

/* ================================================================
   Traceability / HACCP: replace the last visibly old brown-red palette
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell .trace-page { color:var(--ui-text,var(--ui-audit-ink)); }
html:not(.legacy-kds-view) .admin-shell .trace-page .panel { padding:20px; }
html:not(.legacy-kds-view) .admin-shell .trace-page .panel > header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}
html:not(.legacy-kds-view) .admin-shell .trace-list { display:grid; }
html:not(.legacy-kds-view) .admin-shell .trace-list article {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(120px,1fr) auto;
  align-items:center;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--ui-border,var(--ui-audit-line))!important;
}
html:not(.legacy-kds-view) .admin-shell .trace-list article:last-child { border-bottom:0!important; }
html:not(.legacy-kds-view) .admin-shell .trace-warning {
  padding:13px 14px!important;
  border:1px solid #FED7AA!important;
  border-left:4px solid var(--ui-warning,#D97706)!important;
  border-radius:12px!important;
  background:var(--ui-warning-soft,#FFF7ED)!important;
  color:#9A3412!important;
}
html:not(.legacy-kds-view) .admin-shell .trace-warning.muted {
  border-color:var(--ui-border,var(--ui-audit-line))!important;
  border-left-color:var(--ui-muted,#64748B)!important;
  background:var(--ui-surface-soft,#F1F5F9)!important;
  color:var(--ui-text-soft,#334155)!important;
}
html:not(.legacy-kds-view) .admin-shell .trace-page .status-chip:is(.expired,.hold,.open) {
  background:var(--ui-danger-soft,#FEF2F2)!important;
  color:#B42318!important;
}
html:not(.legacy-kds-view) .admin-shell .trace-page .status-chip.expiring {
  background:var(--ui-warning-soft,#FFF7ED)!important;
  color:#9A3412!important;
}

/* ================================================================
   Lists / rows that still used bespoke separators and spacing
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .customer-row,.monitor-row,.security-session,.audit-list > *,
  .incident-list > *, .payroll-items > *, .time-list > *, .service-table > *,
  .expense-categories > *, .modifier-option-list > *, .modifier-dish-list > *
) {
  min-width:0;
  border-color:var(--ui-border,var(--ui-audit-line));
}
html:not(.legacy-kds-view) .admin-shell :where(.customer-row,.monitor-row,.security-session) {
  border-bottom:1px solid var(--ui-border,var(--ui-audit-line));
  padding-block:13px;
}
html:not(.legacy-kds-view) .admin-shell :where(.customer-row,.monitor-row,.security-session):last-child {
  border-bottom:0;
}
html:not(.legacy-kds-view) .admin-shell :where(.customer-value,.reservation-party,.expense-amount,.payroll-total) {
  font-variant-numeric:tabular-nums;
}

/* ================================================================
   Notes / operational messages / destructive areas
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .payment-security-note,.privacy-warning,.operational-note,.immutable-note,.haccp-review-warning
) {
  border:1px solid #BFDBFE;
  border-radius:12px;
  background:var(--ui-info-soft,#EFF6FF);
  color:#1E40AF;
  padding:12px 14px;
  line-height:1.5;
}
html:not(.legacy-kds-view) .admin-shell :where(.privacy-warning,.haccp-review-warning) {
  border-color:#FED7AA;
  background:var(--ui-warning-soft,#FFF7ED);
  color:#9A3412;
}
html:not(.legacy-kds-view) .admin-shell :where(.danger-button,.danger-link,.retention-confirm) {
  color:var(--ui-danger,#DC2626);
}
html:not(.legacy-kds-view) .admin-shell .danger-button {
  border-color:#FECACA;
  background:var(--ui-danger-soft,#FEF2F2);
}

/* ================================================================
   Settings / configuration density
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(
  .brand-colour-grid,.brand-upload-grid,.delivery-zone-form,.form-grid,.source-checks,
  .check-cluster,.toggle-pair,.dish-group-checks
) {
  gap:12px;
}
html:not(.legacy-kds-view) .admin-shell .form-section-title {
  margin:4px 0 0;
  color:var(--ui-text,var(--ui-audit-ink));
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
html:not(.legacy-kds-view) .admin-shell :where(.switch-row,.toggle-row,.toggle-line) {
  min-height:48px;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--ui-border,var(--ui-audit-line));
}
html:not(.legacy-kds-view) .admin-shell :where(.switch-row,.toggle-row,.toggle-line):last-child { border-bottom:0; }
html:not(.legacy-kds-view) .admin-shell :where(.webhook-url,.online-store-url) {
  overflow-wrap:anywhere;
  color:var(--ui-text-soft,#334155);
  background:var(--ui-audit-soft);
  border:1px solid var(--ui-border,var(--ui-audit-line));
  border-radius:10px;
  padding:9px 10px;
}

/* Keep tenant-defined branding/category colors meaningful; only normalize their containers. */
html:not(.legacy-kds-view) .admin-shell :where(.category-dot,.operation-color) {
  flex:0 0 auto;
  border:2px solid #fff;
  box-shadow:0 0 0 1px var(--ui-border,var(--ui-audit-line));
}

/* ================================================================
   Floor / QR / print centre
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(.area-grid,.table-card-grid) {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
html:not(.legacy-kds-view) .admin-shell :where(.qr-card,.new-table-card) {
  padding:16px;
}
html:not(.legacy-kds-view) .admin-shell .print-centre-modal {
  border-radius:18px;
  box-shadow:var(--ui-shadow-modal,0 20px 50px rgba(2,6,23,.18));
}
html:not(.legacy-kds-view) .admin-shell .print-layout-choice {
  border:1px solid var(--ui-border,var(--ui-audit-line));
  border-radius:12px;
  background:#fff;
}

/* ================================================================
   Feedback / promotion / payment / reservation
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell :where(.feedback-metrics,.reservation-desk-metrics,.privacy-metrics,.workforce-metrics) {
  gap:14px;
}
html:not(.legacy-kds-view) .admin-shell .feedback-card-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
html:not(.legacy-kds-view) .admin-shell :where(.promotion-code,.receipt-link) {
  color:var(--ui-primary,#0F766E);
  font-weight:750;
}
html:not(.legacy-kds-view) .admin-shell .promotion-value {
  color:var(--ui-text,var(--ui-audit-ink));
  font-variant-numeric:tabular-nums;
}
html:not(.legacy-kds-view) .admin-shell .reservation-quick-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
html:not(.legacy-kds-view) .admin-shell :where(.reservation-guest,.security-device,.customer-main) strong {
  color:var(--ui-text,var(--ui-audit-ink));
}

/* ================================================================
   AI waiter / security / privacy / workforce
   ================================================================ */
html:not(.legacy-kds-view) .admin-shell .ai-usage-bar {
  overflow:hidden;
  height:9px;
  border-radius:999px;
  background:var(--ui-border,var(--ui-audit-line));
}
html:not(.legacy-kds-view) .admin-shell :where(.service-feedback,.security-feedback) {
  border-radius:12px;
}
html:not(.legacy-kds-view) .admin-shell .security-empty,
html:not(.legacy-kds-view) .admin-shell .empty-panel {
  min-height:128px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:24px;
  border:1px dashed var(--ui-border-strong,#CBD5E1);
  border-radius:14px;
  background:var(--ui-audit-soft);
  color:var(--ui-muted,var(--ui-audit-muted));
}
html:not(.legacy-kds-view) .admin-shell .payroll-total {
  color:var(--ui-text,var(--ui-audit-ink));
  font-size:1.35rem;
  font-weight:800;
}

/* ================================================================
   Standalone employee/admin pages: erase the remaining warm/beige inline feel
   ================================================================ */
body.ui-foundation-page {
  background:var(--ui-page,#F8FAFC)!important;
  color:var(--ui-text,#0F172A)!important;
}
body.ui-foundation-page :where(.head small,.eyebrow,.muted,.meta,.text p,.top p,.arrow) {
  color:var(--ui-muted,#64748B)!important;
}
body.ui-foundation-page :where(.card,.doc,.summary:not(.warn):not(.clear),.empty) {
  border-color:var(--ui-border,#E2E8F0)!important;
  background:var(--ui-surface,#fff)!important;
}
body.ui-foundation-page :where(.icon,.btn:not(.danger):not(.alt)) {
  background:var(--ui-primary,#0F766E)!important;
  color:#fff!important;
}
body.ui-foundation-page .summary:not(.clear):not(.warn) {
  background:var(--ui-sidebar,#0F172A)!important;
  color:#fff!important;
}
body.ui-foundation-page .note {
  background:var(--ui-surface-soft,#F1F5F9)!important;
  color:var(--ui-text-soft,#334155)!important;
}
body.ui-foundation-page .badge:not(.published):not(.draft):not(.archived):not(.required) {
  background:var(--ui-surface-soft,#F1F5F9)!important;
  color:var(--ui-text-soft,#334155)!important;
}

/* ================================================================
   Responsive cleanup for legacy grids and controls
   ================================================================ */
@media (max-width:1023px) {
  html:not(.legacy-kds-view) .admin-shell :where(
    .provider-grid,.promotion-grid,.food-safety-grid,.safety-plan-grid,.profile-grid,
    .feedback-grid,.course-grid,.recall-grid,.usage-grid,.ai-admin-grid
  ) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  html:not(.legacy-kds-view) .admin-shell .trace-list article {
    grid-template-columns:minmax(0,1fr) auto;
  }
}
@media (max-width:767px) {
  html:not(.legacy-kds-view) .admin-shell :where(
    .provider-grid,.promotion-grid,.food-safety-grid,.safety-plan-grid,.profile-grid,
    .feedback-grid,.course-grid,.recall-grid,.usage-grid,.ai-admin-grid,
    .area-grid,.table-card-grid
  ) {
    grid-template-columns:1fr;
  }
  html:not(.legacy-kds-view) .admin-shell .trace-list article {
    grid-template-columns:1fr;
    gap:6px;
  }
  html:not(.legacy-kds-view) .admin-shell :where(
    .trace-tabs,.modifier-tabs,.expense-ledger-tabs,.workforce-tabs,.reservation-view-tabs
  ) :where(button,a) {
    min-height:44px;
  }
  html:not(.legacy-kds-view) .admin-shell :where(.reservation-quick-actions) > * {
    min-height:44px;
  }
}

@media (prefers-reduced-motion:reduce) {
  html:not(.legacy-kds-view) .admin-shell *,
  body.ui-foundation-page * { transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
