/* Shared catalogue and ticket presentation: Carta, POS and Salones. */
:root{--sale-ticket-width:440px;--sale-line-columns:minmax(0,1fr) 100px 86px 24px;--sale-gap:12px;--sale-soft:#f8fafc}
html body .carta-workspace,html body .pos-workspace,html body .salon-workspace,html body .salon-expanded .salon-workspace,html body .salon-pos-modal .menu-modal-body,html body .picker-pos-summary .picker-body{grid-template-columns:minmax(0,1fr) var(--sale-ticket-width)!important;gap:var(--sale-gap)}
html body .carta-workspace{align-items:start}
html body :is(.carta-ticket,.salon-ticket,.pos-sale,.picker-ticket,#mesaPanel){border:1px solid var(--border);border-radius:14px;background:#fff;min-width:0;overflow:hidden;box-shadow:none}
html body :is(.carta-ticket,.salon-ticket,.pos-sale,.picker-ticket){display:flex;flex-direction:column;min-height:0}
html body .carta-ticket{max-height:calc(100dvh - 112px)}
html body :is(.carta-ticket-head,.salon-ticket-head,.picker-ticket-head,.pos-sale-head){padding:12px;border-bottom:1px solid var(--border);background:#fff;flex:none;min-height:50px}
html body :is(.carta-ticket-head,.salon-ticket-head,.picker-ticket-head){display:flex;align-items:center;justify-content:space-between;gap:8px}
html body :is(.carta-ticket-head h2,.salon-ticket-head h3,.picker-ticket-head h3,.pos-sale-head h2){font-size:18px;line-height:1.3;font-weight:800;margin:0;color:var(--text)}
html body :is(.carta-ticket-head,.salon-ticket-head,.picker-ticket-head)>span{font-size:11px;color:var(--muted)}
html body .pos-sale-head .pos-section-number{display:none}
html body .pos-sale-head .pos-section-title{margin:0;min-height:25px}
html body :is(.carta-ticket-columns,.salon-ticket-columns,.picker-ticket-columns,.dti-ticket-columns,.carta-ticket-line,.salon-ticket-line,.picker-ticket-line,.pos-ticket tr){display:grid;grid-template-columns:var(--sale-line-columns);align-items:center;gap:6px;padding:8px 10px}
html body :is(.carta-ticket-columns,.salon-ticket-columns,.picker-ticket-columns,.dti-ticket-columns){flex:none;background:var(--sale-soft);color:var(--muted);font-size:10px;font-weight:600;min-height:30px;line-height:14px}
html body :is(.carta-ticket-columns,.salon-ticket-columns,.picker-ticket-columns,.dti-ticket-columns)>span:nth-child(2){text-align:center}
html body :is(.carta-ticket-columns,.salon-ticket-columns,.picker-ticket-columns,.dti-ticket-columns)>span:nth-child(3){text-align:right}
html body :is(.carta-ticket-items,.salon-ticket-items,.picker-ticket .picker-cart,.pos-ticket-scroll){flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0;max-height:none}
html body :is(.carta-ticket-line,.salon-ticket-line,.picker-ticket-line,.pos-ticket tr){min-height:58px;border-bottom:1px solid var(--border);font-size:12px;background:#fff;margin:0}
html body .pos-ticket{display:block;width:100%;border:0;border-radius:0;margin:0;box-shadow:none}
html body .pos-ticket tbody{display:block;width:100%}
html body .pos-ticket tr td{display:block;width:auto;min-width:0;padding:0;border:0;background:transparent;box-shadow:none}
html body :is(.carta-ticket-product,.salon-ticket-line>div:first-child,.picker-ticket-product,.pos-ticket td:first-child){min-width:0;overflow-wrap:anywhere}
html body :is(.carta-ticket-product,.salon-ticket-line>div:first-child,.picker-ticket-product,.pos-ticket td:first-child)>strong{display:block;font-size:12px;line-height:1.3;font-weight:750;color:var(--text)}
html body :is(.carta-ticket-product,.salon-ticket-line>div:first-child,.picker-ticket-product,.pos-ticket td:first-child)>small{display:block;font-size:10px;color:var(--muted);line-height:1.35;margin:3px 0 0}
html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty){display:grid;grid-template-columns:26px minmax(0,1fr) 26px;gap:3px;align-items:center}
html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>input{width:100%;min-width:0!important;height:34px;min-height:34px;padding:3px 1px;font:inherit;font-size:13px;font-weight:600;text-align:center;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);appearance:textfield;-moz-appearance:textfield}
html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>input::-webkit-inner-spin-button,html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>input::-webkit-outer-spin-button{appearance:none;margin:0}
html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>button{width:26px;height:34px;min-height:34px;padding:0;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--brand);font:inherit;font-size:16px;cursor:pointer}
html body :is(.carta-ticket-remove,.salon-ticket-remove,.picker-ticket-remove,.pos-remove){width:24px;height:34px;min-height:34px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:21px;cursor:pointer}
html body :is(.carta-ticket,.salon-ticket,.picker-ticket,.pos-sale) button:disabled{opacity:.3;cursor:default}
html body :is(.carta-ticket-amount,.salon-ticket-amount,.picker-ticket-amount,.pos-ticket td:nth-child(3)){text-align:right;white-space:nowrap;font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}
html body :is(.carta-ticket-footer,.salon-ticket-footer,.picker-ticket-footer,.pos-sale-footer){padding:12px;display:grid;gap:9px;background:var(--sale-soft);border-top:1px solid var(--border);flex:none}
html body :is(.carta-ticket-quantity,.salon-ticket-units,.picker-ticket-units,.dti-ticket-units,.salon-ticket-tip){display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
html body :is(.carta-ticket-total,.salon-ticket-grand,.picker-ticket-grand,.pos-checkout .pos-grand){display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--border);padding:10px 0 0;font-size:15px;font-weight:800}
html body :is(.carta-ticket-total,.salon-ticket-grand,.picker-ticket-grand,.pos-checkout .pos-grand)>strong{font-size:26px;line-height:1.2;color:var(--brand);white-space:nowrap}
html body :is(.carta-ticket-footer,.salon-ticket-footer,.picker-ticket-footer)>small{font-size:11px;color:var(--muted);line-height:1.4}
html body :is(.carta-ticket-footer,.salon-ticket-footer,.picker-ticket-footer,.pos-checkout) .btn{min-height:42px;padding:9px 10px;border-radius:9px;font-size:13px;font-weight:750;text-align:center;width:100%}
html body .pos-checkout{gap:9px}
html body .pos-summary-grid{grid-template-columns:1fr;gap:5px}
html body .pos-summary-grid .pos-total-row,html body .pos-summary-grid .pos-total-row span{font-size:11px}
html body :is(.carta-ticket-empty,.salon-ticket-empty,.picker-ticket-empty,.pos-empty){padding:28px 16px;font-size:13px;color:var(--muted);text-align:center;line-height:1.5}
html body .pos-empty[hidden]{display:none}
html body #mesaPanel .mesa-ticket{border:0;border-radius:0;flex:1;min-height:0}
html body #mesaPanel .mesa-panel-body{padding:0;overflow:hidden;display:flex;flex-direction:column}
html body #mesaPanel.mesa-panel .mesa-panel-head{background:#fff!important;padding:10px 12px!important;gap:8px!important;grid-template-columns:minmax(0,1fr) minmax(145px,1.1fr)!important}
html body #mesaPanel.mesa-panel .mesa-panel-head h2{font-size:18px!important}
html body #mesaPanel.mesa-panel .mesa-head-state select{font-size:12px!important;height:36px!important;min-height:36px!important;padding:5px 22px 5px 8px!important;border:1px solid var(--border);border-radius:8px!important}
html body #mesaPanel .mesa-fixed-bottom{position:static;min-height:0!important;display:grid!important;flex:none!important;padding:12px!important;background:var(--sale-soft)!important}
html body #mesaPanel .mesa-fixed-bottom .add-consumos-btn{position:static!important;width:100%!important;margin:0!important}
html body #mesaPanel .mesa-msg:empty,html body [data-ticket-message]:empty{display:none}
html body #mesaPanel .mesa-cancel-tools{margin-top:0;gap:3px}
html body #mesaPanel .mesa-cancel-tools .btn{min-height:32px;padding:5px 8px;font-size:12px}
html body .dti-ticket-manage{border:0;padding:2px;background:transparent;color:var(--brand);font:inherit;font-size:11px;cursor:pointer;text-align:center}
/* Identical product cards, sized by available catalogue width. */
html body :is(.public-carta .public-products,.salon-pos-modal .menu-products,.pos-products,.picker-pos-summary .picker-products){display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr))!important;gap:8px!important;align-content:start}
html body :is(.public-carta .menu-card,.salon-pos-modal .menu-card,.pos-product,.picker-pos-summary .picker-product){display:flex;flex-direction:column;min-width:0!important;min-height:0!important;padding:0!important;gap:0;border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:none;overflow:hidden;text-align:left}
html body :is(.public-carta .menu-card-media,.salon-pos-modal .menu-card-media,.pos-product .menu-card-media){height:132px!important;min-height:0;padding:8px!important;background:var(--sale-soft);border-bottom:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center}
html body :is(.public-carta .menu-card-media,.salon-pos-modal .menu-card-media,.pos-product .menu-card-media)>img{width:100%!important;height:100%!important;max-width:100%;max-height:100%;min-height:0;object-fit:contain!important;object-position:center;display:block}
html body .picker-pos-summary .picker-product>img{width:100%;height:132px;padding:8px;object-fit:contain;background:var(--sale-soft);border-bottom:1px solid var(--border)}
html body :is(.public-carta .menu-card-body,.salon-pos-modal .menu-card-body,.pos-product .menu-card-body,.picker-pos-summary .picker-product-copy){padding:8px!important;gap:6px;flex:1;display:flex;flex-direction:column;min-width:0}
html body :is(.menu-card-family,.picker-pos-summary .picker-product-copy>small){display:none!important}
html body :is(.public-carta .menu-card h4,.salon-pos-modal .menu-card h4,.pos-product h4,.picker-pos-summary .picker-product h3){font-size:13px!important;font-weight:750;line-height:1.3!important;min-height:2.6em;margin:0;color:var(--text);overflow-wrap:anywhere}
html body :is(.public-carta .menu-card-price,.salon-pos-modal .menu-card-price,.pos-product .menu-card-price,.picker-pos-summary .picker-product-copy>strong){font-size:16px!important;font-weight:800;color:var(--brand);margin-top:auto}
html body :is(.public-carta .menu-card-detail,.salon-pos-modal .menu-card-detail,.pos-product .menu-card-detail){min-height:30px!important;height:30px!important;padding:4px!important;font-size:11px!important;color:var(--muted);border:0;background:transparent;box-shadow:none;width:100%;font-weight:500}
html body :is(.public-carta .menu-card-actions,.salon-pos-modal .menu-card-actions,.pos-product .menu-card-actions,.picker-pos-summary .picker-add){display:grid;grid-template-columns:48px minmax(0,1fr)!important;gap:6px!important}
html body :is(.public-carta .menu-card-actions,.salon-pos-modal .menu-card-actions,.pos-product .menu-card-actions,.picker-pos-summary .picker-add)>:is(input,button){width:100%;min-width:0;min-height:38px;height:38px;padding:5px;font-size:12px;border-radius:8px;text-align:center}
html body .pos-product{cursor:default;font:inherit}
html body .pos-product:hover{background:#fff}
html body .pos-products:not(.with-images) .menu-card-media{display:none}
html body #posDetailImage img{display:block;max-width:100%;max-height:280px;margin:0 auto;object-fit:contain}
html body #posDetailPrice{display:block;margin-top:12px;font-size:22px;color:var(--brand)}
html body #posDetailDescription{white-space:pre-line}
html body :is(.public-menu-head,.salon-pos-modal .menu-modal-search){background:#fff}
html body :is(.public-family-panel,.salon-pos-modal .menu-families){background:#fff}
html body :is(.public-carta .family-btn,.salon-pos-modal .family-btn,.pos-categories button,.picker-pos-summary .picker-families button){border-radius:9px;min-height:36px;padding:7px 12px;font-size:12px;line-height:20px}
@media(max-width:1150px) and (min-width:901px){:root{--sale-ticket-width:400px}}
@media(max-width:900px){
 :root{--sale-ticket-width:100%;--sale-line-columns:minmax(0,1fr) 92px 80px 22px}
 html body .carta-workspace,html body .pos-workspace,html body .salon-pos-modal .menu-modal-body,html body .picker-pos-summary .picker-body{grid-template-columns:1fr!important}
 html body .carta-workspace{display:block;width:calc(100% - 20px)}
 html body .carta-view-tabs,html body .pos-mobile-tabs{display:flex;gap:6px}
 html body .carta-view-tabs{margin-bottom:8px}
 html body .carta-view-tabs button{flex:1;min-height:40px;border:1px solid var(--border);border-radius:9px;background:#fff;font:inherit;font-size:12px;font-weight:700}
 html body .carta-view-tabs button[aria-pressed=true]{background:var(--brand);color:#fff}
 html body .carta-workspace[data-view=catalog]>.carta-ticket,html body .carta-workspace[data-view=order]>.carta-catalog{display:none}
 html body .carta-workspace[data-view=order]>.carta-ticket{display:flex;position:static;max-height:calc(100dvh - 180px)}
 html body #draftOrder.carta-ticket{display:flex;max-height:none}
 html body.pos-body[data-pos-view=catalog] .pos-sale,html body.pos-body[data-pos-view=sale] .pos-catalog{display:none}
 html body.pos-body[data-pos-view=sale] .pos-sale{display:flex}
 html body .salon-pos-modal[data-view=products] .salon-ticket,html body .salon-pos-modal[data-view=ticket] .salon-menu-catalog{display:none}
 html body .picker-pos-summary[data-view=products] .picker-ticket,html body .picker-pos-summary[data-view=ticket] .picker-catalog{display:none}
 html body :is(.public-carta .public-products,.salon-pos-modal .menu-products,.pos-products,.picker-pos-summary .picker-products){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
 html body :is(.public-carta .menu-card-media,.salon-pos-modal .menu-card-media,.pos-product .menu-card-media){height:96px!important;padding:5px!important}
 html body .picker-pos-summary .picker-product>img{height:96px;padding:5px}
 html body :is(.public-carta .menu-card-body,.salon-pos-modal .menu-card-body,.pos-product .menu-card-body,.picker-pos-summary .picker-product-copy){padding:6px!important}
 html body :is(.public-carta .menu-card h4,.salon-pos-modal .menu-card h4,.pos-product h4,.picker-pos-summary .picker-product h3){font-size:12px!important;min-height:3.9em}
 html body :is(.public-carta .menu-card-price,.salon-pos-modal .menu-card-price,.pos-product .menu-card-price,.picker-pos-summary .picker-product-copy>strong){font-size:13px!important}
 html body :is(.public-carta .menu-card-actions,.salon-pos-modal .menu-card-actions,.pos-product .menu-card-actions,.picker-pos-summary .picker-add){grid-template-columns:1fr!important;gap:4px!important}
 html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty){grid-template-columns:24px minmax(0,1fr) 24px;gap:2px}
 html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>button{width:24px;min-height:40px;height:40px}
 html body :is(.carta-ticket-qty,.salon-ticket-qty,.picker-ticket-qty,.pos-qty)>input{min-height:40px;height:40px;font-size:16px}
 html body :is(.carta-ticket-line,.salon-ticket-line,.picker-ticket-line,.pos-ticket tr){padding:8px;gap:4px}
 html body :is(.carta-ticket-columns,.salon-ticket-columns,.picker-ticket-columns,.dti-ticket-columns){padding:8px;gap:4px}
 html body .pos-main .pos-catalog-controls{grid-template-columns:1fr auto}
 html body .pos-catalog-controls>label:first-child{grid-column:1/-1}
}
@media(max-width:359px){
 :root{--sale-line-columns:minmax(0,1fr) 84px 70px 20px}
 html body :is(.public-carta .public-products,.salon-pos-modal .menu-products,.pos-products,.picker-pos-summary .picker-products){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

html body #mesaPanel .mesa-fixed-bottom{grid-template-columns:minmax(0,1fr)!important;justify-content:stretch!important;align-items:stretch!important}
html body #mesaPanel .mesa-ticket>.salon-ticket-head{display:none}

@media(max-width:900px){html body .pos-catalog-head .pos-section-title,html body .pos-category-label,html body .pos-catalog-tools #catalogStatus,html body .pos-top .pos-pill{display:none}html body .pos-catalog-controls>label:first-child:has(select option:only-child){display:none}html body .pos-catalog-tools{justify-content:flex-end;margin-top:4px}html body .pos-catalog-controls .pos-search{grid-column:1}html body .pos-categories{margin-top:8px}}

html body .salon-pos-modal .menu-families{order:0}

/* Keep totals anchored while saving or adding the table actions. */
html body :is(.salon-ticket-footer,.mesa-fixed-bottom){position:relative}
html body :is(.salon-ticket-footer,.mesa-fixed-bottom) :is([data-ticket-message],#mesaMsg){position:absolute;left:8px;right:8px;bottom:calc(100% + 5px);z-index:4;margin:0;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 3px 12px #17203315;font-size:12px;line-height:1.35;min-height:0}
html body :is(.salon-ticket-footer,.mesa-fixed-bottom) :is([data-ticket-message],#mesaMsg):empty{display:none}
