.dw-screen-keyboard{position:fixed;z-index:10000;left:0;right:0;bottom:0;padding:8px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom));background:#171512;border-top:2px solid #b99556;box-shadow:0 -8px 28px #0008;color:#fff}
.dw-screen-keyboard[hidden]{display:none}.dw-keyboard-head,.dw-keyboard-row{display:flex;gap:6px;max-width:980px;margin:0 auto 6px}.dw-keyboard-head{align-items:center;justify-content:space-between}.dw-keyboard-head button{max-width:120px}.dw-screen-keyboard button{flex:1;min-width:0;min-height:48px;border:1px solid #726443;border-radius:8px;background:#f4efe3;color:#281f16;font-size:22px;font-weight:800;touch-action:manipulation}.dw-screen-keyboard button:active{background:#d5b66e}.dw-screen-keyboard .action{background:#d8d1c3}.dw-screen-keyboard .confirm{background:#9c762e;color:#fff}.dw-screen-keyboard .space{flex:4}.dw-screen-keyboard.numeric{left:auto;width:min(390px,100%);border-left:2px solid #b99556}.dw-keyboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.dw-keyboard-grid .wide{grid-column:span 3}.dw-keyboard-open .wrap{padding-bottom:310px}.dw-touch-pos .products,.dw-touch-pos .wrap>aside,.dw-touch-pos #categorybar,.dw-touch-pos #quickbar,.dw-touch-pos .manageSheet,.dw-touch-pos .vintro-body,.dw-touch-pos .vintro-wine-results,.dw-touch-pos .modal-body{touch-action:pan-y}.dw-touch-pos .product{touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media(max-width:700px){.dw-screen-keyboard{padding:6px}.dw-screen-keyboard button{min-height:42px;font-size:18px}.dw-keyboard-row{gap:3px;margin-bottom:3px}.dw-keyboard-open .wrap{padding-bottom:275px}.dw-touch-pos .products,.dw-touch-pos .wrap>aside,.dw-touch-pos .manageSheet,.dw-touch-pos .vintro-body,.dw-touch-pos .vintro-wine-results,.dw-touch-pos .modal-body{touch-action:pan-y}.dw-touch-pos .product{touch-action:pan-y}.dw-touch-pos #categorybar,.dw-touch-pos #quickbar,#categorybar,#quickbar{touch-action:pan-x}}
@media(any-pointer:coarse){.products,.wrap>aside,#categorybar,#quickbar,.manageSheet{touch-action:pan-y}.vintro-body,.vintro-wine-results,.modal-body{touch-action:pan-y}.vintro-wine-filters{touch-action:pan-x}}


/* Product interactions: native scrolling with stable hold state. */
#products{grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr))!important;grid-auto-rows:minmax(155px,auto)!important;align-content:start;align-items:stretch;gap:8px!important;touch-action:pan-y}
#products .product{height:auto!important;max-height:none!important;min-height:155px!important;touch-action:pan-y;overflow:hidden!important;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#products .product .productControls,#products .product .wineActions,#products .product .productMarketing{display:none!important}
#products .product.optionsOpen .productControls,#products .product.optionsOpen .wineActions,#products .product.optionsOpen .productMarketing{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin-top:8px}
#products .product.optionsOpen{overflow:visible!important}
#products .product button{min-height:44px!important;min-width:0;white-space:normal!important;font-size:12px!important;line-height:1.2;padding:7px!important}
#products .product.holdPending::after{content:'';position:absolute;left:0;bottom:0;height:5px;width:100%;background:#b8860b;transform-origin:left;animation:dwProductHold 3s linear both;animation-delay:var(--hold-delay,0ms);pointer-events:none}
@keyframes dwProductHold{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.wrap,.mobileDock{user-select:none;-webkit-user-select:none}
.wrap input,.wrap textarea{user-select:text;-webkit-user-select:text}
.dw-touch-pos #categorybar,#categorybar{touch-action:pan-y}
.dw-touch-pos #quickbar,#quickbar{touch-action:pan-x}
@media(max-width:700px){#products{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dw-touch-pos #categorybar,#categorybar{touch-action:pan-x}}

.toolbar{flex-wrap:wrap}.toolbar #search{min-width:150px}
.posSearchScope{display:flex;align-items:center;gap:8px;flex-basis:100%;font-size:12px;min-height:32px;color:var(--muted)}
.posSearchScope input{width:20px;height:20px;margin:0;flex:none}
.wineFilterNotice{flex-basis:100%;font-size:12px;line-height:1.4;padding:8px;background:#fff5d9;border-radius:6px}
.wineFilterNotice[hidden]{display:none}.wineFilterNotice button{font-size:12px;padding:6px 8px;margin-top:5px;min-height:36px}
/* A modal lives in the browser top layer: its keyboard must live there too. */
dialog.dw-keyboard-host{max-height:calc(100dvh - var(--dw-keyboard-height,340px) - 24px);margin-top:12px;margin-bottom:0}
dialog.dw-keyboard-host .dw-screen-keyboard{box-sizing:border-box;flex:none}
