/* POS-only layout; loaded after the shared brand rules. */
html:has(.pos-screen){height:100%;overflow:hidden}
body.pos-screen{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.pos-screen>div[role=note]{flex:none;padding:4px 12px!important;font-size:13px!important;line-height:1.3!important}
.pos-screen .register{height:auto;min-height:0;flex:1;overflow:hidden}
.pos-screen .topbar{height:64px;min-height:64px;padding:6px 16px;flex-wrap:nowrap;gap:12px}
.pos-screen .brand small{display:none}
.pos-screen .brand-mark{font-size:32px}
.pos-screen .branches{padding:2px;flex:none;order:initial;width:auto}
.pos-screen .branches button{min-height:44px;padding:0 16px}
.pos-screen .top-right{flex-wrap:nowrap;max-width:none;gap:8px;margin-left:auto}
.pos-screen .demo-tag{display:none!important}
.pos-menu{position:relative;z-index:25}
.pos-menu summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid var(--line);border-radius:8px;font-weight:600}
.pos-menu summary::-webkit-details-marker{display:none}
.pos-menu nav{position:absolute;right:0;top:calc(100% + 6px);width:220px;background:white;padding:8px;box-shadow:0 8px 28px #2b221c30;border:1px solid var(--line);border-radius:10px}
.pos-menu .admin-link{display:flex!important;padding:10px;min-height:48px}
.pos-screen .workspace{min-height:0;min-width:0;overflow:hidden;grid-template-columns:minmax(0,1fr) 320px}
.pos-screen .catalog{padding:14px 16px 0;overflow:hidden}
.pos-screen .catalog-heading{flex:none;flex-wrap:nowrap;gap:8px;margin-bottom:10px}
.pos-screen .catalog-heading h1{margin:0;font-size:40px}
.pos-screen .catalog-heading .eyebrow{display:none}
.pos-screen .connection{display:flex;font-size:13px;white-space:nowrap}
.pos-screen .search-wrap{min-height:44px;height:44px;border-color:var(--line)}
.pos-screen .search-wrap input{height:42px}
.pos-screen .categories{padding:8px 0;gap:4px}
.pos-screen .categories button{min-height:44px;padding:8px 12px}
.pos-screen .catalog-meta{flex:none;min-height:24px;padding:0 2px 6px;font-size:13px}
.pos-screen .product-grid{min-height:0;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));grid-auto-rows:max-content;overflow:auto;overscroll-behavior:contain;gap:10px;padding:2px 2px 12px}
.pos-screen .product{min-height:210px;padding:10px;flex-shrink:0}
.pos-screen .product-tag{font-size:13px;max-width:100%;padding:2px 5px}
.pos-screen .product-photo{height:76px;min-height:76px;flex:none;margin-top:6px}
.pos-screen .product-name{margin:8px 0;min-height:40px;flex:none;overflow-wrap:anywhere}
.pos-screen .product-bottom{margin-top:auto;gap:4px;flex-wrap:wrap}
.pos-screen .product-stock{font-size:13px}
.pos-screen .catalog-footer{flex:none;min-height:26px;height:26px;font-size:12px;flex-wrap:nowrap}
.pos-screen .basket{min-width:0;min-height:0;overflow:hidden}
.pos-screen .basket-heading{padding:8px 12px;flex:none;min-height:52px}
.pos-screen .basket-heading .eyebrow{display:none}
.pos-screen .basket-heading h2{margin:0}
.pos-screen .branch-note{flex:none;min-height:26px;margin:0 12px;padding:0 0 4px;font-size:14px;flex-wrap:nowrap}
.pos-screen .instructor-control{padding:4px 12px;flex:none}
.pos-screen .instructor-control button{min-height:44px;padding:6px 10px;border-color:var(--line)}
.pos-screen .instructor-control small{display:none}
.pos-screen .cart-items{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;padding:0 12px}
.pos-screen .empty-cart{min-height:0;padding:12px 4px}
.pos-screen .empty-icon{display:none}
.pos-screen .empty-cart p{display:none}
.pos-screen .cart-line{padding:10px 0;border-color:var(--line)}
.pos-screen .line-top{gap:8px;margin-bottom:6px}
.pos-screen .line-name{overflow-wrap:anywhere;min-width:0}
.pos-screen .quantity-control button{width:44px;height:44px}
.pos-screen .unit-price{font-size:13px}
.pos-screen .checkout{position:static;flex:none;padding:10px 12px;background:white;box-shadow:0 -2px 8px #2b221c08}
.pos-screen .sum-row{margin-bottom:8px;gap:8px}
.pos-screen .sum-row strong{font-size:32px;white-space:nowrap}
.pos-screen .payment-buttons{gap:8px}
.pos-screen .payment-buttons button{min-height:56px;padding:8px;flex-wrap:nowrap}
.pos-screen .card-button small{display:none}
.pos-screen .checkout-hint{font-size:12px;line-height:1.3;margin:6px 0 0}
.pos-screen .checkout-note{font-size:13px;max-height:64px;overflow:auto;margin-bottom:6px}
.pos-screen .discount-row{font-size:13px;margin-bottom:4px;gap:8px}
.pos-screen .bottom-bar{height:26px;min-height:26px;padding:0 16px;flex-wrap:nowrap;gap:10px;font-size:12px;overflow:hidden}
.pos-screen .bottom-bar strong{font-size:12px}
.pos-screen .bottom-bar time{white-space:nowrap}
.pos-screen dialog{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain;margin:auto}
.pos-screen .dialog-body{padding:20px}
.pos-screen .dialog-actions{position:sticky;bottom:0;background:white;padding:10px 0;margin-top:10px;z-index:1}
.pos-screen .cash-due{margin:12px 0;padding:10px}
.pos-screen .quick-cash{margin:8px 0;gap:6px}
.pos-screen .toast{bottom:30px}
@media(min-width:1400px){.pos-screen .workspace{grid-template-columns:minmax(0,1fr) 380px}.pos-screen .product-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}
@media(max-width:1000px){.pos-screen .brand>span:last-child{display:none}.pos-screen .workspace{grid-template-columns:minmax(0,1fr) 290px}.pos-screen .catalog{padding:10px 10px 0}.pos-screen .catalog-heading h1{font-size:30px}.pos-screen .search-wrap kbd{display:none}.pos-screen .product-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
@media(max-height:650px) and (min-width:701px){
 .pos-screen .topbar{height:52px;min-height:52px;padding:4px 12px}
 .pos-screen .catalog{padding-top:6px}
 .pos-screen .catalog-heading{margin-bottom:4px}
 .pos-screen .catalog-heading h1{font-size:24px}
 .pos-screen .categories{padding:4px 0}
 .pos-screen .catalog-meta,.pos-screen .catalog-footer{display:none}
 .pos-screen .product{min-height:175px;padding:8px}
 .pos-screen .product-photo{height:52px;min-height:52px}
 .pos-screen .product-name{margin:5px 0;font-size:15px;min-height:38px}
 .pos-screen .basket-heading{min-height:44px;padding:0 12px}
 .pos-screen .branch-note{min-height:24px}
 .pos-screen .instructor-control{padding-top:2px;padding-bottom:2px}
 .pos-screen .checkout{padding:6px 10px}
 .pos-screen .sum-row strong{font-size:28px}
 .pos-screen .payment-buttons button{min-height:48px}
 .pos-screen .bottom-bar{height:22px;min-height:22px}
}
@media(max-width:700px){
 html:has(.pos-screen){height:auto;overflow:auto}
 body.pos-screen{height:auto;min-height:100vh;overflow:auto}
 .pos-screen .register{overflow:visible;flex:auto;min-height:0}
 .pos-screen .topbar{height:auto;min-height:56px;padding:6px 8px;gap:4px;position:sticky;top:0;z-index:25}
 .pos-screen .brand{display:none}
 .pos-screen .branches button{padding:0 10px}
 .pos-screen .avatar{display:none}
 .pos-screen .workspace{display:flex;flex-direction:column;overflow:visible}
 .pos-screen .catalog{padding:12px 10px 0;overflow:visible}
 .pos-screen .product-grid{flex:auto;max-height:42vh;min-height:180px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .pos-screen .product{min-height:190px}
 .pos-screen .catalog-footer{display:none}
 .pos-screen .basket{overflow:visible;border-left:0;border-top:1px solid var(--line)}
 .pos-screen .cart-items{flex:auto;min-height:60px;max-height:35vh}
 .pos-screen .checkout{position:static}
 .pos-screen .bottom-bar{height:auto;min-height:32px;flex-wrap:wrap;padding:6px 12px}
 .pos-screen .bottom-bar>span:first-child,.pos-screen .bottom-bar time{display:none}
}
/* Very short windows (or the on-screen keyboard) need page scrolling too. */
@media(max-height:380px) and (min-width:701px){
 html:has(.pos-screen){height:auto;overflow:auto}
 body.pos-screen{height:auto;min-height:100dvh;overflow:auto}
 .pos-screen .register{flex:auto;overflow:visible}
 .pos-screen .workspace{height:440px;min-height:440px;flex:none}
 .pos-screen .topbar{position:sticky;top:0;z-index:25}
}

.pos-screen .branches>strong{display:block;padding:8px 14px;font-size:16px;white-space:nowrap}
