/* ControlPDV Portal · Food Service compatibility layer.
   The canonical light/dark authority is portal-theme.css. This file must never force
   dark surfaces when the Portal is in light mode. */
.portal .content.food-service-view024{
  --food-bg-1:var(--cp-surface);
  --food-bg-2:var(--cp-surface-2);
  --food-bg-3:var(--cp-surface-3);
  --food-line:var(--cp-border);
  --food-line-hover:var(--cp-border-strong);
  --food-text:var(--cp-text);
  --food-muted:var(--cp-muted);
  --food-mint:var(--cp-success);
}
.portal .content.food-service-view024 > *,
.portal .content.food-service-view024 .card,
.portal .content.food-service-view024 .food-portal-hero024,
.portal .content.food-service-view024 .food-section024{
  color:var(--food-text)!important;
}
.portal .content.food-service-view024 .food-portal-hero024{
  background:
    radial-gradient(circle at 100% 0,color-mix(in srgb,var(--cp-accent) 9%,transparent),transparent 42%),
    linear-gradient(145deg,var(--cp-surface-2),var(--cp-surface))!important;
  border-color:var(--food-line)!important;
}
.portal .content.food-service-view024 .food-section024,
.portal .content.food-service-view024 .food-waiter-guide024{
  background:linear-gradient(180deg,var(--cp-surface-2),var(--cp-surface))!important;
  border-color:var(--food-line)!important;
}
.portal .content.food-service-view024 .food-channel-origin024,
.portal .content.food-service-view024 .food-channel-origin024.external,
.portal .content.food-service-view024 .food-config-box024,
.portal .content.food-service-view024 .food-loyalty024{
  background:var(--food-bg-1)!important;
  border:1px solid var(--food-line)!important;
  color:var(--food-text)!important;
  box-shadow:none!important;
}
.portal .content.food-service-view024 .food-channel-card024,
.portal .content.food-service-view024 .food-external-channel024,
.portal .content.food-service-view024 .food-external-channel024.locked,
.portal .content.food-service-view024 .food-row024,
.portal .content.food-service-view024 .switch-row{
  background:var(--food-bg-2)!important;
  border-color:var(--food-line)!important;
  color:var(--food-text)!important;
}
.portal .content.food-service-view024 .food-external-channel024.locked{opacity:.82}
.portal .content.food-service-view024 .food-channel-card024:hover,
.portal .content.food-service-view024 .food-external-channel024:hover,
.portal .content.food-service-view024 .food-row024:hover,
.portal .content.food-service-view024 .switch-row:hover{
  background:var(--food-bg-3)!important;
  border-color:var(--food-line-hover)!important;
}
.portal .content.food-service-view024 .food-check-grid024 span{
  background:var(--cp-success-bg)!important;
  border-color:color-mix(in srgb,var(--cp-success) 38%,var(--cp-border))!important;
  color:var(--cp-success)!important;
}
.portal .content.food-service-view024 .food-check-grid024 strong{color:var(--food-mint)!important}
.portal .content.food-service-view024 .food-channel-origin-head024 strong,
.portal .content.food-service-view024 .food-external-channel024 strong,
.portal .content.food-service-view024 .food-config-box024 strong,
.portal .content.food-service-view024 .food-row024 strong,
.portal .content.food-service-view024 h2,
.portal .content.food-service-view024 h3{color:var(--cp-text-strong)!important}
.portal .content.food-service-view024 .food-channel-origin-head024 small,
.portal .content.food-service-view024 .food-external-channel024 small,
.portal .content.food-service-view024 .food-row024 small,
.portal .content.food-service-view024 .muted,
.portal .content.food-service-view024 .switch-row small{color:var(--food-muted)!important}
.portal .content.food-service-view024 .field input,
.portal .content.food-service-view024 .field select,
.portal .content.food-service-view024 .field textarea,
.portal .content.food-service-view024 .food-store-select024 select{
  background:var(--cp-field)!important;
  border:1px solid var(--cp-border-strong)!important;
  color:var(--cp-field-text)!important;
  -webkit-text-fill-color:var(--cp-field-text)!important;
  box-shadow:none!important;
}
.portal .content.food-service-view024 .field input:disabled,
.portal .content.food-service-view024 .field select:disabled,
.portal .content.food-service-view024 .field textarea:disabled{
  background:var(--cp-surface-3)!important;
  color:var(--cp-muted)!important;
  -webkit-text-fill-color:var(--cp-muted)!important;
  opacity:1!important;
}
.portal .content.food-service-view024 .field input:focus,
.portal .content.food-service-view024 .field select:focus,
.portal .content.food-service-view024 .field textarea:focus,
.portal .content.food-service-view024 .food-store-select024 select:focus{
  border-color:var(--cp-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--cp-accent) 12%,transparent)!important;
}
.portal .content.food-service-view024 option{
  background:var(--cp-field)!important;
  color:var(--cp-field-text)!important;
}
.portal .content.food-service-view024 .secondary{
  background:var(--cp-surface-3)!important;
  border-color:var(--cp-border-strong)!important;
  color:var(--cp-text)!important;
}
.portal .content.food-service-view024 .primary{
  background:linear-gradient(90deg,var(--cp-accent),var(--cp-accent-2))!important;
  color:#fff!important;
}
.portal .content.food-service-view024 .badge{background:var(--cp-surface-3)!important}
.portal .content.food-service-view024 .food-rule024{
  background:var(--cp-surface-2)!important;
  border:1px solid var(--cp-border)!important;
  color:var(--cp-text)!important;
}
.portal .content.food-service-view024 .food-rule024 strong{color:var(--cp-success)!important}

/* Inline legacy markup is normalized through semantic surfaces instead of a fixed dark palette. */
.portal .content.food-service-view024 [style*="background:#fff"],
.portal .content.food-service-view024 [style*="background: #fff"],
.portal .content.food-service-view024 [style*="background:white"],
.portal .content.food-service-view024 [style*="background: white"]{
  background:var(--cp-surface-2)!important;
  color:var(--cp-text)!important;
}

/* Unified Portal Theme Contract v004
   Compatibility selectors below consume the canonical semantic theme. */
:root{
  --cp-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --cp-portal-bg:var(--cp-bg);
  --cp-portal-surface:var(--cp-surface);
  --cp-portal-surface-2:var(--cp-surface-2);
  --cp-portal-surface-3:var(--cp-surface-3);
  --cp-portal-line:var(--cp-border);
  --cp-portal-line-focus:var(--cp-accent);
  --cp-portal-text:var(--cp-text);
  --cp-portal-muted:var(--cp-muted);
  --cp-portal-accent:var(--cp-accent);
  --cp-portal-mint:var(--cp-success);
}
.portal,
.portal button,.portal input,.portal select,.portal textarea,
.modal-back,.modal-back button,.modal-back input,.modal-back select,.modal-back textarea{
  font-family:var(--cp-font)!important;
}
.portal .card,
.portal .section,
.portal .table-wrap,
.portal .food-config-box024,
.portal .client-delivery-box025,
.portal .connector-card024,
.portal .connector-external025,
.modal-back .modal,
.modal-back .modal-wide,
.modal-back .food-config-box024,
.modal-back .client-delivery-box025,
.modal-back .notice,
.modal-back .switch-row{
  background:var(--cp-surface-2)!important;
  color:var(--cp-text)!important;
  border-color:var(--cp-border)!important;
  box-shadow:none!important;
}
.portal .field input,
.portal .field select,
.portal .field textarea,
.portal input:not([type="checkbox"]):not([type="radio"]),
.portal select,
.portal textarea,
.modal-back .field input,
.modal-back .field select,
.modal-back .field textarea,
.modal-back input:not([type="checkbox"]):not([type="radio"]),
.modal-back select,
.modal-back textarea{
  background:var(--cp-field)!important;
  color:var(--cp-field-text)!important;
  -webkit-text-fill-color:var(--cp-field-text)!important;
  border:1px solid var(--cp-border)!important;
  box-shadow:none!important;
}
.portal input::placeholder,.portal textarea::placeholder,
.modal-back input::placeholder,.modal-back textarea::placeholder{
  color:var(--cp-field-placeholder)!important;
  -webkit-text-fill-color:var(--cp-field-placeholder)!important;
}
.portal option,.modal-back option{background:var(--cp-field)!important;color:var(--cp-field-text)!important}
.portal .field input:focus,.portal .field select:focus,.portal .field textarea:focus,
.modal-back .field input:focus,.modal-back .field select:focus,.modal-back .field textarea:focus{
  border-color:var(--cp-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--cp-accent) 12%,transparent)!important;
}
.portal .muted,.portal small,.modal-back .muted,.modal-back small{color:var(--cp-muted)!important}
.portal h1,.portal h2,.portal h3,.portal strong,
.modal-back h1,.modal-back h2,.modal-back h3,.modal-back strong{color:var(--cp-text-strong)}
.portal .notice,.modal-back .notice{
  background:var(--cp-surface-2)!important;
  color:var(--cp-text)!important;
  border-color:var(--cp-border)!important;
}
.portal .switch-row,.modal-back .switch-row{
  background:var(--cp-surface-2)!important;
  color:var(--cp-text)!important;
  border-color:var(--cp-border)!important;
}
.portal .activation-registry,.portal .lc-detail-grid024>div,.portal .lc-source-note024,
.portal .supplier-sync-note,.portal .supplier-active-line,
.modal-back .activation-registry,.modal-back .lc-detail-grid024>div,.modal-back .lc-source-note024{
  background:var(--cp-surface)!important;
  color:var(--cp-text)!important;
  border-color:var(--cp-border)!important;
}
.portal [style*="background:#fff"],.portal [style*="background: #fff"],
.portal [style*="background:white"],.portal [style*="background: white"],
.modal-back [style*="background:#fff"],.modal-back [style*="background: #fff"],
.modal-back [style*="background:white"],.modal-back [style*="background: white"]{
  background:var(--cp-surface-2)!important;
  color:var(--cp-text)!important;
}

.client-delivery-box025,.food-subsection025{
  margin-top:14px;padding:14px;border:1px solid var(--cp-border);
  border-radius:13px;background:var(--cp-surface);
}
.client-filter025{margin:0 0 14px}
.client-filter025 input{width:100%;padding:12px 13px;border-radius:10px}
.ecosystem-flow025{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px;
  border:1px solid var(--cp-border);border-radius:12px;background:var(--cp-surface)
}
.ecosystem-flow025 span{
  padding:7px 10px;border-radius:999px;background:var(--cp-surface-3);
  color:var(--cp-text);font-weight:800;font-size:11px
}
.ecosystem-flow025 b{color:var(--cp-success)}
.ecosystem-role-grid025{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}
.ecosystem-role-grid025 span{
  padding:12px;border:1px solid var(--cp-border);border-radius:11px;
  background:var(--cp-surface);color:var(--cp-text);font-weight:800;font-size:12px
}
.operation-launcher025{
  display:grid;gap:8px;margin:3px 0 20px;padding:12px;
  border:1px solid var(--cp-border-strong);border-radius:12px;
  background:linear-gradient(135deg,var(--cp-surface-3),var(--cp-surface-2))
}
.operation-launcher025>strong{font-size:13px}
.operation-launcher025>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.operation-launcher025 a,.operation-launcher-compact025 a{
  display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:9px;text-decoration:none;
  background:var(--cp-surface);border:1px solid var(--cp-border-strong);color:var(--cp-text);font-weight:850;font-size:11px
}
.operation-launcher025 a:hover,.operation-launcher-compact025 a:hover{background:var(--cp-hover);border-color:var(--cp-accent)}
.operation-launcher-compact025{display:grid;gap:8px;margin-top:10px}
.operation-launcher-compact025>strong{font-size:12px}
.operation-launcher-compact025>div{display:flex;gap:8px}
.operation-launcher-compact025 a{padding:0 15px}
.connector-stores025{display:grid;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--cp-border)}
.connector-store025{
  display:flex;align-items:flex-start;gap:9px;padding:9px 10px;
  border:1px solid var(--cp-border);border-radius:10px;background:var(--cp-surface)
}
.connector-store025 input{margin-top:3px}
.connector-store025 span{display:grid;gap:2px}
.connector-store025.locked{opacity:.55}

@media(max-width:820px){
  .ecosystem-role-grid025{grid-template-columns:1fr 1fr}
  .operation-launcher025>div{grid-template-columns:1fr}
}
@media(max-width:520px){
  .ecosystem-role-grid025{grid-template-columns:1fr}
  .operation-launcher-compact025>div{display:grid}
}
