/**
 * Tema kiosk tactil (referencia: teclado circular + lista pill).
 * Solo pantallas pos-page-home y pos-pin-page.
 */

.pos-kiosk-bg {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(
			180deg,
			rgba(10, 38, 48, 0.93) 0%,
			rgba(10, 38, 48, 0.78) 22%,
			rgba(10, 38, 48, 0.35) 48%,
			rgba(8, 28, 36, 0.55) 72%,
			rgba(6, 22, 30, 0.92) 100%
		),
		linear-gradient(145deg, #2f4f5f 0%, #6d8fa3 32%, #9eb9c9 48%, #4a6b5c 62%, #243640 100%);
}

body.pos-page-home .pos-kiosk-shell,
body.pos-pin-page .pos-kiosk-shell {
	position: relative;
	z-index: 1;
}

body.pos-page-home,
body.pos-pin-page {
	color: #ffffff;
	background: transparent;
}

body.pos-page-home .pos-home-topbar,
body.pos-pin-page .pos-home-topbar,
body.pos-kiosk-page .pos-home-topbar,
body.pos-page-sucursal .pos-home-topbar {
	background: transparent;
	box-shadow: none;
	padding: 12px 20px 8px;
}

body.pos-page-home .pos-kiosk-clock,
body.pos-pin-page .pos-kiosk-clock,
body.pos-kiosk-page .pos-kiosk-clock {
	font-variant-numeric: tabular-nums;
	font-size: clamp(1.35rem, 3.2vw, 1.85rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #ffffff;
	line-height: 1;
	padding: 8px 14px;
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.32);
	border: 1px solid rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

body.pos-page-home .pos-brand-link,
body.pos-pin-page .pos-brand-link {
	color: #ffffff;
}

body.pos-page-home .pos-logo-text,
body.pos-pin-page .pos-logo-text {
	color: #ffffff;
	font-weight: 600;
}

body.pos-page-home .pos-logo-mark,
body.pos-pin-page .pos-logo-mark,
body.pos-kiosk-page .pos-logo-mark {
	height: 40px;
	width: auto;
	padding: 5px 8px;
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	object-fit: contain;
}

body.pos-page-home .pos-home-title,
body.pos-pin-page .pos-home-title {
	color: #ffffff;
	font-weight: 500;
	font-size: clamp(1.15rem, 2.8vw, 1.6rem);
}

body.pos-page-home .pos-home-sucursal,
body.pos-pin-page .pos-home-sucursal {
	color: rgba(255, 255, 255, 0.75);
}

body.pos-page-home .pos-home-close,
body.pos-pin-page .pos-home-close {
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.15);
}

body.pos-page-home .pos-fullscreen-btn,
body.pos-pin-page .pos-fullscreen-btn {
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: none;
}

body.pos-page-home .pos-fullscreen-btn:active,
body.pos-pin-page .pos-fullscreen-btn:active {
	background: rgba(255, 255, 255, 0.12);
	color: #ffffff;
}

body.pos-page-home .pos-fullscreen-btn--active,
body.pos-pin-page .pos-fullscreen-btn--active {
	color: #7ec4ff;
	background: rgba(0, 122, 255, 0.38);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: none;
}

body.pos-page-home .pos-fullscreen-btn--active:active,
body.pos-pin-page .pos-fullscreen-btn--active:active {
	background: rgba(0, 122, 255, 0.48);
}

body.pos-page-home .pos-home-close:active,
body.pos-pin-page .pos-home-close:active {
	background: rgba(255, 255, 255, 0.12);
}

body.pos-page-home .pos-home-split {
	grid-template-columns: minmax(0, 58%) minmax(0, 42%);
	gap: 0;
	padding: 0 12px 12px;
}

body.pos-pin-page .pos-home-split {
	grid-template-columns: minmax(0, 48%) minmax(0, 52%);
	gap: 0;
	padding: 0 12px 12px;
}

/* PIN: empleado arriba + teclado ancho completo */
body.pos-pin-page .pos-pin-split {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(6px, 1.2vh, 10px);
	padding: 0 clamp(12px, 2.5vw, 28px) clamp(10px, 1.8vh, 14px);
}

body.pos-pin-page .pos-pin-empleado-bar {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	padding-top: 2px;
}

body.pos-pin-page .pos-pin-keyboard-pane {
	flex: 1 1 0;
	min-height: 0;
	border-right: none;
	padding: 0;
	max-width: min(100%, 980px);
	margin: 0 auto;
	width: 100%;
}

body.pos-pin-page .pos-pin-keyboard-pane .pos-teclado-grid-wrap {
	flex: 1 1 auto;
	min-height: 0;
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-keyboard-grid-digitos-arriba,
body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-keyboard-grid-simbolos {
	grid-template-rows: repeat(1, minmax(0, auto));
	margin-bottom: clamp(3px, 0.6vh, 6px);
	padding-bottom: clamp(3px, 0.6vh, 6px);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-keyboard-grid-letras {
	grid-template-rows: repeat(3, minmax(0, 1fr));
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-key-round {
	width: min(100%, 7.5vmin, 58px);
	max-height: min(7.5vmin, 58px);
	font-size: clamp(0.88rem, 2vmin, 1.08rem);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-key-spacer {
	width: min(100%, 7.5vmin, 58px);
	max-height: min(7.5vmin, 58px);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-keyboard-grid {
	gap: clamp(5px, 1vmin, 9px);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-keyboard-actions {
	margin-top: clamp(6px, 1vh, 10px);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave--wide .pos-key-action {
	min-height: clamp(44px, 6.8vh, 52px);
}

/* PIN: teclado QWERTY (disposicion habitual) */
body.pos-pin-page .pos-teclado-qwerty-wrap {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	margin-top: 0;
	padding-top: 0;
	border-top: none;
	overflow: hidden;
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-keyboard-row {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: stretch;
	gap: clamp(4px, 0.75vmin, 7px);
	margin-bottom: clamp(4px, 0.75vmin, 7px);
	padding: 0 clamp(2px, 0.5vw, 6px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-keyboard-row:nth-child(2) {
	padding-left: clamp(12px, 3.5vw, 36px);
	padding-right: clamp(6px, 1.5vw, 16px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-keyboard-row:nth-child(3) {
	padding-left: clamp(24px, 6.5vw, 64px);
	padding-right: clamp(24px, 6.5vw, 64px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row-numeros,
body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row-simbolos {
	padding-left: clamp(2px, 0.5vw, 6px);
	padding-right: clamp(2px, 0.5vw, 6px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row-letras--1 {
	padding-left: clamp(2px, 0.5vw, 6px);
	padding-right: clamp(2px, 0.5vw, 6px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row-letras--2 {
	padding-left: clamp(12px, 3.5vw, 36px);
	padding-right: clamp(6px, 1.5vw, 16px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row-letras--3 {
	padding-left: clamp(24px, 6.5vw, 64px);
	padding-right: clamp(24px, 6.5vw, 64px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-key {
	min-height: clamp(34px, 5.6vh, 44px);
	font-size: clamp(0.86rem, 1.9vmin, 1.02rem);
}

body.pos-pin-page .pos-teclado-qwerty-wrap--completo .pos-keyboard-row {
	margin-bottom: clamp(3px, 0.55vmin, 6px);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-key {
	flex: 1 1 0;
	min-width: 0;
	max-width: none;
	min-height: clamp(40px, 6.8vh, 50px);
	border-radius: 10px;
	font-size: clamp(0.92rem, 2.1vmin, 1.12rem);
	font-weight: 600;
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #ffffff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-key:active {
	background: rgba(255, 255, 255, 0.22);
	transform: scale(0.97);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-key-muted {
	flex: 0.85 1 0;
	font-size: clamp(0.82rem, 1.8vmin, 0.98rem);
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-key-wide {
	flex: 2.2 1 0;
	font-size: clamp(0.82rem, 1.8vmin, 0.98rem);
	font-weight: 500;
}

body.pos-pin-page .pos-teclado-qwerty-wrap .pos-key-primary {
	flex: 1.1 1 0;
	background: rgba(0, 122, 255, 0.92);
	border-color: rgba(255, 255, 255, 0.28);
	color: #ffffff;
	font-weight: 700;
}

body.pos-page-home .pos-keyboard-pane,
body.pos-pin-page .pos-keyboard-pane,
body.pos-page-sucursal .pos-keyboard-pane {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	border-right: 1px solid rgba(255, 255, 255, 0.22);
	padding: 8px 16px 8px 8px;
}

body.pos-page-home .pos-keyboard-hint,
body.pos-pin-page .pos-keyboard-hint {
	color: rgba(255, 255, 255, 0.92);
	font-size: clamp(0.95rem, 2vmin, 1.1rem);
	font-weight: 500;
	margin-bottom: 10px;
}

body.pos-page-home .pos-filtro-display,
body.pos-pin-page .pos-filtro-display {
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #ffffff;
	min-height: 44px;
	margin-bottom: 10px;
}

body.pos-page-home .pos-filtro-display:empty::before,
body.pos-pin-page .pos-filtro-display:empty::before {
	color: rgba(255, 255, 255, 0.35);
}

body.pos-page-home input.pos-campo-teclado::placeholder,
body.pos-pin-page input.pos-campo-teclado::placeholder {
	color: rgba(255, 255, 255, 0.35);
}

body.pos-page-home input.pos-campo-teclado:focus-visible,
body.pos-pin-page input.pos-campo-teclado:focus-visible {
	outline-color: rgba(255, 255, 255, 0.65);
}

body.pos-page-home .pos-teclado-grid-wrap,
body.pos-pin-page .pos-teclado-grid-wrap {
	gap: 0;
}

body.pos-page-home .pos-keyboard-grid,
body.pos-pin-page .pos-keyboard-grid {
	gap: clamp(4px, 0.9vmin, 8px);
}

body.pos-page-home .pos-keyboard-grid-digitos,
body.pos-pin-page .pos-keyboard-grid-digitos {
	border-top-color: rgba(255, 255, 255, 0.14);
}

body.pos-pin-page .pos-keyboard-grid-digitos-arriba {
	border-top: none;
	border-bottom-color: rgba(255, 255, 255, 0.14);
}

body.pos-pin-page .pos-keyboard-grid-simbolos {
	border-top-color: rgba(255, 255, 255, 0.14);
}

body.pos-pin-page .pos-key-mayusculas {
	flex: 1.1 1 0;
	min-width: 56px;
	max-width: 88px;
	min-height: clamp(44px, 7.5vh, 52px);
	font-size: clamp(1.1rem, 2.4vmin, 1.35rem);
	font-weight: 700;
	touch-action: manipulation;
}

body.pos-pin-page .pos-key-shift-activo,
body.pos-pin-page .pos-teclado-mayusculas-armada .pos-key-mayusculas {
	background: rgba(0, 122, 255, 0.65);
	border-color: rgba(255, 255, 255, 0.4);
	color: #ffffff;
	box-shadow: 0 0 0 2px rgba(0, 122, 255, 0.35);
}

body.pos-pin-page .pos-teclado-mayusculas-armada .pos-keyboard-grid-letras .pos-key-round {
	border-color: rgba(0, 122, 255, 0.45);
}

body.pos-page-home .pos-keyboard-grid-letras .pos-key-letra,
body.pos-pin-page .pos-keyboard-grid-letras .pos-key-letra {
	text-transform: none;
}

body.pos-pin-page .pos-teclado-grid-wrap-clave .pos-key-round {
	width: min(100%, 8.8vmin, 44px);
	font-size: clamp(0.78rem, 1.7vmin, 0.95rem);
}

body.pos-pin-page .pos-teclado-grid-wrap-clave .pos-key-spacer {
	width: min(100%, 8.8vmin, 44px);
}

body.pos-page-home .pos-key-round {
	width: var(--pos-home-key-size, min(100%, 10.8vmin, 52px));
	height: var(--pos-home-key-size, min(100%, 10.8vmin, 52px));
	max-width: var(--pos-home-key-size, 52px);
	max-height: var(--pos-home-key-size, 52px);
	margin: 0 auto;
	justify-self: center;
	align-self: center;
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #ffffff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	font-size: clamp(0.88rem, 2.1vmin, 1.08rem);
	transition: transform 0.12s ease, background 0.12s ease;
}

body.pos-pin-page .pos-key-round {
	width: min(100%, 9.8vmin, 48px);
	height: auto;
	aspect-ratio: 1;
	max-height: none;
	min-height: 0;
	margin: 0 auto;
	justify-self: center;
	align-self: center;
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #ffffff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	font-size: clamp(0.85rem, 2vmin, 1.05rem);
	transition: transform 0.12s ease, background 0.12s ease;
}

/* Home / sucursal: teclado busqueda compacto, centrado, sin estirar celdas */
body.pos-page-home,
body.pos-page-sucursal {
	--pos-home-key-gap: 8px;
	--pos-home-key-size: clamp(54px, 6.8vmin, 66px);
	--pos-home-keyboard-width: calc(5 * var(--pos-home-key-size) + 4 * var(--pos-home-key-gap));
}

body.pos-page-home .pos-keyboard-pane,
body.pos-page-sucursal .pos-keyboard-pane {
	overflow: hidden;
}

body.pos-page-home .pos-keyboard-pane > .pos-filtro-display,
body.pos-page-sucursal .pos-keyboard-pane > .pos-filtro-display {
	flex-shrink: 0;
	width: var(--pos-home-keyboard-width);
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

body.pos-page-home .pos-keyboard-pane > .pos-teclado-container,
body.pos-page-sucursal .pos-keyboard-pane > .pos-teclado-container {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 8px 4px;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

body.pos-page-home .pos-keyboard-pane .pos-teclado-grid-wrap:not(.pos-teclado-grid-wrap-clave),
body.pos-page-sucursal .pos-keyboard-pane .pos-teclado-grid-wrap:not(.pos-teclado-grid-wrap-clave) {
	flex: 0 0 auto;
	width: max-content;
	max-width: 100%;
	margin: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	overflow: visible;
	min-height: auto;
}

body.pos-page-home .pos-keyboard-grid-solo-letras,
body.pos-page-sucursal .pos-keyboard-grid-solo-letras {
	flex: 0 0 auto;
	min-height: auto;
	max-height: none;
	width: max-content;
	max-width: 100%;
	overflow: visible;
	grid-template-columns: repeat(5, var(--pos-home-key-size));
	grid-template-rows: repeat(6, var(--pos-home-key-size));
	gap: var(--pos-home-key-gap);
	align-content: center;
	justify-content: center;
	place-content: center;
}

body.pos-page-home .pos-keyboard-grid-solo-letras .pos-key-round,
body.pos-page-sucursal .pos-keyboard-grid-solo-letras .pos-key-round {
	width: var(--pos-home-key-size);
	height: var(--pos-home-key-size);
	min-width: var(--pos-home-key-size);
	min-height: var(--pos-home-key-size);
	max-width: var(--pos-home-key-size);
	max-height: var(--pos-home-key-size);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	line-height: 1;
	overflow: visible;
	font-size: clamp(0.95rem, calc(var(--pos-home-key-size) * 0.4), 1.12rem);
}

body.pos-page-home .pos-keyboard-grid-solo-letras .pos-key-spacer,
body.pos-page-sucursal .pos-keyboard-grid-solo-letras .pos-key-spacer {
	width: var(--pos-home-key-size);
	height: var(--pos-home-key-size);
	min-width: var(--pos-home-key-size);
	min-height: var(--pos-home-key-size);
}

body.pos-page-home .pos-keyboard-actions,
body.pos-page-sucursal .pos-keyboard-actions {
	flex-shrink: 0;
	width: var(--pos-home-keyboard-width);
	max-width: 100%;
	margin-top: var(--pos-home-key-gap);
	margin-left: auto;
	margin-right: auto;
	gap: var(--pos-home-key-gap);
}

body.pos-page-home .pos-keyboard-actions .pos-key-action,
body.pos-page-sucursal .pos-keyboard-actions .pos-key-action {
	min-height: calc(var(--pos-home-key-size) * 0.82);
	max-height: calc(var(--pos-home-key-size) * 0.9);
	flex-shrink: 0;
}

body.pos-page-home .pos-key-spacer {
	display: block;
	width: min(100%, 10.8vmin, 52px);
	aspect-ratio: 1;
	margin: 0 auto;
	justify-self: center;
}

body.pos-pin-page .pos-key-spacer {
	display: block;
	width: min(100%, 9.8vmin, 48px);
	aspect-ratio: 1;
	margin: 0 auto;
	justify-self: center;
}

body.pos-page-home .pos-keyboard-grid:not(.pos-keyboard-grid-solo-letras) {
	gap: clamp(5px, 1vmin, 9px);
}

body.pos-page-home .pos-key-round:active,
body.pos-pin-page .pos-key-round:active {
	background: rgba(255, 255, 255, 0.22);
	transform: scale(0.92);
}

body.pos-page-home .pos-keyboard-actions,
body.pos-pin-page .pos-keyboard-actions {
	margin-top: clamp(8px, 1.5vmin, 12px);
	gap: clamp(6px, 1.2vmin, 10px);
}

body.pos-page-home .pos-key-action,
body.pos-pin-page .pos-key-action {
	min-height: clamp(42px, 7.5vh, 50px);
	border-radius: 999px;
	font-size: clamp(0.82rem, 1.6vmin, 0.95rem);
}

body.pos-page-home .pos-key-icon,
body.pos-pin-page .pos-key-icon {
	font-size: clamp(1.1rem, 2.4vmin, 1.35rem);
	flex: 0.85 1 0;
	max-width: 64px;
}

body.pos-page-home .pos-key-action,
body.pos-pin-page .pos-key-action {
	background: rgba(0, 0, 0, 0.38);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #ffffff;
	box-shadow: none;
}

body.pos-page-home .pos-key-action-ok,
body.pos-pin-page .pos-key-action-ok {
	background: rgba(0, 122, 255, 0.85);
	border-color: rgba(255, 255, 255, 0.25);
}

body.pos-page-home .pos-list-pane {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	padding: 8px 8px 8px 16px;
	display: flex;
	flex-direction: column;
	min-height: 0;
	flex: 1 1 0;
	overflow: hidden;
}

body.pos-page-home .pos-list-pane .pos-empleados-scroll {
	flex: 1 1 0;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
}

body.pos-page-sucursal .pos-list-pane .pos-sucursales-scroll {
	flex: 1 1 0;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

body.pos-page-sucursal .pos-sucursal-item {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.pos-page-sucursal .pos-sucursal-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 56px;
	padding: 14px 18px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.42);
	color: #ffffff;
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	touch-action: manipulation;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

body.pos-page-sucursal .pos-sucursal-card:active {
	background: rgba(0, 122, 255, 0.35);
	border-color: rgba(255, 255, 255, 0.28);
	transform: scale(0.99);
}

body.pos-page-sucursal .pos-sucursal-nombre {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.pos-page-sucursal .pos-sucursal-vacio {
	flex-shrink: 0;
	margin: 12px 4px 0;
	padding: 14px 16px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.95rem;
	text-align: center;
}

body.pos-page-sucursal .pos-sucursales-scroll--oculta {
	display: none;
}

body.pos-page-sucursal .pos-home-close {
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.15);
}

body.pos-page-home .pos-empleados-scroll,
body.pos-pin-page .pos-empleados-scroll,
body.pos-page-sucursal .pos-sucursales-scroll {
	gap: 10px;
	padding-right: 4px;
}

body.pos-page-home .pos-empleados-scroll::-webkit-scrollbar,
body.pos-pin-page .pos-empleados-scroll::-webkit-scrollbar,
body.pos-page-sucursal .pos-sucursales-scroll::-webkit-scrollbar {
	width: 6px;
}

body.pos-page-home .pos-empleados-scroll::-webkit-scrollbar-thumb,
body.pos-pin-page .pos-empleados-scroll::-webkit-scrollbar-thumb,
body.pos-page-sucursal .pos-sucursales-scroll::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.25);
	border-radius: 6px;
}

body.pos-page-home .pos-empleado-card,
body.pos-pin-page .pos-empleado-card {
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	color: #ffffff;
	min-height: 58px;
	padding: 8px 18px 8px 8px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

body.pos-page-home .pos-empleado-card:active,
body.pos-pin-page .pos-empleado-card:active {
	background: rgba(0, 0, 0, 0.55);
}

body.pos-page-home .pos-avatar,
body.pos-pin-page .pos-avatar {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	background: rgba(255, 255, 255, 0.18);
	color: #ffffff;
	font-size: 1rem;
}

body.pos-page-home .pos-empleado-nombre,
body.pos-pin-page .pos-empleado-nombre {
	font-size: clamp(0.95rem, 2.2vmin, 1.1rem);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.pos-page-home .pos-empleado-hora,
body.pos-pin-page .pos-empleado-hora {
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.82rem;
}

body.pos-page-home .pos-empleado-chevron,
body.pos-pin-page .pos-empleado-chevron {
	color: rgba(255, 255, 255, 0.45);
	font-size: 1.75rem;
	font-weight: 300;
}

body.pos-page-home .pos-badge,
body.pos-pin-page .pos-badge {
	display: none;
}

body.pos-page-home .pos-list-heading,
body.pos-pin-page .pos-list-heading,
body.pos-page-home .pos-recientes-pane,
body.pos-pin-page .pos-recientes-pane {
	display: none;
}

/* PIN */
body.pos-pin-page .pos-pin-display {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	margin-bottom: clamp(6px, 1vh, 10px);
	letter-spacing: 0.12em;
	font-size: clamp(1.35rem, 3.2vmin, 1.85rem);
	font-weight: 600;
	color: #ffffff;
	text-align: center;
	text-transform: none;
}

body.pos-pin-page .pos-pin-form-campo {
	display: block;
	flex-shrink: 0;
	width: 100%;
	box-sizing: border-box;
}

body.pos-pin-page .pos-pin-keyboard-pane:has(.pos-teclado-numeric-pin-wrap:not(.pos-teclado-swap-oculto)) .pos-pin-form-campo,
body.pos-pin-page .pos-pin-keyboard-pane:has(.pos-teclado-numeric-pin-wrap:not(.pos-teclado-swap-oculto)) .pos-pin-toggle-teclado {
	width: var(--pos-numeric-keyboard-width);
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

body.pos-pin-page .pos-pin-empleado-pane {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 16px;
}

body.pos-pin-page .pos-pin-empleado-card {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	max-width: min(100%, 560px);
	min-height: 56px;
	padding: 8px 18px 8px 8px;
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

body.pos-pin-page .pos-pin-empleado-card .pos-avatar {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	font-size: 1rem;
}

body.pos-pin-page .pos-pin-empleado-card .pos-empleado-nombre {
	font-size: clamp(1rem, 2.4vmin, 1.2rem);
	white-space: normal;
	line-height: 1.25;
}

body.pos-pin-page .pos-alert-error {
	margin-bottom: 10px;
	background: rgba(255, 59, 48, 0.25);
	color: #ffffff;
	border: 1px solid rgba(255, 120, 110, 0.4);
	border-radius: 12px;
	padding: 10px 12px;
	font-size: 0.9rem;
	text-align: center;
}

body.pos-pin-page .pos-key-action-ok {
	background: rgba(0, 122, 255, 0.92);
	border-color: rgba(255, 255, 255, 0.28);
	font-weight: 700;
}

/* Paginas kiosk: login, sucursal, error, fichaje */
body.pos-kiosk-page {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	height: 100dvh;
	max-height: 100dvh;
	overflow: hidden;
	overscroll-behavior: none;
	background: transparent;
	color: #ffffff;
}

body.pos-kiosk-page .pos-kiosk-shell {
	position: relative;
	z-index: 1;
}

body.pos-kiosk-page .pos-brand-link {
	color: #ffffff;
	text-decoration: none;
}

body.pos-kiosk-page .pos-logo-text {
	color: #ffffff;
	font-weight: 600;
}


body.pos-kiosk-page .pos-home-title {
	color: #ffffff;
	font-weight: 500;
	font-size: clamp(1.15rem, 2.8vw, 1.6rem);
}

body.pos-kiosk-page .pos-home-sucursal {
	color: rgba(255, 255, 255, 0.75);
}

body.pos-kiosk-page .pos-fullscreen-btn {
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: none;
}

body.pos-kiosk-page .pos-fullscreen-btn:active {
	background: rgba(255, 255, 255, 0.12);
	color: #ffffff;
}

body.pos-kiosk-page .pos-fullscreen-btn--active {
	color: #7ec4ff;
	background: rgba(0, 122, 255, 0.38);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: none;
}

body.pos-kiosk-page .pos-fullscreen-btn--active:active {
	background: rgba(0, 122, 255, 0.48);
}

.pos-kiosk-shell-centrado {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: 100%;
}

.pos-auth-panel {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px 24px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.pos-auth-card {
	width: 100%;
	max-width: 420px;
	padding: 22px 20px;
	background: rgba(0, 0, 0, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 20px;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

.pos-auth-card-wide {
	max-width: min(100%, 520px);
}

body.pos-kiosk-page .pos-label {
	color: rgba(255, 255, 255, 0.92);
	font-weight: 600;
}

body.pos-kiosk-page .pos-input {
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #ffffff;
	margin-bottom: 0;
}

body.pos-kiosk-page .pos-input::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

body.pos-kiosk-page .pos-input:focus {
	outline: none;
	border-color: rgba(0, 122, 255, 0.75);
	box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.25);
}

body.pos-kiosk-page .pos-form {
	gap: 14px;
}

body.pos-kiosk-page .pos-btn-block {
	width: 100%;
	margin: 4px 0 0;
}

body.pos-kiosk-page .pos-btn-primary {
	background: rgba(0, 122, 255, 0.92);
	color: #ffffff;
	border-radius: 14px;
	min-height: 52px;
	font-weight: 600;
}

body.pos-kiosk-page .pos-btn-primary:active {
	background: rgba(0, 100, 220, 0.95);
}

body.pos-kiosk-page .pos-alert-error {
	background: rgba(255, 59, 48, 0.25);
	color: #ffffff;
	border: 1px solid rgba(255, 120, 110, 0.4);
}

body.pos-kiosk-page .pos-alert-ok {
	background: rgba(52, 199, 89, 0.22);
	color: #ffffff;
	border: 1px solid rgba(120, 220, 150, 0.35);
}

body.pos-kiosk-page .pos-sucursal-list {
	margin: 0 0 8px;
}

body.pos-kiosk-page .pos-sucursal-option {
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	color: #ffffff;
	min-height: 56px;
	font-size: 1.05rem;
	transition: background 0.15s ease, border-color 0.15s ease;
}

body.pos-kiosk-page .pos-sucursal-option:has(input:checked) {
	background: rgba(0, 122, 255, 0.35);
	border-color: rgba(255, 255, 255, 0.28);
}

body.pos-kiosk-page .pos-sucursal-option input {
	accent-color: #007aff;
}

/* Fichaje del dia */
body.pos-kiosk-page-fichaje .pos-home-close {
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.15);
}

body.pos-kiosk-page-fichaje .pos-fichaje-panel {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	padding: 0;
	gap: 0;
	overflow: hidden;
}

body.pos-kiosk-page-fichaje .pos-fichaje-split {
	grid-template-columns: minmax(0, 42%) minmax(0, 58%);
	gap: 0;
	padding: 0 12px calc(12px + env(safe-area-inset-bottom, 0));
}

body.pos-kiosk-page-fichaje .pos-fichaje-pane-izq {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: 10px 18px 10px 10px;
	border-right: 1px solid rgba(255, 255, 255, 0.22);
	overflow: hidden;
}

body.pos-kiosk-page-fichaje .pos-fichaje-pane-der {
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 10px 10px 10px 18px;
	overflow: hidden;
}

body.pos-kiosk-page-fichaje .pos-fichaje-alerta {
	flex-shrink: 0;
	margin: 0 0 10px;
	width: 100%;
	max-width: 280px;
}

body.pos-kiosk-page-fichaje .pos-fichaje-hero {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0;
	width: 100%;
	max-width: 300px;
}

body.pos-kiosk-page-fichaje .pos-fichaje-avatar-wrap {
	position: relative;
	margin-bottom: 12px;
}

body.pos-kiosk-page-fichaje .pos-avatar-xl {
	width: 88px;
	height: 88px;
	min-width: 88px;
	min-height: 88px;
	font-size: 1.75rem;
	font-weight: 700;
	color: #ffffff;
	background: linear-gradient(145deg, rgba(0, 122, 255, 0.95), rgba(88, 86, 214, 0.92));
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
	border: 3px solid rgba(255, 255, 255, 0.22);
}

body.pos-kiosk-page-fichaje .pos-fichaje-estado-punto {
	position: absolute;
	right: 2px;
	bottom: 4px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 3px solid rgba(20, 20, 30, 0.9);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

body.pos-kiosk-page-fichaje .pos-fichaje-estado-punto--fuera {
	background: #8e8e93;
}

body.pos-kiosk-page-fichaje .pos-fichaje-estado-punto--dentro {
	background: #34c759;
}

body.pos-kiosk-page-fichaje .pos-fichaje-nombre {
	margin: 0;
	font-size: clamp(1.35rem, 3.5vw, 1.85rem);
	font-weight: 600;
	color: #ffffff;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

body.pos-kiosk-page-fichaje .pos-fichaje-estado-texto {
	margin: 6px 0 0;
	font-size: clamp(0.95rem, 2.2vw, 1.1rem);
	font-weight: 600;
	color: rgba(255, 255, 255, 0.92);
}

body.pos-kiosk-page-fichaje .pos-fichaje-subtitulo {
	margin: 4px 0 0;
	max-width: 28rem;
	font-size: clamp(0.88rem, 2vw, 1rem);
	font-weight: 400;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.35;
}

body.pos-kiosk-page-fichaje .pos-fichaje-tiempo-hoy {
	margin: 10px 0 0;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: #ffffff;
	background: rgba(0, 0, 0, 0.32);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

body.pos-kiosk-page-fichaje .pos-fichaje-historial {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	margin-top: 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-historial-titulo {
	margin: 0 0 8px;
	padding: 0 4px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

body.pos-kiosk-page-fichaje .pos-fichaje-historial-card {
	flex: 1 1 0;
	min-height: 0;
	padding: 12px 14px;
	border-radius: 18px;
	background: rgba(0, 0, 0, 0.38);
	border: 1px solid rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-item:not(:last-child) {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-dot {
	width: 10px;
	height: 10px;
	margin-top: 6px;
	border-radius: 50%;
	flex-shrink: 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-item--entrada .pos-fichaje-timeline-dot {
	background: #34c759;
	box-shadow: 0 0 0 4px rgba(52, 199, 89, 0.22);
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-item--salida .pos-fichaje-timeline-dot {
	background: #ff9f0a;
	box-shadow: 0 0 0 4px rgba(255, 159, 10, 0.22);
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-cuerpo {
	flex: 1;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-tipo {
	font-size: 1.05rem;
	font-weight: 600;
	color: #ffffff;
}

body.pos-kiosk-page-fichaje .pos-fichaje-timeline-hora {
	font-size: 1.05rem;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, 0.78);
}

body.pos-kiosk-page-fichaje .pos-fichaje-vacio {
	color: rgba(255, 255, 255, 0.6);
	text-align: center;
	margin: 0;
	padding: 28px 12px;
	font-size: 1rem;
	line-height: 1.4;
}

body.pos-kiosk-page-fichaje .pos-fichaje-acciones {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	padding: 22px 0 0;
}

body.pos-kiosk-page-fichaje .pos-fichaje-acciones-bar {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	width: 100%;
	max-width: none;
}

body.pos-kiosk-page-fichaje .pos-fichaje-form-fichar {
	flex: none;
	width: 100%;
	min-width: 0;
	margin: 0;
	display: flex;
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn {
	flex: none;
	width: 100%;
	min-width: 0;
	min-height: 80px;
	padding: 20px 28px;
	border: none;
	border-radius: 22px;
	font-family: inherit;
	font-size: clamp(1.2rem, 3.2vw, 1.55rem);
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	touch-action: manipulation;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
	transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.15s ease;
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn:active {
	transform: scale(0.97);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn--entrada {
	color: #ffffff;
	background: linear-gradient(165deg, #3ddc68 0%, #28a745 100%);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn--salida {
	color: #ffffff;
	background: linear-gradient(165deg, #ffb340 0%, #ff6723 100%);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn--codigo {
	min-height: 52px;
	padding: 14px 20px;
	font-size: clamp(1rem, 2.4vw, 1.15rem);
	color: rgba(255, 255, 255, 0.95);
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

body.pos-kiosk-page-fichaje .pos-fichaje-btn--codigo:active {
	background: rgba(255, 255, 255, 0.22);
}

body.pos-kiosk-page-fichaje .pos-fichaje-form-fichar .pos-fichaje-btn {
	width: 100%;
}

@media (max-width: 720px) {
	body.pos-kiosk-page-fichaje .pos-fichaje-split {
		grid-template-columns: 1fr;
		grid-template-rows: auto minmax(0, 1fr);
		padding: 0 12px calc(12px + env(safe-area-inset-bottom, 0));
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-pane-izq {
		border-right: none;
		border-bottom: 1px solid rgba(255, 255, 255, 0.22);
		padding: 10px 12px 12px;
		justify-content: flex-start;
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-pane-der {
		padding: 12px 4px 4px;
		min-height: 0;
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-acciones-bar {
		flex-direction: row;
		max-width: 100%;
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-acciones {
		max-width: 100%;
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-form-fichar {
		flex: 1 1 0;
	}

	body.pos-kiosk-page-fichaje .pos-fichaje-btn {
		flex: 1 1 0;
	}
}

/* PIN: teclado numerico / toggle QWERTY */
body.pos-pin-page .pos-pin-keyboard-pane > .pos-teclado-container:not(.pos-teclado-swap-oculto) {
	flex: 1 1 0;
	min-height: 0;
}

body.pos-pin-page .pos-teclado-swap-oculto {
	display: none !important;
}

/* PIN / codigo: teclado numerico compacto y centrado (no afecta QWERTY) */
body.pos-pin-page,
body.pos-codigo-pos-page {
	--pos-numeric-key-gap: 10px;
	--pos-numeric-key-size: clamp(62px, 7.8vmin, 78px);
	--pos-numeric-keyboard-width: calc(3 * var(--pos-numeric-key-size) + 2 * var(--pos-numeric-key-gap));
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 8px 4px;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	gap: var(--pos-numeric-key-gap);
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap .pos-keyboard-grid-numeric-pin,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap .pos-keyboard-grid-numeric-pin {
	flex: 0 0 auto;
	min-height: auto;
	max-height: none;
	width: max-content;
	max-width: 100%;
	overflow: visible;
	display: grid;
	grid-template-columns: repeat(3, var(--pos-numeric-key-size));
	grid-template-rows: repeat(4, var(--pos-numeric-key-size));
	gap: var(--pos-numeric-key-gap);
	align-content: center;
	justify-content: center;
	place-content: center;
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap .pos-key-round,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap .pos-key-round {
	width: var(--pos-numeric-key-size);
	height: var(--pos-numeric-key-size);
	min-width: var(--pos-numeric-key-size);
	min-height: var(--pos-numeric-key-size);
	max-width: var(--pos-numeric-key-size);
	max-height: var(--pos-numeric-key-size);
	aspect-ratio: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	line-height: 1;
	font-size: clamp(0.95rem, calc(var(--pos-numeric-key-size) * 0.42), 1.35rem);
	font-weight: 700;
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap .pos-key-spacer,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap .pos-key-spacer {
	width: var(--pos-numeric-key-size);
	height: var(--pos-numeric-key-size);
	min-width: var(--pos-numeric-key-size);
	min-height: var(--pos-numeric-key-size);
	aspect-ratio: auto;
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap .pos-keyboard-actions,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap .pos-keyboard-actions {
	flex-shrink: 0;
	width: var(--pos-numeric-keyboard-width);
	max-width: 100%;
	margin-top: 0;
	margin-left: auto;
	margin-right: auto;
	gap: var(--pos-numeric-key-gap);
}

body.pos-pin-page .pos-teclado-numeric-pin-wrap .pos-keyboard-actions .pos-key-action,
body.pos-codigo-pos-page .pos-teclado-numeric-pin-wrap .pos-keyboard-actions .pos-key-action {
	min-height: calc(var(--pos-numeric-key-size) * 0.82);
	max-height: calc(var(--pos-numeric-key-size) * 0.9);
	flex-shrink: 0;
}

body.pos-pin-page .pos-pin-toggle-teclado {
	flex-shrink: 0;
	align-self: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.95);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	touch-action: manipulation;
}

body.pos-pin-page .pos-pin-toggle-teclado:active {
	background: rgba(255, 255, 255, 0.2);
}

/* Pantalla dedicada: codigo rapido POS — teclado izquierda, formulario derecha */
body.pos-codigo-pos-page .pos-codigo-pos-split {
	grid-template-columns: minmax(0, 58%) minmax(0, 42%);
	gap: 0;
	padding: 0 12px calc(12px + env(safe-area-inset-bottom, 0));
}

body.pos-codigo-pos-page .pos-codigo-pos-keyboard-pane {
	flex: 1 1 0;
	min-height: 0;
	height: 100%;
	max-width: none;
	margin: 0;
	width: 100%;
	border-right: 1px solid rgba(255, 255, 255, 0.22);
	padding: 10px 18px 10px 10px;
	justify-content: center;
}

body.pos-codigo-pos-page .pos-codigo-pos-keyboard-pane > .pos-teclado-container:not(.pos-teclado-swap-oculto) {
	flex: 1 1 0;
	min-height: 0;
	width: 100%;
}

body.pos-codigo-pos-page .pos-codigo-pos-form-pane {
	display: flex;
	flex-direction: column;
	min-height: 0;
	flex: 1 1 0;
	padding: 10px 10px 10px 18px;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

body.pos-codigo-pos-page .pos-codigo-pos-estado {
	margin: 0 0 12px;
	font-size: 0.95rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85);
	text-align: center;
}

body.pos-codigo-pos-page .pos-codigo-pos-form {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 12px;
}

body.pos-codigo-pos-page .pos-codigo-pos-form-desactivar {
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}

body.pos-codigo-pos-page .pos-codigo-pos-label {
	font-size: 0.82rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.72);
}

body.pos-codigo-pos-page .pos-codigo-pos-input {
	width: 100%;
	min-height: 44px;
}

body.pos-codigo-pos-page .pos-codigo-pos-campo--activo {
	outline: 2px solid rgba(0, 122, 255, 0.65);
	outline-offset: 1px;
}

body.pos-codigo-pos-page .pos-codigo-pos-acciones {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 6px;
}

body.pos-codigo-pos-page .pos-codigo-pos-btn {
	min-height: 48px;
	padding: 12px 16px;
	border: none;
	border-radius: 14px;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	touch-action: manipulation;
}

body.pos-codigo-pos-page .pos-codigo-pos-btn--volver {
	color: rgba(255, 255, 255, 0.92);
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.24);
}

body.pos-codigo-pos-page .pos-codigo-pos-btn--guardar {
	color: #fff;
	background: linear-gradient(165deg, #4da3ff 0%, #007aff 100%);
}

body.pos-codigo-pos-page .pos-codigo-pos-btn--desactivar {
	width: 100%;
	color: #fff;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.24);
}

body.pos-codigo-pos-page .pos-codigo-pos-keyboard-pane .pos-teclado-qwerty-wrap {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
}

@media (max-width: 720px) {
	body.pos-codigo-pos-page .pos-codigo-pos-split {
		grid-template-columns: 1fr;
		grid-template-rows: minmax(0, 1fr) auto;
	}

	body.pos-codigo-pos-page .pos-codigo-pos-keyboard-pane {
		order: 2;
		border-right: none;
		border-top: 1px solid rgba(255, 255, 255, 0.22);
		padding: 12px 12px 10px;
		min-height: 240px;
	}

	body.pos-codigo-pos-page .pos-codigo-pos-form-pane {
		order: 1;
		padding: 10px 12px 8px;
	}
}
