/**
 * Havenlytics License Manager — Customer portal CSS
 *
 * Isolation strategy (no !important except prefers-reduced-motion):
 * Theme prose :is(.hvnly-prose, .entry-content) ul/a/h* ≈ (0,1,1)–(0,3,1).
 * Lists: doubled .hlm-portal.hlm-portal ul/ol/li + component lists.
 * Anchors: mirror theme :not(.hvnly-btn):not(.wp-block-button__link) to meet
 * or beat (0,3,1); exclude .hlm-portal__btn/.hlm-portal__logout from default
 * link color so chrome keeps its own colors. Layout breakout keeps the 1360px
 * shell centered against theme .hvnly-page-content__inner constraints.
 */

/* ── 1) Shell + local variables + box-sizing ─────────────── */

.hlm-portal {
	--hlm-portal-danger: #e25555;
	--hlm-portal-sidebar-w: 264px;
	--hlm-portal-gap: clamp(20px, 2.2vw, 36px);
	--hlm-portal-gutter: var(--hvnly--gutter, 24px);
	--hlm-portal-shell-max: 1360px;
	--hlm-portal-shell-width: min(
		calc(100vw - (2 * var(--hlm-portal-gutter))),
		var(--hlm-portal-shell-max)
	);

	box-sizing: border-box;
	position: relative;
	left: 0;
	width: var(--hlm-portal-shell-width);
	max-width: none;
	margin: 0 0 var(--hvnly--space-16, 48px);
	margin-left: calc(50% - 50vw + (100vw - var(--hlm-portal-shell-width)) / 2);
	padding: var(--hvnly--space-7, 16px) 0 var(--hvnly--space-13, 32px);
	transform: none;
	color: var(--hvnly--ink-800, #1b1932);
	font-family: var(--hvnly--font-body, 'Inter', sans-serif);
	font-size: var(--hvnly--text-base, 14.5px);
	line-height: var(--hvnly--leading-normal, 1.6);
}

.hlm-portal *,
.hlm-portal *::before,
.hlm-portal *::after {
	box-sizing: border-box;
}

/* ── 2) Element baseline (portal-owned, not theme prose) ─── */

.hlm-portal h1,
.hlm-portal h2,
.hlm-portal h3 {
	margin: 0;
	padding: 0;
	font-family: var(--hvnly--font-display, 'Plus Jakarta Sans', sans-serif);
	font-weight: var(--hvnly--weight-bold, 700);
	letter-spacing: var(--hvnly--tracking-snug, -0.02em);
	color: var(--hvnly--ink-900, #11101f);
	line-height: var(--hvnly--leading-tight, 1.15);
}

.hlm-portal p {
	margin: 0;
	padding: 0;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

/*
 * Theme: :is(.hvnly-prose,.entry-content) a:not(.hvnly-btn):not(.wp-block-button__link) → (0,3,1).
 * Mirror the :not() exclusions so portal wins without !important.
 * Exclude portal chrome (btn/logout) so those keep their own color rules.
 */
.hlm-portal.hlm-portal a:not(.hvnly-btn):not(.wp-block-button__link):not(.hlm-portal__btn):not(.hlm-portal__logout) {
	color: var(--hvnly--core-primary, #6c60fe);
	text-decoration: none;
	text-underline-offset: unset;
	text-decoration-thickness: unset;
	transition: var(--hvnly--transition-color, color 0.2s ease);
}

.hlm-portal.hlm-portal a:not(.hvnly-btn):not(.wp-block-button__link):not(.hlm-portal__btn):not(.hlm-portal__logout):hover {
	color: var(--hvnly--core-secondary, #8a7bff);
	text-decoration: none;
}

.hlm-portal.hlm-portal a:not(.hvnly-btn):not(.wp-block-button__link):not(.hlm-portal__btn):not(.hlm-portal__logout):visited {
	color: var(--hvnly--core-primary, #6c60fe);
	text-decoration: none;
}

/* Beat :is(.entry-content) ul/ol (0,1,1); doubled class keeps portal ownership clear. */
.hlm-portal.hlm-portal ul,
.hlm-portal.hlm-portal ol {
	list-style: none;
	margin: 0;
	padding: 0;
	padding-inline-start: 0;
}

.hlm-portal.hlm-portal li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hlm-portal.hlm-portal li::marker {
	content: '';
	font-size: 0;
	color: transparent;
}

.hlm-portal.hlm-portal li + li {
	margin-top: 0;
}

.hlm-portal button {
	margin: 0;
	font-family: inherit;
	color: inherit;
}

.hlm-portal table {
	border-collapse: collapse;
	border-spacing: 0;
	margin: 0;
}

.hlm-portal th,
.hlm-portal td {
	padding: 0;
	font-weight: inherit;
	text-align: left;
	vertical-align: middle;
}

.hlm-portal code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.92em;
	font-weight: 600;
	background: transparent;
	padding: 0;
	border-radius: 0;
}

.hlm-portal dl,
.hlm-portal dt,
.hlm-portal dd {
	margin: 0;
	padding: 0;
}

.hlm-portal img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: middle;
}

.hlm-portal strong {
	font-weight: var(--hvnly--weight-semibold, 600);
	color: inherit;
}

.hlm-portal a:focus-visible,
.hlm-portal button:focus-visible,
.hlm-portal .hlm-portal__nav-btn:focus-visible,
.hlm-portal a.hlm-portal__logout:focus-visible {
	outline: 2px solid rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.55);
	outline-offset: 2px;
}

/* ── 3) Icon containers (explicit; no broad span rules) ──── */

.hlm-portal .hlm-portal__stat-icon,
.hlm-portal .hlm-portal__product-icon,
.hlm-portal .hlm-portal__download-icon,
.hlm-portal .hlm-portal__support-icon,
.hlm-portal .hlm-portal__empty-icon,
.hlm-portal .hlm-portal__login-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	min-width: 42px;
	min-height: 42px;
	padding: 0;
	border-radius: 12px;
	background: var(--hvnly--core-gradient-soft, rgba(108, 96, 254, 0.1));
	color: var(--hvnly--core-primary, #6c60fe);
	font-size: 16px;
	line-height: 1;
	overflow: visible;
}

.hlm-portal .hlm-portal__stat-icon i,
.hlm-portal .hlm-portal__product-icon i,
.hlm-portal .hlm-portal__download-icon i,
.hlm-portal .hlm-portal__support-icon i,
.hlm-portal .hlm-portal__empty-icon i,
.hlm-portal .hlm-portal__login-mark i,
.hlm-portal .hlm-portal__nav-btn i,
.hlm-portal .hlm-portal__membership-products i {
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	font-size: 1em;
	line-height: 1;
	color: inherit;
	opacity: 1;
	visibility: visible;
}

.hlm-portal .hlm-portal__download-icon {
	width: 52px;
	height: 52px;
	min-width: 52px;
	min-height: 52px;
	font-size: 18px;
}

.hlm-portal .hlm-portal__login-mark {
	width: 56px;
	height: 56px;
	min-width: 56px;
	min-height: 56px;
	margin: 0 auto 16px;
	font-size: 22px;
}

/* ── 4) Topbar ───────────────────────────────────────────── */

.hlm-portal .hlm-portal__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hvnly--space-9, 20px);
	width: 100%;
	padding: var(--hvnly--space-8, 18px) var(--hvnly--space-11, 24px);
	margin-bottom: var(--hlm-portal-gap);
	background:
		linear-gradient(135deg, rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.07) 0%, rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.02) 55%, var(--hvnly--surface-0, #fff) 100%);
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-md, 16px);
	box-shadow: var(--hvnly--shadow-sm, 0 2px 8px rgba(17, 16, 31, 0.06));
}

.hlm-portal .hlm-portal__topbar-identity {
	display: flex;
	align-items: center;
	gap: var(--hvnly--space-5, 12px);
	min-width: 0;
	flex: 1 1 auto;
}

.hlm-portal .hlm-portal__topbar-brand {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	min-width: 0;
}

.hlm-portal .hlm-portal__topbar-kicker {
	flex: 0 0 100%;
	margin: 0;
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wider, 0.06em);
	text-transform: uppercase;
	color: var(--hvnly--core-primary, #6c60fe);
}

.hlm-portal .hlm-portal__topbar-title {
	font-family: var(--hvnly--font-display, 'Plus Jakarta Sans', sans-serif);
	font-size: var(--hvnly--text-xl, 18px);
	font-weight: var(--hvnly--weight-bold, 700);
	color: var(--hvnly--ink-900, #11101f);
	letter-spacing: var(--hvnly--tracking-snug, -0.02em);
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: min(420px, 100%);
}

.hlm-portal .hlm-portal__topbar-email {
	font-size: var(--hvnly--text-sm, 13.5px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__topbar-email--inline {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: min(320px, 100%);
}

.hlm-portal .hlm-portal__topbar-actions {
	display: flex;
	align-items: center;
	gap: var(--hvnly--space-4, 10px);
	flex-shrink: 0;
}

.hlm-portal .hlm-portal__avatar {
	width: 48px;
	height: 48px;
	border-radius: var(--hvnly--radius-full, 50%);
	object-fit: cover;
	border: 2px solid var(--hvnly--border, #e7e5f3);
	flex-shrink: 0;
	background: var(--hvnly--surface-100, #f3f2fa);
}

.hlm-portal .hlm-portal__avatar--sm {
	width: 36px;
	height: 36px;
}

.hlm-portal .hlm-portal__avatar--fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--hvnly--core-primary, #6c60fe);
	font-size: 18px;
}

.hlm-portal .hlm-portal__chip {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: var(--hvnly--radius-pill, 999px);
	background: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.1);
	color: var(--hvnly--core-primary, #6c60fe);
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wide, 0.04em);
	line-height: 1.4;
	white-space: nowrap;
}

.hlm-portal .hlm-portal__nav-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	margin: 0;
	padding: 8px 14px;
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-pill, 999px);
	background: var(--hvnly--surface-0, #fff);
	color: var(--hvnly--ink-800, #1b1932);
	font-family: inherit;
	font-size: var(--hvnly--text-sm, 13.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	cursor: pointer;
	transition: var(--hvnly--transition-lift, background 0.2s ease, border-color 0.2s ease);
}

.hlm-portal .hlm-portal__nav-toggle:hover {
	border-color: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.35);
	color: var(--hvnly--core-primary, #6c60fe);
}

/* ── 5) Shell / sidebar / nav ────────────────────────────── */

.hlm-portal .hlm-portal__shell {
	display: grid;
	grid-template-columns: var(--hlm-portal-sidebar-w) minmax(0, 1fr);
	gap: var(--hlm-portal-gap);
	align-items: start;
	width: 100%;
}

.hlm-portal .hlm-portal__sidebar {
	position: sticky;
	top: calc(var(--hvnly--header-height, 76px) + 16px);
	display: flex;
	flex-direction: column;
	min-height: 480px;
	padding: var(--hvnly--space-7, 16px);
	background: var(--hvnly--surface-0, #fff);
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-md, 16px);
	box-shadow: var(--hvnly--shadow-sm, 0 2px 8px rgba(17, 16, 31, 0.06));
}

.hlm-portal .hlm-portal__sidebar-scroll {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-8, 18px);
}

.hlm-portal .hlm-portal__nav-wrap {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-8, 18px);
}

.hlm-portal .hlm-portal__nav-group {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-3, 8px);
}

.hlm-portal .hlm-portal__nav-label {
	margin: 0;
	padding: 0 var(--hvnly--space-4, 10px);
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wider, 0.06em);
	text-transform: uppercase;
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__nav,
.hlm-portal .hlm-portal__product-list,
.hlm-portal .hlm-portal__timeline,
.hlm-portal .hlm-portal__membership-products ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hlm-portal .hlm-portal__nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.hlm-portal .hlm-portal__nav > li {
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
}

.hlm-portal .hlm-portal__product-list > li,
.hlm-portal .hlm-portal__membership-products li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hlm-portal .hlm-portal__timeline > li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hlm-portal .hlm-portal__nav > li::marker,
.hlm-portal .hlm-portal__product-list > li::marker,
.hlm-portal .hlm-portal__timeline > li::marker,
.hlm-portal .hlm-portal__membership-products li::marker {
	content: '';
	font-size: 0;
	color: transparent;
}

.hlm-portal .hlm-portal__nav > li + li,
.hlm-portal .hlm-portal__product-list > li + li,
.hlm-portal .hlm-portal__membership-products li + li {
	margin-top: 0;
}

.hlm-portal .hlm-portal__nav-btn {
	display: flex;
	align-items: center;
	gap: var(--hvnly--space-5, 12px);
	width: 100%;
	margin: 0;
	padding: 11px 12px;
	border: 0;
	border-radius: var(--hvnly--radius-sm, 10px);
	background: transparent;
	color: var(--hvnly--ink-600, #4b4866);
	font-family: inherit;
	font-size: var(--hvnly--text-sm, 13.5px);
	font-weight: var(--hvnly--weight-medium, 500);
	text-align: left;
	cursor: pointer;
	transition: background var(--hvnly--duration-instant, 0.2s) var(--hvnly--ease, ease),
		color var(--hvnly--duration-instant, 0.2s) var(--hvnly--ease, ease);
}

.hlm-portal .hlm-portal__nav-btn i {
	width: 1.15em;
	text-align: center;
	opacity: 0.85;
	flex-shrink: 0;
}

.hlm-portal .hlm-portal__nav-btn span {
	min-width: 0;
	overflow-wrap: normal;
	word-break: normal;
}

.hlm-portal .hlm-portal__nav-btn:hover {
	background: var(--hvnly--surface-100, #f3f2fa);
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal .hlm-portal__nav-btn.is-active {
	background: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.1);
	color: var(--hvnly--core-primary, #6c60fe);
	font-weight: var(--hvnly--weight-semibold, 600);
	box-shadow: inset 3px 0 0 var(--hvnly--core-primary, #6c60fe);
}

.hlm-portal .hlm-portal__sidebar-foot {
	display: flex;
	align-items: center;
	gap: var(--hvnly--space-4, 10px);
	margin-top: var(--hvnly--space-9, 20px);
	padding-top: var(--hvnly--space-7, 16px);
	border-top: 1px solid var(--hvnly--border, #e7e5f3);
}

.hlm-portal .hlm-portal__sidebar-foot-meta {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
	line-height: 1.35;
}

.hlm-portal .hlm-portal__sidebar-foot-meta strong {
	font-size: var(--hvnly--text-sm, 13.5px);
	color: var(--hvnly--ink-900, #11101f);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hlm-portal .hlm-portal__sidebar-foot-meta span,
.hlm-portal .hlm-portal__sidebar-foot-meta em {
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-style: normal;
	color: var(--hvnly--ink-400, #7a7793);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hlm-portal.hlm-portal a.hlm-portal__logout:not(.hvnly-btn):not(.wp-block-button__link) {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
	padding: 6px 8px;
	border-radius: var(--hvnly--radius-sm, 10px);
	color: var(--hvnly--ink-600, #4b4866);
	font-size: var(--hvnly--text-xs, 12px);
	font-weight: var(--hvnly--weight-semibold, 600);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__logout:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__logout:not(.hvnly-btn):not(.wp-block-button__link):visited {
	background: var(--hvnly--surface-100, #f3f2fa);
	color: var(--hlm-portal-danger);
	text-decoration: none;
}

.hlm-portal .hlm-portal__nav-backdrop {
	display: none;
}

.hlm-portal .hlm-portal__main {
	min-width: 0;
	width: 100%;
}

/* ── 6) Main panels / headers / typography ───────────────── */

.hlm-portal .hlm-portal__panel {
	display: none;
	animation: hlm-portal-fade 0.28s var(--hvnly--ease, ease);
}

.hlm-portal .hlm-portal__panel.is-active {
	display: block;
}

@keyframes hlm-portal-fade {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.hlm-portal .hlm-portal__header {
	margin-bottom: var(--hvnly--space-12, 28px);
}

.hlm-portal .hlm-portal__eyebrow {
	margin: 0 0 var(--hvnly--space-3, 8px);
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wider, 0.06em);
	text-transform: uppercase;
	color: var(--hvnly--core-primary, #6c60fe);
	white-space: nowrap;
}

.hlm-portal .hlm-portal__header h1,
.hlm-portal .hlm-portal__section-card h2,
.hlm-portal .hlm-portal__membership-head h2,
.hlm-portal .hlm-portal__download-body h3,
.hlm-portal .hlm-portal__support-card h3,
.hlm-portal .hlm-portal__empty h3,
.hlm-portal .hlm-portal__login-copy h2,
.hlm-portal .hlm-portal__login-card h3 {
	margin: 0 0 var(--hvnly--space-3, 8px);
	font-family: var(--hvnly--font-display, 'Plus Jakarta Sans', sans-serif);
	font-weight: var(--hvnly--weight-bold, 700);
	letter-spacing: var(--hvnly--tracking-snug, -0.02em);
	color: var(--hvnly--ink-900, #11101f);
	line-height: var(--hvnly--leading-tight, 1.15);
	overflow-wrap: normal;
	word-break: normal;
	hyphens: manual;
}

.hlm-portal .hlm-portal__header h1 {
	font-size: clamp(22px, 2.1vw, 30px);
}

.hlm-portal .hlm-portal__header p,
.hlm-portal .hlm-portal__section-head p {
	margin: 0;
	color: var(--hvnly--ink-600, #4b4866);
	max-width: 62ch;
}

.hlm-portal .hlm-portal__section-head {
	margin-bottom: var(--hvnly--space-7, 16px);
}

/* ── 7) Buttons
 * Theme prose uses a:not(.hvnly-btn):not(.wp-block-button__link) → (0,3,1).
 * Portal anchors must meet or exceed that: .hlm-portal.hlm-portal a.hlm-portal__btn → (0,3,1),
 * later cascade wins; variants add another class → (0,4,1).
 */
.hlm-portal.hlm-portal a.hlm-portal__btn:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn,
.hlm-portal .hlm-portal__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid transparent;
	border-radius: var(--hvnly--radius-pill, 999px);
	font-family: inherit;
	font-size: var(--hvnly--text-sm, 13.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	text-underline-offset: unset;
	text-decoration-thickness: unset;
	transition: var(--hvnly--transition-lift, all 0.25s ease);
	white-space: nowrap;
}

.hlm-portal.hlm-portal a.hlm-portal__btn:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__btn:not(.hvnly-btn):not(.wp-block-button__link):visited,
.hlm-portal.hlm-portal a.hlm-portal__btn:not(.hvnly-btn):not(.wp-block-button__link):focus-visible {
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--sm:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn--sm,
.hlm-portal .hlm-portal__btn--sm {
	padding: 7px 14px;
	font-size: var(--hvnly--text-xs, 12px);
}

.hlm-portal.hlm-portal a.hlm-portal__btn--primary:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn--primary,
.hlm-portal .hlm-portal__btn--primary {
	background: var(--hvnly--core-gradient, linear-gradient(135deg, #6c60fe 0%, #8a7bff 100%));
	color: var(--hvnly--on-primary, #fff);
	box-shadow: var(--hvnly--shadow-primary, 0 8px 24px rgba(108, 96, 254, 0.35));
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--primary:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__btn--primary:not(.hvnly-btn):not(.wp-block-button__link):visited,
.hlm-portal button.hlm-portal__btn--primary:hover,
.hlm-portal .hlm-portal__btn--primary:hover {
	color: var(--hvnly--on-primary, #fff);
	box-shadow: var(--hvnly--shadow-primary-hover, 0 14px 34px rgba(108, 96, 254, 0.45));
	transform: translateY(-1px);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--secondary:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn--secondary,
.hlm-portal .hlm-portal__btn--secondary {
	background: var(--hvnly--surface-0, #fff);
	border-color: var(--hvnly--border, #e7e5f3);
	color: var(--hvnly--ink-800, #1b1932);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--secondary:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__btn--secondary:not(.hvnly-btn):not(.wp-block-button__link):visited,
.hlm-portal button.hlm-portal__btn--secondary:hover,
.hlm-portal .hlm-portal__btn--secondary:hover {
	border-color: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.35);
	color: var(--hvnly--core-primary, #6c60fe);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--ghost:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn--ghost,
.hlm-portal .hlm-portal__btn--ghost {
	background: transparent;
	border-color: var(--hvnly--border, #e7e5f3);
	color: var(--hvnly--ink-600, #4b4866);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--ghost:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__btn--ghost:not(.hvnly-btn):not(.wp-block-button__link):visited,
.hlm-portal button.hlm-portal__btn--ghost:hover,
.hlm-portal .hlm-portal__btn--ghost:hover {
	background: var(--hvnly--surface-100, #f3f2fa);
	color: var(--hvnly--ink-900, #11101f);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--danger:not(.hvnly-btn):not(.wp-block-button__link),
.hlm-portal button.hlm-portal__btn--danger,
.hlm-portal .hlm-portal__btn--danger {
	background: rgba(226, 85, 85, 0.08);
	border-color: rgba(226, 85, 85, 0.25);
	color: var(--hlm-portal-danger);
	text-decoration: none;
}

.hlm-portal.hlm-portal a.hlm-portal__btn--danger:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__btn--danger:not(.hvnly-btn):not(.wp-block-button__link):visited,
.hlm-portal button.hlm-portal__btn--danger:hover,
.hlm-portal .hlm-portal__btn--danger:hover {
	background: rgba(226, 85, 85, 0.14);
	color: var(--hlm-portal-danger);
	text-decoration: none;
}

/* ── 8) Cards / stat grid / split / badges ───────────────── */

.hlm-portal .hlm-portal__stat-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(200px, 1fr));
	gap: var(--hvnly--space-7, 16px);
	margin-bottom: var(--hlm-portal-gap);
}

.hlm-portal .hlm-portal__stat-card,
.hlm-portal .hlm-portal__section-card,
.hlm-portal .hlm-portal__membership-card,
.hlm-portal .hlm-portal__download-card,
.hlm-portal .hlm-portal__site-card,
.hlm-portal .hlm-portal__support-card,
.hlm-portal .hlm-portal__support-hero,
.hlm-portal .hlm-portal__login-card,
.hlm-portal .hlm-portal__login-panel {
	background: var(--hvnly--surface-0, #fff);
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-md, 16px);
	box-shadow: var(--hvnly--shadow-sm, 0 2px 8px rgba(17, 16, 31, 0.06));
}

.hlm-portal .hlm-portal__stat-card {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-3, 8px);
	min-height: 156px;
	min-width: 0;
	padding: var(--hvnly--space-9, 20px);
	transition: box-shadow var(--hvnly--duration-fast, 0.25s) var(--hvnly--ease, ease),
		border-color var(--hvnly--duration-fast, 0.25s) var(--hvnly--ease, ease);
}

.hlm-portal .hlm-portal__stat-card:hover {
	border-color: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.22);
	box-shadow: var(--hvnly--shadow-md, 0 8px 24px rgba(17, 16, 31, 0.08));
}

.hlm-portal .hlm-portal__stat-card .hlm-portal__eyebrow {
	margin-bottom: 0;
}

.hlm-portal .hlm-portal__stat-value {
	font-family: var(--hvnly--font-display, 'Plus Jakarta Sans', sans-serif);
	font-size: clamp(18px, 1.35vw, 22px);
	font-weight: var(--hvnly--weight-bold, 700);
	color: var(--hvnly--ink-900, #11101f);
	letter-spacing: var(--hvnly--tracking-snug, -0.02em);
	line-height: 1.25;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: manual;
}

.hlm-portal .hlm-portal__stat-value-stack {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.hlm-portal .hlm-portal__stat-value-stack .hlm-portal__stat-value-date {
	display: block;
}

.hlm-portal .hlm-portal__stat-value-stack .hlm-portal__stat-value-time {
	display: block;
	font-family: var(--hvnly--font-body, 'Inter', sans-serif);
	font-size: var(--hvnly--text-sm, 13.5px);
	font-weight: var(--hvnly--weight-medium, 500);
	color: var(--hvnly--ink-600, #4b4866);
	letter-spacing: normal;
	line-height: 1.35;
}

.hlm-portal .hlm-portal__stat-meta {
	margin-top: auto;
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
	overflow-wrap: normal;
	word-break: normal;
}

.hlm-portal .hlm-portal__split {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: var(--hvnly--space-7, 16px);
	align-items: stretch;
}

.hlm-portal .hlm-portal__section-card {
	padding: var(--hvnly--space-11, 24px);
	min-width: 0;
}

.hlm-portal .hlm-portal__section-card--spaced {
	margin-top: var(--hlm-portal-gap);
}

.hlm-portal .hlm-portal__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: var(--hvnly--radius-pill, 999px);
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wide, 0.04em);
	line-height: 1.4;
	white-space: nowrap;
}

.hlm-portal .hlm-portal__badge--active {
	background: rgba(43, 191, 140, 0.12);
	color: #1f8f68;
}

.hlm-portal .hlm-portal__badge--grace {
	background: rgba(245, 166, 35, 0.14);
	color: #a66b0d;
}

.hlm-portal .hlm-portal__badge--planned {
	background: var(--hvnly--surface-100, #f3f2fa);
	color: var(--hvnly--ink-600, #4b4866);
}

.hlm-portal .hlm-portal__badge--suspended,
.hlm-portal .hlm-portal__badge--expired {
	background: rgba(226, 85, 85, 0.1);
	color: var(--hlm-portal-danger);
}

/* ── 9) Products / timeline / membership / downloads / … ─── */

.hlm-portal .hlm-portal__product-list {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-4, 10px);
}

.hlm-portal .hlm-portal__product-row {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	gap: var(--hvnly--space-5, 12px);
	align-items: center;
	padding: var(--hvnly--space-6, 14px) var(--hvnly--space-5, 12px);
	border-radius: var(--hvnly--radius-sm, 10px);
	background: var(--hvnly--surface-50, #fafafd);
	border: 1px solid transparent;
	list-style: none;
}

.hlm-portal .hlm-portal__product-row:hover {
	border-color: var(--hvnly--border, #e7e5f3);
}

.hlm-portal .hlm-portal__product-row strong {
	display: block;
	color: var(--hvnly--ink-900, #11101f);
	font-size: var(--hvnly--text-md, 15px);
	overflow-wrap: normal;
	word-break: normal;
}

.hlm-portal .hlm-portal__product-row > div > span {
	display: block;
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__timeline {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.hlm-portal .hlm-portal__timeline > li {
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr);
	gap: var(--hvnly--space-5, 12px);
	padding: var(--hvnly--space-5, 12px) 0;
	border-bottom: 1px solid var(--hvnly--border, #e7e5f3);
	list-style: none;
}

.hlm-portal .hlm-portal__timeline > li + li {
	margin-top: 0;
}

.hlm-portal .hlm-portal__timeline > li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.hlm-portal .hlm-portal__timeline-dot {
	width: 10px;
	height: 10px;
	margin-top: 6px;
	border-radius: 50%;
	background: var(--hvnly--core-primary, #6c60fe);
	box-shadow: 0 0 0 4px rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.12);
}

.hlm-portal .hlm-portal__timeline strong {
	display: block;
	font-size: var(--hvnly--text-sm, 13.5px);
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal .hlm-portal__timeline time {
	display: block;
	margin-top: 2px;
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__membership-stack {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-7, 16px);
}

.hlm-portal .hlm-portal__membership-card {
	padding: var(--hvnly--space-12, 28px);
}

.hlm-portal .hlm-portal__membership-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--hvnly--space-7, 16px);
	margin-bottom: var(--hvnly--space-9, 20px);
}

.hlm-portal .hlm-portal__info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--hvnly--space-7, 16px);
	margin: 0;
}

.hlm-portal .hlm-portal__info-grid > div {
	padding: var(--hvnly--space-5, 12px) var(--hvnly--space-6, 14px);
	background: var(--hvnly--surface-50, #fafafd);
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-sm, 10px);
	min-width: 0;
}

.hlm-portal .hlm-portal__info-grid dt {
	margin: 0 0 4px;
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wider, 0.06em);
	text-transform: uppercase;
	color: var(--hvnly--ink-400, #7a7793);
	white-space: nowrap;
}

.hlm-portal .hlm-portal__info-grid dd {
	margin: 0;
	font-size: var(--hvnly--text-md, 15px);
	font-weight: var(--hvnly--weight-semibold, 600);
	color: var(--hvnly--ink-900, #11101f);
	overflow-wrap: anywhere;
	word-break: normal;
}

.hlm-portal .hlm-portal__info-grid code,
.hlm-portal .hlm-portal__profile-dl code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.92em;
	font-weight: 600;
}

.hlm-portal .hlm-portal__membership-products {
	margin-top: var(--hvnly--space-9, 20px);
}

.hlm-portal .hlm-portal__membership-products ul {
	margin: var(--hvnly--space-4, 10px) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--hvnly--space-3, 8px);
}

.hlm-portal .hlm-portal__membership-products li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: var(--hvnly--radius-pill, 999px);
	background: var(--hvnly--surface-100, #f3f2fa);
	color: var(--hvnly--ink-800, #1b1932);
	font-size: var(--hvnly--text-xs, 12px);
	font-weight: var(--hvnly--weight-medium, 500);
}

.hlm-portal .hlm-portal__membership-products i {
	color: var(--hvnly--core-primary, #6c60fe);
}

.hlm-portal .hlm-portal__download-grid {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-5, 12px);
}

.hlm-portal .hlm-portal__download-card {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto;
	gap: var(--hvnly--space-7, 16px);
	align-items: center;
	padding: var(--hvnly--space-9, 20px) var(--hvnly--space-11, 24px);
}

.hlm-portal .hlm-portal__download-body p {
	margin: 0 0 8px;
	color: var(--hvnly--ink-600, #4b4866);
	font-size: var(--hvnly--text-sm, 13.5px);
}

.hlm-portal .hlm-portal__download-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__download-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--hvnly--space-4, 10px);
}

.hlm-portal .hlm-portal__site-list {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-5, 12px);
}

.hlm-portal .hlm-portal__site-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hvnly--space-7, 16px);
	padding: var(--hvnly--space-8, 18px) var(--hvnly--space-11, 24px);
}

.hlm-portal .hlm-portal__site-main {
	min-width: 0;
}

.hlm-portal .hlm-portal__site-main strong {
	font-size: var(--hvnly--text-lg, 16.5px);
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal.hlm-portal a.hlm-portal__site-link:not(.hvnly-btn):not(.wp-block-button__link) {
	display: block;
	margin-top: 4px;
	font-size: var(--hvnly--text-xs, 12px);
	word-break: break-all;
	text-decoration: none;
	color: var(--hvnly--core-primary, #6c60fe);
}

.hlm-portal.hlm-portal a.hlm-portal__site-link:not(.hvnly-btn):not(.wp-block-button__link):hover,
.hlm-portal.hlm-portal a.hlm-portal__site-link:not(.hvnly-btn):not(.wp-block-button__link):visited {
	color: var(--hvnly--core-secondary, #8a7bff);
	text-decoration: none;
}

.hlm-portal .hlm-portal__site-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: 10px;
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__site-actions {
	flex-shrink: 0;
}

.hlm-portal .hlm-portal__table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-md, 16px);
	background: var(--hvnly--surface-0, #fff);
	box-shadow: var(--hvnly--shadow-sm, 0 2px 8px rgba(17, 16, 31, 0.06));
}

.hlm-portal .hlm-portal__table {
	width: 100%;
	min-width: 0;
	border-collapse: collapse;
	margin: 0;
}

.hlm-portal .hlm-portal__table th,
.hlm-portal .hlm-portal__table td {
	padding: 16px 18px;
	text-align: left;
	border-bottom: 1px solid var(--hvnly--border, #e7e5f3);
	vertical-align: middle;
}

.hlm-portal .hlm-portal__table th {
	font-size: var(--hvnly--text-2xs, 11.5px);
	font-weight: var(--hvnly--weight-semibold, 600);
	letter-spacing: var(--hvnly--tracking-wider, 0.06em);
	text-transform: uppercase;
	color: var(--hvnly--ink-400, #7a7793);
	background: var(--hvnly--surface-50, #fafafd);
	white-space: nowrap;
}

.hlm-portal .hlm-portal__table tr:last-child td {
	border-bottom: 0;
}

.hlm-portal .hlm-portal__table td strong {
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal .hlm-portal__support-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hvnly--space-7, 16px);
	padding: var(--hvnly--space-12, 28px);
	margin-bottom: var(--hvnly--space-7, 16px);
	background:
		linear-gradient(135deg, rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.08) 0%, rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.02) 100%),
		var(--hvnly--surface-0, #fff);
}

.hlm-portal .hlm-portal__support-hero strong {
	display: block;
	font-size: var(--hvnly--text-2xl, 19px);
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal .hlm-portal__support-hero > div > span {
	display: block;
	margin-top: 4px;
	font-size: var(--hvnly--text-sm, 13.5px);
	color: var(--hvnly--ink-600, #4b4866);
}

.hlm-portal .hlm-portal__support-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--hvnly--space-7, 16px);
}

.hlm-portal .hlm-portal__support-card {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-5, 12px);
	padding: var(--hvnly--space-8, 18px);
	align-items: flex-start;
}

.hlm-portal .hlm-portal__profile-dl {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr);
	gap: 12px 18px;
	margin: 0;
}

.hlm-portal .hlm-portal__profile-dl dt {
	margin: 0;
	font-size: var(--hvnly--text-xs, 12px);
	font-weight: var(--hvnly--weight-semibold, 600);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__profile-dl dd {
	margin: 0;
	color: var(--hvnly--ink-900, #11101f);
	font-weight: var(--hvnly--weight-medium, 500);
	word-break: break-word;
}

.hlm-portal .hlm-portal__profile-dl--meta {
	margin-top: var(--hvnly--space-8, 18px);
	padding-top: var(--hvnly--space-7, 16px);
	border-top: 1px solid var(--hvnly--border, #e7e5f3);
}

.hlm-portal .hlm-portal__avatar-block {
	display: flex;
	align-items: flex-start;
	gap: var(--hvnly--space-6, 14px);
	margin: 0 0 var(--hvnly--space-8, 18px);
}

.hlm-portal .hlm-portal__avatar--profile {
	width: 72px;
	height: 72px;
	font-size: 28px;
}

.hlm-portal .hlm-portal__avatar-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
}

.hlm-portal .hlm-portal__form {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--hvnly--space-5, 12px);
	width: 100%;
	margin: 0 0 var(--hvnly--space-7, 16px);
}

.hlm-portal .hlm-portal__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	max-width: 28rem;
}

.hlm-portal .hlm-portal__label {
	margin: 0;
	font-size: var(--hvnly--text-xs, 12px);
	font-weight: var(--hvnly--weight-semibold, 600);
	color: var(--hvnly--ink-600, #4b4866);
}

.hlm-portal .hlm-portal__input {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-sm, 10px);
	background: var(--hvnly--surface-0, #fff);
	color: var(--hvnly--ink-900, #11101f);
	font-family: inherit;
	font-size: var(--hvnly--text-sm, 13.5px);
	line-height: 1.4;
}

.hlm-portal .hlm-portal__input:focus {
	outline: 2px solid rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.35);
	outline-offset: 1px;
	border-color: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.45);
}

.hlm-portal .hlm-portal__subhead {
	margin: var(--hvnly--space-8, 18px) 0 var(--hvnly--space-5, 12px);
	font-family: var(--hvnly--font-display, 'Plus Jakarta Sans', sans-serif);
	font-size: var(--hvnly--text-md, 15px);
	font-weight: var(--hvnly--weight-semibold, 600);
	color: var(--hvnly--ink-900, #11101f);
}

.hlm-portal .hlm-portal__hint--block {
	display: block;
	margin: 0;
	max-width: 36rem;
	line-height: 1.45;
}

.hlm-portal .hlm-portal__notice {
	margin: 0 0 var(--hvnly--space-7, 16px);
	padding: 12px 16px;
	border-radius: var(--hvnly--radius-sm, 10px);
	font-size: var(--hvnly--text-sm, 13.5px);
	font-weight: var(--hvnly--weight-medium, 500);
}

.hlm-portal .hlm-portal__notice--success {
	background: rgba(43, 191, 140, 0.12);
	color: #1f8f68;
	border: 1px solid rgba(43, 191, 140, 0.28);
}

.hlm-portal .hlm-portal__notice--error {
	background: rgba(226, 85, 85, 0.1);
	color: var(--hlm-portal-danger);
	border: 1px solid rgba(226, 85, 85, 0.25);
}

.hlm-portal .hlm-portal__callout {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: var(--hvnly--space-7, 16px) 0;
	padding: 14px 16px;
	border-radius: var(--hvnly--radius-sm, 10px);
	background: rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.06);
	border: 1px solid rgba(var(--hvnly--core-primary-rgb, 108, 96, 254), 0.14);
	color: var(--hvnly--ink-600, #4b4866);
	font-size: var(--hvnly--text-sm, 13.5px);
}

.hlm-portal .hlm-portal__callout--tight {
	margin-top: var(--hvnly--space-5, 12px);
}

.hlm-portal .hlm-portal__callout i {
	margin-top: 2px;
	color: var(--hvnly--core-primary, #6c60fe);
}

.hlm-portal .hlm-portal__hint {
	font-size: var(--hvnly--text-xs, 12px);
	color: var(--hvnly--ink-400, #7a7793);
}

.hlm-portal .hlm-portal__empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--hvnly--space-4, 10px);
	padding: var(--hvnly--space-13, 32px);
	background: var(--hvnly--surface-50, #fafafd);
	border: 1px dashed var(--hvnly--border, #e7e5f3);
	border-radius: var(--hvnly--radius-md, 16px);
	color: var(--hvnly--ink-600, #4b4866);
}

.hlm-portal .hlm-portal__empty--inset {
	padding: var(--hvnly--space-8, 18px);
	width: 100%;
}

.hlm-portal .hlm-portal__empty p {
	margin: 0;
}

.hlm-portal.hlm-portal--login {
	padding-bottom: var(--hvnly--space-16, 48px);
}

.hlm-portal .hlm-portal__login-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
	gap: clamp(20px, 3vw, 40px);
	align-items: center;
	padding: clamp(24px, 3vw, 40px);
}

.hlm-portal .hlm-portal__login-copy h2 {
	font-size: clamp(26px, 3vw, 36px);
	max-width: 16ch;
}

.hlm-portal .hlm-portal__login-copy p {
	margin: 0;
	color: var(--hvnly--ink-600, #4b4866);
	font-size: var(--hvnly--text-lg, 16.5px);
	max-width: 42ch;
}

.hlm-portal .hlm-portal__login-card {
	padding: var(--hvnly--space-12, 28px);
	text-align: center;
	box-shadow: var(--hvnly--shadow-md, 0 8px 24px rgba(17, 16, 31, 0.08));
}

.hlm-portal .hlm-portal__login-card p {
	margin: 0 0 22px;
	color: var(--hvnly--ink-600, #4b4866);
}

.hlm-portal .hlm-portal__login-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

/* ── 10) Responsive ──────────────────────────────────────── */

@media (max-width: 1280px) {
	.hlm-portal {
		--hlm-portal-sidebar-w: 248px;
	}

	.hlm-portal .hlm-portal__stat-grid {
		grid-template-columns: repeat(2, minmax(220px, 1fr));
	}
}

@media (max-width: 1100px) {
	.hlm-portal .hlm-portal__split {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__support-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1024px) {
	.hlm-portal .hlm-portal__login-panel {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__login-copy h2 {
		max-width: none;
	}
}

@media (max-width: 900px) {
	.hlm-portal .hlm-portal__shell {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__nav-toggle {
		display: inline-flex;
	}

	.hlm-portal .hlm-portal__sidebar {
		position: fixed;
		top: 0;
		left: 0;
		z-index: calc(var(--hvnly--z-mobile-menu, 1200) + 2);
		width: min(320px, 88vw);
		height: 100vh;
		max-height: 100dvh;
		margin: 0;
		border-radius: 0;
		border-left: 0;
		border-top: 0;
		border-bottom: 0;
		transform: translateX(-105%);
		transition: transform var(--hvnly--duration-menu-panel, 320ms) var(--hvnly--ease-menu, ease);
		overflow-y: auto;
	}

	.hlm-portal.is-nav-open .hlm-portal__sidebar {
		transform: translateX(0);
		box-shadow: var(--hvnly--shadow-lg, 0 24px 64px rgba(17, 16, 31, 0.12));
	}

	.hlm-portal .hlm-portal__nav-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: calc(var(--hvnly--z-mobile-menu, 1200) + 1);
		background: var(--hvnly--overlay, rgba(14, 13, 27, 0.5));
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--hvnly--duration-fast, 0.25s) ease,
			visibility var(--hvnly--duration-fast, 0.25s);
	}

	.hlm-portal .hlm-portal__nav-backdrop[hidden] {
		display: none;
	}

	.hlm-portal.is-nav-open .hlm-portal__nav-backdrop {
		display: block;
		opacity: 1;
		visibility: visible;
	}

	.hlm-portal .hlm-portal__download-card {
		grid-template-columns: 52px minmax(0, 1fr);
	}

	.hlm-portal .hlm-portal__download-actions {
		grid-column: 2;
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		flex-wrap: wrap;
	}
}

@media (max-width: 768px) {
	.hlm-portal {
		padding-top: var(--hvnly--space-5, 12px);
	}

	.hlm-portal .hlm-portal__topbar {
		align-items: flex-start;
		flex-wrap: wrap;
		padding: var(--hvnly--space-6, 14px) var(--hvnly--space-7, 16px);
	}

	.hlm-portal .hlm-portal__topbar-actions {
		width: 100%;
		justify-content: space-between;
	}

	.hlm-portal .hlm-portal__stat-grid {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__info-grid {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__site-card {
		flex-direction: column;
		align-items: flex-start;
	}

	.hlm-portal .hlm-portal__support-hero {
		flex-direction: column;
		align-items: flex-start;
	}

	.hlm-portal .hlm-portal__support-grid {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__table thead {
		display: none;
	}

	.hlm-portal .hlm-portal__table,
	.hlm-portal .hlm-portal__table tbody,
	.hlm-portal .hlm-portal__table tr,
	.hlm-portal .hlm-portal__table td {
		display: block;
		width: 100%;
	}

	.hlm-portal .hlm-portal__table tr {
		padding: 14px 16px;
		border-bottom: 1px solid var(--hvnly--border, #e7e5f3);
	}

	.hlm-portal .hlm-portal__table tr:last-child {
		border-bottom: 0;
	}

	.hlm-portal .hlm-portal__table td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		padding: 6px 0;
		border-bottom: 0;
	}

	.hlm-portal .hlm-portal__table td::before {
		content: attr(data-label);
		flex-shrink: 0;
		font-size: var(--hvnly--text-2xs, 11.5px);
		font-weight: var(--hvnly--weight-semibold, 600);
		letter-spacing: var(--hvnly--tracking-wider, 0.06em);
		text-transform: uppercase;
		color: var(--hvnly--ink-400, #7a7793);
	}
}

@media (max-width: 600px) {
	.hlm-portal .hlm-portal__product-row {
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.hlm-portal .hlm-portal__product-row .hlm-portal__badge {
		grid-column: 2;
		justify-self: start;
	}

	.hlm-portal .hlm-portal__download-card {
		grid-template-columns: 1fr;
	}

	.hlm-portal .hlm-portal__download-actions {
		grid-column: 1;
	}

	.hlm-portal .hlm-portal__profile-dl {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.hlm-portal .hlm-portal__profile-dl dt {
		margin-top: 8px;
	}

	.hlm-portal .hlm-portal__topbar-email--inline {
		flex: 0 0 100%;
	}

	.hlm-portal .hlm-portal__login-panel,
	.hlm-portal .hlm-portal__login-card {
		padding: var(--hvnly--space-8, 18px);
	}
}

@media (max-width: 480px) {
	.hlm-portal {
		--hlm-portal-gutter: 16px;
	}

	.hlm-portal .hlm-portal__nav-toggle span {
		display: none;
	}

	.hlm-portal .hlm-portal__topbar-title {
		font-size: var(--hvnly--text-lg, 16.5px);
		max-width: 100%;
		white-space: normal;
	}

	.hlm-portal .hlm-portal__header h1 {
		font-size: var(--hvnly--text-2xl, 19px);
	}
}

/* ── 11) Reduced motion (!important allowed here only) ───── */

@media (prefers-reduced-motion: reduce) {
	.hlm-portal .hlm-portal__panel,
	.hlm-portal .hlm-portal__sidebar,
	.hlm-portal .hlm-portal__nav-backdrop,
	.hlm-portal .hlm-portal__btn,
	.hlm-portal a.hlm-portal__btn,
	.hlm-portal button.hlm-portal__btn,
	.hlm-portal .hlm-portal__nav-btn,
	.hlm-portal .hlm-portal__stat-card {
		animation: none !important;
		transition: none !important;
	}
}

/* TASK45CB */
.hlm-portal__sidebar-foot--logout-only { justify-content: flex-start; }
.hlm-portal__sidebar-foot--logout-only .hlm-portal__logout { width: 100%; }

