:root {
	--bh-np-green-950: #12372d;
	--bh-np-green-900: #174a3b;
	--bh-np-green-700: #23765c;
	--bh-np-green-500: #38a278;
	--bh-np-green-100: #dcf3e9;
	--bh-np-green-50: #f2faf7;
	--bh-np-gold: #c9a55c;
	--bh-np-ink: #17312a;
	--bh-np-muted: #688078;
	--bh-np-border: #dce8e3;
	--bh-np-white: #ffffff;
	--bh-np-shadow: 0 22px 60px rgba(18, 55, 45, 0.14);
}

* {
	box-sizing: border-box;
}

html,
body.bh-np-page {
	min-height: 100%;
	margin: 0;
}

body.bh-np-page {
	background: #f4f8f6;
	color: var(--bh-np-ink);
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.55;
}

body.bh-np-page a {
	color: var(--bh-np-green-700);
	text-decoration: none;
}

#bh-np-app {
	min-height: 100vh;
}

.bh-np-login-layout {
	display: grid;
	grid-template-columns: minmax(400px, 1.08fr) minmax(440px, .92fr);
	min-height: 100vh;
}

.bh-np-login-brand {
	align-items: flex-start;
	background:
		radial-gradient(circle at 15% 18%, rgba(201, 165, 92, .2), transparent 25%),
		radial-gradient(circle at 78% 82%, rgba(56, 162, 120, .28), transparent 34%),
		linear-gradient(145deg, #12372d 0%, #174f3e 56%, #1c654d 100%);
	color: var(--bh-np-white);
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	padding: clamp(46px, 7vw, 110px);
	position: relative;
}

.bh-np-login-brand::after {
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 50%;
	content: "";
	height: 520px;
	position: absolute;
	right: -260px;
	top: -170px;
	width: 520px;
}

.bh-np-brand-mark {
	align-items: center;
	background: rgba(255, 255, 255, .98);
	border-radius: 24px;
	box-shadow: 0 15px 36px rgba(0, 0, 0, .16);
	color: var(--bh-np-green-900);
	display: inline-flex;
	font-size: 31px;
	font-weight: 800;
	height: 82px;
	justify-content: center;
	letter-spacing: -.06em;
	margin-bottom: 38px;
	position: relative;
	width: 82px;
}

.bh-np-brand-mark i {
	background: var(--bh-np-green-500);
	border-radius: 100% 0 100% 0;
	height: 21px;
	position: absolute;
	right: 9px;
	top: 8px;
	transform: rotate(6deg);
	width: 16px;
}

.bh-np-brand-mark-small {
	border-radius: 13px;
	box-shadow: none;
	flex: 0 0 auto;
	font-size: 18px;
	height: 46px;
	margin: 0;
	width: 46px;
}

.bh-np-brand-mark-small i {
	height: 12px;
	right: 5px;
	top: 5px;
	width: 9px;
}

.bh-np-kicker {
	color: var(--bh-np-green-500);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .13em;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.bh-np-login-brand .bh-np-kicker {
	color: #8de1bf;
}

.bh-np-login-brand h1 {
	font-size: clamp(40px, 5.2vw, 72px);
	font-weight: 760;
	letter-spacing: -.048em;
	line-height: 1.02;
	margin: 0;
	max-width: 760px;
}

.bh-np-brand-copy {
	color: rgba(255, 255, 255, .78);
	font-size: clamp(17px, 1.5vw, 21px);
	margin: 28px 0 0;
	max-width: 590px;
}

.bh-np-brand-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 44px;
}

.bh-np-brand-points span {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 100px;
	font-size: 13px;
	font-weight: 650;
	padding: 8px 14px;
}

.bh-np-login-panel {
	align-items: center;
	background:
		linear-gradient(rgba(255, 255, 255, .78), rgba(255, 255, 255, .9)),
		repeating-linear-gradient(135deg, #eff7f3 0, #eff7f3 1px, transparent 1px, transparent 24px);
	display: flex;
	justify-content: center;
	padding: clamp(28px, 5vw, 80px);
}

.bh-np-login-card {
	background: var(--bh-np-white);
	border: 1px solid rgba(220, 232, 227, .9);
	border-radius: 26px;
	box-shadow: var(--bh-np-shadow);
	max-width: 510px;
	padding: clamp(30px, 4vw, 54px);
	width: 100%;
}

.bh-np-login-card h2 {
	font-size: 38px;
	letter-spacing: -.035em;
	line-height: 1.1;
	margin: 0;
}

.bh-np-form-intro {
	color: var(--bh-np-muted);
	margin: 12px 0 30px;
}

.bh-np-mobile-logo {
	align-items: center;
	display: none;
	gap: 12px;
	margin-bottom: 30px;
}

.bh-np-login-form label,
.bh-np-login-form input {
	display: block;
	width: 100%;
}

.bh-np-login-form > label {
	font-size: 13px;
	font-weight: 720;
	margin: 20px 0 7px;
}

.bh-np-login-form input[type="text"],
.bh-np-login-form input[type="password"] {
	appearance: none;
	background: #fbfdfc;
	border: 1px solid #cfded8;
	border-radius: 11px;
	color: var(--bh-np-ink);
	font: inherit;
	outline: none;
	padding: 14px 15px;
	transition: border-color .2s, box-shadow .2s;
}

.bh-np-login-form input:focus {
	border-color: var(--bh-np-green-500);
	box-shadow: 0 0 0 4px rgba(56, 162, 120, .13);
}

.bh-np-form-row {
	align-items: center;
	display: flex;
	font-size: 13px;
	justify-content: space-between;
	margin: 19px 0 26px;
}

.bh-np-checkbox {
	align-items: center;
	color: var(--bh-np-muted);
	display: inline-flex !important;
	gap: 8px;
	width: auto !important;
}

.bh-np-checkbox input {
	accent-color: var(--bh-np-green-700);
	height: 16px;
	margin: 0;
	width: 16px;
}

.bh-np-primary-button {
	background: linear-gradient(135deg, var(--bh-np-green-700), var(--bh-np-green-900));
	border: 0;
	border-radius: 11px;
	box-shadow: 0 10px 24px rgba(35, 118, 92, .2);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 750;
	padding: 15px 20px;
	transition: transform .2s, box-shadow .2s;
	width: 100%;
}

.bh-np-primary-button:hover {
	box-shadow: 0 13px 30px rgba(35, 118, 92, .29);
	transform: translateY(-1px);
}

.bh-np-login-help {
	color: var(--bh-np-muted);
	font-size: 12px;
	margin: 24px 0 0;
	text-align: center;
}

.bh-np-alert {
	background: #fff3f2;
	border: 1px solid #f4c7c2;
	border-radius: 10px;
	color: #8f2e26;
	font-size: 14px;
	margin: 20px 0;
	padding: 12px 14px;
}

.bh-np-portal {
	min-height: 100vh;
}

.bh-np-topbar {
	align-items: center;
	background: var(--bh-np-white);
	border-bottom: 1px solid var(--bh-np-border);
	display: flex;
	justify-content: space-between;
	min-height: 78px;
	padding: 12px clamp(20px, 4vw, 64px);
	position: sticky;
	top: 0;
	z-index: 20;
}

.bh-np-topbar-brand,
.bh-np-topbar-actions {
	align-items: center;
	display: flex;
}

.bh-np-topbar-brand {
	gap: 13px;
}

.bh-np-topbar-brand > span:last-child,
.bh-np-user-name {
	display: flex;
	flex-direction: column;
}

.bh-np-topbar-brand strong {
	color: var(--bh-np-ink);
	font-size: 15px;
}

.bh-np-topbar-brand small,
.bh-np-user-name small {
	color: var(--bh-np-muted);
	font-size: 11px;
}

.bh-np-topbar-actions {
	gap: 12px;
}

.bh-np-admin-button,
.bh-np-password-button,
.bh-np-logout {
	border: 1px solid var(--bh-np-border);
	border-radius: 9px;
	font-size: 13px;
	font-weight: 700;
	padding: 9px 13px;
}

.bh-np-admin-button {
	background: var(--bh-np-green-900);
	border-color: var(--bh-np-green-900);
	color: #fff !important;
}

.bh-np-password-button {
	background: var(--bh-np-green-50);
	border-color: #c9e5d9;
	color: var(--bh-np-green-900) !important;
}

.bh-np-password-button.is-active {
	box-shadow: inset 0 0 0 1px var(--bh-np-green-700);
}

.bh-np-avatar {
	align-items: center;
	background: var(--bh-np-green-100);
	border-radius: 50%;
	color: var(--bh-np-green-900);
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	height: 38px;
	justify-content: center;
	margin-left: 4px;
	width: 38px;
}

.bh-np-user-name strong {
	font-size: 13px;
}

.bh-np-dashboard {
	margin: 0 auto;
	max-width: 1480px;
	padding: clamp(16px, 2.4vw, 30px) clamp(20px, 4vw, 64px) 30px;
}

.bh-np-dashboard-context {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 18px;
}

.bh-np-company-badge {
	background: var(--bh-np-white);
	border: 1px solid var(--bh-np-border);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	min-width: 230px;
	padding: 13px 17px;
}

.bh-np-company-badge span,
.bh-np-company-badge label {
	color: var(--bh-np-muted);
	font-size: 11px;
}

.bh-np-company-badge strong {
	font-size: 14px;
	margin-top: 3px;
}

.bh-np-company-switcher select {
	background: #fbfdfc;
	border: 1px solid #cfded8;
	border-radius: 8px;
	color: var(--bh-np-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	margin-top: 5px;
	min-width: 245px;
	padding: 7px 32px 7px 10px;
}

.bh-np-tile-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bh-np-tile {
	background: var(--bh-np-white);
	border: 1px solid var(--bh-np-border);
	border-radius: 19px;
	box-shadow: 0 8px 25px rgba(18, 55, 45, .045);
	display: flex;
	flex-direction: column;
	min-height: 260px;
	padding: 26px;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}

.bh-np-tile:not(.is-disabled):hover {
	border-color: #add8c6;
	box-shadow: 0 16px 35px rgba(18, 55, 45, .1);
	transform: translateY(-2px);
}

.bh-np-tile h2 {
	font-size: 20px;
	letter-spacing: -.02em;
	margin: 21px 0 8px;
}

.bh-np-tile p {
	color: var(--bh-np-muted);
	font-size: 14px;
	margin: 0 0 20px;
}

.bh-np-tile a,
.bh-np-tile-status {
	align-items: center;
	display: flex;
	font-size: 12px;
	font-weight: 760;
	gap: 8px;
	margin-top: auto;
}

.bh-np-tile a span {
	font-size: 17px;
}

.bh-np-tile-status {
	color: #91a29c;
}

.bh-np-tile-icon {
	align-items: center;
	background: var(--bh-np-green-50);
	border-radius: 13px;
	display: flex;
	height: 48px;
	justify-content: center;
	position: relative;
	width: 48px;
}

.bh-np-tile-icon::before,
.bh-np-tile-icon::after {
	border: 2px solid var(--bh-np-green-700);
	content: "";
	position: absolute;
}

.bh-np-icon-company::before {
	border-radius: 2px;
	height: 21px;
	width: 23px;
}

.bh-np-icon-company::after {
	border-width: 0 2px 0 0;
	height: 21px;
	width: 0;
}

.bh-np-icon-calendar::before {
	border-radius: 3px;
	height: 20px;
	width: 23px;
}

.bh-np-icon-calendar::after {
	border-width: 2px 0 0;
	height: 7px;
	width: 23px;
}

.bh-np-icon-check::before {
	border-radius: 4px;
	height: 23px;
	width: 23px;
}

.bh-np-icon-check::after {
	border-width: 0 0 3px 3px;
	height: 6px;
	transform: rotate(-45deg) translate(1px, -1px);
	width: 12px;
}

.bh-np-icon-location::before {
	border-radius: 50% 50% 50% 0;
	height: 21px;
	transform: rotate(-45deg) translate(2px, -2px);
	width: 21px;
}

.bh-np-icon-location::after {
	background: var(--bh-np-green-700);
	border: 0;
	border-radius: 50%;
	height: 6px;
	transform: translateY(-4px);
	width: 6px;
}

.bh-np-icon-standard::before {
	border-radius: 2px;
	height: 24px;
	width: 20px;
}

.bh-np-icon-standard::after {
	border-width: 2px 0 0;
	box-shadow: 0 6px 0 -1px var(--bh-np-green-700), 0 12px 0 -1px var(--bh-np-green-700);
	height: 12px;
	width: 12px;
}

.bh-np-icon-materiality::before {
	border-radius: 3px;
	height: 23px;
	width: 23px;
}

.bh-np-icon-materiality::after {
	border-width: 2px 0 0 2px;
	box-shadow: 7px -7px 0 -1px var(--bh-np-green-700);
	height: 8px;
	transform: rotate(45deg);
	width: 8px;
}

.bh-np-icon-chart::before {
	border-width: 0 0 2px 2px;
	height: 21px;
	width: 24px;
}

.bh-np-icon-chart::after {
	border-width: 2px 0 0 2px;
	height: 10px;
	transform: rotate(38deg);
	width: 17px;
}

.bh-np-icon-target::before {
	border-radius: 50%;
	height: 25px;
	width: 25px;
}

.bh-np-icon-target::after {
	background: var(--bh-np-green-700);
	border: 0;
	border-radius: 50%;
	height: 7px;
	width: 7px;
}

.bh-np-icon-document::before {
	border-radius: 2px;
	height: 25px;
	width: 19px;
}

.bh-np-icon-document::after {
	border-width: 2px 0 0;
	box-shadow: 0 5px 0 -1px var(--bh-np-green-700);
	height: 5px;
	width: 11px;
}

.bh-np-icon-users::before {
	border-radius: 50%;
	height: 10px;
	top: 9px;
	width: 10px;
}

.bh-np-icon-users::after {
	border-radius: 12px 12px 3px 3px;
	bottom: 9px;
	height: 10px;
	width: 23px;
}

.bh-np-dashboard-footer {
	color: var(--bh-np-muted);
	display: flex;
	font-size: 11px;
	justify-content: space-between;
	margin-top: 34px;
	padding-top: 20px;
}

.bh-np-access-denied {
	background: #fff;
	border: 1px solid #f0c7c3;
	border-radius: 12px;
	margin: 60px auto;
	max-width: 620px;
	padding: 25px;
}

.bh-np-password-main {
	margin: 0 auto;
	max-width: 900px;
	padding: clamp(30px, 6vw, 76px) clamp(18px, 4vw, 46px);
}

.bh-np-password-card {
	background: var(--bh-np-white);
	border: 1px solid var(--bh-np-border);
	border-radius: 20px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, .08);
	padding: clamp(25px, 5vw, 48px);
}

.bh-np-password-heading {
	align-items: flex-start;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-bottom: 30px;
}

.bh-np-password-heading h1 {
	font-size: clamp(30px, 4vw, 42px);
	letter-spacing: -.035em;
	line-height: 1.1;
	margin: 0;
}

.bh-np-password-heading > div > p:last-child {
	color: var(--bh-np-muted);
	margin: 10px 0 0;
}

.bh-np-back-button,
.bh-np-cancel-button {
	border: 1px solid var(--bh-np-border);
	border-radius: 10px;
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	justify-content: center;
	padding: 10px 15px;
}

.bh-np-password-notice {
	border: 1px solid;
	border-radius: 11px;
	font-size: 14px;
	margin-bottom: 25px;
	padding: 13px 15px;
}

.bh-np-password-notice-error {
	background: #fff3f2;
	border-color: #f4c7c2;
	color: #8f2e26;
}

.bh-np-password-notice-success {
	background: #edf9f3;
	border-color: #b9e5d0;
	color: #176347;
}

.bh-np-password-form {
	display: flex;
	flex-direction: column;
	max-width: 560px;
}

.bh-np-password-form label {
	font-size: 13px;
	font-weight: 720;
	margin: 18px 0 7px;
}

.bh-np-password-form input[type="password"] {
	appearance: none;
	background: #fbfdfc;
	border: 1px solid #cfded8;
	border-radius: 11px;
	color: var(--bh-np-ink);
	font: inherit;
	outline: none;
	padding: 14px 15px;
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
}

.bh-np-password-form input[type="password"]:focus {
	border-color: var(--bh-np-green-500);
	box-shadow: 0 0 0 4px rgba(56, 162, 120, .13);
}

.bh-np-password-form > small {
	color: var(--bh-np-muted);
	font-size: 11px;
	margin-top: 6px;
}

.bh-np-password-rules {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 14px 0 2px;
	padding: 0;
}

.bh-np-password-rules li,
.bh-np-password-match {
	align-items: center;
	color: var(--bh-np-muted);
	display: flex;
	font-size: 12px;
	gap: 8px;
	line-height: 1.35;
	margin: 0;
	transition: color .2s;
}

.bh-np-password-rules li span,
.bh-np-password-match span {
	align-items: center;
	background: #e4ebe8;
	border-radius: 50%;
	color: transparent;
	display: inline-flex;
	flex: 0 0 18px;
	height: 18px;
	justify-content: center;
	transition: background-color .2s, color .2s;
	width: 18px;
}

.bh-np-password-rules li span::before,
.bh-np-password-match span::before {
	content: "✓";
	font-size: 11px;
	font-weight: 800;
}

.bh-np-password-rules li.is-valid,
.bh-np-password-match.is-valid {
	color: #176347;
	font-weight: 650;
}

.bh-np-password-rules li.is-valid span,
.bh-np-password-match.is-valid span {
	background: #238460;
	color: #fff;
}

.bh-np-password-match {
	margin-top: 10px;
}

.bh-np-password-match.is-mismatch {
	color: #9a3b32;
}

.bh-np-password-match.is-mismatch span {
	background: #f3d4d0;
	color: #9a3b32;
}

.bh-np-password-match.is-mismatch span::before {
	content: "×";
	font-size: 15px;
}

.bh-np-password-form-actions {
	align-items: center;
	display: flex;
	gap: 12px;
	margin-top: 28px;
}

.bh-np-password-form-actions .bh-np-primary-button {
	width: auto;
}

@media (max-width: 1100px) {
	.bh-np-login-layout {
		grid-template-columns: minmax(340px, .9fr) minmax(430px, 1.1fr);
	}

	.bh-np-login-brand {
		padding: 54px;
	}

	.bh-np-tile-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 800px) {
	.bh-np-login-layout {
		display: block;
	}

	.bh-np-login-brand {
		display: none;
	}

	.bh-np-login-panel {
		min-height: 100vh;
		padding: 24px;
	}

	.bh-np-mobile-logo {
		display: flex;
	}

	.bh-np-topbar {
		align-items: flex-start;
		gap: 12px;
	}

	.bh-np-topbar-actions {
		flex-wrap: wrap;
		justify-content: flex-end;
	}

	.bh-np-user-name {
		display: none;
	}

	.bh-np-dashboard-context {
		justify-content: stretch;
	}

	.bh-np-dashboard-context .bh-np-company-badge {
		width: 100%;
	}

	.bh-np-company-switcher select {
		min-width: 0;
		width: 100%;
	}
}

@media (max-width: 580px) {
	.bh-np-login-panel {
		padding: 0;
	}

	.bh-np-login-card {
		border: 0;
		border-radius: 0;
		box-shadow: none;
		min-height: 100vh;
		padding: 30px 22px;
	}

	.bh-np-form-row {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
	}

	.bh-np-topbar {
		padding: 10px 14px;
	}

	.bh-np-topbar-brand > span:last-child {
		display: none;
	}

	.bh-np-admin-button,
	.bh-np-password-button,
	.bh-np-logout {
		font-size: 11px;
		padding: 8px 9px;
	}

	.bh-np-avatar {
		display: none;
	}

	.bh-np-dashboard {
		padding: 14px 16px 24px;
	}

	.bh-np-tile-grid {
		grid-template-columns: 1fr;
	}

	.bh-np-tile {
		min-height: 225px;
	}

	.bh-np-password-heading {
		flex-direction: column;
	}

	.bh-np-password-form-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.bh-np-password-form-actions .bh-np-primary-button {
		width: 100%;
	}

	.bh-np-password-rules {
		grid-template-columns: 1fr;
	}
}
