/* CHIBRA EPOS tablet application layer.
   Keeps the document fixed to the device viewport; only product, category and
   basket regions scroll when their own content genuinely exceeds the space. */
:root {
  --tablet-bg: #263237;
  --tablet-panel: #303d42;
  --tablet-panel-deep: #202b30;
  --tablet-line: #526167;
  --tablet-blue: #1379b2;
  --tablet-blue-active: #0d6598;
  --tablet-orange: #ef861e;
  --tablet-green: #66b33e;
  --tablet-yellow: #f3e85e;
  --tablet-key: #f5f6f4;
  --tablet-ink: #1f292d;
}
.admin-language-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 18px;border-bottom:1px solid #536267;background:#253136}
.admin-language-row>span{color:#aebabc;font-size:9px;font-weight:850;letter-spacing:.55px;text-transform:uppercase}
.language-switch{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #5d6c71;border-radius:9px;background:#182226}
.language-switch button{min-height:30px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:#aebabc;font-size:9px;font-weight:850;letter-spacing:.55px}
.language-switch button.active{background:#65af45;color:#fff;box-shadow:0 2px 7px rgba(0,0,0,.22)}
.manager-access-card{max-width:470px}
.manager-access-pin{display:grid;gap:9px;margin:22px 24px;color:#c7d1d4;font-size:12px;font-weight:800;letter-spacing:.35px}
.manager-access-pin input{min-height:58px;border:2px solid #52636a;border-radius:10px;background:#151f23;color:#fff;text-align:center;font-size:25px;font-weight:850;letter-spacing:9px}
.manager-access-pin input:focus{border-color:#71bd55;outline:3px solid rgba(113,189,85,.18)}
@media(max-width:900px){.till-header{gap:8px}.language-switch button{padding:0 7px}.service-state span{display:none}}

html,
body {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  background: var(--tablet-bg);
}

body,
button,
input,
select,
textarea {
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button {
  user-select: none;
  -webkit-user-select: none;
}

.epos-shell {
  width: 100%;
  height: 100dvh;
  min-height: 0;
  grid-template-rows: calc(50px + env(safe-area-inset-top)) minmax(0, 1fr) calc(58px + env(safe-area-inset-bottom));
  padding: 0 env(safe-area-inset-right) 0 env(safe-area-inset-left);
  background: var(--tablet-bg);
}

.till-header {
  min-height: 50px;
  padding: env(safe-area-inset-top) 12px 0;
  border: 0;
  background: linear-gradient(90deg, #17352a, #204535);
  box-shadow: 0 1px 0 #4f715f;
}

.till-header > * {
  display: flex;
}
.till-header .brand-mark{width:30px;height:30px;border-radius:8px;background:#66b33e}
.till-header .brand strong{font-size:10px}.till-header .brand small{max-width:240px;color:#b9cbbf;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.till-header .service-state{color:#b8c9c0}.till-header .service-state b{font-size:11px}
.till-header .staff>span{width:30px;height:30px;background:#3c654d}
.till-header .staff b{font-size:11px}.till-header .staff small{color:#a9bdb2;font-size:7px}
.till-header .staff>button{min-height:30px;padding:0 9px;border-color:#557565;background:#294b3a;font-size:8px}
@media(max-width:760px){.till-header .service-state span,.till-header #training-toggle,.till-header #clock-toggle{display:none}.till-header .brand small{max-width:150px}}

.workspace {
  min-height: 0;
  grid-template-columns: minmax(0, 64%) minmax(330px, 36%);
  overflow: hidden;
  background: var(--tablet-bg);
}

.sale-console {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  gap: 0;
  padding: 10px;
  overflow: hidden;
  background: var(--tablet-bg);
}

.sale-modes {
  order: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  min-height: 54px;
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  background: transparent;
}

.sale-modes button {
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  min-height: 54px;
  padding: 7px 10px;
  border: 1px solid #697b81;
  border-radius: 7px;
  background: linear-gradient(#45565b, #39494e);
  color: #fff;
  text-align: left;
  box-shadow: 0 2px 5px #1117;
}

.sale-modes button > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ffffff18;
  font-size: 16px;
}

.sale-modes button strong {
  font-size: 13px;
  font-weight: 750;
  line-height: 1.1;
  text-transform: none;
}

.sale-modes button small {
  margin-top: 3px;
  color: #c7d1d4;
  font-size: 10px;
  line-height: 1.1;
}

.sale-modes button.active {
  border-color: #b6dc98;
  background: linear-gradient(#7fbd50, #68a53d);
  box-shadow: inset 0 0 0 1px #ffffff40, 0 3px 8px #16230f80;
}

.departments {
  order: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 0 0 8px;
}

.departments button {
  min-height: 60px;
  padding: 0 10px;
  border: 1px solid #248cc4;
  border-radius: 7px;
  background: linear-gradient(#1787c2, #0d6c9f);
  color: #fff;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: .02em;
  box-shadow: 0 2px 5px #1117;
}

.departments button:first-child,
.departments button.active {
  border: 2px solid #fff;
  background: linear-gradient(#f39a38, #e87812);
  box-shadow: 0 0 0 2px #e87812, 0 3px 7px #15100a70;
}

.departments button[data-note] {
  background: linear-gradient(#586a70, #46575c);
  border-color: #73878d;
}

.tab-picker {
  order: 2;
  min-height: 50px;
  margin: 0 0 8px;
  padding: 6px;
  border: 1px solid #637278;
  border-radius: 6px;
  background: #344247;
}

.tab-picker > div:first-child {
  min-width: 125px;
}

.tab-picker span {
  font-size: 9px;
}

.tab-picker strong,
.tab-picker button {
  font-size: 12px;
}

.tab-picker button {
  min-height: 38px;
  border-radius: 5px;
}

.menu-panel {
  order: 3;
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}

.categories {
  order: 1;
  flex: 0 0 auto;
  margin: 0 0 8px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

.categories > div {
  display: flex;
  gap: 8px;
  min-width: max-content;
}

.categories button {
  min-width: 126px;
  min-height: 54px;
  padding: 8px 11px;
  border: 1px solid #5aa4ce;
  border-radius: 7px;
  background: linear-gradient(#559bc1, #3b83ac);
  color: #fff;
  text-align: center;
  box-shadow: 0 2px 4px #15252d66;
}

.categories button span {
  display: none;
}

.categories button strong {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.categories button.active {
  border-color: #b9e5fb;
  background: linear-gradient(#247ca9, #145575);
  color: #fff;
  box-shadow: inset 0 0 0 1px #d8f2ff, 0 2px 5px #10191d99;
}

.menu-heading {
  order: 2;
  min-height: 44px;
  height: 44px;
  margin: 0 0 8px;
}

.menu-heading > div:first-child {
  display: none;
}

.menu-actions {
  display: flex !important;
  width: 100%;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.product-search {
  width: min(280px, 100%);
  height: 44px;
  margin: 0;
  padding: 0 13px;
  border: 1px solid #708087;
  border-radius: 7px;
  background: #38474c;
}

.product-search span {
  font-size: 18px;
}

.product-search input {
  font-size: 13px;
}

#install-app-button {
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #7fbd50;
  border-radius: 7px;
  background: #619c3b;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

#install-app-button span {
  margin-right: 5px;
  font-size: 16px;
}

.connection-status {
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid #ee8e92;
  border-radius: 10px;
  background: #a93f47;
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  line-height: 38px;
  white-space: nowrap;
  box-shadow: 0 2px 6px #1117;
}

.product-grid {
  order: 3;
  display: grid;
  min-height: 0;
  flex: 1;
  align-content: start;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(78px, auto);
  gap: 8px;
  padding: 0 2px 5px 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
}

.product-card,
.product-card[class*=" "] {
  min-height: 78px;
  padding: 10px 11px;
  border: 1px solid #d6dcda;
  border-top: 5px solid #78909a;
  border-radius: 7px;
  background: linear-gradient(#fff, #eef1ef);
  color: var(--tablet-ink);
  text-align: left;
  box-shadow: 0 2px 5px #121a1d65;
}

.product-card strong {
  display: -webkit-box;
  margin: 0 28px 24px 0;
  overflow: hidden;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.22;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.product-card .product-icon {
  display: none;
}

.product-card .has-options {
  position: absolute;
  right: 9px;
  top: 9px;
  width: 18px;
  height: 18px;
  overflow: hidden;
  color: transparent;
}

.product-card .has-options::after {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #dcebf2;
  color: #176d99;
  content: "◆";
  font-size: 9px;
}

.product-card > b {
  left: 11px;
  bottom: 9px;
  color: #334044;
  font-size: 12px;
  font-weight: 800;
}

.product-card > i {
  right: 8px;
  bottom: 8px;
  width: 26px;
  height: 26px;
  border: 1px solid #9aabad;
  background: #fff;
  color: #3e5155;
  font-size: 17px;
  font-weight: 500;
}

.product-card:active {
  transform: scale(.97);
  filter: brightness(.94);
}

.product-card.amber { border-top-color: #e5a13d; }
.product-card.berry { border-top-color: #ce6c93; }
.product-card.blue { border-top-color: #4c94c8; }
.product-card.green { border-top-color: #78af4b; }
.product-card.clay { border-top-color: #9d755b; }
.product-card.orange { border-top-color: #e17837; }
.product-card.purple { border-top-color: #8c72bd; }

.basket {
  position: static;
  min-width: 0;
  min-height: 0;
  max-height: none;
  border-top: 0;
  border-left: 1px solid #657278;
  background: var(--tablet-panel-deep);
  box-shadow: -4px 0 14px #1117;
}

.basket > header {
  min-height: 88px;
  padding: 12px 14px;
  border-color: #536167;
  background: #29363b;
}

.basket > header > div:first-child {
  align-self: flex-end;
}

.basket > header p {
  margin-bottom: 4px;
  font-size: 8px;
}

.basket h2 {
  font-size: 16px;
  font-weight: 650;
}

.basket-head-total {
  right: 14px;
  top: 10px;
}

.basket-head-total small {
  font-size: 8px;
}

.basket-head-total strong {
  margin-top: 4px;
  font-size: 34px;
  font-weight: 450;
}

.service-price-toggle button,
.basket > header button {
  min-height: 30px;
  padding: 0 10px;
  font-size: 10px;
}

.basket-column-head {
  display: grid;
  grid-template-columns: 1fr 70px 66px;
  padding: 8px 12px;
  font-size: 9px;
}

.basket-items {
  min-height: 0;
  max-height: none;
  padding: 0 12px;
  overflow-y: auto;
  scrollbar-width: thin;
}

.basket-row {
  grid-template-columns: minmax(0, 1fr) 70px 66px;
  min-height: 62px;
  gap: 7px;
  padding: 9px 0;
}

.basket-row > div:first-child strong {
  font-size: 13px;
}

.basket-row small {
  margin-top: 4px;
  font-size: 10px;
}

.basket-row button {
  width: 30px;
  height: 34px;
  font-size: 15px;
}

.basket-row > div:nth-child(2) b,
.basket-row > b {
  font-size: 12px;
}

.empty-basket strong {
  font-size: 14px;
}

.empty-basket span {
  margin-top: 7px;
  font-size: 11px;
}

.empty-basket i {
  width: 54px;
  height: 54px;
  font-size: 23px;
}

.basket footer {
  padding: 10px 12px 12px;
  border-color: #536167;
  background: #29363b;
}

.basket-summary {
  font-size: 9px;
}

.total {
  margin: 7px 0 9px;
}

.total span {
  font-size: 12px;
}

.total strong {
  font-size: 30px;
}

.basket-tools {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  margin-top: 0;
}

.basket-tools button {
  min-height: 48px;
  border: 1px solid #d9dddb;
  border-radius: 6px;
  background: linear-gradient(#fff, #e7eae8);
  color: #344145;
  font-size: 11px;
  font-weight: 750;
  box-shadow: 0 2px 4px #1116;
}

.basket-tools button:nth-child(4) {
  grid-column: 1 / 3;
}

.basket-tools button:nth-child(5) {
  font-size: 21px;
}

.basket-actions {
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-top: 8px;
}

.basket-actions button,
.basket-actions .primary {
  min-height: 54px;
  border: 1px solid #74b94e;
  border-radius: 6px;
  background: linear-gradient(#79c24d, #5cab34);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 3px 6px #1117;
}

.basket-actions .primary {
  background: linear-gradient(#4fbd43, #35a42f);
}

.bottom-nav {
  display: flex;
  padding-bottom: env(safe-area-inset-bottom);
  border-color: #4f5c61;
  background: #1b2529;
}

.bottom-nav button,
.bottom-nav a {
  flex: 1 1 0;
  min-width: 0;
  gap: 3px;
  border-color: #3f4c50;
  color: #aebabe;
}

.bottom-nav span {
  font-size: 17px;
  line-height: 1;
}

.bottom-nav strong {
  font-size: 9px;
  font-weight: 650;
  line-height: 1.1;
}

.bottom-nav button.active {
  background: #26353a;
  color: #35baf0;
  box-shadow: inset 0 3px #28aee6;
}

.modal {
  padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
}

.config-card,
.payment-card,
.tab-card,
.service-card,
.table-actions-card,
.install-app-card {
  border-radius: 12px;
}

.config-card h2,
.tab-card h2,
.service-card h2,
.install-app-card h2 {
  font-size: 26px;
}

.config-card header span,
.payment-card header span,
.tab-card header span,
.install-app-card header span {
  font-size: 12px;
}

.config-group h3 {
  font-size: 15px;
}

.config-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.config-options button {
  min-height: 62px;
  padding: 10px 12px;
  border-radius: 7px;
}

.config-options button strong {
  font-size: 13px;
}

.config-options button small {
  font-size: 10px;
}

.config-card > footer button,
.payment-card > footer button,
.tab-card > footer button,
.payment-methods button,
.tip-control button {
  min-height: 50px;
  border-radius: 7px;
  font-size: 12px;
}

.payment-methods button {
  min-height: 86px;
}

.payment-methods span strong {
  font-size: 16px;
}

.payment-methods span small {
  font-size: 11px;
}

.training-banner {
  min-height: calc(50px + env(safe-area-inset-bottom));
  padding: 0 16px env(safe-area-inset-bottom);
  font-size: 12px;
}

/* Touch-first product configuration shared with the Mini EPOS flow. */
.config-card {
  width: min(860px, 95vw);
  border: 1px solid #4d6159;
  border-radius: 18px;
  background: #182620;
}

.config-card > header {
  position: sticky;
  top: 0;
  z-index: 4;
  padding: 18px 22px;
  background: #14211c;
}

.config-card > header p {
  color: #83dd61;
  font-size: 10px;
}

.config-card > header span {
  color: #b6c7be;
  font-size: 12px;
}

.config-progress {
  position: sticky;
  top: 84px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 14px 18px 4px;
  padding: 12px 15px;
  border: 1px solid #496257;
  border-radius: 12px;
  background: #24372f;
  box-shadow: 0 8px 20px #0004;
}

.config-progress div {
  display: grid;
  gap: 3px;
}

.config-progress small {
  color: #80d75d;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
}

.config-progress strong,
.config-progress span {
  color: #c7d3cd;
  font-size: 12px;
}

.config-progress span b {
  margin-left: 6px;
  color: #b8ef9f;
  font-size: 19px;
}

.config-groups {
  display: grid;
  gap: 13px;
  padding: 12px 18px 18px;
}

.config-group {
  padding: 14px;
  border: 1px solid #3e5149;
  border-radius: 15px;
  background: #1e2f28;
}

.config-group.missing { border-color: #c77e3e; }
.config-group.complete { border-color: #70c153; }

.config-group > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.config-group > header > div {
  display: flex;
  align-items: center;
  gap: 11px;
}

.config-group > header > div > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #30443a;
  color: #b9c9c1;
  font-size: 13px;
  font-weight: 900;
}

.config-group.complete > header > div > span {
  background: #79d653;
  color: #102015;
}

.config-group h3 {
  margin: 0 0 3px;
  color: #fff;
  font-size: 16px;
}

.config-group header small {
  color: #93a69d;
  font-size: 11px;
}

.config-group > header > b {
  padding: 6px 8px;
  border-radius: 7px;
  background: #2d4037;
  color: #afbeb7;
  font-size: 9px;
  letter-spacing: .08em;
}

.config-group.required > header > b {
  background: #593d28;
  color: #ffd4aa;
}

.config-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.config-options button {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 68px;
  padding: 10px 12px;
  border: 1px solid #465c52;
  border-radius: 11px;
  background: #263a32;
  color: #fff;
}

.config-options button > i {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border: 2px solid #6d8178;
  border-radius: 8px;
  color: transparent;
  font-style: normal;
  font-weight: 900;
}

.config-group.single .config-options button > i {
  border-radius: 50%;
}

.config-options button > span {
  min-width: 0;
  text-align: left;
}

.config-options button strong {
  color: #fff;
  font-size: 14px;
}

.config-options button small {
  color: #9eafa7;
  font-size: 10px;
}

.config-options button > b {
  color: #f2c58e;
  font-size: 13px;
}

.config-options button > b.included { color: #b4e99e; }

.config-options button.selected {
  border-color: #7bd858;
  background: #355441;
  color: #fff;
  box-shadow: inset 0 0 0 1px #7bd858;
}

.config-options button.selected > i {
  border-color: #7bd858;
  background: #7bd858;
  color: #102015;
}

.config-group > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  color: #93a69d;
  font-size: 10px;
}

.config-group > footer button {
  padding: 7px 9px;
  border: 0;
  background: transparent;
  color: #c3d1ca;
  font-size: 10px;
  font-weight: 800;
}

.config-card > footer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  padding: 13px 18px max(13px, env(safe-area-inset-bottom));
  background: #14211c;
  box-shadow: 0 -10px 24px #0006;
}

.config-card > footer .confirm {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 260px;
  border-color: #79d653;
  border-radius: 9px;
  background: #79d653;
  color: #102015;
  font-size: 13px;
}

.config-card > footer .confirm strong {
  font-size: 17px;
}

@media (min-width: 1100px) {
  .config-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.epos-shell.training {
  padding-bottom: 50px;
}

.install-app-card {
  width: min(560px, 94vw);
  overflow: hidden;
  border: 1px solid #63747a;
  background: #2d3a3f;
  box-shadow: 0 25px 80px #000a;
}

.install-app-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 20px 22px;
  background: linear-gradient(135deg, #4db45d, #2d8f4e);
}

.install-app-card header p {
  margin: 0 0 5px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
}

.install-app-card h2 {
  margin: 0 0 4px;
}

.install-app-card header button {
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 28px;
}

.install-app-content {
  padding: 22px;
}

.install-app-icon {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.install-app-icon span {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 12px;
  background: #65b744;
  color: #fff;
  font-size: 27px;
  font-weight: 900;
  box-shadow: 0 4px 10px #1116;
}

.install-app-icon strong {
  font-size: 18px;
}

.install-app-content ol {
  margin: 0;
  padding-left: 25px;
}

.install-app-content li {
  margin: 11px 0;
  color: #e3e9ea;
  font-size: 14px;
  line-height: 1.45;
}

.install-app-content p {
  margin: 18px 0 0;
  padding: 12px 14px;
  border-left: 4px solid #5ab9e5;
  background: #223035;
  color: #b9c6c9;
  font-size: 12px;
  line-height: 1.5;
}

.install-app-card > footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 14px 18px;
  border-top: 1px solid #536167;
  background: #263237;
}

.install-app-card > footer button {
  min-height: 48px;
  padding: 0 17px;
  border: 1px solid #68787d;
  border-radius: 7px;
  background: #38474c;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.install-app-card > footer .confirm {
  border-color: #70b94a;
  background: #62aa3e;
}

@media (max-width: 900px) {
  .workspace {
    grid-template-columns: minmax(0, 63%) minmax(285px, 37%);
  }

  .sale-console {
    padding: 8px;
  }

  .sale-modes,
  .departments,
  .categories > div,
  .product-grid {
    gap: 6px;
  }

  .sale-modes button {
    min-height: 50px;
    padding: 6px 8px;
  }

  .sale-modes button small {
    display: none;
  }

  .departments button {
    min-height: 54px;
    font-size: 13px;
  }

  .categories button {
    min-width: 112px;
    min-height: 50px;
  }

  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(76px, auto);
  }

  .product-search {
    width: min(220px, 100%);
  }

  #install-app-button {
    padding: 0 10px;
  }

  .basket-tools button {
    min-height: 45px;
    font-size: 10px;
  }

  .basket-actions button,
  .basket-actions .primary {
    min-height: 50px;
  }
}

@media (max-height: 680px) {
  .sale-modes,
  .sale-modes button {
    min-height: 46px;
  }

  .departments button {
    min-height: 50px;
  }

  .categories button {
    min-height: 46px;
  }

  .menu-heading {
    min-height: 40px;
    height: 40px;
  }

  .product-search,
  #install-app-button {
    height: 40px;
    min-height: 40px;
  }

  .product-grid {
    grid-auto-rows: minmax(68px, auto);
  }

  .basket > header {
    min-height: 76px;
  }

  .basket-row {
    min-height: 52px;
  }

  .total {
    display: none;
  }

  .basket-tools button {
    min-height: 40px;
  }

  .basket-actions button,
  .basket-actions .primary {
    min-height: 46px;
  }
}

/* Clear, deliberate payment flow shared in spirit with Mini EPOS. */
.payment-card {
  width: min(920px, 96vw);
  max-height: 94vh;
  border: 1px solid #50645b;
  border-radius: 18px;
  background: #182620;
}

.payment-card > header {
  position: sticky;
  top: 0;
  z-index: 4;
  padding: 18px 22px;
  border-bottom-color: #3b5046;
  background: #14221d;
}

.payment-card > header h2 {
  margin: 4px 0 2px;
  color: #a5e984;
  font-size: 42px;
  font-weight: 800;
  line-height: 1;
}

.tablet-payment-body {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 15px;
  padding: 16px 18px;
}

.tablet-payment-main,
.tablet-payment-options {
  min-width: 0;
  border: 1px solid #42574d;
  border-radius: 15px;
  background: #1d2e27;
}

.tablet-payment-main {
  padding: 15px;
}

.payment-method-heading {
  display: grid;
  gap: 4px;
  margin: 14px 0 9px;
}

.payment-method-heading span {
  color: #8fd66d;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .14em;
}

.payment-method-heading strong {
  font-size: 17px;
}

.tablet-payment-main .payment-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0;
}

.tablet-payment-main .payment-methods button {
  min-height: 98px;
  border-radius: 13px;
}

.tablet-payment-main .payment-methods button:first-child {
  border-color: #3d88b1;
  background: linear-gradient(135deg, #24475a, #203743);
}

.tablet-payment-main .payment-methods button:last-child {
  border-color: #659449;
  background: linear-gradient(135deg, #304b32, #273c2c);
}

.tablet-payment-main .payment-methods i {
  border-radius: 12px;
}

.tablet-payment-main .payment-methods span strong {
  font-size: 19px;
  font-weight: 800;
}

.tablet-payment-main .payment-methods span small {
  font-size: 11px;
  line-height: 1.35;
}

.tablet-payment-main .payment-breakdown {
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  padding: 0 0 13px;
  border-top: 0;
  border-bottom: 1px solid #40534a;
}

.tablet-payment-main .payment-breakdown span {
  display: grid;
  gap: 5px;
  padding: 10px;
  border-radius: 10px;
  background: #263a31;
  font-size: 9px;
}

.tablet-payment-main .payment-breakdown b {
  font-size: 14px;
}

.tablet-payment-main .cash-tender-control {
  margin: 13px 0 0;
  padding-top: 13px;
  border-top: 1px solid #40534a;
}

#split-bill-toggle[hidden] {
  display: none !important;
}

.tablet-payment-confirm {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 13px;
  border: 1px solid #5b775f;
  border-radius: 13px;
  background: #24392f;
}

.tablet-payment-confirm > button:first-child {
  justify-self: start;
  border: 0;
  background: transparent;
  color: #c1cec7;
  font-size: 11px;
  font-weight: 800;
}

.tablet-payment-confirm > div {
  display: grid;
  grid-template-columns: 45px 1fr;
  align-items: center;
  gap: 11px;
}

.tablet-payment-confirm > div i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #365544;
  color: #a2e681;
  font-size: 20px;
  font-style: normal;
}

.tablet-payment-confirm > div span {
  display: grid;
  gap: 3px;
}

.tablet-payment-confirm > div strong {
  font-size: 15px;
}

.tablet-payment-confirm > div small {
  color: #adbbb4;
  font-size: 10px;
}

.tablet-payment-confirm > button:last-child {
  min-height: 53px;
  border: 0;
  border-radius: 11px;
  background: #86d75e;
  color: #142318;
  font-size: 12px;
  font-weight: 950;
}

.tablet-payment-main .cash-tender-control input {
  height: 50px;
  border-radius: 10px;
  font-size: 19px;
}

.tablet-payment-options {
  align-self: start;
  overflow: hidden;
}

.tablet-payment-options > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 70px;
  padding: 13px 15px;
  cursor: pointer;
}

.tablet-payment-options > summary::-webkit-details-marker {
  display: none;
}

.tablet-payment-options > summary span {
  display: grid;
  gap: 4px;
}

.tablet-payment-options > summary strong {
  font-size: 14px;
}

.tablet-payment-options > summary small {
  color: #a2b3aa;
  font-size: 10px;
  line-height: 1.35;
}

.tablet-payment-options > summary > b {
  color: #91dc6e;
  font-size: 22px;
}

.tablet-payment-options[open] > summary > b {
  transform: rotate(45deg);
}

.tablet-payment-options .payment-controls {
  padding: 13px 15px 6px;
  border-top: 1px solid #40534a;
}

.payment-card > footer {
  position: sticky;
  bottom: 0;
  padding: 11px 18px;
  background: #14221d;
}

@media (max-width: 760px) {
  .tablet-payment-body {
    grid-template-columns: 1fr;
  }

  .tablet-payment-main .payment-breakdown {
    grid-template-columns: repeat(2, 1fr);
  }

  .tablet-payment-main .payment-methods {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .workspace {
    grid-template-columns: 1fr;
  }

  .sale-console {
    padding-bottom: 270px;
  }

  .basket {
    position: fixed;
    left: env(safe-area-inset-left);
    right: env(safe-area-inset-right);
    bottom: calc(58px + env(safe-area-inset-bottom));
    z-index: 10;
    max-height: 270px;
    border-top: 1px solid #657278;
    border-left: 0;
  }

  .basket > header {
    min-height: 66px;
  }

  .basket-column-head,
  .basket-tools,
  .total {
    display: none;
  }

  .basket-items {
    max-height: 78px;
  }

  .basket-actions button,
  .basket-actions .primary {
    min-height: 46px;
  }

  .bottom-nav {
    display: flex;
    overflow-x: auto;
  }

  .bottom-nav button,
  .bottom-nav a {
    flex: 0 0 74px;
  }
}

@media (display-mode: standalone) {
  #install-app-button {
    display: none !important;
  }
}

#tab-options .tab-overdue{border-color:#ff9f43;box-shadow:inset 4px 0 #ff9f43}
#tab-options .tab-overdue span{color:#ffbf75}
.customer-payment-fields{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
.customer-payment-fields label{display:grid;gap:5px}

/* Clear tablet hierarchy: sale type > department > category > product. */
body,
button,
input,
select,
textarea {
  font-family: "Avenir Next", Avenir, Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.sale-modes button,
.departments button {
  border-radius: 15px;
}

.sale-modes,
.sale-modes button {
  min-height: 58px;
}

.departments button {
  min-height: 64px;
  border-width: 1px;
  border-color: #3598ca;
  border-radius: 16px;
  background: linear-gradient(145deg, #1c92ca, #0b6c9e);
  font-size: 16px;
  letter-spacing: .035em;
}

.departments button[data-department="Food"] {
  border-color: #f3a653;
  background: linear-gradient(145deg, #f19a3c, #d97218);
}

.departments button[data-department="Other"] {
  border-color: #9b83ce;
  background: linear-gradient(145deg, #8b71be, #634f98);
}

.departments button[data-note] {
  border-color: #df7692;
  background: linear-gradient(145deg, #cc6683, #9e435f);
}

.departments button:first-child,
.departments button.active {
  border: 2px solid #fff;
  background: linear-gradient(145deg, #83cb58, #4b9633);
  box-shadow: 0 0 0 2px #6eb64a, 0 4px 9px #1118;
}

.departments button[data-department="Food"].active {
  background: linear-gradient(145deg, #f19a3c, #d97218);
  box-shadow: 0 0 0 2px #f19a3c, 0 4px 9px #1118;
}

.departments button[data-department="Other"].active {
  background: linear-gradient(145deg, #9b82ce, #684fa2);
  box-shadow: 0 0 0 2px #886fba, 0 4px 9px #1118;
}

.categories button {
  min-width: 112px;
  min-height: 46px;
  padding: 7px 10px;
  border-radius: 13px;
  font-size: 11px;
}

.categories button strong {
  font-size: 11px;
}

.categories .category-tone-blue { border-color: #4aa0d1; background: linear-gradient(#4d9fce, #327ead); }
.categories .category-tone-cyan { border-color: #47b7bd; background: linear-gradient(#47aeb5, #2f858e); }
.categories .category-tone-purple { border-color: #9d83d0; background: linear-gradient(#9279c3, #6955a0); }
.categories .category-tone-green { border-color: #79bd58; background: linear-gradient(#75b954, #4f9138); }
.categories .category-tone-coral { border-color: #e47f68; background: linear-gradient(#dc7963, #b75448); }
.categories .category-tone-berry { border-color: #dc759d; background: linear-gradient(#d36d95, #a84870); }
.categories .category-tone-amber { border-color: #e8aa48; background: linear-gradient(#e7a342, #c77a21); }

/* High-contrast tile lettering: bright colours use dark ink; deep colours use white. */
.departments button:first-child,
.departments button[data-department="Food"],
.departments button[data-department="Food"].active {
  color: #172116;
  text-shadow: none;
}
.departments button[data-department="Other"],
.departments button[data-note],
.departments button[data-department="Other"].active {
  color: #fff;
}
.categories .category-tone-amber,
.categories .category-tone-green,
.categories .category-tone-cyan,
.categories .category-tone-blue {
  color: #142126;
  text-shadow: none;
}
.categories .category-tone-purple {
  border-color: #8067b6;
  background: linear-gradient(#745ca9, #503c81);
  color: #fff;
}
.categories .category-tone-coral {
  border-color: #c36552;
  background: linear-gradient(#aa4e3e, #80352d);
  color: #fff;
}
.categories .category-tone-berry {
  border-color: #b95379;
  background: linear-gradient(#a84269, #742d4a);
  color: #fff;
}
.categories button.category-tone-amber.active,
.categories button.category-tone-green.active,
.categories button.category-tone-cyan.active,
.categories button.category-tone-blue.active {
  color: #fff;
}

.categories button.active {
  border: 2px solid #fff;
  background: linear-gradient(#247ca9, #145575);
  color: #fff;
  filter: none;
  box-shadow: 0 0 0 2px #ffffff4d, 0 4px 8px #1118;
}

.product-grid {
  grid-auto-rows: minmax(68px, auto);
  gap: 7px;
}

.product-card,
.product-card[class*=" "] {
  min-height: 68px;
  padding: 8px 9px;
  border-radius: 12px;
  border-top-width: 4px;
}

.product-card strong {
  margin: 0 24px 19px 0;
  font-size: 12px;
}

.product-card > b {
  left: 9px;
  bottom: 7px;
  font-size: 11px;
}

.product-card > i {
  right: 7px;
  bottom: 7px;
  width: 23px;
  height: 23px;
  font-size: 15px;
}

.basket-head-total strong {
  margin-top: 1px;
  font-size: 46px;
  font-weight: 600;
  letter-spacing: -.035em;
}

.basket-line-shell {
  position: relative;
  min-height: 62px;
  overflow: hidden;
  border-bottom: 1px solid #515e61;
  border-radius: 10px;
}

.basket-line-shell + .basket-line-shell {
  margin-top: 3px;
}

.basket-row-actions {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  display: grid;
  width: 150px;
  grid-template-columns: 1fr 1fr;
}

.saved-shell .basket-row-actions {
  width: 82px;
  grid-template-columns: 1fr;
}

.basket-row-actions button {
  width: auto;
  height: auto;
  min-width: 0;
  border: 0;
  border-radius: 0;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.basket-row-actions .edit-line { background: #287ba8; }
.basket-row-actions .remove-line,
.basket-row-actions .void-line { background: #b9474d; }

.basket-row .edit-item-inline {
  border-color: #507c5d;
  background: #294737;
  color: #baf2a3;
  font-size: 15px;
  font-weight: 900;
}

.basket-line-shell .basket-row {
  position: relative;
  z-index: 1;
  min-height: 62px;
  padding: 8px 13px 8px 8px;
  border-bottom: 0;
  border-radius: 10px;
  background: #202b30;
  touch-action: pan-y;
  transition: transform 180ms cubic-bezier(.2,.75,.25,1);
  will-change: transform;
}

.basket-line-shell.saved-shell .basket-row {
  background: #26343a;
}

.basket-line-shell.new-shell.swipe-open .basket-row { transform: translateX(-150px); }
.basket-line-shell.saved-shell.swipe-open .basket-row { transform: translateX(-82px); }

.swipe-hint {
  position: absolute;
  right: 3px;
  top: 50%;
  color: #839398;
  font-size: 18px;
  line-height: 1;
  transform: translateY(-50%);
}

@media (max-height: 680px) and (min-width: 701px) {
  .departments button { min-height: 54px; }
  .categories button { min-height: 42px; }
  .product-grid { grid-auto-rows: minmax(62px, auto); }
  .product-card,
  .product-card[class*=" "] { min-height: 62px; }
  .basket-head-total strong { font-size: 40px; }
}

.product-card .stock-pill {
  position: absolute;
  right: 8px;
  top: 7px;
  z-index: 2;
  padding: 3px 6px;
  border-radius: 999px;
  background: #d98925;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow: 0 1px 3px #1115;
}

.product-card .stock-pill.out {
  background: #b63d45;
}

.product-card.stock-warning .has-options {
  right: 8px;
  top: 31px;
}

.notice.with-action {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-radius: 10px;
  box-shadow: 0 5px 16px #1118;
}

.notice.with-action span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notice.with-action button {
  min-width: 68px;
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid #d6f0da;
  border-radius: 9px;
  background: #f5fff6;
  color: #246f34;
  font-size: 10px;
  font-weight: 900;
}

.tab-picker .delete-tab-button {
  border-color: #d36b70;
  background: #9d3f46;
  color: #fff;
}

.tab-card > footer .danger-confirm {
  border-color: #c94f56;
  background: #b84249;
  color: #fff;
}

/* Service layout: persistent category rail, central product grid and sale at right. */
.menu-panel {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
}

.menu-heading {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 8;
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
}

.menu-browser {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-columns: calc((100% - 24px) / 4) minmax(0, 1fr);
  gap: 8px;
  overflow: hidden;
}

.menu-browser .categories {
  order: initial;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 1px 0 5px;
  overflow-x: hidden;
  overflow-y: auto;
}

.menu-browser .categories > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.menu-browser .categories button {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 60px;
  flex: 0 0 auto;
  padding: 8px 10px;
  place-items: center;
  text-align: center;
}

.menu-browser .categories button strong {
  display: block;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}

.menu-browser .product-grid {
  order: initial;
  min-width: 0;
  padding-right: 5px;
}

.products-browser {
  min-width: 0;
  min-height: 0;
  overflow: auto;
}

.product-search-panel {
  position: sticky;
  top: 0;
  z-index: 4;
  margin: 0 5px 9px 0;
  padding: 8px;
  border: 1px solid #60747c;
  border-radius: 12px;
  background: #202c31;
  box-shadow: 0 5px 14px #10171a99;
}

.product-search-panel .product-search {
  width: 100%;
  height: 50px;
  border-color: #75bddd;
  border-radius: 9px;
  background: #fff;
  color: #1e2a2f;
}

.product-search-panel .product-search span {
  color: #266b8e;
  font-size: 22px;
}

.product-search-panel .product-search input {
  color: #1e2a2f;
  font-size: 15px;
  font-weight: 700;
}

.product-search-panel .product-search input::placeholder { color: #66777d; }
.product-grid .search-empty { grid-column: 1 / -1; min-height: 230px; }
.product-grid .search-product-card { border-top-color: #2b8fbd; background: linear-gradient(#f7fcff, #dceef6); color: #1f343d; }
.product-grid .search-product-card .product-icon { color: #267da5; }
.product-grid .search-product-card > b { color: #315765; }
.product-grid .search-product-card > i { border-color: #4c94b5; color: #216f94; }

/* Tabs are an intentional overlay and never consume menu space. */
.tab-picker-modal {
  position: fixed;
  inset: 0;
  z-index: 35;
  display: grid;
  min-height: 0;
  margin: 0;
  padding: 20px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: #080c11d9;
}

.tab-picker-card {
  display: flex;
  width: min(760px, 94vw);
  max-height: min(720px, 90dvh);
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #56666c;
  border-radius: 16px;
  background: #263237;
  box-shadow: 0 24px 75px #000a;
}

.tab-picker-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  border-bottom: 1px solid #526167;
  background: #202b30;
}

.tab-picker-card > header p {
  margin: 0 0 5px;
  color: #71bee5;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
}

.tab-picker-card > header h2 {
  margin: 0;
  font-size: 24px;
}

.tab-picker-card > header span {
  display: block;
  margin-top: 5px;
  color: #9eabad;
  font-size: 11px;
}

.tab-picker-card > header button {
  width: 44px;
  min-height: 44px;
  border: 0;
  border-radius: 50%;
  background: #354348;
  color: #fff;
  font-size: 26px;
}

.tab-picker-options {
  display: grid;
  min-height: 170px;
  padding: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-content: start;
  gap: 10px;
  overflow-y: auto;
}

.tab-picker-options button {
  display: flex;
  min-width: 0;
  min-height: 76px;
  padding: 12px 14px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border: 1px solid #607177;
  border-radius: 12px;
  background: linear-gradient(145deg, #3b4a4f, #303d42);
  color: #fff;
  text-align: left;
}

.tab-picker-options button strong {
  overflow: hidden;
  max-width: 100%;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tab-picker-options button span {
  margin-top: 7px;
  color: #b4c0c3;
  font-size: 11px;
}

.tab-picker-options button.selected {
  border-color: #a7d184;
  background: linear-gradient(145deg, #6eb247, #4e8e31);
  box-shadow: inset 0 0 0 1px #dff0d233;
}

.empty-tab-list {
  grid-column: 1 / -1;
  display: grid;
  min-height: 150px;
  place-content: center;
  color: #94a2a6;
  text-align: center;
}

.empty-tab-list strong {
  color: #fff;
  font-size: 18px;
}

.empty-tab-list span {
  margin-top: 7px;
  font-size: 12px;
}

.tab-picker-card > footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 15px 18px;
  border-top: 1px solid #526167;
  background: #202b30;
}

.tab-picker-card > footer button {
  min-height: 48px;
  padding: 0 17px;
  border: 1px solid #627277;
  border-radius: 10px;
  background: #37454a;
  color: #fff;
  font-size: 12px;
  font-weight: 850;
}

.tab-picker-card > footer .new-tab-button {
  border-color: #78bb54;
  background: #61a43d;
}

.tab-picker-card > footer .delete-tab-button {
  margin-right: auto;
  border-color: #c76167;
  background: #9d3f46;
}

@media (max-width: 700px) {
  .menu-panel {
    grid-template-rows: 40px auto minmax(0, 1fr);
  }

  .menu-browser {
    display: contents;
  }

  .menu-browser .categories {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .menu-browser .categories > div {
    flex-direction: row;
    min-width: max-content;
  }

  .menu-browser .categories button {
    width: auto;
    min-width: 130px;
  }

  .tab-picker-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.till-admin-card{width:min(920px,96vw)}
.till-admin-grid{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(440px,1.4fr);gap:14px;padding:16px}
.till-admin-section{padding:16px;border:1px solid #536166;border-radius:11px;background:#263236}
.till-admin-section>p{margin:0 0 14px;color:#95a4a8;font-size:10px;font-weight:850;letter-spacing:.12em}
.operator-identity{display:flex;align-items:center;gap:12px;margin-bottom:16px}.operator-identity>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#337d50;color:#fff;font-weight:850}.operator-identity strong,.operator-identity small{display:block}.operator-identity strong{font-size:17px}.operator-identity small{margin-top:4px;color:#9dabad;font-size:11px}
.operator-options{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:12px}.operator-options button{min-height:48px;padding:7px;border:1px solid #526166;border-radius:8px;background:#344247;color:#fff;font-weight:750}.operator-options button.selected{border-color:#4db7e5;background:#246f96;box-shadow:inset 0 0 0 1px #75cef2}
.operator-admin label,.report-admin label{color:#aeb9bc;font-size:10px;font-weight:750}.operator-admin input,.report-admin input{display:block;width:100%;height:42px;margin-top:6px;padding:0 10px;border:1px solid #5a686d;border-radius:7px;background:#1d272b;color:#fff}
.operator-admin button,.report-admin>button{width:100%;min-height:52px;margin-top:9px;border:1px solid #5a696e;border-radius:8px;background:#344247;color:#fff;font-weight:800}.operator-admin .secondary-danger{border-color:#9c4b50;background:#543237;color:#ffc4c6}.operator-actions>small{display:block;margin-top:12px;color:#91a0a4;line-height:1.45}
.admin-report-fields,.z-report-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.report-admin .x-report-button{border-color:#3b8bb8;background:#286b91}.report-admin .z-report-button{border-color:#bb7d31;background:#a86524}.report-admin button strong,.report-admin button small{display:block}.report-admin button small{margin-top:3px;color:#e2edf0;font-size:9px}.z-report-fields{margin-top:14px}.report-admin .z-confirmation{display:flex;align-items:center;gap:8px;margin:12px 0 2px}.report-admin .z-confirmation input{width:20px;height:20px;margin:0}
.manager-report-result{margin:0 16px 16px;padding:14px 16px;border:1px solid #4f6268;border-radius:10px;background:#1b2529}.manager-report-result header{display:flex;justify-content:space-between;gap:12px;margin-bottom:11px}.manager-report-result header strong{font-size:18px}.manager-report-result header span{color:#8fd1f0;font-size:11px}.manager-report-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.manager-report-totals div{padding:10px;border-radius:7px;background:#2b383d}.manager-report-totals small,.manager-report-totals strong{display:block}.manager-report-totals small{color:#91a0a4;font-size:9px}.manager-report-totals strong{margin-top:5px;font-size:17px}
@media(max-width:760px){.till-admin-grid{grid-template-columns:1fr}.admin-report-fields,.z-report-fields{grid-template-columns:1fr}.manager-report-totals{grid-template-columns:repeat(2,1fr)}}

/* One-task-at-a-time till administration. */
.till-admin-card{width:min(780px,96vw);max-height:min(760px,92dvh);overflow:auto}
.admin-login-view,.admin-menu-view,.admin-detail-view{padding:18px}
.admin-login-view{width:min(520px,100%);margin:auto}
.till-admin-section h3{margin:0 0 5px;color:#fff;font-size:21px}.admin-intro{display:block;margin-bottom:17px;color:#b7c2c5;font-size:12px;line-height:1.45}
.admin-menu-identity{margin:0 0 15px;padding:13px 15px;border:1px solid #54646a;border-radius:12px;background:#202b30}
.admin-function-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-function-grid button,.admin-function-grid a{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;align-items:center;min-height:104px;padding:14px 16px;border:1px solid #5a6a70;border-radius:13px;background:#2c393e;color:#fff;text-align:left;text-decoration:none}
.admin-function-grid button>span,.admin-function-grid a>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#1f6e98;color:#fff;font-size:22px}.admin-function-grid button:nth-child(2)>span{background:#24739d}.admin-function-grid button:nth-child(3)>span{background:#9b5b20}.admin-function-grid button:nth-child(4)>span{background:#327c4a}.admin-function-grid button:nth-child(5)>span{background:#8d5a25}.admin-function-grid button:nth-child(6)>span{background:#a33c42}.admin-function-grid a:nth-child(7)>span{background:#6953a3}
.admin-function-grid button strong,.admin-function-grid a strong{font-size:16px}.admin-function-grid button small,.admin-function-grid a small{margin-top:5px;color:#bdc8cb;font-size:10px;line-height:1.3}
.admin-function-grid button:active,.admin-function-grid a:active{transform:scale(.985);filter:brightness(1.12)}
.admin-function-grid .business-logout{border-color:#805256;background:#3c2b2d}.admin-function-grid .business-logout>span{background:#8f3e44;color:#fff}.admin-function-grid .business-logout small{color:#e3bfc1}
.admin-back{min-height:40px;margin-bottom:11px;padding:0 14px;border:1px solid #63747a;border-radius:9px;background:#303e43;color:#fff;font-size:10px;font-weight:850;letter-spacing:.06em}
.admin-detail-view>.till-admin-section{padding:19px}
.admin-report-fields,.z-report-fields,.quick-product-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.quick-product-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.operator-admin label,.report-admin label,.quick-product-admin label{color:#d4dcde;font-size:10px;font-weight:750}
.operator-admin input,.report-admin input,.quick-product-admin input,.quick-product-admin select{display:block;width:100%;height:44px;margin-top:6px;padding:0 11px;border:1px solid #718087;border-radius:8px;background:#182226;color:#fff}
.operator-admin input:focus,.report-admin input:focus,.quick-product-admin input:focus,.quick-product-admin select:focus{outline:3px solid #57b8e5;outline-offset:1px;border-color:#91d5f3}
.quick-access-choice{display:flex!important;align-items:center;align-self:end;gap:10px;min-height:44px;padding:0 12px;border:1px solid #718087;border-radius:8px;background:#233136}.quick-access-choice input{width:21px;height:21px;margin:0}.quick-access-choice span{font-size:12px}
.operator-admin button,.report-admin>button,.quick-product-admin>button{width:100%;min-height:54px;margin-top:12px;border:1px solid #6d7d83;border-radius:9px;background:#34454a;color:#fff;font-weight:850}
.report-admin .x-report-button{border-color:#54a9d3;background:#246f96}.report-admin .z-report-button{border-color:#d18b3e;background:#9a561a}.quick-product-admin .quick-product-button{border-color:#63aa77;background:#2f7848}
.report-admin button small,.quick-product-admin button small{display:block;margin-top:4px;color:#edf4f5;font-size:9px}
.manager-report-result{margin:14px 0 0}
@media(max-width:760px){.admin-function-grid{grid-template-columns:1fr}.admin-report-fields,.z-report-fields,.quick-product-fields{grid-template-columns:1fr}.manager-report-totals{grid-template-columns:repeat(2,1fr)}}

.printer-admin{display:grid;gap:14px}.printer-admin[hidden]{display:none}.printer-admin>p,.printer-admin>h3,.printer-admin>.admin-intro{margin-bottom:0}
.printer-status-card{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #58676c;border-radius:12px;background:#1e292d}.printer-status-card>span{font-size:20px;color:#eea83a}.printer-status-card.ready>span{color:#73d27f}.printer-status-card.error>span{color:#ff6c67}.printer-status-card div{display:grid;gap:4px}.printer-status-card strong{color:#fff;font-size:15px}.printer-status-card small{color:#b8c5c8;font-size:11px;line-height:1.35}
.printer-device-choice{display:grid;gap:7px;color:#dce4e6;font-size:12px;font-weight:750}.printer-device-choice select{min-height:48px;padding:0 13px;border:1px solid #64757b;border-radius:10px;background:#182327;color:#fff;font:inherit}
.printer-test-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.printer-test-actions button,.launch-star-browser{display:grid;gap:5px;justify-items:start;min-height:68px;padding:13px 15px;border:1px solid #64757b;border-radius:11px;background:#2c3a3f;color:#fff;text-align:left;text-decoration:none}.printer-test-actions button:first-child{background:#287347;border-color:#58a66f}.printer-test-actions button:last-child{background:#86521f;border-color:#ba7b39}.printer-test-actions strong,.launch-star-browser strong{font-size:13px}.printer-test-actions small,.launch-star-browser small{color:#d3dddf;font-size:10px;line-height:1.3}.launch-star-browser{background:#176d9b;border-color:#3d95c1}
.printer-setup-steps{margin:0;padding:12px 12px 12px 32px;border:1px solid #4d5d62;border-radius:11px;color:#c5d0d3;font-size:11px;line-height:1.55}.printer-setup-steps li+li{margin-top:4px}
@media(max-width:620px){.printer-test-actions{grid-template-columns:1fr}}

.offline-status-button{position:fixed;z-index:28;top:48px;left:50%;transform:translateX(-50%);min-height:36px;padding:0 18px;border:2px solid #fff;border-radius:18px;background:#b3393f;color:#fff;font-size:11px;font-weight:900;letter-spacing:.05em;box-shadow:0 6px 24px #0008}.offline-status-button.pending-online{background:#a86d1f}.offline-status-button:active{transform:translateX(-50%) scale(.98)}
.offline-admin{display:grid;gap:14px}.offline-admin[hidden]{display:none}.offline-admin>p,.offline-admin>h3,.offline-admin>.admin-intro{margin-bottom:0}.offline-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.offline-stat-grid>div{display:grid;gap:5px;padding:13px;border:1px solid #56676c;border-radius:11px;background:#1d292d}.offline-stat-grid span{color:#aebcc0;font-size:10px;font-weight:750}.offline-stat-grid strong{color:#fff;font-size:23px}.offline-sync-message{padding:12px;border:1px solid #4d6066;border-radius:10px;background:#202d31;color:#c5d2d5;font-size:11px;line-height:1.45}.offline-sync-message.error{border-color:#9d494d;background:#49292c;color:#ffd0d2}.sync-offline-sales{display:grid;gap:4px;justify-items:start;min-height:66px;padding:13px 15px;border:1px solid #4a9d67;border-radius:11px;background:#287346;color:#fff;text-align:left}.sync-offline-sales strong{font-size:13px}.sync-offline-sales small{color:#d8ede0;font-size:10px}.offline-sale-list{display:grid;gap:7px;max-height:210px;overflow:auto}.offline-sale-row{display:grid;grid-template-columns:1fr auto;gap:5px;padding:10px 12px;border:1px solid #536267;border-radius:9px;background:#202b2f}.offline-sale-row strong,.offline-sale-row small{display:block}.offline-sale-row strong{font-size:11px}.offline-sale-row small{margin-top:4px;color:#aebbbf;font-size:9px}.offline-sale-row>b{align-self:center;color:#fff;font-size:13px}.offline-sale-row.conflict{border-color:#a44e52}.offline-rules{padding:12px;border:1px solid #506066;border-radius:10px;background:#202a2e;color:#c8d3d5;font-size:10px;line-height:1.5}.offline-rules>strong{color:#fff}.offline-rules ul{margin:7px 0 0;padding-left:19px}.offline-rules li+li{margin-top:3px}
.offline-payment-warning{margin:14px 18px;padding:11px 13px;border:1px solid #d49a42;background:#5b4022;color:#ffe5b8}.offline-payment-warning strong,.offline-payment-warning span{display:block}.offline-payment-warning strong{font-size:10px}.offline-payment-warning span{margin-top:4px;font-size:9px;line-height:1.4}
@media(max-width:620px){.offline-stat-grid{grid-template-columns:1fr}.offline-status-button{top:54px;width:max-content;max-width:90vw}}

/* Larger green product keys: fast to identify and comfortable for tablet service. */
.product-grid{align-content:start;grid-auto-rows:minmax(76px,auto);gap:8px;padding:1px 2px 8px}
.product-card,.product-card[class*=" "]{min-height:76px;padding:10px 11px;border:2px solid #85cb67;border-top-color:#9bdd7f;border-radius:10px;background:linear-gradient(145deg,#74bf4f,#55a838);color:#fff;box-shadow:0 3px 0 #347e29,0 7px 14px rgba(12,31,22,.18)}
.product-card:active{transform:translateY(2px) scale(.99);box-shadow:0 1px 0 #347e29}
.product-card strong{margin:2px 32px 24px 0;color:#fff;font-size:13px;font-weight:750;line-height:1.16;text-shadow:0 1px 1px rgba(22,62,24,.25)}
.product-card>b{left:11px;bottom:9px;color:#fff;font-size:11px;font-weight:850}
.product-card>i{right:9px;bottom:9px;width:25px;height:25px;border:1px solid rgba(255,255,255,.72);background:rgba(29,91,35,.2);color:#fff;font-size:15px}
.product-card .product-icon{color:rgba(255,255,255,.82);font-size:8px}
.product-card .has-options{color:#eefbe8;font-size:8px}
.product-card:disabled{border-color:#718276;background:#59665d;color:#c8d0ca;box-shadow:none}
.search-product-card,.search-product-card[class*=" "]{border-color:#8ed16f;background:linear-gradient(145deg,#7ac756,#58aa3b);color:#fff}
@media(min-width:1400px){.product-grid{grid-auto-rows:minmax(86px,auto)}.product-card,.product-card[class*=" "]{min-height:86px}.product-card strong{font-size:14px}}
@media(max-width:900px){.product-grid{grid-auto-rows:minmax(68px,auto);gap:6px}.product-card,.product-card[class*=" "]{min-height:68px}.product-card strong{font-size:12px}}
@media(max-width:700px){.product-grid{grid-auto-rows:minmax(64px,auto)}.product-card,.product-card[class*=" "]{min-height:64px}}

/* Three wide product keys per row, with black copy requested for bright service areas. */
.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.product-card,.product-card[class*=" "],.search-product-card,.search-product-card[class*=" "]{color:#132015}
.product-card strong,.product-card>b,.product-card>i,.product-card .product-icon,.product-card .has-options{color:#132015;text-shadow:none}
.product-card>i{border-color:rgba(18,43,20,.62);background:rgba(255,255,255,.2)}

/* Match product keys to the active top-level menu section. */
.sale-console:has(.departments button[data-department="Drinks"].active) .product-card,
.sale-console:has(.departments button[data-department="Drinks"].active) .product-card[class*=" "]{border-color:#94db69;border-top-color:#b5ec8e;background:linear-gradient(145deg,#83d642,#60b91f);box-shadow:0 3px 0 #377f1e,0 7px 14px rgba(14,43,14,.2)}
.sale-console:has(.departments button[data-department="Drinks"].active) .product-card:active{box-shadow:0 1px 0 #377f1e}
.sale-console:has(.departments button[data-department="Food"].active) .product-card,
.sale-console:has(.departments button[data-department="Food"].active) .product-card[class*=" "]{border-color:#ffb254;border-top-color:#ffd094;background:linear-gradient(145deg,#ffa323,#eb7b0c);box-shadow:0 3px 0 #a94b08,0 7px 14px rgba(45,24,7,.22)}
.sale-console:has(.departments button[data-department="Food"].active) .product-card:active{box-shadow:0 1px 0 #a94b08}
.sale-console:has(.departments button[data-department="Other"].active) .product-card,
.sale-console:has(.departments button[data-department="Other"].active) .product-card[class*=" "]{border-color:#b99ae7;border-top-color:#d2bbf2;background:linear-gradient(145deg,#a57ade,#8155bd);box-shadow:0 3px 0 #573487,0 7px 14px rgba(31,20,54,.22)}
.sale-console:has(.departments button[data-department="Other"].active) .product-card:active{box-shadow:0 1px 0 #573487}

/* CHIBRA Hospitality design system — restrained, high-contrast and consistent. */
:root{
  --chibra-canvas:#101713;
  --chibra-panel:#17221d;
  --chibra-raised:#1e2b25;
  --chibra-raised-hover:#26362e;
  --chibra-line:#3d5046;
  --chibra-line-soft:#2b3b33;
  --chibra-text:#f4f3ed;
  --chibra-muted:#aab6af;
  --chibra-accent:#83cf62;
  --chibra-accent-strong:#64ad45;
  --chibra-accent-soft:#263d2b;
  --chibra-danger:#db665f;
  --chibra-warning:#e7ae55;
}

html,body,.epos-shell,.workspace,.sale-console{background:var(--chibra-canvas)}
.till-header{background:linear-gradient(90deg,#4f9f42,#83cf62 55%,#5ca94b);box-shadow:0 1px 0 rgba(157,222,129,.45)}

/* Department is the primary choice: calm by default, green only when active. */
.departments button,
.departments button:first-child,
.departments button[data-department="Food"],
.departments button[data-department="Other"],
.departments button[data-note],
.departments button[class*="department-"]{
  border:1px solid var(--chibra-line);
  background:linear-gradient(145deg,#24342d,#1c2923);
  color:var(--chibra-text);
  box-shadow:0 3px 0 #0a100d,0 7px 15px rgba(0,0,0,.18);
  text-shadow:none;
}
.departments button.active,
.departments button:first-child.active,
.departments button[data-department="Food"].active,
.departments button[data-department="Other"].active{
  border-color:#9ddd81;
  background:linear-gradient(145deg,#72bd53,#559c3b);
  color:#10200f;
  box-shadow:0 0 0 2px rgba(131,207,98,.18),0 3px 0 #315f28,0 8px 16px rgba(0,0,0,.22);
}
.departments button[data-note]{color:#c8d2cc}

/* Categories are navigation, not a rainbow palette. */
.menu-browser .categories button,
.categories button,
.categories button[class*="category-tone-"]{
  border:1px solid var(--chibra-line);
  background:linear-gradient(145deg,#23322b,#1b2721);
  color:var(--chibra-text);
  box-shadow:0 2px 0 #0b110e,0 5px 11px rgba(0,0,0,.15);
}
.categories button strong,.menu-browser .categories button strong{color:inherit;text-shadow:none}
.categories button.active,
.categories button[class*="category-tone-"].active{
  border-color:var(--chibra-accent);
  background:linear-gradient(145deg,#314a35,#263b2b);
  color:#edf8e8;
  box-shadow:inset 4px 0 var(--chibra-accent),0 2px 0 #111a15,0 5px 12px rgba(0,0,0,.18);
}

/* Products are large, uniform sale controls; colour is reserved for state. */
.product-card,.product-card[class*=" "],.search-product-card,.search-product-card[class*=" "],
.sale-console:has(.departments button[data-department="Drinks"].active) .product-card,
.sale-console:has(.departments button[data-department="Food"].active) .product-card,
.sale-console:has(.departments button[data-department="Other"].active) .product-card{
  border:1px solid #53685c!important;
  border-top:3px solid var(--chibra-accent)!important;
  background:linear-gradient(145deg,#f4f3ed,#dfe5df)!important;
  color:#17231d!important;
  box-shadow:0 3px 0 #8e9a93,0 8px 15px rgba(0,0,0,.18)!important;
}
.product-card strong,.product-card>b,.product-card>i,.product-card .product-icon,.product-card .has-options{color:#17231d;text-shadow:none}
.product-card>i{border-color:#789082;background:#f8faf7}
.product-card:active,
.sale-console:has(.departments button[data-department="Drinks"].active) .product-card:active,
.sale-console:has(.departments button[data-department="Food"].active) .product-card:active,
.sale-console:has(.departments button[data-department="Other"].active) .product-card:active{box-shadow:0 1px 0 #8e9a93;transform:translateY(2px)}
.product-card:disabled{border-color:#46554d;border-top-color:#596960;background:#303c35;color:#7f8e86;box-shadow:none}

.basket-panel,.tab-picker{background:var(--chibra-panel);border-color:var(--chibra-line)}
.basket-panel header,.basket-panel footer{background:#131d18;border-color:var(--chibra-line-soft)}
.bottom-nav{border-color:var(--chibra-line);background:#111a16}
.bottom-nav button,.bottom-nav a{border-color:#2b3932;color:var(--chibra-muted);background:transparent}
.bottom-nav button.active{background:#1d2b24;color:var(--chibra-accent);box-shadow:inset 0 3px var(--chibra-accent)}
body[data-tab-workflow="standard"] .bottom-nav [data-mode="room"]{display:none!important}

/* Service workspace follows the same visual language as the till. */
.modal{background:rgba(5,10,7,.76);backdrop-filter:blur(8px)}
.service-card{border:1px solid var(--chibra-line);background:var(--chibra-panel);box-shadow:0 22px 70px rgba(0,0,0,.48)}
.service-card>header{border-bottom:1px solid var(--chibra-line);background:linear-gradient(135deg,#1e3026,#17251e);color:var(--chibra-text);box-shadow:inset 0 4px var(--chibra-accent)}
.service-card>header p{color:var(--chibra-accent)}
.service-card>header span{color:var(--chibra-muted)}
.service-card>header button{border:1px solid var(--chibra-line);background:#111a16;color:var(--chibra-text)}
.service-card>nav{border-bottom:1px solid var(--chibra-line);background:#121c17}
.service-card>nav button{border-color:#2c3a33;background:#17221d;color:var(--chibra-muted)}
.service-card>nav button.active{border-color:var(--chibra-accent);background:var(--chibra-accent-soft);color:#eff9eb;box-shadow:inset 0 -3px var(--chibra-accent)}
.service-content{background:var(--chibra-canvas)}
.service-stat{border:1px solid var(--chibra-line);border-radius:12px;background:linear-gradient(145deg,#1d2b24,#17221d);box-shadow:0 8px 22px rgba(0,0,0,.16)}
.service-stat span{color:var(--chibra-accent)}
.service-stat strong{color:var(--chibra-text)}
.service-stat small{color:var(--chibra-muted)}
.till-plan-area-tabs button.active,.till-plan-edit-toolbar button,.till-ticket footer button{border-color:var(--chibra-accent);background:var(--chibra-accent-soft);color:#eff9eb}

@media(max-width:900px){
  .departments button{border-radius:11px}
  .categories button{border-radius:10px}
  .product-card,.product-card[class*=" "]{border-radius:10px}
}

/* Area-aware table plan on the staff till. */
.till-plan-area-tabs{display:flex;gap:7px;margin-bottom:9px;overflow-x:auto}.till-plan-area-tabs button{min-height:42px;padding:0 15px;border:1px solid #65777d;border-radius:9px;background:#344348;color:#d7e0e2;font-size:10px;font-weight:850;white-space:nowrap}.till-plan-area-tabs button.active{border-color:#8acb61;background:#4c8739;color:#fff}.till-table{display:grid;align-content:center;min-width:60px;min-height:50px;overflow:hidden;border-radius:9px;text-align:center}.till-table.shape-round{border-radius:50%}.till-table.shape-square{aspect-ratio:1}.till-table.shape-bar{border-color:#65a8cc;background:#355b70}.till-table.shape-rectangle{border-radius:9px}

.till-plan-hint{margin:0 0 9px;padding:8px 11px;border:1px solid #52656b;border-radius:8px;background:#273438;color:#aebdc1;font-size:10px;font-weight:700}.till-plan-edit-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:9px;padding:9px 10px;border:1px solid #82c45c;border-radius:10px;background:#253b2b;color:#fff}.till-plan-edit-toolbar strong{font-size:11px;letter-spacing:.08em}.till-plan-edit-toolbar span{min-width:0;flex:1;color:#c8dbc9;font-size:9px}.till-plan-edit-toolbar button{min-height:40px;padding:0 14px;border:1px solid #93d26e;border-radius:8px;background:#5da43b;color:#fff;font-size:10px;font-weight:900}.till-plan-edit-toolbar button[data-finish-table-layout]{border-color:#809298;background:#3b4c51}.till-plan.layout-editing .till-table{cursor:grab;touch-action:none;outline:2px dashed #d9efcb;outline-offset:3px;box-shadow:0 5px 14px #0008}.till-plan.layout-editing .till-table::after{content:"↕";position:absolute;right:5px;top:3px;color:#dff3d4;font-size:12px;font-weight:900}.till-plan.layout-editing .till-table.table-dragging{z-index:10;cursor:grabbing;opacity:.9;outline-style:solid;box-shadow:0 14px 28px #000b;transform:scale(1.03)}
.till-table-editor-card{width:min(620px,94vw)}.till-table-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px 22px}.till-table-editor-fields label{display:grid;gap:7px;color:#b8c5c8;font-size:10px;font-weight:850;letter-spacing:.04em}.till-table-editor-fields input,.till-table-editor-fields select{min-height:50px;padding:0 12px;border:1px solid #607176;border-radius:9px;background:#202b2f;color:#fff;font-family:inherit;font-size:15px;font-weight:800}.till-table-editor-fields input:focus,.till-table-editor-fields select:focus{border-color:#8bce63;outline:3px solid #7fc95725}.till-table-editor-help{margin:0;padding:0 22px 18px;color:#9eafb3;font-size:10px}.till-table-editor-card>footer .danger{margin-right:auto;border-color:#c86469;background:#923b42}@media(max-width:620px){.till-table-editor-fields{grid-template-columns:1fr}.till-plan-edit-toolbar{flex-wrap:wrap}.till-plan-edit-toolbar span{flex-basis:100%;order:3}}


/* Manager layout editor: long press a category or product, then drag. */
.layout-edit-bar{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top));z-index:90;display:flex;align-items:center;gap:11px;min-width:min(520px,92vw);padding:10px 11px 10px 15px;border:1px solid #9bd4ef;border-radius:12px;background:#163f54f2;color:#fff;box-shadow:0 10px 35px #0008;transform:translateX(-50%);backdrop-filter:blur(10px)}
.layout-edit-bar[hidden]{display:none!important}.layout-edit-bar>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#2a779e;font-size:20px}.layout-edit-bar>div{min-width:0;flex:1}.layout-edit-bar strong,.layout-edit-bar small{display:block}.layout-edit-bar strong{font-size:12px;letter-spacing:.08em}.layout-edit-bar small{margin-top:3px;color:#c3dce7;font-size:9px}.layout-edit-bar button{min-height:38px;padding:0 17px;border:1px solid #a9d984;border-radius:8px;background:#69ae3d;color:#fff;font-size:11px;font-weight:900}
.layout-editing .menu-browser [data-category]:not(.quick-access-category),.layout-editing .product-grid [data-product]{cursor:grab;touch-action:none;box-shadow:inset 0 0 0 2px #fff8,0 3px 8px #0007}
.layout-editing .quick-access-category{opacity:.8}.layout-editing .quick-access-category::after{content:"PINNED";float:right;color:#6d5f16;font-size:7px;font-weight:900}
.layout-editing .layout-dragging{z-index:5;cursor:grabbing;opacity:.88;transform:scale(1.05);box-shadow:0 12px 28px #000a,inset 0 0 0 3px #fff!important}

/* Tablet staff sign-in mirrors the simple Mini EPOS name-and-PIN flow. */
#till-admin-modal.login-mode{padding:0;background:#101a17;align-items:stretch}
#till-admin-modal.login-mode .till-admin-card{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;background:radial-gradient(circle at 50% 0,#27483b 0,#101a17 58%);box-shadow:none;overflow:auto}
#till-admin-modal.login-mode .till-admin-card>header,#till-admin-modal.login-mode .admin-language-row{display:none}
#till-admin-modal.login-mode .admin-login-view{width:100%;max-width:none;min-height:100dvh;padding:calc(38px + env(safe-area-inset-top)) 24px calc(34px + env(safe-area-inset-bottom));display:grid;align-content:start}
.tablet-login-brand{max-width:440px;margin:0 auto;text-align:center}.tablet-login-brand>span{display:grid;place-items:center;width:64px;height:64px;margin:auto;border-radius:19px;background:#72d84e;color:#102015;font-size:36px;font-weight:950}.tablet-login-brand p{margin:14px 0 0;color:#72d84e;font-size:11px;font-weight:900;letter-spacing:.18em}.tablet-login-brand h1{margin:7px 0;font-size:38px}.tablet-login-brand small{color:#a8b7b0;font-size:13px}
.tablet-operator-picker{width:min(440px,100%);margin:30px auto 0}.tablet-operator-picker .operator-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0}.tablet-operator-picker .operator-options button{min-height:80px;padding:12px;border:1px solid #40514a;border-radius:16px;background:#1c2b26;color:#fff;font-size:16px;font-weight:850}.tablet-operator-picker .operator-options button small{display:block;margin-top:5px;color:#9aaba4;font-size:11px}.tablet-operator-picker .operator-options button:active{transform:scale(.98);background:#263b33}
.tablet-pin-panel{width:min(360px,100%);margin:auto;text-align:center}.tablet-pin-panel>strong{display:block;margin-bottom:14px;font-size:24px}.tablet-pin-panel #operator-login-pin{display:block;width:100%;height:58px;margin:0 0 12px;border:1px solid #40514a;border-radius:14px;background:#1b2924;color:#fff;text-align:center;font-size:25px;font-weight:800;letter-spacing:.32em}.tablet-pin-panel #operator-login-pin:focus{border-color:#72d84e;outline:3px solid #72d84e2b}
.tablet-pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.tablet-pin-pad button{height:58px;border:0;border-radius:14px;background:#25362f;color:#fff;font-size:21px;font-weight:900}.tablet-pin-pad button:active{transform:scale(.97);background:#385046}.tablet-pin-pad button[data-operator-pin="submit"]{background:#72d84e;color:#102015}
.tablet-pin-sign-in{width:100%;min-height:54px;margin-top:12px;border:0;border-radius:13px;background:#72d84e;color:#102015;font-weight:900}.tablet-change-operator{width:100%;min-height:48px;margin-top:7px;border:0;background:transparent;color:#fff;font-weight:750}
.login-business-logout{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;align-items:center;width:min(440px,100%);min-height:66px;margin:28px auto 0;padding:11px 14px;border:1px solid #68494b;border-radius:14px;background:#251e20;color:#fff;text-align:left}.login-business-logout>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#63363a;color:#ffbec0;font-size:20px}.login-business-logout strong{font-size:13px}.login-business-logout small{margin-top:3px;color:#c6a6a8;font-size:9px;line-height:1.35}.login-business-logout:active{transform:scale(.985);background:#322326}
.category-layout-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.category-layout-options>button{display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto auto;align-items:center;min-height:118px;padding:13px;border:2px solid #53635c;border-radius:14px;background:#1d2b25;color:#fff;text-align:left}.category-layout-options>button.active{border-color:#79cb56;background:#263b2b;box-shadow:0 0 0 3px #76c95225}.category-layout-options>button strong{font-size:14px}.category-layout-options>button small{margin-top:5px;color:#9fb0a7;font-size:9px;line-height:1.35}.layout-preview{grid-row:1/3;position:relative;display:block;width:78px;height:62px;border:1px solid #61726a;border-radius:8px;background:#111b17;overflow:hidden}.layout-preview::before,.layout-preview i,.layout-preview b{content:"";position:absolute;display:block;border-radius:3px}.layout-preview::before{background:#69bc49}.preview-left::before{inset:7px auto 7px 7px;width:16px}.preview-left i{inset:7px 7px auto 28px;height:14px;background:#30453a}.preview-left b{inset:26px 7px 7px 28px;background:repeating-linear-gradient(90deg,#d9dfdc 0 12px,transparent 12px 15px)}.preview-top::before{inset:7px 7px auto;height:14px}.preview-top i{inset:26px auto 7px 7px;width:16px;background:#30453a}.preview-top b{inset:26px 7px 7px 28px;background:repeating-linear-gradient(90deg,#d9dfdc 0 12px,transparent 12px 15px)}.category-layout-status{margin-top:14px;padding:12px 14px;border:1px solid #496057;border-radius:10px;background:#203129;color:#c8d5cd;font-size:11px;font-weight:800;text-align:center}
/* Per-device alternative: horizontal category row above the product grid. */
#epos.category-layout-top .menu-browser{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:8px}
#epos.category-layout-top .menu-browser .categories{width:100%;min-width:0;margin:0;padding:1px 4px 4px 0;overflow-x:auto;overflow-y:hidden}
#epos.category-layout-top .menu-browser .categories>div{display:flex;min-width:max-content;flex-direction:row;gap:7px}
#epos.category-layout-top .menu-browser .categories button{width:auto;min-width:138px;min-height:54px;padding:7px 12px}
#epos.category-layout-top .menu-browser .categories button strong{font-size:13px}
#epos.category-layout-top .products-browser{min-width:0;min-height:0;overflow:auto}
@media(max-width:620px){.category-layout-options{grid-template-columns:1fr}.category-layout-options>button{min-height:100px}}
.business-logout-modal{z-index:120;display:grid;place-items:center;padding:20px;background:#07100ddd}.business-logout-modal[hidden]{display:none}.business-logout-confirm{width:min(430px,100%);padding:28px;border:1px solid #735054;border-radius:22px;background:#18231f;color:#fff;box-shadow:0 22px 70px #0009;text-align:center}.business-logout-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 15px;border-radius:17px;background:#63363a;color:#ffc5c7;font-size:29px}.business-logout-confirm>p{margin:0;color:#ffabad;font-size:10px;font-weight:950;letter-spacing:.16em}.business-logout-confirm>h2{margin:8px 0 7px;font-size:25px}.business-logout-confirm>span:not(.business-logout-icon){display:block;color:#b9c6c0;font-size:12px;line-height:1.5}.business-logout-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.business-logout-actions button{min-height:52px;border:1px solid #52645c;border-radius:12px;background:#26342e;color:#fff;font-size:10px;font-weight:950}.business-logout-actions #confirm-business-logout{border-color:#9b555a;background:#6e3439;color:#fff}.business-logout-actions button:disabled{opacity:.55}
@media(min-width:760px){#till-admin-modal.login-mode .admin-login-view{padding-top:8vh}.tablet-operator-picker{margin-top:36px}}

/* Previous sales: till-safe review, receipt reprint and manager-authorised voids. */
.previous-sales-filters{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:end;margin-bottom:16px}.previous-sales-filters label{display:grid;gap:6px;color:#aebdb6;font-size:11px;font-weight:850;letter-spacing:.04em}.previous-sales-filters input,.previous-sales-filters select{min-height:46px;border:1px solid #52645c;border-radius:11px;background:#20302a;color:#fff;padding:0 12px}.previous-sales-filters button{min-height:46px;border:1px solid #71d94f;border-radius:11px;background:#29422f;color:#bfffa9;padding:0 18px;font-weight:950}
.previous-sales-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(390px,1.3fr);gap:14px;min-height:430px}.previous-sales-list{display:grid;align-content:start;gap:8px;max-height:56vh;overflow:auto;padding-right:3px}.previous-sale-row{position:relative;display:grid;grid-template-columns:1fr auto;gap:5px 12px;width:100%;min-height:78px;border:1px solid #3f5149;border-radius:13px;background:#1b2a24;color:#fff;padding:12px;text-align:left}.previous-sale-row:hover,.previous-sale-row.active{border-color:#73d851;background:#253a2d}.previous-sale-row span{display:grid;gap:4px;min-width:0}.previous-sale-row strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.previous-sale-row small{color:#9eb0a7;font-size:10px}.previous-sale-row>b{font-size:17px}.previous-sale-row .sale-status{grid-column:1/-1;justify-self:start;color:#b7c6bf;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.previous-sale-row .sale-status.voided,.previous-sale-row .sale-status.refunded{color:#ff9d9f}.previous-sale-row .sale-status.partially_refunded{color:#ffc37d}
.previous-sale-detail{min-height:430px;border:1px solid #3d4d46;border-radius:14px;background:#17251f;padding:16px;overflow:auto}.previous-sale-detail>header{display:flex;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid #35473e}.previous-sale-detail>header h3{margin:3px 0;font-size:21px}.previous-sale-detail>header small{color:#a3b4ab}.previous-sale-detail>header strong{font-size:25px}.previous-sale-detail ul{list-style:none;margin:13px 0;padding:0}.previous-sale-detail li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #2e4037;color:#dde5e1}.previous-sale-detail li span{display:grid;gap:2px}.previous-sale-detail li small{color:#94a69d}.previous-sale-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0}.previous-sale-summary span{display:flex;justify-content:space-between;padding:9px 10px;border-radius:9px;background:#22342c;color:#b8c6bf}.previous-sale-summary b{color:#fff}.previous-sale-print{width:100%;min-height:46px;border:1px solid #5c7468;border-radius:11px;background:#2a3d35;color:#fff;font-weight:900}.previous-sale-void{display:grid;grid-template-columns:1fr 1.5fr auto;gap:8px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid #3a4c43}.previous-sale-void label{display:grid;gap:5px;color:#aebdb6;font-size:10px;font-weight:850}.previous-sale-void input{min-width:0;height:42px;border:1px solid #5b6c64;border-radius:10px;background:#22322c;color:#fff;padding:0 10px}.previous-sale-void button{height:42px;border:1px solid #ba5b5f;border-radius:10px;background:#552e30;color:#ffd0d1;padding:0 13px;font-weight:950}.previous-sale-reversed{margin-top:12px;padding:12px;border:1px solid #6a4b4d;border-radius:11px;background:#372628;color:#ffc8c9;font-weight:800}
@media(max-width:850px){.previous-sales-layout{grid-template-columns:1fr}.previous-sales-list{max-height:30vh}.previous-sale-detail{min-height:330px}.previous-sale-void{grid-template-columns:1fr 1fr}.previous-sale-void label:nth-child(2){grid-column:1/-1}.previous-sale-void button{grid-column:2;grid-row:1}.previous-sales-filters{grid-template-columns:1fr 1fr}.previous-sales-filters button{grid-column:1/-1}}
