.tbpos-app{--tbpos-mint:#6DBCA1;--tbpos-mint-dark:#5E9C87;--tbpos-purple:#5F3D84;--tbpos-purple-dark:#3A2A41;--tbpos-receipt:#D1BFDF;--tbpos-panel:#222;--tbpos-panel-soft:#424242;--tbpos-ink:#1A1A1A;--tbpos-paper:#F4F3F5;--tbpos-success:#58CE74;--tbpos-danger:#E56560;--tbpos-warning:#E1C64A;--tbpos-cyan:#55C1C7;--tbpos-text:#fff;position:relative;width:100%;height:var(--tbpos-height,min(920px,100vh));min-height:640px;overflow:hidden;background:var(--tbpos-ink);color:var(--tbpos-text);font-family:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;line-height:1.2;isolation:isolate}.tbpos-app,.tbpos-app *{box-sizing:border-box}.tbpos-app button,.tbpos-app input,.tbpos-app select{font:inherit}.tbpos-app button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tbpos-icon{width:28px;height:28px;display:block;flex:none}.tbpos-loading,.tbpos-fatal{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:14px;background:linear-gradient(145deg,var(--tbpos-panel),var(--tbpos-purple-dark));color:#fff;text-align:center;padding:30px}.tbpos-spinner{width:38px;height:38px;border:4px solid rgba(255,255,255,.25);border-top-color:var(--tbpos-mint);border-radius:50%;animation:tbpos-spin .8s linear infinite}.tbpos-app.is-busy:after{content:"";position:absolute;inset:0;z-index:999;background:rgba(0,0,0,.12);pointer-events:auto}.tbpos-fatal p{max-width:550px}.tbpos-primary,.tbpos-secondary,.tbpos-danger-button{min-height:52px;border:0;border-radius:8px;padding:12px 18px;font-weight:900;letter-spacing:.06em;cursor:pointer}.tbpos-primary{background:var(--tbpos-success);color:#142119}.tbpos-secondary{background:var(--tbpos-paper);color:var(--tbpos-ink)}.tbpos-danger-button{background:var(--tbpos-danger);color:#fff}.tbpos-brand-logo{max-width:260px;max-height:110px;object-fit:contain}.tbpos-brand-fallback{display:flex;align-items:center;gap:10px;font-weight:950;font-size:28px;letter-spacing:.08em;text-transform:uppercase}.tbpos-brand-fallback .tbpos-icon{width:58px;height:58px}.tbpos-login-screen{position:absolute;inset:0;display:grid;grid-template-columns:minmax(260px,.75fr) minmax(520px,1.25fr);background:linear-gradient(90deg,var(--tbpos-panel) 0 36%,var(--tbpos-mint-dark) 36% 100%)}.tbpos-login-brand{display:grid;place-items:center;padding:35px;background:rgba(0,0,0,.18)}.tbpos-login-card{align-self:center;justify-self:center;width:min(760px,90%);padding:34px;border-radius:20px;background:rgba(25,25,25,.94);box-shadow:0 24px 70px rgba(0,0,0,.3)}.tbpos-eyebrow,.tbpos-modal-eyebrow{font-weight:900;font-size:12px;letter-spacing:.15em;color:var(--tbpos-mint);text-transform:uppercase}.tbpos-login-card h2{font-size:38px;margin:5px 0 4px}.tbpos-login-card p{margin:0 0 18px;color:#d5d5d5}.tbpos-employee-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tbpos-employee-choice{min-height:110px;border:2px solid transparent;border-radius:12px;background:#333;color:#fff;display:grid;place-items:center;gap:2px;padding:10px;cursor:pointer}.tbpos-employee-choice.is-selected{border-color:var(--tbpos-mint);background:#3b4e47}.tbpos-employee-choice small{opacity:.7}.tbpos-employee-initial{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--tbpos-purple);font-weight:900}.tbpos-pin-area{display:grid;grid-template-columns:1fr 250px;gap:12px;margin-top:18px}.tbpos-pin-area.is-disabled{opacity:.4;pointer-events:none}.tbpos-pin-display{height:56px;border-radius:8px;background:#151515;display:grid;place-items:center;font-size:26px;letter-spacing:.22em;border:1px solid #555}.tbpos-pin-display span{font-size:14px;letter-spacing:.12em;color:#aaa}.tbpos-keypad{grid-row:2/4;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tbpos-keypad button{min-height:54px;border:0;border-radius:7px;background:#4b4b4b;color:#fff;font-size:22px;font-weight:800;cursor:pointer}.tbpos-login-submit{grid-column:1;min-height:58px;border:0;border-radius:8px;background:var(--tbpos-success);font-weight:950;letter-spacing:.12em;cursor:pointer}.tbpos-login-submit:disabled{opacity:.45}.tbpos-service-screen{position:absolute;inset:0;background:linear-gradient(180deg,var(--tbpos-mint-dark) 0 54%,var(--tbpos-panel) 54% 100%);display:grid;grid-template-rows:1fr auto auto 1fr;padding:20px 10%;align-items:center}.tbpos-service-top{justify-self:center;align-self:center}.tbpos-service-title{text-align:center;text-transform:uppercase;font-weight:900;letter-spacing:.12em;opacity:.88}.tbpos-service-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12%;width:min(780px,100%);justify-self:center}.tbpos-service-buttons button{aspect-ratio:1.18/1;border:1px solid rgba(255,255,255,.35);background:linear-gradient(145deg,#694391,#512c72);box-shadow:0 12px 30px rgba(0,0,0,.22);color:#fff;font-size:clamp(28px,4vw,50px);font-weight:950;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.tbpos-service-buttons button:active{transform:translateY(2px)}.tbpos-service-footer{align-self:end;justify-self:center;display:flex;align-items:center;gap:15px;color:#ddd}.tbpos-service-footer button{display:flex;align-items:center;gap:6px;color:#fff;background:transparent;border:0;cursor:pointer}.tbpos-service-footer .tbpos-icon{width:22px;height:22px}.tbpos-shell{position:absolute;inset:0;display:grid;grid-template-columns:105px 220px minmax(420px,1fr) 130px;grid-template-rows:100px 1fr;background:var(--tbpos-panel)}.tbpos-order-tabs{grid-column:1/3;grid-row:1;background:var(--tbpos-purple);display:grid;grid-template-columns:28px repeat(4,1fr) 28px;gap:6px;align-items:center;padding:10px 7px}.tbpos-order-tab{position:relative;height:76px;background:#201e21;border:1px solid #b7b0b8;color:#fff;display:grid;grid-template-rows:auto 1fr;align-items:center;cursor:default;padding:7px 4px 4px}.tbpos-order-tab.has-order{cursor:pointer}.tbpos-order-tab small{font-size:9px;line-height:1.05;letter-spacing:.05em}.tbpos-order-tab strong{font-size:12px;color:#e7528f}.tbpos-tab-plus{position:absolute;left:-10px;top:-12px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#050505;color:var(--tbpos-purple);font-size:24px;line-height:1}.tbpos-tab-arrow{border:0;background:#0b0b0b;color:#fff;border-radius:12px;height:44px;font-size:28px}.tbpos-left-rail{grid-column:1;grid-row:2;background:#1c1c1c;padding:8px 9px;display:flex;flex-direction:column;align-items:stretch;gap:8px}.tbpos-rail-button{min-height:60px;border:0;border-radius:7px;box-shadow:0 2px 6px rgba(0,0,0,.28);display:grid;grid-template-columns:32px 1fr;align-items:center;text-align:left;gap:4px;padding:7px 8px;color:#171717;font-weight:950;line-height:.95;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}.tbpos-rail-button .tbpos-icon{width:26px;height:26px}.tbpos-rail-button.is-mint{background:var(--tbpos-mint)}.tbpos-rail-button.is-success{background:var(--tbpos-success)}.tbpos-rail-button.is-danger{background:var(--tbpos-danger)}.tbpos-rail-button.is-light{background:#d9d9d9}.tbpos-rail-button.is-receipt{background:#eee6e4}.tbpos-rail-button.is-manager{background:#6a80d4}.tbpos-rail-button:disabled{opacity:.35}.tbpos-rail-spacer{flex:1}.tbpos-rail-spacer.small{flex:.4}.tbpos-receipt-pane{grid-column:2;grid-row:2;background:var(--tbpos-receipt);color:#242024;display:grid;grid-template-rows:55px minmax(0,1fr) auto 78px;min-width:0}.tbpos-receipt-head{margin:10px;background:var(--tbpos-purple);color:#eee;display:flex;justify-content:space-between;align-items:center;padding:0 12px;letter-spacing:.06em}.tbpos-receipt-head strong{padding:7px 14px;border:1px solid rgba(255,255,255,.3);min-width:52px;text-align:center}.tbpos-cart-lines{overflow:auto;padding:5px 10px}.tbpos-cart-empty{height:100%;display:grid;place-items:center;text-align:center;color:#665d6d;padding:20px;font-size:13px}.tbpos-cart-line{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:4px;align-items:start;background:transparent;border:0;border-bottom:1px solid rgba(58,42,65,.16);color:#211d22;padding:9px 3px;text-align:left;cursor:pointer}.tbpos-cart-line.is-selected{background:rgba(95,61,132,.14);box-shadow:inset 3px 0 var(--tbpos-purple)}.tbpos-line-qty{font-weight:900}.tbpos-line-name strong{display:block}.tbpos-line-name small{display:block;color:#675e6c;font-size:11px}.tbpos-line-price{font-weight:800;font-size:12px}.tbpos-totals{background:#f5f5f5;color:#222;padding:9px 10px}.tbpos-totals>div{display:flex;justify-content:space-between;font-size:10px;margin:2px 0}.tbpos-total-final{border-top:1px solid #ddd;margin-top:7px!important;padding-top:7px;font-size:12px!important}.tbpos-receipt-footer{display:grid;grid-template-columns:1fr 1.2fr;gap:6px;padding:8px;background:#333}.tbpos-receipt-footer button{border:0;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;font-weight:900;cursor:pointer}.tbpos-receipt-footer button:first-child{background:#4c4c4c;color:#fff}.tbpos-receipt-footer .tbpos-order-total{background:#2c5535;color:#67e287}.tbpos-receipt-footer .tbpos-icon{width:25px}.tbpos-workspace{grid-column:3;grid-row:1/3;display:grid;grid-template-rows:100px minmax(0,1fr) 110px;min-width:0;background:#242424}.tbpos-page-title{background:var(--tbpos-mint);display:grid;place-items:center;color:#fff;text-transform:uppercase;font-size:clamp(28px,3.6vw,46px);font-weight:950;letter-spacing:.08em;text-shadow:0 2px 2px rgba(0,0,0,.35);padding:10px;text-align:center}.tbpos-product-grid{padding:10px;overflow:auto;align-content:start;display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px;background:#414141}.tbpos-product-tile{min-height:92px;border:1px solid rgba(0,0,0,.45);border-radius:4px;background:var(--tile);color:#fff;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:1fr auto;gap:2px 6px;align-items:center;padding:8px;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.4);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}.tbpos-product-tile .tbpos-icon{width:38px;height:38px;grid-row:1/3}.tbpos-product-tile strong{font-size:16px;letter-spacing:.025em;line-height:1}.tbpos-product-tile small{font-size:12px;font-weight:800;opacity:.92}.tbpos-product-tile:active{transform:translateY(1px)}.tbpos-product-tile.is-sold-out{filter:grayscale(.8);opacity:.5}.tbpos-products-empty{grid-column:1/-1;display:grid;place-items:center;min-height:180px;color:#d3d3d3}.tbpos-action-dock{background:var(--tbpos-purple);padding:9px;display:grid;grid-template-columns:repeat(2,minmax(90px,1fr)) minmax(150px,1.1fr);grid-template-rows:1fr 1fr;gap:7px}.tbpos-action-dock button{border:0;border-radius:5px;background:#4b3d50;color:#d8d1db;font-weight:900;letter-spacing:.04em;cursor:pointer}.tbpos-action-dock button:nth-child(3),.tbpos-action-dock button:nth-child(4){color:#e1c63d}.tbpos-action-dock .tbpos-checkout-big{grid-column:3;grid-row:1/3;background:var(--tbpos-success);color:#4a1e62;display:flex;align-items:center;justify-content:center;gap:7px;font-size:20px}.tbpos-action-dock button:disabled{opacity:.35;cursor:not-allowed}.tbpos-right-nav{grid-column:4;grid-row:1/3;background:var(--tbpos-purple-dark);padding:8px;display:grid;grid-template-rows:70px minmax(0,1fr) auto;gap:7px}.tbpos-main-menu,.tbpos-category-button{border:0;background:#0d0b0e;color:#8b4fb7;border-radius:3px;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;text-transform:uppercase;font-weight:900;letter-spacing:.02em}.tbpos-main-menu{font-size:16px}.tbpos-main-menu .tbpos-icon{width:40px;height:40px}.tbpos-category-list{display:grid;grid-auto-rows:minmax(70px,1fr);gap:6px;min-height:0}.tbpos-category-button{flex-direction:column;color:var(--cat);padding:5px}.tbpos-category-button .tbpos-icon{width:32px;height:32px}.tbpos-category-button span{font-size:12px}.tbpos-category-button.is-active{background:var(--cat);color:#171717}.tbpos-service-switch{display:grid;gap:7px}.tbpos-service-switch button{min-height:65px;border:0;border-radius:4px;background:#e7e7e7;color:#171717;font-size:16px;cursor:pointer}.tbpos-service-switch button.is-active{box-shadow:inset 0 0 0 4px var(--tbpos-mint)}.tbpos-toast{position:absolute;left:50%;bottom:22px;z-index:1200;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:12px 16px;border-radius:8px;background:#111;color:#fff;box-shadow:0 12px 40px rgba(0,0,0,.35);transition:.18s ease;max-width:min(520px,88%);font-weight:700;text-align:center}.tbpos-toast.is-visible{opacity:1;transform:translate(-50%,0)}.tbpos-toast.is-error{background:#8e2929}.tbpos-toast.is-success{background:#245c36}.tbpos-modal-host:empty{display:none}.tbpos-modal-backdrop{position:absolute;inset:0;z-index:900;background:rgba(0,0,0,.68);backdrop-filter:blur(3px)}.tbpos-modal{position:absolute;z-index:910;left:50%;top:50%;transform:translate(-50%,-50%);width:min(650px,92%);max-height:86%;overflow:auto;background:#262328;color:#fff;border:1px solid #5d5262;border-radius:15px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.55)}.tbpos-modal-close{position:absolute;right:10px;top:8px;width:38px;height:38px;border:0;border-radius:50%;background:#413b44;color:#fff;font-size:28px;cursor:pointer}.tbpos-modal h3{font-size:28px;margin:5px 0 5px;padding-right:42px}.tbpos-modal>p{color:#cbc4cf;margin:0 0 18px}.tbpos-modifier-groups{display:grid;gap:14px}.tbpos-modifier-groups fieldset{border:1px solid #524a56;border-radius:10px;padding:12px}.tbpos-modifier-groups legend{padding:0 5px;font-weight:900}.tbpos-modifier-groups legend em{font-style:normal;font-size:10px;color:var(--tbpos-warning);text-transform:uppercase;margin-left:5px}.tbpos-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tbpos-choice{position:relative}.tbpos-choice input{position:absolute;opacity:0}.tbpos-choice span{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:52px;border:2px solid #4a454c;border-radius:8px;padding:8px 10px;background:#343036;cursor:pointer}.tbpos-choice input:checked+span{border-color:var(--tbpos-mint);background:#354840}.tbpos-choice small{color:#bdb5c2}.tbpos-note-field,.tbpos-cash-field{display:block;margin:15px 0;font-weight:800}.tbpos-note-field input,.tbpos-cash-field input{display:block;width:100%;height:50px;margin-top:6px;border:1px solid #5c5560;background:#171519;color:#fff;border-radius:8px;padding:0 12px}.tbpos-modal-submit{width:100%;margin-top:8px}.tbpos-qty-control{display:grid;grid-template-columns:65px 1fr 65px;gap:8px;align-items:center;margin:26px 0}.tbpos-qty-control button{height:60px;border:0;border-radius:8px;background:#48414c;color:#fff}.tbpos-qty-control strong{font-size:50px;text-align:center}.tbpos-checkout-summary{background:#171519;border-radius:9px;padding:10px 13px;margin:15px 0}.tbpos-checkout-summary>div{display:flex;justify-content:space-between;padding:4px 0}.tbpos-checkout-summary>div:last-child{border-top:1px solid #454047;margin-top:5px;padding-top:9px;font-size:18px}.tbpos-payment-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tbpos-payment-methods button{min-height:76px;border:2px solid transparent;border-radius:8px;background:#3d3841;color:#fff;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:900;cursor:pointer}.tbpos-payment-methods button.is-active{border-color:var(--tbpos-mint);background:#30483f}.tbpos-success-mark{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:var(--tbpos-success);color:#173421;font-size:40px;font-weight:900;margin-bottom:12px}.tbpos-change-due{display:flex;justify-content:space-between;align-items:center;background:#151515;border-radius:9px;padding:14px;margin:15px 0}.tbpos-change-due strong{font-size:24px;color:var(--tbpos-success)}.tbpos-success-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tbpos-success-actions button{display:flex;align-items:center;justify-content:center;gap:6px}.tbpos-employee-panel .tbpos-icon{width:22px}.tbpos-manager-orders{display:grid;gap:7px}.tbpos-manager-order{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:7px;align-items:center;padding:8px;border:1px solid #4e4852;border-radius:8px}.tbpos-manager-order small{display:block;color:#bbb;text-transform:capitalize}.tbpos-manager-order select{height:42px;background:#171519;color:#fff;border:1px solid #5a535d;border-radius:6px}.tbpos-manager-order button{height:42px;border:0;border-radius:6px;background:var(--tbpos-mint);font-weight:800}.tbpos-error-text{color:#ff9f9f!important}.tbpos-empty{padding:18px;text-align:center;background:#302d32;border-radius:8px;color:#ccc}
@keyframes tbpos-spin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.tbpos-shell{grid-template-columns:86px 205px minmax(360px,1fr) 112px}.tbpos-left-rail{padding:7px 6px}.tbpos-rail-button{grid-template-columns:1fr;text-align:center;justify-items:center;font-size:11px}.tbpos-product-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.tbpos-main-menu{font-size:13px;flex-direction:column}.tbpos-category-button span{font-size:10px}.tbpos-service-switch button{font-size:14px}}
@media(max-width:820px){.tbpos-app{height:var(--tbpos-height,100vh);min-height:700px}.tbpos-login-screen{grid-template-columns:1fr;background:linear-gradient(180deg,var(--tbpos-mint-dark),var(--tbpos-panel))}.tbpos-login-brand{display:none}.tbpos-login-card{width:min(680px,94%);padding:22px}.tbpos-shell{grid-template-columns:76px minmax(180px,32%) minmax(0,1fr);grid-template-rows:82px minmax(0,1fr) 98px}.tbpos-order-tabs{grid-column:1/3;grid-row:1}.tbpos-workspace{grid-column:3;grid-row:1/3;grid-template-rows:82px minmax(0,1fr) 100px}.tbpos-right-nav{grid-column:1/4;grid-row:3;grid-template-columns:105px minmax(0,1fr) 180px;grid-template-rows:1fr;padding:6px}.tbpos-main-menu{height:100%}.tbpos-category-list{grid-auto-flow:column;grid-auto-columns:minmax(88px,1fr);grid-template-rows:1fr;overflow:auto}.tbpos-category-button{height:100%}.tbpos-service-switch{grid-template-columns:1fr 1fr}.tbpos-service-switch button{min-height:0;height:100%}.tbpos-receipt-pane{grid-column:2;grid-row:2}.tbpos-left-rail{grid-column:1;grid-row:2}.tbpos-product-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}.tbpos-product-tile{min-height:82px}.tbpos-action-dock{grid-template-columns:1fr 1fr 1.2fr}.tbpos-service-screen{padding:20px 6%}}
@media(max-width:620px){.tbpos-app{min-height:720px}.tbpos-login-card h2{font-size:28px}.tbpos-employee-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.tbpos-pin-area{grid-template-columns:1fr}.tbpos-keypad{grid-row:auto}.tbpos-login-submit{grid-column:auto}.tbpos-service-screen{grid-template-rows:1fr auto auto 1fr;padding:16px}.tbpos-service-buttons{gap:12px}.tbpos-service-buttons button{font-size:25px;aspect-ratio:1/1}.tbpos-shell{display:grid;grid-template-columns:1fr;grid-template-rows:64px minmax(0,1fr) 76px;background:#222}.tbpos-order-tabs{display:none}.tbpos-left-rail{display:none}.tbpos-receipt-pane{position:absolute;z-index:300;left:0;right:0;bottom:76px;height:0;overflow:hidden;transition:height .2s}.tbpos-shell.is-cart-open .tbpos-receipt-pane{height:58%}.tbpos-workspace{grid-column:1;grid-row:1/3;grid-template-rows:64px minmax(0,1fr) 95px}.tbpos-page-title{font-size:27px}.tbpos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px}.tbpos-product-tile{grid-template-columns:32px minmax(0,1fr);min-height:84px;padding:7px}.tbpos-product-tile .tbpos-icon{width:28px;height:28px}.tbpos-product-tile strong{font-size:13px}.tbpos-action-dock{grid-template-columns:repeat(4,1fr);grid-template-rows:38px 49px;padding:5px}.tbpos-action-dock button{font-size:10px}.tbpos-action-dock .tbpos-checkout-big{grid-column:1/5;grid-row:2;font-size:16px}.tbpos-right-nav{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr) 132px;padding:4px}.tbpos-main-menu{display:none}.tbpos-category-list{grid-column:1}.tbpos-category-button .tbpos-icon{width:24px;height:24px}.tbpos-service-switch{grid-column:2}.tbpos-service-switch button{font-size:11px}.tbpos-modal{width:95%;padding:18px}.tbpos-choice-grid{grid-template-columns:1fr}.tbpos-payment-methods{grid-template-columns:1fr 1fr}.tbpos-manager-order{grid-template-columns:1fr 110px}.tbpos-manager-order button{grid-column:1/3}.tbpos-success-actions{grid-template-columns:1fr}.tbpos-toast{bottom:90px}}
@media(hover:hover){.tbpos-product-tile:hover,.tbpos-category-button:hover,.tbpos-rail-button:hover,.tbpos-action-dock button:hover:not(:disabled){filter:brightness(1.08)}}
.tbpos-mobile-cart-button{display:none}
@media(max-width:620px){.tbpos-mobile-cart-button{display:flex;position:absolute;z-index:320;right:8px;bottom:84px;min-height:46px;align-items:center;gap:7px;border:0;border-radius:999px;padding:8px 14px;background:var(--tbpos-purple);color:#fff;box-shadow:0 7px 24px rgba(0,0,0,.38);font-weight:900}.tbpos-mobile-cart-button .tbpos-icon{width:22px;height:22px}.tbpos-shell.is-cart-open .tbpos-mobile-cart-button{background:var(--tbpos-danger)}}
.tbpos-app.tbpos-fullscreen{position:fixed;inset:0;z-index:999999;width:100vw;height:100dvh;min-height:100dvh}
.tbpos-employee-picker{max-height:300px;overflow:auto;padding-right:2px}

/* v1.2.1 — resilient left-rail label fitting for configurable button text. */
.tbpos-left-rail{container-type:inline-size;container-name:tbpos-left-rail;min-width:0;overflow:hidden}
.tbpos-rail-button{width:100%;min-width:0;max-width:100%;overflow:hidden;grid-template-columns:minmax(24px,32px) minmax(0,1fr);gap:4px;padding:7px 7px}
.tbpos-rail-button .tbpos-icon{min-width:0;max-width:100%}
.tbpos-rail-label{display:block;min-width:0;max-width:100%;font-size:14px;line-height:.96;letter-spacing:.01em;white-space:normal;overflow:hidden;overflow-wrap:normal;word-break:normal;text-wrap:balance;text-align:left}
.tbpos-rail-label.is-force-wrap{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:1050px) and (min-width:621px){.tbpos-rail-button{grid-template-columns:1fr;grid-template-rows:auto auto;justify-items:center;text-align:center;gap:2px;padding:6px 4px}.tbpos-rail-button .tbpos-icon{width:24px;height:24px}.tbpos-rail-label{width:100%;font-size:11px;text-align:center;line-height:.94}}
@container tbpos-left-rail (max-width:95px){.tbpos-rail-button{grid-template-columns:1fr;grid-template-rows:auto auto;justify-items:center;text-align:center;gap:2px;padding:6px 4px}.tbpos-rail-button .tbpos-icon{width:24px;height:24px}.tbpos-rail-label{width:100%;font-size:11px;text-align:center;line-height:.94}}

/* v1.3.0 — customer order names + loyalty scanning/rewards. */
.tbpos-receipt-pane{grid-template-rows:55px auto minmax(0,1fr) auto 78px}
.tbpos-receipt-head{grid-row:1;min-width:0;gap:8px}
.tbpos-receipt-head>span{flex:0 0 auto}
.tbpos-order-identity{flex:1 1 auto;min-width:0;max-width:72%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:#fff;border-radius:2px;padding:5px 8px;cursor:pointer;text-align:right;overflow:hidden;touch-action:manipulation}
.tbpos-receipt-head .tbpos-order-identity strong{display:block;min-width:0;max-width:100%;border:0;padding:0;text-align:right;font-size:clamp(12px,1.15vw,18px);line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}
.tbpos-order-identity small{display:block;margin-top:2px;font-size:7px;line-height:1;letter-spacing:.06em;color:#d8cde0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbpos-order-identity:focus-visible{outline:2px solid var(--tbpos-mint);outline-offset:2px}
.tbpos-receipt-loyalty{grid-row:2;margin:0 10px 6px;min-width:0;border:0;border-radius:8px;padding:6px 9px;background:rgba(95,61,132,.12);color:#2d2033;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;gap:0 7px;text-align:left;cursor:pointer;touch-action:manipulation}
.tbpos-receipt-loyalty>span{grid-row:1/3;align-self:center;color:#d1379e}.tbpos-receipt-loyalty .tbpos-icon{width:21px;height:21px}.tbpos-receipt-loyalty strong,.tbpos-receipt-loyalty small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbpos-receipt-loyalty strong{font-size:11px}.tbpos-receipt-loyalty small{font-size:8px;color:#665c69}
.tbpos-cart-lines{grid-row:3}.tbpos-totals{grid-row:4}.tbpos-receipt-footer{grid-row:5}
.tbpos-order-tab.has-customer-name{grid-template-rows:auto minmax(0,1fr) auto}.tbpos-order-tab.has-customer-name strong{max-width:100%;font-size:clamp(9px,.9vw,12px);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}.tbpos-order-tab em{font-style:normal;font-size:7px;color:#e7528f;letter-spacing:.04em}

.tbpos-inline-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.tbpos-inline-modal-actions button{min-height:48px}
.tbpos-loyalty-member-card{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.tbpos-loyalty-member-card>div{padding:14px;border-radius:10px;background:#171519;border:1px solid #48404c}.tbpos-loyalty-member-card span{display:block;font-size:10px;letter-spacing:.1em;color:#bcb3c2}.tbpos-loyalty-member-card strong{display:block;margin-top:5px;font-size:22px;color:#fff}.tbpos-loyalty-success{padding:9px 12px;border-radius:8px;background:rgba(88,206,116,.14);color:#87e99f!important}
.tbpos-loyalty-scanner{position:relative;display:grid;place-items:center;min-height:210px;margin:14px 0;border:1px solid #514958;border-radius:12px;background:#111;overflow:hidden}.tbpos-loyalty-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s}.tbpos-loyalty-video.is-active{opacity:1}.tbpos-loyalty-camera-placeholder{position:relative;z-index:2;display:grid;justify-items:center;gap:7px;padding:25px;text-align:center;color:#d8d0dc}.tbpos-loyalty-camera-placeholder.is-hidden{display:none}.tbpos-loyalty-camera-placeholder .tbpos-icon{width:45px;height:45px;color:var(--tbpos-mint)}.tbpos-loyalty-camera-placeholder small{max-width:400px;color:#928998}.tbpos-loyalty-help{display:block;margin-top:10px;color:#9e96a2;line-height:1.35}
.tbpos-checkout-summary .is-loyalty{color:#e991d2}.tbpos-checkout-summary .tbpos-checkout-amount-due{border-top:1px solid #454047;margin-top:5px;padding-top:9px;font-size:19px}.tbpos-checkout-summary .tbpos-checkout-amount-due strong{color:var(--tbpos-mint)}
.tbpos-checkout-loyalty{margin:12px 0;padding:12px;border:1px solid #5b4f60;border-radius:10px;background:#1c191e}.tbpos-checkout-loyalty-head{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px}.tbpos-checkout-loyalty-head>span{color:#df4db3}.tbpos-checkout-loyalty-head .tbpos-icon{width:27px;height:27px}.tbpos-checkout-loyalty-head strong,.tbpos-checkout-loyalty-head small{display:block;min-width:0}.tbpos-checkout-loyalty-head small{color:#aaa1af;margin-top:2px}.tbpos-checkout-loyalty-head button,.tbpos-redeem-control button{border:1px solid #706676;border-radius:7px;background:#39333d;color:#fff;min-height:38px;padding:0 10px;font-weight:800;cursor:pointer}.tbpos-checkout-loyalty>p{margin:9px 0;color:#cfc6d2}.tbpos-checkout-loyalty>label{display:block;font-weight:800}.tbpos-redeem-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:6px}.tbpos-redeem-control input{width:100%;min-height:46px;border:1px solid #6a6070;border-radius:7px;background:#fff;color:#18151a;padding:8px 10px;font-size:18px;font-weight:800}.tbpos-checkout-loyalty label>small{display:block;margin-top:5px;color:#aaa1af;font-weight:500}.tbpos-add-loyalty{width:100%;min-height:50px;margin:10px 0;border:1px dashed #d94cad;border-radius:9px;background:rgba(217,76,173,.1);color:#f1a9da;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:900;cursor:pointer}.tbpos-add-loyalty .tbpos-icon{width:21px;height:21px}.tbpos-success-order-number{font-size:12px!important;margin-bottom:10px!important}.tbpos-success-loyalty{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px 0;padding:9px;border-radius:8px;background:rgba(217,76,173,.12);color:#f09ed7;font-weight:800}.tbpos-success-loyalty .tbpos-icon{width:20px;height:20px}

@media(max-width:760px){.tbpos-inline-modal-actions{grid-template-columns:1fr}.tbpos-loyalty-scanner{min-height:180px}.tbpos-order-identity{max-width:68%}.tbpos-receipt-head .tbpos-order-identity strong{font-size:12px}}

/* v1.4.0 — unpaid order holding, payment-state tabs, ingredients and line customisation. */
.tbpos-tab-status{position:absolute;left:-10px;top:-12px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#050505;color:var(--tbpos-purple);font-size:18px;font-weight:950;line-height:1;border:2px solid #050505;box-shadow:0 2px 5px rgba(0,0,0,.35)}
.tbpos-tab-status.is-paid{background:var(--tbpos-success);color:#102916;border-color:#102916}.tbpos-tab-status.is-unpaid{background:var(--tbpos-warning);color:#2e2705;border-color:#4b400b}.tbpos-tab-status.is-declined,.tbpos-tab-status.is-cancelled{background:var(--tbpos-danger);color:#fff;border-color:#4d1715}.tbpos-order-tab.is-paid{box-shadow:inset 0 -3px var(--tbpos-success)}.tbpos-order-tab.is-unpaid{box-shadow:inset 0 -3px var(--tbpos-warning)}.tbpos-order-tab.is-declined,.tbpos-order-tab.is-cancelled{box-shadow:inset 0 -3px var(--tbpos-danger)}
.tbpos-cart-line.is-custom{background:rgba(225,198,74,.11)}.tbpos-line-name .tbpos-line-custom{color:#7a5d00;font-weight:900;text-transform:uppercase}.tbpos-line-name .tbpos-line-note{color:#4a374f;font-weight:800;border-left:2px solid var(--tbpos-purple);padding-left:5px;margin-top:2px}
.tbpos-ingredient-section{margin:16px 0;padding:12px;border:1px solid #514958;border-radius:12px;background:#18161a}.tbpos-ingredient-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.tbpos-ingredient-head strong,.tbpos-ingredient-head small{display:block}.tbpos-ingredient-head small{margin-top:3px;color:#a49ba8}.tbpos-show-all-ingredients{min-height:42px;white-space:nowrap}.tbpos-product-ingredients,.tbpos-all-ingredients{display:grid;gap:7px}.tbpos-ingredient-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(220px,1.35fr);align-items:center;gap:10px;padding:8px;border-radius:8px;background:#242127}.tbpos-ingredient-row>div>strong,.tbpos-ingredient-row>div>small{display:block}.tbpos-ingredient-row>div>small{color:#9f96a4;font-size:11px}.tbpos-ingredient-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.tbpos-ingredient-choice{cursor:pointer}.tbpos-ingredient-choice input{position:absolute;opacity:0;pointer-events:none}.tbpos-ingredient-choice span{display:flex;align-items:center;justify-content:center;min-height:40px;border:1px solid #5e5662;border-radius:7px;padding:7px 10px;background:#333037;color:#fff;font-size:12px;font-weight:900;letter-spacing:.03em}.tbpos-ingredient-choice input:checked+span{border-color:var(--tbpos-mint);background:rgba(109,188,161,.2);box-shadow:inset 0 0 0 1px var(--tbpos-mint)}.tbpos-ingredient-choice.is-remove input:checked+span{border-color:var(--tbpos-danger);background:rgba(229,101,96,.18)}.tbpos-all-ingredients{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px;padding-top:10px;border-top:1px solid #403b43}.tbpos-ingredient-subtitle{grid-column:1/-1;font-size:11px;font-weight:900;letter-spacing:.11em;color:var(--tbpos-mint)}.tbpos-ingredient-choice.is-global span{justify-content:space-between;text-align:left}.tbpos-ingredient-choice.is-global span strong,.tbpos-ingredient-choice.is-global span small{display:block}.tbpos-ingredient-choice.is-global span small{color:#c9bdce}.tbpos-ingredient-empty{padding:10px;border-radius:8px;background:#211e23;color:#a9a1ad;font-size:12px}
.tbpos-decision-actions{display:grid;gap:9px;margin-top:18px}.tbpos-decision-actions button{width:100%;min-height:54px}.tbpos-primary.is-warning{background:var(--tbpos-warning);color:#292306}.tbpos-manager-selects{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tbpos-manager-selects select{min-width:0}
@media(max-width:760px){.tbpos-ingredient-head{align-items:stretch;flex-direction:column}.tbpos-ingredient-row{grid-template-columns:1fr}.tbpos-ingredient-actions{justify-content:flex-start}.tbpos-all-ingredients{grid-template-columns:1fr}.tbpos-manager-selects{grid-template-columns:1fr}}
.tbpos-receipt-label{display:flex;flex-direction:column;gap:3px;font-size:9px;font-weight:900;line-height:1}.tbpos-current-status{font-style:normal;font-size:7px;letter-spacing:.08em;padding:3px 5px;border-radius:999px;text-align:center;background:#444;color:#fff}.tbpos-current-status.is-paid{background:var(--tbpos-success);color:#102916}.tbpos-current-status.is-unpaid{background:var(--tbpos-warning);color:#332c08}.tbpos-current-status.is-declined,.tbpos-current-status.is-cancelled{background:var(--tbpos-danger);color:#fff}
