/* Generated by scripts/build-design-system.cjs. Edit shared/ui, never this copy. */
:root{--dpui-font-body:"DreamPOS Emoji", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--dpui-font-mono:ui-monospace, Consolas, monospace;--dpui-font-xs:11px;--dpui-font-sm:12px;--dpui-font-base:14px;--dpui-font-lg:16px;--dpui-font-xl:20px;--dpui-font-title:24px;--dpui-weight-normal:400;--dpui-weight-medium:500;--dpui-weight-semibold:600;--dpui-weight-bold:700;--dpui-line-body:1.5;--dpui-line-control:1.25;--dpui-space-0:0;--dpui-space-1:4px;--dpui-space-2:8px;--dpui-space-3:12px;--dpui-space-4:16px;--dpui-space-5:20px;--dpui-space-6:24px;--dpui-space-8:32px;--dpui-space-12:48px;--dpui-radius-small:6px;--dpui-radius-control:10px;--dpui-radius-card:12px;--dpui-radius-dialog:16px;--dpui-radius-pill:999px;--dpui-control-height:40px;--dpui-touch-height:50px;--dpui-icon-size:40px;--dpui-border-width:1px;--dpui-window-sm:400px;--dpui-window-md:640px;--dpui-window-lg:960px;--dpui-window-xl:1200px;--dpui-page-width:1280px;--dpui-content-width:760px;--dpui-motion-fast:120ms;--dpui-motion-normal:180ms;--dpui-z-dropdown:1000;--dpui-z-dialog:2147483000;--dpui-font-kitchen-display:18px;--dpui-staff-ui-scale:1.19;--dpui-staff-nav-scale:1.08;--dpui-z-notice:1000000;--dpui-keypad-width:252px;--dpui-z-security:2147483100;--dpui-media-control-height:130px;--dpui-focus-width:2px;--dpui-focus-offset:2px}
html[data-dp-theme="light"],html[data-dp-surface].theme-light,html[data-dp-surface][data-theme="light"],html[data-dp-surface]:has(body.theme-light){color-scheme:light;--dpui-bg:#f5f7fa;--dpui-surface:#ffffff;--dpui-surface-muted:#edf1f5;--dpui-input:#ffffff;--dpui-text:#17243b;--dpui-text-secondary:#44546a;--dpui-text-muted:#52647b;--dpui-border:#c7d0dc;--dpui-accent:#a35026;--dpui-link:#93431d;--dpui-on-accent:#ffffff;--dpui-selection:#faeade;--dpui-success:#067647;--dpui-success-bg:#ecfdf3;--dpui-danger:#b42318;--dpui-danger-bg:#fef3f2;--dpui-warning:#854a0e;--dpui-warning-bg:#fffaeb;--dpui-info:#175cd3;--dpui-info-bg:#eff8ff;--dpui-backdrop:rgba(15, 23, 42, .48);--dpui-shadow:0 12px 40px rgba(15, 23, 42, .16);--dpui-focus:#175cd3}
html[data-dp-theme="dark"],html[data-dp-surface].theme-dark,html[data-dp-surface][data-theme="dark"]{color-scheme:dark;--dpui-bg:#191d27;--dpui-surface:#242a36;--dpui-surface-muted:#303848;--dpui-input:#202633;--dpui-text:#f3f5f9;--dpui-text-secondary:#ccd4df;--dpui-text-muted:#aab8ca;--dpui-border:#56647a;--dpui-accent:#e5a17c;--dpui-link:#f2b38f;--dpui-on-accent:#17243b;--dpui-selection:#48352d;--dpui-success:#6ce9a6;--dpui-success-bg:#173c2c;--dpui-danger:#fda29b;--dpui-danger-bg:#492521;--dpui-warning:#fec84b;--dpui-warning-bg:#453719;--dpui-info:#84caff;--dpui-info-bg:#193751;--dpui-backdrop:rgba(0, 0, 0, .65);--dpui-shadow:0 16px 48px rgba(0, 0, 0, .4);--dpui-focus:#84caff}
/* Canonical primitives. Layout is composed from these classes, never copied. */
/* Receipt history: ordinary receipts and promotional vouchers share one narrow layout. */
#receiptsTraktatiePanel{container:dpui-receipts / inline-size;min-width:0}
.dpui-receipt-list{container:dpui-receipts / inline-size;box-sizing:border-box;min-width:0;width:100%;max-width:100%}
@container dpui-receipts (max-width:960px){
 #receiptsSection :is(#receiptsHistoryContainer,#receiptsTraktatiePanel) .dpui-receipt-list .dpui-receipt-card{box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--dpui-space-3)!important;width:100%;min-width:0;margin:0 0 var(--dpui-space-3);padding:var(--dpui-space-3)!important;border:var(--dpui-border-width) solid var(--dpui-border)!important;border-radius:var(--dpui-radius-card)!important;background:var(--dpui-surface)!important;color:var(--dpui-text)}
 #receiptsSection #receiptsHistoryContainer .dpui-receipt-list .dpui-receipt-card--receipt{grid-template-columns:var(--dpui-icon-size) minmax(0,1fr);align-items:start!important}
 .dpui-receipt-list .dpui-receipt-icon{width:var(--dpui-icon-size)!important;height:var(--dpui-icon-size)!important}
 .dpui-receipt-list .dpui-receipt-summary{grid-column:1/-1;min-width:0;text-align:left!important}
 .dpui-receipt-list .dpui-receipt-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dpui-space-2)!important;min-width:0;width:100%}
 #receiptsTraktatiePanel .dpui-receipt-list{border:0;background:transparent;overflow:visible}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-list{display:block;min-width:0;width:100%}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-list thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-list tbody{display:block}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td{display:block;min-width:0;border:0;padding:0;text-align:left}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td::before{content:attr(data-label);display:block;margin-bottom:var(--dpui-space-1);font-size:var(--dpui-font-xs);line-height:var(--dpui-line-body);color:var(--dpui-text-secondary);text-transform:none;letter-spacing:normal}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td:first-child{grid-column:1}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td:nth-child(2){grid-column:2;text-align:right}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td:nth-child(2)::before{text-align:right}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td[data-vh-actions]{grid-column:1/-1;border-top:var(--dpui-border-width) solid var(--dpui-border);padding-top:var(--dpui-space-3)}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-row td[data-vh-actions]::before{display:none}
 #receiptsTraktatiePanel .dpui-receipt-list .dpui-receipt-actions .tv-btn{grid-column:auto;gap:var(--dpui-space-2)}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-btn--icon span{display:inline}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-ref{max-width:100%;font-size:var(--dpui-font-xs)}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-delivery span{white-space:normal;font-size:var(--dpui-font-xs)}
 #receiptsTraktatiePanel .dpui-receipt-list .tv-empty-row,#receiptsTraktatiePanel .dpui-receipt-list .tv-empty-row td{display:block}
}
@container dpui-receipts (max-width:760px){
 #receiptsTraktatiePanel .tv-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:var(--dpui-space-2);padding:var(--dpui-space-3)}
 #receiptsTraktatiePanel .tv-search{grid-column:1/-1}
 #receiptsTraktatiePanel .tv-search input,#receiptsTraktatiePanel .tv-filter select{font-size:var(--dpui-font-lg);min-height:var(--dpui-touch-height)}
}
@media(max-width:768px){
 .receipts-voucher-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dpui-space-2)}
 .receipts-voucher-tabs button{min-width:0;min-height:var(--dpui-touch-height);padding:var(--dpui-space-2);font-size:var(--dpui-font-sm);white-space:normal;overflow-wrap:anywhere}
 #receiptsTraktatiePanel{min-width:0}
 #receiptsTraktatiePanel .tv-pagination{flex-wrap:wrap;font-size:var(--dpui-font-sm)}
 #receiptsTraktatiePanel .tv-pagination>div{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #receiptsTraktatiePanel .tv-pagination .tv-btn,#receiptsTraktatiePanel .tv-btn--refresh{min-height:var(--dpui-touch-height)}
}
@layer dreampos-controls{
 html[data-dp-surface] .dpui-input{min-height:var(--dpui-control-height)!important;padding:var(--dpui-space-2) var(--dpui-space-3)!important;border:var(--dpui-border-width) solid var(--dpui-border)!important;border-radius:var(--dpui-radius-control)!important;background:var(--dpui-input)!important;color:var(--dpui-text)!important;font:var(--dpui-weight-normal) var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body)!important;letter-spacing:normal!important;text-transform:none!important}
 html[data-dp-surface] textarea.dpui-input{min-height:calc(var(--dpui-control-height)*2)!important}
 html[data-dp-surface] :is(.dpui-button,.dpui-input,.dpw-btn):focus-visible{outline:var(--dpui-focus-width) solid var(--dpui-focus)!important;outline-offset:var(--dpui-focus-offset)!important}
 @media(max-width:600px){html[data-dp-surface] .dpui-input{font-size:var(--dpui-font-lg)!important}}
 @media(pointer:coarse){html[data-dp-surface] .dpui-input:not(textarea){min-height:var(--dpui-touch-height)!important}}
 html[data-dp-surface] [class*="dpui-"][hidden],html[data-dp-surface] [class*="dpui-"] [hidden]{display:none!important}
@container dpui-receipts (max-width:960px){
 #receiptsSection :is(#receiptsHistoryContainer,#receiptsTraktatiePanel) .dpui-receipt-list .dpui-receipt-actions>.dpui-button{letter-spacing:normal;text-transform:none;box-sizing:border-box;width:100%!important;min-width:0!important;min-height:var(--dpui-touch-height)!important;margin:0!important;padding:var(--dpui-space-2)!important;white-space:normal!important;overflow-wrap:anywhere;font-size:var(--dpui-font-sm)!important;line-height:var(--dpui-line-control);text-align:center;justify-content:center}
}
}
html[data-dp-surface] body{background:var(--dpui-bg);color:var(--dpui-text);font-family:var(--dpui-font-body)}
.dpui-catalog{margin:0}
.dpui-card>h2{margin:0;font-size:var(--dpui-font-xl);font-weight:var(--dpui-weight-bold)}
.dpui-stack{display:flex;flex-direction:column;gap:var(--dpui-space-4);min-width:0}
.dpui-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dpui-space-3);min-width:0}
.dpui-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--dpui-space-4)}
.dpui-page{box-sizing:border-box;width:100%;max-width:var(--dpui-page-width);margin-inline:auto;padding:var(--dpui-space-6)}
.dpui-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--dpui-space-4);flex-wrap:wrap;margin-bottom:var(--dpui-space-5)}
.dpui-page-title{margin:0;font-size:var(--dpui-font-title);font-weight:var(--dpui-weight-bold);line-height:var(--dpui-line-control);color:var(--dpui-text)}
.dpui-card,.dpui-empty{box-sizing:border-box;min-width:0;padding:var(--dpui-space-4);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-card);background:var(--dpui-surface);color:var(--dpui-text)}
.dpui-button{letter-spacing:normal;text-transform:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--dpui-space-2);max-width:100%;text-decoration:none;cursor:pointer;overflow-wrap:anywhere;transition:filter var(--dpui-motion-fast)}
.dpui-button[data-size=icon]{width:var(--dpui-icon-size);min-width:var(--dpui-icon-size)}
.dpui-button:not(:disabled):hover{filter:brightness(.94)}
.dpui-button:disabled,.dpui-button[aria-disabled=true]{opacity:.65;cursor:default}
.dpui-button[aria-busy=true]{cursor:progress}
.dpui-field{letter-spacing:normal;text-transform:none;display:flex;flex-direction:column;gap:var(--dpui-space-2);min-width:0;color:var(--dpui-text);font:var(--dpui-weight-medium) var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body)}
html[data-dp-surface] .dpui-input{box-sizing:border-box;width:100%;min-width:0;color-scheme:inherit}
textarea.dpui-input{min-height:calc(var(--dpui-control-height) * 2);resize:vertical}
.dpui-input::placeholder{color:var(--dpui-text-muted);opacity:1}
.dpui-input[aria-invalid=true]{border-color:var(--dpui-danger)}
.dpui-hint{margin:0;font-size:var(--dpui-font-sm);line-height:var(--dpui-line-body);color:var(--dpui-text-secondary)}
.dpui-status{padding:var(--dpui-space-3);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-small);color:var(--dpui-info);background:var(--dpui-info-bg);font-size:var(--dpui-font-base);line-height:var(--dpui-line-body)}
.dpui-status[data-tone=error]{color:var(--dpui-danger);background:var(--dpui-danger-bg)}
.dpui-status[data-tone=success]{color:var(--dpui-success);background:var(--dpui-success-bg)}
.dpui-status[data-tone=warning]{color:var(--dpui-warning);background:var(--dpui-warning-bg)}
.dpui-empty{text-align:center;padding:var(--dpui-space-8);color:var(--dpui-text-secondary)}
.dpui-empty h3{margin:0 0 var(--dpui-space-2);color:var(--dpui-text);font-size:var(--dpui-font-lg)}
.dpui-empty p{margin:0 0 var(--dpui-space-4);line-height:var(--dpui-line-body)}
.dpui-dialog{width:var(--dpui-window-md);color:var(--dpui-text)}
.dpui-dialog .dpw-body{padding:var(--dpui-space-4)}
.dpui-dialog-actions{display:flex;justify-content:flex-end;gap:var(--dpui-space-2);flex-wrap:wrap;margin-top:var(--dpui-space-4)}
:is(.dpui-button,.dpui-input):focus-visible{outline:2px solid var(--dpui-focus);outline-offset:2px}
@media(pointer:coarse){.dpui-button,.dpui-input{min-height:var(--dpui-touch-height)}.dpui-button[data-size=icon]{width:var(--dpui-touch-height);min-width:var(--dpui-touch-height)}}
@media(max-width:600px){.dpui-page{padding:var(--dpui-space-3)}.dpui-input{font-size:var(--dpui-font-lg)}}
@media(prefers-reduced-motion:reduce){.dpui-button{transition:none}}
@media print{.dpui-button,.dpui-dialog-actions{display:none}.dpui-card{box-shadow:none}}
/* Every interactive form uses the same rhythm, typography and control sizes. */
/* Modern controls own their paint and typography. Legacy class adapters never
   repaint a DreamUI button; explicit semantic variants share this one rule set. */
@layer dreampos-controls{
 html[data-dp-surface] .dpui-button{min-height:var(--dpui-control-height)!important;padding:var(--dpui-space-2) var(--dpui-space-4)!important;border:var(--dpui-border-width) solid var(--dpui-border)!important;border-radius:var(--dpui-radius-control)!important;background:var(--dpui-surface-muted)!important;color:var(--dpui-text)!important;font:var(--dpui-weight-semibold) var(--dpui-font-base)/var(--dpui-line-control) var(--dpui-font-body)!important;letter-spacing:normal!important;text-transform:none!important}
 html[data-dp-surface] .dpui-button[data-variant=primary]:not([aria-pressed=true]){background:var(--dpui-brand,var(--dpui-accent))!important;color:var(--dpui-on-brand,var(--dpui-on-accent))!important;border-color:var(--dpui-brand,var(--dpui-accent))!important}
 html[data-dp-surface] .dpui-button[data-variant=danger]{background:var(--dpui-danger-bg)!important;color:var(--dpui-danger)!important;border-color:var(--dpui-danger)!important}
 html[data-dp-surface] .dpui-button[data-variant=success]{background:var(--dpui-success-bg)!important;color:var(--dpui-success)!important;border-color:var(--dpui-success)!important}
 html[data-dp-surface] .dpui-button[data-variant=ghost]{background:transparent!important;border-color:transparent!important;color:var(--dpui-link)!important}
 html[data-dp-surface] .dpui-button[data-size=icon]{padding:0!important}
 html[data-dp-surface] .dpui-button[data-size=compact]{padding:var(--dpui-space-1)!important;min-width:0}
 html[data-dp-surface] .dpui-button[data-size=media]{min-height:var(--dpui-media-control-height)!important}
 @media(pointer:coarse){html[data-dp-surface] .dpui-button{min-height:var(--dpui-touch-height)!important}}
}
html[data-dp-surface] .dpui-panel{padding:0;font:var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body);color:var(--dpui-text);overflow:hidden}
.dpui-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dpui-space-3);padding:var(--dpui-space-3) var(--dpui-space-4);border-bottom:var(--dpui-border-width) solid var(--dpui-border)}
.dpui-panel-title{margin:0;font-size:var(--dpui-font-lg);font-weight:var(--dpui-weight-bold)}
.dpui-panel-body{padding:var(--dpui-space-3) var(--dpui-space-4)}
.dpw-back.dpw-modeless{pointer-events:none;background:transparent!important;backdrop-filter:none}
.dpw-back.dpw-modeless>.dpw{pointer-events:auto}
.dpw-back.dpw-modeless-end{align-items:flex-end;justify-content:flex-end;padding:var(--dpui-space-4)}
html[data-dp-surface] .dpui-field>:is(span,label){letter-spacing:normal;text-transform:none;font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-medium)}
html[data-dp-surface] .dpui-action-dialog .dpui-dialog-content>p{margin:0}
html[data-dp-surface] .dpui-action-dialog .dpui-action-form{margin:0;gap:var(--dpui-space-4);font:var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body);color:var(--dpui-text)}
html[data-dp-surface] .dpui-action-dialog :is(.dpui-dialog-message,.dpui-dialog-details){margin:0;white-space:pre-line}
html[data-dp-surface] .dpui-action-dialog .dpui-dialog-details{font-weight:var(--dpui-weight-semibold)}
html[data-dp-surface] .dpui-action-dialog .dpui-dialog-content>label:not(:has(input[type=checkbox],input[type=radio])){display:grid;gap:var(--dpui-space-2);font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-medium);color:var(--dpui-text)}
html[data-dp-surface] .dpui-action-dialog .dpui-status[hidden]{display:none}
@media(pointer:coarse){html[data-dp-surface] .dpui-action-dialog :is(.dpui-button,.dpui-input){min-height:var(--dpui-touch-height)}}
@media(max-width:600px){html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-input{font-size:var(--dpui-font-lg)}}

.dpui-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dpui-space-2);width:100%;max-width:var(--dpui-keypad-width);margin-inline:auto}
@layer dreampos-controls{html[data-dp-surface] .dpui-keypad>.dpui-button{min-height:calc(var(--dpui-touch-height) + var(--dpui-space-2))!important;padding:var(--dpui-space-2)!important;font-size:var(--dpui-font-title)!important;font-weight:var(--dpui-weight-bold)!important}}
.dpui-manager-pin{display:grid;gap:var(--dpui-space-4);text-align:center}
.dpui-pin-dots{display:flex;justify-content:center;gap:var(--dpui-space-2)}
.dpui-pin-dots>.pin-dot{width:var(--dpui-font-lg);height:var(--dpui-font-lg);border-radius:var(--dpui-radius-pill);border:calc(var(--dpui-border-width)*2) solid var(--dpui-border);background:transparent}
.dpui-pin-dots>.pin-dot.filled{background:var(--dpui-brand,var(--dpui-accent));border-color:var(--dpui-brand,var(--dpui-accent))}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(calc(-1*var(--dpui-space-2)))}40%,80%{transform:translateX(var(--dpui-space-2))}}

.dpui-reservation-form{display:flex;flex-direction:column;gap:var(--dpui-space-3);min-width:0;font:var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body);color:var(--dpui-text)}
.dpui-reservation-contact{min-width:0}
.dpui-reservation-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:var(--dpui-space-2);min-width:0}
.dpui-reservation-field{display:flex;flex-direction:column;gap:var(--dpui-space-1);min-width:0}
.dpui-reservation-form label{font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-medium);line-height:var(--dpui-line-body);color:var(--dpui-text)}
.dpui-reservation-form .dpui-dialog-actions{margin:0}
.dpui-reservation-form .dpui-field-output{padding:var(--dpui-space-2) var(--dpui-space-3);border-radius:var(--dpui-radius-control);background:var(--dpui-surface-muted);color:var(--dpui-text);min-height:var(--dpui-control-height);box-sizing:border-box}
.dpui-reservation-time{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--dpui-space-1);min-width:0}
.dpui-reservation-time select{text-align:center}
.dpui-reservation-form :is(.dprp-hint,.dprw-tel,.dprw-opt){font-size:var(--dpui-font-sm);color:var(--dpui-text-secondary)}
.dpui-reservation-form :is(.dprp-warn,.dprw-warn,.dprw-hint){display:none;margin:0;padding:var(--dpui-space-2) var(--dpui-space-3);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-control);font-size:var(--dpui-font-base);background:var(--dpui-info-bg);color:var(--dpui-info)}
.dpui-reservation-form :is(.dprp-warn,.dprw-warn){background:var(--dpui-danger-bg);color:var(--dpui-danger)}
.dpui-reservation-form .dprp-hint.closed{color:var(--dpui-warning)}
.dpui-reservation-form .dprw-when{grid-template-columns:1.5fr 1.2fr .8fr}
.dpui-reservation-form .dprw-date-display{display:grid;gap:var(--dpui-space-1)}
.dpui-reservation-form #dprwWeekday{font-size:var(--dpui-font-sm);color:var(--dpui-text-secondary)}
.dpui-reservation-form .dprw-mobile-pick{position:relative;min-width:0}
.dpui-reservation-form .dprw-pickbtn{width:100%}
.dpui-reservation-form .dprw-drop{display:none;position:absolute;z-index:var(--dpui-z-dropdown);top:calc(100% + var(--dpui-space-1));left:0;min-width:100%;padding:var(--dpui-space-2);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-control);background:var(--dpui-surface);box-shadow:var(--dpui-shadow)}
.dpui-reservation-form .dprw-drop.is-open{display:block}
.dpui-reservation-form .dprw-list{max-height:calc(var(--dpui-touch-height) * 4);overflow-y:auto;overscroll-behavior:contain}
.dpui-reservation-form .dprw-list button{display:block;width:100%;text-align:left}
.dpui-reservation-form :is(.dprw-list button[aria-selected=true],.dprw-calgrid button.is-selected){background:var(--dpui-selection);color:var(--dpui-link);border-color:var(--dpui-link)}
.dpui-reservation-form .dprw-cal{width:calc(var(--dpui-control-height) * 7 + var(--dpui-space-4));min-width:0;max-width:calc(100vw - var(--dpui-space-6));box-sizing:border-box}
.dpui-reservation-form .dprw-calhead{display:flex;align-items:center;justify-content:space-between;gap:var(--dpui-space-2);margin-bottom:var(--dpui-space-2);font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-semibold)}
.dpui-reservation-form .dprw-calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--dpui-space-1)}
.dpui-reservation-form .dprw-calgrid span{text-align:center;font-size:var(--dpui-font-sm);color:var(--dpui-text-secondary)}
.dpui-reservation-form .dprw-privacy{display:flex;align-items:flex-start;gap:var(--dpui-space-2);line-height:var(--dpui-line-body)}
.dpui-reservation-form .dprw-privacy input{width:auto;flex:0 0 auto;accent-color:var(--dpui-brand,var(--dpui-accent))}
.dpui-reservation-form .dprw-tel{text-align:center}
.dpui-reservation-form .dprw-tel a{color:var(--dpui-link)}
.dpui-reservation-form .dprw-ok{text-align:center}
.dpui-reservation-form .dprw-ok-ico{font-size:var(--dpui-font-title)}
.dpui-reservation-form .dprw-ok-t{font-size:var(--dpui-font-lg);font-weight:var(--dpui-weight-bold)}
.dpui-reservation-form .dprw-ok-sum{margin-top:var(--dpui-space-3);padding:var(--dpui-space-3);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-card);background:var(--dpui-surface-muted)}
html.dp-res-embed:not(.dp-res-mounted) body>*:not(.dpui-reservation-frame){display:none!important}
html.dp-res-embed:not(.dp-res-mounted) body>.dpui-reservation-frame{display:block!important}
.dpui-reservation-frame.dpui-panel{max-width:var(--dpui-window-sm);margin:0 auto}
.dpui-reservation-frame.dpw-back{box-sizing:border-box}
.dpui-reservation-frame.dpui-panel :is(.dprw-cancel,.dprw-x){display:none}
@media(max-width:600px){.dpui-reservation-form .dprw-cal{position:fixed;top:var(--dpui-space-12);left:50%;transform:translateX(-50%);width:calc(100vw - var(--dpui-space-6));max-width:var(--dpui-window-sm)}.dpui-reservation-form .dprw-drop:not(.dprw-cal){right:0;left:auto}}

/* Shared layout for the inline and dialog price editor. Controls use DreamUI. */
.dpui-price-editor-row{display:flex;align-items:flex-end;gap:var(--dpui-space-2);min-width:0}
.dpui-price-editor-field{display:grid;flex:1;min-width:0;gap:var(--dpui-space-1);font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-medium);color:var(--dpui-text)}
.dpui-price-editor-field:first-child{flex:1.25}
.dpui-price-editor-save{align-self:flex-end;flex:0 0 var(--dpui-icon-size)}

/* Native checkbox/radio groups use the same tokens as fields and actions. */
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-list{display:grid;gap:var(--dpui-space-2)}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-group{border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-control);overflow:hidden}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-summary{box-sizing:border-box;min-height:var(--dpui-control-height);padding:var(--dpui-space-3);font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-semibold);color:var(--dpui-text);cursor:pointer;overflow-wrap:anywhere}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dpui-space-2);padding:var(--dpui-space-2)}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-option{box-sizing:border-box;display:flex;align-items:flex-start;gap:var(--dpui-space-2);min-height:var(--dpui-control-height);margin:0;padding:var(--dpui-space-2);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-control);background:var(--dpui-surface);color:var(--dpui-text);font:var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body);cursor:pointer;overflow-wrap:anywhere}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-input{flex:0 0 calc(var(--dpui-icon-size) / 2);width:calc(var(--dpui-icon-size) / 2);height:calc(var(--dpui-icon-size) / 2);min-height:0!important;margin:0;accent-color:var(--dpui-brand,var(--dpui-accent))}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-option:has(input:checked){background:var(--dpui-selection);border-color:var(--dpui-link)}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-option:has(input:disabled){opacity:.5;cursor:default}
html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) :is(.dpui-choice-input,.dpui-choice-summary):focus-visible{outline:2px solid var(--dpui-focus);outline-offset:2px}
@media(pointer:coarse){html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) :is(.dpui-choice-option,.dpui-choice-summary){min-height:var(--dpui-touch-height)}}
@media(max-width:380px){html[data-dp-surface] :is(.dpui-action-dialog,.dpui-panel) .dpui-choice-grid{grid-template-columns:1fr}}

/* Position-only adapter; palette, typography and actions remain shared. */
.dpui-kitchen-recovery{box-sizing:border-box;position:fixed;bottom:var(--dpui-space-3);left:var(--dpui-space-3);z-index:var(--dpui-z-notice,10010);max-width:min(var(--dpui-window-sm),calc(100vw - var(--dpui-space-6)));max-height:25vh;overflow:auto;font-family:var(--dpui-font-body);box-shadow:var(--dpui-shadow)}

/* Both staff voucher scanners use the same camera preview. */
.dpui-media-preview{width:100%;max-height:55vh;border-radius:var(--dpui-radius-control);margin-block-start:var(--dpui-space-2)}

/* Layout only. Colours, typography, controls and state come from DreamUI. */
.dpui-customer-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--dpui-window-sm)/2)),1fr));gap:var(--dpui-space-2)}
.dpui-customer-choice.dpui-button{display:flex;justify-content:space-between;align-items:center;gap:var(--dpui-space-3);width:100%;text-align:left;white-space:normal}
.dpui-customer-choice-detail{font-size:var(--dpui-font-sm);color:var(--dpui-text-secondary);white-space:nowrap}
.dpui-customer-choice-label{flex:1;min-width:0}
.dpui-customer-choice-image{width:var(--dpui-control-height);height:var(--dpui-control-height);object-fit:cover;flex:none;border-radius:var(--dpui-radius-small);background:var(--dpui-surface-muted)}
.dpui-customer-group-title{font-size:var(--dpui-font-base);font-weight:var(--dpui-weight-semibold);margin:0}
[data-dpui-dialog-host]>.dpw-back .dpw-title>h3{margin:0;font:inherit;color:inherit}
.dpui-prose{font:var(--dpui-font-base)/var(--dpui-line-body) var(--dpui-font-body);color:var(--dpui-text)}
.dpui-prose :is(h3,h4){font:var(--dpui-weight-semibold) var(--dpui-font-lg)/var(--dpui-line-body) var(--dpui-font-body);margin:var(--dpui-space-4) 0 var(--dpui-space-2)}
.dpui-prose :is(h3,h4):first-child{margin-top:0}
.dpui-prose :is(p,ul,ol){margin:0 0 var(--dpui-space-3)}
.dpui-prose :is(p,ul,ol):last-child{margin-bottom:0}
.dpui-prose :is(ul,ol){padding-inline-start:var(--dpui-space-5)}


/* Hidden is application/policy state and must beat the shared controls' display. */
.dpui-admin-content[hidden],.dpui-admin-content [hidden]{display:none!important}

/* Large capture actions are an explicit button size, not another button theme. */
.dpui-button[data-size=media]{flex-direction:column;align-items:center;justify-content:center;gap:var(--dpui-space-3)}
.dpui-button[data-size=media]>[aria-hidden=true]{font-size:var(--dpui-icon-size);line-height:1}

/* Adapters for existing public class names. Never change business logic or positioning. */
html[data-dp-surface]{--dpui-brand:var(--accent-color,var(--accent,var(--brand,var(--gold2,var(--orange,var(--dpui-accent))))));--dp-font-ui:var(--dpui-font-body);--dp-font-size-xs:var(--dpui-font-xs);--dp-font-size-sm:var(--dpui-font-sm);--dp-font-size-md:var(--dpui-font-base);--dp-font-size-lg:var(--dpui-font-lg);--dp-font-size-xl:var(--dpui-font-xl);--dp-radius-control:var(--dpui-radius-control);--dp-radius-card:var(--dpui-radius-card);--dp-radius-window:var(--dpui-radius-dialog);--dp-control-h:var(--dpui-control-height);--dp-touch-h:var(--dpui-touch-height)}
/* Both old variable vocabularies now resolve to the same semantic palette. */
html[data-dp-surface]:is([data-dp-theme=light],[data-dp-theme=dark]),html[data-dp-surface][data-dp-theme] body{
 --bg-primary:var(--dpui-bg);--bg-secondary:var(--dpui-surface);--bg-tertiary:var(--dpui-surface-muted);--bg-base:var(--dpui-bg);--bg-card:var(--dpui-surface);--bg-input:var(--dpui-input);
 --text-primary:var(--dpui-text);--text-secondary:var(--dpui-text-secondary);--text-muted:var(--dpui-text-muted);--border-color:var(--dpui-border);
 --bg:var(--dpui-bg);--card:var(--dpui-surface);--card2:var(--dpui-surface-muted);--border:var(--dpui-border);--text:var(--dpui-text);--text2:var(--dpui-text-secondary);--text-soft:var(--dpui-text-secondary);
 --green:var(--dpui-success);--green-bg:var(--dpui-success-bg);--red-bg:var(--dpui-danger-bg);--blue-bg:var(--dpui-info-bg)
 ;--kaart:var(--dpui-surface);--tekst:var(--dpui-text);--tekst-zacht:var(--dpui-text-secondary);--lijn:var(--dpui-border)
}
/* Customer brands retain their accent and decorative headers; functional surfaces share tokens. */
html[data-dp-surface=customer][data-dp-theme]{--paper:var(--dpui-bg);--cream:var(--dpui-surface-muted);--ink:var(--dpui-text);--muted:var(--dpui-text-secondary);--line:var(--dpui-border)}
html[data-dp-surface] :is(.dp-btn,.s-btn,.md-btn,.dp-button,.dp-button-primary,.dp-button-secondary,.pers-inline-btn,.modal-btn,.btn-primary,.btn-secondary,.btn-submit,.btn-login,.auth-btn,.dprw-submit,.dprp-btn,#resAutoPlanButton,#resOverviewPeriodButton,.dp-res-tabs>button){box-sizing:border-box;border-radius:var(--dpui-radius-control)!important;min-height:var(--dpui-control-height);font-family:var(--dpui-font-body)!important;line-height:var(--dpui-line-control);font-weight:var(--dpui-weight-semibold)}
html[data-dp-surface] :is(.dp-btn-primary,.dp-button-primary,.s-btn-primary){background:var(--dpui-brand,var(--dpui-accent))!important;border-color:var(--dpui-brand,var(--dpui-accent))!important;color:var(--dpui-on-brand,var(--dpui-on-accent))!important}
html[data-dp-surface] :is(.dp-input,.s-input,.md-input,.md-select,.md-textarea,.modal-input,.dprw-field input,.dprw-field select,.dprw-field textarea,.dprp-field input,.dprp-field select,.auth-input,.login-box input,.picker-search,.dp-res-date-picker,.dp-res-date-popup){border-color:var(--dpui-border)!important;border-radius:var(--dpui-radius-control)!important;background:var(--dpui-input)!important;color:var(--dpui-text)!important;font-family:var(--dpui-font-body)!important}
html[data-dp-surface] :is(.dp-input,.s-input,.md-input,.md-select,.modal-input,.auth-input){min-height:var(--dpui-control-height);box-sizing:border-box;font-size:var(--dpui-font-base)}
html[data-dp-surface] :is(.dpw,.menu-modal,.picker-sheet,.st-opt-card,.dprp-card,.auth-card,.dp-res-table-assignment){box-sizing:border-box;border-radius:var(--dpui-radius-dialog)!important;border-color:var(--dpui-border)!important;color:var(--dpui-text)!important;background:var(--dpui-surface)!important;box-shadow:var(--dpui-shadow);max-width:calc(100vw - var(--dpui-space-6))!important;max-height:calc(100dvh - var(--dpui-space-6) - var(--dpk-h,0px))!important}
html[data-dp-surface] :is(.dpw-head,.menu-modal-header,.picker-head,.st-opt-head){border-color:var(--dpui-border);padding-inline:var(--dpui-space-4)}
html[data-dp-surface] :is(.dpw-back,.picker-backdrop,.st-opt-overlay){background:var(--dpui-backdrop)}
html[data-dp-surface] :is(.dpw-title,.dp-res-date-label){color:var(--dpui-text)!important}
html[data-dp-surface] :is(.dpw-btn,.dp-icon-btn,.menu-close-btn){border-radius:var(--dpui-radius-control)!important;min-width:var(--dpui-icon-size)!important;min-height:var(--dpui-icon-size)!important;color:var(--dpui-text)!important}
html[data-dp-surface] :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--dpui-focus)!important;outline-offset:2px}
html[data-dp-surface] :is(.dp-input,.s-input,.modal-input)::placeholder{color:var(--dpui-text-muted);opacity:1}
html[data-dp-surface]:not([data-dp-surface=marketing]) :is(.setup-input,.fld,.search-input,.filter-select,.chat-input,.roster-date){box-sizing:border-box;min-height:var(--dpui-control-height);border:var(--dpui-border-width) solid var(--dpui-border);border-radius:var(--dpui-radius-control);background:var(--dpui-input);color:var(--dpui-text);font-family:var(--dpui-font-body)}
html[data-dp-surface] :is(.st-opt-btn,.st-opt-add,.staff-pay-submit,.res-act,.checkout-btn,.modal-submit,.btn-gold,.btn-red,.btn-ghost,.auth-tab,.pay-btn,.btn-block,.btn-sm){box-sizing:border-box;border-radius:var(--dpui-radius-control)!important;min-height:var(--dpui-control-height);font-family:var(--dpui-font-body)!important;line-height:var(--dpui-line-control)}
html[data-dp-surface] .dpp-box{width:var(--dpui-window-sm);max-width:calc(100vw - var(--dpui-space-6));max-height:calc(100dvh - var(--dpui-space-6) - var(--dpk-h,0px));overflow:auto;padding:var(--dpui-space-5);border-radius:var(--dpui-radius-dialog);background:var(--dpui-surface);color:var(--dpui-text);box-shadow:var(--dpui-shadow)}
html[data-dp-surface] .dpp-back{background:var(--dpui-backdrop)}
html[data-dp-surface] :is(.dpp-in,.dpp-btn){min-height:var(--dpui-control-height);border-radius:var(--dpui-radius-control);font-family:var(--dpui-font-body);font-size:var(--dpui-font-base)}
html[data-dp-surface] .dpp-in{background:var(--dpui-input);color:var(--dpui-text);border-color:var(--dpui-border)}
html[data-dp-surface] .dpp-ok{background:var(--dpui-brand,var(--dpui-accent));border-color:var(--dpui-brand,var(--dpui-accent));color:var(--dpui-on-brand,var(--dpui-on-accent))}
html[data-dp-surface] .dpp-err{color:var(--dpui-danger)}
html[data-dp-surface] :is(.dpp-title,.dpw-title){font-size:var(--dpui-font-lg);font-weight:var(--dpui-weight-bold)}
@media(pointer:coarse){html[data-dp-surface] :is(.dp-btn,.s-btn,.md-btn,.modal-btn,.btn-primary,.btn-secondary,.btn-submit,.dpw-btn,.dp-icon-btn,.modal-input,.dp-input){min-height:var(--dpui-touch-height)!important}}
@media(max-width:600px){html[data-dp-surface] :is(.modal-input,.dp-input,.s-input){font-size:var(--dpui-font-lg)!important}}
@media print{html[data-dp-surface]{--dpui-shadow:none}}
html[data-dp-surface=utility] .card{background:var(--dpui-surface);color:var(--dpui-text);border-color:var(--dpui-border);border-radius:var(--dpui-radius-card)}
html[data-dp-surface=utility] .sub{color:var(--dpui-text-secondary)}
html[data-dp-surface=dispatch] .dp-dispatch{--dd-bg:var(--dpui-bg)!important;--dd-card:var(--dpui-surface)!important;--dd-text:var(--dpui-text)!important;--dd-muted:var(--dpui-text-secondary)!important;--dd-border:var(--dpui-border)!important}
/* Important rules in this layer beat old unlayered !important declarations.
   Scope is limited to recognized controls; PIN/quantity/print layouts stay native. */
@layer dreampos-controls{
 html[data-dp-surface]:not([data-dp-surface=marketing]) :is(input,select,textarea):not([type=hidden],[type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=button],[type=submit],.qty-input,.ka-qty-input,.pin-input,[data-dp-ui-native]){background:var(--dpui-input)!important;color:var(--dpui-text)!important;border-radius:var(--dpui-radius-control)!important;font-family:var(--dpui-font-body)!important}
 html[data-dp-surface] :is(input,textarea)::placeholder{color:var(--dpui-text-muted)!important;opacity:1}
 html[data-dp-surface] :is(.dp-btn-primary,.dp-button-primary,.s-btn-primary,.btn-primary,.btn-gold,.btn-submit,.modal-submit,.dprw-submit,.staff-pay-submit,.dpp-ok,.dd-primary,.gc-primary,.dl,#authLoginBtn):not(.dpui-button):not([aria-pressed=true]){background:var(--dpui-brand,var(--dpui-accent))!important;border-color:var(--dpui-brand,var(--dpui-accent))!important;color:var(--dpui-on-brand,var(--dpui-on-accent))!important}
 html[data-dp-surface] :is(.modal-input,.dp-input,.s-input,.setup-input,.fld):not(.dpui-input){min-height:var(--dpui-control-height)!important}
 html[data-dp-surface] :is(.dp-btn,.s-btn,.md-btn,.modal-btn,.btn-primary,.btn-secondary,.btn-submit,.dp-res-tabs>button,#resOverviewPeriodButton):not(.dpui-button){min-height:var(--dpui-control-height)!important;border-radius:var(--dpui-radius-control)!important}
 html[data-dp-surface=pos] #authLangPicker .langBtn{background:var(--dpui-surface-muted)!important;color:var(--dpui-text)!important;border-color:var(--dpui-border)!important}
 html[data-dp-surface=pos] .auth-card-pro>.u-tac>div{color:var(--dpui-text-secondary)!important}
 html[data-dp-surface] :is(input,select,textarea):is([aria-invalid=true],.error,.invalid,.is-invalid,.input-error){border-color:var(--dpui-danger)!important}
 html[data-dp-surface][data-dp-theme] :is(input,select,textarea):is(:disabled,[readonly]){background:var(--dpui-surface-muted)!important;color:var(--dpui-text-secondary)!important}
 html[data-dp-surface] .dpui-button[aria-pressed=true]{background:var(--dpui-selection)!important;border-color:var(--dpui-link)!important;color:var(--dpui-link)!important}
 html[data-dp-surface] :is(.dpui-button,.dp-btn,.s-btn,.md-btn,.btn-primary,.btn-secondary,.btn-gold,.btn-submit,.modal-submit,.dprw-submit,.staff-pay-submit,.dpp-ok,.dd-primary,.gc-primary,#authLoginBtn):is(:disabled,[aria-disabled=true]){background:var(--dpui-surface-muted)!important;color:var(--dpui-text-muted)!important;border-color:var(--dpui-border)!important;cursor:default;opacity:.65}
 @media(pointer:coarse){html[data-dp-surface] :is(.modal-input,.dp-input,.s-input,.setup-input,.fld,.dp-btn,.s-btn,.md-btn,.modal-btn,.btn-primary,.btn-secondary,.btn-submit,.dp-res-tabs>button,#resOverviewPeriodButton):not(.dpui-input,.dpui-button){min-height:var(--dpui-touch-height)!important}}
}
