.ch-portal-shell {
	--ch-portal-ink: #10252c;
	--ch-portal-deep: #0c3b47;
	--ch-portal-teal: #0f8b8d;
	--ch-portal-gold: #c79a4b;
	--ch-portal-sand: #faf6f0;
	--ch-portal-line: #e7ded2;
	background: var(--ch-portal-sand);
	padding: clamp(30px, 5vw, 72px) 20px 76px;
}

.ch-portal-hero,
.ch-portal-content {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.ch-portal-hero {
	position: relative;
	margin-bottom: 28px;
	padding: clamp(34px, 5.5vw, 66px);
	border-radius: 24px;
	background: radial-gradient(ellipse at 85% 12%, rgba(67, 157, 160, .27), transparent 37%), linear-gradient(125deg, #0c3b47, #10252c 76%);
	color: #fff;
	overflow: hidden;
	box-shadow: 0 22px 56px rgba(16, 37, 44, .16);
}

.ch-portal-hero::after {
	position: absolute;
	right: -64px;
	bottom: -178px;
	width: 410px;
	height: 410px;
	border: 1px solid rgba(222, 194, 137, .34);
	border-radius: 50%;
	content: "";
	box-shadow: 0 0 0 34px rgba(255, 255, 255, .025), 0 0 0 68px rgba(255, 255, 255, .02);
	pointer-events: none;
}

.ch-portal-kicker {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--ch-portal-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
}

.ch-portal-hero h1 {
	position: relative;
	z-index: 1;
	max-width: 780px;
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(36px, 5.2vw, 62px);
	line-height: 1.05;
}

.ch-portal-hero p {
	position: relative;
	z-index: 1;
	max-width: 670px;
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: clamp(15px, 1.7vw, 18px);
}

.ch-portal-auth-grid,
.ch-portal-dashboard {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 22px;
}

.ch-portal-panel,
.ch-portal-pending {
	min-width: 0;
	padding: clamp(22px, 3vw, 34px);
	border: 1px solid var(--ch-portal-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(16, 37, 44, .07);
}

.ch-portal-panel h2,
.ch-portal-pending h2 {
	margin: 0 0 10px;
	color: var(--ch-portal-ink);
	font-size: clamp(24px, 3vw, 32px);
}

.ch-portal-panel > p,
.ch-portal-pending p {
	margin: 0 0 22px;
	color: #5d7280;
}

.ch-portal-form,
.ch-portal-property-form {
	display: grid;
	gap: 15px;
}

.ch-portal-form label,
.ch-portal-property-form label {
	display: grid;
	gap: 7px;
	color: #526b78;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ch-portal-form input:not([type="checkbox"]),
.ch-portal-property-form input:not([type="file"]),
.ch-portal-property-form select,
.ch-portal-form textarea,
.ch-portal-property-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 11px 13px;
	border: 1px solid var(--ch-portal-line);
	border-radius: 10px;
	background: #fff;
	color: var(--ch-portal-ink);
	font: 500 15px/1.4 Inter, sans-serif;
	letter-spacing: normal;
	text-transform: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.ch-portal-form textarea,
.ch-portal-property-form textarea {
	min-height: 118px;
	resize: vertical;
}

.ch-portal-form input:focus,
.ch-portal-property-form input:focus,
.ch-portal-property-form select:focus,
.ch-portal-form textarea:focus,
.ch-portal-property-form textarea:focus {
	border-color: var(--ch-portal-teal);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(15, 139, 141, .13);
}

.ch-portal-form .ch-portal-check {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	color: #415965;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
}

.ch-portal-check input {
	flex: 0 0 auto;
	margin: 3px 0 0;
	accent-color: var(--ch-portal-teal);
}

.ch-portal-form .ch-btn,
.ch-portal-property-form .ch-btn {
	justify-content: center;
	width: 100%;
	min-height: 48px;
	border: 0;
	cursor: pointer;
}

.ch-portal-forgot,
.ch-portal-text-button {
	color: var(--ch-portal-teal);
	font-size: 13px;
	font-weight: 600;
}

.ch-portal-forgot:hover,
.ch-portal-text-button:hover {
	color: var(--ch-portal-deep);
	text-decoration: underline;
}

.ch-portal-register {
	border-top: 3px solid var(--ch-portal-gold);
}

.ch-portal-register small {
	color: #687d88;
	line-height: 1.5;
}

.ch-portal-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.ch-portal-notice {
	margin: 0 0 20px;
	padding: 14px 18px;
	border: 1px solid rgba(15, 139, 141, .23);
	border-left: 4px solid var(--ch-portal-teal);
	border-radius: 10px;
	background: #eff8f6;
	color: var(--ch-portal-ink);
}

.ch-portal-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 24px;
	margin: 22px 0 0;
	color: #526b78;
	font-size: 12px;
}

.ch-portal-trust span::first-letter {
	color: var(--ch-portal-teal);
}

.ch-portal-pending {
	max-width: 740px;
	margin-inline: auto;
}

.ch-portal-pending .ch-btn {
	width: fit-content;
}

.ch-portal-panel-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 25px;
}

.ch-portal-panel-head h2 {
	margin-bottom: 0;
}

.ch-portal-panel-head form {
	padding-top: 8px;
}

.ch-portal-panel h3 {
	margin: 0 0 16px;
	font-size: 22px;
}

.ch-portal-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ch-portal-wide {
	grid-column: 1 / -1;
}

.ch-portal-property-form input[type="file"] {
	width: 100%;
	min-height: 48px;
	padding: 10px;
	border: 1px dashed #cbbda8;
	border-radius: 10px;
	background: var(--ch-portal-sand);
	color: #526b78;
	font: 13px Inter, sans-serif;
	letter-spacing: normal;
	text-transform: none;
}

.ch-portal-hint {
	margin: 15px 0;
	color: #687d88;
	font-size: 13px;
	line-height: 1.55;
}

.ch-portal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ch-portal-actions .ch-btn {
	width: auto;
	min-height: 46px;
	justify-content: center;
	border: 1px solid var(--ch-portal-teal);
	cursor: pointer;
}

.ch-portal-btn-outline {
	background: transparent !important;
	color: var(--ch-portal-teal) !important;
}

.ch-portal-list h2 {
	margin: 0 0 17px;
}

.ch-portal-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-portal-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 0;
	border-top: 1px solid var(--ch-portal-line);
}

.ch-portal-list li div {
	display: grid;
	gap: 3px;
}

.ch-portal-list li strong {
	color: var(--ch-portal-ink);
	font-family: "Playfair Display", Georgia, serif;
}

.ch-portal-list li span {
	color: #687d88;
	font-size: 12px;
}

.ch-portal-text-button {
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

@media (max-width: 820px) {
	.ch-portal-auth-grid,
	.ch-portal-dashboard {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 560px) {
	.ch-portal-shell {
		padding-inline: 14px;
	}

	.ch-portal-hero {
		border-radius: 16px;
	}

	.ch-portal-form-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-portal-wide {
		grid-column: auto;
	}

	.ch-portal-actions .ch-btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ch-portal-form input,
	.ch-portal-property-form input,
	.ch-portal-property-form select,
	.ch-portal-form textarea,
	.ch-portal-property-form textarea {
		transition: none;
	}
}
