:root {
	--ipos-canvas: #f3f5f2;
	--ipos-surface: #ffffff;
	--ipos-surface-muted: #eef2ed;
	--ipos-ink: #172019;
	--ipos-muted: #667168;
	--ipos-line: #d5ddd6;
	--ipos-line-strong: #aeb9b0;
	--ipos-brand: #39a751;
	--ipos-action: #197a35;
	--ipos-action-hover: #12632a;
	--ipos-success: #197a35;
	--ipos-warning: #a15c00;
	--ipos-danger: #b42318;
	--ipos-info: #175cd3;
	--ipos-focus: rgb(25 122 53 / 28%);
	--ipos-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ipos-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--ipos-admin-page-gutter: 32px;
	--ipos-admin-page-max: 1480px;
	--ipos-scrollbar-track: rgb(23 32 25 / 8%);
	--ipos-scrollbar-thumb: rgb(25 122 53 / 58%);
	--ipos-scrollbar-thumb-hover: rgb(25 122 53 / 78%);
	--ipos-selection-surface-solid: #f7fbf8;
	--ipos-selection-active-solid: #e5f3e9;
}

html:has(body.ipos-app-shell),
body.ipos-app-shell { min-height: 100%; margin: 0; background: var(--ipos-canvas); }
body.ipos-app-shell { color: var(--ipos-ink); font-family: var(--ipos-font); font-size: 16px; letter-spacing: 0; }
body.ipos-app-shell *, body.ipos-app-shell *::before, body.ipos-app-shell *::after { box-sizing: border-box; }
body.ipos-app-shell :where(h1, h2, h3, h4, h5, h6) { font-family: var(--ipos-font) !important; letter-spacing: 0; }
body.ipos-app-shell :where(button, input, select, textarea) { font: inherit; letter-spacing: 0; }
body.ipos-app-shell :is(.ipos-admin-shell, .ipos-app-state) { font-family: var(--ipos-font); font-size: 16px; line-height: normal; letter-spacing: 0; word-spacing: normal; text-transform: none; }
html body.ipos-app-shell :where(.ipos-admin-shell, .ipos-app-state) :where(a, button, [role="button"]) { font-family: var(--ipos-font); word-spacing: normal; text-transform: none; }
html body.ipos-app-shell :where(.ipos-admin-shell, .ipos-app-state) :where(button, [role="button"]) { letter-spacing: var(--ipos-control-letter-spacing, 0); }
body.ipos-app-shell :where(button, a, input, select, textarea):focus-visible { outline: 3px solid var(--ipos-focus); outline-offset: 2px; }
body.ipos-app-shell :where(button, a) { -webkit-tap-highlight-color: transparent; }
body.ipos-app-shell :where(button, [role="button"]) { transition: background 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 220ms ease, transform 140ms ease, opacity 180ms ease; }
body.ipos-app-shell :where(button):active { transform: translateY(1px) scale(.985); }
body.ipos-app-shell .wp-site-blocks { min-height: 100dvh; }
body.ipos-app-shell .wpc-minicart-wrapper, body.ipos-app-shell #popup_wrapper { display: none !important; }

.ipos-styled-select { --ipos-styled-select-surface: var(--ipos-surface); --ipos-styled-select-ink: var(--ipos-ink); --ipos-styled-select-line: var(--ipos-line-strong); position: relative; display: block; width: 100%; min-width: 0; font: 700 13px/1 var(--ipos-font); }
.ipos-styled-select__native { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.ipos-styled-select__trigger { display: flex; width: 100%; min-height: 42px; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px; border: 1px solid var(--ipos-styled-select-line); border-radius: 6px; background: var(--ipos-styled-select-surface); color: var(--ipos-styled-select-ink); font: inherit; text-align: left; cursor: pointer; transition: border-color 140ms ease, box-shadow 140ms ease; }
.ipos-styled-select__trigger:hover, .ipos-styled-select.is-open .ipos-styled-select__trigger { border-color: var(--ipos-action); }
.ipos-styled-select__trigger:focus-visible { outline: 3px solid var(--ipos-focus); outline-offset: 2px; }
.ipos-styled-select__trigger:disabled { cursor: not-allowed; opacity: .5; }
.ipos-styled-select__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ipos-styled-select__trigger svg { display: block; width: 18px; height: 18px; flex: 0 0 auto; align-self: center; margin-inline-start: auto; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; transition: transform 140ms ease; }
.ipos-styled-select.is-open .ipos-styled-select__trigger svg { transform: rotate(180deg); }
.ipos-styled-select__menu { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; left: 0; display: grid; width: 100%; max-height: min(248px, 45dvh); gap: 5px; padding: 7px; overflow-x: hidden; overflow-y: auto; border: 1px solid var(--ipos-styled-select-line); border-radius: 8px; background: var(--ipos-selection-surface-solid); box-shadow: 0 12px 28px rgb(23 32 25 / .16); -webkit-backdrop-filter: none; backdrop-filter: none; overscroll-behavior: contain; scrollbar-color: var(--ipos-scrollbar-thumb) var(--ipos-scrollbar-track); scrollbar-width: thin; scrollbar-gutter: stable; transform-origin: 50% 0; animation: ipos-styled-select-down 160ms cubic-bezier(.22, .75, .2, 1) both; }
body.ipos-app-shell :is(.ipos-styled-select__menu, .ipos-menu-picker__popover, .ipos-menu-category-sheet__list, .ipos-menu-settings__list, .ipos-menu-inspector__scroll, .ipos-menu-directory__list, .ipos-admin-navigation) { scrollbar-color: var(--ipos-scrollbar-thumb) var(--ipos-scrollbar-track); scrollbar-width: thin; scrollbar-gutter: stable; }
body.ipos-app-shell :is(.ipos-styled-select__menu, .ipos-menu-picker__popover, .ipos-menu-category-sheet__list, .ipos-menu-settings__list, .ipos-menu-inspector__scroll, .ipos-menu-directory__list, .ipos-admin-navigation)::-webkit-scrollbar { width: 9px; height: 9px; }
body.ipos-app-shell :is(.ipos-styled-select__menu, .ipos-menu-picker__popover, .ipos-menu-category-sheet__list, .ipos-menu-settings__list, .ipos-menu-inspector__scroll, .ipos-menu-directory__list, .ipos-admin-navigation)::-webkit-scrollbar-track { border-radius: 999px; background: var(--ipos-scrollbar-track); }
body.ipos-app-shell :is(.ipos-styled-select__menu, .ipos-menu-picker__popover, .ipos-menu-category-sheet__list, .ipos-menu-settings__list, .ipos-menu-inspector__scroll, .ipos-menu-directory__list, .ipos-admin-navigation)::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: var(--ipos-scrollbar-thumb); background-clip: padding-box; }
body.ipos-app-shell :is(.ipos-styled-select__menu, .ipos-menu-picker__popover, .ipos-menu-category-sheet__list, .ipos-menu-settings__list, .ipos-menu-inspector__scroll, .ipos-menu-directory__list, .ipos-admin-navigation)::-webkit-scrollbar-thumb:hover { background: var(--ipos-scrollbar-thumb-hover); background-clip: padding-box; }
.ipos-styled-select.is-open-up .ipos-styled-select__menu { top: auto; bottom: calc(100% + 7px); transform-origin: 50% 100%; animation-name: ipos-styled-select-up; }
.ipos-styled-select__menu[hidden] { display: none; }
.ipos-styled-select__option { width: 100%; min-height: 40px; padding: 0 12px; border: 1px solid transparent; border-radius: 5px; background: var(--ipos-selection-surface-solid); color: var(--ipos-styled-select-ink); font: inherit; text-align: left; cursor: pointer; }
.ipos-styled-select__option:hover, .ipos-styled-select__option:focus-visible { border-color: var(--ipos-action); background: color-mix(in srgb, var(--ipos-action) 10%, var(--ipos-selection-surface-solid)); color: var(--ipos-ink); outline: 0; }
.ipos-styled-select__option[aria-selected=true] { border-color: var(--ipos-action); background: var(--ipos-selection-active-solid); color: var(--ipos-action); }
.ipos-styled-select__option:disabled { cursor: not-allowed; opacity: .5; }
@keyframes ipos-styled-select-down { from { opacity: 0; transform: translateY(-4px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes ipos-styled-select-up { from { opacity: 0; transform: translateY(4px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .ipos-styled-select__menu { animation: none; } }

.ipos-app-shell .ipos-ordering,
.ipos-app-shell .ipos-staff-dashboard,
.ipos-app-shell .ipos-cashier,
.ipos-app-shell .ipos-qr-management { width: 100%; max-width: none; min-height: 100dvh; margin: 0; border: 0; border-radius: 0; }

.ipos-admin-shell { display: grid; min-height: 100dvh; grid-template-columns: 232px minmax(0, 1fr); background: var(--ipos-canvas); }
.ipos-admin-sidebar { position: sticky; top: 0; display: flex; height: 100dvh; flex-direction: column; padding: 24px 14px 16px; border-right: 1px solid var(--ipos-line); background: var(--ipos-surface); }
.ipos-admin-sidebar__brand { display: flex; min-height: 42px; flex-direction: column; align-items: center; justify-content: center; padding: 0 10px 22px; border-bottom: 1px solid var(--ipos-line); text-decoration: none; }
.ipos-admin-sidebar__brand img { display: block; width: 82px; height: auto; }
.ipos-admin-sidebar__brand-mark { display: grid; width: 72px; min-height: 34px; place-items: center; border-radius: 12px; background: var(--ipos-action); color: #fff; font-size: 17px; font-weight: 780; letter-spacing: -.04em; line-height: 1; box-shadow: inset 0 1px 0 rgb(255 255 255 / 28%); }
.ipos-admin-sidebar__brand-mark > span { font-weight: 520; }
.ipos-admin-sidebar__brand-caption { margin-top: 5px; color: var(--ipos-muted); font-size: 8px; font-weight: 780; letter-spacing: .16em; line-height: 1; }
.ipos-admin-sidebar nav { display: grid; gap: 4px; margin-top: 22px; }
.ipos-admin-sidebar__link { display: flex; min-height: 44px; align-items: center; gap: 12px; padding: 0 10px; border-radius: 6px; color: var(--ipos-muted); font-size: 14px; font-weight: 680; text-decoration: none; transition: background 140ms ease, color 140ms ease; }
.ipos-admin-sidebar__link > span:first-child { display: grid; width: 20px; place-items: center; color: currentColor; font-family: var(--ipos-mono); font-size: 18px; font-weight: 700; }
.ipos-admin-sidebar__icon svg { display: block; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.ipos-admin-sidebar__link:hover { background: var(--ipos-surface-muted); color: var(--ipos-ink); }
.ipos-admin-sidebar__link.is-active { background: #e8f3ea; color: var(--ipos-action); }
.ipos-admin-workspace { min-width: 0; }
.ipos-admin-bar { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 32px; border-bottom: 1px solid var(--ipos-line); background: rgb(255 255 255 / 86%); }
.ipos-admin-bar strong { font-size: 16px; font-weight: 750; }
.ipos-admin-bar__sync { color: var(--ipos-muted); font-size: 12px; font-weight: 650; }
.ipos-admin-content { min-width: 0; padding: var(--ipos-admin-page-gutter); }
.ipos-admin-content .ipos-staff-dashboard,
.ipos-admin-content .ipos-cashier,
.ipos-admin-content .ipos-qr-management { min-height: calc(100dvh - 140px); }
.ipos-admin-content .ipos-table-operations,
.ipos-admin-content .ipos-staff-dashboard,
.ipos-admin-content .ipos-cashier {
	width: min(100%, var(--ipos-admin-page-max));
	max-width: var(--ipos-admin-page-max);
	margin-inline: auto;
}
.ipos-admin-content .ipos-table-operations,
.ipos-admin-content .ipos-cashier {
	padding: 0;
}
.ipos-admin-content .ipos-staff-dashboard__brand,
.ipos-admin-content .ipos-cashier__brand,
.ipos-admin-content .ipos-qr-management__header img { display: none; }

body.ipos-app-view-cashier .ipos-admin-shell { grid-template-columns: 78px minmax(0, 1fr); }
body.ipos-app-view-cashier .ipos-admin-sidebar { align-items: center; padding: 18px 10px; }
body.ipos-app-view-cashier .ipos-admin-sidebar__brand { width: 100%; justify-content: center; padding: 0 0 20px; }
body.ipos-app-view-cashier .ipos-admin-sidebar__brand img { width: 54px; }
body.ipos-app-view-cashier .ipos-admin-sidebar nav { width: 100%; justify-items: center; gap: 10px; }
body.ipos-app-view-cashier .ipos-admin-sidebar__link { width: 48px; min-height: 48px; justify-content: center; padding: 0; border-radius: 8px; }
body.ipos-app-view-cashier .ipos-admin-sidebar__link > span:first-child { width: auto; }
body.ipos-app-view-cashier .ipos-admin-sidebar__link > span:last-child { display: none; }
body.ipos-app-view-cashier .ipos-admin-bar { display: none; }
body.ipos-app-view-kitchen .ipos-admin-bar { display: none; }
body.ipos-app-view-theme .ipos-admin-bar { display: none; }
body.ipos-app-view-cashier .ipos-admin-workspace,
body.ipos-app-view-cashier .ipos-admin-content {
	min-height: 0;
	height: 100dvh;
	overflow: hidden;
}
body.ipos-app-view-cashier .ipos-admin-content { padding: 0; }
body.ipos-app-view-cashier .ipos-admin-content .ipos-cashier {
	min-height: 0;
	height: 100dvh;
}

.ipos-app-state { display: grid; place-items: center; min-height: 100dvh; padding: 24px; background: var(--ipos-canvas); color: var(--ipos-ink); font-family: var(--ipos-font); }
.ipos-app-state__panel { width: min(100%, 520px); padding: 28px; border: 1px solid var(--ipos-line); border-radius: 8px; background: var(--ipos-surface); }
.ipos-app-state__panel img { display: block; width: 120px; height: auto; margin-bottom: 32px; }
.ipos-app-state__panel small { color: var(--ipos-action); font-size: 12px; font-weight: 700; }
.ipos-app-state__panel h1 { margin: 8px 0 10px; color: var(--ipos-ink) !important; font-family: var(--ipos-font) !important; font-size: clamp(26px, 7vw, 34px) !important; font-weight: 750 !important; line-height: 1.15 !important; letter-spacing: 0 !important; word-spacing: normal !important; text-transform: none !important; }
.ipos-app-state__panel p { margin: 0; color: var(--ipos-muted); font-size: 15px; line-height: 1.6; }
.ipos-app-state__panel .ipos-app-state__hint { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--ipos-line); font-size: 13px; }
.ipos-app-state__panel a { display: inline-flex; min-height: 42px; align-items: center; margin-top: 22px; padding: 0 15px; border: 1px solid var(--ipos-line-strong); border-radius: 6px; color: var(--ipos-ink) !important; font-size: 14px; font-weight: 700; text-decoration: none; }
.ipos-app-state__panel a:hover { border-color: var(--ipos-action); color: var(--ipos-action) !important; }

.ipos-entry { width: min(100%, 1180px); margin-inline: auto; padding: 8px 0; color: var(--ipos-ink); }
.ipos-entry__header { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 20px 0 30px; border-bottom: 1px solid var(--ipos-line); }
.ipos-entry__header p { margin: 0 0 8px; color: var(--ipos-action); font-size: 13px; font-weight: 750; }
.ipos-entry__header h1 { margin: 0; font-size: clamp(28px, 4vw, 42px); font-weight: 800; line-height: 1.1; }
.ipos-entry__header > div > span { display: block; max-width: 600px; margin-top: 12px; color: var(--ipos-muted); font-size: 15px; line-height: 1.5; }
.ipos-entry__customer-link { display: inline-flex; min-height: 42px; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--ipos-line-strong); border-radius: 6px; color: var(--ipos-ink); font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ipos-entry__customer-link:hover { border-color: var(--ipos-action); color: var(--ipos-action); }
.ipos-entry__routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 28px; }
.ipos-entry__route { display: grid; grid-template-columns: 42px 1fr; gap: 14px; min-height: 184px; padding: 20px; border: 1px solid var(--ipos-line); border-radius: 8px; background: var(--ipos-surface); color: inherit; text-decoration: none; transition: border-color 140ms ease, background 140ms ease, transform 140ms ease; }
.ipos-entry__route:hover { border-color: var(--ipos-action); background: #f7fbf7; transform: translateY(-1px); }
.ipos-entry__route-icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--ipos-line-strong); border-radius: 6px; color: var(--ipos-action); font-family: var(--ipos-mono); font-size: 20px; font-weight: 800; }
.ipos-entry__route div { min-width: 0; }
.ipos-entry__route small { display: block; margin-bottom: 6px; color: var(--ipos-muted); font-size: 12px; font-weight: 700; }
.ipos-entry__route strong { display: block; font-size: 20px; line-height: 1.2; }
.ipos-entry__route p { margin: 10px 0 0; color: var(--ipos-muted); font-size: 14px; line-height: 1.5; }
.ipos-entry__route b { grid-column: 2; align-self: end; color: var(--ipos-action); font-size: 20px; }

@media (max-width: 900px) {
	:root { --ipos-admin-page-gutter: 24px; }
	.ipos-admin-shell { grid-template-columns: 196px minmax(0, 1fr); }
	.ipos-admin-sidebar { padding-inline: 10px; }
	.ipos-entry__routes { grid-template-columns: 1fr; }
}

@media (min-width: 701px) and (max-width: 1180px) {
	:root { --ipos-admin-page-gutter: 28px; }
	.ipos-admin-shell { grid-template-columns: 76px minmax(0, 1fr); }
	.ipos-admin-sidebar { align-items: center; padding-inline: 10px; }
	.ipos-admin-sidebar__brand { width: 100%; justify-content: center; padding-inline: 0; }
	.ipos-admin-sidebar__brand img { width: 52px; }
	.ipos-admin-sidebar__link > span:last-child { display: none; }
	.ipos-admin-sidebar nav { width: 100%; justify-items: center; }
	.ipos-admin-sidebar__link { width: 48px; min-height: 48px; justify-content: center; padding: 0; }
	.ipos-admin-sidebar__link > span:first-child { width: auto; }
}

@media (max-width: 700px) {
	:root { --ipos-admin-page-gutter: 16px; }
	.ipos-admin-shell { display: block; }
	.ipos-admin-sidebar { position: static; height: auto; padding: 10px 8px 0; border-right: 0; border-bottom: 1px solid var(--ipos-line); }
	.ipos-admin-sidebar__brand { min-height: 38px; padding: 0 0 12px; border: 0; }
	.ipos-admin-sidebar__brand img { width: 72px; }
	.ipos-admin-sidebar nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin: 0 -8px; padding: 0 8px 10px; overflow: visible; }
	.ipos-admin-sidebar__link { min-width: 0; width: 100%; min-height: 52px; flex-direction: column; justify-content: center; gap: 3px; padding: 5px 1px; border: 1px solid var(--ipos-line); background: var(--ipos-surface); font-size: 10px; line-height: 1.1; }
	.ipos-admin-sidebar__link.is-active { border-color: #bcd9c2; }
	.ipos-admin-sidebar__link > span:first-child { width: 18px; font-size: 16px; }
	.ipos-admin-sidebar__link > span:last-child { display: block; width: 100%; overflow: hidden; font-size: 0; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
	.ipos-admin-sidebar__link > span:last-child::after { content: attr(data-mobile-label); font-size: 10px; }
	.ipos-admin-bar { min-height: 62px; padding: 10px 16px; }
	.ipos-admin-bar strong { font-size: 14px; }
	.ipos-admin-content .ipos-staff-dashboard,
	.ipos-admin-content .ipos-cashier,
	.ipos-admin-content .ipos-qr-management { min-height: auto; }
	.ipos-entry { padding: 4px 0; }
	.ipos-entry__header { display: grid; align-items: start; padding-top: 8px; }
	.ipos-entry__header h1 { font-size: 29px; }
	.ipos-entry__customer-link { width: fit-content; }
	.ipos-entry__route { min-height: 146px; }
	.ipos-app-state { padding: 16px; }
	.ipos-app-state__panel { padding: 22px; }
	body.ipos-app-view-cashier .ipos-admin-shell { display: block; }
	body.ipos-app-view-cashier .ipos-admin-sidebar { align-items: stretch; padding: 10px 8px 0; }
	body.ipos-app-view-cashier .ipos-admin-sidebar__brand { width: auto; justify-content: flex-start; padding-bottom: 10px; }
	body.ipos-app-view-cashier .ipos-admin-sidebar__brand img { width: 72px; }
	body.ipos-app-view-cashier .ipos-admin-sidebar nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); justify-items: stretch; gap: 4px; margin: 0 -8px; padding: 0 8px 10px; }
	body.ipos-app-view-cashier .ipos-admin-sidebar__link { width: 100%; min-height: 52px; padding: 5px 1px; }
	body.ipos-app-view-cashier .ipos-admin-sidebar__link > span:last-child { display: inline; }
	body.ipos-app-view-cashier .ipos-admin-workspace,
	body.ipos-app-view-cashier .ipos-admin-content {
		height: auto;
		overflow: visible;
	}
	body.ipos-app-view-cashier .ipos-admin-content .ipos-cashier { height: auto; }
}

@media (prefers-reduced-motion: reduce) {
	body.ipos-app-shell *, body.ipos-app-shell *::before, body.ipos-app-shell *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__tooltip { animation: none !important; transition-duration: .01ms !important; }
}

/* IPOS-122: v5 Emerald Liquid Glass refines the shared Operations shell. */
body.ipos-app-view-operations {
	background:
		radial-gradient(ellipse 46% 58% at 7% 8%, rgb(36 143 100 / 35%), transparent 68%),
		radial-gradient(ellipse 42% 48% at 88% 3%, rgb(252 238 179 / 58%), transparent 72%),
		radial-gradient(ellipse 55% 50% at 48% 108%, rgb(195 238 220 / 58%), transparent 74%),
		linear-gradient(135deg, #dcefe7 0%, #f7f6ee 44%, #f7f5ed 100%);
}
body.ipos-app-view-operations .ipos-admin-shell {
	grid-template-columns: 170px minmax(0, 1fr);
	gap: 0;
	min-height: 100dvh;
}
body.ipos-app-view-operations .ipos-admin-sidebar {
	top: 12px;
	height: calc(100dvh - 24px);
	margin: 12px 0 12px 12px;
	padding: 24px 12px 16px;
	border: 1px solid rgb(255 255 255 / 74%);
	border-radius: 28px;
	background: linear-gradient(155deg, rgb(16 113 76 / 79%), rgb(43 145 104 / 55%) 58%, rgb(204 238 218 / 50%));
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 48%), 0 22px 48px rgb(19 93 67 / 20%);
	-webkit-backdrop-filter: blur(28px) saturate(1.16);
	backdrop-filter: blur(28px) saturate(1.16);
}
body.ipos-app-view-operations .ipos-admin-sidebar__brand {
	min-height: 72px;
	justify-content: flex-start;
	padding: 0 12px 20px;
	border-bottom-color: rgb(255 255 255 / 22%);
}
body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark {
	color: #fff;
	font-size: 30px;
	letter-spacing: -.06em;
	text-shadow: 0 1px 0 rgb(0 47 31 / 22%);
}
body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark > span { margin-right: 1px; }
body.ipos-app-view-operations .ipos-admin-sidebar__brand-caption { display: none; }
body.ipos-app-view-operations .ipos-admin-sidebar nav { gap: 10px; margin-top: 28px; }
body.ipos-app-view-operations .ipos-admin-sidebar__link {
	min-height: 54px;
	gap: 12px;
	padding: 0 12px;
	border: 1px solid transparent;
	border-radius: 17px;
	background: transparent;
	color: rgb(250 255 252 / 88%);
	font-weight: 620;
}
body.ipos-app-view-operations .ipos-admin-sidebar__link:hover { background: rgb(255 255 255 / 13%); color: #fff; }
body.ipos-app-view-operations .ipos-admin-sidebar__link.is-active {
	border-color: rgb(255 255 255 / 70%);
	background: linear-gradient(145deg, rgb(255 255 255 / 54%), rgb(225 251 238 / 31%));
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%), 0 10px 22px rgb(0 61 37 / 16%);
	color: #0b3828;
}
body.ipos-app-view-operations .ipos-admin-sidebar__icon { width: 22px; height: 22px; }
body.ipos-app-view-operations .ipos-admin-content { padding-left: 2px; }

@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-operations .ipos-admin-shell { grid-template-columns: 82px minmax(0, 1fr); }
	body.ipos-app-view-operations .ipos-admin-sidebar { margin-left: 10px; padding-inline: 8px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand { justify-content: center; padding-inline: 0; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark { font-size: 0; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark > span { font-size: 28px; }
}

@media (max-width: 700px) {
	body.ipos-app-view-operations .ipos-admin-sidebar {
		position: fixed;
		z-index: 50;
		inset: auto 8px calc(8px + env(safe-area-inset-bottom));
		width: auto;
		height: auto;
		margin: 0;
		padding: 7px;
		border-radius: 22px;
		background: rgb(20 95 66 / 86%);
	}
	body.ipos-app-view-operations .ipos-admin-sidebar__brand { display: none; }
	body.ipos-app-view-operations .ipos-admin-sidebar nav { margin: 0; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link { min-height: 54px; border-color: transparent; color: rgb(255 255 255 / 86%); }
	body.ipos-app-view-operations .ipos-admin-sidebar__link.is-active { color: #103a2a; }
	body.ipos-app-view-operations .ipos-admin-content { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
}

/* IPOS-121: approved Light Liquid Glass shell for the unified Operations app. */
:root {
	--ipos-lg-canvas: #f7f5ee;
	--ipos-lg-canvas-mint: #e7f3ea;
	--ipos-lg-content: rgb(255 255 255 / 88%);
	--ipos-lg-glass: rgb(255 255 255 / 52%);
	--ipos-lg-glass-thick: rgb(255 255 255 / 68%);
	--ipos-lg-edge: rgb(255 255 255 / 88%);
	--ipos-lg-inner-highlight: rgb(255 255 255 / 56%);
	--ipos-lg-shadow: rgb(42 89 63 / 18%);
	--ipos-lg-ink: #16241d;
	--ipos-lg-ink-muted: #5f6c64;
	--ipos-lg-focus: #197a35;
	--ipos-lg-selection: #145c38;
	--ipos-lg-action: #197a35;
	--ipos-lg-empty: #56645a;
	--ipos-lg-serving: #2d7a43;
	--ipos-lg-work: #8a5700;
	--ipos-lg-payment-requested: #b83a30;
	--ipos-lg-paying: #216cb5;
	--ipos-lg-cleanup: #6f5b36;
	--ipos-lg-disabled: #778077;
}

body.ipos-app-view-operations {
	background:
		radial-gradient(circle at 2% 98%, rgb(182 235 215 / 48%), transparent 28rem),
		radial-gradient(circle at 78% 5%, rgb(255 247 219 / 70%), transparent 34rem),
		var(--ipos-lg-canvas);
	color: var(--ipos-lg-ink);
}
html:has(body.ipos-app-view-operations),
body.ipos-app-view-operations { margin-top: 0 !important; padding-top: 0 !important; }
body.ipos-app-view-operations .ipos-admin-shell { grid-template-columns: 126px minmax(0, 1fr); background: transparent; }
body.ipos-app-view-operations .ipos-admin-sidebar {
	top: 14px;
	height: calc(100dvh - 28px);
	margin: 14px 0 14px 14px;
	padding: 18px 10px;
	border: 1px solid var(--ipos-lg-edge);
	border-radius: 32px;
	background: linear-gradient(145deg, rgb(255 255 255 / 74%), rgb(239 249 242 / 46%));
	box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), inset 0 0 0 1px rgb(67 122 88 / 8%), 0 18px 40px var(--ipos-lg-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.18);
	backdrop-filter: blur(24px) saturate(1.18);
}
body.ipos-app-view-operations .ipos-admin-sidebar__brand { flex-direction: column; justify-content: center; padding: 2px 2px 16px; border: 0; }
body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark { width: 66px; height: 66px; border: 1px solid rgb(255 255 255 / 72%); border-radius: 22px; background: radial-gradient(circle at 68% 22%, #e3ef9d 0 4%, transparent 5%), linear-gradient(145deg, #31895a, #0d5134); font-size: 20px; box-shadow: inset 0 1px 0 rgb(255 255 255 / 52%), inset 0 0 0 1px rgb(6 56 34 / 18%), 0 10px 24px rgb(24 91 57 / 22%); }
body.ipos-app-view-operations .ipos-admin-sidebar__brand-caption { color: #456253; }
body.ipos-app-view-operations .ipos-admin-sidebar nav { gap: 8px; margin-top: 16px; }
body.ipos-app-view-operations .ipos-admin-sidebar__link {
	min-height: 92px;
	flex-direction: column;
	justify-content: center;
	gap: 9px;
	padding: 12px 6px;
	border: 1px solid transparent;
	border-radius: 24px;
	color: #31473b;
	font-size: 13px;
	font-weight: 680;
}
body.ipos-app-view-operations .ipos-admin-sidebar__link > span:first-child { width: 26px; }
body.ipos-app-view-operations .ipos-admin-sidebar__icon svg { width: 26px; height: 26px; stroke-width: 1.7; }
body.ipos-app-view-operations .ipos-admin-sidebar__link:hover { border-color: rgb(255 255 255 / 80%); background: rgb(255 255 255 / 42%); color: #31473b; }
body.ipos-app-view-operations .ipos-admin-sidebar__link.is-active {
	border-color: rgb(255 255 255 / 84%);
	background: linear-gradient(145deg, rgb(217 247 231 / 78%), rgb(196 234 215 / 52%));
	color: #0f5e39;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 86%), 0 10px 24px rgb(26 110 67 / 15%);
}
body.ipos-app-view-operations .ipos-admin-bar { display: none; }
body.ipos-app-view-operations .ipos-admin-content { padding: 24px 24px 30px 34px; }
body.ipos-app-view-operations .ipos-admin-content .ipos-table-operations { width: 100%; max-width: 1600px; }

	@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-operations .ipos-admin-shell { grid-template-columns: 82px minmax(0, 1fr); }
	body.ipos-app-view-operations .ipos-admin-sidebar { align-items: center; margin-left: 10px; padding-inline: 8px; border-radius: 27px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand-mark { width: 48px; height: 48px; border-radius: 17px; font-size: 16px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand-caption { display: none; }
	body.ipos-app-view-operations .ipos-admin-sidebar nav { width: 100%; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link { width: 100%; min-height: 64px; padding: 7px 2px; border-radius: 18px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link > span:last-child { display: none; }
	body.ipos-app-view-operations .ipos-admin-content { padding: 20px 20px 26px 26px; }
}

@media (max-width: 700px) {
	body.ipos-app-view-operations .ipos-admin-shell { display: block; }
	body.ipos-app-view-operations .ipos-admin-sidebar { position: static; width: 0; height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body.ipos-app-view-operations .ipos-admin-sidebar__brand { display: none; }
	body.ipos-app-view-operations .ipos-admin-sidebar nav {
		position: fixed;
		z-index: 55;
		right: 12px;
		bottom: max(10px, env(safe-area-inset-bottom));
		left: 12px;
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 5px;
		margin: 0;
		padding: 7px;
		border: 1px solid var(--ipos-lg-edge);
		border-radius: 26px;
		background: var(--ipos-lg-glass-thick);
		box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 14px 36px var(--ipos-lg-shadow);
		-webkit-backdrop-filter: blur(24px) saturate(1.2);
		backdrop-filter: blur(24px) saturate(1.2);
	}
	body.ipos-app-view-operations .ipos-admin-sidebar__link { width: 100%; min-height: 58px; flex-direction: column; gap: 3px; padding: 5px 2px; border-radius: 19px; font-size: 10px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link > span:first-child { width: 20px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link > span:last-child { display: block; font-size: 10px; }
	body.ipos-app-view-operations .ipos-admin-sidebar__link > span:last-child::after { content: none; }
	body.ipos-app-view-operations .ipos-admin-content { padding: 12px 14px calc(100px + env(safe-area-inset-bottom)); }
}

@media (max-width: 1180px) {
	body.ipos-operations-inspector-open { overflow: hidden; }
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
	body.ipos-app-view-operations .ipos-admin-sidebar,
	body.ipos-app-view-operations .ipos-admin-sidebar nav { background: #f8fbf8; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* IPOS-124: preserve the mobile mint atmosphere on wider Operations canvases. */
@media (min-width: 701px) {
	body.ipos-app-view-operations {
		background:
			radial-gradient(ellipse 62% 68% at 7% 6%, rgb(109 190 149 / 38%), transparent 70%),
			radial-gradient(ellipse 52% 56% at 92% 8%, rgb(255 231 161 / 43%), transparent 72%),
			radial-gradient(ellipse 76% 64% at 48% 106%, rgb(180 229 205 / 55%), transparent 74%),
			linear-gradient(138deg, #d5eadf 0%, #edf3ea 47%, #e2f0e7 100%);
	}
}

/* IPOS-131: selectively reuse the verified Liquid Glass shell for Overview.
 * Overview retains its own read-only exception dashboard rather than inheriting
 * the Operations workspace composition. */
body.ipos-app-view-overview {
	background:
		radial-gradient(ellipse 62% 66% at 6% 4%, rgb(112 194 153 / 34%), transparent 70%),
		radial-gradient(ellipse 49% 54% at 92% 9%, rgb(255 231 166 / 39%), transparent 72%),
		radial-gradient(ellipse 76% 64% at 50% 108%, rgb(184 230 209 / 52%), transparent 74%),
		linear-gradient(138deg, #d8eadf 0%, #eef4ec 48%, #e3f0e8 100%);
	color: var(--ipos-lg-ink);
}
html:has(body.ipos-app-view-overview),
body.ipos-app-view-overview { margin-top: 0 !important; padding-top: 0 !important; }
body.ipos-app-view-overview .ipos-admin-shell { grid-template-columns: 126px minmax(0, 1fr); background: transparent; }
body.ipos-app-view-overview .ipos-admin-sidebar {
	top: 14px;
	height: calc(100dvh - 28px);
	margin: 14px 0 14px 14px;
	padding: 18px 10px;
	border: 1px solid var(--ipos-lg-edge);
	border-radius: 32px;
	background: linear-gradient(145deg, rgb(255 255 255 / 74%), rgb(239 249 242 / 46%));
	box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), inset 0 0 0 1px rgb(67 122 88 / 8%), 0 18px 40px var(--ipos-lg-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.18);
	backdrop-filter: blur(24px) saturate(1.18);
}
body.ipos-app-view-overview .ipos-admin-sidebar__brand { flex-direction: column; justify-content: center; padding: 2px 2px 16px; border: 0; }
body.ipos-app-view-overview .ipos-admin-sidebar__brand-mark { width: 66px; height: 66px; border: 1px solid rgb(255 255 255 / 72%); border-radius: 22px; background: radial-gradient(circle at 68% 22%, #e3ef9d 0 4%, transparent 5%), linear-gradient(145deg, #31895a, #0d5134); font-size: 20px; box-shadow: inset 0 1px 0 rgb(255 255 255 / 52%), inset 0 0 0 1px rgb(6 56 34 / 18%), 0 10px 24px rgb(24 91 57 / 22%); }
body.ipos-app-view-overview .ipos-admin-sidebar__brand-caption { color: #456253; }
body.ipos-app-view-overview .ipos-admin-sidebar nav { gap: 8px; margin-top: 16px; }
body.ipos-app-view-overview .ipos-admin-sidebar__link { min-height: 92px; flex-direction: column; justify-content: center; gap: 9px; padding: 12px 6px; border: 1px solid transparent; border-radius: 24px; color: #31473b; font-size: 13px; font-weight: 680; }
body.ipos-app-view-overview .ipos-admin-sidebar__link > span:first-child { width: 26px; }
body.ipos-app-view-overview .ipos-admin-sidebar__icon svg { width: 26px; height: 26px; stroke-width: 1.7; }
body.ipos-app-view-overview .ipos-admin-sidebar__link:hover { border-color: rgb(255 255 255 / 80%); background: rgb(255 255 255 / 42%); }
body.ipos-app-view-overview .ipos-admin-sidebar__link.is-active { border-color: rgb(255 255 255 / 84%); background: linear-gradient(145deg, rgb(217 247 231 / 78%), rgb(196 234 215 / 52%)); color: #0f5e39; box-shadow: inset 0 1px 0 rgb(255 255 255 / 86%), 0 10px 24px rgb(26 110 67 / 15%); }
body.ipos-app-view-overview .ipos-admin-bar { display: none; }
body.ipos-app-view-overview .ipos-admin-content { padding: 24px 24px 34px 34px; }

@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-overview .ipos-admin-shell { grid-template-columns: 82px minmax(0, 1fr); }
	body.ipos-app-view-overview .ipos-admin-sidebar { align-items: center; margin-left: 10px; padding-inline: 8px; border-radius: 27px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__brand-mark { width: 48px; height: 48px; border-radius: 17px; font-size: 16px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__brand-caption { display: none; }
	body.ipos-app-view-overview .ipos-admin-sidebar nav { width: 100%; }
	body.ipos-app-view-overview .ipos-admin-sidebar__link { width: 100%; min-height: 64px; padding: 7px 2px; border-radius: 18px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__link > span:last-child { display: none; }
	body.ipos-app-view-overview .ipos-admin-content { padding: 20px 20px 26px 26px; }
}

@media (max-width: 700px) {
	body.ipos-app-view-overview .ipos-admin-shell { display: block; }
	body.ipos-app-view-overview .ipos-admin-sidebar { position: static; width: 0; height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body.ipos-app-view-overview .ipos-admin-sidebar__brand { display: none; }
	body.ipos-app-view-overview .ipos-admin-sidebar nav { position: fixed; z-index: 55; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); left: 12px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; margin: 0; padding: 7px; border: 1px solid var(--ipos-lg-edge); border-radius: 26px; background: var(--ipos-lg-glass-thick); box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 14px 36px var(--ipos-lg-shadow); -webkit-backdrop-filter: blur(24px) saturate(1.2); backdrop-filter: blur(24px) saturate(1.2); }
	body.ipos-app-view-overview .ipos-admin-sidebar__link { width: 100%; min-height: 58px; flex-direction: column; gap: 3px; padding: 5px 2px; border-radius: 19px; font-size: 10px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__link > span:first-child { width: 20px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__link > span:last-child { display: block; font-size: 10px; }
	body.ipos-app-view-overview .ipos-admin-sidebar__link > span:last-child::after { content: none; }
	body.ipos-app-view-overview .ipos-admin-content { padding: 12px 14px calc(100px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
	body.ipos-app-view-overview .ipos-admin-sidebar,
	body.ipos-app-view-overview .ipos-admin-sidebar nav { background: #f8fbf8; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* IPOS-133: Bàn & QR uses the same app-native shell as Overview and Operations,
 * while its interior stays a settings directory rather than a service map. */
body.ipos-app-view-qr {
	background:
		radial-gradient(ellipse 62% 66% at 6% 4%, rgb(112 194 153 / 34%), transparent 70%),
		radial-gradient(ellipse 49% 54% at 92% 9%, rgb(255 231 166 / 39%), transparent 72%),
		radial-gradient(ellipse 76% 64% at 50% 108%, rgb(184 230 209 / 52%), transparent 74%),
		linear-gradient(138deg, #d8eadf 0%, #eef4ec 48%, #e3f0e8 100%);
	color: var(--ipos-lg-ink);
}
html:has(body.ipos-app-view-qr),
body.ipos-app-view-qr { margin-top: 0 !important; padding-top: 0 !important; }
body.ipos-app-view-qr .ipos-admin-shell { grid-template-columns: 126px minmax(0, 1fr); background: transparent; }
body.ipos-app-view-qr .ipos-admin-sidebar {
	top: 14px;
	height: calc(100dvh - 28px);
	margin: 14px 0 14px 14px;
	padding: 18px 10px;
	border: 1px solid var(--ipos-lg-edge);
	border-radius: 32px;
	background: linear-gradient(145deg, rgb(255 255 255 / 74%), rgb(239 249 242 / 46%));
	box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), inset 0 0 0 1px rgb(67 122 88 / 8%), 0 18px 40px var(--ipos-lg-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.18);
	backdrop-filter: blur(24px) saturate(1.18);
}
body.ipos-app-view-qr .ipos-admin-sidebar__brand { flex-direction: column; justify-content: center; padding: 2px 2px 16px; border: 0; }
body.ipos-app-view-qr .ipos-admin-sidebar__brand-mark { width: 66px; height: 66px; border: 1px solid rgb(255 255 255 / 72%); border-radius: 22px; background: radial-gradient(circle at 68% 22%, #e3ef9d 0 4%, transparent 5%), linear-gradient(145deg, #31895a, #0d5134); font-size: 20px; box-shadow: inset 0 1px 0 rgb(255 255 255 / 52%), inset 0 0 0 1px rgb(6 56 34 / 18%), 0 10px 24px rgb(24 91 57 / 22%); }
body.ipos-app-view-qr .ipos-admin-sidebar__brand-caption { color: #456253; }
body.ipos-app-view-qr .ipos-admin-sidebar nav { gap: 8px; margin-top: 16px; }
body.ipos-app-view-qr .ipos-admin-sidebar__link { min-height: 92px; flex-direction: column; justify-content: center; gap: 9px; padding: 12px 6px; border: 1px solid transparent; border-radius: 24px; color: #31473b; font-size: 13px; font-weight: 680; }
body.ipos-app-view-qr .ipos-admin-sidebar__link > span:first-child { width: 26px; }
body.ipos-app-view-qr .ipos-admin-sidebar__icon svg { width: 26px; height: 26px; stroke-width: 1.7; }
body.ipos-app-view-qr .ipos-admin-sidebar__link:hover { border-color: rgb(255 255 255 / 80%); background: rgb(255 255 255 / 42%); }
body.ipos-app-view-qr .ipos-admin-sidebar__link.is-active { border-color: rgb(255 255 255 / 84%); background: linear-gradient(145deg, rgb(217 247 231 / 78%), rgb(196 234 215 / 52%)); color: #0f5e39; box-shadow: inset 0 1px 0 rgb(255 255 255 / 86%), 0 10px 24px rgb(26 110 67 / 15%); }
body.ipos-app-view-qr .ipos-admin-bar { display: none; }
body.ipos-app-view-qr .ipos-admin-content { padding: 24px 24px 34px 34px; }

@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-qr .ipos-admin-shell { grid-template-columns: 82px minmax(0, 1fr); }
	body.ipos-app-view-qr .ipos-admin-sidebar { align-items: center; margin-left: 10px; padding-inline: 8px; border-radius: 27px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__brand-mark { width: 48px; height: 48px; border-radius: 17px; font-size: 16px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__brand-caption { display: none; }
	body.ipos-app-view-qr .ipos-admin-sidebar nav { width: 100%; }
	body.ipos-app-view-qr .ipos-admin-sidebar__link { width: 100%; min-height: 64px; padding: 7px 2px; border-radius: 18px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__link > span:last-child { display: none; }
	body.ipos-app-view-qr .ipos-admin-content { padding: 20px 20px 26px 26px; }
}

@media (max-width: 700px) {
	body.ipos-app-view-qr .ipos-admin-shell { display: block; }
	body.ipos-app-view-qr .ipos-admin-sidebar { position: static; width: 0; height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body.ipos-app-view-qr .ipos-admin-sidebar__brand { display: none; }
	body.ipos-app-view-qr .ipos-admin-sidebar nav { position: fixed; z-index: 55; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); left: 12px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; margin: 0; padding: 7px; border: 1px solid var(--ipos-lg-edge); border-radius: 26px; background: var(--ipos-lg-glass-thick); box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 14px 36px var(--ipos-lg-shadow); -webkit-backdrop-filter: blur(24px) saturate(1.2); backdrop-filter: blur(24px) saturate(1.2); }
	body.ipos-app-view-qr .ipos-admin-sidebar__link { width: 100%; min-height: 58px; flex-direction: column; gap: 3px; padding: 5px 2px; border-radius: 19px; font-size: 10px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__link > span:first-child { width: 20px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__link > span:last-child { display: block; font-size: 10px; }
	body.ipos-app-view-qr .ipos-admin-sidebar__link > span:last-child::after { content: none; }
	body.ipos-app-view-qr .ipos-admin-content { padding: 12px 14px calc(100px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
	body.ipos-app-view-qr .ipos-admin-sidebar,
	body.ipos-app-view-qr .ipos-admin-sidebar nav { background: #f8fbf8; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* IPOS-134: visible breathing room between the navigation rail and workspace. */
@media (min-width: 1181px) {
	body.ipos-app-view-qr .ipos-admin-shell { column-gap: 14px; }
	body.ipos-app-view-qr .ipos-admin-content { padding-left: 20px; }
}
@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-qr .ipos-admin-shell { column-gap: 10px; }
	body.ipos-app-view-qr .ipos-admin-content { padding-left: 16px; }
}
/* IPOS-150: one Webo wordmark across staff and customer contexts. */
.ipos-admin-sidebar .ipos-admin-sidebar__brand > img { width: 112px; max-width: 100%; height: auto; }
body.ipos-app-view-operations .ipos-admin-sidebar__brand img,
body.ipos-app-view-overview .ipos-admin-sidebar__brand img,
body.ipos-app-view-qr .ipos-admin-sidebar__brand img { width: 116px; }
@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-view-operations .ipos-admin-sidebar__brand img,
	body.ipos-app-view-overview .ipos-admin-sidebar__brand img,
body.ipos-app-view-qr .ipos-admin-sidebar__brand img { width: 54px; }
}

/* IPOS-185: shared app-owned field language.  Opt in editable data fields
 * only; search, hidden, checkbox/file controls and native-picker contracts
 * keep their route-specific geometry and interaction affordances. */
body.ipos-app-shell {
	--ipos-field-surface: rgb(255 255 255 / 72%);
	--ipos-field-label-surface: rgb(243 248 244 / 68%);
	--ipos-field-line: #a9c8b2;
	--ipos-field-line-hover: #6da982;
	--ipos-field-line-focus: #197a35;
}
body.ipos-app-shell .ipos-field--floating {
	position: relative;
	display: block;
	min-width: 0;
}
body.ipos-app-shell .ipos-field--floating > span:first-child:not(.screen-reader-text) {
	position: absolute;
	top: 0;
	left: 12px;
	z-index: 1;
	max-width: calc(100% - 24px);
	padding: 0 5px;
	transform: translateY(-50%);
	background: var(--ipos-field-label-surface);
	color: var(--ipos-muted);
	font-size: 11px;
	font-weight: 780;
	letter-spacing: .01em;
	line-height: 1.2;
	white-space: nowrap;
}
body.ipos-app-shell .ipos-field--floating:focus-within > span:first-child:not(.screen-reader-text) {
	color: var(--ipos-field-line-focus);
}
body.ipos-app-shell .ipos-field--floating input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.ipos-app-shell .ipos-field--floating textarea,
body.ipos-app-shell .ipos-field--floating select:not([data-ipos-styled-select]),
body.ipos-app-shell .ipos-field--floating .ipos-qr-management__combobox > input {
	width: 100%;
	min-width: 0;
	min-height: 48px;
	padding: 16px 14px 7px;
	border: 1.5px solid var(--ipos-field-line) !important;
	border-radius: 12px !important;
	background: var(--ipos-field-surface) !important;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 76%);
	color: var(--ipos-ink);
	font: inherit;
	line-height: 1.25;
	transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
/* One component owns the material for non-native field controls too. Routes
 * opt in with .ipos-field--floating; they must not recreate border, glass or
 * focus values in their own stylesheet. */
body.ipos-app-shell .ipos-field--floating > button,
body.ipos-app-shell .ipos-field--floating > .ipos-styled-select .ipos-styled-select__trigger {
	display: flex;
	width: 100%;
	min-width: 0;
	min-height: 48px;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 16px 14px 7px;
	border: 1.5px solid var(--ipos-field-line);
	border-radius: 12px;
	background: var(--ipos-field-surface);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 76%);
	color: var(--ipos-ink);
	font: inherit;
	line-height: 1.25;
	text-align: left;
}
body.ipos-app-shell .ipos-field--floating textarea {
	min-height: 88px;
	resize: vertical;
}
body.ipos-app-shell .ipos-field--floating input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
body.ipos-app-shell .ipos-field--floating textarea:hover,
body.ipos-app-shell .ipos-field--floating select:not([data-ipos-styled-select]):hover,
body.ipos-app-shell .ipos-field--floating .ipos-qr-management__combobox > input:hover,
body.ipos-app-shell .ipos-field--floating > button:hover,
body.ipos-app-shell .ipos-field--floating > .ipos-styled-select .ipos-styled-select__trigger:hover,
body.ipos-app-shell .ipos-field--floating > .ipos-styled-select.is-open .ipos-styled-select__trigger {
	border-color: var(--ipos-field-line-hover) !important;
}
body.ipos-app-shell .ipos-field--floating input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
body.ipos-app-shell .ipos-field--floating textarea:focus,
body.ipos-app-shell .ipos-field--floating select:not([data-ipos-styled-select]):focus,
body.ipos-app-shell .ipos-field--floating .ipos-qr-management__combobox > input:focus,
body.ipos-app-shell .ipos-field--floating > button:focus-visible,
body.ipos-app-shell .ipos-field--floating > .ipos-styled-select .ipos-styled-select__trigger:focus-visible {
	border-color: var(--ipos-field-line-focus) !important;
	box-shadow: 0 0 0 3px var(--ipos-focus), inset 0 1px 0 rgb(255 255 255 / 76%);
	outline: 0;
}
body.ipos-app-shell .ipos-field--floating input::placeholder,
body.ipos-app-shell .ipos-field--floating textarea::placeholder {
	color: var(--ipos-muted);
	opacity: .78;
}
body.ipos-app-shell .ipos-field--floating > small {
	display: block;
	margin-top: 6px;
	color: var(--ipos-muted);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
}
body.ipos-app-shell .ipos-field--compact {
	display: grid;
	gap: 6px;
	min-width: 0;
}
body.ipos-app-shell .ipos-field--compact > span:first-child:not(.screen-reader-text) {
	color: var(--ipos-muted);
	font-size: 12px;
	font-weight: 750;
}
body.ipos-app-shell .ipos-field--price input {
	font-variant-numeric: tabular-nums;
}
body.ipos-app-shell .ipos-field--floating :is(input, textarea, select):disabled,
body.ipos-app-shell .ipos-field--floating :is(input, textarea, select)[readonly] {
	background: rgb(239 245 240 / 74%) !important;
	color: var(--ipos-muted);
}
@media (max-width: 700px) {
	body.ipos-app-shell .ipos-field--floating input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
	body.ipos-app-shell .ipos-field--floating textarea,
	body.ipos-app-shell .ipos-field--floating select:not([data-ipos-styled-select]),
	body.ipos-app-shell .ipos-field--floating .ipos-qr-management__combobox > input {
		min-height: 46px;
		padding-inline: 12px;
	}
	body.ipos-app-shell .ipos-field--floating textarea { min-height: 82px; }
}
@media (prefers-reduced-motion: reduce) {
	body.ipos-app-shell .ipos-field--floating :is(input, textarea, select) { transition: none; }
}

/* Existing route markup aliases. These keep the migration presentation-only
 * while bringing plain app-owned forms into the same field component. */
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) {
	position: relative;
	display: block;
	min-width: 0;
}
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) > span:first-child:not(.screen-reader-text) {
	position: absolute;
	top: 0;
	left: 12px;
	z-index: 1;
	max-width: calc(100% - 24px);
	padding: 0 5px;
	transform: translateY(-50%);
	background: var(--ipos-field-label-surface);
	color: var(--ipos-muted);
	font-size: 11px;
	font-weight: 780;
	letter-spacing: .01em;
	line-height: 1.2;
	white-space: nowrap;
}
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
):focus-within > span:first-child:not(.screen-reader-text) { color: var(--ipos-field-line-focus); }

/* IPOS-209: the notch label is a small refractive glass surface rather than a
 * flat patch of paint. This applies only to app-owned floating labels. */
body.ipos-app-shell :is(
	.ipos-field--floating,
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) > span:first-child:not(.screen-reader-text) {
	border: 1px solid rgb(255 255 255 / 72%);
	border-radius: 7px;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 52%), 0 1px 2px rgb(30 74 48 / 8%);
	-webkit-backdrop-filter: blur(10px) saturate(116%);
	backdrop-filter: blur(10px) saturate(116%);
}
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]), textarea, select:not([data-ipos-styled-select])) {
		width: 100%;
		min-width: 0;
		min-height: 48px;
		padding: 16px 14px 7px;
		border: 1.5px solid var(--ipos-field-line) !important;
		border-radius: 12px !important;
		background: var(--ipos-field-surface) !important;
		box-shadow: inset 0 1px 0 rgb(255 255 255 / 76%);
		color: var(--ipos-ink);
		font: inherit;
		line-height: 1.25;
		transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) :is(input, textarea, select):focus {
	border-color: var(--ipos-field-line-focus) !important;
	box-shadow: 0 0 0 3px var(--ipos-focus), inset 0 1px 0 rgb(255 255 255 / 76%);
	outline: 0;
}

/* IPOS-NAV-IA: one hierarchical navigation system shared by the desktop
 * sidebar, tablet rail/panel and five-item phone dock. */
body.ipos-app-shell.ipos-nav-ia {
	--ipos-nav-width: 276px;
	--ipos-nav-glass: rgb(243 252 247 / 72%);
	--ipos-nav-edge: rgb(255 255 255 / 78%);
	--ipos-nav-shadow: rgb(19 94 67 / 15%);
}
body.ipos-app-shell.ipos-nav-ia .ipos-admin-shell {
	grid-template-columns: var(--ipos-nav-width) minmax(0, 1fr);
	gap: 0;
	background: transparent;
	transition: grid-template-columns 280ms cubic-bezier(.2, .8, .2, 1);
}
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar {
	position: sticky;
	top: 12px;
	min-height: 0;
	height: calc(100dvh - 24px);
	margin: 12px 0 12px 12px;
	padding: 20px 12px 14px;
	border: 1px solid var(--ipos-nav-edge);
	border-radius: 28px;
	background: linear-gradient(155deg, rgb(235 250 241 / 88%), rgb(214 243 225 / 65%));
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 88%), 0 20px 42px var(--ipos-nav-shadow);
	-webkit-backdrop-filter: blur(26px) saturate(1.12);
	backdrop-filter: blur(26px) saturate(1.12);
	overflow: hidden;
	transition: padding 280ms cubic-bezier(.2, .8, .2, 1), border-radius 280ms cubic-bezier(.2, .8, .2, 1), background 220ms ease;
}
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__brand {
	min-height: 68px;
	align-items: flex-start;
	padding: 2px 10px 16px;
	border-bottom-color: rgb(30 100 69 / 16%);
}
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__brand img { display: block; width: 116px; max-width: 100%; height: auto; transform-origin: left center; transition: width 240ms ease, transform 240ms ease, opacity 160ms ease; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__browse { display: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation { display: grid; min-width: 0; min-height: 0; flex: 1 1 auto; align-content: start; gap: 7px; margin-top: 14px; padding-right: 3px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--ipos-scrollbar-thumb) var(--ipos-scrollbar-track); scrollbar-width: thin; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__label { margin: 0 10px 7px; color: #17704b; font-size: 11px; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group { min-width: 0; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent { display: block; min-height: 48px; border: 1px solid transparent; border-radius: 14px; transition: background 160ms ease, border-color 160ms ease, box-shadow 180ms ease; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link { display: flex; width: 100%; min-width: 0; min-height: 46px; align-items: center; gap: 12px; padding: 0 12px; border: 0; border-radius: 13px; background: transparent; color: #294536; font: inherit; font-size: 15px; font-weight: 720; text-align: left; text-decoration: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-button { cursor: pointer; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link > [data-ipos-nav-label] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link:hover { color: var(--ipos-action); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__toggle { display: grid; width: 20px; height: 20px; flex: 0 0 20px; place-items: center; margin-left: auto; color: #47735d; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; transition: transform 180ms ease; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-expanded .ipos-admin-navigation__toggle svg { transform: rotate(180deg); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent { border-color: rgb(106 214 165 / 68%); background: linear-gradient(140deg, rgb(255 255 255 / 72%), rgb(212 247 230 / 58%)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 94%), 0 8px 18px rgb(28 118 78 / 10%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent .ipos-admin-navigation__parent-link { color: #087047; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__icon { display: grid; width: 22px; flex: 0 0 22px; place-items: center; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__icon svg { display: block; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children { position: relative; display: grid; gap: 3px; margin: 5px 0 7px 32px; padding: 3px 0 3px 16px; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children[hidden] { display: none !important; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children::before { position: absolute; top: 4px; bottom: 4px; left: 0; width: 1px; background: rgb(69 139 101 / 32%); content: ''; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child { position: relative; display: flex; min-width: 0; min-height: 42px; align-items: center; gap: 10px; padding: 0 10px; border: 1px solid transparent; border-radius: 10px; color: #476052; font-size: 13px; font-weight: 650; text-decoration: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child::before { position: absolute; top: 50%; left: -16px; width: 11px; height: 1px; background: rgb(69 139 101 / 32%); content: ''; transform: translateY(-50%); transition: width 160ms ease, background 160ms ease; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child:hover { background: rgb(255 255 255 / 50%); color: var(--ipos-action); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child.is-active { border-color: rgb(137 221 180 / 62%); background: rgb(223 247 233 / 84%); color: #087047; font-weight: 760; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child.is-active::before { width: 16px; background: rgb(12 107 69 / 48%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__child > span:nth-child(2) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head { display: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button { position: relative; font-size: 0; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button::before,
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button::after { position: absolute; top: 50%; left: 50%; width: 15px; height: 2px; border-radius: 999px; background: currentColor; content: ''; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button::before { transform: translate(-50%, -50%) rotate(45deg); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button::after { transform: translate(-50%, -50%) rotate(-45deg); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__tooltip { display: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__footer { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: auto; padding: 14px 8px 0; border-top: 1px solid rgb(30 100 69 / 15%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__footer-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 8px; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__collapse,
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__lock,
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__logout { display: grid; width: 38px; height: 38px; place-items: center; justify-self: end; padding: 0; border-radius: 999px; cursor: pointer; line-height: 0; text-decoration: none; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__collapse { border: 1px solid rgb(122 199 159 / 38%); background: rgb(255 255 255 / 42%); color: #0c7049; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__lock { border: 1px solid rgb(8 112 71 / 42%); background: rgb(232 248 239 / 88%); color: #065f3c; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__logout { border: 1px solid rgb(180 35 24 / 38%); background: rgb(254 242 242 / 92%); color: #b42318; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__collapse svg,
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__lock svg,
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__logout svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity { display: flex; min-width: 0; width: 100%; max-width: 100%; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 10px; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity > span { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border: 1px solid rgb(117 220 169 / 65%); border-radius: 12px; background: rgb(255 255 255 / 58%); color: #087047; font-size: 13px; font-weight: 800; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity div { min-width: 0; flex: 1 1 auto; text-align: left; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity strong, body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity strong { color: var(--ipos-ink); font-size: 12px; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity small { margin-top: 2px; color: var(--ipos-muted); font-size: 11px; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__backdrop { position: fixed; z-index: 78; inset: 0; background: rgb(18 42 29 / 30%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog { width: min(420px, calc(100vw - 32px)); margin: auto; padding: 0; overflow: hidden; border: 1px solid rgb(30 100 69 / 18%); border-radius: 16px; background: var(--ipos-surface, #f7fcf8); box-shadow: 0 28px 80px rgb(12 49 29 / 28%); color: var(--ipos-ink); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog::backdrop { background: rgb(18 42 29 / 46%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > header { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 22px 22px 14px; border-bottom: 1px solid rgb(30 100 69 / 12%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog__eyebrow { margin: 0; color: #087047; font-size: 11px; font-weight: 760; letter-spacing: .04em; text-transform: uppercase; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog h2 { margin: 6px 0 0; color: var(--ipos-ink); font-size: 24px; line-height: 1.15; letter-spacing: -.02em; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > header > button { display: inline-flex; width: 40px; min-width: 40px; height: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 0; border: 1px solid rgb(122 199 159 / 38%); border-radius: 999px; background: rgb(255 255 255 / 55%); color: #0c7049; cursor: pointer; line-height: 0; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > header > button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > p { margin: 0; padding: 18px 22px 22px; color: var(--ipos-muted); font-size: 14px; line-height: 1.55; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer { display: flex; justify-content: end; gap: 9px; padding: 14px 22px 20px; border-top: 1px solid rgb(30 100 69 / 12%); }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer button { min-height: 44px; min-width: 108px; padding: 0 16px; border-radius: 12px; cursor: pointer; font-weight: 700; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer button:not(.is-danger) { border: 1px solid rgb(122 199 159 / 42%); background: rgb(255 255 255 / 72%); color: #0c7049; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer button.is-danger { border: 1px solid #b42318; background: #b42318; color: #fff; }
body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer button.is-danger:hover { border-color: #912018; background: #912018; color: #fff; }
@media (max-width: 700px) {
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog { width: calc(100vw - 20px); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer { flex-direction: column-reverse; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-logout-dialog > footer button { width: 100%; }
}

@media (min-width: 1181px) {
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-workspace { min-width: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-content { padding-left: 28px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-shell:has(.ipos-admin-sidebar.is-collapsed) { grid-template-columns: 88px minmax(0, 1fr); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed { align-items: center; padding-inline: 4px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-sidebar__brand { align-items: center; padding-inline: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__label,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__parent-link > [data-ipos-nav-label],
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__toggle,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__children,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-sidebar__identity { display: none !important; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-sidebar__brand img { width: 58px; transform: scale(.96); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation { width: 100%; justify-items: center; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__parent { display: block; width: 48px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__parent-link { justify-content: center; padding: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-sidebar__footer { align-items: center; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-sidebar__footer-actions { flex-direction: column; justify-content: center; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__tooltip { position: fixed; z-index: 100; display: block; max-width: 220px; padding: 8px 10px; border: 1px solid rgb(119 194 153 / 42%); border-radius: 8px; background: rgb(249 254 251 / 98%); box-shadow: 0 8px 22px rgb(19 94 67 / 16%); color: #234936; font-size: 12px; font-weight: 650; line-height: 1.2; opacity: 0; pointer-events: none; transform: translateY(-50%) translateX(-4px); transition: opacity 150ms ease, transform 150ms ease; visibility: hidden; white-space: nowrap; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-collapsed .ipos-admin-navigation__tooltip[data-visible="true"] { opacity: 1; transform: translateY(-50%) translateX(0); visibility: visible; }
}

@media (min-width: 701px) and (max-width: 1180px) {
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-shell { grid-template-columns: 88px minmax(0, 1fr); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr) auto; align-items: start; align-content: stretch; justify-items: center; margin-left: 10px; padding: 16px 9px 12px; overflow: hidden; border-radius: 26px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__brand { grid-row: 1; width: 100%; min-height: 50px; align-items: center; padding: 0 0 12px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__brand img { width: 54px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__browse { grid-row: 2; display: grid; width: 48px; height: 48px; place-items: center; margin: 9px 0 10px; padding: 0; border: 1px solid rgb(111 205 159 / 46%); border-radius: 15px; background: rgb(255 255 255 / 50%); color: #087047; cursor: pointer; line-height: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__browse span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__browse svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation { grid-row: 3; align-self: stretch; width: 100%; min-height: 0; margin: 0; justify-items: center; padding: 0 1px 4px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: none; transform: translateX(0); transition: transform 210ms cubic-bezier(.2, .8, .2, 1), opacity 160ms ease; will-change: transform; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation::-webkit-scrollbar { width: 0; height: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__label,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__toggle,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children { display: none !important; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent { display: block; width: 48px; border: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link { justify-content: center; padding: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link > [data-ipos-nav-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent { border: 0; border-radius: 16px; background: rgb(225 247 234 / 70%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 68%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent .ipos-admin-navigation__parent-link { color: #087047; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__footer { grid-row: 4; width: 100%; align-self: end; align-items: center; justify-content: center; justify-items: center; padding-inline: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__footer-actions { flex-direction: column; justify-content: center; gap: 6px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity { flex: 0 0 auto; justify-content: center; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__collapse, body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__identity div { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__lock,
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__logout { display: grid; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head p { margin: 0; color: #087047; font-size: 20px; font-weight: 790; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head small { color: var(--ipos-muted); font-size: 12px; font-weight: 650; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head button { display: grid; width: 42px; height: 42px; place-items: center; border: 0; border-radius: 999px; background: rgb(231 247 237 / 90%); color: #087047; font-size: 0; line-height: 1; cursor: pointer; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation { width: 100%; margin: 0; justify-items: center; transform: translateX(0); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open { position: sticky; z-index: 30; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group { width: 100%; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group:not(.is-panel-target) .ipos-admin-navigation__children { display: none !important; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__children { --ipos-nav-child-size: 44px; position: relative; display: grid !important; gap: 6px; margin: 0 0 7px; padding: 7px 0 8px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__children::before { top: 0; bottom: calc(8px + (var(--ipos-nav-child-size) / 2)); left: calc(50% - 28px); width: 1px; background: rgb(69 139 101 / 34%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__parent { border: 0; border-radius: 16px; background: rgb(225 247 234 / 70%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 68%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__parent-link { color: #087047; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__parent-link:focus-visible { outline-offset: 3px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child { z-index: 1; width: var(--ipos-nav-child-size); min-height: var(--ipos-nav-child-size); justify-content: center; margin-left: calc((100% - var(--ipos-nav-child-size)) / 2 + 2px); padding: 0; border: 1px solid transparent; border-radius: 13px; background: transparent; color: #476052; transition: background 160ms ease, border-color 160ms ease, box-shadow 180ms ease, color 160ms ease, transform 160ms ease; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child > .ipos-admin-sidebar__icon svg { width: 20px; height: 20px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child > span:nth-child(2) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child::before { top: 50%; left: -8px; width: 6px; height: 1px; background: rgb(69 139 101 / 34%); transform: translateY(-50%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child:hover { background: rgb(255 255 255 / 44%); color: #087047; transform: translateX(1px); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child.is-active { border-color: rgb(109 211 165 / 78%); background: rgb(223 247 233 / 90%); box-shadow: 0 5px 12px rgb(28 118 78 / 9%); color: #087047; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child.is-active::before { width: 4px; background: rgb(12 107 69 / 58%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child:focus-visible { outline-offset: 3px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child { animation: ipos239-tablet-child-in 220ms cubic-bezier(.2, .8, .2, 1) both; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child:nth-child(2) { animation-delay: 28ms; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__child:nth-child(3) { animation-delay: 56ms; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation.is-tablet-all-open .ipos-admin-navigation__group:not(.is-active) .ipos-admin-navigation__parent { background: rgb(255 255 255 / 24%); box-shadow: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation.is-tablet-all-open .ipos-admin-navigation__group:not(.is-active) .ipos-admin-navigation__parent-link { color: #476052; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__tooltip { display: none !important; }
	@keyframes ipos238-tablet-inline-submenu-in {
		from { max-height: 0; opacity: 0; transform: translateY(-6px); }
		to { max-height: 360px; opacity: 1; transform: translateY(0); }
	}
	@keyframes ipos239-tablet-child-in {
		from { opacity: 0; transform: translateY(-5px) scale(.96); }
		to { opacity: 1; transform: translateY(0) scale(1); }
	}
	@keyframes ipos238-tablet-inline-submenu-out {
		from { max-height: 360px; opacity: 1; transform: translateY(0); }
		to { max-height: 0; opacity: 0; transform: translateY(-6px); }
	}
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation.is-tablet-inline-open .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__children {
		animation: ipos238-tablet-inline-submenu-in 220ms cubic-bezier(.2, .8, .2, 1) both;
		transform-origin: top center;
	}
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar.is-tablet-navigation-open .ipos-admin-navigation.is-tablet-inline-closing .ipos-admin-navigation__group.is-panel-target .ipos-admin-navigation__children {
		display: grid !important;
		animation: ipos238-tablet-inline-submenu-out 180ms cubic-bezier(.4, 0, .8, .2) both;
		pointer-events: none;
		transform-origin: top center;
	}
}

@media (max-width: 700px) {
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-shell { display: block; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar { position: static; width: 0; height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__brand, body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__browse, body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__footer { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation { position: fixed; z-index: 76; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); left: 12px; display: flex; align-items: stretch; justify-content: center; gap: 3px; margin: 0; padding: 7px; border: 1px solid var(--ipos-nav-edge); border-radius: 26px; background: var(--ipos-lg-glass-thick, rgb(245 253 248 / 86%)); box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight, rgb(255 255 255 / 94%)), 0 15px 36px var(--ipos-lg-shadow, rgb(19 94 67 / 20%)); -webkit-backdrop-filter: blur(26px) saturate(1.14); backdrop-filter: blur(26px) saturate(1.14); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__label, body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__toggle, body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__children, body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__sheet-head { display: none !important; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group { width: 100%; min-width: 0; max-width: 108px; flex: 1 1 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent { display: block; min-height: 58px; border: 0; border-radius: 18px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link { min-height: 58px; flex-direction: column; justify-content: center; gap: 3px; padding: 5px 1px; border-radius: 18px; color: #5b7063; font-size: 10px; line-height: 1.05; text-align: center; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__parent-link > [data-ipos-nav-label] { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__icon { width: 21px; flex-basis: 21px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent { position: relative; background: rgb(224 247 233 / 72%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent::after { position: absolute; bottom: 2px; left: 50%; width: 0; height: 0; border-right: 5px solid transparent; border-bottom: 0; border-left: 5px solid transparent; border-top: 6px solid #087047; transform: translateX(-50%); content: ''; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation__group.is-active > .ipos-admin-navigation__parent .ipos-admin-navigation__parent-link { color: #087047; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-content { padding-bottom: calc(102px + env(safe-area-inset-bottom)); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open { z-index: 80; right: 0; bottom: 0; left: 0; display: block; max-height: min(70dvh, 560px); padding: 18px 16px calc(92px + env(safe-area-inset-bottom)); overflow: auto; border: 1px solid var(--ipos-nav-edge); border-radius: 28px 28px 0 0; background: var(--ipos-lg-glass-thick, rgb(247 253 249 / 96%)); box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight, #fff), 0 -16px 44px var(--ipos-lg-shadow, rgb(19 94 67 / 18%)); -webkit-backdrop-filter: blur(28px) saturate(1.12); backdrop-filter: blur(28px) saturate(1.12); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open::before { display: block; width: 42px; height: 5px; margin: 0 auto 12px; border-radius: 999px; background: #b4c5ba; content: ''; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__sheet-head { display: flex !important; align-items: center; justify-content: space-between; margin: 0 2px 16px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__sheet-head p { margin: 0; color: #087047; font-size: 24px; font-weight: 800; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__sheet-head small { display: block; margin-top: 3px; color: var(--ipos-muted); font-size: 13px; font-weight: 650; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__sheet-head button { display: grid; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 999px; background: rgb(231 247 237 / 94%); color: #087047; font-size: 0; line-height: 1; cursor: pointer; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__group { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__group.is-panel-target { display: block; width: 100%; max-width: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__parent { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__children { position: relative; display: grid !important; gap: 0; margin: 0; padding: 0; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__children::before { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__child::before { display: none; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__child { min-height: 56px; gap: 12px; padding: 0 12px; border-width: 0 0 1px; border-radius: 0; border-color: rgb(31 93 62 / 10%); font-size: 16px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__child.is-active { margin: 5px 0; border: 1px solid rgb(131 220 176 / 68%); border-radius: 14px; background: rgb(223 247 233 / 84%); }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__child .ipos-admin-sidebar__icon { width: 24px; flex-basis: 24px; }
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation.is-sheet-open .ipos-admin-navigation__child .ipos-admin-sidebar__icon svg { width: 23px; height: 23px; }
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
	body.ipos-app-shell.ipos-nav-ia .ipos-admin-sidebar, body.ipos-app-shell.ipos-nav-ia .ipos-admin-navigation { -webkit-backdrop-filter: none; backdrop-filter: none; background: #f8fbf8; }
}
body.ipos-app-shell :is(
	.ipos-qr-management__create-single > label,
	.ipos-qr-management__batch-fields > label,
	.ipos-qr-management__settings > label:not(.ipos-qr-management__ordering-toggle),
	.ipos-qr-management__area-rename label,
	.ipos-qr-management__area-delete label,
	.ipos-qr-management__issue-url,
	.ipos-floor-layout [data-ipos-floor-landmark-inspector] > label
) > small {
	display: block;
	margin-top: 6px;
	color: var(--ipos-muted);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
}

/* The Menu Inspector keeps its approved two-column POS layout, but its
 * controls still share the same outline material and focus language. */
body.ipos-app-shell .ipos-menu-inspector input:not([type="hidden"]):not([type="file"]):not([type="checkbox"]),
body.ipos-app-shell .ipos-menu-inspector textarea,
body.ipos-app-shell .ipos-menu-inspector__price-input,
body.ipos-app-shell .ipos-menu-variation-row__price {
	border-color: var(--ipos-field-line) !important;
	border-radius: 12px !important;
	background: var(--ipos-field-surface) !important;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 76%);
}
body.ipos-app-shell .ipos-menu-inspector input:not([type="hidden"]):not([type="file"]):not([type="checkbox"]):hover,
body.ipos-app-shell .ipos-menu-inspector textarea:hover,
body.ipos-app-shell .ipos-menu-inspector__price-input:hover,
body.ipos-app-shell .ipos-menu-variation-row__price:hover {
	border-color: var(--ipos-field-line-hover) !important;
	background: var(--ipos-field-surface) !important;
	color: var(--ipos-ink) !important;
	transform: none !important;
}
body.ipos-app-shell .ipos-menu-inspector input:not([type="hidden"]):not([type="file"]):not([type="checkbox"]):focus,
body.ipos-app-shell .ipos-menu-inspector textarea:focus,
body.ipos-app-shell .ipos-menu-inspector__price-input:focus-within,
body.ipos-app-shell .ipos-menu-variation-row__price:focus-within {
	border-color: var(--ipos-field-line-focus) !important;
	box-shadow: 0 0 0 3px var(--ipos-focus), inset 0 1px 0 rgb(255 255 255 / 76%);
	outline: 0;
}
body.ipos-app-shell .ipos-menu-inspector__price-input > input,
body.ipos-app-shell .ipos-menu-variation-row__price > input {
	border: 0 !important;
	border-radius: inherit !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* IPOS-186: category is a custom combobox, so give its button the same
 * floating-label field geometry as the adjacent product-name input. */
body.ipos-app-shell .ipos-menu-inspector .ipos-field--floating > button {
	display: flex;
	width: 100%;
	min-width: 0;
	min-height: 52px;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 16px 13px 7px;
	border: 1.5px solid var(--ipos-field-line) !important;
	border-radius: 12px !important;
	background: var(--ipos-field-surface) !important;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 76%);
	color: var(--ipos-ink);
	font: inherit;
	text-align: left;
	transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
body.ipos-app-shell .ipos-menu-inspector .ipos-field--floating > button:hover {
	border-color: var(--ipos-field-line-hover) !important;
	background: var(--ipos-field-surface) !important;
	transform: none !important;
}
body.ipos-app-shell .ipos-menu-inspector .ipos-field--floating > button:focus-visible {
	border-color: var(--ipos-field-line-focus) !important;
	box-shadow: 0 0 0 3px var(--ipos-focus), inset 0 1px 0 rgb(255 255 255 / 76%);
	outline: 0;
}
body.ipos-app-shell .ipos-menu-inspector .ipos-field--floating > button > span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* Shared entry point for the server-side Activity History route. */
.ipos-table-operations__history-link,
.ipos-menu-management__history-link,
.ipos-qr-management__history-link {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(22, 61, 45, .14);
	border-radius: 12px;
	color: #176b4d;
	background: #fff;
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}
.ipos-table-operations__history-link svg,
.ipos-menu-management__history-link svg,
.ipos-qr-management__history-link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.ipos-table-operations__history-link:hover,
.ipos-menu-management__history-link:hover,
.ipos-qr-management__history-link:hover { background: #eef8f1; }

/* IPOS-199/IPOS-207: Activity and Revenue Report are operational app routes,
 * not legacy document pages. Reuse one approved glass shell across both. */
body:is(.ipos-app-view-activity, .ipos-app-view-report) {
	background:
		radial-gradient(ellipse 62% 66% at 6% 4%, rgb(112 194 153 / 34%), transparent 70%),
		radial-gradient(ellipse 49% 54% at 92% 9%, rgb(255 231 166 / 39%), transparent 72%),
		radial-gradient(ellipse 76% 64% at 50% 108%, rgb(184 230 209 / 52%), transparent 74%),
		linear-gradient(138deg, #d8eadf 0%, #eef4ec 48%, #e3f0e8 100%);
	color: var(--ipos-lg-ink);
}
html:has(body:is(.ipos-app-view-activity, .ipos-app-view-report)),
body:is(.ipos-app-view-activity, .ipos-app-view-report) { margin-top: 0 !important; padding-top: 0 !important; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-shell { grid-template-columns: 126px minmax(0, 1fr); background: transparent; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar {
	top: 14px;
	height: calc(100dvh - 28px);
	margin: 14px 0 14px 14px;
	padding: 18px 10px;
	border: 1px solid var(--ipos-lg-edge);
	border-radius: 32px;
	background: linear-gradient(145deg, rgb(255 255 255 / 74%), rgb(239 249 242 / 46%));
	box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), inset 0 0 0 1px rgb(67 122 88 / 8%), 0 18px 40px var(--ipos-lg-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.18);
	backdrop-filter: blur(24px) saturate(1.18);
}
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__brand { flex-direction: column; justify-content: center; padding: 2px 2px 16px; border: 0; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar nav { gap: 8px; margin-top: 16px; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link { min-height: 92px; flex-direction: column; justify-content: center; gap: 9px; padding: 12px 6px; border: 1px solid transparent; border-radius: 24px; color: #31473b; font-size: 13px; font-weight: 680; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link > span:first-child { width: 26px; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__icon svg { width: 26px; height: 26px; stroke-width: 1.7; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link:hover { border-color: rgb(255 255 255 / 80%); background: rgb(255 255 255 / 42%); color: #31473b; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link.is-active { border-color: rgb(255 255 255 / 84%); background: linear-gradient(145deg, rgb(217 247 231 / 78%), rgb(196 234 215 / 52%)); color: #0f5e39; box-shadow: inset 0 1px 0 rgb(255 255 255 / 86%), 0 10px 24px rgb(26 110 67 / 15%); }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-bar { display: none; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-content { padding: 24px 24px 34px 34px; }
body.ipos-app-view-activity .ipos-admin-content .ipos-activity-history { width: 100%; max-width: 1520px; }
body.ipos-app-view-report .ipos-admin-content .ipos-revenue-report { width: 100%; max-width: 1520px; }
body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__brand img { width: 116px; }

@media (min-width: 701px) and (max-width: 1180px) {
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-shell { grid-template-columns: 82px minmax(0, 1fr); }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar { align-items: center; margin-left: 10px; padding-inline: 8px; border-radius: 27px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__brand img { width: 54px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar nav { width: 100%; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link { width: 100%; min-height: 64px; padding: 7px 2px; border-radius: 18px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link > span:last-child { display: none; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-content { padding: 20px 20px 26px 26px; }
}
@media (max-width: 700px) {
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-shell { display: block; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar { position: static; width: 0; height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__brand { display: none; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar nav { position: fixed; z-index: 55; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); left: 12px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; margin: 0; padding: 7px; border: 1px solid var(--ipos-lg-edge); border-radius: 26px; background: var(--ipos-lg-glass-thick); box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 14px 36px var(--ipos-lg-shadow); -webkit-backdrop-filter: blur(24px) saturate(1.2); backdrop-filter: blur(24px) saturate(1.2); }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link { width: 100%; min-height: 58px; flex-direction: column; gap: 3px; padding: 5px 2px; border-radius: 19px; font-size: 10px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link > span:first-child { width: 20px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar__link > span:last-child { display: block; font-size: 10px; }
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-content { padding: 12px 14px calc(100px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-transparency: reduce) {
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar,
	body:is(.ipos-app-view-activity, .ipos-app-view-report) .ipos-admin-sidebar nav { background: #f8fbf8; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* IPOS-211: a project-owned optical texture provides depth beneath functional
 * glass. It is deliberately abstract and stays behind the scan-first content
 * layer; page components never use it as a reading surface. */
:root {
	--ipos-ambient-texture: url('ipos-ambient-canvas-v1.jpg');
	--ipos-app-ambient-background:
		linear-gradient(138deg, rgb(241 248 243 / 28%), rgb(248 246 237 / 18%) 48%, rgb(228 243 233 / 30%)),
		var(--ipos-ambient-texture);
}
body:is(
	.ipos-app-view-overview,
	.ipos-app-view-operations,
	.ipos-app-view-menu,
	.ipos-app-view-qr,
	.ipos-app-view-activity,
	.ipos-app-view-report,
	.ipos-app-view-cashier
) {
	background-color: var(--ipos-lg-canvas, #f7f5ee);
	background-image: var(--ipos-app-ambient-background);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}
@media (max-width: 700px) {
	body:is(
		.ipos-app-view-overview,
		.ipos-app-view-operations,
		.ipos-app-view-menu,
		.ipos-app-view-qr,
		.ipos-app-view-activity,
		.ipos-app-view-report,
		.ipos-app-view-cashier
	) { background-attachment: scroll; background-position: center top; }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
	body:is(
		.ipos-app-view-overview,
		.ipos-app-view-operations,
		.ipos-app-view-menu,
		.ipos-app-view-qr,
		.ipos-app-view-activity,
		.ipos-app-view-report,
		.ipos-app-view-cashier
	) { background-image: linear-gradient(138deg, #e7f1e9, #f7f5ee 48%, #e5f0e8); }
}

/* IPOS-200: one mobile dock for every staff route. Route-specific desktop
 * workspaces may differ; the five-way phone navigation must not. */
@media (max-width: 700px) {
	body.ipos-app-shell .ipos-admin-sidebar {
		position: static;
		width: 0;
		height: 0;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
	body.ipos-app-shell .ipos-admin-sidebar__brand { display: none; }
	body.ipos-app-shell .ipos-admin-sidebar nav {
		position: fixed;
		z-index: 55;
		right: 12px;
		bottom: max(10px, env(safe-area-inset-bottom));
		left: 12px;
		display: flex;
		align-items: stretch;
		justify-content: center;
		gap: 5px;
		width: auto;
		margin: 0;
		padding: 7px;
		border: 1px solid var(--ipos-lg-edge);
		border-radius: 26px;
		background: var(--ipos-lg-glass-thick);
		box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 14px 36px var(--ipos-lg-shadow);
		-webkit-backdrop-filter: blur(24px) saturate(1.2);
		backdrop-filter: blur(24px) saturate(1.2);
	}
	body.ipos-app-shell .ipos-admin-sidebar__link {
		width: 100%;
		min-width: 0;
		max-width: 108px;
		min-height: 58px;
		flex: 1 1 0;
		flex-direction: column;
		justify-content: center;
		gap: 3px;
		padding: 5px 2px;
		border: 1px solid transparent;
		border-radius: 19px;
		background: transparent;
		color: #31473b;
		font-size: 10px;
		line-height: 1.1;
	}
	body.ipos-app-shell .ipos-admin-sidebar__link > span:first-child { width: 20px; }
	body.ipos-app-shell .ipos-admin-sidebar__icon svg { width: 21px; height: 21px; }
	body.ipos-app-shell .ipos-admin-sidebar__link > span:last-child {
		display: block;
		width: 100%;
		overflow: hidden;
		font-size: 10px;
		text-align: center;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	body.ipos-app-shell .ipos-admin-sidebar__link > span:last-child::after { content: none; }
	body.ipos-app-shell .ipos-admin-sidebar__link.is-active {
		border-color: rgb(255 255 255 / 84%);
		background: linear-gradient(145deg, rgb(217 247 231 / 78%), rgb(196 234 215 / 52%));
		box-shadow: inset 0 1px 0 rgb(255 255 255 / 86%), 0 8px 18px rgb(26 110 67 / 12%);
		color: #0f6b43;
	}
	body.ipos-app-shell .ipos-admin-content { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}

/* IPOS-323: the phone dock intentionally hides the desktop sidebar, so the
 * shared AppShell needs one compact brand header instead of losing identity on
 * every staff route. The neutral logo plate keeps the green wordmark legible
 * across all six light/dark palette combinations. */
.ipos-admin-mobile-header { display: none; }

@media (max-width: 700px) {
	body.ipos-app-shell:not(.ipos-app-view-customer) .ipos-admin-mobile-header {
		display: flex;
		min-width: 0;
		min-height: calc(58px + env(safe-area-inset-top));
		align-items: flex-end;
		justify-content: center;
		padding: calc(8px + env(safe-area-inset-top)) 16px 8px;
		border-bottom: 1px solid var(--ipos-lg-edge);
		background: linear-gradient(145deg, var(--ipos-lg-inner-highlight), var(--ipos-lg-glass-thick));
		box-shadow: inset 0 1px 0 var(--ipos-lg-inner-highlight), 0 8px 24px color-mix(in srgb, var(--ipos-lg-shadow) 72%, transparent);
		-webkit-backdrop-filter: blur(20px) saturate(1.08);
		backdrop-filter: blur(20px) saturate(1.08);
	}
	body.ipos-app-shell:not(.ipos-app-view-customer) .ipos-admin-mobile-header__brand {
		display: inline-flex;
		width: 104px;
		min-height: 40px;
		align-items: center;
		justify-content: center;
		padding: 7px 12px;
		border: 1px solid rgb(18 92 59 / 16%);
		border-radius: 14px;
		background: rgb(250 253 251 / 94%);
		box-shadow: inset 0 1px 0 #fff, 0 6px 16px rgb(17 78 51 / 10%);
		text-decoration: none;
		transition: transform 180ms cubic-bezier(.2, .8, .2, 1), border-color 180ms ease, box-shadow 180ms ease;
	}
	body.ipos-app-shell:not(.ipos-app-view-customer) .ipos-admin-mobile-header__brand img {
		display: block;
		width: 82px;
		height: auto;
	}
	body.ipos-app-shell:not(.ipos-app-view-customer) .ipos-admin-mobile-header__brand:is(:hover, :focus-visible) {
		border-color: color-mix(in srgb, var(--ipos-accent) 48%, rgb(18 92 59 / 16%));
		box-shadow: inset 0 1px 0 #fff, 0 8px 20px var(--ipos-accent-shadow);
		outline: 0;
		transform: translateY(-1px);
	}
	body.ipos-app-shell:not(.ipos-app-view-customer) .ipos-admin-mobile-header__brand:active {
		transform: translateY(0) scale(.98);
	}
}

@media print {
	.ipos-admin-mobile-header { display: none !important; }
}

/* IPOS-246: the app shell already exposes the current destination in the
 * sidebar. Keep page titles available to assistive technology, but remove the
 * oversized presentation heading so the workspace starts with its controls. */
body.ipos-app-shell :is(
	.ipos-overview__header > div:first-child,
	.ipos-revenue-report__header > div:first-child,
	.ipos-activity-history__header > div:first-child,
	.ipos-table-operations__header > h1,
	.ipos-menu-management__header > div:first-child,
	.ipos-coupons__header > div:first-child,
	.ipos-qr-management__header > div:first-child,
	.ipos-store-profile__heading,
	.ipos-staff-dashboard__heading
) {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

.ipos-screen-lock { position: fixed; inset: 0; z-index: 240; display: grid; place-items: center; padding: 24px; background: rgb(23 32 25 / .55); backdrop-filter: blur(16px); }
.ipos-screen-lock[hidden] { display: none !important; }
.ipos-screen-lock__card { width: min(100%, 380px); padding: 24px; border: 1px solid rgb(255 255 255 / .45); border-radius: 18px; background: rgb(255 255 255 / .92); box-shadow: 0 18px 40px rgb(23 32 25 / .18); }
.ipos-screen-lock__eyebrow { margin: 0; color: var(--ipos-action); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ipos-screen-lock__card h2 { margin: 6px 0 8px; font-size: 26px; }
.ipos-screen-lock__card > p { margin: 0 0 14px; color: var(--ipos-muted); font-size: 13px; line-height: 1.45; }
.ipos-screen-lock__field { display: grid; gap: 6px; margin-bottom: 10px; color: var(--ipos-muted); font-size: 11px; font-weight: 750; }
.ipos-screen-lock__field[hidden] { display: none !important; }
.ipos-screen-lock__field input { min-height: 44px; padding: 0 44px 0 12px; border: 1px solid var(--ipos-line-strong); border-radius: 10px; letter-spacing: .2em; }
.ipos-screen-lock__pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.ipos-screen-lock__pad[hidden] { display: none !important; }
.ipos-screen-lock__pad button { min-height: 48px; border: 1px solid var(--ipos-line); border-radius: 10px; background: #fff; font-size: 18px; font-weight: 750; cursor: pointer; }
.ipos-screen-lock__forgot { margin-top: 8px; text-align: center; }
.ipos-screen-lock__forgot[hidden] { display: none !important; }
.ipos-screen-lock__forgot-link { display: inline; min-height: auto; padding: 4px 8px; border: 0; background: transparent; color: var(--ipos-action); font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.ipos-screen-lock__forgot-link:hover { color: #087047; }
.ipos-screen-lock__forgot-link[hidden] { display: none; }
.ipos-screen-lock__forgot [data-ipos-screen-lock-forgot-form] { display: grid; gap: 10px; margin-top: 8px; }
.ipos-screen-lock__forgot [data-ipos-screen-lock-forgot-form][hidden] { display: none; }
.ipos-screen-lock__forgot-submit { min-height: 44px; border: 0; border-radius: 10px; background: var(--ipos-danger, #b42318); color: #fff; font-size: 14px; font-weight: 750; cursor: pointer; }
.ipos-screen-lock__forgot-submit:hover { opacity: .9; }
.ipos-screen-lock__dismiss { display: block; width: 100%; min-height: 44px; margin-top: 12px; border: 1px solid var(--ipos-line-strong); border-radius: 10px; background: #fff; color: var(--ipos-ink); font-size: 14px; font-weight: 750; cursor: pointer; }
.ipos-screen-lock__dismiss[hidden] { display: none !important; }
.ipos-screen-lock__status { min-height: 20px; margin: 10px 0 0; color: var(--ipos-danger); font-size: 12px; }
.ipos-pin-reveal { position: relative; display: grid; }
.ipos-pin-reveal__toggle { position: absolute; top: 50%; right: 6px; display: grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 8px; background: transparent; color: #476052; cursor: pointer; transform: translateY(-50%); }
.ipos-pin-reveal__icon { grid-area: 1 / 1; display: grid; place-items: center; pointer-events: none; }
.ipos-pin-reveal__toggle svg { width: 20px; height: 20px; }
.ipos-pin-reveal__icon--shut { opacity: 0; transform: scale(.82) rotate(-8deg); }
.ipos-pin-reveal__toggle[aria-pressed="true"] { color: #087047; }
.ipos-pin-reveal__toggle[aria-pressed="true"] .ipos-pin-reveal__icon--open { opacity: 0; transform: scale(.82) rotate(8deg); }
.ipos-pin-reveal__toggle[aria-pressed="true"] .ipos-pin-reveal__icon--shut { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
	.ipos-pin-reveal__icon { transition: opacity 180ms ease, transform 180ms ease; }
}
.ipos-screen-lock-fab { display: none; }
body.ipos-screen-locked { overflow: hidden; }

@media (max-width: 700px) {
	.ipos-screen-lock-fab { position: fixed; z-index: 82; right: 16px; bottom: calc(102px + env(safe-area-inset-bottom)); display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgb(122 199 159 / 38%); border-radius: 999px; background: rgb(245 253 248 / 92%); color: #0c7049; box-shadow: 0 10px 24px rgb(19 94 67 / 16%); cursor: pointer; }
	.ipos-screen-lock-fab svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
	body.ipos-screen-locked .ipos-screen-lock-fab { display: none; }
}

/* IPOS-441: standalone shells do not load WordPress common.css. */
body.ipos-app-shell .screen-reader-text:not(:focus) {
 position: absolute !important;
 width: 1px !important;
 height: 1px !important;
 margin: -1px !important;
 padding: 0 !important;
 overflow: hidden !important;
 clip: rect(0, 0, 0, 0) !important;
 clip-path: inset(50%) !important;
 border: 0 !important;
 white-space: nowrap !important;
}
