:root {
	color-scheme: light dark;
	--adm-page: #fffaf0;
	--adm-surface: #ffffff;
	--adm-text: #011c40;
	--adm-muted: #475569;
	--adm-border: #777064;
	--adm-control-border: #59677a;
	--adm-primary-bg: #011c40;
	--adm-primary-text: #fffaf0;
	--adm-secondary-bg: #ffffff;
	--adm-secondary-text: #011c40;
	--adm-secondary-border: #59677a;
	--adm-transparent: transparent;
	--adm-quiet-bg: var(--adm-transparent);
	--adm-quiet-text: #34445a;
	--adm-nav-bg: #ffffff;
	--adm-nav-text: #475569;
	--adm-nav-active-bg: #dce7f3;
	--adm-nav-active-text: #011c40;
	--adm-nav-active-border: #59677a;
	--adm-focus: #8a3b00;
	--adm-card-shadow: 0 4px 16px rgb(1 17 38 / 10%);
	--adm-shadow: 0 12px 48px rgb(1 17 38 / 18%);
	--adm-backdrop: rgb(1 17 38 / 82%);
	/* WhatsApp: verde oscuro con texto blanco (6,9:1), el mismo de la bandeja de traslados privados. */
	--adm-wa-bg: #0b6b3a;
	--adm-wa-hover: #08552e;
	--adm-wa-text: #ffffff;
}

* { box-sizing: border-box; }

body.ihb-adm-body {
	margin: 0;
	background: var(--adm-page);
	color: var(--adm-text);
	font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif;
}

.ihb-adm-shell {
	width: min(100% - 24px, 960px);
	margin-inline: auto;
	padding-block: env(safe-area-inset-top) 104px;
	padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
}

.ihb-adm-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; }
.ihb-adm-header h1 { margin: 0; }
.ihb-adm-eyebrow { color: var(--adm-muted); font-size: .85rem; }
.ihb-adm-content { display: grid; grid-template-columns: 1fr; gap: 1rem; }

.ihb-adm-card {
	min-width: 0;
	padding: 1rem;
	border: 1px solid var(--adm-border);
	border-radius: var(--ihb-radio-ficha, 12px);
	background: var(--adm-surface);
	box-shadow: var(--adm-card-shadow);
}

.ihb-adm-card h2 { display: flex; align-items: center; gap: .5rem; margin: 0 0 .75rem; font-size: 1.15rem; }
.ihb-adm-amount { margin: .25rem 0; font-size: 2rem; font-weight: 750; }

.ihb-adm-button,
.ihb-adm-nav__item,
.ihb-adm-row button,
.ihb-adm-trip button,
.ihb-adm-login button,
.ihb-adm-dialog button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: .65rem 1rem;
	border: 1px solid var(--adm-secondary-border);
	border-radius: var(--ihb-radio-pastilla, 999px);
	background: var(--adm-secondary-bg);
	color: var(--adm-secondary-text);
	font: inherit;
	font-weight: 650;
	text-decoration: none;
	cursor: pointer;
}

.ihb-adm-button--primary {
	width: 100%;
	background: var(--adm-primary-bg);
	color: var(--adm-primary-text);
	font-size: 1.1rem;
}

.ihb-adm-sell { min-height: 56px; grid-column: 1 / -1; }
.ihb-adm-login:has(input[name="ihb_adm_accion"][value="entrar"]) button { min-height: 56px; width: 100%; border-color: var(--adm-primary-bg); background: var(--adm-primary-bg); color: var(--adm-primary-text); }
.ihb-adm-login:has(input[name="ihb_adm_accion"][value="cambiar"]) button,
.ihb-adm-login:has(input[name="ihb_adm_accion"][value="reenviar"]) button { justify-content: flex-start; padding-inline: .25rem; border-color: var(--adm-transparent); background: var(--adm-quiet-bg); color: var(--adm-quiet-text); }

.ihb-adm-help { display: inline-grid; place-items: center; flex: none; inline-size: 48px; block-size: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--adm-transparent); color: inherit; font: inherit; font-size: 0; cursor: pointer; }
.ihb-adm-help::before { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid currentColor; border-radius: 50%; content: "?"; font-size: 14px; line-height: 1; }
.ihb-adm-link { display: flex; align-items: center; min-height: 48px; padding: .5rem 0; border-block-end: 1px solid var(--adm-border); color: inherit; }
.ihb-adm-row { display: grid; gap: .5rem; padding-block: .75rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-row button { margin-inline-end: .4rem; }

.ihb-adm-nav {
	position: fixed;
	z-index: 5;
	inset-inline: 0;
	inset-block-end: 0;
	display: flex;
	justify-content: space-around;
	gap: .25rem;
	padding: .35rem max(8px, env(safe-area-inset-right)) calc(.35rem + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
	border-block-start: 1px solid var(--adm-border);
	background: var(--adm-nav-bg);
}

.ihb-adm-nav__item { flex: 1; min-width: 0; min-height: 56px; flex-direction: column; gap: 1px; padding: .15rem; border-color: var(--adm-transparent); border-radius: 999px; background: var(--adm-nav-bg); color: var(--adm-nav-text); font-size: .72rem; }
.ihb-adm-nav__item svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ihb-adm-nav__item[aria-current="page"] { border-color: var(--adm-nav-active-border); background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); }

.ihb-adm-login { display: grid; gap: .6rem; margin-block: 1rem; }
.ihb-adm-login input { min-height: 48px; padding: .6rem; border: 1px solid var(--adm-control-border); border-radius: .5rem; background: var(--adm-surface); color: var(--adm-text); font: inherit; }

.ihb-adm-dialog {
	width: min(92vw, 520px);
	max-width: min(90vw, 520px);
	max-height: 85dvh;
	overflow: auto;
	padding: 1.25rem;
	border: 1px solid var(--adm-border);
	border-radius: var(--ihb-radio-caja, 16px);
	background: var(--adm-surface);
	box-shadow: var(--adm-shadow);
	color: var(--adm-text);
}

.ihb-adm-dialog::backdrop { background: var(--adm-backdrop); }
.ihb-adm-dialog h2 { margin-block-start: 0; }
.ihb-adm-dialog textarea,
.ihb-adm-dialog input[type="time"],
.ihb-adm-dialog select { display: block; width: 100%; min-height: 48px; margin-block: .5rem 1rem; padding: .65rem; border: 1px solid var(--adm-control-border); border-radius: .5rem; background: var(--adm-surface); color: var(--adm-text); font: inherit; }
.ihb-adm-dialog textarea { min-height: 96px; }
.ihb-adm-dialog label { display: inline-block; max-width: calc(100% - 56px); vertical-align: middle; }
.ihb-adm-dialog input[type="checkbox"] { inline-size: 24px; block-size: 24px; margin-inline-end: .5rem; vertical-align: middle; accent-color: var(--adm-primary-bg); }
.ihb-adm-dialog button { min-width: 48px; margin: .25rem; }

.ihb-adm-day { margin-block: .6rem; }
.ihb-adm-day__heading { margin: 0; padding-block: .55rem; font-size: 1rem; font-weight: 700; }
.ihb-adm-day summary { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-height: 48px; cursor: pointer; }
.ihb-adm-day__summary { color: var(--adm-muted); font-size: .82rem; font-weight: 500; }
.ihb-adm-trip { display: grid; gap: .2rem; padding-block: .5rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-trip__route { font-size: .97rem; line-height: 1.3; }
.ihb-adm-trip__occupancy { display: grid; grid-template-columns: auto 48px minmax(0, 1fr); align-items: center; gap: .35rem .55rem; font-size: .78rem; }
.ihb-adm-trip__occupancy progress { width: 48px; height: .4rem; accent-color: var(--adm-primary-bg); }
.ihb-adm-trip__counts { min-width: 0; color: var(--adm-muted); text-align: end; font-size: .68rem; line-height: 1.15; }
.ihb-adm-trip__actions { display: flex; align-items: center; gap: .2rem; margin-inline-start: -.55rem; }
.ihb-adm-trip__actions button { min-height: 48px; padding: .4rem .65rem; border-color: var(--adm-secondary-border); background: var(--adm-secondary-bg); color: var(--adm-secondary-text); }
.ihb-adm-trip__actions .ihb-adm-help { min-width: 48px; min-height: 48px; padding: 0; border-color: var(--adm-transparent); background: var(--adm-transparent); color: inherit; }
.ihb-adm-ticket-list { display: grid; }
.ihb-adm-dashboard-ticket-list { display: none; }
.ihb-adm-ticket-list .ihb-adm-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.ihb-adm-ticket-list .ihb-adm-row strong,
.ihb-adm-ticket-list .ihb-adm-row span:first-of-type { grid-column: 1 / -1; }
.ihb-adm-ticket-panel { display: none; }
.ihb-adm-ticket-panel.is-selected { display: block; }
.ihb-adm-ticket-panel[hidden] { display: none !important; }
.ihb-adm-ticket-list .ihb-adm-row button { padding: .5rem .7rem; font-size: .9rem; }
.ihb-adm-places { font-weight: 650; }
.ihb-adm-login-card { max-width: 28rem; margin: clamp(2rem, 12vh, 7rem) auto; padding: clamp(1.25rem, 5vw, 2rem); }
.ihb-adm-login-card h1 { margin: 0 0 1.25rem; }

.ihb-adm-login:has(input[name="ihb_adm_accion"][value="codigo"]) button { min-height: 56px; width: 100%; border-color: var(--adm-primary-bg); background: var(--adm-primary-bg); color: var(--adm-primary-text); }
.ihb-adm-nav__brand, .ihb-adm-nav__account, .ihb-adm-header__sell, .ihb-adm-table-wrap { display: none; }
.ihb-adm-today-metrics, .ihb-adm-dashboard-grid { display: contents; }
.ihb-adm-notice { padding: .75rem 1rem; border-inline-start: 4px solid var(--adm-focus); border-radius: .25rem; background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); }
.ihb-adm-past-label { color: var(--adm-muted); font-size: .85rem; font-weight: 700; }
.ihb-adm-trip.is-past { color: var(--adm-muted); }
.ihb-adm-row__actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.ihb-adm-table { width: 100%; border-collapse: collapse; color: var(--adm-text); }
.ihb-adm-table caption { padding: .6rem; color: var(--adm-muted); font-weight: 650; text-align: start; }
.ihb-adm-table th, .ihb-adm-table td { padding: .7rem .65rem; border-block-end: 1px solid var(--adm-border); text-align: start; vertical-align: middle; }
.ihb-adm-table th { background: var(--adm-nav-bg); font-size: .86rem; }
.ihb-adm-table button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .55rem .75rem; border: 1px solid var(--adm-secondary-border); border-radius: var(--ihb-radio-pastilla, 999px); background: var(--adm-secondary-bg); color: var(--adm-secondary-text); font: inherit; font-weight: 650; cursor: pointer; }
.ihb-adm-table progress { display: block; width: min(100%, 8rem); height: .65rem; margin-block-start: .35rem; accent-color: var(--adm-primary-bg); }
.ihb-adm-table-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.ihb-adm-dashboard-ticket { display: grid; gap: .35rem; padding-block: .8rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-dashboard-trip-list { display: grid; gap: .25rem; }
.ihb-adm-dashboard-trip-list .ihb-adm-trip { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.ihb-adm-day__heading { position: sticky; z-index: 2; inset-block-start: 0; background: var(--adm-page); border-block-end: 1px solid var(--adm-border); }
.ihb-adm-day__heading:has(+ *) { scroll-margin-block-start: .5rem; }
.ihb-adm-trip-cards { display: grid; gap: .5rem; }

@media (min-width: 768px) {
	.ihb-adm-shell { width: auto; max-width: 1360px; margin-inline: 108px 20px; padding-block: 1rem 2rem; }
	.ihb-adm-header { align-items: center; min-height: 88px; }
	.ihb-adm-header h1 { font-size: clamp(1.8rem, 3vw, 2.35rem); }
	.ihb-adm-header__account { align-items: center; gap: .7rem; }
	.ihb-adm-header__account form { display: none; }
	.ihb-adm-header__sell { display: inline-flex; width: auto; min-width: 190px; }
	.ihb-adm-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.ihb-adm-content > .ihb-adm-today-metrics, .ihb-adm-content > .ihb-adm-dashboard-grid, .ihb-adm-content > .ihb-adm-sell, .ihb-adm-content > .ihb-adm-card { grid-column: 1 / -1; }
	.ihb-adm-today-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.ihb-adm-content > .ihb-adm-sell { display: none; }
	.ihb-adm-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
	.ihb-adm-stat { min-width: 0; padding: 1rem; border: 1px solid var(--adm-border); border-radius: var(--ihb-radio-ficha, 12px); background: var(--adm-surface); }
	.ihb-adm-stat h3 { margin: 0; font-size: 1rem; }
	.ihb-adm-more-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.ihb-adm-more-group { min-width: 0; padding: 1rem; border: 1px solid var(--adm-border); border-radius: var(--ihb-radio-ficha, 12px); background: var(--adm-surface); }
	.ihb-adm-more-group h2 { margin-block: 0 .5rem; }
	.ihb-adm-more-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
	.ihb-adm-more-link { display: flex; align-items: center; min-height: 48px; padding: .5rem .7rem; border: 1px solid var(--adm-border); border-radius: .5rem; color: var(--adm-text); overflow-wrap: anywhere; }
	.ihb-adm-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: start; gap: 1rem; }
	.ihb-adm-dashboard-grid > .ihb-adm-card { min-width: 0; }
	.ihb-adm-dashboard-grid > .ihb-adm-card:has(.ihb-adm-dashboard-trip-list) > .ihb-adm-table-wrap { display: none; }
	.ihb-adm-dashboard-ticket-cards { display: none; }
	.ihb-adm-content:has(.ihb-adm-days) { display: block; }
	.ihb-adm-days { display: grid; gap: .75rem; }
	.ihb-adm-day { min-width: 0; }
	.ihb-adm-table-wrap { display: block; overflow-x: auto; }
	.ihb-adm-trips-table-wrap { max-height: min(70vh, 760px); overflow: auto; }
	.ihb-adm-trips-table thead th { position: sticky; inset-block-start: 0; z-index: 1; }
	.ihb-adm-trips-table td:first-child { min-width: 160px; }
	.ihb-adm-trips-table td:nth-child(2) { min-width: 190px; }
	.ihb-adm-trips-table td:nth-child(3) { min-width: 145px; }
	.ihb-adm-trips-table tr.is-past { color: var(--adm-muted); background: color-mix(in srgb, var(--adm-surface) 80%, var(--adm-page)); }
	.ihb-adm-trips-table tr.is-past td:first-child::after { content: ''; }
	.ihb-adm-trip-cards { display: none; }
	.ihb-adm-ticket-list { display: none; }
	.ihb-adm-ticket-tabs { display: flex; gap: .5rem; margin-block-end: 1rem; }
	.ihb-adm-ticket-tabs [aria-selected="true"] { border-color: var(--adm-nav-active-border); background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); }
	.ihb-adm-ticket-panel > .ihb-adm-table-wrap { display: block; }
	.ihb-adm-ticket-panel > .ihb-adm-table-wrap table { min-width: 900px; }
	.ihb-adm-ticket-panel > .ihb-adm-table-wrap td { vertical-align: top; }
	.ihb-adm-day > .ihb-adm-table-wrap { margin-block-end: .6rem; }
}

@media (min-width: 768px) and (max-width: 1199px) {
	.ihb-adm-shell { margin-inline-start: 104px; margin-inline-end: 16px; }
	.ihb-adm-nav { position: fixed; z-index: 10; inset-block: 0; inset-inline-start: 0; inset-inline-end: auto; width: 88px; flex-direction: column; justify-content: center; gap: .6rem; padding: 1rem .35rem; border-inline-end: 1px solid var(--adm-border); }
	.ihb-adm-nav__item { flex: 0 0 auto; width: 100%; min-height: 68px; font-size: .72rem; }
}

@media (min-width: 1200px) {
	.ihb-adm-shell { max-width: 1360px; margin-inline-start: 264px; margin-inline-end: 24px; }
	.ihb-adm-nav { position: fixed; z-index: 10; inset-block: 0; inset-inline-start: 0; inset-inline-end: auto; width: 240px; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: .4rem; padding: 1.25rem .85rem; border-inline-end: 1px solid var(--adm-border); }
	.ihb-adm-nav__brand { display: grid; gap: .15rem; margin-block-end: 1.25rem; padding: .5rem .6rem 1rem; border-block-end: 1px solid var(--adm-border); }
	.ihb-adm-nav__brand strong { font-size: 1rem; }
	.ihb-adm-nav__brand span { color: var(--adm-muted); }
	.ihb-adm-nav__brand span:last-child { justify-self: start; margin-block-start: .35rem; padding: .15rem .5rem; border: 1px solid var(--adm-nav-active-border); border-radius: 999px; background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); font-size: .75rem; font-weight: 700; }
	.ihb-adm-nav__item { flex: 0 0 auto; width: 100%; min-height: 52px; flex-direction: row; justify-content: flex-start; gap: .8rem; padding-inline: .8rem; border-radius: .6rem; font-size: .95rem; }
	.ihb-adm-nav__item svg { flex: none; width: 22px; height: 22px; }
	.ihb-adm-nav__account { display: flex; flex-direction: column; gap: .35rem; margin-block-start: auto; padding: 1rem .5rem .25rem; border-block-start: 1px solid var(--adm-border); }
	.ihb-adm-nav__account > span { overflow-wrap: anywhere; font-weight: 650; }
	.ihb-adm-nav__account form, .ihb-adm-header__account form { display: block; }
	.ihb-adm-header__account { display: none; }
	.ihb-adm-header__account form button, .ihb-adm-nav__account form button { min-height: 48px; }
	/* Tres cifras arriba; «Solicitudes nuevas» ocupa su propia fila completa debajo. */
	.ihb-adm-today-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ihb-adm-more-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ihb-adm-more-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: no-preference) and (min-width: 768px) {
	.ihb-adm-table-wrap { scrollbar-gutter: stable; }
}

:focus-visible { outline: 3px solid var(--adm-focus); outline-offset: 3px; }
button:disabled { border-style: dashed; cursor: not-allowed; }

@media (min-width: 760px) {
	.ihb-adm-shell { padding-block-end: 2rem; }
	.ihb-adm-trip__actions button { min-height: 48px; }
}

@media (prefers-color-scheme: dark) {
	:root {
		--adm-page: #101722;
		--adm-surface: #1c2735;
		--adm-text: #f5f2eb;
		--adm-muted: #c7d0dc;
		--adm-border: #8795a8;
		--adm-control-border: #a8b5c6;
		--adm-primary-bg: #fffaf0;
		--adm-primary-text: #011126;
		--adm-secondary-bg: #1c2735;
		--adm-secondary-text: #f5f2eb;
		--adm-secondary-border: #a8b5c6;
		--adm-transparent: transparent;
		--adm-quiet-bg: var(--adm-transparent);
		--adm-quiet-text: #c7d0dc;
		--adm-nav-bg: #1c2735;
		--adm-nav-text: #d3dce8;
		--adm-nav-active-bg: #405875;
		--adm-nav-active-text: #fffaf0;
		--adm-nav-active-border: #b7c6d8;
		--adm-focus: #ffd166;
		--adm-card-shadow: 0 4px 16px rgb(0 0 0 / 28%);
		--adm-shadow: 0 12px 48px rgb(0 0 0 / 52%);
		--adm-backdrop: rgb(0 0 0 / 78%);
	}
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; }
}

/* Ajustes de escritorio para listas densas y tablas operativas. */
@media (min-width: 1024px) {
	.ihb-adm-table caption {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.ihb-adm-table th,
	.ihb-adm-table td { padding: .5rem .55rem; }
	.ihb-adm-table-actions { flex-wrap: nowrap; gap: 8px; white-space: nowrap; }
	.ihb-adm-table-actions button { min-height: 40px; padding-block: .35rem; padding-inline: .7rem; font-size: .9rem; }
	.ihb-adm-trips-table th:nth-child(n + 3):nth-child(-n + 6),
	.ihb-adm-trips-table td:nth-child(n + 3):nth-child(-n + 6) { text-align: end; font-variant-numeric: tabular-nums; }
	.ihb-adm-trips-table td:nth-child(7) { min-width: 220px; }
	.ihb-adm-trips-table td:nth-child(7) button { min-height: 40px; padding-block: .35rem; padding-inline: .7rem; font-size: .9rem; }
	.ihb-adm-dashboard-ticket-list { display: grid; }
	.ihb-adm-dashboard-ticket-cards,
	.ihb-adm-dashboard-tickets { display: none; }
	.ihb-adm-dashboard-ticket-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding-block: .6rem; border-block-start: 1px solid var(--adm-border); }
	.ihb-adm-dashboard-ticket-detail { display: grid; min-width: 0; gap: .1rem; }
	.ihb-adm-dashboard-ticket-name { width: fit-content; color: var(--adm-text); font-weight: 750; text-decoration: none; }
	.ihb-adm-dashboard-ticket-name:hover { text-decoration: underline; }
	.ihb-adm-dashboard-ticket-context { color: var(--adm-muted); font-size: .9rem; overflow-wrap: anywhere; }
	.ihb-adm-dashboard-ticket-side { display: flex; align-items: center; gap: .75rem; white-space: nowrap; }
	.ihb-adm-dashboard-ticket-side strong { font-variant-numeric: tabular-nums; }
	.ihb-adm-dashboard-ticket-resend { min-height: 40px; padding: .35rem .7rem; border: 1px solid var(--adm-secondary-border); border-radius: var(--ihb-radio-pastilla, 999px); background: var(--adm-secondary-bg); color: var(--adm-secondary-text); font: inherit; font-size: .9rem; font-weight: 650; cursor: pointer; }
	.ihb-adm-dashboard-see-all { font-size: 0; }
	.ihb-adm-dashboard-see-all::after { content: 'Ver todos los boletos'; font-size: .95rem; }
	.ihb-adm-requests-count { margin: .25rem 0; font-size: 2rem; font-weight: 750; }
	.ihb-adm-requests-link { width: fit-content; min-height: 44px; margin-block-start: .35rem; padding: .5rem .9rem; border: 1px solid var(--adm-secondary-border); border-radius: var(--ihb-radio-pastilla, 999px); background: var(--adm-secondary-bg); color: var(--adm-secondary-text); font-weight: 650; text-decoration: none; }
}

/* Desde 1200 px: Venta, Boletos y Próximo viaje en una fila de tres; «Solicitudes nuevas», fila completa. */
@media (min-width: 1200px) {
	.ihb-adm-today-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Idioma de compra: insignia junto al pasajero y «Ventas por idioma» en Cifras.
   Usa los tokens del panel, así que el modo oscuro sale solo (insignia: 13:1 en claro, 7,3:1 en oscuro). */
.ihb-adm-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ihb-adm-passenger { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .15rem 0; min-width: 0; }
.ihb-adm-lang { display: inline-flex; flex: none; align-items: center; margin-inline-start: .45rem; padding: .05rem .45rem; border: 1px solid var(--adm-nav-active-border); border-radius: 999px; background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); font-size: .72rem; font-weight: 750; letter-spacing: .04em; line-height: 1.45; vertical-align: .1em; white-space: nowrap; }
.ihb-adm-lang--taquilla { border-color: var(--adm-secondary-border); background: var(--adm-transparent); color: var(--adm-text); font-weight: 650; letter-spacing: 0; }
.ihb-adm-lang-line { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .3rem; }
.ihb-adm-lang-name { display: inline-flex; align-items: center; gap: .45rem; min-width: 0; overflow-wrap: anywhere; }
.ihb-adm-lang-name .ihb-adm-lang { margin-inline-start: 0; min-width: 2.4rem; justify-content: center; }
.ihb-adm-lang-name.is-muted { color: var(--adm-muted); }
.ihb-adm-lang-list { display: grid; margin: 0; padding: 0; list-style: none; }
.ihb-adm-lang-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .15rem .75rem; padding-block: .7rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-lang-item .ihb-adm-lang-name { font-weight: 650; }
.ihb-adm-lang-item__amount { font-weight: 750; font-variant-numeric: tabular-nums; text-align: end; white-space: nowrap; }
.ihb-adm-lang-item__counts { grid-column: 1 / -1; color: var(--adm-muted); font-size: .9rem; }
.ihb-adm-lang-item--total { border-block-start-width: 2px; }
.ihb-adm-lang-table th[scope="row"] { background: var(--adm-transparent); font-size: inherit; font-weight: 600; }
.ihb-adm-lang-table th:nth-child(n + 2), .ihb-adm-lang-table td { text-align: end; font-variant-numeric: tabular-nums; }
.ihb-adm-lang-table tfoot th[scope="row"], .ihb-adm-lang-table tfoot td { border-block-start: 2px solid var(--adm-border); font-weight: 750; }

@media (min-width: 768px) {
	.ihb-adm-lang-list { display: none; }
	.ihb-adm-lang-card > .ihb-adm-table-wrap { display: block; }
}

/* ─── Contacto: «Llamar» y «WhatsApp» (ficha de la compra, pausa y solicitudes) ─────────────────
   Objetivo táctil de 48 px en móvil y 44 px en PC. Colores de los tokens del panel: el oscuro sale solo. */
.ihb-adm-contact { display: grid; gap: .4rem; margin-block: .5rem .75rem; }
.ihb-adm-contact__tel { margin: 0; }
.ihb-adm-contact__number, .ihb-adm-request__phone { font-variant-numeric: tabular-nums; unicode-bidi: isolate; white-space: nowrap; }
.ihb-adm-contact__actions, .ihb-adm-request__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.ihb-adm-contact__btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-width: 48px; min-height: 48px; margin: 0; padding: .5rem .75rem; border: 1px solid var(--adm-secondary-border); border-radius: var(--ihb-radio-pastilla, 999px); background: var(--adm-secondary-bg); color: var(--adm-secondary-text); font: inherit; font-weight: 650; line-height: 1.2; text-decoration: none; cursor: pointer; }
.ihb-adm-contact__btn svg { flex: none; width: 20px; height: 20px; }
.ihb-adm-contact__btn--wa { border-color: var(--adm-wa-bg); background: var(--adm-wa-bg); color: var(--adm-wa-text); }
.ihb-adm-contact__btn--wa:hover { border-color: var(--adm-wa-hover); background: var(--adm-wa-hover); }
.ihb-adm-contact__btn[aria-busy="true"] { cursor: progress; }
.ihb-adm-contact__note, .ihb-adm-request__note { margin: 0; color: var(--adm-muted); font-size: .9rem; }

/* Hoy › «Solicitudes nuevas»: las tres más antiguas, con sus acciones. */
.ihb-adm-requests-count { margin: .25rem 0; font-size: 2rem; font-weight: 750; }
.ihb-adm-request-list { display: grid; margin: .25rem 0 0; padding: 0; list-style: none; }
.ihb-adm-request { display: grid; gap: .5rem; padding-block: .85rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-request__detail { display: grid; gap: .15rem; min-width: 0; }
.ihb-adm-request__route { margin: 0; font-size: 1rem; line-height: 1.3; overflow-wrap: anywhere; }
.ihb-adm-request__who, .ihb-adm-request__meta { margin: 0; overflow-wrap: anywhere; }
.ihb-adm-request__who > span:first-child { font-weight: 650; }
.ihb-adm-request__meta { color: var(--adm-muted); font-size: .92rem; }
.ihb-adm-requests__empty { margin: .25rem 0 .5rem; color: var(--adm-muted); }
.ihb-adm-requests .ihb-adm-requests-link { margin-block-start: .5rem; }
/* Resultado de la última acción, bajo el título (vacío no ocupa sitio, pero sigue en el árbol para anunciarse). */
.ihb-adm-requests__status { margin: 0 0 .5rem; padding: .6rem .75rem; border-inline-start: 4px solid var(--adm-focus); border-radius: .25rem; background: var(--adm-nav-active-bg); color: var(--adm-nav-active-text); overflow-wrap: anywhere; }
.ihb-adm-requests__status:empty { margin: 0; padding: 0; border: 0; }
.ihb-adm-requests__status .ihb-adm-contact__btn { margin-block-start: .35rem; }
.ihb-adm-requests h2[tabindex="-1"]:focus { outline: none; }
.ihb-adm-requests h2[tabindex="-1"]:focus-visible { outline: 3px solid var(--adm-focus); outline-offset: 3px; }

/* Confirmación de «Cerrar» (la misma pregunta que la bandeja). */
.ihb-adm-confirm__context { color: var(--adm-muted); overflow-wrap: anywhere; }
.ihb-adm-confirm__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.ihb-adm-dialog .ihb-adm-confirm__actions button { margin: 0; }
.ihb-adm-dialog .ihb-adm-confirm__yes { border-color: var(--adm-primary-bg); background: var(--adm-primary-bg); color: var(--adm-primary-text); }

/* Pausa: cada pasajero afectado con su teléfono y sus botones. */
.ihb-adm-affected-list { display: grid; margin: .5rem 0 1rem; padding: 0; list-style: none; }
.ihb-adm-affected { padding-block: .6rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-affected p { margin: 0 0 .25rem; overflow-wrap: anywhere; }
.ihb-adm-affected .ihb-adm-contact { margin-block: .25rem; }

/* Cifras en móvil: «Ocupación próxima» y «Rutas con más ventas» como lista (las tablas no caben y se ocultan). */
.ihb-adm-stat-list { display: grid; margin: 0; padding: 0; list-style: none; }
.ihb-adm-stat-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: .15rem .75rem; padding-block: .7rem; border-block-start: 1px solid var(--adm-border); }
.ihb-adm-stat-item__name { font-weight: 650; overflow-wrap: anywhere; }
.ihb-adm-stat-item__figure { font-weight: 750; font-variant-numeric: tabular-nums; text-align: end; white-space: nowrap; }
.ihb-adm-stat-item__detail { grid-column: 1 / -1; color: var(--adm-muted); font-size: .9rem; }

@media (min-width: 768px) {
	.ihb-adm-stat-list { display: none; }
	.ihb-adm-today-metrics > .ihb-adm-requests { grid-column: 1 / -1; }
	.ihb-adm-request { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 1.25rem; }
	.ihb-adm-request__detail, .ihb-adm-request__note { grid-column: 1; }
	.ihb-adm-request__actions { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-end; }
}

/* Entre 768 y 1199 px hay dos columnas: «Próximo viaje» se estira para no dejar un hueco. */
@media (min-width: 768px) and (max-width: 1199px) {
	.ihb-adm-today-metrics > .ihb-adm-next { grid-column: 1 / -1; }
}

@media (min-width: 1024px) {
	.ihb-adm-contact__btn { min-width: 44px; min-height: 44px; padding: .45rem .85rem; }
}
