/**
 * Scoped front-end owner portal styles.
 * All selectors begin with tp- to avoid changing the active theme.
 */

.tp-owner-portal,
.tp-login-gate {
	/* Shared visual tokens for the owner portal and the future public theme. */
	--tp-primary: #0f7f79;
	--tp-primary-dark: #0b625e;
	--tp-primary-soft: #e9f5f2;
	--tp-primary-soft-2: #f4faf8;
	--tp-sidebar: #0b4a51;
	--tp-sidebar-deep: #083d43;
	--tp-coral: #f47b55;
	--tp-ink: #123b42;
	--tp-muted: #6e8282;
	--tp-line: #dbe7e3;
	--tp-line-strong: #cdded9;
	--tp-soft: #f5f8f6;
	--tp-white: #fff;
	--tp-green: #2f9c78;
	--tp-amber: #e9a13a;
	--tp-red: #d95763;
	font-family: inherit;
	color: var(--tp-ink);
	box-sizing: border-box;
}

.tp-owner-portal *,
.tp-owner-portal *::before,
.tp-owner-portal *::after,
.tp-login-gate *,
.tp-login-gate *::before,
.tp-login-gate *::after {
	box-sizing: border-box;
}

.tp-owner-portal a,
.tp-login-gate a {
	text-decoration: none;
}

body.tp-panel-app-page {
	min-height: 100vh;
	margin: 0 !important;
	padding: 0 !important;
	overflow-x: hidden;
	background: var(--tp-soft, #f5f8f6) !important;
}

body.tp-panel-app-page #tp-panel-app {
	width: 100%;
	min-height: 100vh;
}

body.tp-panel-app-page .tp-owner-portal {
	position: static;
	left: auto;
	width: 100%;
	max-width: none;
	margin: 0;
	transform: none;
}

body.tp-panel-app-page .tp-portal-shell {
	width: 100%;
	max-width: none;
	min-height: 100vh;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

body.admin-bar.tp-panel-app-page #tp-panel-app,
body.admin-bar.tp-panel-app-page .tp-portal-shell {
	min-height: calc(100vh - 32px);
}

.tp-owner-portal button,
.tp-owner-portal input,
.tp-owner-portal select,
.tp-owner-portal textarea {
	font: inherit;
}

.tp-portal-shell {
	display: grid;
	grid-template-columns: 246px minmax(0, 1fr);
	min-height: 760px;
	max-width: 1460px;
	width: 100%;
	margin: 16px auto;
	background: var(--tp-soft);
	border: 1px solid var(--tp-line);
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 28px 80px rgba(35, 38, 70, .1);
}

.tp-portal-sidebar {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 28px 18px 22px;
	background: linear-gradient(180deg, var(--tp-sidebar) 0%, var(--tp-sidebar-deep) 100%);
	color: #fff;
}

.tp-portal-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 8px 30px;
	color: #fff;
}

.tp-brand-mark,
.tp-login-mark {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	border-radius: 15px;
	background: linear-gradient(145deg, var(--tp-primary), #34a59a);
	box-shadow: 0 9px 24px rgba(15, 127, 121, .25);
	color: #fff;
	font-size: 18px;
	font-weight: 900;
}

/* The sidebar mark follows the white tile used in the approved dashboard. */
.tp-portal-sidebar .tp-brand-mark {
	background: #fff;
	box-shadow: 0 8px 20px rgba(0, 35, 38, .18);
	color: var(--tp-sidebar);
}

.tp-portal-brand strong,
.tp-portal-brand small {
	display: block;
}

.tp-portal-brand strong {
	font-size: 18px;
	line-height: 1.45;
}

.tp-portal-brand small {
	margin-top: 2px;
	color: #abc8c6;
	font-size: 12px;
}

.tp-portal-nav {
	display: grid;
	gap: 6px;
}

.tp-portal-nav > a {
	display: grid;
	grid-template-columns: 30px 1fr auto;
	align-items: center;
	min-height: 48px;
	padding: 8px 11px;
	border-radius: 13px;
	color: #d5e7e5;
	font-size: 14px;
	font-weight: 600;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}

.tp-portal-nav > a:hover,
.tp-portal-nav > a.is-active {
	background: rgba(255, 255, 255, .1);
	color: #fff;
	transform: translateX(-2px);
}

.tp-portal-nav > a.is-active .tp-nav-icon {
	background: var(--tp-coral);
	color: #fff;
}

.tp-portal-nav > a.is-active {
	box-shadow: inset -3px 0 0 var(--tp-coral);
}

.tp-nav-icon {
	display: grid;
	place-items: center;
	width: 25px;
	height: 25px;
	border-radius: 8px;
	background: rgba(255, 255, 255, .07);
	font-size: 14px;
}

.tp-nav-label {
	min-width: 0;
}

.tp-nav-label-mobile {
	display: none;
}

.tp-portal-nav > a small {
	padding: 3px 6px;
	border-radius: 20px;
	background: rgba(255, 255, 255, .08);
	color: #b6cecc;
	font-size: 10px;
}

.tp-sidebar-bottom {
	display: grid;
	gap: 12px;
	margin-top: auto;
	padding-top: 30px;
}

.tp-sidebar-bottom .tp-button-primary {
	background: var(--tp-coral);
	box-shadow: none;
	color: var(--tp-sidebar-deep) !important;
}

.tp-sidebar-site-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 43px;
	padding: 9px 12px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 13px;
	background: rgba(255, 255, 255, .07);
	color: #e4f1ef;
	font-size: 13px;
	font-weight: 700;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.tp-sidebar-site-link:hover {
	background: rgba(255, 255, 255, .13);
	border-color: rgba(255, 255, 255, .25);
	color: #fff;
	transform: translateY(-1px);
}

.tp-sidebar-site-icon {
	display: grid;
	place-items: center;
}

.tp-logout-link {
	padding: 7px;
	color: #abc8c6;
	font-size: 13px;
	text-align: center;
}

.tp-portal-main {
	min-width: 0;
	padding: 34px;
}

.tp-mobile-portal-header {
	display: none;
}

.tp-page-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin-bottom: 26px;
}

.tp-page-heading h1 {
	margin: 5px 0 8px;
	color: var(--tp-ink);
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 900;
	line-height: 1.35;
}

.tp-page-heading p {
	max-width: 680px;
	margin: 0;
	color: var(--tp-muted);
	font-size: 14px;
	line-height: 1.9;
}

.tp-eyebrow {
	display: inline-block;
	color: var(--tp-primary);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .02em;
}

.tp-back-link {
	display: block;
	width: max-content;
	margin-bottom: 16px;
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 19px;
	border: 1px solid transparent;
	border-radius: 12px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.tp-button:hover {
	transform: translateY(-1px);
}

.tp-button-primary {
	background: linear-gradient(135deg, var(--tp-primary), var(--tp-primary-dark));
	box-shadow: 0 10px 24px rgba(15, 127, 121, .2);
	color: #fff !important;
}

.tp-button-secondary {
	border-color: var(--tp-line);
	background: #fff;
	color: var(--tp-ink) !important;
}

.tp-button-block {
	width: 100%;
}

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

.tp-stat-card {
	position: relative;
	min-height: 118px;
	padding: 20px;
	border: 1px solid var(--tp-line);
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
}

.tp-stat-card::after {
	content: "";
	position: absolute;
	top: -25px;
	left: -18px;
	width: 85px;
	height: 85px;
	border-radius: 50%;
	background: currentColor;
	opacity: .08;
}

.tp-stat-card > span {
	display: block;
	width: 26px;
	height: 5px;
	margin-bottom: 15px;
	border-radius: 10px;
	background: currentColor;
}

.tp-stat-card strong,
.tp-stat-card small {
	display: block;
}

.tp-stat-card strong {
	color: var(--tp-ink);
	font-size: 25px;
	font-weight: 900;
	line-height: 1.2;
}

.tp-stat-card small {
	margin-top: 7px;
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-stat-purple { color: var(--tp-primary); }
.tp-stat-amber { color: var(--tp-amber); }
.tp-stat-red { color: var(--tp-red); }
.tp-stat-green { color: var(--tp-green); }

.tp-dashboard-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
	gap: 18px;
}

.tp-panel-card {
	padding: 22px;
	border: 1px solid var(--tp-line);
	border-radius: 20px;
	background: #fff;
}

.tp-card-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 18px;
}

.tp-card-heading h2 {
	margin: 0 0 3px;
	color: var(--tp-ink);
	font-size: 18px;
	font-weight: 900;
}

.tp-card-heading p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 12px;
}

.tp-card-heading > a {
	color: var(--tp-primary);
	font-size: 12px;
	font-weight: 800;
}

.tp-business-card {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 13px 0;
	border-top: 1px solid var(--tp-line);
}

.tp-business-card:first-of-type {
	padding-top: 0;
	border-top: 0;
}

.tp-business-thumb {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	flex: 0 0 58px;
	border-radius: 15px;
	background: var(--tp-primary-soft);
	overflow: hidden;
	color: var(--tp-primary);
	font-size: 21px;
	font-weight: 900;
}

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

/* Paid-subscription marker on owner business cards. */
.tp-business-card.has-subscription .tp-business-thumb {
	position: relative;
	overflow: visible;
}

.tp-business-card.has-subscription .tp-business-thumb > img,
.tp-business-card.has-subscription .tp-business-thumb > span:not(.tp-business-subscription-icon) {
	border-radius: inherit;
	overflow: hidden;
}

.tp-business-subscription-icon {
	position: absolute;
	top: -7px;
	left: -7px;
	display: grid;
	place-items: center;
	width: 25px;
	height: 25px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: #138b73;
	box-shadow: 0 5px 12px rgba(17, 78, 70, .18);
	color: #fff;
	font-size: 11px;
	line-height: 1;
	z-index: 2;
}

.tp-business-status-line {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.tp-business-subscription-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	width: max-content;
	max-width: 100%;
	padding: 4px 8px;
	border-radius: 30px;
	background: #eaf8f4;
	color: #14765f;
	font-size: 10px;
	font-weight: 900;
	white-space: nowrap;
}

.tp-business-subscription-badge > span {
	font-size: 10px;
	line-height: 1;
}

.tp-business-subscription-badge.is-warning,
.tp-business-subscription-icon.is-warning {
	background: #fff4dc;
	color: #a96c08;
}

.tp-business-subscription-icon.is-warning {
	background: #e9a133;
	color: #fff;
}

.tp-business-subscription-badge.is-urgent,
.tp-business-subscription-icon.is-urgent {
	background: #fff0f1;
	color: #b7404d;
}

.tp-business-subscription-icon.is-urgent {
	background: #d95361;
	color: #fff;
}

.tp-business-card-body {
	min-width: 0;
	flex: 1;
}

.tp-business-card h3 {
	margin: 5px 0 2px;
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 900;
}

.tp-business-card p {
	margin: 0;
	overflow: hidden;
	color: var(--tp-muted);
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tp-business-card-body > div:last-child {
	display: flex;
	gap: 12px;
	margin-top: 7px;
}

.tp-business-card-body > div:last-child a {
	color: var(--tp-primary);
	font-size: 11px;
	font-weight: 800;
}

.tp-status {
	display: inline-flex;
	align-items: center;
	width: max-content;
	padding: 4px 8px;
	border-radius: 30px;
	font-size: 10px;
	font-weight: 900;
}

.tp-status-approved { background: #e9f8f2; color: #14805a; }
.tp-status-pending { background: #fff5df; color: #b6750c; }
.tp-status-needs_changes { background: #fff0f2; color: #bc3c4b; }
.tp-status-processing { background: #eef4ff; color: #2956a3; }
.tp-portal-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 18px; }
.tp-portal-pagination .page-numbers { align-items: center; background: #fff; border: 1px solid #dfe8e5; border-radius: 8px; color: #285b5b; display: inline-flex; height: 36px; justify-content: center; min-width: 36px; padding: 0 8px; text-decoration: none; }
.tp-portal-pagination .page-numbers.current { background: #0f7f79; border-color: #0f7f79; color: #fff; }
.tp-status-rejected { background: #f1f1f5; color: #6e7080; }

.tp-request-row {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	align-items: center;
	gap: 11px;
	padding: 13px 0;
	border-top: 1px solid var(--tp-line);
}

.tp-request-row:first-of-type {
	padding-top: 0;
	border-top: 0;
}

.tp-request-symbol {
	display: grid;
	place-items: center;
	width: 35px;
	height: 35px;
	border-radius: 11px;
	background: var(--tp-soft);
	color: var(--tp-primary);
	font-size: 14px;
	font-weight: 900;
}

.tp-request-main {
	min-width: 0;
}

.tp-request-main h3 {
	margin: 0 0 3px;
	overflow: hidden;
	color: var(--tp-ink);
	font-size: 13px;
	font-weight: 900;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tp-request-main p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 11px;
}

.tp-request-main blockquote {
	margin: 8px 0 0;
	padding: 7px 10px;
	border: 0;
	border-right: 2px solid var(--tp-amber);
	background: #fff9ec;
	color: #7d642e;
	font-size: 11px;
	line-height: 1.8;
}

.tp-request-action {
	display: grid;
	justify-items: end;
	gap: 7px;
}

.tp-request-action > a {
	color: var(--tp-primary);
	font-size: 11px;
	font-weight: 800;
}

.tp-full-request-list .tp-request-row {
	padding: 17px 0;
}

.tp-business-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 22px;
}

.tp-business-grid .tp-business-card:nth-child(2) {
	padding-top: 0;
	border-top: 0;
}

.tp-empty-state,
.tp-empty-compact {
	display: grid;
	justify-items: center;
	padding: 28px 12px;
	text-align: center;
}

.tp-empty-state > span,
.tp-empty-compact > span {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin-bottom: 9px;
	border-radius: 13px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 20px;
}

.tp-empty-state h3 {
	margin: 3px 0;
	font-size: 15px;
}

.tp-empty-state p,
.tp-empty-compact p {
	margin: 0 0 13px;
	color: var(--tp-muted);
	font-size: 12px;
	line-height: 1.8;
}

.tp-coming-soon {
	display: grid;
	justify-items: center;
	max-width: 650px;
	margin: 90px auto;
	padding: 55px;
	text-align: center;
}

.tp-coming-soon > span {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin-bottom: 16px;
	border-radius: 21px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 25px;
}

.tp-coming-soon small {
	color: var(--tp-primary);
	font-weight: 900;
}

.tp-coming-soon h1 {
	margin: 8px 0;
	font-size: 25px;
}

.tp-coming-soon p {
	margin: 0 0 20px;
	color: var(--tp-muted);
	font-size: 14px;
	line-height: 2;
}

/* Subscription cards: payment is intentionally disabled until checkout is connected. */
.tp-subscription-page {
	display: grid;
	gap: 20px;
	max-width: 1180px;
	margin: 0 auto;
}

.tp-subscription-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	align-items: center;
	gap: 24px;
	padding: 27px 30px;
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: 22px;
	background: linear-gradient(135deg, #fff 0%, var(--tp-primary-soft-2) 100%);
}

.tp-subscription-hero::after {
	position: absolute;
	top: -65px;
	left: -45px;
	width: 170px;
	height: 170px;
	border-radius: 50%;
	background: rgba(244, 123, 85, .08);
	content: "";
	pointer-events: none;
}

.tp-subscription-kicker {
	display: inline-flex;
	width: max-content;
	margin-bottom: 9px;
	padding: 5px 10px;
	border-radius: 999px;
	background: #fff0ea;
	color: #bf5738;
	font-size: 11px;
	font-weight: 900;
}

.tp-subscription-hero h1 {
	margin: 0;
	color: var(--tp-ink);
	font-size: clamp(24px, 2.5vw, 34px);
	font-weight: 950;
	line-height: 1.45;
}

.tp-subscription-hero > div:first-child > p {
	max-width: 690px;
	margin: 8px 0 0;
	color: var(--tp-muted);
	font-size: 13px;
	line-height: 1.9;
}

.tp-subscription-free-note {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 15px;
	border: 1px solid #cfe6de;
	border-radius: 16px;
	background: rgba(255, 255, 255, .82);
}

.tp-subscription-free-note > span {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	border-radius: 12px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 18px;
	font-weight: 900;
}

.tp-subscription-free-note p,
.tp-subscription-notes p {
	margin: 0;
}

.tp-subscription-free-note strong,
.tp-subscription-free-note small,
.tp-subscription-notes strong,
.tp-subscription-notes small {
	display: block;
}

.tp-subscription-free-note strong {
	font-size: 13px;
}

.tp-subscription-free-note small {
	margin-top: 3px;
	color: var(--tp-muted);
	font-size: 10px;
	line-height: 1.7;
}

.tp-subscription-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 16px;
	min-width: 0;
	margin: 0;
	padding-top: 6px;
	padding-right: 0;
	padding-left: 0;
	padding-bottom: 0;
	border: 0;
}

.tp-subscription-legend,
.tp-subscription-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.tp-subscription-plan {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 555px;
	flex-direction: column;
	padding: 22px;
	border: 1px solid var(--tp-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 14px 38px rgba(18, 59, 66, .06);
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tp-subscription-plan:hover {
	border-color: #bcd4cd;
	box-shadow: 0 18px 45px rgba(18, 59, 66, .1);
	transform: translateY(-3px);
}

.tp-subscription-radio:checked + .tp-subscription-plan {
	border: 2px solid var(--tp-coral);
	box-shadow: 0 20px 50px rgba(244, 123, 85, .14);
	transform: translateY(-6px);
}

.tp-subscription-radio:checked + .tp-subscription-plan:hover {
	transform: translateY(-8px);
}

.tp-subscription-radio:focus-visible + .tp-subscription-plan {
	outline: 3px solid rgba(244, 123, 85, .3);
	outline-offset: 3px;
}

.tp-subscription-plan-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 27px;
}

.tp-subscription-plan-badge,
.tp-subscription-recommended {
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: 100%;
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 900;
	line-height: 1.5;
}

.tp-subscription-plan-badge {
	background: var(--tp-primary-soft);
	color: var(--tp-primary-dark);
}

.tp-subscription-recommended {
	background: var(--tp-coral);
	color: #fff;
}

.tp-subscription-plan h2 {
	margin: 18px 0 6px;
	color: var(--tp-ink);
	font-size: 24px;
	font-weight: 950;
}

.tp-subscription-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	direction: rtl;
	white-space: nowrap;
}

.tp-subscription-price strong {
	color: var(--tp-ink);
	font-size: clamp(27px, 2.5vw, 35px);
	font-weight: 950;
	letter-spacing: -.5px;
}

.tp-subscription-price span {
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 700;
}

.tp-subscription-monthly,
.tp-subscription-saving {
	margin: 5px 0 0;
	font-size: 11px;
	line-height: 1.7;
}

.tp-subscription-monthly {
	color: var(--tp-muted);
}

.tp-subscription-saving {
	min-height: 19px;
	color: #25825f;
	font-weight: 850;
}

.tp-subscription-saving.is-empty {
	visibility: hidden;
}

.tp-subscription-credit {
	display: grid;
	gap: 5px;
	margin-top: 18px;
	padding: 13px 14px;
	border: 1px solid #cfe9de;
	border-radius: 15px;
	background: #eef9f4;
}

.tp-subscription-credit > span {
	color: #35735f;
	font-size: 10px;
	font-weight: 800;
}

.tp-subscription-credit strong {
	color: #166b4e;
	font-size: 19px;
	font-weight: 950;
}

.tp-subscription-credit strong small {
	font-size: 10px;
	font-weight: 700;
}

.tp-subscription-plan ul {
	display: grid;
	gap: 10px;
	margin: 18px 0 22px;
	padding: 0;
	list-style: none;
}

.tp-subscription-plan li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	color: #486769;
	font-size: 11px;
	font-weight: 650;
	line-height: 1.75;
}

.tp-subscription-plan li > span {
	display: grid;
	place-items: center;
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	margin-top: 1px;
	border-radius: 6px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 10px;
	font-weight: 950;
}

.tp-subscription-payment-state {
	display: grid;
	place-items: center;
	width: 100%;
	min-height: 46px;
	margin-top: auto;
	padding: 10px 13px;
	border: 1px solid #d7e1df;
	border-radius: 13px;
	background: #eef2f1;
	color: #71817f;
	cursor: not-allowed;
	font-size: 12px;
	font-weight: 900;
	opacity: 1;
}

.tp-subscription-radio:checked + .tp-subscription-plan .tp-subscription-payment-state {
	border-color: #f3c1b1;
	background: #fff1ec;
	color: #b45d43;
}

.tp-subscription-notes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.tp-subscription-notes > div {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 13px 14px;
	border: 1px solid var(--tp-line);
	border-radius: 15px;
	background: rgba(255, 255, 255, .72);
}

.tp-subscription-notes > div > span {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	border-radius: 10px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 14px;
	font-weight: 900;
}

.tp-subscription-notes strong {
	color: var(--tp-ink);
	font-size: 11px;
}

.tp-subscription-notes small {
	margin-top: 2px;
	color: var(--tp-muted);
	font-size: 9px;
	line-height: 1.6;
}

.tp-subscription-footnote {
	margin: -4px 0 0;
	color: var(--tp-muted);
	font-size: 10px;
	line-height: 1.8;
	text-align: center;
}

.tp-portal-notice {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	padding: 13px 16px;
	border: 1px solid;
	border-radius: 14px;
}

.tp-portal-notice span {
	display: grid;
	place-items: center;
	width: 25px;
	height: 25px;
	flex: 0 0 25px;
	border-radius: 50%;
	background: currentColor;
	color: #fff;
	font-size: 11px;
	font-weight: 900;
}

.tp-portal-notice p {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
}

.tp-portal-notice.is-success { border-color: #bce8d8; background: #effbf7; color: #147a57; }
.tp-portal-notice.is-error { border-color: #f0c4ca; background: #fff3f4; color: #ad3f4c; }

/* Registration form */
.tp-form-page-heading {
	align-items: flex-end;
}

.tp-registration-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 245px;
	align-items: start;
	gap: 18px;
}

.tp-registration-form {
	padding: 24px;
	border: 1px solid var(--tp-line);
	border-radius: 22px;
	background: #fff;
}

.tp-form-progress {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	margin: 0 0 30px;
	padding: 0;
	list-style: none;
}

.tp-form-progress li {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 6px;
	color: #8fa3a2;
	font-size: 11px;
	text-align: center;
}

.tp-form-progress li::before {
	content: "";
	position: absolute;
	top: 13px;
	right: -50%;
	width: 100%;
	height: 2px;
	background: var(--tp-line);
}

.tp-form-progress li:first-child::before {
	display: none;
}

.tp-form-progress li span {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border: 2px solid var(--tp-line);
	border-radius: 50%;
	background: #fff;
	color: #819796;
	font-size: 11px;
	font-weight: 900;
}

.tp-form-progress li.is-active,
.tp-form-progress li.is-complete {
	color: var(--tp-primary);
	font-weight: 800;
}

.tp-form-progress li.is-active span,
.tp-form-progress li.is-complete span {
	border-color: var(--tp-primary);
	background: var(--tp-primary);
	color: #fff;
}

.tp-form-progress li.is-complete::before,
.tp-form-progress li.is-active::before {
	background: var(--tp-primary);
}

.tp-registration-form.is-enhanced .tp-form-step {
	display: none;
}

.tp-registration-form.is-enhanced .tp-form-step.is-active {
	display: block;
	animation: tpStepIn .25s ease both;
}

@keyframes tpStepIn {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}

.tp-step-heading {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 22px;
}

.tp-step-heading > span {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	border-radius: 12px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 14px;
	font-weight: 900;
}

.tp-step-heading h2 {
	margin: 0 0 4px;
	color: var(--tp-ink);
	font-size: 20px;
	font-weight: 900;
}

.tp-step-heading p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 12px;
	line-height: 1.8;
}

.tp-field-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 17px 14px;
}

.tp-member-profile-fields {
	margin-bottom: 22px;
	padding: 16px;
	border: 1px solid #f2d5ca;
	border-radius: 15px;
	background: #fff8f4;
}

.tp-member-profile-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 13px;
}

.tp-member-profile-heading strong,
.tp-member-profile-heading small {
	display: block;
}

.tp-member-profile-heading strong {
	color: var(--tp-ink);
	font-size: 13px;
	font-weight: 900;
}

.tp-member-profile-heading small {
	margin-top: 3px;
	color: var(--tp-muted);
	font-size: 11px;
	line-height: 1.8;
}

.tp-member-profile-heading > span {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border-radius: 11px;
	background: rgba(244, 123, 85, .14);
	color: #c75331;
	font-size: 15px;
	font-weight: 900;
}

.tp-business-main-fields {
	padding-top: 2px;
}

.tp-business-main-fields > .tp-member-profile-heading {
	padding-bottom: 10px;
	border-bottom: 1px solid var(--tp-line);
}

.tp-field {
	display: grid;
	align-content: start;
	gap: 6px;
	margin: 0;
}

.tp-field-wide {
	grid-column: 1 / -1;
}

.tp-field > span {
	color: var(--tp-ink);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.7;
}

.tp-field > span b {
	color: var(--tp-red);
}

.tp-field input,
.tp-field select,
.tp-field textarea {
	width: 100%;
	min-height: 45px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--tp-line-strong);
	border-radius: 11px;
	outline: 0;
	background: #fff;
	box-shadow: none;
	color: var(--tp-ink);
	font-size: 14px;
	line-height: 1.7;
	transition: border .2s ease, box-shadow .2s ease;
}

.tp-field textarea {
	resize: vertical;
}

.tp-field input:focus,
.tp-field select:focus,
.tp-field textarea:focus {
	border-color: var(--tp-primary);
	box-shadow: 0 0 0 3px rgba(15, 127, 121, .11);
}

.tp-owner-portal [data-tp-verified-phone] {
	background: #eef5f2;
	color: var(--tp-ink);
	cursor: not-allowed;
	font-weight: 700;
}

.tp-field small {
	color: #809493;
	font-size: 11px;
	line-height: 1.7;
}

.tp-field.is-invalid input,
.tp-field.is-invalid select,
.tp-field.is-invalid textarea,
.tp-confirm-row.is-invalid {
	border-color: var(--tp-red);
	box-shadow: 0 0 0 3px rgba(217, 82, 99, .08);
}

.tp-input-prefix {
	display: flex;
	direction: ltr;
	align-items: stretch;
}

.tp-input-prefix > span {
	display: grid;
	place-items: center;
	width: 40px;
	border: 1px solid var(--tp-line-strong);
	border-right: 0;
	border-radius: 11px 0 0 11px;
	background: var(--tp-soft);
	color: var(--tp-muted);
	font-size: 12px;
}

.tp-input-prefix input {
	border-radius: 0 11px 11px 0;
}

.tp-upload-box {
	display: block;
	cursor: pointer;
}

.tp-upload-box > input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.tp-upload-preview {
	display: grid;
	place-items: center;
	min-height: 245px;
	padding: 20px;
	border: 2px dashed #b7d1ce;
	border-radius: 18px;
	background: var(--tp-primary-soft-2);
	overflow: hidden;
	text-align: center;
}

.tp-upload-preview:hover {
	border-color: var(--tp-primary);
}

.tp-upload-preview > b {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: 10px;
	border-radius: 15px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 19px;
}

.tp-upload-preview > strong,
.tp-upload-preview > small {
	display: block;
}

.tp-upload-preview > strong {
	font-size: 14px;
}

.tp-upload-preview > small {
	margin-top: 5px;
	color: var(--tp-muted);
	font-size: 11px;
}

.tp-upload-preview img {
	max-width: 100%;
	max-height: 230px;
	border-radius: 13px;
	object-fit: contain;
}

.tp-field-note {
	margin: 9px 0 0;
	color: var(--tp-muted);
	font-size: 11px;
	text-align: center;
}

.tp-review-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}

.tp-review-item {
	padding: 12px;
	border: 1px solid var(--tp-line);
	border-radius: 11px;
	background: var(--tp-soft);
}

.tp-review-item small,
.tp-review-item strong {
	display: block;
}

.tp-review-item small {
	margin-bottom: 4px;
	color: var(--tp-muted);
	font-size: 11px;
}

.tp-review-item strong {
	overflow: hidden;
	font-size: 13px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tp-confirm-row {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 13px;
	border: 1px solid var(--tp-line);
	border-radius: 11px;
	cursor: pointer;
}

.tp-confirm-row input {
	margin-top: 3px;
	accent-color: var(--tp-primary);
}

.tp-confirm-row span {
	font-size: 13px;
	line-height: 1.8;
}

.tp-submit-note {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	padding: 12px;
	border-radius: 11px;
	background: #fff9ec;
	color: #7d642e;
}

.tp-submit-note > span {
	font-size: 17px;
}

.tp-submit-note p,
.tp-submit-note strong,
.tp-submit-note small {
	display: block;
	margin: 0;
}

.tp-submit-note strong { font-size: 13px; }
.tp-submit-note small { margin-top: 2px; font-size: 11px; }

.tp-form-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 28px;
	padding-top: 18px;
	border-top: 1px solid var(--tp-line);
}

.tp-form-actions [hidden] {
	display: none !important;
}

.tp-form-step-count {
	margin: 0 auto;
	color: var(--tp-muted);
	font-size: 12px;
}

.tp-form-step-count b {
	color: var(--tp-primary);
}

.tp-form-help {
	display: grid;
	gap: 11px;
	position: sticky;
	top: 25px;
}

.tp-help-card {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 15px;
	border: 1px solid var(--tp-line);
	border-radius: 15px;
	background: #fff;
}

.tp-help-card > span {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	border-radius: 10px;
	background: var(--tp-primary-soft);
	color: var(--tp-primary);
	font-size: 12px;
	font-weight: 900;
}

.tp-help-card h3 {
	margin: 0 0 3px;
	font-size: 13px;
	font-weight: 900;
}

.tp-help-card p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 11px;
	line-height: 1.8;
}

.tp-honeypot {
	/* Keep the anti-bot field in the DOM without pushing RTL/tablet layouts off-canvas. */
	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;
	opacity: 0 !important;
	pointer-events: none !important;
}

.tp-standalone-registration {
	max-width: 1120px;
	margin: 30px auto;
}

.tp-login-gate {
	display: grid;
	justify-items: center;
	max-width: 540px;
	margin: 70px auto;
	padding: 55px 35px;
	border: 1px solid var(--tp-line);
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(35, 38, 70, .1);
	text-align: center;
}

.tp-login-gate .tp-login-mark {
	width: 58px;
	height: 58px;
	margin-bottom: 18px;
	border-radius: 19px;
}

.tp-login-gate h2 {
	margin: 0 0 7px;
	font-size: 24px;
	font-weight: 900;
}

.tp-login-gate p {
	margin: 0 0 21px;
	color: var(--tp-muted);
	font-size: 14px;
	line-height: 1.9;
}

@media (max-width: 1100px) {
	.tp-portal-shell { grid-template-columns: 210px minmax(0, 1fr); }
	.tp-portal-main { padding: 26px; }
	.tp-dashboard-grid { grid-template-columns: 1fr; }
	.tp-registration-layout { grid-template-columns: 1fr; }
	.tp-form-help { grid-template-columns: repeat(3, minmax(0, 1fr)); position: static; }
	.tp-subscription-hero { grid-template-columns: 1fr; }
	.tp-subscription-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tp-subscription-radio:checked + .tp-subscription-plan { transform: none; }
	.tp-subscription-radio:checked + .tp-subscription-plan:hover { transform: translateY(-3px); }
}

@media (min-width: 821px) {
	/* Break out of narrow theme content columns only on desktop. */
	.tp-owner-portal {
		position: relative;
		left: 50%;
		width: min(1460px, calc(100vw - 48px));
		max-width: none;
		transform: translateX(-50%);
	}
}

@media (max-width: 820px) {
	.tp-portal-shell {
		display: block;
		margin: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.tp-portal-sidebar {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 20;
		display: block;
		min-height: 0;
		padding: 8px 10px max(8px, env(safe-area-inset-bottom));
		border-radius: 18px 18px 0 0;
	}

	.tp-portal-brand,
	.tp-sidebar-bottom {
		display: none;
	}

	.tp-portal-nav {
		display: grid;
		grid-template-columns: repeat(6, minmax(0, 1fr));
		overflow: visible;
		gap: 2px;
	}

	.tp-portal-nav > a {
		display: grid;
		grid-template-columns: 1fr;
		justify-items: center;
		min-width: 0;
		min-height: 58px;
		padding: 6px 2px 5px;
		border: 0 !important;
		border-radius: 10px;
		outline: 0;
		background: transparent;
		box-shadow: none;
		font-size: 9px;
		line-height: 1.25;
		transform: none;
	}

	.tp-portal-nav > a:hover {
		background: rgba(255, 255, 255, .07);
		transform: none;
	}

	.tp-portal-nav > a.is-active {
		background: rgba(255, 255, 255, .1);
		box-shadow: inset 0 3px 0 var(--tp-coral);
		transform: none;
	}

	.tp-portal-nav > a:focus-visible {
		outline: 2px solid var(--tp-coral);
		outline-offset: -2px;
	}

	.tp-nav-icon { width: 24px; height: 24px; }
	.tp-nav-label {
		display: block;
		width: 100%;
		overflow: hidden;
		white-space: nowrap;
		text-align: center;
		text-overflow: ellipsis;
	}
	.tp-nav-label-desktop { display: none; }
	.tp-nav-label-mobile { display: block; }
	.tp-portal-nav > a small { display: none; }

	.tp-portal-main {
		min-height: calc(100vh - 70px);
		padding: 18px 16px 95px;
	}

	.tp-mobile-portal-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 22px;
		padding-bottom: 14px;
		border-bottom: 1px solid var(--tp-line);
	}

	.tp-mobile-portal-header small,
	.tp-mobile-portal-header strong { display: block; }
	.tp-mobile-portal-header small { color: var(--tp-muted); font-size: 11px; }
	.tp-mobile-portal-header strong { margin-top: 2px; font-size: 14px; }
	.tp-mobile-portal-identity { min-width: 0; }
	.tp-mobile-portal-actions { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
	.tp-mobile-action {
		display: grid;
		place-items: center;
		width: 36px;
		height: 36px;
		border: 1px solid var(--tp-line);
		border-radius: 12px;
		background: #fff;
		color: var(--tp-sidebar);
		box-shadow: 0 6px 18px rgba(11, 74, 81, .08);
	}
	.tp-mobile-action:hover { color: var(--tp-primary); border-color: rgba(15, 127, 121, .25); }
	.tp-mobile-action-add { border-color: transparent; background: var(--tp-primary); color: #fff; font-size: 20px; font-weight: 700; }
	.tp-mobile-action-add:hover { color: #fff; background: var(--tp-sidebar); }
	.tp-mobile-action-logout { color: #c34e56; }

	.tp-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tp-business-grid { grid-template-columns: 1fr; }
	.tp-business-grid .tp-business-card:nth-child(2) { padding-top: 13px; border-top: 1px solid var(--tp-line); }
	.tp-form-help { grid-template-columns: 1fr; }
	.tp-registration-form { padding: 18px; }
	.tp-subscription-grid,
	.tp-subscription-notes { grid-template-columns: 1fr; }
	.tp-subscription-plan { min-height: 0; }
}

@media screen and (max-width: 782px) {
	body.admin-bar.tp-panel-app-page #tp-panel-app,
	body.admin-bar.tp-panel-app-page .tp-portal-shell {
		min-height: calc(100vh - 46px);
	}
}

@media (max-width: 580px) {
	.tp-page-heading { align-items: flex-start; }
	.tp-page-heading > .tp-button { display: none; }
	.tp-page-heading h1 { font-size: 27px; }
	.tp-stats-grid { gap: 9px; }
	.tp-stat-card { min-height: 104px; padding: 16px; }
	.tp-stat-card strong { font-size: 21px; }
	.tp-panel-card { padding: 17px; border-radius: 16px; }
	.tp-request-row { grid-template-columns: 34px minmax(0, 1fr); }
	.tp-request-action { grid-column: 2; grid-row: 2; justify-items: start; display: flex; align-items: center; }
	.tp-form-progress li small { display: none; }
	.tp-form-progress li::before { top: 11px; }
	.tp-form-progress li span { width: 24px; height: 24px; }
	.tp-field-grid,
	.tp-review-summary { grid-template-columns: 1fr; }
	.tp-member-profile-fields { padding: 14px; }
	.tp-field-wide { grid-column: auto; }
	.tp-upload-preview { min-height: 205px; }
	.tp-form-actions { flex-wrap: wrap; }
	.tp-form-actions .tp-button { min-width: 110px; }
	.tp-form-step-count { order: 3; width: 100%; text-align: center; }
	.tp-coming-soon { margin: 30px auto; padding: 35px 20px; }
	.tp-subscription-page { gap: 14px; }
	.tp-subscription-hero { gap: 16px; padding: 20px 18px; border-radius: 17px; }
	.tp-subscription-hero h1 { font-size: 24px; }
	.tp-subscription-plan { padding: 19px; border-radius: 18px; }
	.tp-subscription-plan h2 { font-size: 22px; }
	.tp-subscription-price strong { font-size: 30px; }
	.tp-subscription-notes > div { padding: 12px; }
	.tp-login-gate { margin: 30px 15px; padding: 40px 22px; }
}

/* Core 0.8.1 — native card-to-card checkout and subscription history. */
.tp-owner-portal .tp-subscription-business-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 18px; border:1px solid var(--tp-line); border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(17,63,64,.05); }
.tp-owner-portal .tp-subscription-business-bar > div span,
.tp-owner-portal .tp-subscription-business-bar > div strong { display:block; }
.tp-owner-portal .tp-subscription-business-bar > div span { margin-bottom:3px; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-subscription-business-bar > div strong { color:var(--tp-ink); font-size:15px; }
.tp-owner-portal .tp-subscription-business-bar select { min-width:230px; height:44px; padding:0 13px; border:1px solid var(--tp-line-strong); border-radius:11px; outline:0; background:#fff; color:var(--tp-ink); font:inherit; font-size:12px; font-weight:800; }
.tp-owner-portal .tp-subscription-business-bar select:focus { border-color:var(--tp-primary); box-shadow:0 0 0 3px rgba(15,127,121,.1); }
.tp-owner-portal .tp-current-subscription { display:grid; grid-template-columns:auto repeat(3,minmax(0,1fr)); align-items:center; gap:16px; padding:16px 18px; border:1px solid rgba(15,127,121,.18); border-radius:16px; background:linear-gradient(135deg,#ecf8f4,#fff); }
.tp-owner-portal .tp-current-subscription > span { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:var(--tp-primary); color:#fff; font-size:21px; }
.tp-owner-portal .tp-current-subscription > div { padding-right:14px; border-right:1px solid rgba(15,127,121,.15); }
.tp-owner-portal .tp-current-subscription small,
.tp-owner-portal .tp-current-subscription strong { display:block; }
.tp-owner-portal .tp-current-subscription small { margin-bottom:3px; color:var(--tp-muted); font-size:10px; }
.tp-owner-portal .tp-current-subscription strong { color:var(--tp-primary-dark); font-size:12px; }
.tp-owner-portal .tp-payment-unavailable { display:flex; align-items:center; gap:12px; padding:13px 15px; border:1px solid #f0d6a6; border-radius:13px; background:#fff9ed; }
.tp-owner-portal .tp-payment-unavailable > span { display:grid; place-items:center; flex:0 0 auto; width:31px; height:31px; border-radius:10px; background:#e9a842; color:#fff; font-weight:900; }
.tp-owner-portal .tp-payment-unavailable p,
.tp-owner-portal .tp-payment-unavailable strong,
.tp-owner-portal .tp-payment-unavailable small { display:block; margin:0; }
.tp-owner-portal .tp-payment-unavailable strong { color:#805b24; font-size:12px; }
.tp-owner-portal .tp-payment-unavailable small { margin-top:2px; color:#9b7a47; font-size:10px; }
.tp-owner-portal .tp-payment-open-notice { display:flex; align-items:center; gap:11px; padding:12px 14px; border:1px solid #d8e6f1; border-radius:13px; background:#f2f8fd; }
.tp-owner-portal .tp-payment-open-notice > span { display:grid; place-items:center; flex:0 0 auto; width:32px; height:32px; border-radius:10px; background:#dcecf8; color:#2d6c98; }
.tp-owner-portal .tp-payment-open-notice p,
.tp-owner-portal .tp-payment-open-notice strong,
.tp-owner-portal .tp-payment-open-notice small { display:block; margin:0; }
.tp-owner-portal .tp-payment-open-notice strong { color:#285f86; font-size:11px; }
.tp-owner-portal .tp-payment-open-notice small { margin-top:2px; color:#67859a; font-size:9px; }
.tp-owner-portal .tp-payment-open-notice a { margin-right:auto; color:#216994; font-size:10px; font-weight:900; white-space:nowrap; }
.tp-owner-portal .tp-subscription-order-form { display:grid; gap:14px; }
.tp-owner-portal .tp-subscription-order-form fieldset:disabled { opacity:.62; }
.tp-owner-portal .tp-subscription-continue { justify-self:center; min-width:280px; min-height:50px; font-size:13px; }
.tp-owner-portal .tp-subscription-empty { display:grid; justify-items:center; padding:40px 20px; text-align:center; }
.tp-owner-portal .tp-subscription-empty > span { display:grid; place-items:center; width:58px; height:58px; margin-bottom:13px; border-radius:19px; background:var(--tp-primary-soft-2); color:var(--tp-primary); font-size:25px; }
.tp-owner-portal .tp-subscription-empty h2 { margin:0; color:var(--tp-ink); font-size:20px; }
.tp-owner-portal .tp-subscription-empty p { max-width:540px; margin:8px 0 17px; color:var(--tp-muted); font-size:12px; line-height:1.9; }
.tp-owner-portal .tp-payment-checkout { padding:0; overflow:hidden; scroll-margin-top:18px; }
.tp-owner-portal .tp-payment-checkout-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px; border-bottom:1px solid var(--tp-line); background:linear-gradient(135deg,#f7fbfa,#fff); }
.tp-owner-portal .tp-payment-order-number { display:inline-flex; padding:4px 8px; border-radius:7px; direction:ltr; background:#eaf5f2; color:var(--tp-primary); font-size:10px; font-weight:900; letter-spacing:.5px; }
.tp-owner-portal .tp-payment-checkout-head h2 { margin:7px 0 2px; color:var(--tp-ink); font-size:19px; }
.tp-owner-portal .tp-payment-checkout-head p { margin:0; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-payment-status { display:inline-flex; align-items:center; min-height:31px; padding:0 10px; border-radius:999px; font-size:10px; font-style:normal; font-weight:900; white-space:nowrap; }
.tp-owner-portal .tp-payment-status.is-awaiting_receipt { background:#fff2d8; color:#936217; }
.tp-owner-portal .tp-payment-status.is-pending_review { background:#e7f2ff; color:#28689f; }
.tp-owner-portal .tp-payment-status.is-needs_changes { background:#fff0e9; color:#b55c39; }
.tp-owner-portal .tp-payment-status.is-approved { background:#e5f7ed; color:#18764a; }
.tp-owner-portal .tp-payment-status.is-rejected,
.tp-owner-portal .tp-payment-status.is-expired { background:#f6e9e8; color:#a64d46; }
.tp-owner-portal .tp-payment-steps { display:grid; grid-template-columns:auto minmax(20px,1fr) auto minmax(20px,1fr) auto; align-items:center; max-width:700px; margin:0 auto; padding:22px; }
.tp-owner-portal .tp-payment-steps > div { display:grid; justify-items:center; gap:5px; color:#9aabaa; }
.tp-owner-portal .tp-payment-steps > div span { display:grid; place-items:center; width:33px; height:33px; border:2px solid #dbe5e3; border-radius:50%; background:#fff; font-size:11px; font-weight:900; }
.tp-owner-portal .tp-payment-steps > div small { font-size:9px; font-weight:800; white-space:nowrap; }
.tp-owner-portal .tp-payment-steps > i { height:2px; margin:0 8px 18px; background:#dbe5e3; }
.tp-owner-portal .tp-payment-steps > div.is-done span { border-color:var(--tp-primary); background:var(--tp-primary); color:#fff; }
.tp-owner-portal .tp-payment-steps > div.is-active span { border-color:var(--tp-accent,#f47b55); color:var(--tp-accent,#f47b55); box-shadow:0 0 0 5px rgba(244,123,85,.1); }
.tp-owner-portal .tp-payment-steps > div.is-done,
.tp-owner-portal .tp-payment-steps > div.is-active { color:var(--tp-ink); }
.tp-owner-portal .tp-payment-review-note { margin:0 22px 20px; padding:14px 16px; border-radius:12px; }
.tp-owner-portal .tp-payment-review-note strong,
.tp-owner-portal .tp-payment-review-note p { display:block; margin:0; }
.tp-owner-portal .tp-payment-review-note strong { font-size:12px; }
.tp-owner-portal .tp-payment-review-note p { margin-top:4px; font-size:11px; line-height:1.9; }
.tp-owner-portal .tp-payment-review-note.is-warning { background:#fff6e7; color:#875d23; }
.tp-owner-portal .tp-payment-review-note.is-error { background:#fbedeb; color:#9b4941; }
.tp-owner-portal .tp-payment-review-note.is-info { background:#ebf5ff; color:#28638e; }
.tp-owner-portal .tp-payment-review-note.is-success { background:#e9f8ef; color:#216f4a; }
.tp-owner-portal .tp-payment-card-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:18px; padding:0 22px 22px; }
.tp-owner-portal .tp-bank-card { position:relative; min-height:246px; padding:24px; overflow:hidden; border-radius:22px; direction:ltr; background:linear-gradient(145deg,#0c5558,#0b7772 62%,#12968b); color:#fff; box-shadow:0 20px 40px rgba(10,87,87,.22); }
.tp-owner-portal .tp-bank-card::before,
.tp-owner-portal .tp-bank-card::after { position:absolute; border-radius:50%; background:rgba(255,255,255,.08); content:""; }
.tp-owner-portal .tp-bank-card::before { top:-80px; right:-50px; width:220px; height:220px; }
.tp-owner-portal .tp-bank-card::after { bottom:-110px; left:-55px; width:260px; height:260px; }
.tp-owner-portal .tp-bank-card > * { position:relative; z-index:1; }
.tp-owner-portal .tp-bank-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:38px; }
.tp-owner-portal .tp-bank-card-top span { font-size:15px; font-weight:900; }
.tp-owner-portal .tp-bank-card-top i { width:40px; height:29px; border-radius:7px; background:linear-gradient(135deg,#efce78,#c99938); box-shadow:inset 0 0 0 1px rgba(72,47,0,.18); }
.tp-owner-portal .tp-bank-card > small { display:block; margin-bottom:7px; opacity:.72; font-size:10px; text-align:left; }
.tp-owner-portal .tp-bank-card > strong { display:block; direction:ltr; font-size:24px; font-weight:800; letter-spacing:2.2px; text-align:left; white-space:nowrap; }
.tp-owner-portal .tp-bank-card-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:38px; }
.tp-owner-portal .tp-bank-card-bottom span { direction:rtl; font-size:12px; font-weight:800; }
.tp-owner-portal .tp-bank-card button,
.tp-owner-portal .tp-payment-summary button { min-height:34px; padding:0 11px; border:1px solid rgba(255,255,255,.25); border-radius:9px; background:rgba(255,255,255,.12); color:#fff; font:inherit; font-size:9px; font-weight:800; cursor:pointer; }
.tp-owner-portal .tp-bank-card button:hover { background:rgba(255,255,255,.2); }
.tp-owner-portal .tp-payment-summary { display:grid; align-content:start; gap:10px; padding:17px; border:1px solid var(--tp-line); border-radius:17px; background:#fbfdfc; }
.tp-owner-portal .tp-payment-summary > div { position:relative; padding:11px 12px; border-radius:11px; background:#fff; box-shadow:inset 0 0 0 1px #edf2f0; }
.tp-owner-portal .tp-payment-summary span,
.tp-owner-portal .tp-payment-summary strong,
.tp-owner-portal .tp-payment-summary code { display:block; }
.tp-owner-portal .tp-payment-summary span { margin-bottom:4px; color:var(--tp-muted); font-size:9px; }
.tp-owner-portal .tp-payment-summary strong { color:var(--tp-ink); font-size:13px; }
.tp-owner-portal .tp-payment-summary strong:first-of-type { color:var(--tp-primary-dark); font-size:19px; }
.tp-owner-portal .tp-payment-summary strong small { font-size:9px; }
.tp-owner-portal .tp-payment-summary code { direction:ltr; color:var(--tp-primary); font-family:monospace; font-size:12px; }
.tp-owner-portal .tp-payment-summary button { position:absolute; top:50%; left:10px; transform:translateY(-50%); border-color:var(--tp-line); background:#eef6f4; color:var(--tp-primary); }
.tp-owner-portal .tp-payment-summary > p { margin:2px 0 0; color:var(--tp-muted); font-size:10px; line-height:1.9; }
.tp-owner-portal .tp-payment-receipt-form { padding:22px; border-top:1px solid var(--tp-line); background:#fafcfb; }
.tp-owner-portal .tp-receipt-dropzone { position:relative; display:grid; justify-items:center; min-height:190px; padding:24px; overflow:hidden; border:2px dashed #b7d1cd; border-radius:16px; background:#fff; color:var(--tp-muted); text-align:center; transition:.2s ease; cursor:pointer; }
.tp-owner-portal .tp-receipt-dropzone:hover,
.tp-owner-portal .tp-receipt-dropzone.is-dragover { border-color:var(--tp-primary); background:#f2faf7; }
.tp-owner-portal .tp-receipt-dropzone input { position:absolute; inset:0; z-index:3; width:100%; height:100%; opacity:0; cursor:pointer; }
.tp-owner-portal .tp-receipt-dropzone > span { display:grid; place-items:center; width:48px; height:48px; margin-bottom:9px; border-radius:15px; background:#eaf6f3; color:var(--tp-primary); font-size:22px; font-weight:900; }
.tp-owner-portal .tp-receipt-dropzone > strong { color:var(--tp-ink); font-size:12px; }
.tp-owner-portal .tp-receipt-dropzone > small { margin-top:5px; font-size:9px; }
.tp-owner-portal .tp-receipt-dropzone > div { position:absolute; inset:0; z-index:2; display:none; background:#eef5f3; }
.tp-owner-portal .tp-receipt-dropzone.has-file > div { display:block; }
.tp-owner-portal .tp-receipt-dropzone > div img { width:100%; height:100%; object-fit:contain; }
.tp-owner-portal .tp-receipt-progress { position:relative; height:12px; margin-top:12px; overflow:hidden; border-radius:999px; background:#dfeae7; }
.tp-owner-portal .tp-receipt-progress i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--tp-primary),#45b49e); transition:width .15s linear; }
.tp-owner-portal .tp-receipt-progress span { position:absolute; inset:0; color:#173d3d; font-size:8px; font-weight:900; line-height:12px; text-align:center; }
.tp-owner-portal .tp-payment-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:15px; }
.tp-owner-portal .tp-payment-fields label > span { display:block; margin-bottom:6px; color:var(--tp-ink); font-size:10px; font-weight:800; }
.tp-owner-portal .tp-payment-fields label > span b { color:#d45b43; }
.tp-owner-portal .tp-payment-fields label > span small { color:var(--tp-muted); font-size:8px; font-weight:500; }
.tp-owner-portal .tp-payment-fields input { display:block; width:100%; height:44px; padding:0 12px; border:1px solid var(--tp-line-strong); border-radius:10px; outline:0; background:#fff; color:var(--tp-ink); font:inherit; font-size:12px; }
.tp-owner-portal .tp-payment-fields input:focus { border-color:var(--tp-primary); box-shadow:0 0 0 3px rgba(15,127,121,.1); }
.tp-owner-portal .tp-payment-receipt-form > .tp-button { display:flex; min-width:260px; min-height:48px; margin:17px auto 0; }
.tp-owner-portal .tp-payment-form-message { margin-top:12px; padding:11px 13px; border-radius:10px; font-size:11px; font-weight:700; }
.tp-owner-portal .tp-payment-form-message.is-error { background:#fbedeb; color:#9b4941; }
.tp-owner-portal .tp-payment-form-message.is-success { background:#e9f8ef; color:#216f4a; }
.tp-owner-portal .tp-payment-toast { position:fixed; right:50%; bottom:24px; z-index:99999; padding:10px 15px; border-radius:10px; transform:translate(50%,20px); opacity:0; visibility:hidden; background:#153f40; color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.2); font-size:11px; font-weight:800; transition:.2s ease; }
.tp-owner-portal .tp-payment-toast.is-visible { transform:translate(50%,0); opacity:1; visibility:visible; }
.tp-owner-portal .tp-payment-toast.is-error { background:#9b4941; }
.tp-owner-portal .tp-payment-history { padding:0; overflow:hidden; }
.tp-owner-portal .tp-payment-history > header { padding:17px 20px; border-bottom:1px solid var(--tp-line); }
.tp-owner-portal .tp-payment-history > header span { color:var(--tp-accent,#f47b55); font-size:9px; font-weight:900; }
.tp-owner-portal .tp-payment-history > header h2 { margin:3px 0 0; color:var(--tp-ink); font-size:17px; }
.tp-owner-portal .tp-payment-history-list a { display:grid; grid-template-columns:38px minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:13px 20px; border-bottom:1px solid #edf2f0; color:inherit; text-decoration:none; }
.tp-owner-portal .tp-payment-history-list a:last-child { border-bottom:0; }
.tp-owner-portal .tp-payment-history-list a:hover { background:#f8fbfa; }
.tp-owner-portal .tp-payment-history-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:#edf7f4; color:var(--tp-primary); }
.tp-owner-portal .tp-payment-history-list strong,
.tp-owner-portal .tp-payment-history-list small { display:block; }
.tp-owner-portal .tp-payment-history-list strong { color:var(--tp-ink); font-size:11px; }
.tp-owner-portal .tp-payment-history-list small { margin-top:2px; color:var(--tp-muted); font-size:9px; }
.tp-owner-portal .tp-payment-history-list > a > b { color:var(--tp-primary-dark); font-size:11px; white-space:nowrap; }
.tp-owner-portal .tp-payment-history-list > a > b small { display:inline; font-size:8px; }
.tp-owner-portal .tp-payment-history-list em { padding:5px 8px; border-radius:999px; background:#eef3f2; color:#637a79; font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }
.tp-owner-portal .tp-payment-history-list em.is-approved { background:#e5f7ed; color:#18764a; }
.tp-owner-portal .tp-payment-history-list em.is-pending_review { background:#e7f2ff; color:#28689f; }
.tp-owner-portal .tp-payment-history-list em.is-needs_changes { background:#fff0e9; color:#b55c39; }

@media (max-width: 820px) {
	.tp-owner-portal .tp-current-subscription { grid-template-columns:auto repeat(2,minmax(0,1fr)); }
	.tp-owner-portal .tp-current-subscription > div:last-child { grid-column:2 / -1; }
	.tp-owner-portal .tp-payment-card-layout { grid-template-columns:1fr; }
	.tp-owner-portal .tp-payment-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.tp-owner-portal .tp-payment-fields label:last-child { grid-column:1 / -1; }
}

@media (max-width: 580px) {
	.tp-owner-portal .tp-subscription-business-bar { align-items:stretch; flex-direction:column; gap:10px; }
	.tp-owner-portal .tp-subscription-business-bar select { width:100%; min-width:0; }
	.tp-owner-portal .tp-current-subscription { grid-template-columns:42px minmax(0,1fr); gap:9px; }
	.tp-owner-portal .tp-current-subscription > div,
	.tp-owner-portal .tp-current-subscription > div:last-child { grid-column:2; padding:7px 10px; }
	.tp-owner-portal .tp-subscription-continue { width:100%; min-width:0; }
	.tp-owner-portal .tp-payment-checkout-head { align-items:flex-start; flex-direction:column; padding:17px; }
	.tp-owner-portal .tp-payment-status { align-self:flex-start; }
	.tp-owner-portal .tp-payment-steps { padding:18px 8px; }
	.tp-owner-portal .tp-payment-steps > div small { font-size:8px; }
	.tp-owner-portal .tp-payment-review-note { margin:0 15px 16px; }
	.tp-owner-portal .tp-payment-card-layout { padding:0 15px 17px; }
	.tp-owner-portal .tp-bank-card { min-height:214px; padding:19px; border-radius:18px; }
	.tp-owner-portal .tp-bank-card-top { margin-bottom:30px; }
	.tp-owner-portal .tp-bank-card > strong { font-size:18px; letter-spacing:1.7px; }
	.tp-owner-portal .tp-bank-card-bottom { margin-top:31px; }
	.tp-owner-portal .tp-payment-receipt-form { padding:16px 15px; }
	.tp-owner-portal .tp-receipt-dropzone { min-height:165px; padding:18px; }
	.tp-owner-portal .tp-payment-fields { grid-template-columns:1fr; }
	.tp-owner-portal .tp-payment-fields label:last-child { grid-column:auto; }
	.tp-owner-portal .tp-payment-receipt-form > .tp-button { width:100%; min-width:0; }
	.tp-owner-portal .tp-payment-history-list a { grid-template-columns:36px minmax(0,1fr) auto; padding:12px 14px; }
	.tp-owner-portal .tp-payment-history-list > a > b { grid-column:2; }
	.tp-owner-portal .tp-payment-history-list em { grid-column:3; grid-row:1 / span 2; }
}

@media (prefers-reduced-motion: reduce) {
	.tp-owner-portal *,
	.tp-owner-portal *::before,
	.tp-owner-portal *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Business profile editor: location, weekly hours and media manager. */
.tp-owner-portal .tp-edit-heading { margin-bottom: 16px; }
.tp-owner-portal .tp-profile-completion { margin-bottom: 18px; }
.tp-owner-portal .tp-completion-head { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.tp-owner-portal .tp-completion-head strong,
.tp-owner-portal .tp-completion-head small { display:block; }
.tp-owner-portal .tp-completion-head small { margin-top:5px; color:var(--tp-muted); }
.tp-owner-portal .tp-completion-head > b { font-size:24px; color:var(--tp-primary); }
.tp-owner-portal .tp-completion-bar { height:9px; margin-top:14px; overflow:hidden; border-radius:999px; background:var(--tp-soft); }
.tp-owner-portal .tp-completion-bar span { display:block; height:100%; border-radius:inherit; background:var(--tp-primary); }
.tp-owner-portal .tp-profile-completion > p { margin:10px 0 0; color:var(--tp-muted); font-size:12px; }
.tp-owner-portal .tp-portal-notice.is-warning { border-color:#f4d59b; background:#fff9eb; color:#805812; }

.tp-owner-portal .tp-editor-tabs { display:flex; gap:7px; margin:0 0 14px; padding:7px; overflow-x:auto; border:1px solid var(--tp-line); border-radius:15px; background:#fff; scrollbar-width:thin; }
.tp-owner-portal .tp-editor-tabs button { flex:0 0 auto; min-height:42px; padding:8px 15px; border:0; border-radius:11px; background:transparent; color:var(--tp-muted); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.tp-owner-portal .tp-editor-tabs button.is-active { background:var(--tp-primary-soft); color:var(--tp-primary-dark); }
.tp-owner-portal .tp-editor-tabs button:focus-visible { outline:3px solid rgba(17,115,104,.28); outline-offset:2px; }
.tp-owner-portal .tp-editor-panel { display:none; margin-bottom:14px; }
.tp-owner-portal .tp-editor-panel.is-active { display:block; }
.tp-owner-portal .tp-editor-panel[hidden] { display:none; }
.tp-owner-portal .tp-editor-submit { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 20px; border:1px solid var(--tp-line); border-radius:16px; background:#fff; }
.tp-owner-portal .tp-editor-submit p { margin:0; }
.tp-owner-portal .tp-editor-submit strong,
.tp-owner-portal .tp-editor-submit small { display:block; }
.tp-owner-portal .tp-editor-submit small { margin-top:4px; color:var(--tp-muted); }

.tp-owner-portal .tp-location-field { position:relative; }
.tp-owner-portal .tp-location-toolbar { display:flex; align-items:stretch; gap:8px; margin:8px 0 10px; }
.tp-owner-portal .tp-location-search-wrap { position:relative; flex:1; min-width:0; }
.tp-owner-portal .tp-location-search-wrap > input { width:100%; min-height:44px; padding:9px 13px; border:1px solid var(--tp-line-strong); border-radius:11px; background:#fff; font:inherit; }
.tp-owner-portal .tp-location-results { position:absolute; z-index:1002; top:calc(100% + 5px); right:0; left:0; max-height:260px; overflow:auto; border:1px solid var(--tp-line); border-radius:12px; background:#fff; box-shadow:0 12px 30px rgba(10,65,65,.13); }
.tp-owner-portal .tp-location-results button { display:block; width:100%; padding:10px 12px; border:0; border-bottom:1px solid var(--tp-line); background:#fff; text-align:right; font:inherit; cursor:pointer; }
.tp-owner-portal .tp-location-results button:last-child { border-bottom:0; }
.tp-owner-portal .tp-location-results button:hover { background:var(--tp-primary-soft-2); }
.tp-owner-portal .tp-location-results strong,
.tp-owner-portal .tp-location-results small { display:block; }
.tp-owner-portal .tp-location-results small { margin-top:3px; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-location-map { position:relative; width:100%; height:340px; overflow:hidden; border:1px solid var(--tp-line); border-radius:15px; background:#edf4f1; }
.tp-owner-portal .tp-location-map .leaflet-control-container { direction:ltr; }
/* Shield Leaflet tiles from broad theme rules such as img{max-width:100%}.
 * These safeguards load after the theme and keep every 256px tile aligned. */
.tp-owner-portal .tp-location-map .leaflet-tile { width:256px; height:256px; max-width:none !important; max-height:none !important; }
.tp-owner-portal .tp-location-map .leaflet-marker-icon,
.tp-owner-portal .tp-location-map .leaflet-marker-shadow { max-width:none !important; }
.tp-owner-portal .tp-map-loading,
.tp-owner-portal .tp-map-error { position:absolute; inset:0; display:grid; place-items:center; padding:25px; color:var(--tp-muted); text-align:center; }
.tp-owner-portal .tp-map-error { background:#fff7f2; color:#9b4d36; }
.tp-owner-portal .tp-location-status { margin-top:8px; padding:9px 12px; border-radius:10px; background:var(--tp-primary-soft-2); color:var(--tp-primary-dark); font-size:12px; }
.tp-owner-portal .tp-location-status.is-warning { background:#fff6df; color:#805812; }
.tp-owner-portal .tp-coordinate-entry { margin-top:9px; padding:9px 12px; border:1px solid var(--tp-line); border-radius:11px; background:#fff; }
.tp-owner-portal .tp-coordinate-entry summary { color:var(--tp-primary-dark); font-size:12px; font-weight:700; cursor:pointer; }
.tp-owner-portal .tp-coordinate-entry > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.tp-owner-portal .tp-coordinate-entry label span { display:block; margin-bottom:5px; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-coordinate-entry input { width:100%; min-height:40px; padding:7px 9px; border:1px solid var(--tp-line-strong); border-radius:9px; background:#fff; font:inherit; text-align:left; }

.tp-owner-portal .tp-hours-editor { display:grid; gap:8px; margin-top:10px; }
.tp-owner-portal .tp-hours-row { display:grid; grid-template-columns:105px 75px 100px minmax(210px,1fr) 65px; align-items:center; gap:10px; min-height:58px; padding:9px 12px; border:1px solid var(--tp-line); border-radius:12px; background:#fff; }
.tp-owner-portal .tp-hours-row.is-closed { background:#fafbfa; opacity:.78; }
.tp-owner-portal .tp-hours-row > strong { font-size:13px; }
.tp-owner-portal .tp-hours-row > em { color:var(--tp-primary); font-size:11px; font-style:normal; font-weight:700; text-align:left; }
.tp-owner-portal .tp-hours-row.is-closed > em { color:var(--tp-muted); }
.tp-owner-portal .tp-mini-check { display:flex; align-items:center; gap:5px; color:var(--tp-ink); font-size:11px; cursor:pointer; }
.tp-owner-portal .tp-mini-check input { width:16px; height:16px; margin:0; accent-color:var(--tp-primary); }
.tp-owner-portal .tp-hours-times { display:grid; grid-template-columns:1fr 24px 1fr; align-items:center; gap:5px; }
.tp-owner-portal .tp-hours-times span { text-align:center; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-hours-times input { width:100%; min-height:38px; padding:5px 7px; border:1px solid var(--tp-line-strong); border-radius:9px; background:#fff; direction:ltr; text-align:center; }

.tp-owner-portal .tp-media-manager { display:grid; gap:12px; }
.tp-owner-portal .tp-media-block { padding:15px; border:1px solid var(--tp-line); border-radius:14px; background:var(--tp-primary-soft-2); }
.tp-owner-portal .tp-media-block > div:first-of-type > strong,
.tp-owner-portal .tp-media-block > div:first-of-type > small { display:block; }
.tp-owner-portal .tp-media-block > div:first-of-type > small { margin-top:3px; color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-upload-box-compact .tp-upload-preview { min-height:130px; }
.tp-owner-portal .tp-media-remove { display:flex; align-items:center; gap:6px; margin-top:8px; color:#9b4d36; font-size:11px; cursor:pointer; }
.tp-owner-portal .tp-media-remove input { width:16px; height:16px; margin:0; accent-color:#b64c3d; }
.tp-owner-portal .tp-gallery-existing,
.tp-owner-portal .tp-gallery-new-preview { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; margin-top:12px; }
.tp-owner-portal .tp-gallery-item { position:relative; min-width:0; padding:5px; border:1px solid var(--tp-line); border-radius:11px; background:#fff; cursor:grab; }
.tp-owner-portal .tp-gallery-item.is-dragging { opacity:.45; }
.tp-owner-portal .tp-gallery-item img,
.tp-owner-portal .tp-gallery-new-preview img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px; }
.tp-owner-portal .tp-gallery-item label { display:block; margin-top:5px; color:var(--tp-muted); font-size:10px; }
.tp-owner-portal .tp-gallery-move { display:flex; gap:4px; margin-top:5px; }
.tp-owner-portal .tp-gallery-move button { width:30px; min-height:28px; padding:0; border:1px solid var(--tp-line); border-radius:7px; background:#fff; color:var(--tp-primary-dark); font:inherit; cursor:pointer; }
.tp-owner-portal .tp-gallery-move button:disabled { opacity:.45; cursor:not-allowed; }
.tp-owner-portal .tp-drag-handle { position:absolute; top:7px; left:7px; display:grid; place-items:center; width:25px; height:25px; border-radius:8px; background:rgba(10,45,45,.72); color:#fff; }
.tp-owner-portal .tp-gallery-upload { display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; margin-top:12px; padding:8px 12px; border:1px dashed var(--tp-primary); border-radius:11px; background:#fff; color:var(--tp-primary); cursor:pointer; }
.tp-owner-portal .tp-gallery-upload input { position:absolute; opacity:0; pointer-events:none; }
.tp-owner-portal .tp-gallery-upload small { color:var(--tp-muted); }

@media (max-width: 820px) {
	.tp-owner-portal .tp-hours-row { grid-template-columns:80px 65px 90px 1fr; }
	.tp-owner-portal .tp-hours-row > em { display:none; }
	.tp-owner-portal .tp-gallery-existing,
	.tp-owner-portal .tp-gallery-new-preview { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (max-width: 580px) {
	.tp-owner-portal .tp-editor-submit { align-items:stretch; flex-direction:column; }
	.tp-owner-portal .tp-editor-submit .tp-button { width:100%; }
	.tp-owner-portal .tp-location-toolbar { flex-direction:column; }
	.tp-owner-portal .tp-location-map { height:290px; }
	.tp-owner-portal .tp-hours-row { grid-template-columns:1fr 65px 90px; gap:7px; }
	.tp-owner-portal .tp-hours-times { grid-column:1/-1; }
	.tp-owner-portal .tp-gallery-existing,
	.tp-owner-portal .tp-gallery-new-preview { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.tp-owner-portal .tp-coordinate-entry > div { grid-template-columns:1fr; }
}

/* Core 0.6.0 — owner FAQ editor */
.tp-owner-portal .tp-faq-manager { display:grid; gap:10px; margin-bottom:12px; }
.tp-owner-portal .tp-faq-editor-row { padding:14px; border:1px solid var(--tp-line); border-radius:13px; background:var(--tp-primary-soft-2); }
.tp-owner-portal .tp-faq-row-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.tp-owner-portal .tp-faq-row-head strong { font-size:12px; color:var(--tp-primary-dark); }
.tp-owner-portal .tp-faq-row-head button { border:0; background:transparent; color:#b64c3d; font:inherit; font-size:11px; cursor:pointer; }
.tp-owner-portal .tp-faq-editor-row .tp-field + .tp-field { margin-top:9px; }
.tp-owner-portal .tp-add-faq { margin-top:2px; }
.tp-owner-portal .tp-field-help { display:block; margin-top:8px; color:var(--tp-muted); font-size:11px; }

/* Core 0.7.0 — approved customer reviews and verified owner replies. */
.tp-owner-portal .tp-owner-reviews-list { display:grid; gap:14px; }
.tp-owner-portal .tp-owner-review-card { scroll-margin-top:20px; }
.tp-owner-portal .tp-owner-review-card:target { border-color:rgba(244,123,85,.65); box-shadow:0 0 0 4px rgba(244,123,85,.10); }
.tp-owner-portal .tp-owner-review-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:16px; border-bottom:1px solid var(--tp-line); }
.tp-owner-portal .tp-owner-review-business { display:flex; align-items:center; min-width:0; gap:12px; }
.tp-owner-portal .tp-owner-review-business > div:last-child { min-width:0; }
.tp-owner-portal .tp-owner-review-business small,
.tp-owner-portal .tp-owner-review-business h2 { display:block; }
.tp-owner-portal .tp-owner-review-business small { color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-owner-review-business h2 { margin:2px 0; overflow:hidden; color:var(--tp-ink); font-size:16px; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.tp-owner-portal .tp-owner-review-business a { color:var(--tp-primary); font-size:11px; font-weight:800; }
.tp-owner-portal .tp-owner-review-rating { display:flex; align-items:center; flex:0 0 auto; gap:8px; padding:8px 11px; border-radius:11px; background:#fff7e5; color:#a86d14; }
.tp-owner-portal .tp-owner-review-rating span { direction:ltr; letter-spacing:1px; }
.tp-owner-portal .tp-owner-review-rating strong { color:#805410; font-size:12px; }
.tp-owner-portal .tp-owner-review-customer { padding:17px 2px 3px; }
.tp-owner-portal .tp-owner-review-customer > div,
.tp-owner-portal .tp-owner-review-existing > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.tp-owner-portal .tp-owner-review-customer strong { font-size:13px; }
.tp-owner-portal .tp-owner-review-customer small,
.tp-owner-portal .tp-owner-review-existing small { color:var(--tp-muted); font-size:11px; }
.tp-owner-portal .tp-owner-review-customer p,
.tp-owner-portal .tp-owner-review-existing p { margin:8px 0 0; color:#526d6e; font-size:13px; line-height:2; overflow-wrap:anywhere; }
.tp-owner-portal .tp-owner-review-existing { margin-top:14px; padding:13px 15px; border-right:3px solid var(--tp-primary); border-radius:12px; background:var(--tp-primary-soft-2); }
.tp-owner-portal .tp-owner-review-existing strong { color:var(--tp-primary-dark); font-size:12px; }
.tp-owner-portal .tp-owner-review-form { margin-top:16px; padding-top:16px; border-top:1px dashed var(--tp-line-strong); }
.tp-owner-portal .tp-owner-review-form label,
.tp-owner-portal .tp-owner-review-form label > span { display:block; }
.tp-owner-portal .tp-owner-review-form label > span { margin-bottom:7px; color:var(--tp-ink); font-size:12px; font-weight:800; }
.tp-owner-portal .tp-owner-review-form textarea { display:block; width:100%; min-height:108px; resize:vertical; padding:11px 13px; border:1px solid var(--tp-line-strong); border-radius:11px; outline:0; background:#fff; color:var(--tp-ink); font:inherit; font-size:13px; line-height:1.9; }
.tp-owner-portal .tp-owner-review-form textarea:focus { border-color:var(--tp-primary); box-shadow:0 0 0 3px rgba(15,127,121,.10); }
.tp-owner-portal .tp-owner-review-form > div { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:10px; }
.tp-owner-portal .tp-owner-review-form > div small { max-width:560px; color:var(--tp-muted); font-size:11px; line-height:1.8; }
.tp-owner-portal .tp-owner-review-form .tp-button { flex:0 0 auto; }

@media (max-width: 580px) {
	.tp-owner-portal .tp-owner-review-head { align-items:flex-start; flex-direction:column; gap:12px; }
	.tp-owner-portal .tp-owner-review-rating { align-self:stretch; justify-content:space-between; }
	.tp-owner-portal .tp-owner-review-form > div { align-items:stretch; flex-direction:column; }
	.tp-owner-portal .tp-owner-review-form .tp-button { width:100%; }
	.tp-owner-portal .tp-owner-review-customer > div,
	.tp-owner-portal .tp-owner-review-existing > div { align-items:flex-start; flex-direction:column; gap:3px; }
}

/* 0.8.1: subtle state while switching the selected business in-place. */
.tp-subscription-page.is-switching-business { opacity:.68; pointer-events:none; transition:opacity .16s ease; }

/* Core 0.8.20 — visitor portal UI/UX refresh. Scoped to .tp-visitor-portal. */
.tp-visitor-portal { --tpv-navy:#123e52; --tpv-navy-2:#0d3345; --tpv-orange:#f5824e; --tpv-bg:#f5f8f9; --tpv-line:#e5edef; --tpv-text:#183845; --tpv-muted:#718890; max-width:1180px; margin:0 auto; padding:22px 16px 96px; color:var(--tpv-text); scroll-behavior:smooth; }
.tp-visitor-portal *, .tp-visitor-portal *::before, .tp-visitor-portal *::after { box-sizing:border-box; }
.tp-visitor-portal svg { width:22px; height:22px; display:block; }
.tp-visitor-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px 26px; border-radius:24px; background:linear-gradient(135deg,var(--tpv-navy-2),var(--tpv-navy)); color:#fff; box-shadow:0 14px 38px rgba(18,62,82,.14); }
.tp-visitor-identity { display:flex; align-items:center; gap:15px; min-width:0; }
.tp-visitor-avatar { display:grid; place-items:center; flex:0 0 54px; width:54px; height:54px; border:1px solid rgba(255,255,255,.28); border-radius:18px; background:rgba(255,255,255,.12); font-size:23px; font-weight:900; }
.tp-visitor-eyebrow { display:block; margin-bottom:4px; color:#ffd7c4; font-size:11px; font-weight:800; }
.tp-visitor-hero h1 { margin:0; color:#fff; font-size:23px; line-height:1.5; font-weight:900; }
.tp-visitor-hero p { margin:2px 0 0; color:rgba(255,255,255,.72); font-size:12px; direction:ltr; text-align:right; }
.tp-visitor-hero-logout { display:flex; align-items:center; gap:7px; flex:0 0 auto; padding:10px 13px; border:1px solid rgba(255,255,255,.2); border-radius:13px; background:rgba(255,255,255,.1); color:#fff; text-decoration:none; font-size:12px; font-weight:800; transition:.2s ease; }
.tp-visitor-hero-logout:hover { background:rgba(255,255,255,.18); color:#fff; transform:translateY(-1px); }
.tp-visitor-hero-logout svg { width:18px; height:18px; }
.tp-visitor-quick-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0; }
.tp-visitor-quick-card { position:relative; display:flex; align-items:center; gap:11px; min-height:82px; padding:14px; border:1px solid var(--tpv-line); border-radius:18px; background:#fff; color:var(--tpv-text); text-decoration:none; box-shadow:0 7px 22px rgba(18,62,82,.045); transition:.2s ease; overflow:hidden; }
.tp-visitor-quick-card:hover { border-color:#d5e2e5; color:var(--tpv-text); transform:translateY(-2px); box-shadow:0 11px 28px rgba(18,62,82,.075); }
.tp-visitor-quick-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:14px; background:#edf5f6; color:var(--tpv-navy); }
.tp-visitor-quick-card.is-heart .tp-visitor-quick-icon { background:#fff0f2; color:#d55a67; }
.tp-visitor-quick-card.is-star .tp-visitor-quick-icon { background:#fff6e8; color:#d89225; }
.tp-visitor-quick-card.is-clock .tp-visitor-quick-icon { background:#eef3ff; color:#526fba; }
.tp-visitor-quick-copy { min-width:0; }
.tp-visitor-quick-copy strong,.tp-visitor-quick-copy small { display:block; }
.tp-visitor-quick-copy strong { margin-bottom:4px; font-size:13px; font-weight:900; white-space:nowrap; }
.tp-visitor-quick-copy small { color:var(--tpv-muted); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tp-visitor-quick-card > b { margin-right:auto; min-width:26px; height:26px; display:grid; place-items:center; padding:0 7px; border-radius:9px; background:#f2f6f7; color:var(--tpv-navy); font-size:11px; }
.tp-visitor-quick-card > svg { flex:0 0 18px; width:18px; height:18px; margin-right:auto; color:#9aaeb4; transform:rotate(180deg); }
.tp-visitor-content-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr); gap:16px; align-items:start; }
.tp-visitor-main-column,.tp-visitor-side-column { display:grid; gap:16px; }
.tp-visitor-side-column { position:sticky; top:18px; }
.tp-visitor-section { scroll-margin-top:24px; padding:0; border:1px solid var(--tpv-line); border-radius:20px; background:#fff; box-shadow:0 7px 22px rgba(18,62,82,.035); overflow:hidden; }
.tp-visitor-section-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:17px 19px; border-bottom:1px solid #edf2f3; }
.tp-visitor-section-head > div { display:flex; align-items:center; gap:11px; min-width:0; }
.tp-visitor-section-icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:12px; background:#edf5f6; color:var(--tpv-navy); }
.tp-visitor-section-icon svg { width:19px; height:19px; }
.tp-visitor-section-icon.is-heart { background:#fff0f2; color:#d55a67; }
.tp-visitor-section-icon.is-star { background:#fff6e8; color:#d89225; }
.tp-visitor-section-icon.is-clock { background:#eef3ff; color:#526fba; }
.tp-visitor-section-head h2 { margin:0; color:var(--tpv-text); font-size:15px; font-weight:900; }
.tp-visitor-section-head p { margin:3px 0 0; color:var(--tpv-muted); font-size:9px; }
.tp-visitor-section-head > b { padding:6px 9px; border-radius:999px; background:#f2f6f7; color:var(--tpv-navy); font-size:9px; white-space:nowrap; }
.tp-visitor-empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:235px; padding:30px 20px; text-align:center; }
.tp-visitor-empty-state > span { display:grid; place-items:center; width:62px; height:62px; margin-bottom:13px; border-radius:20px; background:#f3f7f8; color:#8ba0a6; }
.tp-visitor-empty-state > span svg { width:28px; height:28px; }
.tp-visitor-empty-state strong { font-size:13px; font-weight:900; }
.tp-visitor-empty-state p { max-width:420px; margin:6px 0 15px; color:var(--tpv-muted); font-size:10px; line-height:1.9; }
.tp-visitor-empty-state a { padding:9px 13px; border-radius:11px; background:var(--tpv-navy); color:#fff; text-decoration:none; font-size:10px; font-weight:800; }
.tp-visitor-empty-state a:hover { color:#fff; background:var(--tpv-navy-2); }
.tp-visitor-empty-state.is-compact { min-height:180px; }
.tp-visitor-review-list { padding:0 18px; }
.tp-visitor-review-item { padding:17px 1px; border-bottom:1px solid #edf2f3; }
.tp-visitor-review-item:last-child { border-bottom:0; }
.tp-visitor-review-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.tp-visitor-review-top strong,.tp-visitor-review-top small { display:block; }
.tp-visitor-review-top strong { color:var(--tpv-text); font-size:12px; font-weight:900; }
.tp-visitor-review-top small { margin-top:3px; color:var(--tpv-muted); font-size:9px; }
.tp-visitor-review-top > span { display:flex; align-items:center; gap:4px; padding:5px 8px; border-radius:999px; font-size:8px; font-weight:800; white-space:nowrap; }
.tp-visitor-review-top > span svg { width:13px; height:13px; }
.tp-visitor-review-top > span.is-approved { background:#eaf7f0; color:#27815a; }
.tp-visitor-review-top > span.is-pending { background:#fff4e7; color:#b8782a; }
.tp-visitor-review-item > p { margin:11px 0; color:#536c75; font-size:10px; line-height:1.9; }
.tp-visitor-review-item > a { display:inline-flex; align-items:center; gap:4px; color:var(--tpv-navy); text-decoration:none; font-size:9px; font-weight:800; }
.tp-visitor-review-item > a svg { width:13px; height:13px; transform:rotate(180deg); }
.tp-visitor-profile-form { display:grid; gap:12px; padding:17px 19px 20px; }
.tp-visitor-profile-form label { display:grid; gap:6px; margin:0; }
.tp-visitor-profile-form label > span { color:#49636c; font-size:9px; font-weight:800; }
.tp-visitor-profile-form input { width:100%; height:42px; padding:0 12px; border:1px solid #dfe9eb; border-radius:11px; background:#fbfcfc; color:var(--tpv-text); box-shadow:none; font:inherit; font-size:11px; outline:none; transition:.2s ease; }
.tp-visitor-profile-form input:focus { border-color:#91afb9; background:#fff; box-shadow:0 0 0 3px rgba(18,62,82,.06); }
.tp-visitor-phone-field > div { position:relative; }
.tp-visitor-phone-field > div > svg { position:absolute; right:11px; top:11px; width:18px; height:18px; color:#769098; }
.tp-visitor-phone-field input { padding-right:37px; padding-left:70px; direction:ltr; text-align:left; background:#f3f6f7; color:#667d85; }
.tp-visitor-phone-field small { position:absolute; left:9px; top:10px; padding:4px 6px; border-radius:7px; background:#e7f6ee; color:#27815a; font-size:7px; font-weight:900; }
.tp-visitor-phone-field em { color:#8a9ca2; font-size:8px; line-height:1.7; font-style:normal; }
.tp-visitor-save-button { width:100%; min-height:42px; margin-top:2px; border:0; border-radius:11px; background:var(--tpv-navy); color:#fff; font-size:10px; font-weight:900; cursor:pointer; }
.tp-visitor-save-button:hover { background:var(--tpv-navy-2); color:#fff; }
.tp-visitor-logout-card { display:grid; grid-template-columns:42px minmax(0,1fr) 18px; align-items:center; gap:11px; padding:13px 15px; border:1px solid #f3dfe1; border-radius:17px; background:#fffafa; color:#b94a56; text-decoration:none; transition:.2s ease; }
.tp-visitor-logout-card:hover { border-color:#ebc8cc; background:#fff6f6; color:#a83f4b; }
.tp-visitor-logout-card > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#feecef; }
.tp-visitor-logout-card strong,.tp-visitor-logout-card small { display:block; }
.tp-visitor-logout-card strong { font-size:11px; font-weight:900; }
.tp-visitor-logout-card small { margin-top:3px; color:#a37d82; font-size:8px; }
.tp-visitor-logout-card > svg { width:17px; height:17px; transform:rotate(180deg); }
.tp-visitor-mobile-nav { display:none; }
.tp-visitor-login-required { max-width:680px; margin:30px auto; text-align:center; }

@media (max-width:900px) {
	.tp-visitor-quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.tp-visitor-content-grid { grid-template-columns:1fr; }
	.tp-visitor-side-column { position:static; }
}
@media (max-width:600px) {
	.tp-visitor-portal { padding:12px 10px 105px; }
	.tp-visitor-hero { padding:18px 16px; border-radius:19px; }
	.tp-visitor-avatar { flex-basis:46px; width:46px; height:46px; border-radius:15px; font-size:19px; }
	.tp-visitor-hero h1 { font-size:18px; }
	.tp-visitor-eyebrow { font-size:9px; }
	.tp-visitor-hero p { font-size:10px; }
	.tp-visitor-hero-logout { width:39px; height:39px; padding:0; justify-content:center; border-radius:12px; }
	.tp-visitor-hero-logout span { display:none; }
	.tp-visitor-quick-grid { gap:9px; margin:11px 0; }
	.tp-visitor-quick-card { min-height:74px; padding:11px; border-radius:16px; gap:9px; }
	.tp-visitor-quick-icon { flex-basis:38px; width:38px; height:38px; border-radius:12px; }
	.tp-visitor-quick-icon svg { width:19px; height:19px; }
	.tp-visitor-quick-copy strong { font-size:11px; }
	.tp-visitor-quick-copy small { display:none; }
	.tp-visitor-quick-card > b { min-width:24px; height:24px; font-size:9px; }
	.tp-visitor-quick-card > svg { display:none; }
	.tp-visitor-main-column,.tp-visitor-side-column { gap:11px; }
	.tp-visitor-section { border-radius:17px; scroll-margin-top:12px; }
	.tp-visitor-section-head { padding:14px; }
	.tp-visitor-section-icon { flex-basis:35px; width:35px; height:35px; }
	.tp-visitor-section-head h2 { font-size:13px; }
	.tp-visitor-section-head p { font-size:8px; }
	.tp-visitor-empty-state { min-height:205px; padding:24px 15px; }
	.tp-visitor-profile-form { padding:14px; }
	.tp-visitor-review-list { padding:0 14px; }
	.tp-visitor-mobile-nav { position:fixed; right:50%; bottom:max(10px,env(safe-area-inset-bottom)); z-index:998; display:grid; grid-template-columns:repeat(4,1fr); width:min(94vw,410px); padding:7px 8px; border:1px solid rgba(18,62,82,.09); border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 12px 34px rgba(18,62,82,.16); transform:translateX(50%); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
	.tp-visitor-mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:44px; border-radius:12px; color:#7c9299; text-decoration:none; font-size:8px; font-weight:800; }
	.tp-visitor-mobile-nav a svg { width:19px; height:19px; }
	.tp-visitor-mobile-nav a.is-active { background:#eef5f6; color:var(--tpv-navy); }
}

/* Core 0.8.21 — visitor panel asset-loader fix + mobile polish. */
.tp-visitor-portal svg {
	max-width:100%;
	max-height:100%;
	flex-shrink:0;
}
.tp-visitor-portal .tp-visitor-quick-icon > svg,
.tp-visitor-portal .tp-visitor-section-icon > svg { width:20px !important; height:20px !important; }
.tp-visitor-portal .tp-visitor-empty-state > span > svg { width:28px !important; height:28px !important; }
.tp-visitor-portal .tp-visitor-logout-card > span > svg { width:21px !important; height:21px !important; }
.tp-visitor-portal .tp-visitor-hero-logout > svg { width:18px !important; height:18px !important; }
.tp-visitor-portal .tp-visitor-phone-field > div > svg { width:18px !important; height:18px !important; }
.tp-visitor-portal .tp-visitor-mobile-nav { display:none !important; }

@media (max-width: 720px) {
	.tp-visitor-portal { padding:14px 12px 105px; }
	.tp-visitor-hero { min-height:auto; padding:18px 16px; }
	.tp-visitor-hero h1 { font-size:20px; }
	.tp-visitor-eyebrow { font-size:11px; }
	.tp-visitor-hero p { font-size:12px; }
	.tp-visitor-quick-copy strong { font-size:13px; }
	.tp-visitor-section-head h2 { font-size:15px; }
	.tp-visitor-section-head p { font-size:10px; line-height:1.7; }
	.tp-visitor-empty-state strong { font-size:14px; }
	.tp-visitor-empty-state p { font-size:11px; }
	.tp-visitor-empty-state a { font-size:11px; }
	.tp-visitor-profile-form label > span { font-size:11px; }
	.tp-visitor-profile-form input { font-size:13px; }
	.tp-visitor-phone-field em { font-size:10px; }
	.tp-visitor-save-button { font-size:12px; }
	.tp-visitor-logout-card strong { font-size:13px; }
	.tp-visitor-logout-card small { font-size:10px; }
}

/* Core 0.8.22 — portrait-mobile typography refinement only. */
@media (max-width: 480px) and (orientation: portrait) {
	/* Keep the hero readable, but slightly tighter than the generic mobile scale. */
	.tp-visitor-hero h1 { font-size:18px; }
	.tp-visitor-eyebrow { font-size:10px; }
	.tp-visitor-hero p { font-size:11px; }

	/* Compact quick-access cards so long Persian titles do not feel crowded. */
	.tp-visitor-quick-copy strong { font-size:11px; line-height:1.55; }
	.tp-visitor-quick-card > b { font-size:8px; }

	/* Reduce section typography only on narrow portrait screens. */
	.tp-visitor-section-head h2 { font-size:13px; line-height:1.55; }
	.tp-visitor-section-head p { font-size:9px; line-height:1.75; }
	.tp-visitor-empty-state strong { font-size:13px; }
	.tp-visitor-empty-state p { font-size:10px; }
	.tp-visitor-empty-state a { font-size:10px; }

	/* Profile/logout typography follows the same portrait scale. */
	.tp-visitor-profile-form label > span { font-size:10px; }
	.tp-visitor-profile-form input { font-size:12px; }
	.tp-visitor-phone-field em { font-size:9px; }
	.tp-visitor-save-button { font-size:11px; }
	.tp-visitor-logout-card strong { font-size:12px; }
	.tp-visitor-logout-card small { font-size:9px; }
}
