/* Apariencia común. Los estados conservan sus franjas y colores semánticos. */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --ui-bg: #faf8f2;
  --ui-surface: #ffffff;
  --ui-surface-alt: #f6f3ec;
  --ui-text: #103c43;
  --ui-muted: #56696b;
  --ui-border: #e3ded2;
  --ui-primary: #00777f;
  --ui-primary-hover: #00646b;
  --ui-on-primary: #ffffff;
  --ui-link: #00777f;
  --ui-primary-soft: #e2f1f1;
  --ui-hover: #edf6f5;
  --ui-accent: #bd8051;
  --ui-success: #147849;
  --ui-success-bg: #e8f6ee;
  --ui-warning: #875a0c;
  --ui-warning-bg: #fff4dc;
  --ui-danger: #af393d;
  --ui-danger-bg: #fdecee;
  --ui-info: #236c99;
  --ui-info-bg: #e9f4fc;
  --ui-focus: #008f99;
  --ui-grid: #ddd8cb;
  --ui-shadow: 0 4px 18px #103c430d;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --ui-bg: #092c34;
  --ui-surface: #103c43;
  --ui-surface-alt: #0d353c;
  --ui-text: #f7f4ed;
  --ui-muted: #afc6c4;
  --ui-border: #2a5c63;
  --ui-primary: #36c5ce;
  --ui-primary-hover: #62d4db;
  --ui-on-primary: #092c34;
  --ui-link: #36c5ce;
  --ui-primary-soft: #12464e;
  --ui-hover: #174c55;
  --ui-accent: #d99a6a;
  --ui-success: #7de0ac;
  --ui-success-bg: #17443a;
  --ui-warning: #f0ca7a;
  --ui-warning-bg: #4a3e22;
  --ui-danger: #ffaaaa;
  --ui-danger-bg: #4d2e33;
  --ui-info: #95d6f7;
  --ui-info-bg: #1d4a5e;
  --ui-focus: #7fdde3;
  --ui-grid: #24555c;
  --ui-shadow: 0 4px 18px #00000033;
}

:root { min-width: 0; background: var(--ui-bg); }
body.platform {
  --bg: var(--ui-bg);
  --surface: var(--ui-surface);
  --ink: var(--ui-text);
  --muted: var(--ui-muted);
  --line: var(--ui-border);
  --primary: var(--ui-primary);
  --forest: var(--ui-link);
  --green: var(--ui-primary);
  --pale: var(--ui-primary-soft);
  --amber: var(--ui-warning);
  --amber-bg: var(--ui-warning-bg);
  --red: var(--ui-danger);
  --red-bg: var(--ui-danger-bg);
  min-width: 0;
  background: var(--ui-bg);
  color: var(--ui-text);
  font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.platform .workspace { min-width: 0; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.platform main { width: 100%; max-width: none; min-width: 0; margin: 0; padding: 18px 22px 20px; flex: 1 0 auto; }
.platform .page-footer {
  flex: 0 0 auto;
  width: auto;
  /* Prevalece sobre los márgenes responsive anteriores; el pie ocupa su lugar al fondo. */
  margin: auto 22px 0 !important;
  padding: 14px 0 16px;
  border-color: var(--ui-border);
  color: var(--ui-muted);
  font-size: 11px;
  flex-wrap: wrap;
}
.platform .page-footer strong { color: var(--ui-link); font-size: 14px; }
.platform :is(.workspace-content,.dashboard,.widget,.panel,.panel-body,.table-component,.cart-layout,.cart-panel,.page-columns,.form-grid,.catalog-card,.kds-column,.kds-ticket,.topbar-left,.topbar-actions) { min-width: 0; }
.platform :is(.data-scroll,.table-scroll) { width: 100%; max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: var(--ui-border) var(--ui-surface-alt); }
.platform :is(img,video,object) { max-width: 100%; }
.platform :is(h1,h2,h3,strong) { overflow-wrap: anywhere; }
.platform :is(p,dd,.field small,.source-caption,.workspace-link small) { overflow-wrap: anywhere; }
.platform :is(.screen-head h1,h1) { font-size: 24px; line-height: 1.25; letter-spacing: -.45px; color: var(--ui-text); }
.platform .screen-head p { max-width: 1050px; margin-top: 5px; font-size: 13px; color: var(--ui-muted); }
.platform :is(.panel-head h2,.catalog-card h3,.report-link h2) { font-size: 15px; color: var(--ui-text); line-height: 1.35; }
.platform .screen-head { margin-bottom: 14px; }
.platform :is(.panel-head,.compact .panel-head) { min-height: 47px; padding: 10px 14px; gap: 10px; }
.platform :is(.panel-body,.compact .panel-body) { padding: 14px; }
.platform .panel .empty-state:not(:has(a,button)) { grid-template-columns: 26px minmax(0,1fr); padding: 18px 14px; gap: 10px; text-align: left; align-items: center; }
.platform .panel .empty-state:not(:has(a,button))>.icon { width: 26px; height: 26px; }
.platform .panel .empty-state:not(:has(a,button))>p { justify-self: start; }
.platform .panel + .panel,.platform .section-spacer + .panel { margin-top: 14px; }
.platform :is(.page-columns,.two-columns,.three-columns,.cart-layout,.dashboard) { gap: 14px; }
.platform :is(.two-columns,.three-columns,.report-grid,.dashboard)>.panel { margin-top: 0; }
.platform .section-spacer { margin-top: 14px; }
.platform :is(.panel,.card,.catalog-card,.kds-ticket,.report-link,.quick-link,.summary-grid .summary,.toolbar,.workspace-tabs,.sidebar,.topbar,.column-picker>div,dialog,.dialog-header,.search-result,.notification-row,.dish-button,.payment-methods label) {
  background: var(--ui-surface);
  border-color: var(--ui-border);
  color: var(--ui-text);
}
.platform :is(.panel,.catalog-card,.summary-grid .summary) { box-shadow: var(--ui-shadow); }
.platform :is(.panel-head,.panel-footer,.data-table td,.data-table th,.edit-table td,.edit-table th,.meta-list>div,.step-row,.ticket-line,.kds-ticket>header,.cart-line,.screen-subnav,.workspace-tabs,.form-actions,.table-pagination,.table-details-list li,.custom-widget-row,.week-grid>div,.sitemap-group a,.receipt-lines,.info-line) { border-color: var(--ui-border); }
.platform .panel-head { border-left-color: var(--ui-primary); }
.platform .panel[data-tone="success"]>.panel-head { border-left-color: #17a673; }
.platform .panel[data-tone="warning"]>.panel-head { border-left-color: #e4ab39; }
.platform .panel[data-tone="info"]>.panel-head { border-left-color: #2196c4; }
.platform .summary-grid .summary { border-top-color: var(--ui-primary); }
.platform .summary-grid .summary[data-tone="success"] { border-top-color: #17a673; }
.platform .summary-grid .summary[data-tone="warning"] { border-top-color: #e4ab39; }
.platform .summary-grid .summary[data-tone="info"] { border-top-color: #2196c4; }
.platform :is(.panel-footer,.form-actions,.table-pagination,.catalog-card>footer,.kds-ticket>footer,.dialog-footer,.document-preview,.kds-column,.widget-controls,.week-title,.order-cart,.detail-stat,.service-strip,.station,.simulator,.notice,.segmented,.card-bottom-link,.period-control) { background: var(--ui-surface-alt); color: var(--ui-muted); border-color: var(--ui-border); }
.platform :is(.summary>strong,.meta-list dd,.meta-grid>div>strong,.mini-metrics strong,.recipe-hero h2,.cart-line strong,.step-row h3,.info-line strong,.table-details-list a,.quick-link strong,.breadcrumb strong,.dialog-header h2,.items-total,.dish-button strong,.dish-price,.station-count,.station h3,.detail-stat strong) { color: var(--ui-text); }
.platform :is(.muted,.source-caption,.summary>span,.summary>small,.panel-head p,.data-table td small,.catalog-card small,.catalog-card .mini-metrics,.meta-grid>div>span,.meta-list dt,.field small,.section-label,.step-row p,.ticket-status,.ticket-line small,.kds-ticket>header small,.cart-line small,.recipe-hero p,.report-link p,.mini-bar span,.mini-bar strong,.room-legend-full,.room-zone-label,.quick-link small,.table-details-list small,.toolbar .results-count,.breadcrumbs,.empty-state,.cart-empty,.cart-notes,.schedule-cell,.horizontal-bar,.capacity-line,.field-checkbox,.identity,.week-grid>div,.sitemap-group a,.custom-widget-row,.dialog-body,.table-options,.column-picker,.connection,.dish-button small,.notification-row small,.help-list li,.activity-item p,.activity-item time,.demo-label) { color: var(--ui-muted); }
.platform :is(.summary>small,.panel-head p,.data-table td small,.catalog-card small,.meta-grid>div>span,.field small,.source-caption,.section-label,.ticket-line small,.cart-line small,.quick-link small,.table-pagination,.toolbar .results-count,.breadcrumbs,.room-legend-full,.demo-status,.mini-bar span,.mini-bar strong) { font-size: 11px; }
.platform :is(.summary>span,.meta-list>div,.meta-grid>div>strong,.ticket-line,.kds-column>h2,.step-row p,.catalog-card .mini-metrics,.page-note,.workspace-link small) { font-size: 12px; }
.platform :is(.quick-link strong,.cart-line strong,.step-row h3,.dish-button strong,.dish-price) { font-size: 13px; }
.platform :is(.report-link p,.recipe-hero p,.kds-ticket>header,.table-details-list small,.custom-widget-row>.widget-name,.settings-nav a,.sitemap-group a) { font-size: 13px; }
.platform .summary>strong,.platform.compact .summary>strong { font-size: 25px; margin-top: 6px; font-variant-numeric: tabular-nums; }
.platform .summary-grid { gap: 12px; margin-bottom: 14px; }
.platform .summary-grid .summary { padding: 11px 14px; }
.platform :is(.workspace-link,.sidebar-bottom .nav-item,.nav-group summary,.nav-children a,.settings-nav a,.workspace-tabs a,.view-switch a,.screen-subnav a,.breadcrumbs a,.dashboard-presets a) { color: var(--ui-muted); }
.platform .workspace-link { min-height: 57px; }
.platform .workspace-link strong { font-size: 13px; }
.platform .workspace-link small { font-size: 11px; white-space: normal; }
.platform .workspace-link>.icon { color: var(--ui-muted); }
.platform :is(.workspace-link.active,.workspace-tabs a.active,.view-switch a.active,.settings-nav a.active,.dashboard-presets a.active,.dish-filters button.selected,.nav-item.active,.nav-children a.active,.segmented button.selected) { background: var(--ui-primary-soft); color: var(--ui-link); border-color: var(--ui-link); }
.platform :is(.workspace-link.active small,.workspace-link.active>.icon,.screen-subnav a.active,.text-button,.data-table td a,.kds-ticket>header a,.report-link>span,.quick-link>.icon,.catalog-card h3 a) { color: var(--ui-link); }
.platform :is(.workspace-link:hover,.workspace-tabs a:hover,.nav-item:hover,.nav-group summary:hover,.nav-children a:hover,.quick-link:hover,.report-link:hover,.dish-button:hover,.search-result:hover,.notification-row:hover) { background: var(--ui-hover); color: var(--ui-link); }
.platform :is(.view-switch a,.dashboard-presets a,.column-picker summary,.dish-filters button) { background: var(--ui-surface); color: var(--ui-muted); border-color: var(--ui-border); font-size: 12px; }
.platform .workspace-tabs a { display: inline-flex; align-items: center; flex-shrink: 0; min-height: 46px; font-size: 14px; line-height: 1.4; padding: 12px 16px; }
.platform .screen-subnav { gap: 6px; margin-bottom: 16px; scrollbar-width: thin; scroll-padding-inline: 12px; }
.platform .screen-subnav,.platform .workspace-tabs { scrollbar-color: var(--ui-border) transparent; }
.platform .screen-subnav a { display: inline-flex; align-items: center; flex-shrink: 0; min-height: 46px; padding: 12px 15px; border-bottom-width: 3px; border-radius: 6px 6px 0 0; font-size: 14px; line-height: 1.4; font-weight: 600; }
.platform .screen-subnav a.active { background: var(--ui-primary-soft); border-color: var(--ui-link); color: var(--ui-link); font-weight: 700; }
.platform .screen-subnav a:hover { background: var(--ui-hover); color: var(--ui-link); }
.platform .workspace-tabs a:focus-visible,.platform .screen-subnav a:focus-visible,.platform .view-switch a:focus-visible { outline: 2px solid var(--ui-link); outline-offset: -3px; }
.platform .view-switch a { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 12px; font-size: 13px; line-height: 1.4; }
.platform .restaurant-button { background: var(--ui-surface-alt) !important; border-color: var(--ui-border) !important; color: var(--ui-text); text-decoration: none; }
.platform .restaurant-copy small { color: var(--ui-muted) !important; }
.platform :is(.restaurant-icon,.catalog-symbol,.step-number,.avatar,.identity .user-bubble,.user-bubble,.round-icon,.dish-button .add-circle) { background: var(--ui-primary-soft); color: var(--ui-link); }
.platform .avatar { border-color: var(--ui-surface); box-shadow: 0 0 0 1px var(--ui-border); }
/* Logotipos del kit: cada tema muestra su variante; con el menú plegado queda el símbolo. */
.platform .brand-logo { display: block; width: 100%; max-width: 168px; height: auto; }
.platform .brand-symbol { display: none; width: 40px; height: auto; }
html[data-theme="dark"] .platform .brand-logo--day,
html:not([data-theme="dark"]) .platform .brand-logo--night { display: none; }
.platform .print-brand { display: none; }
.platform :is(.header-demo,.ticket-note,.allergen-tags span,.notice.warm) { background: var(--ui-warning-bg); color: var(--ui-warning); border-color: var(--ui-warning); font-size: 11px; }

/* Tablas compactas: tamaño legible, franjas de estado y desplazamiento local. */
.platform .data-table,.platform .edit-table { font-size: 13px; color: var(--ui-text); }
.platform .data-table td,.platform.compact .data-table td { color: var(--ui-text); font-size: 13px; padding: 8px 12px; }
.platform .data-table th { background: var(--ui-surface-alt); color: var(--ui-muted); padding: 10px 12px; font-size: 12px; }
.platform .data-table th .text-button { color: var(--ui-muted); font-size: 12px; }
.platform .data-table tbody tr:nth-child(even) { background: var(--ui-surface-alt); }
.platform .data-table tbody tr:hover { background: var(--ui-hover); }
.platform .data-table tbody tr>td:first-child { border-left-color: var(--ui-border); }
.platform .data-table tbody tr[data-tone="success"]>td:first-child { border-left-color: #25ac76; }
.platform .data-table tbody tr[data-tone="warning"]>td:first-child { border-left-color: #e1ab3b; }
.platform .data-table tbody tr[data-tone="danger"]>td:first-child { border-left-color: #e26868; }
.platform .data-table tbody tr[data-tone="info"]>td:first-child { border-left-color: #429dcc; }
.platform .matrix :is(td,th):first-child { background: var(--ui-surface); }
.platform .matrix-clear { color: var(--ui-muted); }
.platform .column-picker>div { max-width: min(230px,calc(100vw - 32px)); z-index: 15; }
.platform .column-filters { min-width: 0; max-width: 100%; }
.platform .column-filters>summary { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; list-style: none; cursor: pointer; padding: 8px 10px; font-size: 12px; background: var(--ui-surface); color: var(--ui-text); border: 1px solid var(--ui-border); border-radius: 6px; }
.platform .column-filters>summary::-webkit-details-marker { display: none; }
.platform .column-filters>summary::after { content: '⌄'; margin-left: 3px; color: var(--ui-muted); }
.platform .column-filters[open]>summary::after { content: '⌃'; }
.platform .column-filters>summary .icon { width: 16px; height: 16px; }
.platform .column-filters>summary:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.platform .column-filters[open] { flex: 1 0 100%; order: 3; }
.platform .column-filters-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: 12px; padding: 13px; margin-top: 9px; border: 1px solid var(--ui-border); border-radius: 7px; background: var(--ui-surface-alt); }
.platform .column-filter-field { display: grid; min-width: 0; gap: 5px; }
.platform .column-filter-field>span { color: var(--ui-muted); font-size: 12px; font-weight: 700; }
.platform .column-filter-field :is(input,select) { width: 100%; min-width: 0; max-width: 100%; }
.platform .column-filter-field input[type="search"] { width: 100%; }
.platform .toolbar:has(.column-filters[open]) { align-items: flex-start; }
.platform .toolbar:has(.column-filters[open])>.filters { flex: 1 1 100%; }
.platform .table-sort-indicator { color: var(--ui-muted); font-size: 15px; }
.platform th[aria-sort="ascending"] .table-sort-indicator,.platform th[aria-sort="descending"] .table-sort-indicator { color: var(--ui-link); }
.platform :is(.pill,.pill-neutral,.pill-muted) { background: var(--ui-surface-alt); color: var(--ui-muted); font-size: 11px; padding: 4px 7px; }
.platform :is(.pill-success,.pill-green) { background: var(--ui-success-bg); color: var(--ui-success); }
.platform :is(.pill-warning,.pill-amber) { background: var(--ui-warning-bg); color: var(--ui-warning); }
.platform :is(.pill-danger,.pill-red) { background: var(--ui-danger-bg); color: var(--ui-danger); }
.platform :is(.pill-info,.pill-blue) { background: var(--ui-info-bg); color: var(--ui-info); }
.platform .amount-positive { color: var(--ui-success); }
.platform .amount-negative { color: var(--ui-danger); }
.platform .page-note { background: var(--ui-info-bg); color: var(--ui-info); border-color: var(--ui-border); font-size: 12px; }
.platform .page-note.neutral { background: var(--ui-surface-alt); color: var(--ui-muted); }
.platform .page-note.warning { background: var(--ui-warning-bg); color: var(--ui-warning); }
.platform :is(.page-note.danger,.form-status,.form-error) { background: var(--ui-danger-bg); color: var(--ui-danger); }

/* Controles, foco y formularios. */
.platform .button { font-size: 12px; min-height: 36px; padding: 8px 12px; background: var(--ui-surface); color: var(--ui-text); border-color: var(--ui-border); }
.platform .button:hover { background: var(--ui-hover); color: var(--ui-link); border-color: var(--ui-link); }
.platform .button.button-primary { background: var(--ui-primary); border-color: var(--ui-primary); color: var(--ui-on-primary); }
.platform .button.button-primary:hover { background: var(--ui-primary-hover); border-color: var(--ui-primary-hover); color: var(--ui-on-primary); }
.platform .data-table td a.button.button-primary { color: var(--ui-on-primary); }
.platform .button.button-danger { background: var(--ui-danger-bg); color: var(--ui-danger); border-color: var(--ui-danger); }
.platform :is(.dashboard .panel-head .button,.data-table .row-actions .button,.table-pagination .button,.table-edit-extras .button,.kds-ticket>footer .button) { font-size: 12px; min-height: 34px; padding: 7px 9px; }
.platform .icon-button { min-width: 36px; min-height: 36px; color: var(--ui-muted); }
.platform .icon-button:hover { background: var(--ui-primary-soft); color: var(--ui-link); }
.platform .theme-toggle { width: auto; padding: 7px 10px; display: inline-flex; gap: 7px; flex: 0 0 auto; white-space: nowrap; border: 1px solid var(--ui-border); font-size: 12px; }
.platform #sidebar-toggle { align-self: flex-end; margin: 0 0 9px; flex: 0 0 auto; }
.platform :is(.field>span,.field>label,.edit-table th) { font-size: 12px; color: var(--ui-muted); }
.platform .field input,
.platform .field select,
.platform .field textarea,
.platform .edit-table input,
.platform .edit-table select,
.platform .steps-inputs input,
.platform .step-row>select,
.platform .inline-form input,
.platform .inline-form select,
.platform .inline-select,
.platform .toolbar input,
.platform .toolbar select,
.platform .line-controls input,
.platform .line-controls select,
.platform .custom-widget-row select,
.platform .search-input {
  min-width: 0;
  max-width: 100%;
  min-height: 38px;
  font-size: 13px;
  color: var(--ui-text);
  background: var(--ui-surface);
  border: 1px solid var(--ui-border);
  border-radius: 6px;
  padding: 9px 10px;
}

/* Los campos con icono reservan su espacio tras aplicar los estilos comunes. */
.platform .search-wrap { position: relative; display: block; min-width: 0; max-width: 100%; }
.platform .search-wrap>.icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--ui-muted); pointer-events: none; }
.platform .search-wrap>input,.platform .toolbar .search-wrap>input { padding-left: 38px; }
.platform .toolbar .column-picker input[type="checkbox"] { width: 16px; height: 16px; min-width: 16px; min-height: 16px; padding: 0; flex: 0 0 16px; }

.platform .edit-table select { min-width: 170px; }
.platform .field :is(input,select,textarea) { width: 100%; }
.platform input::placeholder,.platform textarea::placeholder { color: var(--ui-muted); opacity: 1; }
.platform :is(input[type="checkbox"],input[type="radio"]) { accent-color: var(--ui-primary); }
.platform .header-search { background: var(--ui-surface-alt); border-color: var(--ui-border); }
.platform .header-search input { color: var(--ui-text); background: transparent; font-size: 13px; min-width: 0; }
.platform .header-search :is(kbd,.icon) { color: var(--ui-muted); }
.platform .quantity button { background: var(--ui-surface); border-color: var(--ui-border); color: var(--ui-link); width: 30px; height: 30px; }
.platform .quantity span { color: var(--ui-text); font-size: 13px; }
.platform .payment-methods label:has(input:checked),.platform .table-pick:has(input:checked) { background: var(--ui-primary-soft); color: var(--ui-link); border-color: var(--ui-link); }
.platform .step-row { flex-wrap: wrap; align-items: flex-start; gap: 10px; padding-bottom: 14px; margin-bottom: 14px; }
.platform .steps-inputs { grid-template-columns: minmax(0,1fr) 76px; min-width: 220px; }
.platform .step-row>select { flex: 0 1 170px; }
.platform .step-row>.step-copy { flex: 1; }
.platform :is(button,a,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.platform button:disabled { opacity: .55; }

/* Ocupación, cocina y panel de control: se mantienen los códigos de color. */
.platform .widget>.panel { height: 100%; display: flex; flex-direction: column; }
.platform .widget>.panel>.panel-body { flex: 1; }
.platform .widget>.panel>.panel-footer { margin-top: auto; }
.platform .dashboard .floor-plan { background: var(--ui-surface-alt); border-color: var(--ui-border); min-height: 185px; }
.platform .room-layout { background-color: var(--ui-surface-alt); background-image: radial-gradient(var(--ui-grid) 1px,transparent 1px); border-color: var(--ui-border); }
.platform :is(.table-seat,.room-table) { background: var(--ui-primary-soft); color: var(--ui-link); border-color: var(--ui-link); }
.platform .room-table { box-shadow: 0 4px 0 var(--ui-border); }
.platform :is(.table-seat,.room-table).free { background: var(--ui-surface); color: var(--ui-muted); border-color: var(--ui-border); box-shadow: 0 4px 0 var(--ui-border); }
.platform :is(.table-seat,.room-table).occupied { background: var(--ui-primary-soft); color: var(--ui-link); border-color: var(--ui-link); }
.platform :is(.table-seat,.room-table).ready { background: var(--ui-success-bg); color: var(--ui-success); border-color: var(--ui-success); }
.platform :is(.table-seat,.room-table).reserved { background: var(--ui-warning-bg); color: var(--ui-warning); border-color: var(--ui-warning); }
.platform :is(.table-seat,.room-table).cleaning { background: var(--ui-surface-alt); color: var(--ui-muted); border-color: var(--ui-border); }
.platform :is(.table-seat,.room-table).blocked { background: var(--ui-danger-bg); color: var(--ui-danger); border-color: var(--ui-danger); }
.platform .table-seat::before,.platform .table-seat::after { background: var(--ui-surface-alt); border-color: var(--ui-border); }
.platform .room-table.selected { outline-color: var(--ui-link); }
.platform .room-table.grouped::after { background: var(--ui-primary); }
.platform .kds-column { min-height: 0; }
.platform .kds-column>h2 { color: var(--ui-muted); }
.platform .kds-column:nth-child(1) { border-top-color: #dda936; }
.platform .kds-column:nth-child(2) { border-top-color: #469cc6; }
.platform .kds-column:nth-child(3) { border-top-color: #24a675; }
.platform .ticket-line { font-size: 13px; color: var(--ui-text); }
.platform .pipeline>div { color: var(--ui-muted); border-color: var(--ui-border); }
.platform .pipeline>div.done { color: var(--ui-info); border-color: var(--ui-info); }
.platform .pipeline>div.current { color: var(--ui-link); border-color: var(--ui-link); }
.platform :is(.capacity-line i,.horizontal-bar i,.schedule-cell>i,.tiny-progress) { background: var(--ui-surface-alt); }
.platform :is(.capacity-line i b,.horizontal-bar i b,.schedule-cell>i>b,.mini-bar i,.tiny-progress span) { background: var(--ui-primary); }
.platform .mini-bar:nth-child(2n) i { background: var(--ui-accent); }
.platform .shift-pill { color: var(--ui-link); background: var(--ui-primary-soft); font-size: 11px; }
.platform .week-grid>.week-title { background: var(--ui-surface-alt); }

.stock-coverage { min-width: 112px; }
.stock-meter { display: block; width: 112px; height: 5px; margin: 6px 0 2px; overflow: hidden; border-radius: 4px; background: var(--ui-border); }
.stock-meter i { display: block; height: 100%; border-radius: inherit; background: var(--ui-success); }
.stock-meter.warning i { background: #d69a21; }
.stock-meter.danger i { background: var(--ui-danger); }
.platform .compare-hint { font-size: 12px; }

/* Fotos de referencia: proporciones estables, sin filtros de tema. */
.platform .entity-thumb { display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 42px; }
.platform .photo-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; background: var(--ui-surface-alt); color: var(--ui-muted); border: 1px solid var(--ui-border); border-radius: 7px; text-align: center; font-size: 12px; font-weight: 400; line-height: 1.2; }
.platform .photo-placeholder>.icon { width: 28px; height: 28px; flex: none; }
.platform .entity-thumb img,.platform .entity-thumb>.photo-placeholder { display: block; width: 42px; height: 42px; object-fit: cover; flex: 0 0 42px; border-radius: 7px; background: var(--ui-surface-alt); border: 1px solid var(--ui-border); }
.platform .entity-thumb>.photo-placeholder { display: flex; gap: 2px; font-size: 9px; }
.platform .entity-thumb>.photo-placeholder>.icon { width: 16px; height: 16px; }
.platform .entity-thumb>.photo-placeholder>span { max-width: 32px; }
.platform .dish-photo>.photo-placeholder { width: 100%; height: 100%; border: 0; border-radius: 0; }
.platform .recipe-cover>.photo-placeholder { width: 100%; aspect-ratio: 16/7; max-height: 280px; border: 0; }
.platform .recipe-photo-preview>.photo-placeholder { width: min(100%,240px); height: 150px; }
.platform .recipe-hero .catalog-symbol>.photo-placeholder { width: 100%; height: 100%; border: 0; }
.platform .recipe-hero .catalog-symbol>.photo-placeholder>span { display: none; }
.platform img.entity-thumb { display: inline-block; width: 42px; height: 42px; object-fit: cover; border-radius: 7px; margin-right: 9px; vertical-align: middle; }
.platform :is(.dish-photo,img.dish-photo) { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; padding: 0; background: var(--ui-surface-alt); border-bottom: 1px solid var(--ui-border); }
.platform figure.dish-photo { position: relative; margin: 0; overflow: hidden; }
.platform .dish-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.platform .dish-photo figcaption { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 5px 9px; background: #092c34cc; color: #fff; font-size: 11px; line-height: 1.4; }
.platform .dish-button .dish-photo { border-radius: 6px; }
.platform .recipe-cover { display: block; width: 100%; max-height: 340px; aspect-ratio: 16/7; object-fit: cover; border-radius: 9px; overflow: hidden; margin: 0 0 15px; background: var(--ui-surface-alt); }
.platform .recipe-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.platform figure.recipe-cover { aspect-ratio: auto; max-height: none; margin: 0 0 15px; }
.platform figure.recipe-cover>img { height: auto; max-height: 280px; aspect-ratio: 16/7; }
.platform .sample-photo-note { font-size: 11px; color: var(--ui-muted); line-height: 1.5; margin: 7px 0 0; }
.platform .recipe-cover>figcaption.sample-photo-note { margin: 0; padding: 7px 10px; background: var(--ui-surface-alt); }
.platform .catalog-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,245px),1fr)); gap: 14px; }
.platform .catalog-card { display: flex; flex-direction: column; }
.platform .catalog-card>footer { margin-top: auto; }
.platform .catalog-card>header { padding: 13px 14px 10px; }
.platform .catalog-card>div:not(.dish-photo) { padding: 0 14px 13px; }
.platform .catalog-card>footer { padding: 10px 14px; gap: 8px; flex-wrap: wrap; }
.platform .dish-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,170px),1fr)); }

/* Documentos blancos: mantienen la legibilidad del ticket en ambos temas. */
.platform .receipt-paper {
  --ui-text: #103c43; --ui-muted: #56696b; --ui-border: #e3ded2;
  --ui-surface: #fff; --ui-surface-alt: #f6f3ec; --ui-link: #00777f;
  --ui-primary-soft: #e2f1f1; --ui-hover: #edf6f5;
  background: #fff; color: #103c43; border-color: #e3ded2; color-scheme: light; max-width: 720px; padding: 28px;
}
.platform .receipt-paper :is(h2,.info-line strong,.meta-list dd,.receipt-meta,.receipt-lines) { color: #103c43; }
.platform .receipt-paper .demo-watermark { background: #fff7e9; color: #8b5c0d; border-color: #c8a879; }
.platform .receipt-paper .data-table { min-width: 0; }
.platform .receipt-paper .receipt-thanks { text-align: center; }
.platform dialog { max-width: min(620px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); border-radius: 12px; color: var(--ui-text); box-shadow: 0 20px 80px #0005; }
.platform dialog.wide { max-width: min(920px,calc(100vw - 32px)); }
.platform dialog::backdrop { background: #092c3499; }
.platform .dialog-header { border-radius: 12px 12px 0 0; padding: 20px; }
.platform .dialog-body { padding: 20px; }
.platform .dialog-footer { padding: 14px 20px; }
.platform .toast { color: #f7f4ed; background: #103c43; border-color: #36c5ce; }
.platform .toast.error { background: #793842; border-color: #c27a82; }
.platform .toast :is(button,.icon) { color: #fff; }
.platform .toast-container { max-width: calc(100vw - 24px); }

@media (min-width: 1680px) {
  .platform main { padding: 20px 26px; }
  .platform .page-columns { grid-template-columns: minmax(0,1fr) 350px; }
  .platform .cart-layout { grid-template-columns: minmax(0,1fr) 370px; }
}
@media (min-width: 861px) {
  .platform.sidebar-collapsed .sidebar { width: 80px; padding-left: 10px; padding-right: 10px; }
  .platform.sidebar-collapsed .workspace { margin-left: 80px; }
  .platform.sidebar-collapsed :is(.restaurant-copy,.restaurant-button>.icon,.workspace-link>span,.workspace-link>.nav-badge,.sidebar-bottom .nav-text,.demo-status) { display: none; }
  .platform.sidebar-collapsed .brand { padding: 0 0 20px; justify-content: center; }
  .platform.sidebar-collapsed .brand-logo { display: none; }
  .platform.sidebar-collapsed .brand-symbol { display: block; }
  .platform.sidebar-collapsed .restaurant-button { justify-content: center; padding: 10px 0; }
  .platform.sidebar-collapsed .workspace-link { justify-content: center; padding: 12px; min-height: 48px; border-left-width: 3px; }
  .platform.sidebar-collapsed .sidebar-bottom .nav-item { justify-content: center; padding: 10px; }
  .platform.sidebar-collapsed #sidebar-toggle { align-self: center; }
}
@media (max-width: 1200px) {
  .platform .page-columns { grid-template-columns: minmax(0,1fr); }
  .platform .page-columns>aside { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .platform .page-columns>aside>.panel + .panel { margin-top: 0; }
  .platform .three-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .cart-layout { grid-template-columns: minmax(0,1fr) 295px; }
  .platform .cart-layout .catalog-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,190px),1fr)); }
  .platform .screen-head { flex-wrap: wrap; }
  .platform .screen-actions { justify-content: flex-start; }
  .platform .kds-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .topbar-actions { gap: 8px; }
}
@media (max-width: 1000px) {
  .platform .cart-layout { grid-template-columns: minmax(0,1fr); }
  .platform .cart-panel { position: static; }
  .platform .summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .header-search input { width: 135px; }
  .platform .header-search kbd { display: none; }
}
@media (max-width: 860px) {
  .platform .workspace { margin-left: 0; }
  .platform .sidebar { width: min(280px,calc(100vw - 40px)); max-width: 100%; }
  .platform main { padding: 16px; }
  .platform .topbar { padding: 0 16px; }
  .platform .workspace-link { min-height: 60px; }
  .platform .workspace-link strong { font-size: 14px; }
  .platform .workspace-link small { font-size: 12px; }
  .platform .sidebar-bottom .nav-item { font-size: 12px; min-height: 40px; }
  .platform .kds-grid { overflow: visible; }
  .platform .topbar :is(.icon-button,.avatar) { width: 40px; height: 40px; flex: 0 0 40px; }
  .platform .topbar .theme-toggle { width: auto; flex-basis: auto; }
  .platform #sidebar-toggle { display: none; }
  .platform .header-search { min-height: 40px; }
  .platform .page-footer { margin-right: 16px !important; margin-left: 16px !important; }
}
@media (max-width: 860px) {
  .platform .button,
.platform .dashboard .panel-head .button,
.platform .data-table .row-actions .button,
.platform .table-pagination .button,
.platform .table-edit-extras .button,
.platform .kds-ticket>footer .button { min-height: 40px; font-size: 12px; }
  .platform :is(.icon-button,.quantity button) { min-width: 40px; min-height: 40px; }
  .platform .field input,
.platform .field select,
.platform .field textarea,
.platform .edit-table input,
.platform .edit-table select,
.platform .steps-inputs input,
.platform .step-row>select,
.platform .inline-form input,
.platform .inline-form select,
.platform .inline-select,
.platform .toolbar input,
.platform .toolbar select,
.platform .line-controls input,
.platform .line-controls select,
.platform .custom-widget-row select,
.platform .header-search input,
.platform .period-control select,
.platform .search-input { font-size: 16px; min-height: 40px; }
  .platform .header-search input { min-height: 24px; }
  .platform .workspace-tabs a { min-height: 44px; }
  .platform :is(.view-switch a,.dashboard-presets a,.column-picker summary,.dish-filters button) { min-height: 40px; display: inline-flex; align-items: center; }
  .platform .column-picker label { min-height: 40px; font-size: 13px; }
  .platform .column-filters>summary { min-height: 40px; }
  .platform .column-picker input { min-height: 16px; }
  .platform .step-row>.steps-inputs { min-width: 0; flex-basis: calc(100% - 40px) !important; }
  .platform .step-row>select { flex: 1 1 170px; margin-left: 37px; }
  .platform .table-pick { min-height: 44px; }
  .platform .dashboard .widget { grid-column: 1/-1; }
  .platform .two-columns,.platform .three-columns { grid-template-columns: minmax(0,1fr); }
  .platform .quick-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .table-pagination { flex-wrap: wrap; gap: 8px; }
  .platform .table-pagination>div { gap: 8px; }
}
@media (max-width: 600px) {
  .platform main { padding: 14px 12px 16px; }
  .platform .topbar { height: auto; min-height: 60px; padding: 9px 12px; display: grid; grid-template-columns: 40px minmax(0,1fr); align-items: start; gap: 8px; }
  .platform .topbar-left { align-self: start; }
  .platform .topbar-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
  .platform .topbar-actions .header-search { order: 1; flex: 1 0 100%; width: 100%; min-width: 0; margin-top: 1px; }
  .platform .header-search input { width: 100%; }
  .platform .header-search>.icon { flex: 0 0 16px; }
  .platform .topbar .breadcrumb { display: none; }
  .platform .topbar .theme-toggle { width: 40px; padding: 8px; flex-basis: 40px; }
  .platform .theme-label { display: none; }
  .platform .screen-head h1 { font-size: 23px; }
  .platform .screen-head p { font-size: 13px; }
  .platform .screen-actions { width: 100%; }
  .platform .screen-actions .button { flex: 1 1 auto; white-space: normal; }
  .platform .screen-actions .dashboard-presets { width: 100%; }
  .platform .dashboard-presets { flex-wrap: wrap; }
  .platform .workspace-tabs { padding: 0 2px; }
  .platform .workspace-tabs a,.platform .screen-subnav a { padding: 12px; font-size: 14px; min-height: 44px; }
  .platform .summary-grid,.platform .summary-grid.three { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .platform .summary-grid .summary { padding: 10px; }
  .platform .summary>span { font-size: 12px; align-items: flex-start; }
  .platform .summary>small { font-size: 11px; }
  .platform .summary>strong,.platform.compact .summary>strong { font-size: 23px; }
  .platform :is(.form-grid,.form-row,.page-columns>aside,.report-grid,.sitemap,.kds-grid,.kds-grid.kds-pass) { grid-template-columns: minmax(0,1fr); }
  .platform .catalog-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,220px),1fr)); }
  .platform .dish-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,155px),1fr)); }
  .platform .panel-head { flex-wrap: wrap; }
  .platform .panel-head h2 { font-size: 15px; }
  .platform .panel-head>.button { margin-left: auto; }
  .platform .toolbar { padding: 10px 12px; align-items: stretch; }
  .platform .toolbar .filters { width: 100%; min-width: 0; }
  .platform .toolbar .search-wrap { flex: 1 1 100%; min-width: 0; }
  .platform .toolbar input[type="search"] { width: 100%; }
  .platform .toolbar select { max-width: 100%; }
  .platform .table-options { min-width: 0; }
  .platform .column-picker>div { right: 0; }
  .platform .data-table { min-width: 580px; }
  .platform .edit-table { min-width: 480px; }
  .platform .data-table td,.platform.compact .data-table td { font-size: 13px; padding: 9px 10px; }
  .platform .receipt-paper { padding: 20px 14px; }
  .platform .receipt-paper .data-table { min-width: 0; }
  .platform .receipt-paper .data-table :is(td,th):first-child { min-width: 0; }
  .platform .receipt-paper .data-table :is(td,th) { font-size: 12px; padding: 8px 4px; }
  .platform .horizontal-bar { grid-template-columns: minmax(90px,1fr) minmax(45px,1fr) 60px; gap: 9px; font-size: 12px; }
  .platform .room-legend-full { font-size: 11px; gap: 12px; }
  .platform .room-table { padding: 5px 3px; }
  .platform .room-table strong { font-size: 12px; line-height: 1.15; }
  .platform .room-table small { font-size: 10px; line-height: 1.2; }
  .platform .meta-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .meta-list>div { flex-wrap: wrap; gap: 4px 12px; }
  .platform .meta-list dd { margin-left: auto; max-width: 100%; }
  .platform .form-actions { padding: 12px; flex-wrap: wrap; }
  .platform .form-actions .button { flex: 1; white-space: normal; }
  .platform .pipeline { flex-wrap: wrap; }
  .platform .pipeline>div { flex: 1 1 95px; font-size: 12px; }
  .platform .recipe-hero { align-items: flex-start; gap: 12px; }
  .platform .recipe-cover { aspect-ratio: 16/10; }
  .platform figure.recipe-cover>img { aspect-ratio: 16/10; max-height: 240px; }
  .platform .page-footer { margin-left: 12px !important; margin-right: 12px !important; display: flex; gap: 7px; font-size: 11px; }
  .platform dialog,.platform dialog.wide { width: calc(100vw - 24px); max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
  .platform .dialog-header,.platform .dialog-body { padding: 16px; }
  .platform .dialog-header h2 { font-size: 21px; }
  .platform .dialog-footer { padding: 12px 16px; }
}
@media (max-width: 360px) {
  .platform .quick-links,.platform .meta-grid { grid-template-columns: minmax(0,1fr); }
  .platform .quick-link small { display: block; font-size: 11px; }
  .platform .quick-link strong { font-size: 13px; }
  .platform .summary>strong,.platform.compact .summary>strong { font-size: 21px; }
  .platform .table-pick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .platform .kds-ticket>footer { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .platform :is(button,dialog,.toast,.sidebar) { transition: none; animation: none; }
}
@media print {
  html,html[data-theme="dark"] { color-scheme: light; --ui-bg: #fff; --ui-surface: #fff; --ui-surface-alt: #f6f3ec; --ui-text: #103c43; --ui-muted: #56696b; --ui-border: #e3ded2; --ui-link: #00777f; --ui-primary: #00777f; --ui-on-primary: #fff; --ui-primary-soft: #e2f1f1; }
  body.platform { background: #fff; color: #103c43; }
  .platform .workspace { min-height: 0; display: block; margin-left: 0; }
  .platform main { padding: 0; }
  .platform .receipt-paper { max-width: none; padding: 0; border: 0; box-shadow: none; }
  .platform .data-scroll { overflow: visible; }
  .platform .data-table { min-width: 0; }
  .platform .panel { box-shadow: none; }
  .platform .print-brand { display: block; margin: 28px 0 0; }
  .platform .print-brand img { display: block; width: 140px; height: auto; }
}

.platform .storage-warning{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 18px;background:var(--ui-warning-bg);color:var(--ui-warning);border-bottom:1px solid var(--ui-border);font-size:12px}.platform .storage-warning>.icon{flex:none}.platform .storage-warning>span{flex:1;min-width:180px}

.platform .topbar .has-pending-notices{position:relative}
.platform .notification-count{position:absolute;right:-3px;top:-2px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid var(--ui-surface);border-radius:10px;background:var(--ui-danger);color:var(--ui-bg);font-size:10px;font-weight:700;line-height:1;pointer-events:none}
/* Los textos de ayuda no estiran los campos vecinos de la misma fila. */
.platform .form-grid>.field{align-self:start;align-content:start}
/* Los selectores de rol conservan el tamaño de casilla también dentro de un fieldset. */
.platform .field input[type="checkbox"],.platform .field input[type="radio"]{width:17px;min-width:17px;max-width:17px;height:17px;min-height:17px;padding:0;flex:0 0 17px;align-self:center}
.platform [data-form="person"] fieldset.field{display:flex;flex-wrap:wrap;gap:6px 18px;align-content:start}
.platform [data-form="person"] fieldset.field>.field-checkbox{flex:1 1 220px;max-width:330px;min-height:38px;justify-content:flex-start}
.platform .form-status.form-readonly{background:var(--ui-primary-soft);color:var(--ui-link);border-color:var(--ui-border)}

/* Toma de comanda: los datos del servicio en una franja para que la carta quede a la vista. */
.platform .compose-fields-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,140px),1fr)); gap: 8px 10px; }
.platform .compose-fields-grid>.customer-service-fields { grid-column: span 2; gap: 4px; align-content: start; }
.platform .compose-fields-grid>.customer-service-fields>.form-grid { grid-template-columns: minmax(0,1fr); }
.platform .compose-fields-grid>.customer-service-fields>.source-caption { margin: 0; }
@media (min-width: 1280px) { .platform .compose-fields-grid { grid-template-columns: repeat(6,minmax(0,1fr)); } }
@media (max-width: 600px) {
  .platform .compose-fields-grid>.customer-service-fields { grid-column: 1 / -1; }
  .platform .dish-filters { flex-wrap: wrap; overflow-x: visible; }
}
.platform .cart-layout .catalog-card .dish-photo { aspect-ratio: 16/7; }

/* Listados con miniatura: el nombre no se parte letra a letra. */
.platform .data-table td .entity-thumb { min-width: 210px; }

/* Cocina a pantalla completa: sin menú lateral, pestañas del área ni pie mientras se trabaja. */
.platform.kds-focus .sidebar,.platform.kds-focus .workspace-tabs,.platform.kds-focus .page-footer,.platform.kds-focus .screen-head p,.platform.kds-focus .breadcrumbs { display: none; }
.platform.kds-focus .workspace { margin-left: 0; }
.platform.kds-focus main { padding-top: 12px; }
