.a-frame-owner-portal {
	--af-portal-forest: #173f35;
	--af-portal-forest-light: #2d6656;
	--af-portal-cream: #f7f2e8;
	--af-portal-line: #d9d5cb;
	--af-portal-danger: #8b2f2f;
	position: relative;
	left: 50%;
	width: min(1120px, calc(100vw - 2rem)) !important;
	max-width: none !important;
	color: #1f2825;
	margin: 2rem 0 !important;
	padding: 0 1rem;
	transform: translateX(-50%);
}

.a-frame-owner-portal *,
.a-frame-owner-portal *::before,
.a-frame-owner-portal *::after {
	box-sizing: border-box;
}

.a-frame-membership {
	margin: 1rem 0 3rem;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	color: #1f2825;
	background: #f7f2e8;
	border-radius: 24px;
}

.a-frame-membership-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
	align-items: end;
	gap: 1.5rem;
	margin-bottom: 1.25rem;
}

.a-frame-membership-heading h2 {
	margin: 0;
	color: #173f35;
	font-size: clamp(1.9rem, 4vw, 3rem);
	line-height: 1.08;
}

.a-frame-membership-heading > p,
.a-frame-membership-note {
	margin: 0;
	color: #46534e;
}

.a-frame-plan-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 1rem;
}

.a-frame-plan-card {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	padding: 1.25rem;
	color: #1f2825;
	background: #fff;
	border: 1px solid #d9d5cb;
	border-radius: 18px;
	box-shadow: 0 12px 34px rgba(23, 63, 53, .07);
}

.a-frame-plan-card--featured {
	color: #fff;
	background: #173f35;
	border-color: #173f35;
	box-shadow: 0 18px 42px rgba(23, 63, 53, .2);
}

.a-frame-plan-card h3 {
	margin: .25rem 0 .45rem;
	color: inherit;
	font-size: 1.35rem;
}

.a-frame-plan-price {
	margin: 0;
	color: #173f35;
	font-size: 1.25rem;
	font-weight: 800;
}

.a-frame-plan-card--featured .a-frame-plan-price,
.a-frame-plan-card--featured .a-frame-plan-tagline {
	color: #f7f2e8;
}

.a-frame-plan-tagline {
	min-height: 4.5em;
	margin: .5rem 0 1rem;
	color: #46534e;
	font-size: .92rem;
}

.a-frame-plan-card ul {
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.a-frame-plan-card li {
	position: relative;
	margin-top: .65rem;
	padding-left: 1.25rem;
	font-size: .9rem;
}

.a-frame-plan-card li::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "✓";
	font-weight: 900;
}

.a-frame-plan-card .a-frame-portal-button {
	width: 100%;
	margin-top: auto;
}

.a-frame-plan-card--featured .a-frame-portal-button {
	color: #173f35;
	background: #fff;
	border-color: #fff;
}

.a-frame-plan-card--featured .a-frame-portal-button:hover,
.a-frame-plan-card--featured .a-frame-portal-button:focus-visible {
	color: #173f35;
	background: #f0dfc2;
	border-color: #f0dfc2;
}

.a-frame-plan-badge {
	display: inline-flex;
	align-self: flex-start;
	padding: .28rem .6rem;
	color: #173f35;
	background: #f0dfc2;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.a-frame-membership-note {
	margin-top: 1.25rem;
	font-size: .9rem;
}

@media (max-width: 700px) {
	.a-frame-membership-heading {
		display: block;
	}

	.a-frame-membership-heading > p {
		margin-top: .85rem;
	}

	.a-frame-plan-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.a-frame-membership-form-wrap {
	margin-bottom: 2rem;
}

.a-frame-partner-contract {
	margin: 1rem 0;
	padding: .9rem 1rem;
	color: #173f35;
	background: #eef5f0;
	border: 1px solid #b9d0c3;
	border-radius: 12px;
}

.a-frame-partner-contract summary {
	cursor: pointer;
	font-weight: 750;
}

.a-frame-partner-contract div {
	margin-top: .75rem;
	font-size: .9rem;
	line-height: 1.55;
}

.a-frame-portal-eyebrow {
	margin: 0 0 0.35rem;
	color: var(--af-portal-forest-light);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.a-frame-portal-login,
.a-frame-owner-form-wrap {
	background: #fff;
	border: 1px solid var(--af-portal-line);
	border-radius: 20px;
	box-shadow: 0 18px 50px rgba(23, 63, 53, 0.08);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.a-frame-portal-login {
	max-width: 560px;
	margin: 2rem auto;
}

.a-frame-portal-login input[type="text"],
.a-frame-portal-login input[type="password"] {
	width: 100%;
	padding: 0.75rem;
	border: 1px solid var(--af-portal-line);
	border-radius: 10px;
}

.a-frame-portal-login input[type="submit"],
.a-frame-portal-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.7rem 1.1rem;
	color: #fff;
	background: var(--af-portal-forest);
	border: 1px solid var(--af-portal-forest);
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	font-weight: 750;
	text-decoration: none;
}

.a-frame-portal-login input[type="submit"]:hover,
.a-frame-portal-login input[type="submit"]:focus-visible,
.a-frame-portal-button:hover,
.a-frame-portal-button:focus-visible {
	color: #fff;
	background: var(--af-portal-forest-light);
	border-color: var(--af-portal-forest-light);
}

.a-frame-portal-button--secondary {
	color: var(--af-portal-forest);
	background: transparent;
}

.a-frame-portal-notice {
	margin: 1rem 0;
	padding: 0.9rem 1rem;
	border-left: 4px solid var(--af-portal-forest);
	border-radius: 8px;
	background: #e7f3ed;
}

.a-frame-portal-notice--error {
	border-color: var(--af-portal-danger);
	background: #fbebeb;
}

.a-frame-owner-dashboard {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 2rem 0 1rem;
}

.a-frame-owner-dashboard h2,
.a-frame-owner-listing h3 {
	margin: 0;
}

.a-frame-owner-bids {
	margin: 2.5rem 0;
}

.a-frame-owner-bid {
	margin-top: 1rem;
	padding: clamp(1rem, 3vw, 1.5rem);
	color: #1f2825;
	background: #fff;
	border: 1px solid var(--af-portal-line);
	border-radius: 16px;
	box-shadow: 0 12px 34px rgba(23, 63, 53, .06);
}

.a-frame-owner-bid-facts {
	color: #46534e;
}

.a-frame-bid-offer-form {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: end;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--af-portal-line);
}

.a-frame-bid-offer-form > div {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: .4rem;
}

.a-frame-bid-offer-form label {
	font-weight: 750;
}

.a-frame-bid-offer-form input,
.a-frame-bid-offer-form select,
.a-frame-bid-offer-form textarea {
	width: 100%;
	min-height: 44px;
	padding: .65rem .7rem;
	color: #1f2825;
	background: #fff;
	border: 1px solid #aeb9b4;
	border-radius: 9px;
	font: inherit;
}

.a-frame-bid-offer-message {
	grid-column: 1 / -1;
}

.a-frame-bid-offer-form .a-frame-portal-button {
	grid-column: 1 / -1;
	justify-self: start;
}

@media (max-width: 900px) {
	.a-frame-bid-offer-form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.a-frame-bid-offer-form {
		grid-template-columns: minmax(0, 1fr);
	}

	.a-frame-bid-offer-message,
	.a-frame-bid-offer-form .a-frame-portal-button {
		grid-column: 1;
	}
}

.a-frame-owner-listings {
	display: grid;
	gap: 0.75rem;
	margin-bottom: 2rem;
}

.a-frame-owner-listing {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.1rem;
	background: var(--af-portal-cream);
	border: 1px solid var(--af-portal-line);
	border-radius: 14px;
}

.a-frame-owner-listing p {
	margin: 0.25rem 0 0;
	color: #5d6662;
	font-size: 0.9rem;
}

.a-frame-owner-listing-actions,
.a-frame-form-actions {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.a-frame-portal-empty {
	margin-bottom: 2rem;
	padding: 1rem;
	background: var(--af-portal-cream);
	border-radius: 12px;
}

.a-frame-owner-bookings {
	margin: 2.5rem 0;
}

.a-frame-booking-list {
	display: grid;
	gap: 1rem;
}

.a-frame-owner-booking {
	padding: 1.1rem;
	background: #fff;
	border: 1px solid var(--af-portal-line);
	border-radius: 14px;
}

.a-frame-owner-booking-summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.a-frame-owner-booking-summary h3,
.a-frame-owner-booking-summary p {
	margin: 0;
}

.a-frame-owner-booking-summary p {
	margin-top: 0.25rem;
	color: #5d6662;
}

.a-frame-booking-status {
	padding: 0.35rem 0.6rem;
	background: #f3ead8;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 750;
	white-space: nowrap;
}

.a-frame-booking-status--confirmed {
	color: var(--af-portal-forest);
	background: #e1f2e8;
}

.a-frame-booking-status--declined,
.a-frame-booking-status--cancelled {
	color: var(--af-portal-danger);
	background: #fbebeb;
}

.a-frame-owner-booking-contact {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 1rem 0;
}

.a-frame-owner-booking-contact div {
	min-width: 0;
}

.a-frame-owner-booking-contact dt {
	color: #626b67;
	font-size: 0.8rem;
}

.a-frame-owner-booking-contact dd {
	margin: 0.2rem 0 0;
	overflow-wrap: anywhere;
	font-weight: 650;
}

.a-frame-owner-booking-message {
	padding: 0.8rem;
	background: var(--af-portal-cream);
	border-radius: 8px;
}

.a-frame-booking-decisions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-top: 1rem;
}

.a-frame-booking-decisions form {
	margin: 0;
}

.a-frame-booking-decisions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0.55rem 0.9rem;
	color: var(--af-portal-forest);
	background: transparent;
	border: 1px solid var(--af-portal-forest);
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
}

.a-frame-booking-decisions .button-primary,
.a-frame-booking-decisions .button:hover,
.a-frame-booking-decisions .button:focus-visible {
	color: #fff;
	background: var(--af-portal-forest);
}

.a-frame-owner-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
	margin-top: 1.5rem;
}

.a-frame-form-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.a-frame-form-field--full,
.a-frame-form-actions {
	grid-column: 1 / -1;
}

.a-frame-form-field label,
.a-frame-form-field legend {
	font-weight: 700;
}

.a-frame-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.a-frame-form-field select,
.a-frame-form-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 0.7rem 0.75rem;
	color: inherit;
	background: #fff;
	border: 1px solid #aaa9a3;
	border-radius: 9px;
	font: inherit;
}

.a-frame-form-field textarea {
	resize: vertical;
}

.a-frame-form-field input:focus,
.a-frame-form-field select:focus,
.a-frame-form-field textarea:focus {
	outline: 3px solid rgba(45, 102, 86, 0.2);
	border-color: var(--af-portal-forest-light);
}

.a-frame-form-field small,
.a-frame-form-help {
	color: #626b67;
	font-size: 0.86rem;
}

.a-frame-term-group {
	display: flex;
	flex-flow: row wrap;
	gap: 0.65rem 1rem;
	padding: 0;
	border: 0;
}

.a-frame-term-group legend {
	width: 100%;
	margin-bottom: 0.35rem;
}

.a-frame-term-group label,
.a-frame-keep-images {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 500;
}

.a-frame-owner-images {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.a-frame-owner-images img {
	width: 88px;
	height: 66px;
	object-fit: cover;
	border-radius: 8px;
}

.a-frame-form-field--consent {
	grid-column: 1 / -1;
	padding: 0.9rem;
	background: var(--af-portal-cream);
	border-radius: 10px;
}

.a-frame-form-field--consent label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
}

.a-frame-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 1080px) {
	.a-frame-plan-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.a-frame-membership-heading,
	.a-frame-plan-grid {
		grid-template-columns: 1fr;
	}

	.a-frame-plan-tagline {
		min-height: 0;
	}

	.a-frame-owner-dashboard,
	.a-frame-owner-listing,
	.a-frame-owner-booking-summary {
		align-items: stretch;
		flex-direction: column;
	}

	.a-frame-owner-booking-contact {
		grid-template-columns: 1fr;
	}

	.a-frame-owner-form {
		grid-template-columns: 1fr;
	}

	.a-frame-form-field,
	.a-frame-form-actions {
		grid-column: 1;
	}

	.a-frame-owner-listing-actions,
	.a-frame-form-actions,
	.a-frame-portal-button {
		width: 100%;
	}

	.a-frame-owner-listing-actions {
		align-items: stretch;
		flex-direction: column;
	}
}

.af-photo-upload .a-frame-owner-images{display:flex;flex-wrap:wrap;gap:12px}
.af-photo-upload .af-keep-photo{display:flex;flex-direction:column;gap:6px;max-width:140px}
.af-photo-upload .a-frame-owner-images img{width:120px;height:90px;object-fit:cover}
.af-photo-upload .af-photo-count{font-weight:600;color:#183c30}
.a-frame-owner-form .cd-form-step{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0}
.a-frame-owner-form [hidden]{display:none!important}
.cd-step-progress{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.cd-step-progress li{padding:12px 8px;background:#e8eee8;border-radius:8px;font-size:14px!important;color:#183c30!important}
.cd-step-progress li[aria-current=step]{border:2px solid #183c30;font-weight:700;background:#dce8dc}
.cd-step-title,.cd-step-help,.cd-step-summary{grid-column:1/-1;scroll-margin-top:24px}
.cd-step-help{font-size:14px;line-height:1.6}.cd-step-summary{padding:16px;background:#e8eee8;border-radius:10px}
.a-frame-owner-form .a-frame-form-actions{flex-wrap:wrap;gap:12px}
.a-frame-owner-form .a-frame-form-actions button{min-height:48px}
@media(max-width:600px){.a-frame-owner-form .cd-form-step{grid-template-columns:minmax(0,1fr)}.cd-step-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.a-frame-owner-form .a-frame-form-actions button{flex:1 1 120px}.cd-step-title{font-size:23px!important}}
.af-photo-upload{padding:20px;border:1px solid #b5c7bc;border-radius:16px;background:#f7f5ee;color:#183c30}
.af-photo-upload input[type=file]{max-width:100%;padding:12px;background:white;color:#183c30;border:1px solid #81998c;border-radius:8px}
.af-photo-upload input[aria-invalid=true]{border:2px solid #9b2525}
.af-photo-upload .af-keep-photo{padding:8px;background:white;border:1px solid #b5c7bc;border-radius:8px;cursor:pointer}
.af-photo-upload input:focus-visible{outline:3px solid #806000;outline-offset:3px}
@media(max-width:600px){.af-photo-upload{padding:14px}.af-photo-upload input[type=file]{font-size:16px;width:100%}}
