/*
 * POSpal merged stylesheet
 * Sources: app(2).css, app-nav(1).css, pages(5).css, pos(3).css, staff-pin(1).css
 * Generated by consolidating exact duplicate rules and formatting all CSS for readability.
 * Deliberate cascade overrides are retained.
 */


/* ============================================================
   Variables & Base
   ============================================================ */

:root {
    --body: #f4f4f2;
    --grey: #777;
    --midgrey: #dededb;
    --lightgrey: #ededeb;
    --border: #e8e8e6;
    --midblack: #555;
    --cartbg: #fafaf8;
    --black: #111;
    --white: #fff;
    --addbtn: #efefed;
    --imgbg: #eee;
    --placeholder: #aaa;
    --btnhover: #2a2a2a;
    --cartbtn: #ddd;
    --danger: #a61b1b;
    --success: #176b36;
    --redui: #f94144;
    --greenui: #43aa8b;
    --yellowui: #ed990a;
    --lightgreen: #d1fae5;
    --blueui: #1d4ed8;
    --lightpink: #fee8e8;
    --lightyellow: #fef3c7;
    --textalt: #64748b;
}

* {
    box-sizing: border-box;
}

html {
    font-family: Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background: var(--lightgrey);
    color: var(--black);
}

body {
    margin: 0;
    min-height: 100vh;
}

* {
    border-radius: 0 !important;
}

* {
    outline: none !important;
    border-radius: none !important;
}

html,body {
    margin: 0;
    min-height: 100%;
}

body {
    font-family: "Inter",Arial,Helvetica,sans-serif;
    background: var(--body);
    color: var(--black);
}


/* ============================================================
   Typography & General Content
   ============================================================ */

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 12px;
    font-weight: 800;
    color: var(--grey);
    margin-bottom: 12px;
}

h1 {
    font-size: 34px;
    line-height: 1.05;
    margin: 0 0 12px;
}

.intro {
    color: var(--grey);
    line-height: 1.6;
    margin: 0 0 24px;
}

.meta strong {
    color: var(--black);
}

pre {
    white-space: pre-wrap;
    word-break: break-word;
    background: var(--black);
    color: var(--lightgreen);
    padding: 14px;
    border-radius: 12px;
    font-size: 12px;
    max-height: 320px;
    overflow: auto;
}

.small,.muted {
    color: var(--grey);
    font-size: 13px;
}

.admin-heading h1 {
    margin: 0;
}

.dropzone-placeholder strong {
    color: var(--black);
    font-size: 16px;
}

.dropzone-placeholder span,.dropzone-placeholder small {
    font-size: 13px;
}

.small-check {
    margin-top: 10px;
}

.discount-summary-row strong {
    color: var(--yellowui);
}

.page-title {
    margin: 0 0 24px;
    font-size: 30px;
    line-height: 1.1;
}

.page-subtitle {
    margin: -14px 0 24px;
    color: var(--grey);
}

.total-row strong {
    font-size: 22px;
}

.summary-line strong {
    color: var(--black);
}

.total-summary strong {
    font-size: 24px;
}

.sale-complete-message strong {
    font-size: 22px;
    color: var(--black);
}


/* ============================================================
   Forms & Inputs
   ============================================================ */

form {
    display: grid;
    gap: 18px;
}

label {
    font-size: 14px;
    font-weight: 700;
    display: grid;
    gap: 8px;
}

input {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    padding: 14px 15px;
    font-family: Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size: 16px;
    outline: none;
    background: var(--white);
}

input:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}

.money-field {
    display: flex;
    align-items: center;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    overflow: hidden;
}

.money-field span {
    padding-left: 15px;
    font-size: 22px;
    font-weight: 800;
}

.money-field input {
    border: 0;
    box-shadow: none !important;
    font-size: 26px;
    font-weight: 800;
    padding-left: 6px;
}

.stack-form {
    display: grid;
    gap: 16px;
}

.check {
    display: flex;
    align-items: center;
    gap: 9px;
}

.check input {
    width: auto;
}

.stack-form select {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    padding: 14px 15px;
    font: inherit;
    background: var(--white);
}

.actions form {
    display: inline;
    margin-left: 10px;
}

.field-label {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.discount-field select {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    padding: 12px 14px;
    font: inherit;
    background: var(--white);
    color: var(--black);
    outline: none;
}

.discount-field select:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}

.admin-search-wrap input {
    width: 100%;
    min-width: 0;
    padding: 11px 38px 11px 12px;
    border: 1px solid var(--lightgrey);
    background: var(--white);
    font: inherit;
}

.search-wrap input {
    width: 100%;
    padding: 14px 42px 14px 0;
    border: 0;
    border-bottom: 2px solid var(--white);
    background: transparent;
    color: var(--white);
    font-size: 18px;
    outline: none;
    border-radius: 0;
}

.search-wrap input::placeholder {
    color: var(--placeholder);
}

.sidebar-field select {
    width: 100%;
    padding: 12px 40px 12px 14px;
    border: 1px solid var(--midgrey);
    border-radius: 0px;
    background: var(--white);
    color: var(--black);
    outline: none;
    font-family: Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color: var(--black);
  font-size: 16px !important;
}

.money-field {
    display: flex;
    align-items: center;
    padding: 0 !important;
}

.money-field span {
    font-size: 16px;
    font-weight: 700;
}

.money-field input {
    width: 100%;
    padding: 14px 14px 14px 7px;
    border: 0;
    outline: none;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
}

input[type="checkbox"] {
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid var(--midgrey) !important;
    padding: 15px !important;
    background: var(--white);
    cursor: pointer !important;
    position: relative !important;
    vertical-align: middle !important;
}

input[type="checkbox"]:checked {
    background: var(--greenui);
    border-color: var(--greenui) !important;
}

input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 6px;
    width: 5px;
    height: 12px;
    border: solid var(--white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}


/* ============================================================
   Buttons & Actions
   ============================================================ */

button {
    appearance: none;
    border: 0;
    border-radius: 12px;
    background: var(--black);
    color: var(--white);
    padding: 15px 18px;
 font-family: "Inter",Arial,Helvetica,sans-serif;
  
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-transform: capitalize;
}

button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.secondary {
    width: 100%;
    margin-top: 10px;
    background: var(--lightgrey);
    color: var(--black);
}

.button-link {
    display: inline-block;
    text-decoration: none;
    border-radius: 12px;
    background: var(--black);
    color: var(--white);
    padding: 15px 18px;
    font-weight: 700;
}

.secondary-link {
    background: var(--lightgrey);
    color: var(--black);
    text-align: center;
}

.actions>a,.link-button {
    font: inherit;
    font-size: 13px;
    color: var(--black);
    text-decoration: underline;
    background: none;
    padding: 0;
    border: 0;
    font-weight: 600;
}

.link-button {
    color: var(--redui);
}

.crop-actions button {
    margin: 0;
}

.compact-button {
    width: auto;
    margin: 0;
}

.sale-detail-actions .button-link {
    width: auto;
}

.link-button {
    color: var(--redui) !important;
}

.green-button {
    background: var(--greenui) !important;
    color: var(--white) !important;
}

.actions-button {
    background: var(--yellowui) !important;
    color: var(--white) !important;
}

.green-button:hover,
.actions-button:hover {
    background: var(--black) !important;
    color: var(--white) !important;
}

.secondary {
    width: 100%;
    margin-top: 10px;
    background: var(--grey);
}

.logo-crop-actions button {
    flex: 1;
}

.logo-crop-actions button {
    padding: 10px 18px;
}

.logo-crop-actions button {
    flex: 0 0 auto;
}

.admin-search-wrap button {
    display: none;
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
}

button {
    color: inherit;
}

.add-btn {
    width: 50px;
    height: 50px;
    font-family: Arial,Helvetica,sans-serif;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--addbtn);
    font-size: 30px;
    font-weight: 300;
    transition: .15s ease;
}

.new-customer-btn {
    background: var(--black);
    color: var(--white);
}

.new-customer-btn:hover {
    background: var(--btnhover);
}

.sale-complete-actions .new-customer-btn {
    display: block;
    text-align: center;
    text-decoration: none;
}

.del-link {
    color: var(--redui);
}

input, select, button {
    font-family: "Inter",Arial,Helvetica,sans-serif;
    color: var(--black);
}


/* ============================================================
   Header & Navigation
   ============================================================ */

.topbar {
    height: 64px;
    background: var(--white);
    border-bottom: 1px solid var(--lightgrey);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 20;
}

.topbar a {
    color: var(--black);
    text-decoration: none;
}

.topbar nav {
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 14px;
}

.topbar nav a {
    color: var(--grey);
}

.topbar nav a.active,.topbar nav a:hover {
    color: var(--black);
}

.menu-toggle {
    position: fixed;
    right: 15px;
    top: 15px;
    z-index: 85;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: var(--black);
    box-shadow: 0 10px 28px rgba(15,23,42,.2);
}

.menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--white);
    border-radius: 999px;
    transition: transform .18s ease,opacity .18s ease;
}

.menu-toggle:hover {
    background: var(--black);
}

.flyout-menu {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    pointer-events: none;
}

.flyout-menu.open {
    visibility: visible;
    pointer-events: auto;
}

.flyout-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.38);
    opacity: 0;
    transition: opacity .22s ease;
}

.flyout-menu.open .flyout-backdrop {
    opacity: 1;
}

.flyout-panel {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: min(340px,86vw);
    background: var(--white);
    padding: 24px;
    box-shadow: 20px 0 50px rgba(15,23,42,.16);
    transform: translateX(-102%);
    transition: transform .24s ease;
    display: flex;
    flex-direction: column;
}

.flyout-menu.open .flyout-panel {
    transform: translateX(0);
}

.flyout-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}

.flyout-brand {
    font-size: 20px;
    font-weight: 900;
    color: var(--black);
    text-decoration: none;
}

.flyout-close {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    padding: 0;
    background: var(--lightgrey);
    color: var(--black);
    font-size: 26px;
    font-weight: 400;
    line-height: 1;
}

.flyout-nav {
    display: grid;
    gap: 4px;
}

.flyout-nav a {
    display: block;
    padding: 13px 14px;
    border-radius: 10px;
    color: var(--midblack);
    text-decoration: none;
    font-size: 16px;
    font-weight: 700;
}

.flyout-nav a:hover,.flyout-nav a.active {
    background: var(--lightgrey);
    color: var(--black);
}

body.menu-open {
    overflow: hidden;
}

.app-header {
    justify-content: space-between;
}

.app-menu-toggle {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 50px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--white) !important;
    cursor: pointer;
    border-radius: 0;
}

.app-menu-toggle svg {
    width: 30px;
    height: 30px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.app-menu-toggle:hover {
    background: var(--black);
    opacity: 0.7;
}

.app-menu {
    position: fixed;
    inset: 0;
    z-index: 600;
    visibility: hidden;
    pointer-events: none;
}

.app-menu.open {
    visibility: visible;
    pointer-events: auto;
}

.app-menu-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(0,0,0,.38);
    opacity: 0;
    transition: opacity .18s ease;
    cursor: default;
}

.app-menu.open .app-menu-backdrop {
    opacity: 1;
}

.app-menu-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: min(390px,88vw);
    height: 100%;
    padding: 26px 30px 34px;
    background: var(--white);
    box-shadow: 20px 0 60px rgba(0,0,0,.16);
    transform: translateX(-102%);
    transition: transform .2s ease;
    overflow-y: auto;
}

.app-menu.open .app-menu-panel {
    transform: translateX(0);
}

.app-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border,var(--lightgrey));
}

.app-menu-head strong {
    font-size: 15px;
    font-weight: 600;
}

.app-menu-close {
    width: 42px;
    height: 42px;
    font-family: Arial,Helvetica,sans-serif;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    background: var(--lightgrey);
    color: var(--black);
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
}

.app-menu-primary,.app-menu-secondary {
    display: grid;
}

.app-menu-primary {
    padding: 22px 0;
    border-bottom: 1px solid var(--border,var(--lightgrey));
}

.app-menu-secondary {
    padding: 18px 0;
}

.app-menu-primary a,.app-menu-secondary a {
    display: block;
    text-decoration: none;
    color: var(--midblack);
}

.app-menu-primary a {
    padding: 8px 0;
    font-size: 20px;
    font-weight: 600;
}

.app-menu-secondary a {
    padding: 6px 0;
    font-size: 15px;
    font-weight: 500;
}

.app-menu-primary a:hover,.app-menu-secondary a:hover, .app-menu-primary a.active,.app-menu-secondary a.active {
    color: var(--black);
}

.app-menu-primary a.active,.app-menu-secondary a.active {
    font-weight: 700;
}

body.app-menu-open {
    overflow: hidden;
}

.page-nav {
    padding: 20px 0;
    display: flex;
    align-items: center;
    gap: 25px;
    border-bottom: 1px solid var(--border);
    overflow-x: auto;
    white-space: nowrap;
}

.page-nav a {
    position: relative;
    padding: 10px 0;
    color: var(--grey);
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
}

.page-nav a:hover {
    color: var(--black);
}

.page-nav a.active {
    color: var(--black);
    font-weight: 600;
}

.page-nav a.active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: var(--black);
}

.pos-header {
    min-height: 75px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    background: var(--black);
    padding: 0 25px;
    position: sticky;
    top: 0;
    z-index: 99;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 36px;
}

.main-nav a {
    position: relative;
    padding: 10px 0;
    color: var(--grey);
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
}

.main-nav a:hover {
    color: var(--black);
}

.main-nav a.active {
    color: var(--black);
    font-weight: 600;
}

.main-nav a.active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: var(--black);
}

.app-menu-head>div {
    display: grid;
    gap: 4px;
}

.app-menu-head small {
    color: #777;
    font-size: 12px;
    font-weight: 500;
}

.app-menu-utility {
    display: grid;
    padding-top: 16px;
    border-top: 1px solid var(--border,var(--lightgrey));
}

.app-menu-utility a,.app-menu-utility button {
    display: block;
    width: 100%;
    padding: 8px 0;
    border: 0;
    background: transparent;
    text-align: left;
    text-decoration: none;
    color: var(--midblack);
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

.app-menu-utility a:hover,.app-menu-utility button:hover {
    color: var(--black);
}


/* ============================================================
   Layout & Shells
   ============================================================ */

.shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.admin-shell {

    margin: 0px auto;
}

.admin-grid {
    display: grid;
    grid-template-columns: minmax(300px,420px) minmax(0,1fr);
    gap: 24px;
    align-items: start;
}

.crop-wrap {
    margin-top: 14px;
    border: 1px solid var(--lightgrey);
    border-radius: 16px;
    padding: 14px;
    background: var(--white);
}

.sale-detail-shell {
    max-width: 900px;
}

.pos-inner {
    width: 100%;
    padding: 0 45px;
}

.page-shell {
    width: 100%;
    padding: 30px 30px 30px;
}

.page-shell .eyebrow {
    margin-bottom: 5px;
}

.logo-crop-wrap {
    width: min(100%,410px);
    padding: 12px;
    border: 1px solid var(--border);
    background: var(--white);
}

.admin-search-wrap {
    position: relative;
    min-width: 0;
}

.pos-app {
    width: 100%;
    max-width: 1600px;
    min-height: 100vh;
    margin: 0 auto;
    background: var(--white);
}

.pos-main {
    width: calc(100% - 450px);
    padding: 0 45px 60px;
    min-height: 100vh;
}

.search-wrap {
    position: relative;
    width: 360px;
}


/* ============================================================
   Panels, Cards & Tables
   ============================================================ */

.card {
    width: min(100%,560px);
    background: var(--white);
    border: 1px solid var(--lightgrey);
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 24px 60px rgba(15,23,42,.08);
}

.money-field:focus-within {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}

.with-topbar {
    min-height: calc(100vh - 64px);
}

.panel {
    background: var(--white);
    border: 1px solid var(--lightgrey);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 14px 40px rgba(15,23,42,.05);
}

.panel h2 {
    margin: 0 0 20px;
    font-size: 16px;
}

.table-wrap {
    overflow: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

th,td {
    text-align: left;
    padding: 13px 10px;
    border-bottom: 1px solid var(--lightgrey);
    vertical-align: middle;
}

th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--grey);
}

td small {
    display: block;
    margin-top: 4px;
    color: var(--grey);
}

.badge {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.badge.on {
    background: var(--lightgreen);
    color: var(--greenui);
}

.badge.off {
    background: var(--lightgrey);
    color: var(--grey);
}

.page-shell .panel {
    box-shadow: none;
}


/* ============================================================
   Dashboard
   ============================================================ */

.dashboard-shell {

    margin: 0px auto;
}

.dashboard-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 24px;
}

.dashboard-heading h1 {
    margin: 0;
}

.dashboard-kpis {
    display: grid;
    grid-template-columns: 2fr repeat(4,1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.dashboard-kpi {
    background: var(--white);
    border: 1px solid var(--lightgrey);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 14px 40px rgba(15,23,42,.05);
    display: grid;
    gap: 10px;
}

.dashboard-kpi span {
    font-size: 13px;
    color: var(--textalt);
    font-weight: 700;
}

.dashboard-kpi strong {
    font-size: 20px;
    line-height: 1;
    font-weight: 700;
}

.dashboard-kpi small {
    font-size: 12px;
    color: var(--textalt);
}

.dashboard-kpi-main strong {
    font-size: 20px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
    align-items: start;
}

.dashboard-panel {
    padding: 0;
    overflow: hidden;
}

.dashboard-panel-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    border-bottom: 1px solid var(--lightgrey);
}

.dashboard-panel-heading h2 {
    margin: 0 0 2px;
}

.dashboard-panel-heading p {
    margin: 0;
    color: var(--textalt);
    font-size: 13px;
}

.dashboard-panel-heading>a {
    font-size: 13px;
    color: var(--greenui);
    font-weight: 700;
    text-decoration: underline;
}

.dashboard-panel-heading>a:hover {
    font-size: 13px;
    color: var(--black);
    font-weight: 700;
    text-decoration: underline;
}

.dashboard-list {
    display: grid;
}

.dashboard-empty {
    padding: 28px 24px;
    color: var(--textalt);
    font-size: 14px;
}

.admin-shell .eyebrow, .page-shell .eyebrow, .dashboard-shell .eyebrow {
    text-transform: uppercase;
    letter-spacing: 0;
    font-size: 12px;
    font-weight: 800;
    color: var(--grey);
    margin-bottom: 5px;
}

.admin-heading h1, .page-shell .dashboard-heading h1 {
    font-size: 28px;
    line-height: 1.05;
    margin: 0;
    font-weight: 600;
}

.dashboard-kpi {
    align-content: baseline;
}

.dashboard-kpi, .panel {
    box-shadow: none !important;
}

.page-shell .dashboard-grid,.page-shell .dashboard-kpis {
    margin-top: 0;
}

.page-shell .dashboard-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.dashboard-kpis-expanded {
    grid-template-columns: repeat(4,minmax(0,1fr));
}

.dashboard-event-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 10px 20px;
    border-bottom: 1px solid var(--border);
}

.dashboard-event-row:last-child {
    border-bottom: 0;
}

.dashboard-event-row span {
    display: grid;
    gap: 3px;
}

.dashboard-event-row small {
    color: #777;
}


/* ============================================================
   Catalogue & Products
   ============================================================ */

.product-woocommerce-description summary {
    cursor: pointer;
    color: var(--black);
    font-size: 14px;
    font-weight: 700;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 10px 0;
}

.product-list {
    min-width: 0;
}

.product-thumb-cell {
    width: 58px;
}

.product-thumb,.placeholder-thumb {
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    object-fit: cover;
    background: var(--lightgrey);
}

.catalogue-shell {
    width: min(1500px,calc(100% - 40px));
    margin: 32px auto 80px;
}

.catalogue-toolbar {
    display: grid;
    grid-template-columns: minmax(220px,1fr) minmax(180px,260px) auto;
    gap: 12px;
    margin: 20px 75px 20px 0;
}

.catalogue-toolbar input,.catalogue-toolbar select {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    padding: 14px 15px;
    font: inherit;
    background: var(--white);
    outline: none;
}

.catalogue-toolbar select:focus,.catalogue-toolbar input:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}

.catalogue-toolbar button {
    white-space: nowrap;
}

.catalogue-meta {
    font-size: 13px;
    color: var(--textalt);
    margin-bottom: 14px;
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 22px;
}

.product-card {
    min-width: 0;
}

.product-card-image {
    aspect-ratio: 1/1;
    border-radius: 18px;
    overflow: hidden;
    background: var(--lightgrey);
    border: 1px solid var(--lightgrey);
}

.product-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-card-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--grey);
    font-size: 13px;
}

.product-card-title {
    font-weight: 800;
    font-size: 15px;
    line-height: 1.3;
    margin-top: 10px;
}

.catalogue-empty {
    padding: 50px 20px;
    text-align: center;
    background: var(--white);
    border: 1px solid var(--lightgrey);
    border-radius: 18px;
    color: var(--textalt);
}

.catalogue-loading {
    opacity: .45;
    pointer-events: none;
}

.product-card-button {
    appearance: none;
    background: none;
    color: inherit;
    padding: 0;
    border: 0;
    border-radius: 0;
    text-align: left;
    width: 100%;
    font: inherit;
    cursor: pointer;
}

.product-card-button:hover .product-card-image {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(15,23,42,.1);
}

.product-card-image {
    transition: .18s ease;
}

.product-card-price {
    font-size: 13px;
    color: var(--textalt);
    margin-top: 4px;
}

.catalogue-page .catalogue-shell {
    width: auto;
    max-width: none;
    margin: 30px 15px;
    padding: 0;
}

.catalogue-page .catalogue-toolbar {
    margin-top: 0;
}

.catalogue-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.catalogue-meta-row .catalogue-meta {
    margin-bottom: 0;
}

.scanner-ready {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--textalt);
    font-size: 12px;
    font-weight: 700;
}

.scanner-ready span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--greenui);
    box-shadow: 0 0 0 4px rgba(22,163,74,.1);
}

.scale-item-icon {
    display: grid;
    place-items: center;
    font-size: 32px;
    color: var(--midblack);
    background: var(--lightgrey);
}

.product-woocommerce-description {
    margin: 0 !important;
}

.product-list {
    min-height: 200px;
}

.product {
    width: 100%;
    min-height: 100px;
    padding: 10px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.product:hover {
    background: var(--cartbg);
}

.product:disabled {
    cursor: not-allowed;
    opacity: .48;
}

.product:disabled:hover {
    background: transparent;
}

.product-left {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}

.product-left img,.product-image-placeholder {
    width: 60px;
    height: 60px;
    border-radius: 15px;
    object-fit: cover;
    background: var(--imgbg);
    display: block;
    flex: 0 0 auto;
}

.product-name-wrap {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.product-name-wrap>span {
    font-size: 18px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.product-stock {
    font-size: 12px;
    font-weight: 500;
    color: var(--grey);
}

.product-stock.low {
    color: var(--yellowui);
}

.product-stock.out {
    color: var(--danger);
}

.product-right {
    display: flex;
    align-items: center;
    gap: 30px;
    flex: 0 0 auto;
}

.product-right strong {
    min-width: 75px;
    font-size: 18px;
    font-weight: 500;
    text-align: right;
}

.product:hover:not(:disabled) .add-btn {
    background: var(--black);
    color: var(--white);
}

.product-list.is-loading {
    opacity: .55;
    pointer-events: none;
}

.scale-thumb {
    font-size: 24px;
}

.back-to-catalogue {
    display: block;
    margin-top: 14px;
    text-align: center;
    color: var(--grey);
    font-size: 14px;
}

.catalogue-tools {
    display: flex;
    align-items: center;
    gap: 25px;
    flex: 1;
    justify-content: flex-start;
}


/* ============================================================
   Cart, Checkout & Payments
   ============================================================ */

.checkout-shell {
    width: min(1400px,calc(100% - 40px));
    margin: 32px auto 80px;
}

.checkout-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.checkout-heading h1 {
    margin: 0;
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 360px;
    gap: 24px;
    align-items: start;
}

.checkout-summary {
    position: sticky;
    top: 88px;
    display: grid;
    gap: 16px;
}

.checkout-summary h2 {
    margin-bottom: 4px;
}

.checkout-summary .button-link {
    width: 100%;
}

.checkout-items {
    display: grid;
}

.checkout-item {
    display: grid;
    grid-template-columns: 88px minmax(0,1fr) 120px 120px;
    gap: 18px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.checkout-item:first-child {
    padding-top: 0;
}

.checkout-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.checkout-item-image {
    width: 88px;
    height: 88px;
    border-radius: 14px;
    overflow: hidden;
    background: var(--lightgrey);
}

.checkout-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.checkout-item-info {
    display: grid;
    gap: 5px;
}

.checkout-item-info strong {
    font-size: 17px;
}

.checkout-item-info span,.checkout-qty-wrap small {
    font-size: 13px;
    color: var(--textalt);
}

.checkout-item-info .remove-item {
    justify-self: start;
    margin-top: 3px;
}

.checkout-qty-wrap label {
    gap: 5px;
}

.checkout-qty {
    padding: 10px 12px;
    font-size: 16px;
}

.checkout-line-total {
    text-align: right;
    font-size: 18px;
    font-weight: 900;
}

.cart-fab {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 90;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--black);
    color: var(--white);
    text-decoration: none;
    box-shadow: 0 12px 34px rgba(15,23,42,.28);
    transition: transform .18s ease,box-shadow .18s ease,background .18s ease;
}

.cart-fab:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 40px rgba(15,23,42,.34);
    background: var(--black);
}

.cart-fab:focus-visible {
    outline: 3px solid var(--white);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px var(--black);
}

.cart-fab-icon {
    width: 28px;
    height: 28px;
    display: block;
}

.cart-fab-count {
    position: absolute;
    right: -2px;
    top: -2px;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--white);
    color: var(--black);
    border: 2px solid var(--black);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    box-sizing: border-box;
}

.cart-fab-count:empty {
    display: none;
}

.payment-pill {
    justify-self: start;
    display: inline-flex !important;
    align-items: center;
    width: auto;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px !important;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .04em;
}

.payment-pill.cash {
    background: var(--lightgreen);
    color: var(--greenui);
}

.payment-pill.card {
    background: var(--lightgrey);
    color: var(--blueui);
}

.checkout-payment-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.checkout-payment-buttons button {
    width: 100%;
    margin: 0;
    min-height: 50px;
}

.checkout-payment-buttons .secondary {
    margin: 0;
}

.checkout-summary>label {
    margin-top: 0;
}

.checkout-summary .secondary-link {
    display: block;
    width: 100%;
    margin-top: 0;
}

.checkout-products-panel {
    min-width: 0;
}

.cash-modal-card {
    position: relative;
    z-index: 1;
    width: min(480px,100%);
    background: var(--white);
    border-radius: 22px;
    padding: 28px;
    box-shadow: 0 30px 100px rgba(0,0,0,.25);
}

.cash-modal-card h2 {
    margin: 0 0 20px;
    font-size: 28px;
}

.cash-total-row,.cash-change-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
}

.cash-total-row {
    border-top: 1px solid var(--lightgrey);
    border-bottom: 1px solid var(--lightgrey);
    margin-bottom: 18px;
}

.cash-change-row {
    font-size: 18px;
    margin-top: 5px;
}

.cash-total-row strong,.cash-change-row strong {
    font-size: 22px;
}

.checkout-scale-item .scale-fixed-qty {
    display: grid;
    gap: 5px;
}

.checkout-scale-item .scale-fixed-qty>span {
    font-weight: 800;
}

.checkout-scale-item .scale-fixed-qty small {
    color: var(--textalt);
}

.checkout-scale-item {
    background: var(--lightgrey);
    border-radius: 14px;
    padding-left: 10px;
    padding-right: 10px;
}

.checkout-scale-item .checkout-item-info span {
    color: var(--textalt);
}

.checkout-payment-buttons-three {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.terminal-picker-wrap {
    display: grid;
    gap: 10px;
    padding: 14px 0;
    border-top: 1px solid var(--lightgrey);
    border-bottom: 1px solid var(--lightgrey);
}

.terminal-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.terminal-picker-head>span {
    font-size: 12px;
    color: var(--textalt);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.terminal-picker-head>a {
    font-size: 12px;
    font-weight: 800;
    color: var(--black);
    text-decoration: none;
}

.terminal-switcher {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
}

.terminal-option {
    min-width: 0;
    background: var(--lightgrey);
    color: var(--midblack);
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 11px 12px;
    display: grid;
    gap: 3px;
    text-align: left;
    box-shadow: none;
}

.terminal-option span {
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.terminal-option small {
    font-size: 11px;
    font-weight: 700;
    color: var(--textalt);
}

.terminal-option:hover {
    background: var(--lightgrey);
    color: var(--black);
}

.terminal-option.active {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

.terminal-option.active small {
    color: var(--lightgrey);
}

.terminal-empty {
    font-size: 13px;
    color: var(--textalt);
    padding: 10px 0;
}

.terminal-empty a {
    color: var(--black);
    font-weight: 800;
}

.payment-pill.gift_card {
    background: var(--lightyellow);
    color: var(--yellowui);
}

.gift-card-split-card {
    width: min(520px,100%);
}

.gift-card-breakdown {
    display: grid;
    gap: 8px;
    margin: 16px 0;
    padding: 14px;
    border-radius: 14px;
    background: var(--lightgrey);
    border: 1px solid var(--lightgrey);
}

.gift-card-breakdown>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.gift-card-remaining {
    padding-top: 10px;
    border-top: 1px solid var(--lightgrey);
    font-size: 17px;
}

.gift-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 14px;
}

.gift-card-actions #complete-gift-card {
    grid-column: 1/-1;
}

.cash-gift-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: -4px 0 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--lightgrey);
    color: var(--midblack);
    font-size: 13px;
}

.cash-gift-row strong {
    color: var(--black);
}

.checkout-header {
    justify-content: flex-start;
}

.cart {
    position: fixed;
    top: 0;
    right: max(0px,calc((100vw - 1600px)/2));
    width: 450px;
    height: 100vh;
    padding: 40px;
    display: flex;
    flex-direction: column;
    background: var(--cartbg);
    border-left: 1px solid var(--border);
    z-index: 999;
}

.cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--border);
}

.cart-header h2 {
    margin: 0;
    font-size: 20px;
}

.cart-header button {
    border: 0;
    background: transparent;
    color: var(--redui);
    font-size: 15px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}

.cart-header button:disabled {
    opacity: .4;
    cursor: not-allowed;
}


.cart-header button:hover {
    border: 0;
    background: transparent;
    color: var(--black);
    font-size: 15px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}


.cart-items {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}

.cart-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    padding: 15px 0;
    border-bottom: 1px solid var(--border);
}

.cart-item-name {
    font-size: 17px;
    font-weight: 600;
}

.cart-item-price {
    margin-top: 4px;
    color: var(--grey);
    font-size: 15px;
}

.cart-controls {
    display: flex;
    align-items: center;
    gap: 9px;
}

.cart-controls button,.round-control {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--lightgrey);
    font-size: 20px;
    cursor: pointer;
    padding: 0;
    display: grid;
    place-items: center;
}

.cart-controls button:hover,.round-control:hover {
    background: var(--black);
    color: var(--white);
}

.cart-controls span {
    min-width: 20px;
    text-align: center;
    font-size: 16px;
}

.cart-empty {
    padding: 28px 0;
    color: var(--grey);
    font-size: 15px;
}

.cart-footer {
    padding-top: 28px;
    border-top: 1px solid var(--midgrey);
}

.pay-btn {
    width: 100%;
    height: auto !important;
    font-family: "Inter", Arial, Helvetica, sans-serif;
    border: 0;
    border-radius: 0px;
    background: var(--black);
    color: var(--white);
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer;
    text-align: center !important;
   padding: 10px 15px!important;
    text-decoration: none !important;
}

.pay-btn:hover {
    background: var(--btnhover);
}

.pay-btn.disabled {
    opacity: .35;
    pointer-events: none;
}

.checkout-list {
    padding-top: 8px;
}

.checkout-row {
    min-height: 100px;
    padding: 14px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border-bottom: 1px solid var(--border);
}

.checkout-product-main {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}

.checkout-product-main>div:last-child {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.checkout-product-main strong {
    font-size: 18px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.checkout-product-main small {
    color: var(--grey);
    font-size: 14px;
}

.checkout-thumb {
    width: 60px;
    height: 60px;
    border-radius: 15px;
    background: var(--imgbg);
    overflow: hidden;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.checkout-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.checkout-row-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex: 0 0 auto;
}

.checkout-row-actions>strong {
    min-width: 80px;
    text-align: right;
    font-size: 18px;
    font-weight: 500;
}

.checkout-controls {
    min-width: 118px;
    justify-content: flex-end;
}

.checkout-sidebar {
    padding-bottom: 30px;
}

.checkout-sidebar-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0 22px;
}

.terminal-switcher {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.terminal-option {
    padding: 11px 12px;
    border: 1px solid var(--midgrey);
    border-radius: 0px;
    opacity: 0.7;
    background: var(--white);
    display: grid;
    gap: 3px;
    text-align: left;
    cursor: pointer;
}

.terminal-option span {
    font-size: 13px;
    font-weight: 700;
}

.terminal-option small {
    font-size: 11px;
    color: var(--grey);
}

.terminal-option.active {
    border-color: var(--black);
    box-shadow: inset 0 0 0 1px var(--black);
    opacity: 1;
}

.terminal-empty {
    padding: 12px 0;
    color: var(--grey);
    font-size: 13px;
}

.checkout-actions {
    padding-top: 22px;
}

.payment-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}

.payment-btn {
    min-height: 44px;
    border: 0;
    border-radius: 0px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.secondary-payment {
    background: var(--lightgrey);
}

.primary-payment {
    background: var(--black);
    color: var(--white);
}

.payment-btn:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.payment-status {
    margin-top: 18px;
    padding: 18px;
    border-radius: 14px;
    background: var(--lightgrey);
    text-align: center;
}

.payment-status h3 {
    margin: 10px 0 5px;
    font-size: 17px;
}

.payment-status p {
    margin: 0;
    color: var(--grey);
    font-size: 13px;
    line-height: 1.4;
}

.payment-status.status-success .spinner {
    animation: none;
    border: 0;
    background: var(--greenui);
    position: relative;
}

.payment-status.status-success .spinner:after {
    content: "✓";
    color: var(--white);
    line-height: 28px;
    font-weight: 900;
}

.payment-status.status-failed .spinner {
    animation: none;
    border: 0;
    background: var(--redui);
    position: relative;
}

.payment-status.status-failed .spinner:after {
    content: "×";
    color: var(--white);
    line-height: 27px;
    font-size: 22px;
}

.payment-modal-card {
    position: relative;
    z-index: 1;
    width: min(460px,100%);
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding: 34px;
    border-radius: 24px;
    background: var(--white);
    box-shadow: 0 30px 80px rgba(0,0,0,.22);
}

.payment-modal-card h2 {
    margin: 8px 0 24px;
    font-size: 30px;
}

.modal-total-row,.modal-split-row,.gift-breakdown>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
}

.modal-split-row {
    color: var(--grey);
    font-size: 14px;
}

.gift-breakdown {
    padding: 8px 0 14px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.gift-actions {
    display: grid;
    gap: 9px;
    margin-top: 18px;
}

.gift-actions button:disabled,.modal-primary:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.pay-btn {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

.cart-primary-actions {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 10px;
    margin-top: 0px;
}

.cart-primary-actions .save-btn,.cart-primary-actions .pay-btn {
    width: 100%;
    
    display: grid;
    place-items: center;
    margin: 0;
    padding: 10px 15px!important;
}

.save-btn {
    border: 1px solid var(--black);
    background: var(--white);
    color: var(--black);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.save-btn:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.save-btn:hover {
    border: 1px solid var(--black);
    background: var(--black);
    color: var(--white);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.tip-field {
    margin-top: 7px;
}

.tip-field input {
    width: 100%;
    min-width: 0;
}

.checkout-sidebar .sidebar-field .money-field {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    border: 1px solid var(--lightgrey);
    background: var(--white);
    padding: 0 12px;
}

.checkout-sidebar .sidebar-field .money-field input {
    border: 0 !important;
    padding: 12px 8px !important;
    outline: 0;
    background: transparent;
}

.split-payment {
    grid-column: 1/-1;
    background: var(--lightgrey);
    color: var(--black);
}

.split-bill-card {
    width: min(520px,calc(100% - 32px));
}

.split-preview,.split-next-share {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    border-top: 1px solid var(--border);
}

.split-preview strong {
    font-size: 20px;
}

.split-next-share {
    margin: 8px 0 16px;
}

.split-next-share strong {
    font-size: 28px;
}

.split-progress-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px;
    margin: 4px 0 18px;
}

.split-progress-grid>div {
    display: grid;
    gap: 5px;
    padding: 12px;
    background: var(--lightgrey);
}

.split-progress-grid span {
    font-size: 12px;
    color: var(--grey);
}

.split-progress-grid strong {
    font-size: 16px;
}

.split-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 14px;
}

.split-actions button {
    min-height: 50px;
}

.split-bill-active .checkout-controls button,.split-bill-active #clear-cart {
    pointer-events: none;
    opacity: .4;
}


/* ============================================================
   Modals, Toasts & Status
   ============================================================ */

.notice {
    padding: 12px 14px;
    border-radius: 12px;
    margin-bottom: 18px;
    font-size: 14px;
}

.notice.error {
    background: var(--lightpink);
    color: var(--redui);
}

.status-panel {
    margin-top: 24px;
    padding: 22px;
    border: 1px solid var(--lightgrey);
    border-radius: 16px;
    text-align: center;
    background: var(--lightgrey);
}

.status-panel h2 {
    margin: 12px 0 6px;
    font-size: 22px;
}

.status-panel p {
    margin: 0;
    color: var(--grey);
    line-height: 1.5;
}

.spinner {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 4px solid var(--lightgrey);
    border-top-color: var(--black);
    margin: 0 auto;
    animation: spin .8s linear infinite;
}

.status-success .spinner {
    animation: none;
    border: 0;
    background: var(--greenui);
    position: relative;
}

.status-success .spinner:after {
    content: "✓";
    color: var(--white);
    font-size: 24px;
    line-height: 34px;
    font-weight: 900;
}

.status-failed .spinner {
    animation: none;
    border: 0;
    background: var(--redui);
    position: relative;
}

.status-failed .spinner:after {
    content: "×";
    color: var(--white);
    font-size: 26px;
    line-height: 32px;
    font-weight: 900;
}

.notice.success {
    background: var(--lightgreen);
    color: var(--greenui);
}

.modal-open {
    overflow: hidden;
}

.modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 20px;
}

.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.65);
    backdrop-filter: blur(4px);
}

.modal-card {
    position: relative;
    z-index: 1;
    width: min(900px,100%);
    max-height: calc(100vh - 40px);
    overflow: auto;
    background: var(--white);
    border-radius: 24px;
    box-shadow: 0 30px 100px rgba(0,0,0,.25);
    display: grid;
    grid-template-columns: minmax(280px,1fr) minmax(300px,.85fr);
}

.modal-close {
    position: absolute;
    right: 14px;
    top: 14px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    padding: 0;
    font-size: 28px;
    line-height: 1;
    background: var(--white);
    color: var(--black);
    box-shadow: 0 5px 20px rgba(0,0,0,.12);
    z-index: 2;
}

.modal-product-image {
    aspect-ratio: 1/1;
    background: var(--lightgrey);
    min-height: 100%;
}

.modal-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.modal-product-content {
    padding: 42px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.modal-product-content h2 {
    font-size: 34px;
    line-height: 1.05;
    margin: 0 0 12px;
}

.modal-price {
    font-size: 26px;
    font-weight: 900;
    margin-bottom: 6px;
}

.modal-stock {
    font-size: 13px;
    color: var(--textalt);
    margin-bottom: 24px;
}

.modal-product-content label {
    margin-bottom: 16px;
}

.modal-notice {
    margin: 12px 0 0;
}

.notice:not(.error):not(.success) {
    background: var(--lightyellow);
    color: var(--yellowui);
}

.scanner-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    z-index: 120;
    transform: translateX(-50%);
    max-width: min(520px,calc(100% - 30px));
    padding: 12px 16px;
    border-radius: 999px;
    background: var(--black);
    color: var(--white);
    box-shadow: 0 12px 38px rgba(15,23,42,.25);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.scanner-toast.success {
    background: var(--greenui);
}

.scanner-toast.error {
    background: var(--redui);
}

.confirm-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: calc(100vw - 32px);
    padding: 12px 12px 12px 18px;
    border-radius: 16px;
    background: var(--black);
    color: var(--white);
    box-shadow: 0 16px 44px rgba(0,0,0,.24);
    font-size: 14px;
    font-weight: 600;
    opacity: 0;
    transform: translate(-50%,12px);
    transition: opacity .18s ease,transform .18s ease;
}

.confirm-toast.show {
    opacity: 1;
    transform: translate(-50%,0);
}

.confirm-toast-actions {
    display: flex;
    gap: 6px;
}

.confirm-toast-actions button {
    min-height: 36px;
    padding: 0 13px;
    border: 0;
    border-radius: 10px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.confirm-toast-cancel {
    background: #333;
    color: var(--white);
}

.confirm-toast-confirm {
    background: var(--white);
    color: var(--black);
}

.notice {
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 14px;
}

.scanner-toast {
    position: fixed;
    left: 25px;
    bottom: 25px;
    width: 350px;
    text-align: center;
    transform: none;
    z-index: 120;
    padding: 12px 18px;
    border-radius: 0px;
    background: var(--black);
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.spinner {
    width: 28px;
    height: 28px;
    border: 3px solid var(--midgrey);
    border-top-color: var(--black);
    border-radius: 50%;
    margin: 0 auto;
    animation: spin .8s linear infinite;
}

.modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 20px;
}

.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
}

.modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: var(--lightgrey);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.modal-kicker {
    color: var(--grey);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.modal-total-row {
    font-size: 17px;
}

.modal-total-row strong {
    font-size: 23px;
}

.modal-field {
    display: grid;
    gap: 8px;
    margin: 18px 0;
    font-size: 14px;
    font-weight: 600;
}

.modal-field>input,.money-field {
    width: 100%;
    border: 1px solid var(--midgrey);
    border-radius: 0px;
    background: var(--white);
}

.modal-field>input {
    padding: 14px;
}

.modal-primary,.modal-secondary {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 14px;
    font-weight: 700;
    cursor: pointer;
}

.modal-primary {
    background: var(--black);
    color: var(--white);
}

.modal-secondary {
    background: var(--lightgrey);
}

.confirm-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: calc(100vw - 32px);
    padding: 12px 12px 12px 18px;
    border-radius: 16px;
    background: var(--black);
    color: var(--white);
    box-shadow: 0 16px 44px rgba(0,0,0,.24);
    font-size: 16px;
    font-weight: 600;
    opacity: 0;
    transform: translate(-50%,12px);
    transition: opacity .18s ease,transform .18s ease;
}

.confirm-toast-actions {
    display: flex;
    gap: 15px;
}

.confirm-toast-actions button {
    min-height: 36px;
    padding: 0 13px;
    border: 0;
    border-radius: 10px;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

.modal-field > input {
    font-family: "Inter",Arial,Helvetica,sans-serif;
    font-size: 16px;
}

.offline-banner {
    position: fixed;
    left: 50%;
    top: 14px;
    z-index: 500;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: calc(100vw - 28px);
    padding: 10px 14px;
    background: var(--redui);
    color: var(--white);
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
    transform: translate(-50%,-160%);
    opacity: 0;
    transition: .18s ease;
}

.offline-banner.show {
    transform: translate(-50%,0);
    opacity: 1;
}

.offline-banner strong {
    font-size: 13px;
}

.offline-banner span {
    font-size: 12px;
}


/* ============================================================
   Settings & Admin
   ============================================================ */

.product-tools-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
    align-items: start;
    margin-bottom: 24px;
}

.product-tools-grid .panel {
    height: 100%;
}

.csv-columns {
    display: grid;
    gap: 8px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--lightgrey);
}

.csv-columns code {
    display: block;
    padding: 12px;
    border-radius: 10px;
    background: var(--lightgrey);
    color: var(--midblack);
    white-space: normal;
    line-height: 1.55;
    margin: 10px 0;
}

.import-preview {
    padding: 0;
    overflow: hidden;
}

.import-preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--lightgrey);
}

.import-preview-head h2 {
    margin: 0 0 4px;
}

.import-preview-head p {
    margin: 0;
    color: var(--textalt);
    font-size: 13px;
}

.import-preview .table-wrap {
    padding: 0 24px;
}

.import-row-error {
    background: var(--lightpink);
}

.import-preview-note {
    padding: 0 24px;
}

.import-actions {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 24px;
    border-top: 1px solid var(--lightgrey);
}

.import-actions form:first-child {
    display: flex;
    align-items: end;
    gap: 12px;
}

.import-actions form:first-child label {
    min-width: 260px;
}

.import-actions .secondary {
    margin: 0;
    width: auto;
}

.import-actions select {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 12px;
    padding: 12px 14px;
    font: inherit;
    background: var(--white);
}

.settings-shell {
    max-width: 1200px;
}

.device-settings-panel {
    margin-bottom: 24px;
}

.settings-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
    align-items: start;
}

.settings-terminal-list {
    margin-top: 24px;
}

.stack-form textarea, .stack-form select, .device-settings-panel select {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 0;
    padding: 15px;
    font: inherit;
    background: var(--white);
    outline: none;
    margin: 10px 0 0 0;
}

.stack-form textarea:focus,.stack-form select:focus,.device-settings-panel select:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}

.paired-terminal {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3px 12px;
    padding: 12px 0;
    border-top: 1px solid var(--lightgrey);
    border-bottom: 1px solid var(--lightgrey);
}

.paired-terminal span {
    font-size: 12px;
    color: var(--textalt);
}

.paired-terminal strong {
    grid-row: 2;
    min-width: 0;
    overflow-wrap: anywhere;
}

.paired-terminal a {
    grid-column: 2;
    grid-row: 1/3;
    align-self: center;
    color: var(--black);
    font-size: 12px;
    font-weight: 800;
}

.product-tools-shell {
    width: 100%;
    padding: 30px 20px 60px;
    margin: 0px auto;
}

.settings-page-shell button, .panel button {
    color: var(--white);
}

.advanced-shell .dashboard-panel-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 0 0 20px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.settings-layout {
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(420px,.95fr);
    gap: 52px;
    align-items: start;
}

.settings-business-form {
    display: grid;
    gap: 16px;
}

.settings-business-form label {
    font-size: 14px;
    font-weight: 700;
    display: grid;
    gap: 8px;
}

.settings-business-form input,.settings-business-form textarea,.settings-terminal-form input {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 14px;
    padding: 14px 15px;
    font: inherit;
    background: var(--white);
    outline: none;
}

.settings-business-form textarea {
    resize: vertical;
    min-height: 98px;
}

.settings-business-form input:focus,.settings-business-form textarea:focus,.settings-terminal-form input:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

.settings-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.settings-save {
    width: 100%;
    height: 52px;
}

.settings-side {
    display: grid;
    gap: 28px;
}

.business-logo-block {
    display: grid;
    gap: 10px;
}

.business-logo-dropzone {
    width: min(100%,410px);
    min-height: 170px;
    border: 1px solid #777;
    background: var(--white);
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
}

.business-logo-dropzone.dragging {
    background: var(--lightgrey);
}

.business-logo-dropzone img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.business-logo-placeholder {
    display: grid;
    gap: 4px;
    font-size: 16px;
}

.business-logo-placeholder strong {
    font-size: 18px;
}

.settings-terminal-list h2,.settings-terminal-add h2 {
    margin: 0 0 15px;
    font-size: 17px;
}

.settings-terminal-table {
    width: 100%;
    border-collapse: collapse;
}

.settings-terminal-table th,.settings-terminal-table td {
    text-align: left;
    padding: 13px 10px;
    border-bottom: 1px solid var(--border);
}

.settings-terminal-table th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--grey);
}

.settings-terminal-table .actions {
    text-align: right;
}

.settings-terminal-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1.3fr);
    gap: 12px;
    align-items: end;
}

.settings-terminal-form .terminal-active {
    grid-column: 2;
    display: flex;
    align-items: center;
    gap: 8px;
}

.settings-terminal-form .terminal-active input {
    width: auto;
}

.settings-terminal-form button {
    grid-column: 1;
    width: 100%;
    height: 48px;
}

.settings-terminal-form .cancel-terminal {
    grid-column: 2;
    align-self: center;
}

.settings-logo-note {
    font-size: 13px;
    color: var(--grey);
}

.settings-section-title {
    margin: 0 0 20px;
    font-size: 22px;
}

.settings-business {
    min-width: 0;
}

.settings-side {
    min-width: 0;
}

.business-logo-field {
    display: grid;
    gap: 10px;
}

.business-logo-row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    flex-wrap: wrap;
}

.business-logo-dropzone {
    width: 370px;
    max-width: 100%;
    min-height: 220px;
    border: 2px dashed var(--cartbtn);
    border-radius: 0px;
    background: var(--cartbg);
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    transition: .2s ease;
}

.business-logo-dropzone:hover,.business-logo-dropzone.dragging {
    border-color: var(--black);
    background: var(--lightgrey);
}

.business-logo-dropzone .dropzone-placeholder {
    display: grid;
    gap: 6px;
    color: var(--midblack);
}

.business-logo-dropzone .dropzone-placeholder strong {
    color: var(--black);
    font-size: 16px;
}

.business-logo-dropzone .dropzone-placeholder span,.business-logo-dropzone .dropzone-placeholder small {
    font-size: 13px;
}

.business-logo-current {
    display: grid;
    gap: 10px;
    justify-items: start;
}

.business-logo-current img {
    display: block;
    width: 200px;
    height: 200px;
    object-fit: contain;
    background: transparent;
}

.business-logo-current .check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.business-logo-current .check input {
    width: auto;
}

.settings-save,.settings-terminal-form button,#business-logo-use-crop,.settings-terminal-edit-form button[type="submit"] {
    color: var(--white);
}

.logo-crop-actions #business-logo-cancel-crop {
    background: var(--lightgrey);
    color: var(--black);
}

.logo-crop-actions #business-logo-use-crop {
    background: var(--black);
}

.settings-terminal-form .terminal-active {
    grid-column: 2;
    align-self: stretch;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 4px;
}

.settings-edit-link {
    appearance: none;
    border: 0;
    background: none;
    color: var(--black) !important;
    padding: 0;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

.settings-terminal-table .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.settings-terminal-table .actions form {
    display: inline;
    margin: 0;
}

.settings-terminal-table .link-button {
    color: var(--redui);
}

.settings-modal {
    position: fixed;
    inset: 0;
    z-index: 320;
    visibility: hidden;
    pointer-events: none;
}

.settings-modal.open {
    visibility: visible;
    pointer-events: auto;
}

.settings-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.55);
    backdrop-filter: blur(3px);
}

.settings-modal-card {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: min(560px,calc(100% - 32px));
    max-height: calc(100vh - 40px);
    overflow: auto;
    background: var(--white);
    border-radius: 20px;
    padding: 26px;
    box-shadow: 0 30px 100px rgba(0,0,0,.25);
}

.settings-logo-modal-card {
    width: min(500px,calc(100% - 32px));
}

.settings-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.settings-modal-header h2 {
    margin: 0;
    font-size: 22px;
}

.settings-logo-modal-card #business-logo-cropper {
    min-height: 380px;
}

.settings-terminal-edit-form {
    display: grid;
    gap: 16px;
}

.settings-terminal-edit-form label {
    display: grid;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
}

.settings-terminal-edit-form input {
    width: 100%;
    border: 1px solid var(--lightgrey);
    border-radius: 14px;
    padding: 14px 15px;
    font: inherit;
    background: var(--white);
    outline: none;
}

.settings-terminal-edit-form input:focus {
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

.settings-terminal-modal-actions {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    margin-top: 4px;
}

.settings-terminal-modal-actions .terminal-active {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-self: start;
}

.settings-terminal-modal-actions .terminal-active input {
    width: auto;
}

.settings-terminal-modal-actions button {
    padding: 10px 18px;
}

.settings-terminal-modal-actions .terminal-modal-cancel {
    background: var(--lightgrey);
    color: var(--black);
}

.settings-terminal-modal-actions button[type="submit"] {
    background: var(--black);
}

.settings-modal-header {
    gap: 16px;
}

.settings-modal-close {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    padding: 0 !important;
    display: grid;
    place-items: center;
    border: 0;
    background: var(--lightgrey) !important;
    color: var(--black) !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1;
    cursor: pointer;
}

.settings-modal-card {
    box-sizing: border-box;
}

.settings-logo-modal-card {
    overflow: hidden;
}

.settings-logo-modal-card #business-logo-cropper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
}

.settings-logo-modal-card .cr-boundary {
    max-width: 100% !important;
}

.settings-logo-modal-card .cr-viewport {
    max-width: calc(100vw - 138px);
    max-height: calc(100vw - 138px);
}

.scale-csv-panel {
    margin-top: 24px;
}

.scale-csv-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.scale-csv-heading h2 {
    margin: 0 0 6px;
}

.scale-csv-heading p {
    margin: 0;
}

.scale-csv-heading .button-link {
    flex: 0 0 auto;
}

.scale-csv-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 14px;
    align-items: end;
}

.scale-csv-form label {
    min-width: 0;
}

.scale-csv-form input[type="file"] {
    width: 100%;
    border: 1px solid var(--lightgrey);
    background: var(--white);
    padding: 12px;
    font: inherit;
}

.scale-csv-form button {
    min-height: 48px;
    padding: 12px 22px;
}

.admin-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.admin-list-heading h2 {
    margin: 0;
}

.admin-list-heading>span {
    font-size: 13px;
    color: #777;
}

.admin-list-filters {
    display: grid;
    grid-template-columns: minmax(220px,1.5fr) repeat(3,minmax(150px,.7fr));
    gap: 10px;
    margin-bottom: 16px;
}

.admin-list-filters select {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--lightgrey);
    background: var(--white);
    padding: 10px 12px;
    font: inherit;
}

.admin-products-list .table-wrap,.product-list .table-wrap {
    margin-top: 4px;
}

.admin-products-list .actions,.product-list .actions {
    white-space: nowrap;
}

.admin-products-list .actions form,.product-list .actions form {
    display: inline;
    margin-left: 10px;
}

.admin-list-filters {
    grid-template-columns: minmax(240px,1.6fr) repeat(4,minmax(135px,.72fr)) auto !important;
    align-items: stretch;
}

.admin-list-filters .admin-filter-reset {
    min-height: 42px;
    padding: 0 16px;
}

.csv-dropzone {
    min-height: 170px;
    border: 2px dashed var(--cartbtn);
    border-radius: 16px;
    background: var(--cartbg);
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    transition: .2s ease;
    padding: 24px;
    outline: none;
}

.csv-dropzone:hover,.csv-dropzone.dragging,.csv-dropzone:focus-visible {
    border-color: var(--black);
    background: var(--lightgrey);
}

.csv-dropzone.has-file {
    border-color: var(--black);
    background: var(--white);
}

.csv-dropzone .dropzone-placeholder {
    pointer-events: none;
}

.csv-dropzone-filename.selected {
    color: var(--black);
    font-weight: 700;
}

.advanced-grid {
    display: grid;
    grid-template-columns: minmax(0,1.1fr) minmax(340px,.9fr);
    gap: 20px;
    margin-bottom: 20px;
}

.advanced-panel h2 {
    margin: 0 0 8px;
}

.advanced-panel h3 {
    margin: 20px 0 8px;
}

.advanced-actions {
    margin: 18px 0;
}

.backup-list {
    display: grid;
    border-top: 1px solid var(--border);
    margin-top: 18px;
}

.advanced-note {
    display: grid;
    gap: 4px;
    margin-top: 18px;
    padding: 14px;
    background: var(--lightgrey);
}

.advanced-test-form {
    margin-top: 10px;
}

.advanced-section-heading {
    margin: 0 0 30px 0;
}

.advanced-section-heading h2 {
    margin: 0;
    font-size: 24px;
}

.advanced-section-heading p {
    margin: 5px 0 0;
    color: #777;
}

.advanced-subheading {
    margin: 0 0 12px;
    font-size: 17px;
}

.restore-dropzone {
    min-height: 170px;
    border: 2px dashed var(--lightgrey);
    border-radius: 16px;
    background: var(--lightgrey);
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    transition: .2s ease;
    padding: 24px;
    outline: none;
    margin: 12px 0 14px;
}

.restore-dropzone:hover,.restore-dropzone.dragging,.restore-dropzone:focus-visible {
    border-color: var(--black);
    background: var(--lightgrey);
}

.restore-dropzone.has-file {
    border-color: var(--black);
    background: var(--white);
}

.restore-dropzone .dropzone-placeholder {
    display: grid;
    gap: 6px;
    pointer-events: none;
    color: var(--midblack);
}

.restore-dropzone .dropzone-placeholder strong {
    color: var(--black);
    font-size: 16px;
}

.restore-dropzone .dropzone-placeholder span,.restore-dropzone .dropzone-placeholder small {
    font-size: 13px;
}

.restore-file-selected {
    display: grid;
    gap: 5px;
    pointer-events: none;
}

.restore-file-selected strong {
    font-size: 15px;
    color: var(--black);
}

.restore-file-selected span {
    font-size: 13px;
    color: #777;
}

.advanced-panel #restore-backup-form>.secondary {
    width: 100%;
    min-height: 48px;
}

.advanced-panel #restore-backup-form {
    gap: 0;
}


/* ============================================================
   Reports & Reconciliation
   ============================================================ */

.report-heading,.reconcile-shell .admin-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
}

.report-range,.reconcile-range {
    display: flex;
    align-items: end;
    gap: 10px;
}

.report-range label,.reconcile-range label {
    display: grid;
    gap: 6px;
    font-size: 12px;
    color: #777;
}

.report-range input,.reconcile-range select {
    border: 1px solid var(--lightgrey);
    padding: 10px 12px;
    background: var(--white);
}

.report-kpis {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 14px;
    margin: 22px 0;
}

.report-kpis .panel {
    display: grid;
    gap: 8px;
}

.report-kpis span {
    font-size: 13px;
    color: #777;
}

.report-kpis strong {
    font-size: 26px;
}

.report-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.report-grid h2 {
    margin: 0 0 15px;
}

.report-list {
    display: grid;
}

.report-list>div {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.report-list>div:last-child {
    border-bottom: 0;
}

.report-list span {
    display: grid;
    gap: 3px;
}

.report-list small {
    color: #777;
}

.reconcile-legend {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    margin: 18px 0;
    font-size: 13px;
    color: var(--midblack);
}

.reconcile-legend span {
    display: flex;
    align-items: center;
    gap: 7px;
}

.recon-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: block;
}

.recon-dot.recoverable {
    background: var(--greenui);
}

.recon-dot.missing {
    background: var(--redui);
}

.recon-dot.duplicate {
    background: var(--yellowui);
}

.reconcile-list {
    padding: 0;
    overflow: hidden;
}

.reconcile-row {
    display: grid;
    grid-template-columns: minmax(240px,1.2fr) minmax(190px,.8fr) minmax(240px,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 17px 20px;
    border-bottom: 1px solid var(--border);
}

.reconcile-row:last-child {
    border-bottom: 0;
}

.reconcile-row>div:first-child {
    display: grid;
    gap: 4px;
}

.reconcile-row span {
    font-size: 12px;
    color: #777;
}

.reconcile-statuses {
    display: grid;
    gap: 5px;
}

.reconcile-flags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.reconcile-flag {
    padding: 5px 7px;
    font-weight: 700;
}

.reconcile-flag.recoverable {
    background: var(--lightgreen);
    color: var(--greenui);
}

.reconcile-flag.missing {
    background: var(--lightpink);
    color: var(--redui);
}

.reconcile-flag.duplicate {
    background: var(--lightyellow);
    color: var(--yellowui);
}

.reconcile-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.reconcile-actions a {
    color: var(--black);
}

.reconcile-actions form {
    margin: 0;
}

.reconcile-actions button {
    padding: 9px 12px;
}

.reports-shell {
    min-width: 0;
}

.report-message {
    margin: 0 0 18px;
}

.reports-loading .report-kpis, .reports-loading .report-charts, .reports-loading .report-vat-panel {
    opacity: .55;
    pointer-events: none;
    transition: opacity .16s ease;
}

.report-range button {
    padding: 11px 16px;
}

.report-charts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 20px 0;
}

.report-chart {
    min-width: 0;
    padding: 22px;
}

.report-chart-wide {
    grid-column: 1 / -1;
}

.report-chart-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.report-chart-heading h2 {
    margin: 0;
    font-size: 18px;
}

.report-chart-heading span {
    font-size: 12px;
    color: #777;
    font-weight: 600;
}

.apex-report-chart {
    width: 100%;
    min-height: 320px;
}

.report-product-chart {
    min-height: 340px;
}

.report-vat-panel {
    margin-top: 20px;
}

.report-vat-panel .report-list {
    margin-top: 4px;
}

.report-empty {
    padding: 18px 0;
    color: #777;
    font-size: 14px;
}

.advanced-health-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    margin: 0 0 24px;
}

.health-card {
    display: grid;
    gap: 7px;
}

.health-card>span {
    font-size: 13px;
    color: #777;
}

.health-card>strong {
    font-size: 24px;
}

.health-card small {
    color: #777;
}

.backup-list>div,.audit-mini-list>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.backup-list span,.audit-mini-list span {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.backup-list small,.audit-mini-list small {
    color: #777;
}

.mypos-status-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    margin-bottom: 15px;
}

.health-status.connected {
    color: var(--greenui);
}

.health-status.offline {
    color: var(--redui);
}

.health-status.not_configured,.health-status.not_tested {
    color: #777;
}

.audit-filter {
    display: grid;
    grid-template-columns: minmax(220px,1fr) minmax(180px,280px) auto auto;
    gap: 10px;
    align-items: center;
    margin-bottom: 20px;
}

.audit-filter input,.audit-filter select {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--lightgrey);
    background: var(--white);
}

.audit-filter a {
    color: var(--black);
}

.audit-table-panel {
    padding: 0;
    overflow: hidden;
}

.audit-severity {
    font-size: 12px;
    text-transform: capitalize;
}

.audit-severity.error {
    color: var(--redui);
}

.audit-severity.warning {
    color: var(--yellowui);
}

.audit-severity.info {
    color: var(--greenui);
}

.report-range button, #report-export {
    padding: 10px 15px !important;
    font-weight: 500;
}


/* ============================================================
   Sales, Stock & Refunds
   ============================================================ */

.product-stock-label {
    margin-top: 7px;
    font-size: 12px;
    font-weight: 800;
}

.product-stock-label.low {
    color: var(--yellowui);
}

.product-stock-label.out {
    color: var(--redui);
}

.stock-error {
    border-color: var(--lightpink);
    background: var(--lightpink);
}

.stock-error-text {
    color: var(--redui) !important;
    font-weight: 800;
}

.stock-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
}

.stock-pill.low {
    background: var(--lightyellow);
    color: var(--yellowui);
}

.stock-pill.out {
    background: var(--lightpink);
    color: var(--redui);
}

.dashboard-sale-row,.dashboard-stock-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 24px;
    border-bottom: 1px solid var(--lightgrey);
    text-decoration: none;
    color: var(--black);
}

.dashboard-sale-row:last-child,.dashboard-stock-row:last-child {
    border-bottom: 0;
}

.dashboard-sale-row:hover,.dashboard-stock-row:hover {
    background: var(--lightgrey);
}

.dashboard-sale-row>span,.dashboard-stock-row>span:first-child {
    display: grid;
    gap: 3px;
}

.dashboard-sale-row small,.dashboard-stock-row small {
    font-size: 12px;
    color: var(--textalt);
}

.sales-shell,.sale-detail-shell {
    margin: 0px auto;
}

.sales-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.sales-heading h1 {
    margin: 0;
}

.period-tabs {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 20px;
}

.period-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 999px;
    background: var(--white);
    border: 1px solid var(--lightgrey);
    color: var(--textalt);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: .15s ease;
}

.period-tabs a:hover {
    border-color: var(--lightgrey);
    color: var(--black);
}

.period-tabs a.active {
    background: var(--black);
    border-color: var(--black);
    color: var(--white);
}

.sales-kpis {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.sales-kpis .panel {
    padding: 20px;
    display: grid;
    gap: 8px;
}

.sales-kpis span {
    font-size: 13px;
    color: var(--textalt);
    font-weight: 700;
}

.sales-kpis strong {
    font-size: 26px;
    line-height: 1;
    font-weight: 900;
}

.sales-list-panel {
    padding: 0;
    overflow: hidden;
}

.sales-list {
    display: grid;
}

.sale-row {
    display: grid;
    grid-template-columns: minmax(220px,1.5fr) minmax(130px,.8fr) minmax(150px,.8fr) minmax(100px,.45fr);
    gap: 20px;
    align-items: center;
    padding: 17px 22px;
    border-bottom: 1px solid var(--lightgrey);
    color: var(--black);
    text-decoration: none;
    transition: background .15s ease;
}

.sale-row:last-child {
    border-bottom: 0;
}

.sale-row:hover {
    background: var(--lightgrey);
}

.sale-row>div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.sale-row span {
    font-size: 12px;
    color: var(--textalt);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sale-row-total {
    text-align: right;
    font-size: 18px;
    font-weight: 900;
}

.stock-shell .period-tabs {
    margin-bottom: 18px;
}

.stock-change {
    font-weight: 900;
}

.stock-change.positive {
    color: var(--greenui);
}

.stock-change.negative {
    color: var(--redui);
}

.refund-history,.refund-panel {
    margin-top: 24px;
}

.refund-history h2,.refund-panel h2 {
    margin: 0;
}

.refund-history-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.refund-history-row>div {
    display: grid;
    gap: 4px;
}

.refund-history-row>div:last-child {
    text-align: right;
}

.refund-history-row span,.refund-reason {
    font-size: 13px;
    color: var(--textalt);
}

.refund-reason {
    margin: 8px 0 16px;
}

.refund-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 20px;
}

.refund-panel-head>span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--textalt);
    background: var(--lightgrey);
    border-radius: 999px;
    padding: 7px 10px;
}

.refund-form {
    gap: 16px;
}

.refund-items {
    display: grid;
    border-top: 1px solid var(--lightgrey);
}

.refund-item {
    display: grid;
    grid-template-columns: minmax(0,1fr) 110px;
    gap: 18px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.refund-item>div {
    display: grid;
    gap: 4px;
}

.refund-item span {
    font-size: 13px;
    color: var(--textalt);
}

.refund-item label {
    gap: 5px;
}

.refund-item input {
    padding: 10px 12px;
    font-size: 16px;
}

.refund-item.is-fully-refunded {
    opacity: .45;
}

.refund-stock-check {
    display: flex;
}

.refund-form-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--lightgrey);
    padding-top: 16px;
    font-size: 20px;
}

.refund-form-total strong {
    font-size: 24px;
}

.refund-submit {
    width: 100%;
}

.refund-pill {
    display: inline-flex;
    margin-bottom: 5px;
    border-radius: 999px;
    background: var(--lightpink);
    color: var(--redui);
    padding: 4px 7px;
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
}

.sale-row-total {
    display: grid;
    justify-items: end;
    gap: 2px;
}

.sale-row-total strong {
    font-size: inherit;
}

.sales-kpis-five {
    grid-template-columns: repeat(5,minmax(0,1fr));
}

.page-shell .admin-heading,.page-shell .sales-heading,.page-shell .dashboard-heading {
    margin-bottom: 24px;
}

.page-shell .dashboard-heading h1,.page-shell .admin-heading h1,.page-shell .sales-heading h1 {
    margin: 0;
}

.admin-heading h1, .page-shell .dashboard-heading h1, .page-shell .admin-heading h1, .page-shell .sales-heading h1 {
    text-transform: capitalize;
}

.sales-heading h1 {
    font-size: 28px;
    line-height: 1.05;
    margin: 0;
    font-weight: 600;
}

.checkout-row.stock-error {
    background: var(--lightpink);
}

.checkout-row.stock-error small {
    color: var(--danger);
}


/* ============================================================
   Receipts & Printing
   ============================================================ */

.receipt {
    padding: 28px;
}

.receipt-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.receipt-head h1 {
    margin: 0 0 5px;
}

.receipt-head p {
    margin: 0;
    color: var(--textalt);
    font-size: 13px;
}

.receipt-meta {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 12px;
    padding: 20px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.receipt-meta>div {
    display: grid;
    gap: 4px;
}

.receipt-meta span,.receipt-reference span {
    font-size: 12px;
    color: var(--textalt);
}

.receipt-meta strong {
    font-size: 14px;
}

.receipt-items {
    display: grid;
    padding: 8px 0;
}

.receipt-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 13px 0;
    border-bottom: 1px solid var(--lightgrey);
}

.receipt-item>div {
    display: grid;
    gap: 4px;
}

.receipt-item span {
    font-size: 12px;
    color: var(--textalt);
}

.receipt-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0 10px;
    font-size: 18px;
}

.receipt-total strong {
    font-size: 18px;
}

.receipt-cash {
    display: grid;
    gap: 8px;
    padding: 14px 0;
    border-top: 1px solid var(--lightgrey);
}

.receipt-cash>div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.receipt-reference {
    display: grid;
    gap: 5px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--lightgrey);
}

.receipt-reference code {
    font-size: 12px;
    overflow-wrap: anywhere;
}

.receipt-refunded {
    color: var(--redui);
    font-size: 17px;
}

.receipt-net {
    font-size: 18px;
}

.receipt-print-frame {
    position: fixed;
    width: 1px;
    height: 1px;
    left: -10000px;
    top: -10000px;
    border: 0;
    visibility: hidden;
}

.receipt-business {
    display: grid;
    gap: 5px;
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--lightgrey);
}

.receipt-business>strong {
    font-size: 18px;
}

.receipt-business span {
    font-size: 12px;
    color: var(--midblack);
    line-height: 1.45;
}

.receipt-vat {
    display: grid;
    gap: 8px;
    padding: 14px 0;
    border-top: 1px solid var(--lightgrey);
}

.receipt-vat>strong {
    font-size: 13px;
}

.receipt-vat>div {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    font-size: 12px;
    color: var(--textalt);
}

.receipt-vat>div strong {
    color: var(--black);
}

.receipt-footer {
    text-align: center;
    padding: 18px 0 4px;
    font-size: 12px;
    font-weight: 700;
}

.receipt-embedded {
    background: var(--white);
}

.receipt-embedded .sale-detail-shell {
    margin: 0;
    width: 100%;
    max-width: none;
}

.receipt-embedded .receipt {
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.receipt-discount strong {
    color: var(--yellowui);
}

.receipt-payment-split {
    display: grid;
    gap: 5px;
    padding: 12px 0;
    border-top: 1px dashed var(--lightgrey);
    border-bottom: 1px dashed var(--lightgrey);
    margin: 8px 0;
}

.receipt-payment-split>div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.receipt-logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    margin: 0 auto 8px;
}

.receipt-website {
    overflow-wrap: anywhere;
}

.receipt-qr {
    display: grid;
    justify-items: center;
    gap: 6px;
    padding: 14px 0;
    border-top: 1px solid var(--border);
}

.receipt-qr img {
    width: 92px;
    height: 92px;
}

.receipt-qr span {
    font-size: 11px;
    color: #777;
}

.receipt-vat>div {
    grid-template-columns: 70px 1fr 1fr 1fr !important;
}

.receipt-vat-head {
    font-weight: 700;
    color: var(--black) !important;
    border-bottom: 1px solid var(--border);
    padding: 10px 0;
}

.receipt-vat-head span {
    color: var(--black) !important;
}

.receipt-print-frame {
    position: fixed;
    width: 1px;
    height: 1px;
    left: -9999px;
    top: -9999px;
    border: 0;
}

.receipt-option-btn,.new-customer-btn {
    min-height: 54px;
    border: 0;
    font: inherit;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.receipt-option-btn {
    background: var(--lightgrey);
    color: var(--black) !important;
}

.receipt-option-btn:hover {
    background: var(--midgrey);
}


/* ============================================================
   Tickets & Categories
   ============================================================ */

.ticket-list {
    padding: 0;
    overflow: hidden;
}

.ticket-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 20px;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: var(--white);
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.ticket-row:last-child {
    border-bottom: 0;
}

.ticket-row:hover {
    background: var(--lightgrey);
}

.ticket-row>span {
    display: grid;
    gap: 4px;
}

.ticket-row small {
    color: #777;
}

.category-color-input {
    height: 48px;
    padding: 4px !important;
    cursor: pointer;
}

.category-colour-swatch {
    display: inline-block;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    vertical-align: middle;
    border: 1px solid var(--border);
}

.ticket-row {
    color: var(--black) !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    padding: 0 !important;
}

.ticket-open {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 20px;
    border: 0;
    background: transparent;
    color: var(--black) !important;
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.ticket-open>span {
    display: grid;
    gap: 4px;
}

.ticket-open small {
    color: #777;
}

.ticket-delete {
    align-self: stretch;
    padding: 0 20px;
    border: 0;
    border-left: 1px solid var(--border);
    background: var(--white);
    color: var(--redui) !important;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.ticket-delete:hover {
    background: var(--lightpink);
}

.category-colour-preview {
    padding: 3px 6px !important;
    font-size: 12px !important;
}

.view-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
}

.view-toggle button {
    border: 0;
    background: transparent;
    padding: 10px 12px;
    color: #777;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.view-toggle button.active {
    color: var(--black);
    text-decoration: underline;
    text-underline-offset: 6px;
}

.category-list {
    display: grid;
}

.category-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    font: inherit;
    font-size: 22px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.category-row:hover {
    opacity: .65;
}

.category-back {
    border: 0;
    background: transparent;
    padding: 0 0 12px;
    font: inherit;
    color: #777;
    cursor: pointer;
}

.category-title {
    margin: 0 0 8px;
    font-size: 26px;
}

.active-ticket-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid var(--lightgrey);
    background: var(--lightgrey);
}

.active-ticket-banner a {
    color: var(--black);
}

.catalogue-view-toggle {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--black);
    cursor: pointer;
    padding: 0;
}

.catalogue-view-toggle:hover {
    background: var(--white);
    opacity: 0.7;
}

.catalogue-view-toggle .view-icon {
    display: none;
    width: 22px;
    height: 22px;
}

.catalogue-view-toggle .view-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.catalogue-view-toggle .view-icon-grid svg rect {
    fill: currentColor;
    stroke: none;
}

.catalogue-view-toggle.show-list-icon .view-icon-list,.catalogue-view-toggle.show-grid-icon .view-icon-grid {
    display: block;
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    padding: 4px 0 20px;
}

.category-tile {
    position: relative;
    min-height: 132px;
    padding: 22px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    background: var(--white);
    color: var(--black);
    font: inherit;
    font-size: 20px;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
    transition: background .15s ease,transform .15s ease;
}

.category-tile:hover {
    background: var(--lightgrey);
}

.category-tile:active {
    transform: scale(.985);
}

.category-tile-arrow {
    font-size: 24px;
    line-height: 1;
    font-weight: 400;
}

.category-back {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px !important;
    margin: 0 0 18px;
    border: 1px solid var(--black) !important;
    background: var(--white) !important;
    color: var(--black) !important;
    font-weight: 650 !important;
}

.category-back:hover {
    background: var(--lightgrey) !important;
}

.category-tile {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.category-tile:hover {
    filter: brightness(.97);
    background: inherit;
}

.category-title {
    text-align: center;
}

.active-ticket-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.active-ticket-actions a {
    font-weight: 600;
}

.active-ticket-actions button {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid var(--black);
    background: var(--white);
    color: var(--black);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.active-ticket-actions button:hover {
    background: var(--lightgrey);
}


/* ============================================================
   Authentication & Staff PIN
   ============================================================ */

.remember-check {
    display: flex !important;
    grid-template-columns: auto 1fr;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    font-weight: 600;
    color: var(--midblack);
}

.remember-check input {
    width: auto;
    margin: 0;
}

.auth-text-link {
    display: inline-block;
    text-align: center;
    color: var(--midblack);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.auth-text-link:hover {
    color: var(--black);
    text-decoration: underline;
}

.auth-full-link {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 14px;
}

.auth-logo {
    width: 75px;
    margin: 0 auto;
}

.auth-logo img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0;
}

.au-card h1 {
    font-size: 24px;
    line-height: 1.05;
    margin: 10px 0;
}

.staff-pin-modal {
    position: fixed;
    inset: 0;
    z-index: 900;
    visibility: hidden;
    pointer-events: none;
}

.staff-pin-modal.open {
    visibility: visible;
    pointer-events: auto;
}

.staff-pin-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0,0,0,.5);
    width: 100%;
    height: 100%;
    padding: 0;
}

.staff-pin-card {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: min(420px,calc(100% - 32px));
    background: var(--white);
    padding: 28px;
    box-shadow: 0 30px 90px rgba(0,0,0,.25);
}

.staff-pin-card h2 {
    margin: 4px 0 8px;
    font-size: 26px;
}

.staff-pin-card p {
    margin: 0 0 20px;
    color: #777;
}

.staff-pin-close {
    position: absolute;
    right: 16px;
    top: 16px;
    width: 40px;
    height: 40px;
    border: 0;
    background: var(--lightgrey);
    font-size: 27px;
    line-height: 1;
    cursor: pointer;
}

.staff-pin-card form {
    display: grid;
    gap: 14px;
}

.staff-pin-card label {
    display: grid;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
}

.staff-pin-card input {
    width: 100%;
    height: 58px;
    border: 1px solid var(--lightgrey);
    padding: 10px 14px;
    background: var(--white);
    font-size: 28px;
    letter-spacing: .22em;
    text-align: center;
}

.staff-pin-submit {
    min-height: 52px;
    border: 0;
    background: var(--black);
    color: var(--white);
    font-weight: 700;
    cursor: pointer;
}

.staff-pin-error {
    padding: 10px 12px;
    background: var(--lightpink);
    color: var(--redui);
    font-size: 13px;
}

.auth-pin-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0 14px;
    color: #888;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.auth-pin-divider:before,.auth-pin-divider:after {
    content: "";
    height: 1px;
    background: var(--lightgrey);
    flex: 1;
}

.auth-pin-button {
    width: 100%;
    min-height: 50px;
    border: 1px solid var(--black);
    background: var(--white);
    color: var(--black);
    font-weight: 700;
    cursor: pointer;
}

.admin-access-modal {
    position: fixed;
    inset: 0;
    z-index: 910;
    visibility: hidden;
    pointer-events: none;
}

.admin-access-modal.open {
    visibility: visible;
    pointer-events: auto;
}

.admin-access-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0,0,0,.5);
    width: 100%;
    height: 100%;
    padding: 0;
}

.admin-access-card {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: min(440px,calc(100% - 32px));
    background: var(--white);
    padding: 28px;
    box-shadow: 0 30px 90px rgba(0,0,0,.25);
}

.admin-access-card h2 {
    margin: 4px 0 8px;
    font-size: 26px;
}

.admin-access-card p {
    margin: 0 0 20px;
    color: #777;
}

.admin-access-close {
    position: absolute;
    right: 16px;
    top: 16px;
    width: 40px;
    height: 40px;
    border: 0;
    background: var(--lightgrey);
    font-size: 27px;
    line-height: 1;
    cursor: pointer;
}

.admin-access-card form {
    display: grid;
    gap: 14px;
}

.admin-access-card label {
    display: grid;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
}

.admin-access-card input {
    width: 100%;
    height: 50px;
    border: 1px solid var(--lightgrey);
    padding: 10px 14px;
    background: var(--white);
    font-size: 16px;
    text-align: left;
}

.admin-access-card input:focus {
    outline: none;
    border-color: var(--black);
    box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

.admin-access-submit {
    min-height: 52px;
    border: 0;
    background: var(--black);
    color: var(--white);
    font-weight: 700;
    cursor: pointer;
}

.admin-access-submit:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.admin-access-error {
    padding: 10px 12px;
    background: var(--lightpink);
    color: var(--redui);
    font-size: 13px;
}


/* ============================================================
   Utilities & Miscellaneous
   ============================================================ */

.meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.meta span {
    background: var(--lightgrey);
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--grey);
}

.danger {
    background: var(--redui);
    margin-top: 14px;
}

details {
    margin-top: 20px;
}

.hidden {
    display: none !important;
}

.signed-in {
    font-size: 13px;
    color: var(--grey);
    margin: -8px 0 20px;
}

.admin-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 24px;
}

.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.actions {
    white-space: nowrap;
}

.image-dropzone {
    min-height: 220px;
    border: 2px dashed var(--lightgrey);
    border-radius: 16px;
    background: var(--lightgrey);
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    transition: .2s ease;
}

.image-dropzone:hover,.image-dropzone.dragging {
    border-color: var(--black);
    background: var(--lightgrey);
}

.image-dropzone img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.dropzone-placeholder {
    display: grid;
    gap: 6px;
    color: var(--midblack);
}

.crop-actions {
    display: flex;
    gap: 10px;
}

.image-ready {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    padding: 10px;
    border: 1px solid var(--lightgreen);
    background: var(--lightgreen);
    border-radius: 12px;
    font-size: 13px;
    color: var(--greenui);
}

.image-ready img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 10px;
}

.summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0;
    color: var(--textalt);
}

.summary-row.total {
    font-size: 22px;
    color: var(--black);
    border-top: 1px solid var(--lightgrey);
    padding-top: 18px;
    margin-top: 2px;
}

.sale-detail-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

#complete-cash {
    width: 100%;
    margin-top: 8px;
}

.discount-field {
    display: grid;
    gap: 7px;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 800;
    color: var(--midblack);
}

.pos-user {
    display: grid;
    grid-template-columns: 35px auto;
    gap: 10px;
    align-items: center;
    text-decoration: none;
}

.pos-user-avatar {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--blueui);
    color: var(--white);
    font-size: 12px;
    font-weight: 700;
}

.pos-user-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
}

.pos-user-name {
    display: block;
}

.pos-user-name p {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--white);
}

.logo-crop-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.logo-ready {
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo-ready img {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 12px;
}

.logo-ready {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 2px;
    padding: 10px;
    border: 1px solid var(--lightgreen);
    background: var(--lightgreen);
    border-radius: 0px;
    font-size: 13px;
    color: var(--greenui);
}

.logo-ready img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 0px;
    background: transparent;
}

.logo-crop-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.pos-user-avatar, .pos-user-avatar img {
    border-radius: 50% !important;
}

.apexcharts-canvas, .apexcharts-svg {
    max-width: 100% !important;
}

.apexcharts-legend-text {
    font-family: Inter, Arial, Helvetica, sans-serif !important;
}

.filter-check {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
}

.admin-filter-reset {
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid var(--redui);
    background: var(--redui);
    color: var(--white);
    font: inherit;
    font-weight: 650;
    cursor: pointer;
    justify-self: start;
}

.admin-filter-reset:hover {
    background: var(--lightgrey);
}

.dasev {
    padding: 10px 20px;
    font-size: 15px;
}

#clear-search {
    position: absolute;
    right: 0;
    top: 50%;
    width: 34px;
    height: 34px;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--white);
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    display: none;
    padding: 0;
}

.vat-row,.total-row,.summary-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.vat-row {
    margin-bottom: 15px;
    color: var(--grey);
    font-size: 15px;
}

.total-row {
    margin-bottom: 25px;
    font-size: 18px;
    font-weight: 700;
}

.page-message {
    margin-top: 16px;
}

.empty-state {
    padding: 48px 0;
    color: var(--grey);
    font-size: 16px;
}

.empty-state a {
    color: var(--black);
}

.summary-block {
    padding: 18px 0 8px;
    border-bottom: 1px solid var(--border);
}

.summary-line {
    padding: 8px 0;
    color: var(--midblack);
    font-size: 15px;
}

.total-summary {
    margin-top: 10px;
    padding-top: 18px;
    border-top: 1px solid var(--midgrey);
    font-size: 19px;
    font-weight: 700;
}

.sidebar-field {
    display: grid;
    gap: 8px;
    margin: 14px 0 8px;
    color: var(--midblack);
    font-size: 14px;
    font-weight: 600;
}

.sidebar-section {
    padding: 22px 0;
    border-bottom: 1px solid var(--border);
}

.sidebar-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 600;
}

.sidebar-section-heading a {
    color: var(--grey);
    font-weight: 500;
}

.change-row {
    margin-top: 8px;
    border-top: 1px solid var(--border);
}

.sale-complete-actions {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 10px;
}

.sale-complete-actions.hidden {
    display: none !important;
}

.sale-complete-message {
    display: grid;
    gap: 8px;
}

.sale-complete-message span {
    color: var(--grey);
    font-size: 15px;
}

.pos-user-switch {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

.pos-user-switch .pos-user-name {
    text-align: left;
}


/* ============================================================
   Responsive
   ============================================================ */

@media (max-width:600px) {

    .shell {
        padding: 12px;
    }

    .card {
        padding: 22px;
        border-radius: 18px;
    }

    h1 {
        font-size: 29px;
    }

}

@media (max-width:850px) {

    .admin-grid {
        grid-template-columns: 1fr;
    }

    .topbar {
        height: auto;
        min-height: 64px;
        padding: 14px 18px;
        gap: 16px;
    }

    .topbar nav {
        gap: 12px;
        flex-wrap: wrap;
        justify-content: flex-end;
    }



    .two-col {
        grid-template-columns: 1fr;
    }

}

@media (max-width:520px) {

    .topbar {
        align-items: flex-start;
    }

    .topbar nav {
        font-size: 13px;
    }



    .panel {
        padding: 0px;
    }

}

@media (max-width:1150px) {

    .product-grid {
        grid-template-columns: repeat(4,minmax(0,1fr));
    }

}

@media (max-width:850px) {

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

    .catalogue-toolbar {
        grid-template-columns: 1fr 1fr;
    }

    .catalogue-toolbar button {
        grid-column: 1/-1;
    }

}

@media (max-width:600px) {

    .catalogue-shell {
        width: calc(100% - 20px);
        margin-top: 20px;
    }

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

    .catalogue-toolbar {
        grid-template-columns: 1fr;
    }

    .catalogue-toolbar button {
        grid-column: auto;
    }

    .product-card-image {
        border-radius: 14px;
    }

    .product-card-title {
        font-size: 14px;
    }

}

@media (max-width:900px) {

    .modal-card {
        grid-template-columns: 1fr;
        max-width: 620px;
    }

    .modal-product-image {
        min-height: auto;
    }

    .modal-product-content {
        padding: 28px;
    }

    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .checkout-summary {
        position: static;
    }

    .checkout-item {
        grid-template-columns: 72px minmax(0,1fr) 110px;
    }

    .checkout-item-image {
        width: 72px;
        height: 72px;
    }

    .checkout-line-total {
        grid-column: 2/-1;
        text-align: left;
    }

}

@media (max-width:600px) {

    .modal {
        padding: 75px 50px;
    }

    .modal-card {
        max-height: calc(100vh - 20px);
        border-radius: 18px;
    }

    .modal-product-content h2 {
        font-size: 28px;
    }

    .checkout-shell {
        width: calc(100% - 20px);
        margin-top: 20px;
    }

    .checkout-heading {
        align-items: flex-start;
    }

    .checkout-item {
        grid-template-columns: 64px minmax(0,1fr);
        gap: 12px;
    }

    .checkout-item-image {
        width: 64px;
        height: 64px;
    }

    .checkout-qty-wrap {
        grid-column: 2;
    }

    .checkout-line-total {
        grid-column: 2;
    }

    .compact-button {
        padding: 11px 13px;
    }

}

@media (max-width:600px) {

    .cart-fab {
        right: 16px;
        bottom: 16px;
        width: 58px;
        height: 58px;
    }

    .cart-fab-icon {
        width: 25px;
        height: 25px;
    }

    .cart-fab-count {
        min-width: 23px;
        height: 23px;
    }

}

@media (max-width:700px) {

    .catalogue-page .catalogue-toolbar {
        grid-template-columns: 1fr;
    }

    .catalogue-page .catalogue-toolbar button {
        width: 100%;
        margin-top: 0;
    }

}

@media (max-width:950px) {

    .dashboard-kpis {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width:600px) {



    .dashboard-heading {
        align-items: center;
    }

    .dashboard-heading .button-link {
        padding: 11px 13px;
    }

    .dashboard-kpis {
        grid-template-columns: 1fr 1fr;
        gap: 5px;
    }

    .dashboard-kpi {
        padding: 17px;
        border-radius: 16px;
    }

    .dashboard-kpi strong {
        font-size: 20px;
    }

    .dashboard-kpi-main strong {
        font-size: 20px;
    }

    .dashboard-panel-heading,.dashboard-sale-row,.dashboard-stock-row {
        padding-left: 17px;
        padding-right: 17px;
    }

}

@media (max-width:850px) {

    .sales-kpis {
        grid-template-columns: 1fr 1fr;
    }

    .sale-row {
        grid-template-columns: minmax(0,1fr) 110px 110px;
    }

    .sale-row>div:nth-child(3) {
        display: none;
    }

    .receipt-meta {
        grid-template-columns: 1fr;
    }

}

@media (max-width:600px) {

    .sales-shell,.sale-detail-shell {
    
        margin: 78px 15px 50px;
    }

    .sales-kpis {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .sales-kpis .panel {
        padding: 16px;
    }

    .sales-kpis strong {
        font-size: 21px;
    }

    .period-tabs {
        gap: 6px;
    }

    .period-tabs a {
        padding: 7px 11px;
        font-size: 12px;
    }

    .sale-row {
        grid-template-columns: minmax(0,1fr) auto;
        padding: 15px 16px;
        gap: 12px;
    }

    .sale-row>div:nth-child(2),.sale-row>div:nth-child(3) {
        display: none;
    }

    .sale-row-total {
        font-size: 17px;
    }

    .receipt {
        padding: 20px;
    }

    .receipt-head {
        align-items: center;
    }



    .checkout-payment-buttons {
        grid-template-columns: 1fr;
    }

    .cash-modal-card {
        padding: 22px;
        border-radius: 18px;
    }

}

@media print {

    body {
        background: var(--white);
    }

    .no-print,.menu-toggle,.flyout-menu,.cart-fab {
        display: none !important;
    }

    .sale-detail-shell {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .receipt {
        border: 0;
        box-shadow: none;
        padding: 0;
    }

}

@media (max-width:600px) {

    .refund-history-row {
        display: grid;
    }

    .refund-history-row>div:last-child {
        text-align: left;
    }

    .refund-item {
        grid-template-columns: 1fr 90px;
    }

    .refund-panel-head {
        display: grid;
    }

    .sale-row-total {
        justify-items: start;
    }

}

@media print {

    .refund-history,.refund-panel {
        display: none !important;
    }

}

@media (max-width:850px) {

    .product-tools-grid {
        grid-template-columns: 1fr;
    }

    .import-actions,.import-actions form:first-child {
        align-items: stretch;
        display: grid;
    }

    .import-actions form:first-child label {
        min-width: 0;
    }

    .import-actions button {
        width: 100%;
    }

}

@media (max-width:600px) {

    .catalogue-meta-row {
        align-items: flex-start;
    }

    .scanner-ready {
        font-size: 11px;
    }

    .scanner-toast {
        bottom: 88px;
    }



    .import-preview .table-wrap {
        padding: 0 14px;
    }

    .import-preview-head,.import-actions {
        padding-left: 16px;
        padding-right: 16px;
    }

}

@media (max-width:850px) {

    .settings-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width:600px) {

    .settings-shell {
       
        margin: 78px 15px 50px;
    }

    .receipt-vat>div {
        grid-template-columns: 1fr auto;
    }

    .receipt-vat>div strong {
        grid-column: 2;
    }

}

@media print {

    @page {
size:80mm auto;margin:3mm
    }

    html,body {
        width: 74mm !important;
        min-width: 0 !important;
        background: var(--white) !important;
        color: var(--black) !important;
        font-family: Arial,sans-serif !important;
        font-size: 10pt !important;
    }

    body {
        margin: 0 !important;
        padding: 0 !important;
    }

    .sale-detail-shell {
        width: 74mm !important;
        max-width: 74mm !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .receipt {
        width: 74mm !important;
        max-width: 74mm !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .receipt-business {
        padding-bottom: 4mm;
    }

    .receipt-business>strong {
        font-size: 15pt;
    }

    .receipt-head {
        padding: 4mm 0;
    }

    .receipt-head .eyebrow {
        display: none;
    }

    .receipt-head h1 {
        font-size: 14pt;
    }

    .receipt-meta {
        grid-template-columns: 1fr !important;
        gap: 2mm;
        padding: 3mm 0;
    }

    .receipt-item {
        padding: 2.5mm 0;
    }

    .receipt-item strong {
        font-size: 9.5pt;
    }

    .receipt-total {
        font-size: 11pt;
        padding: 4mm 0 2mm;
    }

    .receipt-total strong {
        font-size: 15pt;
    }

    .receipt-cash,.receipt-vat,.receipt-reference {
        font-size: 8.5pt;
    }

    .receipt-footer {
        padding-top: 5mm;
    }

    .receipt .badge {
        display: none !important;
    }

}

@media (max-width:1100px) {

    .checkout-payment-buttons-three {
        grid-template-columns: 1fr;
    }

    .sales-kpis-five {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

}

@media (max-width:700px) {

    .terminal-switcher {
        grid-template-columns: 1fr;
    }

    .sales-kpis-five {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width:600px) {

    .gift-card-actions {
        grid-template-columns: 1fr;
    }

    .gift-card-actions #complete-gift-card {
        grid-column: auto;
    }

}

@media (max-width: 760px) {

    .pos-header {
        flex-direction: unset !important;
        align-items: center !important;
    }

    .main-nav a {
        padding: 5px 0 5px 10px !important;
        font-size: 16px !important;
    }

    .main-nav a.active::after {
        content: "";
        position: absolute;
        left: 5px !important;
        right: -5px !important;
        bottom: -3px !important;
        height: 3px;
        background: var(--black);
    }

}

@media (max-width:760px) {

    .app-menu-panel {
        width: min(340px,90vw);
        padding: 20px 24px 30px;
    }

    .app-menu-toggle {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .app-menu-primary a {
        font-size: 19px;
    }

    .app-menu-secondary a {
        font-size: 14px;
    }

}

@media (max-width:1000px) {

    .settings-layout {
        grid-template-columns: 1fr;
    }

    .settings-side {
        grid-template-columns: 1fr;
    }

    .business-logo-dropzone,.logo-crop-wrap {
        width: 100%;
    }

}

@media (max-width:760px) {

    .pos-inner {
        padding: 0 20px;
    }

    .pos-header {
        align-items: center;
    }

.pos-user {
  display: grid;
  grid-template-columns: auto;
  gap: 0;
  align-items: center;
}

    .pos-user-name {
        display: none;
    }

    .page-nav {
        gap: 20px;
    }

    .page-shell {
        padding: 26px 20px 60px;
    }

    .settings-two-col,.settings-terminal-form {
        grid-template-columns: 1fr;
    }

    .settings-terminal-form .terminal-active,.settings-terminal-form button,.settings-terminal-form .cancel-terminal {
        grid-column: 1;
    }

    .page-shell .dashboard-heading {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width:1000px) {

    .business-logo-row {
        align-items: flex-start;
    }

    .business-logo-dropzone {
        width: min(100%,370px);
    }

}

@media (max-width:760px) {

    .business-logo-row {
        display: grid;
    }

    .business-logo-current img {
        width: 160px;
        height: 160px;
    }

    .settings-terminal-modal-actions {
        grid-template-columns: 1fr;
    }

    .settings-terminal-modal-actions .terminal-active {
        justify-self: start;
    }

    .settings-terminal-modal-actions button {
        width: 100%;
    }

    .settings-logo-modal-card #business-logo-cropper {
        min-height: 340px;
    }

}

@media (max-width:560px) {

    .confirm-toast {
        left: 16px;
        right: 16px;
        bottom: 20px;
        transform: translateY(12px);
        justify-content: space-between;
    }

    .confirm-toast.show {
        transform: translateY(0);
    }

}

@media (max-width: 760px) {

    .page-shell {
        margin: 0 !important;
    }

}

@media (max-width:560px) {

    .settings-modal-card {
        left: 16px;
        right: 16px;
        top: 16px;
        bottom: 16px;
        transform: none;
        width: auto;
        max-height: none;
        padding: 20px;
        overflow: auto;
    }

    .settings-logo-modal-card {
        width: auto;
    }

    .settings-modal-header {
        margin-bottom: 14px;
    }

    .settings-logo-modal-card #business-logo-cropper {
        min-height: 0;
    }

    .logo-crop-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .logo-crop-actions button {
        width: 100%;
        min-width: 0;
    }

}

@media (max-width:900px) {

    .report-grid {
        grid-template-columns: 1fr;
    }

    .report-kpis {
        grid-template-columns: 1fr 1fr;
    }

    .reconcile-row {
        grid-template-columns: 1fr;
    }

    .report-heading,.reconcile-shell .admin-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .report-range {
        flex-wrap: wrap;
    }

}

@media (max-width:600px) {

    .report-range {
        display: grid;
        grid-template-columns: auto;
        width: 100%;
    }

    .report-range button,.report-range .button-link {
        width: 100%;
        text-align: center;
    }

    .report-kpis {
        gap: 8px;
    }

    .receipt-vat>div {
        grid-template-columns: 55px 1fr 1fr 1fr !important;
        font-size: 12px;
    }

}

@media (max-width: 900px) {

    .report-charts {
        grid-template-columns: 1fr;
    }

    .report-chart-wide {
        grid-column: auto;
    }

}

@media (max-width: 600px) {

    .report-chart {
        padding: 16px;
    }

    .report-chart-heading {
        display: grid;
        gap: 4px;
    }

    .apex-report-chart {
        min-height: 300px;
    }

}

@media (max-width:700px) {

    .scale-csv-heading {
        display: grid;
    }

    .scale-csv-heading .button-link {
        width: 100%;
        text-align: center;
    }

    .scale-csv-form {
        grid-template-columns: 1fr;
    }

    .scale-csv-form button {
        width: 100%;
    }

}

@media (max-width:1100px) {

    .admin-list-filters {
        grid-template-columns: 1fr 1fr;
    }

    .admin-search-wrap {
        grid-column: 1/-1;
    }

}

@media (max-width:650px) {

    .admin-list-filters {
        grid-template-columns: 1fr;
    }

    .admin-search-wrap {
        grid-column: auto;
    }

    .ticket-row {
        padding: 16px;
    }

    .ticket-row>strong {
        white-space: nowrap;
    }

}

@media (max-width:650px) {

    .admin-filter-reset {
        width: 100%;
        min-height: 46px;
    }

}

@media (max-width:1150px) {

    .admin-list-filters {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }

    .admin-search-wrap {
        grid-column: span 2;
    }

    .admin-list-filters .admin-filter-reset {
        grid-column: auto;
    }

}

@media (max-width:650px) {

    .admin-list-filters {
        grid-template-columns: 1fr !important;
    }

    .admin-search-wrap {
        grid-column: auto;
    }

    .ticket-row {
        grid-template-columns: 1fr auto !important;
    }

    .ticket-open {
        padding: 16px;
    }

    .ticket-delete {
        padding: 0 14px;
    }

}

@media (max-width:1000px) {

    .advanced-health-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .advanced-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width:760px) {

    .dashboard-kpis-expanded {
        grid-template-columns: 1fr 1fr;
    }

    .advanced-health-grid {
        grid-template-columns: 1fr 1fr;
    }

    .audit-filter {
        grid-template-columns: 1fr;
    }

    .audit-filter button,.audit-filter a {
        width: 100%;
        text-align: center;
    }

    .backup-list>div,.audit-mini-list>div {
        align-items: flex-start;
    }

}

@media (max-width:650px) {

    .restore-dropzone {
        min-height: 150px;
        padding: 20px;
    }

}

@media (max-width:1150px) {

    .pos-main {
        width: calc(100% - 380px);
        padding-left: 28px;
        padding-right: 28px;
    }

    .cart {
        width: 380px;
        padding: 28px;
    }

    .pos-header {
        gap: 25px;
    }

    .main-nav {
        gap: 20px;
    }

    .search-wrap {
        width: 270px;
    }

    .payment-buttons {
        grid-template-columns: 1fr;
    }

    .terminal-switcher {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 850px) {

    .cart {
        width: 350px;
        padding: 20px;
    }

}

@media (max-width:760px) {

    .pos-main {
        width: 100%;
        padding: 0 20px 145px;
    }

    .pos-header {
        padding: 10px 20px;
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
    }



    .main-nav {
        justify-content: space-between;
    }

    .main-nav a {
        padding: 0 0 12px;
        font-size: 16px;
    }

    .search-wrap {
        width: 90%;
    }

    .product,.checkout-row {
        min-height: 90px;
    }

    .product-left {
        gap: 14px;
    }

    .product-left img,.product-image-placeholder,.checkout-thumb {
        width: 58px;
        height: 58px;
        border-radius: 13px;
    }

    .product-name-wrap>span,.checkout-product-main strong {
        font-size: 17px;
    }

    .product-right strong {
        display: none;
    }

    .add-btn {
        width: 44px;
        height: 44px;
    }

    .cart {
        top: auto;
        right: 0;
        bottom: 0;
        width: 100%;
        height: auto;
        padding: 15px 20px;
        border-left: 0;
        border-top: 1px solid var(--cartbtn);
        z-index: 80;
    }

    .catalogue-cart .cart-header,.catalogue-cart .cart-items,.catalogue-cart .vat-row {
        display: none;
    }

    .catalogue-cart .cart-footer {
        padding: 0;
        border: 0;
        display: grid;
        grid-template-columns: 1fr 200px;
        gap: 20px;
        align-items: baseline;
    }

    .catalogue-cart .total-row {
        margin: 0;
    }

    .catalogue-cart .total-row strong {
        font-size: 22px;
    }

    .catalogue-cart .pay-btn {
        height: 60px;
    }

    .checkout-sidebar {
        position: static;
        width: 100%;
        height: auto;
        padding: 22px 20px 30px;
        border-left: 0;
        border-top: 1px solid var(--border);
    }

    .checkout-main {
        padding-bottom: 20px;
    }

    .pos-app:has(.checkout-main) {
        display: flex;
        flex-direction: column;
    }

    .checkout-sidebar-scroll {
        overflow: visible;
    }

    .checkout-actions {
        border-top: 1px solid var(--midgrey);
    }

    .payment-buttons {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .checkout-row {
        align-items: flex-start;
    }

    .checkout-row-actions {
        gap: 12px;
        flex-direction: column;
        align-items: flex-end;
    }

    .checkout-controls {
        min-width: 0;
    }

    .checkout-row-actions>strong {
        min-width: auto;
    }

    .scanner-toast {
        position: fixed;
        left: 5%;
        bottom: 100px;
        transform: none;
        z-index: 120;
        padding: 12px 18px;
        border-radius: none;
        background: var(--black);
        color: var(--white);
        font-size: 16px;
        box-shadow: 0 10px 30px rgba(0,0,0,.18);
        width: 90%;
        text-transform: capitalize;
        text-align: center;
    }

}

@media (max-width:480px) {

    .payment-buttons {
        grid-template-columns: 1fr;
    }

    .catalogue-cart .cart-footer {
        grid-template-columns: 1fr 150px;
    }

    .main-nav {
        gap: 12px;
    }

    .main-nav a {
        font-size: 14px;
    }

}

@media (max-width: 760px) {

    .pos-header {
        flex-direction: unset !important;
        align-items: center !important;
    }

    .main-nav a {
        padding: 5px 0 5px 10px !important;
        font-size: 16px !important;
    }

    .main-nav a.active::after {
        content: "";
        position: absolute;
        left: 5px !important;
        right: -5px !important;
        bottom: -3px !important;
        height: 3px;
        background: var(--black);
    }

    .main-nav a {
        padding: 5px 0 5px 10px !important;
        font-size: 16px;
    }

}

@media (max-width: 930px) {

    .catalogue-main .pos-header {
        flex-direction: column !important;
        align-items: stretch !important;
    }

}

@media (max-width: 760px) {

    .catalogue-main .main-nav {
        justify-content: unset !important;
    }

    .pos-main {
        min-height: auto !important;
    }

}

@media (max-width:480px) {

    .sale-complete-actions {
        grid-template-columns: 1fr;
    }

}

@media (max-width:600px) {

    .offline-banner {
        left: 14px;
        right: 14px;
        transform: translateY(-160%);
        justify-content: center;
    }

    .offline-banner.show {
        transform: translateY(0);
    }

}

@media (max-width:380px) {

    .product-name-wrap > span {
        font-size: 16px;
        font-weight: 600;
        white-space: normal;
        overflow: hidden;
        text-overflow: ellipsis;
    }

}

@media (max-width:900px) {

    .catalogue-tools {
        gap: 25px;
    }

    .view-toggle button {
        padding: 8px;
    }

    .category-row {
        font-size: 19px;
    }

}

@media (max-width:720px) {

    .catalogue-tools {
        width: 100%;
        display: grid;
        grid-template-columns: auto 1fr;
    }

    .cart-primary-actions {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width:1100px) {

    .category-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

}

@media (max-width:760px) {

    .catalogue-tools {
        grid-template-columns: 44px 1fr !important;
    }

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

    .category-tile {
        min-height: 108px;
        padding: 16px;
        font-size: 17px;
    }

}

@media (max-width:420px) {

    .category-grid {
        grid-template-columns: 1fr 1fr;
    }

    .category-tile {
        min-height: 96px;
    }

}

@media (max-width:560px) {

    .split-progress-grid {
        grid-template-columns: 1fr;
    }

    .split-actions {
        grid-template-columns: 1fr;
    }

}

@media (max-width:560px) {

    .staff-pin-card {
        left: 16px;
        right: 16px;
        top: 50%;
        width: auto;
        padding: 24px;
        transform: translateY(-50%);
    }

    .staff-pin-card input {
        font-size: 26px;
    }

}

@media (max-width:560px) {

    .admin-access-card {
        left: 16px;
        right: 16px;
        top: 50%;
        width: auto;
        padding: 24px;
        transform: translateY(-50%);
    }

}


/* ============================================================
   Animations
   ============================================================ */

@keyframes spin {

    to {
        transform: rotate(360deg);
    }

}

.apexcharts-canvas title, .apexcharts-canvas tspan, .apexcharts-legend-text {
  color: var(--btnhover) !important;
  fill: var(--btnhover) !important;
}

.pospal-integration-actions form {
  gap: 15px;
  align-self: end;
}

.pospal-integration-meta {
  display: grid;
  gap: 5px;
  margin: 15px 0!important;
  font-size: 13px;
  border: 1px solid var(--border);
  padding: 15px;
}



\n\n/* Receipt print refinements - 2026-09-18 */\n.receipt-total,\n.receipt-net {\n    font-size: 18px;\n}\n.receipt-total strong {\n    font-size: 18px;\n}\n\n@media print {\n    /* The app header was leaving the current user's initial above the receipt logo. */\n    .pos-header,\n    .app-header {\n        display: none !important;\n    }\n\n    /* Keep normal receipts compact enough for a single 80mm PDF page. */\n    .receipt-business {\n        gap: 1mm !important;\n        padding-bottom: 2.5mm !important;\n    }\n    .receipt-logo {\n        width: 15mm !important;\n        height: 15mm !important;\n        margin-bottom: 1.5mm !important;\n    }\n    .receipt-business>strong {\n        font-size: 13pt !important;\n    }\n    .receipt-business span {\n        line-height: 1.25 !important;\n    }\n    .receipt-head {\n        padding: 2.5mm 0 !important;\n    }\n    .receipt-meta {\n        gap: 1mm !important;\n        padding: 2mm 0 !important;\n    }\n    .receipt-items {\n        padding: 1mm 0 !important;\n    }\n    .receipt-item {\n        padding: 1.6mm 0 !important;\n    }\n    .receipt-total {\n        padding: 2.5mm 0 1.5mm !important;\n        font-size: 13.5pt !important;\n    }\n    .receipt-total strong {\n        font-size: 13.5pt !important;\n    }\n    .receipt-vat {\n        gap: 1.5mm !important;\n        padding: 2.5mm 0 !important;\n    }\n    .receipt-vat-head {\n        padding: 1.5mm 0 !important;\n    }\n    .receipt-cash {\n        gap: 1.5mm !important;\n        padding: 2.5mm 0 !important;\n    }\n    .receipt-qr {\n        gap: 1mm !important;\n        padding: 2.5mm 0 1mm !important;\n        break-inside: avoid;\n        page-break-inside: avoid;\n    }\n    .receipt-qr img {\n        width: 18mm !important;\n        height: 18mm !important;\n    }\n    .receipt-footer {\n        padding: 2mm 0 0 !important;\n    }\n}\n