/*
 * VIVI Brand Management overlay system.
 * Scope: scanner, payment records, manager permissions, member QR.
 */
.vivi-brand-overlay[hidden]{display:none!important}
.vivi-brand-overlay{
	position:fixed;
	top:var(--vivi-header-height,76px);
	right:0;
	bottom:0;
	left:0;
	z-index:100300;
	display:flex;
	align-items:flex-start;
	justify-content:center;
	padding:18px 24px 24px;
	box-sizing:border-box;
	font-family:var(--vivi-font-body,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
	color:var(--vivi-color-text,#5a5a5a);
	opacity:0;
	pointer-events:none;
	transition:opacity .2s ease;
	overflow:hidden;
}
body.admin-bar .vivi-brand-overlay{top:calc(var(--vivi-header-height,76px) + 32px)}
body.admin-bar .vivi-brand-overlay__panel{max-height:calc(100dvh - var(--vivi-header-height,76px) - 32px - 54px)}
.vivi-brand-overlay.is-open,.vivi-brand-overlay.is-active{opacity:1;pointer-events:auto}
.vivi-brand-overlay__backdrop{
	position:absolute;
	inset:0;
	background:rgba(17,24,39,.52);
	backdrop-filter:blur(6px);
	-webkit-backdrop-filter:blur(6px);
}
.vivi-brand-overlay__panel{
	position:relative;
	z-index:1;
	display:flex;
	flex-direction:column;
	width:min(760px,calc(100vw - 48px));
	max-height:calc(100dvh - var(--vivi-header-height,76px) - 54px);
	min-height:0;
	margin:0;
	padding:0;
	border:1px solid var(--vivi-color-border,rgba(31,26,23,.12));
	border-radius:var(--vivi-radius,8px);
	background:var(--vivi-color-card,#fff);
	box-shadow:0 24px 70px rgba(15,23,42,.28);
	overflow:hidden;
	outline:none;
	box-sizing:border-box;
	transform:translateY(10px) scale(.995);
	transition:transform .2s ease;
}
.vivi-brand-overlay.is-open .vivi-brand-overlay__panel,
.vivi-brand-overlay.is-active .vivi-brand-overlay__panel{transform:translateY(0) scale(1)}
.vivi-brand-overlay--compact .vivi-brand-overlay__panel{width:min(480px,calc(100vw - 48px))}
.vivi-brand-overlay--wide .vivi-brand-overlay__panel{width:min(1040px,calc(100vw - 48px))}
.vivi-brand-overlay__handle{display:none}
.vivi-brand-overlay__header{
	position:relative;
	z-index:8;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	flex:0 0 auto;
	min-height:78px;
	padding:18px 72px 16px 24px;
	border-bottom:1px solid var(--vivi-color-border,rgba(31,26,23,.12));
	background:var(--vivi-color-card,#fff);
	box-sizing:border-box;
}
.vivi-brand-overlay__title-wrap{min-width:0}
.vivi-brand-overlay__eyebrow{
	display:block;
	margin:0 0 5px;
	color:var(--vivi-color-primary,#996515);
	font-size:var(--vivi-fs-xs,12px);
	font-weight:700;
	letter-spacing:.08em;
	line-height:1.3;
	text-transform:uppercase;
}
.vivi-brand-overlay__title{
	margin:0;
	color:var(--vivi-color-heading,#393432);
	font-family:var(--vivi-font-heading,inherit);
	font-size:var(--vivi-fs-h3,24px);
	font-weight:700;
	line-height:1.25;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.vivi-brand-overlay__close{
	appearance:none;
	-webkit-appearance:none;
	position:absolute;
	top:18px;
	right:18px;
	z-index:12;
	display:flex;
	align-items:center;
	justify-content:center;
	width:38px;
	height:38px;
	min-width:38px;
	min-height:38px;
	margin:0;
	padding:0;
	border:1px solid var(--vivi-color-border,rgba(31,26,23,.12));
	border-radius:var(--vivi-radius,8px);
	background:rgba(255,255,255,.96);
	color:var(--vivi-color-heading,#393432);
	box-shadow:0 8px 22px rgba(15,23,42,.10);
	font-size:0;
	line-height:1;
	cursor:pointer;
}
.vivi-brand-overlay__close::before{content:'×';font-size:25px;font-weight:400;line-height:1;transform:translateY(-1px)}
.vivi-brand-overlay__close span{display:none}
.vivi-brand-overlay__body{
	flex:1 1 auto;
	min-height:0;
	overflow:auto;
	padding:22px 24px 24px;
	box-sizing:border-box;
	overscroll-behavior:contain;
	-webkit-overflow-scrolling:touch;
}
.vivi-brand-overlay__body .vivi-tx-app{margin:0!important;padding:0!important;min-height:0!important;background:transparent!important}
.vivi-brand-overlay__body .vivi-tx-card{margin:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
.vivi-brand-overlay .vivi-member-qr-login-required,
.vivi-brand-overlay .vivi-member-qr-missing{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:10px;
	min-height:280px;
	text-align:center;
	color:var(--vivi-color-text-muted,#6b7280);
}
.vivi-brand-overlay .vivi-member-qr-login-required strong,
.vivi-brand-overlay .vivi-member-qr-missing strong{color:var(--vivi-color-heading,#111827);font-size:18px}
.vivi-brand-overlay .vivi-member-qr-login-required a,
.vivi-brand-overlay .vivi-member-qr-missing a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	margin-top:6px;
	padding:0 18px;
	border-radius:var(--vivi-radius,8px);
	background:var(--vivi-color-primary,#9a6a23);
	color:#fff;
	text-decoration:none;
	font-weight:700;
}
.vivi-brand-overlay--manager .vivi-bm-manager-brand-context{margin-top:0}
.vivi-brand-overlay--manager .vivi-bm-manager-detail-view[hidden],
.vivi-brand-overlay--manager .vivi-bm-manager-list-view[hidden]{display:none!important}

@media (max-width:860px){
	.vivi-brand-overlay{--vivi-brand-sheet-top-gap:12px;top:var(--vivi-header-height-mobile,66px);bottom:var(--vivi-mobile-bottom-nav-height,calc(69px + env(safe-area-inset-bottom)));z-index:99982;align-items:flex-end;justify-content:center;padding:0;opacity:1;pointer-events:none}
	body.admin-bar .vivi-brand-overlay{top:calc(var(--vivi-header-height-mobile,66px) + 46px)}
	body.admin-bar .vivi-brand-overlay__panel{max-height:calc(100% - var(--vivi-brand-sheet-top-gap))}
	.vivi-brand-overlay.is-open,.vivi-brand-overlay.is-active{pointer-events:auto}
	.vivi-brand-overlay__backdrop{background:rgba(17,24,39,.46);backdrop-filter:none;-webkit-backdrop-filter:none;opacity:0;transition:opacity .22s ease}
	.vivi-brand-overlay.is-open .vivi-brand-overlay__backdrop,
	.vivi-brand-overlay.is-active .vivi-brand-overlay__backdrop{opacity:1}
	.vivi-brand-overlay__panel,
	.vivi-brand-overlay--compact .vivi-brand-overlay__panel,
	.vivi-brand-overlay--wide .vivi-brand-overlay__panel{
		position:absolute;
		left:0;
		right:0;
		bottom:0;
		width:100%;
		max-width:100%;
		height:calc(100% - var(--vivi-brand-sheet-top-gap));
		max-height:calc(100% - var(--vivi-brand-sheet-top-gap));
		border-width:1px 0 0;
		border-radius:var(--vivi-radius,8px) var(--vivi-radius,8px) 0 0;
		box-shadow:0 -16px 42px rgba(17,24,39,.22);
		transform:translateY(104%);
		transition:transform .26s cubic-bezier(.22,.61,.36,1);
	}
	.vivi-brand-overlay.is-open .vivi-brand-overlay__panel,
	.vivi-brand-overlay.is-active .vivi-brand-overlay__panel{transform:translateY(0)}
	.vivi-brand-overlay__handle{position:absolute;top:8px;left:50%;z-index:12;display:block;width:38px;height:4px;border-radius:999px;background:#c4c7c5;transform:translateX(-50%);pointer-events:none}
	.vivi-brand-overlay__header{min-height:72px;padding:18px 58px 10px 18px}
	.vivi-brand-overlay__title{font-size:20px}
	.vivi-brand-overlay__close{top:18px;right:14px;width:36px;height:36px;min-width:36px;min-height:36px;border:0;background:rgba(17,24,39,.06);box-shadow:none}
	.vivi-brand-overlay__body{padding:16px 18px 24px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
}

@media (prefers-reduced-motion:reduce){
	.vivi-brand-overlay,.vivi-brand-overlay__panel,.vivi-brand-overlay__backdrop{transition:none!important}
}

body.vivi-bm-modal-open,
body.vivi-bm-scanner-open,
body.vivi-bm-records-open,
body.vivi-member-qr-open{overflow:hidden!important}
