:root{font-family:system-ui,-apple-system,sans-serif;color:#182d34;background:#edf2f3;font-size:16px;line-height:1.5;--main:#175956;--border:#cedbdd;--muted:#526971}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{min-height:46px;padding:10px 14px;border:1px solid var(--border);border-radius:9px;background:#fff;color:inherit;touch-action:manipulation;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #187d99;outline-offset:2px}button.primary,nav button.active{background:var(--main);color:#fff;border-color:var(--main)}button.danger{color:#a02d21}button:active{filter:brightness(.92)}header{background:#153e3d;color:#fff;padding:16px max(16px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}header h1{font-size:23px;letter-spacing:.02em;margin:0}header small{color:#d5e7e4}nav{display:flex;gap:8px;flex-wrap:wrap;max-width:1192px;margin:auto;padding:16px}main{max-width:1192px;margin:auto;padding:0 16px 28px}h2{font-size:21px;margin:0 0 16px}h3{font-size:17px;margin:0 0 10px}.panel{padding:20px;border-radius:12px;background:#fff;margin-bottom:16px;min-width:0}.row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:start}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.products{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:12px 0 22px}.products button{display:flex;flex-direction:column;text-align:left;gap:6px;min-height:100px;padding:12px}.products button small{font-size:13px;color:var(--muted)}.money{font-variant-numeric:tabular-nums}.large{font-size:28px;font-weight:650}.muted{color:var(--muted);font-size:14px}.note{background:#e6f0ef;padding:12px;border-radius:8px;margin-bottom:12px}.warning{color:#8b3500;background:#fff3e8;padding:12px;border-radius:8px}.error{color:#9b271b}.message{max-width:1160px;margin:0 auto 12px;padding:10px 16px;background:#dcebe8;border-radius:8px}.message.error{background:#ffebe6}label{display:block;margin-bottom:12px}input,select,textarea{display:block;border:1px solid var(--border);border-radius:8px;padding:10px;width:100%;min-height:46px;margin-top:5px;color:inherit;background:#fff;min-width:0}input[type=checkbox]{display:inline-block;width:22px;min-height:22px;margin-right:8px;vertical-align:middle}textarea{min-height:80px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.full{width:100%}.cash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cash-grid button{min-height:54px;padding:10px 2px;font-weight:650;font-size:15px;white-space:nowrap}.cash-label{font-size:14px;color:var(--muted);margin:12px 0 6px}.cash-input{font-size:28px;text-align:right;font-weight:650}.line{padding:12px 0;border-bottom:1px solid var(--border)}.qty{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.qty button{min-width:46px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid var(--border);font-size:14px}th{font-weight:650;white-space:nowrap}details{margin:12px 0}summary{cursor:pointer;min-height:44px;padding:8px 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102424aa;z-index:10;display:grid;place-items:center;padding:16px}.modal{width:min(580px,100%);max-height:90dvh;overflow:auto;border-radius:14px;background:#fff;padding:22px}.modal h2{margin-right:30px}.empty{padding:24px 0;color:var(--muted)}.tag{padding:3px 8px;border-radius:5px;background:#e7efef;font-size:13px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button.active{background:#dcebe8;border-color:#175956}.support{font-size:13px;padding:12px 0;color:var(--muted)}@media(max-width:720px){.split{grid-template-columns:1fr}.panel{padding:16px}nav{padding:12px}nav button{flex:1;font-size:14px;padding:10px 8px}main{padding:0 12px 20px}.grid{grid-template-columns:1fr 1fr}.products{grid-template-columns:repeat(3,minmax(0,1fr))}.products button{padding:9px;font-size:14px}.cash-grid button{font-size:14px}.large{font-size:25px}.grid label{min-width:0}}@media(max-width:380px){.grid{grid-template-columns:1fr}.cash-grid button{font-size:13px}.products{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:721px){.sale-layout{height:calc(100dvh - 250px);min-height:320px;align-items:stretch}.sale-layout>.panel{height:100%;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;margin-bottom:0;scroll-padding:16px}}.modal-toolbar{position:sticky;top:-22px;z-index:2;background:#fff;margin:-22px -22px 16px;padding:16px 22px;border-bottom:1px solid var(--border)}.modal-toolbar h2{font-size:18px;margin:0}.modal-toolbar .actions{margin:0}#variant-form{scroll-margin-top:100px}.stock-table{min-width:680px}.stock-table td:last-child{min-width:220px}.stock-table button{white-space:nowrap}.sale-heading,.checkout-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sale-heading h2,.checkout-heading h2{margin-bottom:2px}.sale-heading p{margin:0}.cart-count{white-space:nowrap;background:#e6f0ef;border-radius:999px;padding:6px 10px;font-weight:650}.category-tabs{position:sticky;top:-20px;z-index:2;background:#fff;padding:4px 0 10px}.products{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.products .product-card{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;align-content:start;gap:5px;min-height:138px;padding:12px;text-align:left;overflow:hidden}.product-name{font-size:14px;line-height:1.3;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-option{font-size:17px;line-height:1.3;overflow-wrap:anywhere}.product-price{font-size:20px;font-weight:750;align-self:end}.product-card small{line-height:1.25}.product-card.sold-out{background:#eef1f2;color:#6f7d81;border-style:dashed;opacity:.78}.product-card .stock-zero{color:#9b271b;font-weight:700}.checkout-panel{display:flex;flex-direction:column}.checkout-body{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-right:4px}.checkout-heading{flex:0 0 auto;border-bottom:1px solid var(--border);padding-bottom:10px}.cart-line:first-child{padding-top:4px}.qty span{min-width:46px;text-align:center;font-weight:700}.price-button{margin-left:auto}.tender-heading{margin-top:18px}.tender-heading label{margin:0}.checkout-footer{flex:0 0 auto;position:sticky;bottom:0;background:#fff;border-top:2px solid var(--main);padding-top:10px;box-shadow:0 -8px 16px #fff}.checkout-totals{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkout-totals>div{display:flex;flex-direction:column;padding:8px 10px;border-radius:9px;background:#edf4f3}.checkout-totals span{font-size:14px}.total-money,.change-money{font-size:30px;line-height:1.2}.checkout-button{min-height:58px;font-size:20px;font-weight:750}.checkout-error,.checkout-status{margin:8px 0}.checkout-status{border-radius:8px;padding:9px 10px;font-size:14px}.checkout-status.saving{background:#fff3e8;color:#8b3500}.checkout-status.success{background:#e3f3e9;color:#175a32}.checkout-status.error,.checkout-status.unknown{background:#ffebe6;color:#8d251b}@media(min-width:721px){.sale-layout{grid-template-columns:minmax(0,3fr) minmax(350px,2fr)}.sale-layout>.checkout-panel{overflow:hidden}.checkout-panel .cash-grid button{min-height:50px}}@media(max-width:720px){.sale-layout{display:block}.sale-layout>.panel{height:auto}.sale-layout>.product-panel{max-height:56dvh;overflow-y:auto}.sale-layout>.checkout-panel{overflow:visible}.products{grid-template-columns:repeat(2,minmax(0,1fr))}.products .product-card{min-height:128px}.checkout-body{overflow:visible}.checkout-footer{position:static;padding-bottom:max(8px,env(safe-area-inset-bottom));box-shadow:none}.total-money,.change-money{font-size:27px}}@media(max-width:380px){.checkout-totals{grid-template-columns:1fr}.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
