:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#2b2024;background:#f6f1f3;font-size:17px;--brand:#7b1734;--brand-dark:#5e1028;--line:#dbcdd2;--green:#176a39}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}button,input{font:inherit}button{min-height:48px;border:0;border-radius:12px;background:var(--brand);color:#fff;font-weight:750;padding:11px 16px;touch-action:manipulation}button:disabled{opacity:.38}.topbar{min-height:64px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:max(10px,env(safe-area-inset-top)) 18px 10px;gap:18px}.topbar strong{font-size:1.15rem}.mode{display:inline-block;background:#ffe39c;color:#5b3b00;border-radius:999px;padding:5px 9px;font-size:.72rem;margin-left:10px;vertical-align:2px}.status{display:flex;gap:8px;font-size:.78rem}.status span{background:rgba(255,255,255,.15);border-radius:999px;padding:6px 9px}.till-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);min-height:calc(100vh - 64px)}.sell-panel{padding:18px;overflow:auto}.search-row{display:grid;grid-template-columns:1fr auto;gap:10px;position:sticky;top:0;background:#f6f1f3;padding-bottom:12px;z-index:2}.search-row input{width:100%;min-height:54px;border:2px solid var(--line);border-radius:14px;padding:10px 15px;font-size:1.08rem;background:#fff}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}.product{background:#fff;color:#2b2024;border:1px solid var(--line);box-shadow:0 2px 8px rgba(70,20,40,.06);text-align:left;min-height:100px}.product small{display:block;color:#77676d;font-weight:500;margin-top:7px}.product .price{display:block;color:var(--brand);margin-top:8px;font-size:1.1rem}.catalogue-state,.notice{background:#fff;border-radius:12px;padding:14px;margin-bottom:12px}.notice{background:#fff0c7}.basket-panel{background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column;padding:18px;min-height:0}.basket-heading{display:flex;justify-content:space-between;align-items:center}.basket-heading h1{font-size:1.25rem;margin:0}.subtle{background:#eee4e8;color:var(--brand);min-height:42px}.basket-lines{flex:1;overflow:auto;margin:14px 0}.empty{color:#77676d;text-align:center;margin-top:50px}.line{display:grid;grid-template-columns:1fr auto;gap:6px;padding:12px 0;border-bottom:1px solid #eee}.line-name{font-weight:700}.line-meta{font-size:.78rem;color:#77676d}.line-controls{display:flex;align-items:center;gap:7px}.line-controls button{min-height:38px;min-width:38px;padding:5px;background:#eee4e8;color:var(--brand)}.totals{border-top:2px solid var(--line);padding-top:12px}.totals>div{display:flex;justify-content:space-between;padding:6px 0}.totals .grand{font-size:1.45rem;color:var(--brand)}.payment-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.trial-warning{text-align:center;font-size:.72rem;color:#805d00;background:#fff3c9;border-radius:10px;padding:8px;margin:10px 0 0}dialog{border:0;border-radius:20px;max-width:430px;padding:26px;box-shadow:0 20px 70px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(25,10,15,.6)}dialog button{width:100%}
@media(max-width:800px){.till-layout{grid-template-columns:1fr;grid-template-rows:minmax(45vh,1fr) auto}.basket-panel{border-left:0;border-top:1px solid var(--line);max-height:52vh}.status{flex-direction:column;gap:3px}.topbar{padding-left:12px;padding-right:12px}.sell-panel{padding:12px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.brand-row{display:flex;align-items:center;gap:8px}.menu-button{min-width:46px;min-height:42px;background:rgba(255,255,255,.16);font-size:1.35rem;padding:5px}.menu-shade{position:fixed;inset:0;background:rgba(20,8,13,.5);z-index:20}.side-menu{position:fixed;z-index:21;inset:0 auto 0 0;width:min(360px,88vw);background:#fff;box-shadow:10px 0 35px rgba(0,0,0,.25);padding:16px;transform:translateX(-105%);transition:transform .2s ease;overflow:auto}.side-menu.open{transform:translateX(0)}.side-menu-head{display:flex;align-items:center;justify-content:space-between;font-size:1.15rem;padding-bottom:15px;border-bottom:1px solid var(--line)}.side-menu-head button,.dialog-close{background:#eee4e8;color:var(--brand);min-height:42px;min-width:42px;padding:4px;font-size:1.4rem}.side-menu details{border-bottom:1px solid var(--line);padding:10px 0}.side-menu summary{font-weight:800;color:var(--brand);padding:10px 4px;cursor:pointer}.side-menu details button{display:block;width:100%;text-align:left;background:transparent;color:#2b2024;padding:12px 8px}.tool-dialog{width:min(480px,calc(100vw - 24px));border:0;border-radius:18px;padding:24px}.wide-dialog{width:min(820px,calc(100vw - 24px));max-width:820px}.dialog-close{float:right}.tool-dialog label{display:block;font-weight:700;margin:12px 0}.tool-dialog input{display:block;width:100%;border:2px solid var(--line);border-radius:12px;padding:13px;margin-top:6px}.amount-due,.change-line{display:flex;justify-content:space-between;font-size:1.25rem;background:#f6f1f3;padding:13px;border-radius:12px}.cash-suggestions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.cash-suggestions button{padding:8px;min-height:42px}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-card{background:#f6f1f3;border-radius:12px;padding:13px}.report-card strong{display:block;font-size:1.35rem;color:var(--brand);margin-top:5px}.history-table{width:100%;border-collapse:collapse;font-size:.84rem}.history-table th,.history-table td{padding:10px 7px;border-bottom:1px solid #eee;text-align:left}.pill{display:inline-block;border-radius:999px;padding:4px 7px;background:#eee}.pill.synced{background:#dcefe2;color:#155c30}.pill.pending{background:#fff0c7;color:#745000}.danger-button{background:#a4262c}.setting-row{background:#f6f1f3;padding:14px;border-radius:12px;margin:12px 0}.pin-input{text-align:center;font-size:1.8rem;letter-spacing:.4em}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.pin-keypad button{min-height:54px;padding:8px;font-size:1.25rem}.pin-keypad .subtle{background:#eee4e8;color:var(--brand)}.error-text{color:#a4262c;font-weight:700}.empty-report{text-align:center;color:#77676d;padding:30px}.offline-good{color:#176a39}.offline-warn{color:#8a5d00}@media(max-width:600px){.report-grid{grid-template-columns:1fr}.history-table{font-size:.75rem}.cash-suggestions{grid-template-columns:repeat(2,1fr)}}
.product-tile{aspect-ratio:1/1;min-height:0;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:14px}.product-tile .product-name{font-size:.98rem;line-height:1.18;font-weight:800;overflow-wrap:anywhere}.product-tile .price{margin:10px 0 0;align-self:flex-end;font-size:1.12rem}
.promotion-summary{flex:0 0 auto;background:#edf7ef;border:1px solid #bddcc5;border-radius:11px;padding:8px 11px;margin-bottom:10px;color:#155c30}.promotion-line{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:.84rem}.promotion-line strong{white-space:nowrap}.line-meta{line-height:1.35}
.basket-actions{display:flex;gap:7px}.sale-customer{flex:0 0 auto;margin-top:10px;padding:9px 11px;border:1px solid #b9d8c2;border-radius:11px;background:#edf7ef;color:#155c30;font-size:.82rem}.sale-customer strong{display:block;font-size:.9rem}.customer-results{display:grid;gap:8px;max-height:52vh;overflow:auto;margin:14px 0}.customer-result{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left;background:#f6f1f3;color:#2b2024;border:1px solid var(--line)}.customer-result span{color:var(--brand);font-size:.78rem}.customer-result small{display:block;color:#77676d;margin-top:3px}.customer-empty{padding:24px;text-align:center;color:#77676d}
html,body{height:100%;overflow:hidden}.topbar{height:64px;min-height:64px}.till-layout{height:calc(100dvh - 64px);min-height:0;overflow:hidden;grid-template-columns:minmax(0,1fr) minmax(310px,38%)}.sell-panel{min-width:0;height:100%;overflow-y:auto}.basket-panel{height:100%;min-height:0;overflow:hidden}.basket-heading,.totals,.payment-buttons,.trial-warning{flex:0 0 auto}.basket-lines{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.totals{background:#fff}.browse-trail{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:12px}.browse-trail button{min-height:38px;padding:7px 10px;background:#eee4e8;color:var(--brand)}.department{min-height:92px;background:var(--brand);color:#fff;font-size:1.05rem}.category{min-height:78px;background:#fff;color:var(--brand);border:2px solid #d8c8ce}.product-row{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;min-height:56px}.product-row .price{margin:0 0 0 12px}.catalogue-link{display:inline-block;margin-top:10px}@media(max-width:800px){.till-layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:none}.basket-panel{max-height:none;border-top:0;border-left:1px solid var(--line)}.sell-panel,.basket-panel{padding:10px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.line-controls{gap:3px}.line-controls strong:last-child{display:none}}@media(max-width:650px){.till-layout{grid-template-columns:minmax(0,1fr) 270px}.topbar strong{font-size:.9rem}.mode{display:none}}
.option-dialog{max-height:88vh;overflow:auto}.option-dialog>h2{margin-top:0;color:var(--brand)}.till-option-group{border:1px solid var(--line);border-radius:14px;padding:14px;margin:14px 0;background:#faf7f8}.till-option-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.till-option-heading h3{margin:0;font-size:1.05rem}.till-option-heading p{margin:4px 0 0;color:#77676d;font-size:.82rem}.till-option-heading small{color:var(--brand);font-weight:750;white-space:nowrap}.till-option-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tool-dialog .till-option-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:11px 12px;background:#fff;border:1px solid var(--line);border-radius:11px}.till-option-choice span{min-width:0}.till-option-choice strong{display:block}.till-option-choice small{display:block;color:#77676d;font-weight:500;margin-top:3px}.tool-dialog .till-option-choice input{width:72px;min-width:72px;margin:0;padding:9px;text-align:center}.option-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:sticky;bottom:-24px;background:#fff;padding:14px 0 0}.option-error{background:#fff0f0;color:#a4262c;border:1px solid #e2b9bb;border-radius:10px;padding:10px 12px;font-weight:700}.line-options{font-size:.74rem;color:var(--brand);line-height:1.35;margin-top:2px}@media(max-width:620px){.till-option-choices{grid-template-columns:1fr}.till-option-heading{display:block}.till-option-heading small{display:block;margin-top:5px}}
/* Receipt choice buttons must stay readable even when the global till button theme uses white text. */
#completeDialog .receipt-choice{background:#f4f7fb!important;color:#10233f!important;border:2px solid #cbd5e1!important;box-shadow:none!important;text-shadow:none!important}
#completeDialog .receipt-choice:hover,#completeDialog .receipt-choice:focus{background:#e8f0ff!important;color:#123f96!important;border-color:#2563eb!important;outline:3px solid rgba(37,99,235,.16)!important;outline-offset:1px}
#completeDialog .receipt-choice:active{background:#dbeafe!important;color:#123f96!important;border-color:#2563eb!important}

.customer-add-loyalty{width:100%;margin-top:10px;background:#edf7ef;color:#155c30;border:1px solid #b9d8c2}
.loyalty-signup-form h3{margin:0 42px 8px 0;color:var(--brand);font-size:1.25rem}
.loyalty-offline-note{background:#f6f1f3;border-radius:12px;padding:12px 14px;color:#66575c;line-height:1.4}
.loyalty-optional{font-weight:500;color:#77676d;font-size:.82rem}
.tool-dialog .loyalty-consent{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#faf7f8}
.tool-dialog .loyalty-consent input{display:block;width:22px;height:22px;min-width:22px;margin:0}
.tool-dialog .loyalty-consent span{line-height:1.35}
.loyalty-signup-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:16px}
@media(max-width:600px){.loyalty-signup-actions{grid-template-columns:1fr}}
