/* Client Portal frontend polish (scoped to portal output only) */
.cp-portal{
	--cp-bg: #f2f5f7;
	--cp-surface: #ffffff;
	--cp-text: #0b0d10;
	--cp-heading-text: #0f172a;
	--cp-muted-62: #64748b;
	--cp-muted-50: rgba(11,13,16,.64);
	--cp-border: #d5dbe3;
	--cp-border-soft: rgba(11,13,16,.09);
	--cp-border-faint: rgba(11,13,16,.06);
	--cp-fill-01: rgba(11,13,16,.02);
	--cp-fill-02: rgba(11,13,16,.035);
	--cp-brand: #8c0500;
	--cp-brand-hot: #e10600;
	--cp-link: var(--cp-brand);
	--cp-link-hover: var(--cp-brand-hot);
	--cp-btn-primary-bg: var(--cp-brand);
	--cp-btn-primary-text: #ffffff;
	--cp-btn-primary-border: #7d0500;
	--cp-btn-secondary-bg: #e2e8f0;
	--cp-btn-secondary-text: #1f2937;
	--cp-btn-secondary-hover: #cbd5e1;
	--cp-focus-ring: rgba(140,5,0,.24);
	--cp-pill-active-bg: #0f766e;
	--cp-pill-completed-bg: #166534;
	--cp-pill-pending-bg: #b45309;
	--cp-pill-overdue-bg: #b91c1c;
	--cp-pill-upcoming-bg: #1d4ed8;
	--cp-pill-draft-bg: #6b7280;
	--cp-pill-neutral-bg: #475569;
	--cp-pill-text: #ffffff;
	--cp-shell-sidebar-bg: #0f172a;
	--cp-shell-topbar-bg: #ffffff;
	--cp-shell-footer-bg: #ffffff;
	--cp-shell-sidebar-text: #f8fafc;
	--cp-shell-sidebar-muted: rgba(248,250,252,.86);
	--cp-shell-nav-hover-bg: rgba(255,255,255,.12);
	--cp-shell-nav-active-bg: rgba(255,255,255,.20);
	--cp-shell-nav-border: rgba(255,255,255,.16);
	--cp-shell-sidebar-width: 280px;
	--cp-shell-topbar-height: 64px;
	--cp-shell-footer-height: 52px;
	--cp-font-body: "Segoe UI", "Helvetica Neue", sans-serif;
	--cp-font-heading: "Poppins", "Segoe UI", sans-serif;
	--cp-font-button: var(--cp-font-body);
	--cp-font-size: 16px;
	--cp-font-weight-heading: 700;
	--cp-font-weight-body: 400;
	--cp-font-weight-button: 600;
	--cp-radius-global: 12px;
	--cp-radius-card: 16px;
	--cp-radius-input: 10px;
	--cp-radius-pill: 999px;
	--cp-space-1: 10px;
	--cp-space-2: 14px;
	--cp-space-3: 18px;
	--cp-space-4: 24px;
	--cp-space-5: 30px;
	--cp-space-6: 36px;
	--cp-shadow-color: rgba(15,23,42,.16);
	--cp-shadow-shell: 0 22px 48px -28px rgba(15,23,42,.36);
	--cp-shadow-card: 0 14px 30px -24px rgba(15,23,42,.28);
	background: transparent;
	color: var(--cp-text);
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	font-size: var(--cp-font-size, 14px);
	font-weight: var(--cp-font-weight-body, 400);
	line-height: 1.5;
	border: 0;
	border-radius: 0;
	padding: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.cp-portal,
.cp-portal *{
	box-sizing: border-box;
}

.cp-portal .cp-container{
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

@media (min-width: 1025px){
	.cp-portal .cp-container{
		max-width: none;
		margin: 0;
		padding: 0;
	}
}

@media (max-width: 1024px){
	.cp-portal .cp-container,
	.cp-portal .cp-wrap,
	.cp-portal .cp-inner,
	.cp-portal [class*="container"]{
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
	}
}

/* App shell layout (Step 2 foundation) */
.cp-portal.cp-portal-shell{
	border-radius: var(--cp-radius-global, 12px);
	overflow: hidden;
}

.cp-portal.cp-portal-shell .cp-shell-app{
	display: flex;
	align-items: stretch;
	min-height: 720px;
	background: var(--cp-bg);
	border: 1px solid var(--cp-border-soft);
	border-radius: inherit;
	overflow: hidden;
}

.cp-portal.cp-portal-shell.cp-shell--full-height .cp-shell-app{
	min-height: 100vh;
}

.cp-portal.cp-portal-shell .cp-shell-sidebar{
	width: var(--cp-shell-sidebar-width, 280px);
	min-width: var(--cp-shell-sidebar-width, 280px);
	max-width: var(--cp-shell-sidebar-width, 280px);
	background: var(--cp-shell-sidebar-bg, #0f172a);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 18px 14px;
	overflow: auto;
}

.cp-portal.cp-portal-shell .cp-shell-brand{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px 12px;
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.cp-portal.cp-portal-shell .cp-shell-brand__logo{
	display: block;
	max-width: 42px;
	max-height: 42px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.cp-portal.cp-portal-shell .cp-shell-brand__text{
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.25;
	color: #ffffff;
}

.cp-portal.cp-portal-shell .cp-shell-nav{
	flex: 1 1 auto;
	min-height: 0;
}
.cp-portal.cp-portal-shell .cp-shell-nav li::before,
.cp-portal.cp-portal-shell .cp-shell-nav li::marker{
	content: '' !important;
	display: none !important;
}

.cp-portal.cp-portal-shell .cp-shell-nav ul{
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cp-portal.cp-portal-shell .cp-shell-nav__item{
	margin: 0;
	padding: 0;
}

.cp-portal.cp-portal-shell .cp-shell-nav__link{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	color: rgba(255,255,255,.88);
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	transition: background-color .15s ease, color .15s ease;
}

.cp-portal.cp-portal-shell .cp-shell-nav__link:hover{
	text-decoration: none;
	color: #ffffff;
	background: rgba(255,255,255,.12);
}

.cp-portal.cp-portal-shell .cp-shell-nav__link.is-active{
	background: rgba(255,255,255,.20);
	color: #ffffff;
}

.cp-portal.cp-portal-shell .cp-shell-nav__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	font-size: 18px;
	line-height: 1;
}

.cp-portal.cp-portal-shell .cp-shell-nav__label{
	min-width: 0;
}

.cp-portal.cp-portal-shell .cp-shell-nav--icons .cp-shell-nav__link{
	justify-content: center;
}

.cp-portal.cp-portal-shell .cp-shell-nav--icons .cp-shell-nav__icon{
	margin: 0;
}

.cp-portal.cp-portal-shell .cp-shell-main{
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: var(--cp-bg);
}

.cp-portal.cp-portal-shell .cp-shell-topbar{
	height: var(--cp-shell-topbar-height, 64px);
	min-height: var(--cp-shell-topbar-height, 64px);
	max-height: var(--cp-shell-topbar-height, 64px);
	background: var(--cp-shell-topbar-bg, #ffffff);
	border-bottom: 1px solid var(--cp-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 0 18px;
}

.cp-portal.cp-portal-shell .cp-shell-topbar__left,
.cp-portal.cp-portal-shell .cp-shell-topbar__right{
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.cp-portal.cp-portal-shell .cp-shell-topbar__route{
	font-size: 15px;
	font-weight: 800;
	color: var(--cp-heading-text);
	line-height: 1.2;
}

.cp-portal.cp-portal-shell .cp-shell-topbar__welcome{
	font-size: 12px;
	font-weight: 700;
	color: var(--cp-muted-62);
	white-space: nowrap;
}

.cp-portal.cp-portal-shell .cp-shell-avatar{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	overflow: hidden;
	background: var(--cp-btn-secondary-bg);
	border: 1px solid var(--cp-border);
	color: var(--cp-heading-text);
	font-size: 12px;
	font-weight: 800;
}

.cp-portal.cp-portal-shell .cp-shell-avatar img{
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.cp-portal.cp-portal-shell .cp-shell-avatar__initials{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.cp-portal.cp-portal-shell .cp-shell-logout{
	min-height: 34px !important;
	padding: 8px 12px !important;
	border: 1px solid var(--cp-border) !important;
	background: var(--cp-btn-secondary-bg) !important;
	color: var(--cp-btn-secondary-text) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 12px !important;
	font-weight: 700 !important;
}

.cp-portal.cp-portal-shell .cp-shell-logout:hover{
	background: var(--cp-btn-secondary-hover) !important;
	color: var(--cp-btn-secondary-text) !important;
	text-decoration: none !important;
}

.cp-portal.cp-portal-shell .cp-shell-content{
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	padding: 18px;
}

.cp-portal.cp-portal-shell .cp-shell-content > .cp-container{
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.cp-portal.cp-portal-shell .cp-shell-footer{
	height: var(--cp-shell-footer-height, 52px);
	min-height: var(--cp-shell-footer-height, 52px);
	max-height: var(--cp-shell-footer-height, 52px);
	background: var(--cp-shell-footer-bg, #ffffff);
	border-top: 1px solid var(--cp-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 0 18px;
	font-size: 12px;
	color: var(--cp-muted-62);
}

.cp-portal.cp-portal-shell .cp-shell-footer a{
	font-weight: 700;
}

@media (max-width: 1024px){
	.cp-portal.cp-portal-shell .cp-shell-app,
	.cp-portal.cp-portal-shell.cp-shell--full-height .cp-shell-app{
		min-height: auto;
		flex-direction: column;
	}

	.cp-portal.cp-portal-shell .cp-shell-sidebar{
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		padding: 12px;
		gap: 10px;
	}

	.cp-portal.cp-portal-shell .cp-shell-nav ul{
		flex-direction: row;
		overflow-x: auto;
		padding-bottom: 2px;
	}

	.cp-portal.cp-portal-shell .cp-shell-nav__link{
		white-space: nowrap;
	}

	.cp-portal.cp-portal-shell .cp-shell-topbar,
	.cp-portal.cp-portal-shell .cp-shell-footer{
		padding-left: 12px;
		padding-right: 12px;
	}

	.cp-portal.cp-portal-shell .cp-shell-content{
		padding: 12px;
	}
}

.cp-portal h1,
.cp-portal h2,
.cp-portal h3,
.cp-portal h4{
	font-family: "Fira Sans Condensed", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--cp-text);
	font-weight: 800;
	line-height: 1.16;
	letter-spacing: .01em;
	margin: 0 0 12px 0;
}

.cp-portal h1{ font-size: 34px; }
.cp-portal h2{ font-size: 27px; }
.cp-portal h3{ font-size: 21px; }
.cp-portal h4{ font-size: 18px; }

.cp-portal .cp-section-title{
	margin-bottom: 10px;
}

.cp-portal .cp-card > .cp-section-title{
	margin-bottom: 14px;
	padding-bottom: 0;
	border-bottom: 0;
}

.cp-portal .cp-page-head{
	margin: 0 0 12px 0;
}

.cp-portal .cp-page-title{
	margin: 0;
}

.cp-portal .cp-page-note{
	margin: 8px 0 0 0;
	max-width: 82ch;
	line-height: 1.55;
}

.cp-portal .cp-page-card{
	margin-top: 0;
}

.cp-portal .cp-settings-card{
	margin-top: 10px;
}

.cp-portal .cp-settings-card .jet-form-builder{
	margin-top: 0;
}

.cp-portal .cp-section-head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.cp-portal .cp-section-head .cp-section-title{
	margin: 0;
}

.cp-portal .cp-section-heading{
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cp-portal .cp-section-subtitle{
	margin: 0;
	max-width: 72ch;
	font-size: 12px;
	line-height: 1.45;
	color: var(--cp-muted-50);
}

.cp-portal .cp-section-link{
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
}

.cp-portal .cp-muted{
	color: var(--cp-muted-62);
}

.cp-portal .cp-sub{
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: var(--cp-muted-50);
}

.cp-portal .cp-note{
	margin-top: 8px;
	margin-bottom: 4px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--cp-muted-62);
}

.cp-portal a{
	color: var(--cp-brand);
	font-weight: 600;
	text-decoration: none;
	text-underline-offset: 2px;
}

.cp-portal a:hover{
	color: var(--cp-brand-hot);
	text-decoration: underline;
}

body.cp-portal-forms a{
	font-weight: 600;
}

.cp-portal a:focus-visible,
.cp-portal button:focus-visible,
.cp-portal input:focus-visible,
.cp-portal select:focus-visible,
.cp-portal textarea:focus-visible,
.cp-portal summary:focus-visible{
	outline: none;
	box-shadow: 0 0 0 4px rgba(11,13,16,.12);
	border-color: rgba(11,13,16,.34);
}

.cp-portal .cp-card{
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	padding: 22px 20px 18px 20px;
	margin: 0 0 14px 0;
	box-shadow: none;
}

@media (max-width: 1024px){
	.cp-portal .cp-card{
		padding: 16px;
		margin: 0 0 12px 0;
		border-radius: 14px;
		border-color: var(--cp-border-soft);
		box-shadow: none;
	}

	.cp-portal .cp-page-card{
		box-shadow: none;
	}
}
.cp-portal .cp-project-shell{
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0 0 14px 0;
	box-shadow: none;
}

.cp-portal .cp-projects-shell{
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

.cp-portal .cp-project-shell > .cp-project-actions{
	margin-bottom: 14px;
}

.cp-portal .cp-project-shell > .cp-card{
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	margin: 0 0 14px 0;
	padding: 22px 20px 18px 20px;
	box-shadow: none;
}

.cp-portal details.cp-accordion.cp-card,
.cp-portal .cp-project-shell > details.cp-accordion.cp-card{
	padding: 0;
}

.cp-portal .cp-project-shell > .cp-project-head{
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 0 14px 0;
	padding: 2px 0 10px 0;
}

.cp-portal .cp-grid{
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0 0 14px 0;
}

@media (min-width: 900px){
	.cp-portal .cp-grid--2{
		grid-template-columns: 1fr 1fr;
		gap: 18px;
	}
}

.cp-portal .cp-kv{
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 12px 0;
	border-top: 1px solid var(--cp-border-faint);
}

.cp-portal .cp-kv:first-child{
	border-top: 0;
	padding-top: 0;
}

.cp-portal .cp-k{
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cp-muted-50);
}

.cp-portal .cp-v{
	text-align: right;
	font-weight: 800;
	color: var(--cp-text);
	line-height: 1.3;
}

.cp-portal .cp-kv--profile{
	align-items: center;
}

.cp-portal .cp-profile-picture{
	display: inline-flex;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	border: 1px solid var(--cp-border-soft);
	overflow: hidden;
	background: var(--cp-fill-01);
}

.cp-portal .cp-profile-picture img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cp-portal .cp-pill{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 7px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .03em;
	text-transform: uppercase;
	border: 0 !important;
	background: #5f6771;
	color: #ffffff !important;
}

.cp-portal .cp-pill--active{
	background: #1f63e0;
	color: #ffffff !important;
}

.cp-portal .cp-pill--paid{
	background: #1f9a54;
	color: #ffffff !important;
}

.cp-portal .cp-pill--paused{
	background: #b67a09;
	color: #ffffff !important;
}

.cp-portal .cp-pill--canceled{
	background: #6b7280;
	color: #ffffff !important;
}

.cp-portal .cp-pill--overdue{
	background: #b3211d;
	color: #ffffff !important;
}

.cp-portal .cp-project-status .cp-pill{
	min-width: 82px;
}

.cp-portal .cp-overdue{
	margin-top: 10px;
}

.cp-portal .cp-actions{
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.cp-portal .cp-actions--spaced{
	margin-top: 12px;
}

.cp-portal .cp-project-actions{
	justify-content: flex-start;
	margin-bottom: 12px;
}

.cp-portal .cp-btn,
.cp-portal button,
.cp-portal input[type="button"],
.cp-portal input[type="submit"],
.cp-portal input[type="reset"],
.cp-portal .jet-form-builder__submit,
.cp-portal .jet-form-builder button[type="submit"],
.cp-portal .jet-form-builder input[type="submit"],
.cp-portal .jet-form-builder .jet-form-builder__action-button{
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 16px;
	border-radius: 999px;
	border: 1px solid #7d0804;
	background: linear-gradient(135deg, var(--cp-brand) 0%, #ad0c07 100%);
	color: #ffffff !important;
	box-shadow: 0 4px 12px rgba(140,5,0,.14);
	font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .03em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
	width: 100%;
}

@media (min-width: 560px){
	.cp-portal .cp-btn,
	.cp-portal button,
	.cp-portal input[type="button"],
	.cp-portal input[type="submit"],
	.cp-portal input[type="reset"],
	.cp-portal .jet-form-builder__submit,
	.cp-portal .jet-form-builder button[type="submit"],
	.cp-portal .jet-form-builder input[type="submit"],
	.cp-portal .jet-form-builder .jet-form-builder__action-button{
		width: auto;
	}
}

@media (hover:hover){
	.cp-portal .cp-btn:hover,
	.cp-portal button:hover,
	.cp-portal input[type="button"]:hover,
	.cp-portal input[type="submit"]:hover,
	.cp-portal input[type="reset"]:hover,
	.cp-portal .jet-form-builder__submit:hover,
	.cp-portal .jet-form-builder button[type="submit"]:hover,
	.cp-portal .jet-form-builder input[type="submit"]:hover,
	.cp-portal .jet-form-builder .jet-form-builder__action-button:hover{
		background: linear-gradient(135deg, var(--cp-brand-hot) 0%, #f2362f 100%);
		border-color: var(--cp-brand-hot);
		text-decoration: none;
		color: #ffffff !important;
	}
}

.cp-portal .cp-btn:active,
.cp-portal button:active,
.cp-portal input[type="submit"]:active{
	transform: translateY(1px);
}

.cp-portal .cp-btn.cp-btn--secondary{
	background: transparent;
	border: 0;
	padding-left: 0;
	padding-right: 0;
	color: var(--cp-brand) !important;
	box-shadow: none;
}

@media (hover:hover){
	.cp-portal .cp-btn.cp-btn--secondary:hover{
		background: transparent;
		color: var(--cp-brand-hot) !important;
		text-decoration: underline;
	}
}

.cp-portal .cp-btn[aria-disabled="true"],
.cp-portal .cp-btn:disabled,
.cp-portal button:disabled,
.cp-portal input:disabled{
	opacity: .56;
	cursor: not-allowed;
}

.cp-portal .cp-table{
	width: 100%;
	margin-top: 10px;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--cp-border);
	border-radius: 0;
	overflow: hidden;
	background: var(--cp-surface);
}

.cp-portal .cp-table thead th{
	background: var(--cp-fill-01);
	color: var(--cp-muted-50);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 12px;
	border-bottom: 1px solid var(--cp-border);
}

.cp-portal .cp-table th,
.cp-portal .cp-table td{
	text-align: left;
	vertical-align: middle;
}

.cp-portal .cp-table td{
	padding: 13px 12px;
	border-bottom: 1px solid var(--cp-border-soft);
}

.cp-portal .cp-table thead th + th,
.cp-portal .cp-table td + td{
	border-left: 1px solid var(--cp-border-faint);
}

.cp-portal .cp-table tbody tr:last-child td{
	border-bottom: 0;
}

@media (hover:hover){
	.cp-portal .cp-table tbody tr:hover td{
		background: var(--cp-fill-01);
	}
}

.cp-portal .cp-table .cp-btn{
	min-height: 36px;
	padding: 9px 13px;
	font-size: 12px;
}

@media (max-width: 640px){
	.cp-portal .cp-table{
		border-color: var(--cp-border-soft);
		border-radius: 0;
	}

	.cp-portal .cp-table thead{ display: none; }

	.cp-portal .cp-table,
	.cp-portal .cp-table tbody,
	.cp-portal .cp-table tr,
	.cp-portal .cp-table td{
		display: block;
		width: 100%;
	}

	.cp-portal .cp-table tr{
		background: #ffffff !important;
		padding: 16px 16px;
		border-top: 1px solid var(--cp-border-faint);
	}

	.cp-portal .cp-table tr:first-child{
		border-top: 0;
	}

	.cp-portal .cp-table td{
		border: 0;
		padding: 9px 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		background: #ffffff !important;
	}

	.cp-portal .cp-table td + td{
		border-left: 0;
	}

	.cp-portal .cp-table tr:hover td{
		background: #ffffff !important;
	}

	.cp-portal .cp-table td:before{
		content: attr(data-label);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .04em;
		text-transform: uppercase;
		color: var(--cp-muted-50);
	}

	.cp-portal .cp-table .cp-cell{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-end;
		text-align: right;
		max-width: 56%;
		font-weight: 800;
	}
}

.cp-portal .cp-table[aria-label="Projects"] td[data-label="Project"] .cp-cell{
	font-weight: 800;
}

.cp-portal .cp-table[aria-label="Projects"] td[data-label="Action"] .cp-btn{
	min-width: 92px;
}

.cp-portal .cp-table.cp-table--flat{
	margin-top: 0;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
}

.cp-portal .cp-table.cp-table--flat thead th{
	background: transparent;
	border-bottom: 1px solid var(--cp-border);
}

.cp-portal .cp-table.cp-table--flat tbody tr:hover td{
	background: transparent;
}

@media (max-width: 640px){
	.cp-portal .cp-table.cp-table--flat{
		border: 0;
		border-radius: 0;
	}

	.cp-portal .cp-table.cp-table--flat tr{
	padding: 16px 16px;
}

	.cp-portal .cp-table.cp-table--flat td{
	padding: 9px 0;
}
}

.cp-portal .cp-progress{
	margin: 0 0 14px 0;
	padding: 16px 16px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: var(--cp-fill-01);
}

.cp-portal .cp-progress__meta{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 8px 0;
}

.cp-portal .cp-progress__label{
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cp-muted-50);
}

.cp-portal .cp-progress__value{
	font-size: 12px;
	font-weight: 800;
	color: var(--cp-text);
}

.cp-portal .cp-progress__track{
	height: 8px;
	border-radius: 999px;
	background: rgba(11,13,16,.10);
	overflow: hidden;
}

.cp-portal .cp-progress__bar{
	display: block;
	height: 100%;
	width: var(--cp-progress, 0%);
	border-radius: 999px;
	background: linear-gradient(90deg, #8c0500 0%, #e10600 100%);
}

.cp-portal .cp-project-progress{
	margin: 0 0 14px 0;
	padding: 14px 16px;
	border: 1px solid rgba(20,120,98,.24);
	border-radius: 12px;
	background: rgba(20,120,98,.06);
}

.cp-portal .cp-project-progress__meta{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 8px 0;
}

.cp-portal .cp-project-progress__label{
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #145a4d;
}

.cp-portal .cp-project-progress__value{
	font-size: 12px;
	font-weight: 800;
	color: #0f2f33;
}

.cp-portal .cp-project-progress__track{
	height: 8px;
	border-radius: 999px;
	background: rgba(20,120,98,.18);
	overflow: hidden;
}

.cp-portal .cp-project-progress__bar{
	display: block;
	height: 100%;
	width: var(--cp-project-progress, 0%);
	border-radius: 999px;
	background: linear-gradient(90deg, #1f8a70 0%, #2aa7a7 100%);
}

.cp-portal .cp-project-progress--empty{
	border-style: dashed;
}
.cp-portal .cp-summary{
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	padding: 16px;
	margin: 0 0 14px 0;
}

@media (max-width: 1024px){
	.cp-portal .cp-summary{
		border-color: var(--cp-border-soft);
		border-radius: 14px;
		box-shadow: 0 10px 24px rgba(11,13,16,.08);
	}
}

.cp-portal .cp-alert{
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	background: var(--cp-fill-01);
	padding: 16px 16px;
	margin: 10px 0;
}

.cp-portal .cp-alert--error{
	border-color: rgba(225,6,0,.24);
	background: rgba(225,6,0,.08);
	color: var(--cp-brand);
	font-weight: 800;
}

.cp-portal .cp-alert--success{
	background: var(--cp-fill-02);
	font-weight: 800;
}

.cp-portal .cp-alert--payment-security{
	border-color: rgba(39,104,216,.24);
	background: rgba(39,104,216,.08);
	color: #173a63;
	font-weight: 700;
}

.cp-portal .cp-billpay-shell{
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
}

.cp-portal .cp-billpay-project{
	margin: 0 0 14px 0;
}

.cp-portal .cp-billpay-project > summary{
	padding: 16px 18px;
	font-size: 20px;
}

.cp-portal .cp-billpay-summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding-right: 8px;
}

.cp-portal .cp-billpay-summary-main{
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
}

.cp-portal .cp-billpay-summary-meta{
	font-size: 12px;
	font-weight: 800;
	color: var(--cp-muted-62);
	white-space: nowrap;
}

.cp-portal .cp-billpay-grid{
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	align-items: start;
}

@media (min-width: 980px){
	.cp-portal .cp-billpay-grid{
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

.cp-portal .cp-billpay-col{
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	padding: 14px;
	background: #ffffff;
}

.cp-portal .cp-billpay-panel-title{
	margin: 0 0 10px 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--cp-muted-50);
}

.cp-portal .cp-billpay-form-wrap .jet-form-builder{
	margin-top: 0;
}

@media (max-width: 720px){
	.cp-portal .cp-billpay-summary{
		flex-direction: column;
		align-items: flex-start;
	}

	.cp-portal .cp-billpay-summary-main{
		font-size: 18px;
	}

	.cp-portal .cp-billpay-summary-meta{
		white-space: normal;
	}
}

.cp-portal .cp-updates{
	display: flex;
	flex-direction: column;
	gap: 0;
}

.cp-portal .cp-update{
	background: transparent;
	border: 0;
	border-top: 1px solid var(--cp-border-soft);
	border-radius: 0;
	padding: 12px 0;
}

.cp-portal .cp-update:first-child{
	border-top: 0;
	padding-top: 0;
}

.cp-portal .cp-update__meta{
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 6px 0;
}

.cp-portal .cp-update__title{
	font-weight: 900;
}

.cp-portal .cp-support{
	padding: 22px 20px 18px 20px;
}

.cp-portal .cp-support__layout{
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	align-items: start;
}

@media (min-width: 1080px){
	.cp-portal .cp-support__layout{
		grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
		gap: 18px;
	}
}

.cp-portal .cp-support__main,
.cp-portal .cp-support__aside{
	min-width: 0;
}

.cp-portal .cp-support__formWrap{
	width: 100%;
}

.cp-portal .cp-support__formCard{
	margin-top: 10px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.cp-portal .cp-support__panel{
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	padding: 14px;
	background: #ffffff;
}

.cp-portal .cp-support__panel + .cp-support__panel{
	margin-top: 10px;
}

.cp-portal .cp-support__panel--alert{
	background: #fff7f6;
	border-color: rgba(153,6,0,.22);
	color: #5a110e;
}

.cp-portal .cp-support__h3{
	margin: 0 0 8px 0;
	font-size: 18px;
}

.cp-portal .cp-support__muted{
	margin: 0 0 10px 0;
	color: var(--cp-muted-62);
}

.cp-portal .cp-support__list{
	margin: 0;
	padding-left: 18px;
	line-height: 1.56;
}

.cp-portal .cp-support__list li{
	margin: 8px 0;
}

.cp-portal .cp-support__list li::marker{
	color: var(--cp-brand);
}

.cp-portal .cp-support__preflight{
	margin: 0;
}

.cp-portal .cp-support__mini{
	margin-top: 12px;
}

.cp-portal .cp-support__miniTitle{
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--cp-muted-50);
	margin-bottom: 8px;
}

.cp-portal .cp-support__chips{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cp-portal .cp-support__chip{
	display: inline-flex;
	align-items: center;
	padding: 7px 10px;
	border-radius: 999px;
	border: 1px solid var(--cp-border-soft);
	font-size: 12px;
	font-weight: 700;
	color: var(--cp-text);
	background: var(--cp-fill-02);
}

.cp-portal .cp-support__contact{
	color: var(--cp-muted-62);
}

.cp-portal .cp-support-inline-help{
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin: 8px 0 12px 0;
}

.cp-portal .cp-support-inline-help .cp-support__panel{
	margin: 0;
}

.cp-portal .cp-support .jet-form-builder,
.cp-portal .cp-support .jet-form-builder__fields-group{
	margin: 0;
	padding: 0;
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder-row,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__fields-group{
	margin-bottom: 14px;
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder-row:last-child,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap:last-child,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__fields-group:last-child{
	margin-bottom: 0;
}

.cp-portal .cp-support .jet-form-builder label,
.cp-portal .cp-support .jet-form-builder__label{
	margin-bottom: 6px;
	font-weight: 600;
	color: var(--cp-muted-50);
}

.cp-portal .cp-support .jet-form-builder input[type="text"],
.cp-portal .cp-support .jet-form-builder input[type="email"],
.cp-portal .cp-support .jet-form-builder input[type="number"],
.cp-portal .cp-support .jet-form-builder input[type="tel"],
.cp-portal .cp-support .jet-form-builder input[type="url"],
.cp-portal .cp-support .jet-form-builder input[type="search"],
.cp-portal .cp-support .jet-form-builder input[type="date"],
.cp-portal .cp-support .jet-form-builder input[type="datetime-local"],
.cp-portal .cp-support .jet-form-builder input[type="time"],
.cp-portal .cp-support .jet-form-builder select,
.cp-portal .cp-support .jet-form-builder textarea{
	border-radius: 12px;
	border-color: #c2ccd8;
	background: #fbfdff;
}

.cp-portal .cp-support .jet-form-builder textarea{
	min-height: 130px;
}

.cp-portal .cp-support .jet-form-builder input[type="text"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="email"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="number"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="tel"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="url"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="search"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="date"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="datetime-local"]:focus,
.cp-portal .cp-support .jet-form-builder input[type="time"]:focus,
.cp-portal .cp-support .jet-form-builder select:focus,
.cp-portal .cp-support .jet-form-builder textarea:focus{
	border-color: rgba(39,104,216,.58);
	box-shadow: 0 0 0 4px rgba(39,104,216,.12);
}

.cp-portal .cp-support .jet-form-builder fieldset{
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.cp-portal .cp-support .jet-form-builder .checkradio-wrap,
.cp-portal .cp-support .jet-form-builder .jet-form-builder-field-wrap--radio,
.cp-portal .cp-support .jet-form-builder .jet-form-builder-field-wrap--checkbox,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap--radio,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap--checkbox{
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
}

.cp-portal .cp-support .jet-form-builder .checkradio-wrap > label,
.cp-portal .cp-support .jet-form-builder .jet-form-builder-field-wrap--radio > label,
.cp-portal .cp-support .jet-form-builder .jet-form-builder-field-wrap--checkbox > label,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap--radio > label,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap--checkbox > label,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap .checkradio-field{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 9px 10px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #ffffff;
}

.cp-portal .cp-support .jet-form-builder input[type="radio"],
.cp-portal .cp-support .jet-form-builder input[type="checkbox"]{
	accent-color: #990600;
}

.cp-portal .cp-support .jet-form-builder input[type="date"],
.cp-portal .cp-support .jet-form-builder input[type="datetime-local"]{
	min-height: 44px;
	background: #ffffff;
}

.cp-portal .cp-support .jet-form-builder input[type="date"]::-webkit-calendar-picker-indicator,
.cp-portal .cp-support .jet-form-builder input[type="datetime-local"]::-webkit-calendar-picker-indicator{
	cursor: pointer;
	opacity: .9;
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder__action-button,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__submit,
.cp-portal .cp-support .jet-form-builder button[type="submit"]{
	min-height: 44px;
	padding: 12px 16px;
	border-radius: 999px;
	border: 1px solid #7d0804;
	background: linear-gradient(135deg, var(--cp-brand) 0%, #ad0c07 100%);
	color: #ffffff !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .03em;
	text-transform: uppercase;
	box-shadow: 0 4px 12px rgba(140,5,0,.14);
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder__action-button:hover,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__submit:hover,
.cp-portal .cp-support .jet-form-builder button[type="submit"]:hover{
	background: linear-gradient(135deg, var(--cp-brand-hot) 0%, #f2362f 100%);
	border-color: var(--cp-brand-hot);
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder__field-wrap .wp-block-heading,
.cp-portal .cp-support .jet-form-builder .wp-block-heading{
	margin: 6px 0 8px 0;
	font-size: 20px;
}

.cp-portal .cp-support .jet-form-builder [class*="conditional"]{
	margin-top: 8px;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-wrapper,
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar,
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-content{
	width: 100% !important;
	max-width: 100% !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar{
	border: 1px solid var(--cp-border-soft) !important;
	border-radius: 12px !important;
	background: #ffffff !important;
	overflow: hidden;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-header{
	padding: 12px 14px;
	border-bottom: 1px solid var(--cp-border-soft) !important;
	background: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-btn,
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-slots__close{
	width: 34px;
	height: 34px;
	border-radius: 8px !important;
	border: 1px solid rgba(140,5,0,.34) !important;
	background: #8c0500 !important;
	color: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-slot{
	border-radius: 999px !important;
	border: 1px solid var(--cp-border-soft) !important;
	background: rgba(11,13,16,.04) !important;
	color: var(--cp-text) !important;
	font-weight: 700;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-slot:hover{
	background: #1f2630 !important;
	border-color: #1f2630 !important;
	color: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-slot.jet-apb-slot--selected,
.cp-portal .cp-support .jet-form-builder .jet-apb-slot[aria-selected="true"]{
	background: #16a34a !important;
	border-color: #16a34a !important;
	color: #ffffff !important;
}
body.cp-portal-forms .flatpickr-calendar,
body.cp-portal-forms .ui-datepicker{
	border: 1px solid rgba(22,33,46,.22) !important;
	border-radius: 14px !important;
	box-shadow: 0 14px 28px rgba(11,15,21,.18) !important;
	font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

body.cp-portal-forms .flatpickr-day.selected,
body.cp-portal-forms .flatpickr-day.startRange,
body.cp-portal-forms .flatpickr-day.endRange,
body.cp-portal-forms .flatpickr-day.selected:hover,
body.cp-portal-forms .ui-datepicker td .ui-state-active,
body.cp-portal-forms .ui-datepicker td .ui-state-highlight{
	background: #990600 !important;
	border-color: #990600 !important;
	color: #ffffff !important;
}

@media (max-width: 1024px){
	.cp-portal .cp-support{
		padding: 16px;
	}

	.cp-portal .cp-support__panel{
		padding: 12px;
	}
}
.cp-portal .cp-support-cta{
	margin: 16px 0 0 0;
	border-radius: 18px;
	overflow: hidden;
	border: 1px solid rgba(11,15,21,.18);
	min-height: 228px;
	display: flex;
	align-items: flex-end;
	background:
		linear-gradient(110deg, rgba(10,14,22,.78) 0%, rgba(10,14,22,.58) 46%, rgba(10,14,22,.40) 100%),
		url('https://eplemanski.com/wp-content/uploads/2026/03/1000007225-scaled.jpg');
	background-size: cover;
	background-position: center;
	box-shadow: 0 16px 34px rgba(11,15,21,.18);
}

.cp-portal .cp-support-cta__inner{
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	padding: 24px;
}

.cp-portal .cp-support-cta__copy{
	max-width: 640px;
	width: min(640px, 100%);
	min-width: 0;
}

.cp-portal .cp-support-cta__kicker{
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(255,255,255,.78);
	margin-bottom: 8px;
}

.cp-portal .cp-support-cta__title{
	margin: 0;
	font-size: 30px;
	line-height: 1.12;
	color: #ffffff;
}

.cp-portal .cp-support-cta__text{
	margin: 10px 0 0 0;
	max-width: 60ch;
	color: rgba(255,255,255,.88);
}

.cp-portal .cp-support-cta__btn{
	background: #ffffff;
	border: 1px solid #ffffff;
	color: #0b0f15 !important;
	box-shadow: none;
	white-space: nowrap;
}

@media (hover:hover){
	.cp-portal .cp-support-cta__btn:hover{
		background: #f2f4f7;
		border-color: #f2f4f7;
		color: #0b0f15 !important;
	}
}

@media (max-width: 1024px){
	.cp-portal .cp-billpay-project > summary{
		padding: 14px 16px;
	}
	.cp-portal .cp-billpay-summary{
		padding-right: 0;
		gap: 8px;
	}
	.cp-portal .cp-billpay-summary-main{
		font-size: 18px;
	}
	.cp-portal .cp-billpay-project > .cp-accordion__body{
		padding: 10px 16px 0 16px;
	}
	.cp-portal .cp-billpay-grid{
		gap: 12px;
	}
	.cp-portal .cp-billpay-col{
		border: 0;
		border-radius: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
	}
	.cp-portal .cp-billpay-col + .cp-billpay-col{
		margin-top: 10px;
		padding-top: 0;
		border-top: 1px solid var(--cp-border-soft);
	}
	.cp-portal .cp-billpay-col .cp-progress{
		padding: 12px 0 10px 0;
		border-left: 0;
		border-right: 0;
		border-radius: 0;
		background: transparent;
	}
	.cp-portal .cp-billpay-col .cp-kv{
		padding: 10px 0;
	}
	.cp-portal .cp-action-row{
		grid-template-columns: 1fr;
	}
	.cp-portal .cp-action-row__cta,
	.cp-portal .cp-action-row__cta .cp-btn{
		width: 100%;
		justify-self: stretch;
	}
	.cp-portal .cp-support-cta{
		min-height: 0;
	}
	.cp-portal .cp-support-cta__inner{
		align-items: flex-start;
		flex-direction: column;
		padding: 22px 20px 18px 20px;
	}
}

@media (max-width: 720px){
	.cp-portal .cp-projects-desktop{
		display: none !important;
	}
	.cp-portal .cp-projects-mobile{
		display: block !important;
	}
	.cp-portal .cp-chooser-row{
		flex-direction: column;
	}
	.cp-portal .cp-chooser-cta,
	.cp-portal .cp-chooser-cta .cp-btn{
		width: 100%;
	}
}

.cp-portal .cp-pill-tabs{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 16px 0;
}

.cp-portal .cp-tab-swipe-note{
	display: none;
	margin: 10px 0 0 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--cp-muted-62);
}

.cp-portal .cp-pill-tab{
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px !important;
	min-height: 0 !important;
	border-radius: 999px;
	border: 1px solid #bdc8d6 !important;
	background: #edf1f6 !important;
	color: #1b2734 !important;
	box-shadow: none !important;
	font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.cp-portal .cp-pill-tab:hover{
	background: #dfe6ee !important;
	border-color: #94a4b8 !important;
	color: #121d29 !important;
}

.cp-portal .cp-pill-tab.is-active,
.cp-portal .cp-pill-tab[aria-selected="true"]{
	background: #990600 !important;
	border-color: #990600 !important;
	color: #ffffff !important;
}

.cp-portal .cp-dashboard-snapshot .cp-pill-tabs{
	padding-bottom: 14px;
	border-bottom: 1px solid var(--cp-border-soft);
	margin-bottom: 16px;
}

.cp-portal .cp-dashboard-snapshot .cp-snapshot-panel{
	display: none;
}

.cp-portal .cp-dashboard-snapshot .cp-snapshot-panel.is-active{
	display: block;
}

.cp-portal .cp-action-rows{
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cp-portal .cp-action-row{
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 12px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 14px;
	background: var(--cp-fill-01);
}

.cp-portal .cp-action-row__copy h3{
	margin: 0;
	font-size: 16px;
	line-height: 1.25;
}

.cp-portal .cp-action-row__copy p{
	margin: 6px 0 0 0;
	color: var(--cp-muted-62);
	font-size: 13px;
	line-height: 1.45;
}

.cp-portal .cp-action-row__cta{
	justify-self: end;
}

.cp-portal .cp-action-row__cta .cp-btn[aria-disabled="true"]{
	opacity: .55;
	pointer-events: none;
}
@media (max-width: 1100px){
	.cp-portal .cp-action-row{
		grid-template-columns: 1fr;
		align-items: flex-start;
	}

	.cp-portal .cp-action-row__cta{
		width: 100%;
		justify-self: stretch;
	}

	.cp-portal .cp-action-row__cta .cp-btn{
		width: 100%;
	}
}

.cp-modal-open,
html.cp-modal-open,
body.cp-modal-open{
	overflow: hidden;
}

.cp-portal .cp-modal{
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	overflow-y: auto;
}

.cp-portal .cp-modal[hidden]{
	display: none !important;
}

.cp-portal .cp-modal__backdrop{
	position: absolute;
	inset: 0;
	background: rgba(11,13,16,.5);
}

.cp-portal .cp-modal__dialog{
	position: relative;
	z-index: 1;
	max-width: 640px;
	width: min(640px, calc(100vw - 36px));
	min-width: 0;
	max-height: calc(100vh - 36px);
	overflow: auto;
	margin: 0;
	padding: 24px 22px 20px 22px;
	border-radius: 16px;
	border: 1px solid var(--cp-border);
	background: #ffffff;
	box-shadow: 0 20px 50px rgba(11,13,16,.24);
}

.cp-portal .cp-modal__close{
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px !important;
	height: 30px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px;
	background: transparent !important;
	color: #7a0b0b !important;
	font-size: 32px !important;
	line-height: 1 !important;
	font-family: Arial, sans-serif !important;
	font-weight: 700 !important;
	text-transform: none !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: color .16s ease;
	z-index: 3;
}

.cp-portal .cp-modal__close:hover,
.cp-portal .cp-modal__close:focus{
	color: #f21309 !important;
	outline: none;
}

.cp-portal .cp-modal__rows{
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 14px;
}

.cp-portal .cp-action-picker-row{
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	padding: 10px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: var(--cp-fill-01);
}

.cp-portal .cp-action-picker-row__title{
	font-weight: 800;
}

.cp-portal .cp-action-picker-row__meta{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
}

.cp-portal .cp-upload-modal__context{
	margin: 8px 0 10px 0;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-portal .cp-upload-modal__form{
	margin-top: 8px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.cp-portal .cp-upload-modal__form.is-disabled{
	opacity: .45;
	pointer-events: none;
}

.cp-portal .cp-project-sections{
	padding: 18px;
}

.cp-portal .cp-project-tabs{
	margin-bottom: 0;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--cp-border-soft);
}

.cp-portal .cp-project-panel{
	display: none;
	margin-top: 0;
	padding-top: 14px;
	border-top: 0;
}

.cp-portal .cp-project-panel:first-of-type{
	margin-top: 0;
	padding-top: 14px;
	border-top: 0;
}

.cp-portal .cp-project-panel.is-active{
	display: block;
}

.cp-portal .cp-project-panel__body[hidden]{
	display: none !important;
}

.cp-portal .cp-mobile-section-toggle{
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	padding: 11px 12px;
	border-radius: 999px;
	border: 1px solid var(--cp-border-soft);
	background: #ffffff;
	font-size: 13px;
	font-weight: 800;
	color: var(--cp-text);
	box-shadow: none;
}

.cp-portal .cp-mobile-section-toggle::after{
	content: '+';
	font-size: 16px;
	line-height: 1;
}

.cp-portal .cp-mobile-section-toggle.is-open::after{
	content: '-';
}

.cp-portal .cp-tab-intro{
	margin: 0 0 12px 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--cp-muted-62);
}

.cp-portal .cp-project-payments__form,
.cp-portal .cp-project-payments__details{
	margin-top: 14px;
}

.cp-portal .cp-files-upload-inline{
	margin-left: 0;
}

.cp-portal .cp-billpay-summary-meta{
	font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .01em;
	color: var(--cp-text);
}
.cp-portal details.cp-accordion{
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	background: var(--cp-surface);
	overflow: hidden;
}

.cp-portal details.cp-accordion > summary{
	cursor: pointer;
	list-style: none !important;
	list-style-type: none !important;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 18px 20px;
	font-family: "Fira Sans Condensed", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 23px;
	font-weight: 800;
	letter-spacing: .02em;
	background: #ffffff;
}

.cp-portal details.cp-accordion > summary::-webkit-details-marker{
	display: none !important;
}

.cp-portal details.cp-accordion > summary::marker{
	display: none !important;
	content: '';
	font-size: 0;
}

.cp-portal details.cp-accordion > summary::after{
	content: '\25BE';
	font-size: 19px;
	line-height: 1;
	color: var(--cp-muted-62);
	transition: transform .15s ease;
}

.cp-portal details.cp-accordion[open] > summary{
	border-bottom: 1px solid var(--cp-border-soft);
}

.cp-portal details.cp-accordion[open] > summary::after{
	transform: rotate(180deg);
}

.cp-portal .cp-accordion__body{
	padding: 16px;
}

.cp-portal .cp-project-shell > details.cp-accordion .cp-accordion__body{
	padding: 14px 20px 18px 20px;
}

.cp-portal .cp-footnote{
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--cp-border-soft);
	color: var(--cp-muted-62);
}

.cp-portal .cp-filter-row{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
	gap: 12px;
	align-items: end;
	margin: 0 0 14px 0;
}

.cp-portal .cp-filter-field{
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.cp-portal .cp-filter-field label,
.cp-portal label,
.cp-portal .jet-form-builder label,
.cp-portal .jet-form-builder__label{
	display: block;
	margin: 0 0 8px 0;
	font-size: 12px;
	font-weight: 500;
	color: var(--cp-muted-50);
	line-height: 1.3;
}

.cp-portal input[type="text"],
.cp-portal input[type="email"],
.cp-portal input[type="number"],
.cp-portal input[type="url"],
.cp-portal input[type="date"],
.cp-portal input[type="datetime-local"],
.cp-portal select,
.cp-portal textarea,
.cp-portal .jet-form-builder input[type="text"],
.cp-portal .jet-form-builder input[type="email"],
.cp-portal .jet-form-builder input[type="number"],
.cp-portal .jet-form-builder input[type="url"],
.cp-portal .jet-form-builder input[type="date"],
.cp-portal .jet-form-builder input[type="datetime-local"],
.cp-portal .jet-form-builder select,
.cp-portal .jet-form-builder textarea{
	width: 100%;
	max-width: 100%;
	display: block;
	min-height: 42px;
	padding: 10px 12px;
	border: 1px solid #c8d0d8;
	border-radius: 10px;
	background: #ffffff;
	color: var(--cp-text);
	box-shadow: none;
}

.cp-portal textarea,
.cp-portal .jet-form-builder textarea{
	min-height: 96px;
	resize: vertical;
}
.cp-portal input[type="file"],
.cp-portal .jet-form-builder input[type="file"]{
	width: 100%;
	max-width: 100%;
	display: block;
	min-height: 56px;
	padding: 12px;
	margin-top: 4px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #f8fbff;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
	color: var(--cp-text);
	transition: border-color .16s ease, background-color .16s ease;
}


.cp-portal .jet-form-builder .jet-form-builder__field-wrap:has(input[type="file"]),
.cp-portal .jet-form-builder .jet-form-builder-row:has(input[type="file"]),
.cp-portal .jet-form-builder .jet-form-builder__fields-group:has(input[type="file"]){
	padding: 12px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #f8fbff;
}

.cp-portal .jet-form-builder .jet-form-builder__field-wrap:has(input[type="file"]) input[type="file"],
.cp-portal .jet-form-builder .jet-form-builder-row:has(input[type="file"]) input[type="file"],
.cp-portal .jet-form-builder .jet-form-builder__fields-group:has(input[type="file"]) input[type="file"]{
	margin-top: 6px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	min-height: 44px;
}

.cp-portal .jet-form-builder input[type="file"]{
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 44px;
}

.cp-portal .jet-form-builder input[type="file"]:hover{
	border-color: transparent !important;
	background: transparent !important;
}
.cp-portal input[type="file"]::file-selector-button,
.cp-portal .jet-form-builder input[type="file"]::file-selector-button{
	margin-right: 10px;
	border: 1px solid #7d0500 !important;
	border-radius: 999px;
	background: #7d0500 !important;
	color: #ffffff !important;
	font-size: 12px;
	font-weight: 700;
	padding: 7px 11px;
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

@media (hover:hover){
	.cp-portal input[type="file"]:hover,
	.cp-portal .jet-form-builder input[type="file"]:hover{
		border-color: rgba(39,104,216,.56);
		background: linear-gradient(180deg, #ffffff 0%, rgba(39,104,216,.08) 100%);
	}

		.cp-portal input[type="file"]:hover::file-selector-button,
		.cp-portal .jet-form-builder input[type="file"]:hover::file-selector-button,
		.cp-portal input[type="file"]::file-selector-button:hover,
		.cp-portal .jet-form-builder input[type="file"]::file-selector-button:hover{
			background: #e10600 !important;
			border-color: #e10600 !important;
			color: #ffffff !important;
		}
}

.cp-portal .jet-form-builder input[type="file"],
.cp-portal .jet-form-builder input[type="file"]:hover{
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder__field-wrap:has(input[type="file"]),
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-row:has(input[type="file"]),
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder__fields-group:has(input[type="file"]){
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.cp-portal .cp-upload-modal .jet-form-builder input[type="file"],
.cp-portal .cp-upload-modal .jet-form-builder input[type="file"]:hover{
	border: 1px solid var(--cp-border-soft) !important;
	border-radius: 12px !important;
	background: #f8fbff !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
	padding: 12px !important;
}

.cp-portal .cp-upload-modal .jet-form-builder [class*="media-field"],
.cp-portal .cp-upload-modal .jet-form-builder [class*="file-upload"]{
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.cp-portal .jet-form-builder .jet-form-builder-row,
.cp-portal .jet-form-builder .jet-form-builder__field-wrap,
.cp-portal .jet-form-builder .jet-form-builder__fields-group{
	display: block;
	width: 100%;
	max-width: 100%;
	margin-bottom: 16px;
}

.cp-portal .cp-filter-actions{
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.cp-portal .cp-filter-actions .cp-btn{
	min-width: 96px;
}

.cp-portal .cp-assets-prev{
	margin-top: 14px;
}

.cp-portal .cp-assets-prev__head{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 10px 0;
}

.cp-portal .cp-assets-prev__title{
	margin: 0;
	font-size: 18px;
	line-height: 1.3;
}

.cp-portal .cp-asset-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 12px;
	align-items: stretch;
}

.cp-portal .cp-asset-card{
	display: flex;
	flex-direction: column;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #ffffff;
	overflow: hidden;
	min-height: 100%;
}

.cp-portal .cp-asset-card__thumb{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 250px;
	background: var(--cp-fill-01);
	border-bottom: 1px solid var(--cp-border-faint);
	text-decoration: none;
}

.cp-portal .cp-asset-thumb{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.cp-portal .cp-asset-thumb--contain{
	object-fit: cover;
	object-position: center center;
}

.cp-portal .cp-asset-thumb--icon{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.cp-portal .cp-asset-card__meta{
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 6px;
	padding: 10px;
	min-height: 0;
}

.cp-portal .cp-asset-card__name{
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--cp-text);
	word-break: break-word;
}

.cp-portal .cp-asset-card__sub{
	font-size: 11px;
	line-height: 1.35;
}

.cp-portal .cp-asset-card__note{
	font-size: 12px;
	line-height: 1.4;
	color: var(--cp-muted-62);
	word-break: break-word;
}

.cp-portal .cp-asset-card__actions{
	margin-top: auto;
	padding: 10px;
	border-top: 1px solid var(--cp-border-faint);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	align-items: center;
}

.cp-portal .cp-asset-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 36px;
	padding: 8px 12px;
	font-size: 11px;
	letter-spacing: .02em;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
	flex: none;
	box-shadow: none;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn:only-child{
	grid-column: 1 / -1;
}

.cp-portal .cp-asset-btn--primary{
	background: linear-gradient(135deg, var(--cp-brand) 0%, #ad0c07 100%);
	border-color: #7d0804;
	color: #ffffff !important;
}
.cp-portal .cp-asset-card__meta{
	padding: 12px;
	gap: 8px;
}

.cp-portal .cp-asset-card__actions{
	padding: 9px 12px;
	gap: 8px;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn{
	min-width: 0;
	width: 100%;
	min-height: 30px;
	padding: 6px 10px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	box-shadow: none;
}
.cp-portal .cp-asset-related{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	grid-column: 1 / -1;
	width: 100%;
	min-height: 32px;
	padding: 6px 10px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 999px;
	background: #ffffff;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .02em;
	white-space: nowrap;
	text-decoration: none;
	color: var(--cp-brand) !important;
}

.cp-portal .cp-asset-related:hover{
	border-color: rgba(153,6,0,.35);
	background: #fff7f6;
	color: var(--cp-brand-hot) !important;
	text-decoration: none;
}


/* Portal cleanup overrides: upload modal + file cards + support form */
.cp-portal .cp-upload-modal .cp-page-note{
	margin-bottom: 18px;
}

.cp-portal .cp-upload-modal__project{
	margin-top: 16px;
}

.cp-portal .cp-upload-modal__project label{
	margin-bottom: 10px;
}

.cp-portal .cp-upload-modal__context{
	margin: 14px 0 10px 0;
}

.cp-portal .cp-upload-modal__form{
	margin-top: 12px;
}
.cp-portal .cp-upload-modal .cp-note[data-cp-upload-note="1"]{
	margin: 0 0 12px 0;
}

.cp-portal .cp-upload-modal__rename-note{
	margin: 2px 0 10px 0;
}

.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder__field-wrap:has(input[type="file"]),
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-row:has(input[type="file"]),
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder__fields-group:has(input[type="file"]){
	padding: 14px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 14px;
	background: #f8fbff;
	box-shadow: none;
}

.cp-portal .cp-upload-modal .jet-form-builder input[type="file"],
.cp-portal .cp-upload-modal .jet-form-builder input[type="file"]:hover{
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 44px;
}

.cp-portal .cp-upload-modal .jet-form-builder [class*="media-field"],
.cp-portal .cp-upload-modal .jet-form-builder [class*="file-upload"],
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-media-field,
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-file-upload,
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-media-field__content,
.cp-portal .cp-upload-modal .jet-form-builder .jet-form-builder-file-upload__content{
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.cp-portal .cp-asset-card__meta{
	padding: 12px;
	gap: 8px;
}

.cp-portal .cp-asset-card__actions{
	padding: 9px 12px;
	gap: 8px;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn{
	min-width: 0;
	width: 100%;
	min-height: 30px;
	padding: 6px 10px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	box-shadow: none;
}
.cp-portal .cp-asset-related{
	display: inline-block;
	grid-column: 1 / -1;
	width: auto;
	min-height: 0;
	padding: 0;
	margin-top: 4px;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 12px;
	font-weight: 800;
	text-transform: none;
	letter-spacing: .01em;
	white-space: nowrap;
	text-decoration: none;
	color: var(--cp-brand) !important;
}

.cp-portal .cp-asset-related:hover{
	border: 0;
	background: transparent;
	color: var(--cp-brand-hot) !important;
	text-decoration: underline;
}

/* Asset card action icons: compact, left-aligned, and aligned with metadata width. */
.cp-portal .cp-asset-card__actions{
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 8px;
	padding: 8px 12px 12px;
	border-top: 1px solid var(--cp-border-faint);
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	min-width: 34px;
	height: 34px;
	min-height: 34px;
	padding: 0;
	border-radius: 999px;
	border: 1px solid #7d0804;
	background: #8c0500;
	color: #ffffff !important;
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon i{
	font-size: 14px;
	line-height: 1;
	color: inherit;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon:hover{
	background: #e10600;
	border-color: #e10600;
	color: #ffffff !important;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon:focus-visible{
	outline: 2px solid rgba(153,6,0,.35);
	outline-offset: 2px;
}

.cp-portal .cp-asset-card__actions .cp-asset-related{
	flex: 1 0 100%;
	margin-top: 2px;
}
.cp-portal .cp-support form.jet-form-builder,
.cp-portal .cp-support .jet-form,
.cp-portal .cp-support .jet-form-builder-layout{
	width: 100%;
	max-width: 100%;
}

.cp-portal .cp-support .jet-form-builder .choices,
.cp-portal .cp-support .jet-form-builder .choices__inner,
.cp-portal .cp-support .jet-form-builder .choices__list--dropdown,
.cp-portal .cp-support .jet-form-builder .choices__list[aria-expanded]{
	width: 100%;
	max-width: 100%;
}

.cp-portal .cp-support .jet-form-builder .choices__inner{
	min-height: 44px;
	border: 1px solid #c8d0d8;
	border-radius: 12px;
	background: #ffffff;
	padding: 8px 12px;
}

.cp-portal .cp-support .jet-form-builder .choices__list--dropdown,
.cp-portal .cp-support .jet-form-builder .choices__list[aria-expanded]{
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	box-shadow: 0 12px 24px rgba(11,15,21,.14);
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder__checkradio-wrap,
.cp-portal .cp-support .jet-form-builder .checkradio-field{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 9px 10px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #ffffff;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-appointments-list-wrapper{
	display: none !important;
}

.cp-portal .cp-support .jet-form-builder .jet-ab-timezone-picker .choices__inner{
	text-align: left;
}

.cp-portal .cp-support .jet-form-builder .jet-ab-timezone-picker .choices__input--cloned{
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 10px 12px !important;
	margin: 0 !important;
}
/* Support form field normalization for any JetFormBuilder field types that bypass earlier selectors (phone/search/time). */
.cp-portal .cp-support .jet-form-builder :is(
	input[type="text"],
	input[type="email"],
	input[type="number"],
	input[type="tel"],
	input[type="url"],
	input[type="search"],
	input[type="date"],
	input[type="datetime-local"],
	input[type="time"],
	select,
	textarea
).jet-form-builder__field{
	width: 100%;
	min-height: 44px;
	padding: 11px 13px;
	border: 1px solid #c2ccd8;
	border-radius: 12px;
	background: #fbfdff;
	box-sizing: border-box;
}

.cp-portal .cp-support .jet-form-builder :is(
	input[type="text"],
	input[type="email"],
	input[type="number"],
	input[type="tel"],
	input[type="url"],
	input[type="search"],
	input[type="date"],
	input[type="datetime-local"],
	input[type="time"],
	select,
	textarea
).jet-form-builder__field:focus{
	border-color: rgba(39,104,216,.58);
	box-shadow: 0 0 0 4px rgba(39,104,216,.12);
}

.cp-portal .cp-support .jet-form-builder textarea.jet-form-builder__field{
	min-height: 130px;
	resize: vertical;
}

/* Support form radio/checkbox group cleanup so option rows render as consistent cards. */
.cp-portal .cp-support .jet-form-builder .jet-form-builder__checkradio-wrap,
.cp-portal .cp-support .jet-form-builder .checkradio-wrap{
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
}

.cp-portal .cp-support .jet-form-builder .jet-form-builder__checkradio-wrap .checkradio-field,
.cp-portal .cp-support .jet-form-builder .checkradio-wrap .checkradio-field,
.cp-portal .cp-support .jet-form-builder .jet-form-builder__checkradio-wrap > label,
.cp-portal .cp-support .jet-form-builder .checkradio-wrap > label{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	background: #ffffff;
}

.cp-portal .cp-support .jet-form-builder .checkradio-field :is(input[type="radio"], input[type="checkbox"]){
	width: 16px;
	height: 16px;
	margin: 0;
	flex: 0 0 auto;
}

.cp-portal .cp-support .jet-form-builder .checkradio-field .checkradio-label,
.cp-portal .cp-support .jet-form-builder .checkradio-field .jet-form-builder-label,
.cp-portal .cp-support .jet-form-builder .checkradio-field span{
	margin: 0;
	font-weight: 600;
	color: var(--cp-text);
}

/* Bring appointment date picker visuals in line with the existing portal style reference. */
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-header__label{
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cp-text) !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-btn svg path,
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-slots__close svg path{
	fill: currentColor !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-week{
	border-bottom: 1px solid rgba(11,13,16,.12) !important;
	background: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-week span{
	padding: 10px 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--cp-muted-62) !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date,
.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date-body{
	border-radius: 0 !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date-body{
	border: 1px solid rgba(11,13,16,.12) !important;
	background: #ffffff !important;
	color: var(--cp-text) !important;
	min-height: 40px;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date:not(.jet-apb-calendar-date--disabled):hover .jet-apb-calendar-date-body{
	background: #1f2630 !important;
	border-color: #1f2630 !important;
	color: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date--selected .jet-apb-calendar-date-body{
	background: #16a34a !important;
	border-color: #16a34a !important;
	color: #ffffff !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-date--disabled .jet-apb-calendar-date-body{
	background: rgba(11,13,16,.04) !important;
	color: rgba(11,13,16,.36) !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-slots--active{
	position: relative;
	border: 1px solid var(--cp-border-soft) !important;
	border-radius: 10px !important;
	background: #ffffff !important;
	box-shadow: 0 12px 26px rgba(11,13,16,.14) !important;
	overflow: visible !important;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-slots--active .jet-apb-calendar-slots-container{
	display: flex !important;
	flex-wrap: wrap !important;
	align-content: flex-start;
	gap: 8px !important;
	padding: 54px 14px 12px !important;
	max-height: 320px;
	overflow: auto;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-slot{
	display: inline-flex !important;
	width: auto !important;
	flex: 0 0 auto !important;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	padding: 9px 12px;
	min-height: 38px;
}

.cp-portal .cp-support .jet-form-builder .jet-apb-calendar-slots__close{
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	width: 32px;
	height: 32px;
}
.cp-portal .cp-dashboard-summary{
	margin-top: 8px;
}

.cp-portal .cp-project-headline{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}

.cp-portal .cp-inline-meta{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 10px 0;
}

.cp-portal .cp-inline-chip{
	display: inline-flex;
	align-items: center;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--cp-fill-01);
	border: 1px solid var(--cp-border-soft);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--cp-muted-50);
}

.cp-portal .cp-dashboard-chooser{
	margin-top: 0;
}

.cp-portal .cp-chooser-row{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-top: 1px solid var(--cp-border-faint);
}

.cp-portal .cp-chooser-row:first-of-type{
	border-top: 0;
	padding-top: 0;
}

.cp-portal .cp-chooser-main{
	flex: 1 1 auto;
	min-width: 0;
}

.cp-portal .cp-chooser-title{
	font-weight: 700;
	line-height: 1.3;
}

.cp-portal .cp-chooser-meta{
	margin-top: 6px;
}

.cp-portal .cp-chooser-sub{
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.45;
}

.cp-portal .cp-chooser-cta{
	flex: 0 0 auto;
}

.cp-portal .cp-projects-desktop{
	display: block;
}

.cp-portal .cp-projects-mobile{
	display: none !important;
}

.cp-portal .cp-project-mobile-card{
	border: 1px solid var(--cp-border-soft);
	border-radius: 12px;
	padding: 12px;
	margin-bottom: 12px;
	background: #fff;
}

.cp-portal .cp-project-mobile-card__head{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 6px;
}

.cp-portal .cp-project-mobile-card__title{
	margin: 0;
	font-size: 22px;
	line-height: 1.2;
}

.cp-portal .cp-project-mobile-card__phase{
	margin-bottom: 8px;
}

.cp-portal .cp-project-mobile-card__row{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 0;
	border-top: 1px solid var(--cp-border-faint);
}

.cp-portal .cp-project-mobile-card__row:first-of-type{
	border-top: 0;
}

.cp-portal .cp-project-top-actions .cp-btn{
	width: 100%;
}

@media (min-width: 560px){
	.cp-portal .cp-project-top-actions .cp-btn{
		width: auto;
	}
}

.cp-portal .cp-project-payments{
	display: flex;
	flex-direction: column;
}

.cp-portal .cp-project-payments > .cp-project-payments__form,
.cp-portal .cp-project-payments > .cp-project-payments__details,
.cp-portal .cp-project-payments > .cp-project-payments__history{
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--cp-border-soft);
}

.cp-portal .cp-project-payments > .cp-project-payments__history .cp-section-title{
	margin-bottom: 10px;
}

@media (max-width: 1024px){
	.cp-portal .cp-filter-row{
		grid-template-columns: 1fr;
	}

	.cp-portal .cp-filter-actions,
	.cp-portal .cp-filter-actions .cp-btn{
		width: 100%;
	}

	.cp-portal .cp-asset-grid{
			grid-template-columns: repeat(2, minmax(0, 1fr));
	}

		.cp-portal .cp-dashboard-snapshot .cp-pill-tabs,
		.cp-portal .cp-project-tabs{
			display: flex;
			flex-wrap: nowrap;
			overflow-x: auto;
			overflow-y: hidden;
			-webkit-overflow-scrolling: touch;
			scroll-behavior: smooth;
			scroll-snap-type: x mandatory;
			scrollbar-width: none;
			-ms-overflow-style: none;
			gap: 8px;
			padding-bottom: 0;
			border-bottom: 0 !important;
			margin-bottom: 10px;
		}

	.cp-portal .cp-dashboard-snapshot .cp-pill-tabs::-webkit-scrollbar,
	.cp-portal .cp-project-tabs::-webkit-scrollbar{
		display: none;
		width: 0;
		height: 0;
	}

	.cp-portal .cp-dashboard-snapshot .cp-pill-tab,
	.cp-portal .cp-project-tabs .cp-pill-tab{
		flex: 0 0 auto;
		white-space: nowrap;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

		.cp-portal .cp-tab-swipe-note{
			display: block;
			margin-top: 9px;
		}

	.cp-portal .cp-dashboard-snapshot .cp-snapshot-panel{
		display: none;
		margin-top: 12px;
		padding-top: 0;
		border-top: 0;
	}

	.cp-portal .cp-dashboard-snapshot .cp-snapshot-panel.is-active{
		display: block;
	}

	.cp-portal .cp-project-panel{
		display: none;
		margin-top: 10px;
		padding-top: 0;
		border-top: 0;
	}

	.cp-portal .cp-project-panel.is-active{
		display: block;
	}

	.cp-portal .cp-mobile-section-toggle{
		display: none !important;
	}

	.cp-portal .cp-project-panel__body{
		margin-top: 0;
	}

	.cp-portal .cp-projects-desktop{
		display: none !important;
	}

	.cp-portal .cp-projects-mobile{
		display: block !important;
	}
}

@media (max-width: 720px){
	.cp-portal .cp-modal{
		padding: 12px;
	}

	.cp-portal .cp-modal__dialog{
		margin: 0;
		max-width: none;
		width: min(620px, calc(100vw - 24px));
		max-height: calc(100vh - 24px);
		height: auto;
		border-radius: 14px;
		padding: 20px 16px 16px 16px;
	}

	.cp-portal .cp-action-picker-row{
		grid-template-columns: 1fr;
	}

	.cp-portal .cp-action-picker-row__cta,
	.cp-portal .cp-action-picker-row__cta .cp-btn{
		width: 100%;
	}

	.cp-portal .cp-filter-actions{
		width: 100%;
	}

	.cp-portal .cp-filter-actions .cp-btn{
		width: 100%;
	}
}

/* Step 3 premium theme engine (desktop-first, token-driven) */
.cp-portal img{
	max-width: 100%;
	height: auto;
}

.cp-portal a{
	color: var(--cp-link, var(--cp-brand));
}

.cp-portal a:hover{
	color: var(--cp-link-hover, var(--cp-brand-hot));
}

.cp-portal a:focus-visible,
.cp-portal button:focus-visible,
.cp-portal input:focus-visible,
.cp-portal select:focus-visible,
.cp-portal textarea:focus-visible,
.cp-portal summary:focus-visible{
	box-shadow: 0 0 0 3px var(--cp-focus-ring, rgba(140,5,0,.24));
	border-color: var(--cp-link, var(--cp-brand));
}

.cp-portal h1,
.cp-portal h2,
.cp-portal h3,
.cp-portal h4,
.cp-portal h5,
.cp-portal h6{
	font-family: var(--cp-font-heading, "Fira Sans Condensed", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	font-weight: var(--cp-font-weight-heading, 700);
	color: var(--cp-heading-text, var(--cp-text));
}

.cp-portal h1{ font-size: clamp(2rem, 1.7rem + .9vw, 2.4rem); }
.cp-portal h2{ font-size: clamp(1.6rem, 1.42rem + .5vw, 1.95rem); }
.cp-portal h3{ font-size: clamp(1.3rem, 1.18rem + .32vw, 1.55rem); }
.cp-portal h4{ font-size: clamp(1.08rem, 1.02rem + .16vw, 1.2rem); }

.cp-portal.cp-portal-shell{
	border-radius: var(--cp-radius-global, 12px);
	box-shadow: var(--cp-shadow-shell, 0 22px 48px -28px rgba(15,23,42,.36));
}

.cp-portal.cp-portal-shell .cp-shell-app{
	border: 1px solid var(--cp-border-soft, var(--cp-border));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}

.cp-portal.cp-portal-shell .cp-shell-sidebar{
	background: var(--cp-shell-sidebar-bg, #0f172a);
	color: var(--cp-shell-sidebar-text, #f8fafc);
	padding: var(--cp-space-4, 24px) var(--cp-space-2, 14px);
	gap: var(--cp-space-3, 18px);
	border-right: 1px solid var(--cp-shell-nav-border, rgba(255,255,255,.16));
}

.cp-portal.cp-portal-shell .cp-shell-brand{
	padding: var(--cp-space-1, 10px) var(--cp-space-1, 10px) var(--cp-space-2, 14px);
	border-bottom: 1px solid var(--cp-shell-nav-border, rgba(255,255,255,.16));
}

.cp-portal.cp-portal-shell .cp-shell-brand__text{
	color: var(--cp-shell-sidebar-text, #f8fafc);
	font-family: var(--cp-font-heading, inherit);
	font-weight: var(--cp-font-weight-heading, 700);
	font-size: 15px;
}
.cp-portal.cp-portal-shell .cp-shell-nav li::before,
.cp-portal.cp-portal-shell .cp-shell-nav li::marker{
	content: '' !important;
	display: none !important;
}

.cp-portal.cp-portal-shell .cp-shell-nav ul{
	gap: 8px;
}

.cp-portal.cp-portal-shell .cp-shell-nav__link{
	border-radius: var(--cp-radius-input, 10px);
	border: 1px solid transparent;
	color: var(--cp-shell-sidebar-muted, rgba(248,250,252,.86));
	font-family: var(--cp-font-body, inherit);
	font-weight: 600;
	padding: 11px 12px;
}

.cp-portal.cp-portal-shell .cp-shell-nav__link:hover{
	color: var(--cp-shell-sidebar-text, #f8fafc);
	background: var(--cp-shell-nav-hover-bg, rgba(255,255,255,.12));
	border-color: var(--cp-shell-nav-border, rgba(255,255,255,.16));
}

.cp-portal.cp-portal-shell .cp-shell-nav__link.is-active{
	color: var(--cp-shell-sidebar-text, #f8fafc);
	background: var(--cp-shell-nav-active-bg, rgba(255,255,255,.2));
	border-color: var(--cp-shell-nav-border, rgba(255,255,255,.16));
}

.cp-portal.cp-portal-shell .cp-shell-main{
	background: var(--cp-bg);
}

.cp-portal.cp-portal-shell .cp-shell-topbar,
.cp-portal.cp-portal-shell .cp-shell-footer{
	background: var(--cp-shell-topbar-bg, #ffffff);
	border-color: var(--cp-border-soft, var(--cp-border));
}

.cp-portal.cp-portal-shell .cp-shell-footer{
	background: var(--cp-shell-footer-bg, #ffffff);
}

.cp-portal.cp-portal-shell .cp-shell-topbar{
	padding: 0 var(--cp-space-4, 24px);
}

.cp-portal.cp-portal-shell .cp-shell-topbar__route{
	font-family: var(--cp-font-heading, inherit);
	font-weight: var(--cp-font-weight-heading, 700);
	color: var(--cp-heading-text, var(--cp-text));
}

.cp-portal.cp-portal-shell .cp-shell-topbar__welcome{
	color: var(--cp-muted-62, #64748b);
	font-size: 12px;
	font-weight: 600;
}

.cp-portal.cp-portal-shell .cp-shell-avatar{
	width: 40px;
	height: 40px;
	border-radius: 999px;
	border: 1px solid var(--cp-border-soft, var(--cp-border));
	background: var(--cp-fill-01, rgba(15,23,42,.03));
}

.cp-portal.cp-portal-shell .cp-shell-logout{
	min-height: 36px !important;
	padding: 8px 14px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	border: 1px solid var(--cp-border, #d5dbe3) !important;
	background: var(--cp-btn-secondary-bg, #e2e8f0) !important;
	color: var(--cp-btn-secondary-text, #1f2937) !important;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit)) !important;
	font-weight: var(--cp-font-weight-button, 600) !important;
}

.cp-portal.cp-portal-shell .cp-shell-logout:hover{
	background: var(--cp-btn-secondary-hover, #cbd5e1) !important;
	color: var(--cp-btn-secondary-text, #1f2937) !important;
}

.cp-portal.cp-portal-shell .cp-shell-content{
	padding: var(--cp-space-4, 24px);
	background: linear-gradient(180deg, var(--cp-fill-01, rgba(15,23,42,.03)) 0px, transparent 220px), var(--cp-bg);
}

.cp-portal.cp-portal-shell .cp-shell-content > .cp-container{
	max-width: min(1320px, 100%);
	margin: 0 auto;
	padding: 0;
}

.cp-portal.cp-portal-shell .cp-shell-footer{
	padding: 0 var(--cp-space-4, 24px);
	color: var(--cp-muted-62, #64748b);
}

.cp-portal.cp-portal-shell .cp-shell-footer a{
	color: var(--cp-link, var(--cp-brand));
}

.cp-portal .cp-card,
.cp-portal .cp-project-shell > .cp-card,
.cp-portal details.cp-accordion.cp-card,
.cp-portal .cp-project-shell > details.cp-accordion.cp-card{
	background: var(--cp-surface);
	border: 1px solid var(--cp-border-soft, var(--cp-border));
	border-radius: var(--cp-radius-card, 16px);
	box-shadow: var(--cp-shadow-card, 0 14px 30px -24px rgba(15,23,42,.28));
	padding: var(--cp-space-4, 24px) var(--cp-space-4, 24px) var(--cp-space-3, 18px);
}

.cp-portal details.cp-accordion > summary{
	padding: var(--cp-space-3, 18px) var(--cp-space-4, 24px);
	font-family: var(--cp-font-heading, inherit);
	font-weight: var(--cp-font-weight-heading, 700);
	font-size: clamp(1.05rem, .99rem + .18vw, 1.2rem);
	color: var(--cp-heading-text, var(--cp-text));
	background: var(--cp-surface);
}

.cp-portal .cp-accordion__body{
	padding: var(--cp-space-3, 18px);
}

.cp-portal .cp-grid,
.cp-portal .cp-project-shell > .cp-project-actions,
.cp-portal .cp-project-shell > .cp-project-head,
.cp-portal .cp-page-head,
.cp-portal .cp-section-head{
	gap: var(--cp-space-2, 14px);
	margin-bottom: var(--cp-space-3, 18px);
}

.cp-portal .cp-note,
.cp-portal .cp-section-subtitle,
.cp-portal .cp-page-note,
.cp-portal .cp-muted,
.cp-portal .cp-sub{
	color: var(--cp-muted-62, #64748b);
}

.cp-portal .cp-btn,
.cp-portal button,
.cp-portal input[type="button"],
.cp-portal input[type="submit"],
.cp-portal input[type="reset"],
.cp-portal .jet-form-builder__submit,
.cp-portal .jet-form-builder button[type="submit"],
.cp-portal .jet-form-builder input[type="submit"],
.cp-portal .jet-form-builder .jet-form-builder__action-button{
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-btn-primary-border, var(--cp-btn-primary-bg)) !important;
	background: var(--cp-btn-primary-bg) !important;
	color: var(--cp-btn-primary-text) !important;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	font-weight: var(--cp-font-weight-button, 600);
	letter-spacing: .02em;
	text-transform: uppercase;
	box-shadow: 0 10px 22px -14px var(--cp-shadow-color, rgba(15,23,42,.22));
}

@media (hover:hover){
	.cp-portal .cp-btn:hover,
	.cp-portal button:hover,
	.cp-portal input[type="button"]:hover,
	.cp-portal input[type="submit"]:hover,
	.cp-portal input[type="reset"]:hover,
	.cp-portal .jet-form-builder__submit:hover,
	.cp-portal .jet-form-builder button[type="submit"]:hover,
	.cp-portal .jet-form-builder input[type="submit"]:hover,
	.cp-portal .jet-form-builder .jet-form-builder__action-button:hover{
		background: var(--cp-brand-hot) !important;
		border-color: var(--cp-brand-hot) !important;
	}
}

.cp-portal .cp-btn.cp-btn--secondary{
	color: var(--cp-btn-secondary-text, #1f2937) !important;
}

@media (hover:hover){
	.cp-portal .cp-btn.cp-btn--secondary:hover{
		color: var(--cp-link-hover, var(--cp-brand-hot)) !important;
	}
}

.cp-portal input[type="text"],
.cp-portal input[type="email"],
.cp-portal input[type="number"],
.cp-portal input[type="url"],
.cp-portal input[type="date"],
.cp-portal input[type="datetime-local"],
.cp-portal input[type="time"],
.cp-portal input[type="search"],
.cp-portal input[type="tel"],
.cp-portal select,
.cp-portal textarea,
.cp-portal .jet-form-builder input[type="text"],
.cp-portal .jet-form-builder input[type="email"],
.cp-portal .jet-form-builder input[type="number"],
.cp-portal .jet-form-builder input[type="url"],
.cp-portal .jet-form-builder input[type="date"],
.cp-portal .jet-form-builder input[type="datetime-local"],
.cp-portal .jet-form-builder input[type="time"],
.cp-portal .jet-form-builder input[type="search"],
.cp-portal .jet-form-builder input[type="tel"],
.cp-portal .jet-form-builder select,
.cp-portal .jet-form-builder textarea{
	border-color: var(--cp-border);
	border-radius: var(--cp-radius-input);
	background: var(--cp-surface);
	color: var(--cp-text);
	font-family: var(--cp-font-body, inherit);
}

.cp-portal .cp-table{
	border-radius: var(--cp-radius-card, 16px);
	border-color: var(--cp-border-soft, var(--cp-border));
}

.cp-portal .cp-table thead th{
	background: var(--cp-fill-01, rgba(15,23,42,.03));
	color: var(--cp-muted-62, #64748b);
	font-family: var(--cp-font-heading, inherit);
	font-weight: 600;
}

.cp-portal .cp-pill{
	border-radius: var(--cp-radius-pill, 999px);
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	font-weight: var(--cp-font-weight-button, 600);
	background: var(--cp-pill-neutral-bg);
	color: var(--cp-pill-text, #ffffff) !important;
}

.cp-portal .cp-pill--active{ background: var(--cp-pill-active-bg); }
.cp-portal .cp-pill--paid,
.cp-portal .cp-pill--completed{ background: var(--cp-pill-completed-bg); }
.cp-portal .cp-pill--paused,
.cp-portal .cp-pill--pending{ background: var(--cp-pill-pending-bg); }
.cp-portal .cp-pill--canceled,
.cp-portal .cp-pill--draft{ background: var(--cp-pill-draft-bg); }
.cp-portal .cp-pill--overdue{ background: var(--cp-pill-overdue-bg); }
.cp-portal .cp-pill--upcoming{ background: var(--cp-pill-upcoming-bg); }
.cp-portal .cp-pill--neutral,
.cp-portal .cp-pill--info,
.cp-portal .cp-pill--default{ background: var(--cp-pill-neutral-bg); }

@media (min-width: 1025px){
	.cp-portal.cp-portal-shell .cp-shell-content{
		padding: var(--cp-space-5, 30px);
	}

	.cp-portal .cp-grid{
		gap: var(--cp-space-3, 18px);
	}
}

/* Pre-Stage-4 corrective pass: managed-route shell framing and topbar account menu */
body.cp-portal-managed-route{
	margin: 0;
	background: #edf1f5;
}

body.cp-portal-managed-route .cp-portal.cp-portal-shell{
	--cp-shell-frame-gap: clamp(14px, 2vw, 26px);
	width: min(1720px, calc(100% - (var(--cp-shell-frame-gap) * 2)));
	margin: var(--cp-shell-frame-gap) auto;
	border-radius: max(14px, var(--cp-radius-global, 12px));
}

body.cp-portal-managed-route .cp-portal.cp-portal-shell .cp-shell-app,
body.cp-portal-managed-route .cp-portal.cp-portal-shell.cp-shell--full-height .cp-shell-app{
	min-height: max(700px, calc(100vh - (var(--cp-shell-frame-gap) * 2)));
}

.cp-portal.cp-portal-shell .cp-shell-topbar__right{
	gap: 10px;
}

.cp-portal.cp-portal-shell .cp-shell-topbar__welcome{
	max-width: 260px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cp-portal.cp-portal-shell .cp-shell-profile{
	position: relative;
	display: inline-flex;
}

.cp-portal.cp-portal-shell .cp-shell-profile > summary{
	list-style: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 4px 6px;
	border-radius: 999px;
	border: 1px solid var(--cp-border-soft, var(--cp-border));
	background: var(--cp-surface);
	cursor: pointer;
	line-height: 1;
}

.cp-portal.cp-portal-shell .cp-shell-profile > summary::-webkit-details-marker{
	display: none;
}

.cp-portal.cp-portal-shell .cp-shell-profile[open] > summary{
	background: var(--cp-fill-01, rgba(15,23,42,.03));
}

.cp-portal.cp-portal-shell .cp-shell-profile__caret{
	font-size: 14px;
	height: 14px;
	width: 14px;
	line-height: 14px;
	color: var(--cp-muted-62, #64748b);
}

.cp-portal.cp-portal-shell .cp-shell-profile__menu{
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	min-width: 228px;
	padding: 10px;
	border-radius: 12px;
	border: 1px solid var(--cp-border-soft, var(--cp-border));
	background: var(--cp-surface);
	box-shadow: var(--cp-shadow-card, 0 14px 30px -24px rgba(15,23,42,.28));
	z-index: 40;
}

.cp-portal.cp-portal-shell .cp-shell-profile__identity{
	padding: 2px 4px 10px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(15,23,42,.06));
}

.cp-portal.cp-portal-shell .cp-shell-profile__name{
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-heading-text, var(--cp-text));
}

.cp-portal.cp-portal-shell .cp-shell-profile__email{
	margin-top: 2px;
	font-size: 12px;
	color: var(--cp-muted-62, #64748b);
}

.cp-portal.cp-portal-shell .cp-shell-profile__links{
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 8px;
}

.cp-portal.cp-portal-shell .cp-shell-profile__link{
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 8px;
	border-radius: 9px;
	color: var(--cp-text);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}

.cp-portal.cp-portal-shell .cp-shell-profile__link .dashicons{
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 16px;
}

.cp-portal.cp-portal-shell .cp-shell-profile__link:hover{
	background: var(--cp-fill-01, rgba(15,23,42,.03));
	text-decoration: none;
}

.cp-portal.cp-portal-shell .cp-shell-profile__link--danger{
	color: #991b1b;
}

@media (max-width: 1024px){
	body.cp-portal-managed-route .cp-portal.cp-portal-shell{
		width: 100%;
		margin: 0;
		border-radius: 0;
	}

	body.cp-portal-managed-route .cp-portal.cp-portal-shell .cp-shell-app,
	body.cp-portal-managed-route .cp-portal.cp-portal-shell.cp-shell--full-height .cp-shell-app{
		min-height: auto;
	}

	.cp-portal.cp-portal-shell .cp-shell-topbar__welcome{
		display: none;
	}

	.cp-portal.cp-portal-shell .cp-shell-profile__menu{
		right: 0;
		left: auto;
		min-width: 206px;
	}
}

/* Plugin-owned shell contract */
html.cp-shell-nav-lock,
body.cp-shell-nav-lock{
	overflow: hidden;
}

body.cp-portal-managed-route{
	margin: 0;
	background: var(--cp-bg, #f2f5f7);
}

body.cp-portal-managed-route .cp-portal.cp-portal-shell{
	width: 100%;
	max-width: 100%;
	margin: 0;
	border-radius: 0;
	overflow: visible;
}

body.cp-portal-managed-route .cp-portal.cp-portal-shell .cp-shell-app{
	display: flex;
	align-items: stretch;
	min-height: 100vh;
	background: var(--cp-bg, #f2f5f7);
	border: 0;
	border-radius: 0;
	overflow: hidden;
}

body.cp-portal-managed-route .cp-portal.cp-portal-shell .cp-shell-sidebar{
	position: relative;
	z-index: 30;
	display: flex;
	flex-direction: column;
	width: var(--cp-shell-sidebar-width, 276px);
	min-width: var(--cp-shell-sidebar-width, 276px);
	max-width: var(--cp-shell-sidebar-width, 276px);
	background: linear-gradient(180deg, #0f172a 0%, #0b1324 100%);
	color: #f8fafc;
	border-right: 1px solid rgba(15,23,42,.52);
	padding: 18px 14px 16px;
	gap: 14px;
}

body.cp-portal-managed-route .cp-shell-sidebar__head{
	display: flex;
	flex-direction: column;
	gap: 14px;
}

body.cp-portal-managed-route .cp-shell-brand{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px 14px;
	border-bottom: 1px solid rgba(148,163,184,.28);
}

body.cp-portal-managed-route .cp-shell-brand__logo{
	width: 36px;
	height: 36px;
	max-width: 36px;
	max-height: 36px;
	object-fit: contain;
}

body.cp-portal-managed-route .cp-shell-brand__text{
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .02em;
	color: #f8fafc;
}

body.cp-portal-managed-route .cp-shell-user{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px;
	border: 1px solid rgba(148,163,184,.22);
	border-radius: 12px;
	background: rgba(148,163,184,.08);
}

body.cp-portal-managed-route .cp-shell-user__meta{
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

body.cp-portal-managed-route .cp-shell-user__name{
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	color: #f8fafc;
}

body.cp-portal-managed-route .cp-shell-user__email{
	font-size: 12px;
	line-height: 1.3;
	color: rgba(226,232,240,.9);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.cp-portal-managed-route .cp-shell-nav{
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	padding-right: 2px;
}

body.cp-portal-managed-route .cp-shell-nav,
body.cp-portal-managed-route .cp-shell-nav ul,
body.cp-portal-managed-route .cp-shell-nav li{
	list-style: none;
	margin: 0;
	padding: 0;
}

body.cp-portal-managed-route .cp-shell-nav li::before,
body.cp-portal-managed-route .cp-shell-nav li::marker{
	content: none;
	display: none;
}

body.cp-portal-managed-route .cp-shell-nav ul{
	display: flex;
	flex-direction: column;
	gap: 6px;
}

body.cp-portal-managed-route .cp-shell-nav__item{
	margin: 0;
}

body.cp-portal-managed-route .cp-shell-nav__link{
	display: flex;
	align-items: center;
	gap: 11px;
	min-height: 48px;
	padding: 11px 12px;
	border-radius: 12px;
	border: 1px solid transparent;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	color: rgba(226,232,240,.94);
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

body.cp-portal-managed-route .cp-shell-nav__link:hover{
	color: #ffffff;
	text-decoration: none;
	background: rgba(148,163,184,.16);
	border-color: rgba(148,163,184,.34);
}

body.cp-portal-managed-route .cp-shell-nav__link.is-active{
	background: linear-gradient(180deg, #b90600 0%, #8c0500 100%);
	color: #ffffff;
	border-color: rgba(248,250,252,.28);
	box-shadow: 0 10px 20px -14px rgba(0,0,0,.62);
}

body.cp-portal-managed-route .cp-shell-nav__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	font-size: 18px;
	line-height: 1;
	color: currentColor;
	flex: 0 0 auto;
}

body.cp-portal-managed-route .cp-shell-nav__label{
	flex: 1 1 auto;
	min-width: 0;
}

body.cp-portal-managed-route .cp-shell-nav__badge{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	background: #ef4444;
	color: #ffffff;
	flex: 0 0 auto;
}

body.cp-portal-managed-route .cp-shell-sidebar__utility{
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid rgba(148,163,184,.24);
}

body.cp-portal-managed-route .cp-shell-utility__link{
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 11px;
	border-radius: 10px;
	border: 1px solid rgba(148,163,184,.24);
	background: rgba(148,163,184,.10);
	color: rgba(226,232,240,.94);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}

body.cp-portal-managed-route .cp-shell-utility__link:hover{
	text-decoration: none;
	background: rgba(148,163,184,.18);
	color: #ffffff;
}

body.cp-portal-managed-route .cp-shell-utility__link.is-support{
	background: rgba(140,5,0,.28);
	border-color: rgba(255,138,132,.35);
}

body.cp-portal-managed-route .cp-shell-main{
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: var(--cp-bg, #f2f5f7);
}

body.cp-portal-managed-route .cp-shell-topbar{
	height: var(--cp-shell-topbar-height, 76px);
	min-height: var(--cp-shell-topbar-height, 76px);
	background: var(--cp-shell-topbar-bg, #ffffff);
	border-bottom: 1px solid var(--cp-border-soft, rgba(15,23,42,.14));
	box-shadow: 0 1px 0 rgba(15,23,42,.04), 0 10px 24px -24px rgba(15,23,42,.35);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 0 24px;
}

body.cp-portal-managed-route .cp-shell-topbar__left,
body.cp-portal-managed-route .cp-shell-topbar__right{
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

body.cp-portal-managed-route .cp-shell-mobile-toggle{
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--cp-border-soft, rgba(15,23,42,.16));
	border-radius: 10px;
	background: #ffffff;
	color: var(--cp-heading-text, #0f172a);
	cursor: pointer;
}

body.cp-portal-managed-route .cp-shell-mobile-toggle .dashicons{
	font-size: 19px;
	width: 19px;
	height: 19px;
	line-height: 19px;
}

body.cp-portal-managed-route .cp-shell-topbar__route{
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cp-heading-text, #0f172a);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.cp-portal-managed-route .cp-shell-topbar__icon-link{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	border: 1px solid var(--cp-border-soft, rgba(15,23,42,.16));
	background: #ffffff;
	color: var(--cp-muted-62, #64748b);
	text-decoration: none;
}

body.cp-portal-managed-route .cp-shell-topbar__icon-link:hover{
	color: var(--cp-heading-text, #0f172a);
	background: var(--cp-fill-01, rgba(15,23,42,.03));
	text-decoration: none;
}

body.cp-portal-managed-route .cp-shell-topbar__icon-link .dashicons{
	font-size: 17px;
	width: 17px;
	height: 17px;
	line-height: 17px;
}

body.cp-portal-managed-route .cp-shell-profile{
	position: relative;
}

body.cp-portal-managed-route .cp-shell-profile__trigger{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 8px 0 4px;
	border-radius: 12px;
	border: 1px solid var(--cp-border-soft, rgba(15,23,42,.16));
	background: #ffffff;
	color: var(--cp-heading-text, #0f172a);
	cursor: pointer;
}

body.cp-portal-managed-route .cp-shell-profile__meta{
	display: inline-flex;
	align-items: center;
	max-width: 172px;
}

body.cp-portal-managed-route .cp-shell-profile__name-inline{
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.cp-portal-managed-route .cp-shell-profile__caret{
	font-size: 14px;
	width: 14px;
	height: 14px;
	line-height: 14px;
	color: var(--cp-muted-62, #64748b);
}

body.cp-portal-managed-route .cp-shell-profile__menu{
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 248px;
	padding: 12px;
	border-radius: 14px;
	border: 1px solid var(--cp-border-soft, rgba(15,23,42,.16));
	background: #ffffff;
	box-shadow: 0 24px 38px -28px rgba(15,23,42,.44);
	z-index: 85;
}

body.cp-portal-managed-route .cp-shell-profile.is-open .cp-shell-profile__menu{
	display: block;
}

body.cp-portal-managed-route .cp-shell-profile__identity{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 2px 4px 12px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(15,23,42,.08));
}

body.cp-portal-managed-route .cp-shell-profile__identity-meta{
	min-width: 0;
}

body.cp-portal-managed-route .cp-shell-profile__name{
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cp-heading-text, #0f172a);
}

body.cp-portal-managed-route .cp-shell-profile__email{
	font-size: 12px;
	line-height: 1.35;
	color: var(--cp-muted-62, #64748b);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.cp-portal-managed-route .cp-shell-profile__links{
	display: flex;
	flex-direction: column;
	gap: 4px;
}

body.cp-portal-managed-route .cp-shell-profile__link{
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 10px;
	border-radius: 10px;
	color: var(--cp-text, #0b0d10);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}

body.cp-portal-managed-route .cp-shell-profile__link:hover{
	background: var(--cp-fill-01, rgba(15,23,42,.03));
	text-decoration: none;
}

body.cp-portal-managed-route .cp-shell-profile__link--danger{
	color: #991b1b;
}

body.cp-portal-managed-route .cp-shell-content{
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
}

body.cp-portal-managed-route .cp-shell-content__inner{
	padding: 24px;
}

body.cp-portal-managed-route .cp-shell-footer{
	height: var(--cp-shell-footer-height, 52px);
	min-height: var(--cp-shell-footer-height, 52px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 0 24px;
	background: var(--cp-shell-footer-bg, #ffffff);
	border-top: 1px solid var(--cp-border-soft, rgba(15,23,42,.14));
	color: var(--cp-muted-62, #64748b);
	font-size: 13px;
}

body.cp-portal-managed-route .cp-shell-footer__right{
	display: flex;
	align-items: center;
	gap: 14px;
}

body.cp-portal-managed-route .cp-shell-footer a{
	color: inherit;
	text-decoration: none;
}

body.cp-portal-managed-route .cp-shell-footer a:hover{
	text-decoration: underline;
}

body.cp-portal-managed-route .cp-shell-avatar{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-width: 36px;
	min-height: 36px;
	max-width: 36px;
	max-height: 36px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(15,23,42,.10);
	line-height: 1;
	flex: 0 0 auto;
}

body.cp-portal-managed-route .cp-shell-avatar--sidebar{
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	max-width: 48px;
	max-height: 48px;
	background: rgba(255,255,255,.12);
}

body.cp-portal-managed-route .cp-shell-avatar--menu{
	width: 42px;
	height: 42px;
	min-width: 42px;
	min-height: 42px;
	max-width: 42px;
	max-height: 42px;
}

body.cp-portal-managed-route .cp-shell-avatar img{
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center;
}

body.cp-portal-managed-route .cp-shell-avatar__initials{
	font-size: 13px;
	font-weight: 700;
	color: #ffffff;
	text-transform: uppercase;
}

body.cp-portal-managed-route .cp-shell-backdrop{
	position: fixed;
	inset: 0;
	border: 0;
	padding: 0;
	margin: 0;
	background: rgba(2,6,23,.62);
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s ease;
	z-index: 60;
}

@media (max-width: 1024px){
	body.cp-portal-managed-route .cp-portal.cp-portal-shell .cp-shell-app{
		min-height: 100vh;
	}

	body.cp-portal-managed-route .cp-shell-mobile-toggle{
		display: inline-flex;
	}

	body.cp-portal-managed-route .cp-shell-topbar{
		position: sticky;
		top: 0;
		z-index: 45;
		height: 64px;
		min-height: 64px;
		padding: 0 14px;
	}

	body.cp-portal-managed-route .cp-shell-topbar__route{
		font-size: 19px;
	}

	body.cp-portal-managed-route .cp-shell-profile__meta,
	body.cp-portal-managed-route .cp-shell-profile__caret{
		display: none;
	}

	body.cp-portal-managed-route .cp-shell-sidebar{
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: min(86vw, 340px);
		min-width: min(86vw, 340px);
		max-width: min(86vw, 340px);
		padding: 18px 14px 20px;
		transform: translateX(-104%);
		transition: transform .24s ease;
		box-shadow: 18px 0 36px -24px rgba(2,6,23,.85);
		z-index: 80;
	}

	body.cp-portal-managed-route .cp-shell-main{
		width: 100%;
		min-width: 0;
	}

	body.cp-portal-managed-route .cp-shell-content__inner{
		padding: 14px;
	}

	body.cp-portal-managed-route .cp-shell-footer{
		height: auto;
		min-height: 50px;
		padding: 10px 14px;
	}

	body.cp-portal-managed-route .cp-shell-footer__left,
	body.cp-portal-managed-route .cp-shell-footer__right{
		font-size: 12px;
	}

	body.cp-portal-managed-route .cp-portal.cp-portal-shell.cp-shell-nav-open .cp-shell-sidebar{
		transform: translateX(0);
	}

	body.cp-portal-managed-route .cp-portal.cp-portal-shell.cp-shell-nav-open .cp-shell-backdrop{
		opacity: 1;
		pointer-events: auto;
	}

	body.cp-portal-managed-route .cp-shell-profile__menu{
		right: -2px;
		min-width: 220px;
	}
}

@media (min-width: 1025px){
	body.cp-portal-managed-route .cp-shell-mobile-toggle,
	body.cp-portal-managed-route .cp-shell-backdrop{
		display: none;
	}
}
