/* Client Portal frontend polish (scoped to portal output only) */
.cp-portal{
	--cp-bg: #f5f5f5;
	--cp-surface: #ffffff;
	--cp-text: #262626;
	--cp-heading-text: #0a0a0a;
	--cp-muted-62: #525252;
	--cp-muted-50: rgba(38,38,38,.64);
	--cp-border: #e5e5e5;
	--cp-border-soft: rgba(38,38,38,.09);
	--cp-border-faint: rgba(38,38,38,.06);
	--cp-fill-01: rgba(38,38,38,.02);
	--cp-fill-02: rgba(38,38,38,.035);
	--cp-brand: #0a0a0a;
	--cp-brand-hot: #262626;
	--cp-link: var(--cp-brand);
	--cp-link-hover: var(--cp-brand-hot);
	--cp-btn-primary-bg: #0a0a0a;
	--cp-btn-primary-text: #ffffff;
	--cp-btn-primary-border: #262626;
	--cp-btn-secondary-bg: #f5f5f5;
	--cp-btn-secondary-text: #0a0a0a;
	--cp-btn-secondary-hover: #e5e5e5;
	--cp-focus-ring: rgba(10,10,10,.2);
	--cp-pill-active-bg: var(--cp-status-info);
	--cp-pill-booked-bg: var(--cp-status-info);
	--cp-pill-confirmed-bg: var(--cp-status-success);
	--cp-pill-completed-bg: #009688;
	--cp-pill-delivered-bg: #00796B;
	--cp-pill-pending-bg: var(--cp-status-warning);
	--cp-pill-overdue-bg: var(--cp-status-danger);
	--cp-pill-upcoming-bg: var(--cp-status-warning);
	--cp-pill-cancelled-bg: #F44336;
	--cp-pill-paused-bg: var(--cp-status-neutral);
	--cp-pill-draft-bg: #9E9E9E;
	--cp-pill-neutral-bg: var(--cp-status-neutral);
	--cp-pill-paid-bg: var(--cp-status-success);
	--cp-pill-published-bg: var(--cp-status-success);
	--cp-pill-in-dev-bg: #3F51B5;
	--cp-pill-in-review-bg: var(--cp-status-warning);
	--cp-pill-text: #ffffff;
	--cp-sidebar-bg: #0a0a0a;
	--cp-header-bg: #ffffff;
	--cp-logo-bg: transparent;
	--cp-logo-text: var(--cp-heading-text);
	--cp-footer-bg: #ffffff;
	--cp-sidebar-text: #f5f5f5;
	--cp-sidebar-muted: rgba(245,245,245,.7);
	--cp-nav-hover-bg: rgba(255,255,255,.08);
	--cp-nav-active-bg: rgba(255,255,255,.14);
	--cp-nav-border: rgba(255,255,255,.10);
	--cp-sidebar-width: 280px;
	--cp-header-height: 60px;
	--cp-footer-height: 48px;
	/* Client portal sans — match staff CRM (Montserrat; enqueued with cp-portal-frontend-style). */
	--cp-font-body: Montserrat, "Segoe UI", system-ui, -apple-system, sans-serif;
	--cp-font-heading: Montserrat, "Segoe UI", system-ui, -apple-system, 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-sm: 6px;
	--cp-radius-md: 8px;
	--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(10,10,10,.12);
	--cp-shadow-shell: 0 22px 48px -28px rgba(10,10,10,.28);
	--cp-shadow-card: 0 1px 3px rgba(10,10,10,.08);
	--cp-shadow-panel: 0 4px 12px rgba(0, 0, 0, 0.08);
	--cp-shadow-overlay: 0 8px 24px rgba(0, 0, 0, 0.12);
	--cp-shadow-focus: 0 0 0 2px rgba(10, 10, 10, 0.10);
	/* PS-28 — staff §0.3 chrome parity (scrim / sheet / modal card); brand stays --cp-* */
	--cp-shell-scrim: rgba(15, 23, 42, 0.45);
	--cp-shell-sheet-top-radius: 16px;
	--cp-shell-bottom-sheet-shadow: 0 -10px 36px rgba(15, 23, 42, 0.16);
	--cp-shell-slide-edge-shadow: -14px 0 40px rgba(15, 23, 42, 0.18);
	--cp-shell-popup-pad-x: 20px;
	--cp-shell-popup-header-pad-y: 16px;
	--cp-shell-popup-body-pad-y: 16px;
	--cp-shell-popup-footer-pad-y: 14px;
	--cp-shell-modal-card-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
	--cp-shell-mobile-popup-pad-bottom: calc(28px + max(12px, env(safe-area-inset-bottom, 0px)));
	--cp-shell-lightbox-frame-shadow: 0 32px 80px rgba(0, 0, 0, 0.55);

	/* Status color tokens (portal mirrors) */
	--cp-status-success: #388E3C;
	--cp-status-warning: #FF9800;
	--cp-status-danger: #D32F2F;
	--cp-status-info: #2196F3;
	--cp-status-neutral: #757575;
	--cp-status-active: #0a0a0a;

	/* Typography scale (portal mirrors) */
	--cp-text-xs: 10px;
	--cp-text-sm: 11px;
	--cp-text-base: 13px;
	--cp-text-md: 14px;

	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: 1024px){
	.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 v1.82 - ArchitectUI-inspired layout
   Theme styles are stripped on managed routes so these rules have no competition.
   Inline style fallbacks on HTML elements provide a nuclear safety net.
   ========================================================================== */

/* --- Screen reader text (accessibility helper) ----------------------------- */
.cp-portal .screen-reader-text,
.screen-reader-text{
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* --- Profile menu open state ----------------------------------------------- */
.cp-portal .cp-shell-profile.is-open .cp-shell-profile__menu{
	display: block !important;
}

/* --- Minimal reset -------------------------------------------------------- */
body.cp-portal-managed-route{
	margin: 0 !important;
	padding: 0 !important;
	background: var(--cp-bg, #f1f4f6) !important;
	font-family: var(--cp-font-body, Montserrat, "Segoe UI", system-ui, sans-serif);
	font-size: var(--cp-font-size, 14px);
	color: var(--cp-text, #404040);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* PS-28: body-appended overlays (e.g. gallery review) inherit shell tokens */
	--cp-shell-scrim: rgba(15, 23, 42, 0.45);
	--cp-shell-sheet-top-radius: 16px;
	--cp-shell-bottom-sheet-shadow: 0 -10px 36px rgba(15, 23, 42, 0.16);
	--cp-shell-modal-card-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
	--cp-shell-mobile-popup-pad-bottom: calc(28px + max(12px, env(safe-area-inset-bottom, 0px)));
	--cp-shell-slide-edge-shadow: -14px 0 40px rgba(15, 23, 42, 0.18);
	--cp-shell-lightbox-frame-shadow: 0 32px 80px rgba(0, 0, 0, 0.55);
}

html.cp-shell-nav-lock,
body.cp-shell-nav-lock{
	overflow: hidden !important;
}

/* --- Root container -------------------------------------------------------- */
.cp-portal.cp-app-container{
	position: relative;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
}

/* --- Header (fixed top bar) ------------------------------------------------ */
.cp-portal .cp-app-header{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1050;
	height: var(--cp-header-height, 60px);
	display: flex;
	align-items: stretch;
	background: var(--cp-header-bg, #fff);
	border-bottom: 1px solid var(--cp-border-soft, rgba(0,0,0,.08));
	box-shadow: var(--cp-shadow-card);
	padding: 0;
	gap: 0;
	box-sizing: border-box;
	max-width: 100%;
}

/* --- Header logo area (aligns with top bar; light by default) ------------- */
.cp-portal .cp-app-header__logo-area{
	display: flex;
	align-items: center;
	width: auto;
	min-width: min(200px, 28vw);
	max-width: 320px;
	height: 100%;
	flex-shrink: 0;
	background: var(--cp-logo-bg, transparent);
	padding: 0 20px;
	box-sizing: border-box;
	margin-bottom: -1px;
	border-right: 1px solid var(--cp-border-faint, rgba(0, 0, 0, .06));
}
.cp-portal .cp-app-header__logo-area .cp-shell-brand{
	color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a));
}
.cp-portal .cp-app-header__logo-area .cp-shell-brand__text{
	color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a));
}

.cp-portal .cp-shell-brand{
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
}
.cp-portal .cp-shell-brand:hover{ text-decoration: none; }

.cp-portal .cp-shell-brand__logo{
	display: block;
	max-width: 34px;
	max-height: 34px;
	width: auto;
	height: auto;
	object-fit: contain;
	background-color: transparent;
	background-image: none;
}

/* Public / hero logos: no opaque plate behind transparent PNG/SVG. */
.cp-portal img.cp-ug-hero__logo,
.cp-portal img.cp-mobile-menu__logo,
.cp-portal img.cp-gv-public-logo{
	background-color: transparent;
	background-image: none;
}

.cp-portal .cp-shell-brand__text{
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .01em;
	color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a));
	font-family: var(--cp-font-heading, inherit);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}

.cp-portal .cp-app-header__mobile-menu{
	display: none;
}

.cp-portal .cp-mobile-toggle-nav{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--cp-radius-md);
	background: transparent;
	color: var(--cp-heading-text, #0a0a0a);
	cursor: pointer;
	font-size: 22px;
}
.cp-portal .cp-mobile-toggle-nav:hover{
	background: var(--cp-fill-02, rgba(0,0,0,.04));
}
.cp-portal .cp-mobile-toggle-nav:focus-visible{
	outline: 2px solid var(--cp-link, #0a0a0a);
	outline-offset: 2px;
}

/* Center pill navigation (desktop) */
.cp-portal .cp-app-header__pill-nav{
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-width: 0;
	padding: 0 16px 0 24px;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.cp-portal .cp-pill-nav__link{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s ease, color .15s ease;
}
.cp-portal .cp-pill-nav__link .cp-pill-nav__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	opacity: .85;
	color: currentColor;
}
.cp-portal .cp-pill-nav__link .cp-pill-nav__icon svg{
	width: 18px;
	height: 18px;
	display: block;
}
.cp-portal .cp-pill-nav__link.is-active .cp-pill-nav__icon{
	opacity: 1;
}
.cp-portal .cp-pill-nav__link:hover{
	background: var(--cp-fill-02, rgba(10,10,10,.07));
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-pill-nav__link:focus-visible{
	outline: 2px solid var(--cp-focus-ring, rgba(10,10,10,.2));
	outline-offset: 2px;
	text-decoration: none;
}
.cp-portal .cp-pill-nav__link.is-active{
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	box-shadow:
		inset 0 0 0 1px var(--cp-border-soft, rgba(10,10,10,.1)),
		var(--cp-shadow-card, 0 1px 2px rgba(10,10,10,.06));
}

.cp-portal .cp-app-header__content{
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	min-width: 0;
	padding: 0 20px 0 16px;
}

.cp-portal .cp-app-header-left,
.cp-portal .cp-app-header-right{
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.cp-portal .cp-app-page-title{
	margin: 0;
	padding: 0;
	font-size: 17px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	font-family: var(--cp-font-heading, inherit);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	border: 0;
	background: transparent;
	line-height: 1.3;
}

.cp-portal .cp-header-icon-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	border-radius: var(--cp-radius-pill, 999px);
	color: var(--cp-muted-62, #525252);
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.cp-portal .cp-header-icon-btn:hover{
	background: var(--cp-fill-02, rgba(0,0,0,.04));
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}

/* --- Profile dropdown ------------------------------------------------------ */
.cp-portal .cp-shell-profile{ position: relative; }

.cp-portal .cp-shell-profile__trigger{
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 4px 10px 4px 4px;
	border: 0;
	border-radius: var(--cp-radius-pill, 999px);
	background: transparent;
	cursor: pointer;
	color: var(--cp-text, #404040);
}
.cp-portal .cp-shell-profile__trigger:hover{
	background: var(--cp-fill-02, rgba(0,0,0,.04));
}

.cp-portal .cp-shell-avatar{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: var(--cp-radius-pill);
	overflow: hidden;
	background: var(--cp-brand, #0a0a0a);
	border: 0;
	box-shadow: var(--cp-shadow-panel);
	color: #fff;
	font-size: var(--cp-text-base);
	font-weight: 700;
}
.cp-portal .cp-shell-avatar--lg{ width: 40px; height: 40px; font-size: 14px; }
.cp-portal .cp-shell-avatar img{ width: 100%; height: 100%; display: block; object-fit: cover; }
.cp-portal .cp-shell-avatar__initials{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.cp-portal .cp-shell-profile__name{ font-weight: 600; font-size: var(--cp-text-base); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; max-width: 140px; }
.cp-portal .cp-shell-profile__caret{ font-size: 16px; color: var(--cp-muted-62, #525252); }

.cp-portal .cp-shell-profile__menu{
	position: absolute;
	top: calc(100% + 18px);
	right: 0;
	z-index: 1060;
	min-width: 220px;
	max-height: 70vh;
	max-height: min(70dvh, 420px);
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: var(--cp-radius-card, 14px);
	box-shadow: var(--cp-shadow-overlay);
	padding: 8px 0;
}
.cp-portal .cp-shell-profile__menu[hidden]{ display: none; }
.cp-portal .cp-shell-profile__identity{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px 12px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(0,0,0,.06));
}
.cp-portal .cp-shell-profile__display-name{ font-weight: 700; font-size: 14px; color: var(--cp-heading-text, #0a0a0a); }
.cp-portal .cp-shell-profile__email{ font-size: var(--cp-text-base); color: var(--cp-muted-62, #525252); margin-top: 2px; }
.cp-portal .cp-shell-profile__links{ padding: 6px 0; }
.cp-portal .cp-shell-profile__link{
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-text, #404040);
	text-decoration: none;
}
.cp-portal .cp-shell-profile__link:hover{
	background: var(--cp-fill-01, rgba(0,0,0,.02));
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-shell-profile__link .dashicons{ font-size: 16px; width: 16px; height: 16px; }
.cp-portal .cp-shell-profile__link--danger{ color: var(--cp-brand, #0a0a0a); }
.cp-portal .cp-shell-profile__link--danger:hover{ color: var(--cp-brand-hot, #262626); background: rgba(10,10,10,.04); }

/* --- Main area (sidebar + content) ---------------------------------------- */
.cp-portal .cp-app-main{
	display: flex;
	flex: 1;
	margin-top: var(--cp-header-height, 60px);
	min-height: calc(100vh - var(--cp-header-height, 60px));
	min-height: calc(100dvh - var(--cp-header-height, 60px));
	position: relative;
}

/* --- Sidebar (fixed left) ------------------------------------------------- */
.cp-portal .cp-app-sidebar{
	position: fixed;
	top: var(--cp-header-height, 60px);
	left: 0;
	bottom: 0;
	width: var(--cp-sidebar-width, 280px);
	z-index: 1040;
	display: flex;
	flex-direction: column;
	background: var(--cp-sidebar-bg, #1e2a3a);
	color: var(--cp-sidebar-text, #fafafa);
	border-right: 1px solid rgba(255,255,255,.06);
	overflow: hidden;
	box-sizing: border-box;
	transition: transform .25s cubic-bezier(.4,0,.2,1);
}

.cp-portal .cp-scrollbar-sidebar{
	flex: 1;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 16px 12px 8px;
}

.cp-portal .cp-app-sidebar__inner{
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* --- Nav menu -------------------------------------------------------------- */
.cp-portal .cp-vertical-nav-menu{
	list-style: none !important;
	list-style-type: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cp-portal .cp-vertical-nav-menu li{
	list-style: none !important;
	list-style-type: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cp-portal .cp-vertical-nav-menu li::before,
.cp-portal .cp-vertical-nav-menu li::after,
.cp-portal .cp-vertical-nav-menu li::marker{
	content: none !important;
	display: none !important;
}

.cp-portal .cp-vertical-nav-menu a{
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px 12px;
	border-radius: var(--cp-radius-md);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--cp-sidebar-muted, rgba(248,250,252,.78));
	text-decoration: none;
	transition: background .12s ease, color .12s ease;
	line-height: 1.3;
}

.cp-portal .cp-vertical-nav-menu a:hover{
	background: var(--cp-nav-hover-bg, rgba(255,255,255,.08));
	color: var(--cp-sidebar-text, #fafafa);
	text-decoration: none;
}

.cp-portal .cp-vertical-nav-menu a.mm-active,
.cp-portal .cp-vertical-nav-menu a.cp-nav-active{
	background: var(--cp-nav-active-bg, rgba(255,255,255,.14));
	color: var(--cp-sidebar-text, #fafafa);
	font-weight: 700;
}

.cp-portal .cp-vertical-nav-menu .dashicons{
	font-size: 18px;
	width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: inherit;
}

.cp-portal .cp-nav-label{
	display: inline;
	visibility: visible;
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	clip-path: none;
}

/* --- Sidebar utility links ------------------------------------------------ */
.cp-portal .cp-sidebar-utility{
	padding: 10px 14px 14px;
	border-top: 1px solid var(--cp-nav-border, rgba(255,255,255,.08));
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex-shrink: 0;
}

.cp-portal .cp-sidebar-utility__link{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	border-radius: var(--cp-radius-md);
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-sidebar-muted, rgba(245,245,245,.7));
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
	letter-spacing: .01em;
}
.cp-portal .cp-sidebar-utility__link:hover{
	background: var(--cp-nav-hover-bg, rgba(255,255,255,.08));
	color: var(--cp-sidebar-text, #f5f5f5);
	text-decoration: none;
}
.cp-portal .cp-sidebar-utility__link .dashicons{
	font-size: 15px;
	width: 16px;
	height: 16px;
	opacity: .7;
	transition: opacity .15s ease;
}
.cp-portal .cp-sidebar-utility__link:hover .dashicons{ opacity: 1; }
.cp-portal .cp-sidebar-utility__link.is-support{ color: rgba(245,245,245,.6); }
.cp-portal .cp-sidebar-utility__link.is-support:hover{ color: #fff; background: rgba(255,255,255,.1); }

/* --- Sidebar section label ------------------------------------------------ */
.cp-portal .cp-sidebar-section-label{
	margin: 0 0 10px 4px;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--cp-sidebar-muted, rgba(245,245,245,.5));
}

/* --- Sidebar CTA (lower-left primary action) ------------------------------ */
.cp-portal .cp-sidebar-cta-wrap{
	padding: 0 12px 14px;
	flex-shrink: 0;
}
.cp-portal .cp-sidebar-cta{
	display: block;
	padding: 14px 16px;
	border-radius: var(--cp-radius-input);
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.12);
	text-decoration: none;
	transition: background .2s ease, border-color .2s ease;
}
.cp-portal .cp-sidebar-cta:hover{
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.2);
	text-decoration: none;
}
.cp-portal .cp-sidebar-cta__header{
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}
.cp-portal .cp-sidebar-cta__icon{
	color: var(--cp-sidebar-text, #f5f5f5);
	flex-shrink: 0;
}
.cp-portal .cp-sidebar-cta__title{
	font-size: var(--cp-text-base);
	font-weight: 700;
	color: var(--cp-sidebar-text, #f5f5f5);
	line-height: 1.2;
}
.cp-portal .cp-sidebar-cta__desc{
	font-size: var(--cp-text-sm);
	color: var(--cp-sidebar-muted, rgba(245,245,245,.55));
	line-height: 1.45;
	margin-bottom: 12px;
}
.cp-portal .cp-sidebar-cta__btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 36px;
	padding: 8px 16px;
	border-radius: var(--cp-radius-pill, 999px);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: var(--cp-btn-primary-text, #fff);
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	transition: background .15s ease;
	cursor: pointer;
	border: none;
}

/* --- Content area --------------------------------------------------------- */
.cp-portal .cp-app-main__outer{
	flex: 1;
	margin-left: 0;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: calc(100vh - var(--cp-header-height, 60px));
	min-height: calc(100dvh - var(--cp-header-height, 60px));
}

.cp-portal .cp-app-main__inner{
	flex: 1;
	padding: 28px;
	background: var(--cp-bg, #f1f4f6);
}

.cp-portal .cp-app-main__inner > .cp-container{
	max-width: min(1320px, 100%);
	margin: 0 auto;
	padding: 0;
}

/* --- Documents hub + projects/sessions: stacked spaced cards ---------------- */
.cp-portal .cp-doc-hub-grid{
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	background: transparent;
	border: none;
	box-shadow: none;
	overflow: visible;
}
.cp-portal ul.cp-doc-hub-grid.cp-gal-list{
	list-style: none;
	padding: 0;
	margin: 0;
	gap: 14px;
}

/* --- Gallery list (same row card system as documents / sessions) ---------- */
.cp-portal .cp-doc-hub-card.cp-gal-card{
	text-decoration: none;
	color: inherit;
	min-height: 0;
	padding: 0;
	gap: 0;
	overflow: hidden;
	border-radius: var(--cp-radius-card, 14px);
	align-items: stretch;
}
.cp-portal a.cp-doc-hub-card.cp-gal-card:hover{
	text-decoration: none;
	color: inherit;
	box-shadow: var(--cp-shadow-panel);
}
.cp-portal .cp-gal-card__thumb{
	flex: 0 0 140px;
	width: 140px;
	height: auto;
	min-height: 120px;
	border-radius: 0;
	overflow: hidden;
	background: var(--cp-fill-02, rgba(10, 10, 10, .055));
	align-self: stretch;
	box-sizing: border-box;
}
.cp-portal .cp-gal-card__thumb-inner,
.cp-portal .cp-gal-card__thumb-inner.cp-gal-card__cover{
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 120px;
	background: var(--cp-bg-subtle, #fafafa);
}
.cp-portal .cp-gal-card__thumb-inner .cp-gal-wm-overlay{
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
}
.cp-portal .cp-gal-card__thumb-inner .cp-gal-cover-protect{
	position: absolute;
	inset: 0;
	z-index: 3;
	cursor: pointer;
}
.cp-portal .cp-gal-card__img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	-webkit-user-drag: none;
	user-select: none;
}
.cp-portal .cp-gal-card__img--locked{
	filter: blur(8px);
	transform: scale(1.06);
}
.cp-portal .cp-gal-card__cover-placeholder{
	width: 100%;
	height: 100%;
	min-height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-portal .cp-gal-card .cp-doc-hub-card__body{
	padding: 16px 18px;
	gap: 4px;
}
.cp-portal .cp-gal-card .cp-doc-hub-card__title{
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
}
.cp-portal .cp-gal-card .cp-doc-hub-card__subtitle{
	font-size: var(--cp-text-base);
	color: var(--cp-muted-62, #a3a3a3);
	font-weight: 500;
	line-height: 1.4;
}
.cp-portal .cp-gal-card__lock{
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 10, .5);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	gap: 6px;
	text-align: center;
	padding: 6px;
}
.cp-portal .cp-gal-card__lock svg{
	opacity: .92;
	flex-shrink: 0;
}
.cp-portal .cp-gal-card__lock p{
	margin: 0;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .9;
	line-height: 1.2;
}
.cp-portal .cp-gal-card .cp-doc-hub-card__pills{
	margin-bottom: 2px;
}
.cp-portal .cp-gal-card .cp-doc-hub-card__pills .cp-pill--g-ready{
	background: #166534 !important;
	color: #fff !important;
	border: 0 !important;
	font-size: 10px;
	padding: 3px 9px;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: none;
	line-height: 1.25;
	border-radius: var(--cp-radius-sm);
}
.cp-portal .cp-gal-card .cp-doc-hub-card__pills .cp-pill--doc-type,
.cp-portal .cp-gal-card .cp-doc-hub-card__pills .cp-pill--pending{
	font-size: 10px;
	padding: 3px 9px;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.25;
	border-radius: var(--cp-radius-sm);
}
.cp-portal .cp-gal-card--locked{
	cursor: default;
}
.cp-portal .cp-gal-card--locked:hover{
	box-shadow: var(--cp-shadow-card);
	border-color: var(--cp-border-soft, rgba(0, 0, 0, .08));
}
.cp-portal .cp-gal-card__unlock{
	margin-top: 8px;
	padding-top: 10px;
	border-top: 1px solid var(--cp-border-faint, rgba(10, 10, 10, .06));
	width: 100%;
	box-sizing: border-box;
}
.cp-portal .cp-gal-pw-form{
	margin: 0;
}
.cp-portal .cp-gal-pw-form p{
	font-size: var(--cp-text-base);
	color: var(--cp-muted-62, #525252);
	margin: 0 0 10px;
	line-height: 1.4;
}
.cp-portal .cp-gal-pw-row{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: stretch;
}
.cp-portal .cp-gal-pw-input{
	flex: 1 1 120px;
	min-width: 0;
	height: 36px;
	border: 1px solid var(--cp-border-soft, rgba(0, 0, 0, .12));
	border-radius: var(--cp-radius-md);
	padding: 0 10px;
	font-size: var(--cp-text-base);
	background: var(--cp-surface, #fff);
	color: var(--cp-text, #0b0d10);
	box-sizing: border-box;
}
.cp-portal .cp-gal-pw-btn{
	height: 36px;
	padding: 0 14px;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: #fff;
	border: none;
	border-radius: var(--cp-radius-md);
	font-size: var(--cp-text-base);
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}
.cp-portal .cp-gal-pw-btn:hover{
	opacity: .92;
}

/* Gallery cards — vertical stack on mobile */
@media (max-width: 640px){
	.cp-portal .cp-doc-hub-card.cp-gal-card{
		flex-direction: column;
	}
	.cp-portal .cp-gal-card__thumb{
		flex: 0 0 auto;
		width: 100%;
		height: auto;
		min-height: 0;
	}
	.cp-portal .cp-gal-card__thumb-inner,
	.cp-portal .cp-gal-card__thumb-inner.cp-gal-card__cover{
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
	.cp-portal .cp-gal-card__cover-placeholder{
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
	.cp-portal .cp-gal-card .cp-doc-hub-card__body{
		padding: 14px 16px 16px;
	}
}
@media (min-width: 641px) and (max-width: 1024px){
	.cp-portal .cp-gal-card__thumb{
		flex: 0 0 120px;
		width: 120px;
	}
	.cp-portal .cp-gal-card__thumb-inner,
	.cp-portal .cp-gal-card__thumb-inner.cp-gal-card__cover{
		min-height: 100px;
	}
}

.cp-portal .cp-doc-hub-card{
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 18px;
	border-radius: var(--cp-radius-card, 14px);
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-soft, rgba(0, 0, 0, .08));
	box-shadow: var(--cp-shadow-card);
	text-decoration: none;
	color: inherit;
	min-width: 0;
	min-height: 56px;
	box-sizing: border-box;
	transition: background .12s ease, border-color .12s ease, box-shadow .18s ease;
}
.cp-portal .cp-doc-hub-card:hover{
	background: var(--cp-surface, #fff);
	border-color: var(--cp-border-soft, rgba(0, 0, 0, .12));
	box-shadow: var(--cp-shadow-panel);
	text-decoration: none;
	color: inherit;
}
.cp-portal .cp-doc-hub-card:active{
	background: var(--cp-fill-01, rgba(10, 10, 10, .03));
}
.cp-portal .cp-doc-hub-card__icon{
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 11px;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.cp-portal .cp-doc-hub-card__icon .dashicons{
	font-size: 20px;
	width: 20px;
	height: 20px;
}
.cp-portal .cp-doc-hub-card__body{
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	justify-content: flex-start;
}
.cp-portal .cp-doc-hub-card__title{
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.3;
}
.cp-portal .cp-doc-hub-card__subtitle{
	font-size: var(--cp-text-base);
	color: var(--cp-muted-62, #a3a3a3);
	line-height: 1.35;
	font-weight: 500;
}
.cp-portal .cp-doc-hub-card__badges{
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 2px;
}
.cp-portal .cp-doc-hub-card__badges .cp-pill,
.cp-portal .cp-doc-hub-card__headline .cp-pill{
	text-transform: none;
	font-size: 10px;
	padding: 3px 9px;
	border-radius: var(--cp-radius-sm);
}
/* Status / type on one row (documents hub) — above title in DOM order */
.cp-portal .cp-doc-hub-card__pills{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin-bottom: 2px;
	padding-left: 0;
}
.cp-portal .cp-doc-hub-card__pill{
	display: inline-flex;
	align-items: center;
	max-width: 100%;
}
.cp-portal .cp-doc-hub-card__pills .cp-pill{
	text-transform: none;
	font-size: 10px;
	padding: 3px 9px;
	border-radius: var(--cp-radius-sm);
}
.cp-portal .cp-doc-hub-card__pills .cp-pill--doc-type{
	background: #525252 !important;
	color: #fff !important;
	border: 0 !important;
}
/* Solid status pills inside document hub */
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--signed{
	background: #166534 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--needs_signature{
	background: #d97706 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--external{
	background: #2563eb !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--confirmed{
	background: #16a34a !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--active{
	background: #2563eb !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__pill--status .cp-pill--pending{
	background: #d97706 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card__cta{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 32px;
	padding: 6px 14px;
	margin-top: 10px;
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: var(--cp-radius-pill, 999px);
	box-sizing: border-box;
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	text-align: center;
	transition: background .12s ease, border-color .12s ease, transform .1s ease;
	align-self: flex-start;
	box-shadow: var(--cp-shadow-card);
}
.cp-portal .cp-doc-hub-card:hover .cp-doc-hub-card__cta{
	background: var(--cp-fill-02, rgba(11,13,16,.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a);
}
@media (max-width: 640px){
	.cp-portal .cp-doc-hub-card{
		flex-wrap: nowrap;
		align-items: flex-start;
		padding: 14px 16px;
	}
	.cp-portal .cp-doc-hub-card__icon{
		width: 36px;
		height: 36px;
		border-radius: 9px;
	}
	.cp-portal .cp-doc-hub-card__icon .dashicons{
		font-size: 17px;
		width: 17px;
		height: 17px;
	}
	.cp-portal .cp-doc-hub-card__title{
		font-size: 14px;
	}
}

/* Projects / sessions lists (same card system as documents hub) */
.cp-portal .cp-doc-hub-card--entity{
	align-items: flex-start;
	padding: 18px 20px;
	min-height: 0;
}
.cp-portal .cp-doc-hub-card__headline{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	width: 100%;
}
.cp-portal .cp-doc-hub-card__headline .cp-doc-hub-card__title{
	flex: 1 1 140px;
	min-width: 0;
}
.cp-portal .cp-doc-hub-card__headline .cp-doc-hub-card__badges{
	margin-top: 0;
	flex-shrink: 0;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--active,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--active{
	background: #2563eb !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--paid,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--paid{
	background: #16a34a !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--completed,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--completed{
	background: #0d9488 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--delivered,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--delivered{
	background: #0f766e !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--cancelled,
.cp-portal .cp-doc-hub-card--entity .cp-pill--canceled,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--cancelled,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--canceled{
	background: #dc2626 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--paused,
.cp-portal .cp-doc-hub-card--entity .cp-pill--on-hold,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--paused,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--on-hold{
	background: #d97706 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--draft,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--draft{
	background: #525252 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--overdue,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--overdue{
	background: #dc2626 !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--booked,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--booked{
	background: #2563eb !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-pill--confirmed,
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__headline .cp-pill--confirmed{
	background: #16a34a !important;
	color: #fff !important;
	border: 0 !important;
}
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__subtitle{
	margin-top: 2px;
}
.cp-portal .cp-hub-card-rows{
	display: flex;
	flex-direction: column;
	width: 100%;
	margin-top: 6px;
	padding-top: 4px;
	border-top: 1px solid var(--cp-border-faint, rgba(10, 10, 10, .06));
}
.cp-portal .cp-hub-card-row{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
	font-size: var(--cp-text-base);
	line-height: 1.35;
}
.cp-portal .cp-hub-card-row .cp-k{
	color: var(--cp-muted-62, #a3a3a3);
	font-weight: 500;
	flex-shrink: 0;
}
.cp-portal .cp-hub-card-row .cp-v{
	color: var(--cp-heading-text, #0a0a0a);
	font-weight: 700;
	text-align: right;
	min-width: 0;
	word-break: break-word;
}
.cp-portal .cp-hub-card-row .cp-v.cp-text--overdue{
	color: var(--cp-pill-overdue-bg, #b91c1c);
}
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__cta{
	margin-top: 10px;
}
@media (max-width: 640px){
	.cp-portal .cp-doc-hub-card--entity{
		padding: 14px 16px;
	}
	.cp-portal .cp-doc-hub-card__headline{
		gap: 6px;
	}
}

/* --- Footer --------------------------------------------------------------- */
.cp-portal .cp-app-wrapper-footer{ flex-shrink: 0; }
.cp-portal .cp-app-footer{
	background: var(--cp-footer-bg, #fff);
	border-top: 1px solid var(--cp-border-soft, rgba(0,0,0,.06));
}
.cp-portal .cp-app-footer__inner{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px 16px;
	flex-wrap: wrap;
	padding: 16px 24px;
	font-size: var(--cp-text-sm);
	letter-spacing: .01em;
	color: var(--cp-muted-62, #94a3b8);
}
.cp-portal .cp-footer-copy{ white-space: nowrap; }
.cp-portal .cp-footer-links{ display: flex; align-items: center; gap: 16px; }
.cp-portal .cp-app-footer a{
	color: var(--cp-muted-62, #94a3b8);
	font-weight: 500;
	text-decoration: none;
	transition: color .15s ease;
	white-space: nowrap;
}
.cp-portal .cp-app-footer a:hover{ color: var(--cp-link, #0a0a0a); }

/* --- Mobile overlay (unused, kept for safety) ----------------------------- */
.cp-portal .cp-sidebar-mobile-overlay{ display: none !important; }

/* ==========================================================================
   White-panel mobile menu (adapted from standalone mobile menu shortcode)
   ========================================================================== */
.cp-mobile-menu{
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
}
.cp-mobile-menu[hidden]{
	display: block !important;
	opacity: 0;
	pointer-events: none;
}
.cp-mobile-menu.is-open{
	pointer-events: auto;
}

.cp-mobile-menu__overlay{
	all: unset;
	position: fixed;
	inset: 0;
	background: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease;
	z-index: -1;
}
.cp-mobile-menu.is-open .cp-mobile-menu__overlay{
	opacity: 1;
	pointer-events: auto;
}

.cp-mobile-menu__panel{
	position: fixed;
	inset: 0;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	color: var(--cp-text, #0b0d10);
	opacity: 0;
	transform: translateY(10px);
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
	z-index: 1;
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	overscroll-behavior: contain;
}
.cp-mobile-menu.is-open .cp-mobile-menu__panel{
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

.cp-mobile-menu__bar{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: max(10px, env(safe-area-inset-top)) 20px 10px;
	min-height: 85px;
	background: var(--cp-header-bg, #ffffff);
	position: relative;
}
.cp-mobile-menu__bar::after{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .02);
	pointer-events: none;
}
.cp-mobile-menu__bar > *{ position: relative; z-index: 1; }

.cp-mobile-menu__logo{
	height: 48px;
	width: auto;
	max-width: 72%;
	object-fit: contain;
	background-color: transparent;
	background-image: none;
}
.cp-mobile-menu__brand-text{
	font-size: 18px;
	font-weight: 700;
	color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a));
	font-family: var(--cp-font-heading, inherit);
}

.cp-mobile-menu__close-btn{
	all: unset;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	border-radius: var(--cp-radius-input);
	background: var(--cp-fill-02, rgba(11,13,16,.06));
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-mobile-menu__close-btn svg{
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cp-mobile-menu__nav{
	flex: 1;
	overflow: auto;
	display: grid;
	gap: 8px;
	padding: 14px 20px 0;
	align-content: start;
}
.cp-mobile-menu__link{
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 14px;
	border-radius: var(--cp-radius-global);
	border: 1px solid var(--cp-border-soft, rgba(11,13,16,.12));
	background: var(--cp-surface, #fff);
	text-decoration: none !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	font-family: var(--cp-font-body, Montserrat, "Segoe UI", system-ui, sans-serif);
	font-size: var(--cp-text-md, 14px);
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .01em;
	text-transform: none;
	transition: background .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease;
}
.cp-mobile-menu__link.is-active{
	background: var(--cp-btn-primary-bg, #0a0a0a);
	border-color: var(--cp-btn-primary-border, #262626);
	color: var(--cp-btn-primary-text, #fff) !important;
	box-shadow: var(--cp-shadow-card, 0 1px 2px rgba(10,10,10,.08));
}
.cp-mobile-menu__link:hover,
.cp-mobile-menu__link:focus-visible{
	background: var(--cp-brand-hot, #262626);
	border-color: var(--cp-brand-hot, #262626);
	color: #fff !important;
	text-decoration: none !important;
	outline: none;
}
.cp-mobile-menu__link--logout{
	color: var(--cp-brand, #0a0a0a) !important;
	border-color: rgba(10,10,10,.25);
}

.cp-mobile-menu__welcome{
	padding: 24px 20px 16px;
	text-align: center;
}
.cp-mobile-menu__greet{
	margin: 0;
	font-family: var(--cp-font-heading, var(--cp-font-body, Montserrat, "Segoe UI", sans-serif));
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-mobile-menu__sub{
	margin: 6px 0 0;
	font-size: var(--cp-text-sm);
	font-weight: 600;
	text-transform: none;
	letter-spacing: .02em;
	color: var(--cp-muted-62, #525252);
}

.cp-mobile-menu__actions{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 0 20px max(16px, env(safe-area-inset-bottom));
}
.cp-mobile-menu__action{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 14px;
	border-radius: var(--cp-radius-global);
	border: 1px solid var(--cp-border, #d5dbe3);
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	text-decoration: none !important;
	font-size: var(--cp-text-md, 14px);
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.2;
	transition: background .12s ease, border-color .12s ease;
	box-shadow: var(--cp-shadow-card);
}
.cp-mobile-menu__action:hover,
.cp-mobile-menu__action:focus-visible{
	background: var(--cp-fill-02, rgba(11,13,16,.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	text-decoration: none !important;
	outline: none;
}
.cp-mobile-menu__action-icon{
	font-size: 14px;
	font-weight: 900;
}

@media (min-width: 1024px){
	.cp-mobile-menu{ display: none !important; }
}

@media (prefers-reduced-motion: reduce){
	.cp-mobile-menu__overlay,
	.cp-mobile-menu__panel{ transition: none; }
}

/* --- Responsive: <= 1024px  (red header, content overlap, no sidebar) ----- */
@media (max-width: 1024px){
	.cp-portal .cp-app-header{
		background: var(--cp-header-bg, #ffffff) !important;
		border-bottom: 0 !important;
		box-shadow: none !important;
	}

	.cp-portal .cp-app-header__logo-area{
		display: none !important;
	}

	.cp-portal .cp-app-header__mobile-menu{
		display: flex !important;
		align-items: center;
	}

	.cp-portal .cp-mobile-toggle-nav{
		color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a)) !important;
	}
	.cp-portal .cp-mobile-toggle-nav:hover{
		background: var(--cp-fill-02, rgba(0, 0, 0, .04)) !important;
	}

	.cp-portal .cp-app-header__pill-nav{
		display: none !important;
	}

	.cp-portal .cp-app-header__content{
		flex: 1 !important;
		justify-content: flex-end !important;
		padding: 0 14px 0 0 !important;
	}

	.cp-portal .cp-app-header__content .cp-app-header-left{
		display: none !important;
	}

	.cp-portal .cp-app-page-title{
		color: var(--cp-logo-text, var(--cp-heading-text, #0a0a0a)) !important;
		font-size: 16px !important;
	}

	.cp-portal .cp-shell-profile__name,
	.cp-portal .cp-shell-profile__caret{
		display: none !important;
	}
	.cp-portal .cp-shell-profile__trigger{
		padding: 0 !important;
		background: transparent !important;
		pointer-events: none !important;
		cursor: default !important;
	}
	.cp-portal .cp-shell-profile__menu{
		display: none !important;
	}
	.cp-portal .cp-shell-avatar{
		border-color: rgba(0, 0, 0, .12) !important;
	}

	.cp-portal .cp-header-icon-btn{
		display: none !important;
	}

	.cp-portal .cp-app-sidebar{
		display: none !important;
	}

	.cp-portal .cp-app-main{
		background: var(--cp-header-bg, #ffffff) !important;
		padding-top: 8px !important;
	}

	.cp-portal .cp-app-main__outer{
		margin-left: 0 !important;
		border-radius: 20px 20px 0 0 !important;
		background: var(--cp-bg, #f1f4f6) !important;
		overflow: hidden !important;
		position: relative !important;
		z-index: 1 !important;
	}

	.cp-portal .cp-app-main__inner{
		padding: 20px 16px max(20px, calc(12px + env(safe-area-inset-bottom, 0px)));
	}

	.cp-portal .cp-app-footer__inner{
		padding: 12px 16px max(12px, env(safe-area-inset-bottom, 0px));
	}
}

@media (max-width: 640px){
	.cp-portal .cp-app-main__inner{
		padding: 16px 12px;
	}
}

/* --- WordPress admin bar offset ------------------------------------------- */
body.admin-bar .cp-portal .cp-app-header{
	top: 32px !important;
}
body.admin-bar .cp-portal .cp-app-sidebar{
	top: calc(var(--cp-header-height, 60px) + 32px) !important;
}
body.admin-bar .cp-portal .cp-app-main{
	margin-top: calc(var(--cp-header-height, 60px) + 32px) !important;
}
body.admin-bar .cp-portal .cp-sidebar-mobile-overlay{
	top: 0 !important;
}

@media (max-width: 768px){
	body.admin-bar .cp-portal .cp-app-header{
		top: 46px !important;
	}
	body.admin-bar .cp-portal .cp-app-sidebar{
		top: calc(var(--cp-header-height, 60px) + 46px) !important;
	}
	body.admin-bar .cp-portal .cp-app-main{
		margin-top: calc(var(--cp-header-height, 60px) + 46px) !important;
	}
}

/* --- Admin preview bar ---------------------------------------------------- */
@media (max-width: 640px){
	.cp-admin-preview-bar{
		font-size: var(--cp-text-sm) !important;
		padding: 0 12px !important;
		height: 40px !important;
	}
	.cp-admin-preview-bar a{
		font-size: var(--cp-text-sm) !important;
		padding: 4px 10px !important;
	}
}

/* --- Notification badge --------------------------------------------------- */
.cp-notification-badge{
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: var(--cp-radius-pill);
	background: #dc2626;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
	pointer-events: none;
	box-shadow: 0 0 0 2px var(--cp-header-bg, #fff);
}

/* --- Footer enhancement --------------------------------------------------- */
.cp-portal .cp-app-footer{
	background: var(--cp-footer-bg, #fff) !important;
	border-top: 1px solid var(--cp-border-faint, rgba(10,10,10,.06)) !important;
}
.cp-portal .cp-app-footer__inner{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px 16px !important;
	flex-wrap: wrap !important;
	padding: 16px 28px !important;
	font-size: var(--cp-text-sm) !important;
	color: var(--cp-muted-62, #94a3b8) !important;
	min-height: var(--cp-footer-height, 48px) !important;
	letter-spacing: .01em !important;
}
.cp-portal .cp-footer-copy{
	font-weight: 500;
	white-space: nowrap;
}
.cp-portal .cp-footer-links{
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
}
.cp-portal .cp-app-footer a{
	color: var(--cp-muted-62, #94a3b8) !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	transition: color .15s ease !important;
	white-space: nowrap !important;
}
.cp-portal .cp-app-footer a:hover{
	color: var(--cp-link, #0a0a0a) !important;
	text-decoration: none !important;
}

.cp-portal h1,
.cp-portal h2,
.cp-portal h3,
.cp-portal h4{
	font-family: var(--cp-font-heading, inherit);
	color: var(--cp-text);
	font-weight: 800;
	line-height: 1.16;
	letter-spacing: .01em;
	margin: 0 0 12px 0;
}

.cp-portal h1{ font-size: clamp(1.75rem, 1.5rem + .8vw, 2.25rem); }
.cp-portal h2{ font-size: clamp(1.4rem, 1.25rem + .5vw, 1.75rem); }
.cp-portal h3{ font-size: clamp(1.15rem, 1.05rem + .3vw, 1.35rem); }
.cp-portal h4{ font-size: clamp(1rem, .95rem + .15vw, 1.15rem); }

.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;
}

/* --- PT-02 Client dashboard (scoped) -------------------------------------- */
.cp-portal .cp-dash-page{
	min-width: 0;
}
.cp-portal .cp-dash-page .cp-dash-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-dash-page .cp-dash-twin-row{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 12px;
}
.cp-portal .cp-dash-page .cp-dash-twin-row--single{
	grid-template-columns: 1fr;
}
.cp-portal .cp-dash-page .cp-dash-twin-col .cp-card{
	margin-bottom: 0;
}
.cp-portal .cp-dash-updates-card{
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	margin-bottom: 0;
}
@media (max-width: 1024px){
	.cp-portal .cp-dash-page .cp-dash-twin-row{
		grid-template-columns: 1fr;
	}
}
.cp-portal .cp-dash-page .cp-section-head .cp-section-link{
	text-transform: none;
	letter-spacing: 0.01em;
	font-weight: 600;
	font-size: var(--cp-text-md, 14px);
}
.cp-portal .cp-dash-page .cp-home-notif-nudge .cp-btn.cp-btn--primary,
.cp-portal .cp-dash-page .cp-home-notif-nudge .cp-btn.cp-btn--max-320{
	min-height: 44px;
	align-items: center;
	justify-content: center;
}
.cp-portal .cp-dash-page .cp-quick-actions .cp-action-row__cta .cp-btn{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-dashboard-transactions-wrap{
	min-width: 0;
}
.cp-portal .cp-dashboard-transactions-wrap .cp-project-payments__history{
	padding: 0 2px 6px;
}
.cp-portal .cp-dashboard-transactions-wrap .cp-section-head{
	margin-bottom: 14px;
}
.cp-portal .cp-dash-page .cp-todo-check{
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px 0 0;
	align-items: center;
	justify-content: flex-start;
	box-sizing: border-box;
}
.cp-portal .cp-dash-page .cp-todo-check__box{
	margin-top: 0;
	flex-shrink: 0;
}
.cp-portal .cp-dash-page .cp-todo-show-all{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-update__action.cp-btn{
	margin-top: 8px;
	min-height: 44px;
	padding: 10px 16px;
	box-sizing: border-box;
}
@media (max-width: 640px){
	.cp-portal .cp-dashboard-transactions-wrap .cp-table td::before{
		text-transform: none;
		font-weight: 600;
		letter-spacing: 0.02em;
		color: var(--cp-muted-62, #525252);
	}
	.cp-portal .cp-dashboard-transactions-wrap .cp-table .cp-cell{
		font-weight: 600;
	}
}

/* --- PT-03 Portal notifications (`notifications` / [cp_all_updates]) ------- */
.cp-portal .cp-notifications-page{
	min-width: 0;
}
.cp-portal .cp-notifications-page .cp-notifications-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-notifications-page .cp-ntf-filter{
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	margin: 0 0 16px;
	padding: 14px 16px;
	border: 1px solid var(--cp-border-soft, rgba(11, 13, 16, 0.12));
	border-radius: var(--cp-radius-global, 12px);
	background: var(--cp-surface, #fff);
	box-shadow: var(--cp-shadow-card, 0 1px 2px rgba(10, 10, 10, 0.06));
}
@media (min-width: 480px){
	.cp-portal .cp-notifications-page .cp-ntf-filter{
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		gap: 12px 16px;
	}
}
.cp-portal .cp-notifications-page .cp-ntf-filter__label{
	font-size: var(--cp-text-sm, 11px);
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0.02em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-notifications-page .cp-ntf-filter__select{
	display: block;
	width: 100%;
	max-width: min(100%, 380px);
	min-height: 44px;
	padding: 10px 36px 10px 14px;
	font-size: var(--cp-text-md, 14px);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a);
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border, #d4d4d4);
	border-radius: var(--cp-radius-input, 10px);
	outline: none;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5l3 3 3-3' fill='none' stroke='%23525252' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 10px 10px;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
}
.cp-portal .cp-notifications-page .cp-ntf-filter__select:focus{
	border-color: rgba(10, 10, 10, 0.35);
	box-shadow: 0 0 0 3px var(--cp-focus-ring, rgba(10, 10, 10, 0.12));
}
.cp-portal .cp-notifications-page .cp-updates{
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.cp-portal .cp-notifications-page .cp-update{
	background: var(--cp-surface, #fff) !important;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08)) !important;
	border-radius: var(--cp-radius-md, 8px);
	padding: 14px 18px;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.cp-portal .cp-notifications-page .cp-update:hover{
	box-shadow: var(--cp-shadow-card, 0 1px 3px rgba(10, 10, 10, 0.08));
	border-color: var(--cp-border-soft, rgba(11, 13, 16, 0.14)) !important;
}
.cp-portal .cp-notifications-page .cp-update--unread{
	border-left: 3px solid var(--cp-brand, #0a0a0a) !important;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.025)) !important;
	padding-left: 15px;
}
.cp-portal .cp-notifications-page .cp-update__meta{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6px;
	gap: 10px;
}
.cp-portal .cp-notifications-page .cp-update__title{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-notifications-page .cp-update__title a{
	color: var(--cp-brand, #0a0a0a);
	text-decoration: none;
	font-weight: 600;
}
.cp-portal .cp-notifications-page .cp-update__title a:hover{
	color: var(--cp-brand-hot, #262626);
	text-decoration: underline;
}
.cp-portal .cp-notifications-page .cp-update__date{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	font-weight: 500;
	white-space: nowrap;
}
.cp-portal .cp-notifications-page .cp-update__headline{
	font-size: 14px;
	font-weight: 600;
	color: var(--cp-text, #262626);
	line-height: 1.45;
	margin-bottom: 2px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.cp-portal .cp-notifications-page .cp-update .cp-muted{
	font-size: 13px;
	line-height: 1.5;
	margin-top: 4px;
}
.cp-portal .cp-notifications-page .cp-ntf-tag{
	text-transform: none;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.03em;
	border-radius: var(--cp-radius-pill, 999px);
	padding: 4px 10px;
}
.cp-portal .cp-notifications-empty{
	text-align: center;
	padding: 28px 20px;
	border: 1px dashed var(--cp-border-soft, rgba(11, 13, 16, 0.15));
	border-radius: var(--cp-radius-global, 12px);
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
}
.cp-portal .cp-notifications-empty__text{
	margin: 0;
	font-size: var(--cp-text-md, 14px);
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}
@media (max-width: 640px){
	.cp-portal .cp-notifications-page .cp-update{
		padding: 12px 14px;
	}
	.cp-portal .cp-notifications-page .cp-update--unread{
		padding-left: 11px;
	}
}

/* --- PT-04 Portal projects / sessions list -------------------------------- */
.cp-portal .cp-projects-list-page{
	min-width: 0;
}
.cp-portal .cp-projects-list-page .cp-projects-list-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-projects-list-page .cp-doc-hub-grid{
	min-width: 0;
}
.cp-portal .cp-projects-list-page .cp-doc-hub-card--entity .cp-doc-hub-card__cta{
	min-height: 44px;
	padding: 10px 18px;
	box-sizing: border-box;
}
.cp-portal .cp-hub-card-row__ctx{
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
	margin-top: 4px;
	line-height: 1.35;
}
.cp-portal .cp-projects-list-page > .cp-card .cp-empty-state{
	padding: 8px 4px 12px;
}
@media (max-width: 640px){
	.cp-portal .cp-projects-list-page .cp-doc-hub-card--entity{
		padding: 16px 16px;
	}
}

/* --- PT-05 Portal project view -------------------------------- */
.cp-portal .cp-project-view-page{
	min-width: 0;
}
.cp-portal .cp-project-view-page .cp-project-view-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-project-view-page .cp-pv-banner{
	margin: 0 0 14px;
}
.cp-portal .cp-project-view-page .cp-pv-banner--error{
	padding: 10px 12px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.45;
}
.cp-portal .cp-project-view-page .cp-pv-milestone-form{
	padding: 12px 0 16px;
}
.cp-portal .cp-project-view-page .cp-pv-milestone-form__lead{
	margin: 0 0 10px;
	font-size: 14px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.45;
}
.cp-portal .cp-project-view-page .cp-pv-milestone-form__actions{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.cp-portal .cp-project-view-page .cp-pv-milestone-form__btn,
.cp-portal .cp-project-view-page .cp-pv-milestone-form__actions .cp-btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-project-view-page .cp-pv-milestone-muted{
	margin: 0 0 12px;
	padding: 0;
	line-height: 1.5;
}
.cp-portal .cp-project-view-page .cp-pay-context-card{
	padding: 12px 14px;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.1));
	border-radius: 8px;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__title{
	margin: 0 0 10px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-project-view-page .cp-pay-context-card__p{
	margin: 0 0 6px;
	font-size: 14px;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__p--tight{
	margin: 0 0 6px;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__muted{
	margin: 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-project-view-page .cp-pay-context-card__dl{
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 14px;
	align-items: baseline;
	font-size: 13px;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__dl dt{
	margin: 0;
	color: var(--cp-muted-62, #525252);
	font-weight: 600;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__dl dd{
	margin: 0;
}
.cp-portal .cp-project-view-page .cp-pay-context-card__footnote{
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-project-view-page .cp-pv-pill-overdue{
	font-size: 11px;
}
.cp-portal .cp-project-view-page .cp-pv-pay-actions{
	margin: 0 0 14px;
}
.cp-portal .cp-project-view-page .cp-pv-pay-actions--inline{
	margin: 12px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.cp-portal .cp-project-view-page .cp-pv-pay-actions .cp-btn,
.cp-portal .cp-project-view-page .cp-project-payments .cp-btn{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-project-view-page .cp-ov-actions .cp-ov-btn{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-project-view-page .cp-doc-row__link{
	min-height: 44px !important;
	box-sizing: border-box;
}
@media (max-width: 1024px){
	.cp-portal .cp-project-view-page .cp-project-sections .cp-project-tabs .cp-pill-tab{
		min-height: 44px !important;
		padding-top: 10px !important;
		padding-bottom: 10px !important;
		box-sizing: border-box !important;
	}
}

/* --- PT-06 Portal session view -------------------------------- */
.cp-portal .cp-session-view-page{
	min-width: 0;
}
.cp-portal .cp-session-view-page .cp-session-view-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-session-view-page .cp-session-view-page__ref{
	margin-top: 4px;
}
.cp-portal .cp-session-view-page .cp-sv-snapshot-card{
	margin-bottom: 16px;
}
.cp-portal .cp-session-view-page .cp-sv-snap-collapse__summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 44px;
	padding: 4px 0;
	cursor: pointer;
	list-style: none;
	-webkit-appearance: none;
	box-sizing: border-box;
}
.cp-portal .cp-session-view-page .cp-sv-snap-collapse__kicker{
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-session-view-page .cp-sv-snap-collapse .cp-sv-chevron{
	color: var(--cp-muted-62, #525252);
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.cp-portal .cp-session-view-page .cp-sv-snapshot-grid{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 4px 0 8px;
	min-width: 0;
}
.cp-portal .cp-session-view-page .cp-sv-snap__kicker{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
	margin-bottom: 8px;
}
.cp-portal .cp-session-view-page .cp-sv-snap__kicker--sm{
	font-size: 10px;
	margin-bottom: 4px;
}
.cp-portal .cp-session-view-page .cp-sv-snap__datetime{
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	margin-bottom: 2px;
}
.cp-portal .cp-session-view-page .cp-sv-snap__location{
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	margin-bottom: 10px;
}
.cp-portal .cp-session-view-page .cp-sv-snap__duration{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	margin-bottom: 10px;
}
.cp-portal .cp-session-view-page .cp-sv-snap__section-label{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
	margin-bottom: 8px;
}
.cp-portal .cp-session-view-page .cp-sess-checklist--snapshot{
	margin-bottom: 14px;
}
.cp-portal .cp-session-view-page .cp-sv-snap-stats{
	display: flex;
	gap: 6px;
}
.cp-portal .cp-session-view-page .cp-sv-snap-stat{
	flex: 1 1 0;
	text-align: center;
	padding: 10px 6px;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.015));
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	border-radius: 7px;
	min-width: 0;
}
.cp-portal .cp-session-view-page .cp-sv-snap-stat__label{
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
	margin-bottom: 3px;
}
.cp-portal .cp-session-view-page .cp-sv-snap-stat__value{
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-session-view-page .cp-sv-actions{
	display: flex;
	gap: 10px;
	padding: 14px 0 4px;
	flex-wrap: wrap;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	margin-top: 14px;
}
.cp-portal .cp-session-view-page .cp-sv-actions .cp-btn,
.cp-portal .cp-session-view-page .cp-sv-action-btn{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-session-view-page .cp-sv-tab-badge{
	font-weight: 400;
	font-size: 11px;
	opacity: 0.7;
}
.cp-portal .cp-session-view-page .cp-sv-gallery-lead{
	margin: 0 0 16px;
	font-size: 14px;
}
.cp-portal .cp-session-view-page .cp-sv-pay-cta{
	text-align: center;
	padding: 8px 0 16px;
}
.cp-portal .cp-session-view-page .cp-sv-pay-cta__lead{
	margin: 0 0 12px;
	font-size: 14px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-session-view-page .cp-sv-pay-cta__btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-session-view-page .cp-card .cp-btn.cp-btn--primary{
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-session-view-page .cp-doc-row__link{
	min-height: 44px !important;
	box-sizing: border-box;
}
@media (max-width: 1024px){
	.cp-portal .cp-session-view-page .cp-sv-sections .cp-pill-tab{
		min-height: 44px !important;
		padding-top: 10px !important;
		padding-bottom: 10px !important;
		box-sizing: border-box !important;
	}
}

/* --- PT-07 Portal assets route / disabled managed route -------------------- */
.cp-portal .cp-portal-disabled-route,
.cp-portal .cp-assets-route-page{
	min-width: 0;
}
.cp-portal .cp-portal-disabled-route__title,
.cp-portal .cp-assets-route-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}

/* --- PT-23 Disabled managed route message ---------------------------------- */
.cp-portal .cp-portal-disabled-route-page{
	min-width: 0;
	max-width: 560px;
}
.cp-portal .cp-portal-disabled-route__title{
	font-weight: 800;
}
.cp-portal .cp-portal-disabled-route__card{
	padding: 22px 24px;
	border-radius: 12px;
	border: 1px solid var(--cp-border, #e5e5e5);
	background: var(--cp-card-bg, #fff);
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
.cp-portal .cp-portal-disabled-route__body{
	margin: 0;
}
.cp-portal .cp-portal-disabled-route__message{
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--cp-muted-62, #525252);
}
@media (max-width: 640px){
	.cp-portal .cp-portal-disabled-route__card{
		padding: 18px 16px;
	}
}

/* --- PT-24 Portal router shortcode wrapper --------------------------------- */
/* Wraps [cp_portal_router] / [cp_route_router] output; parent may sit outside .cp-portal */
.cp-portal-router{
	display: block;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	margin-block: 12px;
}
.cp-portal-router > .cp-portal.cp-portal-embedded{
	background: var(--cp-bg, #f5f5f5);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: var(--cp-radius-global, 12px);
	box-shadow: var(--cp-shadow-card, 0 1px 3px rgba(10, 10, 10, 0.08));
	overflow: hidden;
}
@media (max-width: 374px){
	.cp-portal-router > .cp-portal.cp-portal-embedded{
		border-radius: var(--cp-radius-md, 8px);
	}
}

.cp-portal .cp-assets-route-page__card .cp-muted{
	line-height: 1.5;
}
.cp-portal .cp-assets-route-page__head{
	margin-bottom: 12px;
}
.cp-portal .cp-assets-route-page__card > .cp-muted{
	margin: 0 0 16px;
}
.cp-portal .cp-assets-route-page__actions{
	margin: 0;
}
.cp-portal .cp-assets-route-page__actions .cp-btn{
	min-height: 44px;
	box-sizing: border-box;
}

/* --- PT-08 Portal billing / bill pay --------------------------------------- */
.cp-portal .cp-bill-pay-page{
	min-width: 0;
}
.cp-portal .cp-bill-pay-page .cp-bp-header__title{
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem) !important;
	font-weight: 700 !important;
	line-height: 1.22 !important;
	letter-spacing: -0.02em !important;
}
.cp-portal .cp-bill-pay-page .cp-bp-msg--flash{
	margin-bottom: 20px;
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-empty{
	text-align: center;
	padding: 30px 20px;
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-empty__icon{
	display: flex;
	width: 48px;
	height: 48px;
	margin: 0 auto 12px;
	border-radius: 12px;
	background: rgba(37, 99, 235, 0.08);
	align-items: center;
	justify-content: center;
	color: #2563eb;
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-empty__icon svg{
	width: 24px;
	height: 24px;
	stroke: currentColor;
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-empty__title{
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 4px;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-empty__text{
	margin: 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}
.cp-portal .cp-bill-pay-page .cp-bp-wallet-muted{
	padding: 20px;
	text-align: center;
}
.cp-portal .cp-bill-pay-page a.cp-wl-pay-link,
.cp-portal .cp-bill-pay-page a.cp-wl-view-link{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 10px 16px;
	box-sizing: border-box;
	border-radius: var(--cp-radius-pill, 999px);
}
.cp-portal .cp-bill-pay-page .cp-wl-check-ic{
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}
.cp-portal .cp-bill-pay-page .cp-bp-nav-btn{
	min-height: 44px !important;
	box-sizing: border-box;
}
.cp-portal .cp-bill-pay-page .cp-bill-inv-back-row a.crm-link-action{
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
}
.cp-portal .cp-bill-pay-page .cp-bill-inv-page-title{
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem) !important;
	font-weight: 700 !important;
	line-height: 1.22 !important;
	letter-spacing: -0.02em !important;
}
.cp-portal .cp-bill-pay-page .cp-bp-sess-context--flush{
	margin-top: 0 !important;
}
.cp-portal .cp-bill-pay-page .cp-bp-sess-meta--sep{
	color: var(--cp-border, #d5dbe3);
}
.cp-portal .cp-bill-pay-page .cp-bp-sess-location{
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-bill-pay-page .cp-bill-plan-hint{
	margin: -6px 0 14px;
	font-size: 12px;
	color: #0369a1;
	line-height: 1.45;
}
.cp-portal .cp-bill-pay-page .cp-bp-pay-btn--spaced{
	margin-top: 12px;
}
.cp-portal .cp-bill-pay-page .cp-bp-pay-btn{
	min-height: 44px !important;
	box-sizing: border-box;
}
.cp-portal .cp-bill-pay-page .cp-bill-gc-inline .cp-gc-confirm__yes,
.cp-portal .cp-bill-pay-page .cp-bill-gc-inline .cp-gc-confirm__no{
	min-height: 44px;
	min-width: 44px;
	padding: 10px 18px;
	box-sizing: border-box;
}
.cp-portal .cp-bill-pay-page .cp-bp-milestone-notice__body{
	padding: 20px;
}
.cp-portal .cp-bill-pay-page .cp-bp-milestone-notice__lead{
	margin: 0 0 12px;
	line-height: 1.55;
}
.cp-portal .cp-bill-pay-page .cp-bp-milestone-notice__row{
	margin: 0 0 10px;
}
.cp-portal .cp-bill-pay-page .cp-bp-milestone-notice__row:last-child{
	margin-bottom: 0;
}
.cp-portal .cp-bill-pay-page .cp-bp-milestone-notice .cp-btn{
	min-height: 44px;
	box-sizing: border-box;
}

/* --- PT-09 Portal transactions --------------------------------------------- */
.cp-portal .cp-transactions-page{
	min-width: 0;
}
.cp-portal .cp-transactions-page .cp-txn-header__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-transactions-page .cp-txn-header__sub{
	margin: 4px 0 0;
	padding: 0;
	font-size: var(--cp-text-base, 14px);
	font-weight: 400;
	color: var(--cp-muted-62, #525252);
	line-height: 1.45;
}
.cp-portal .cp-transactions-page .cp-txn-nav-btn{
	min-height: 44px !important;
	box-sizing: border-box;
	padding: 10px 18px !important;
}
.cp-portal .cp-transactions-page .cp-txn-filter-btn{
	width: 44px;
	height: 44px;
}
.cp-portal .cp-transactions-page .cp-txn-filter-dd__clear{
	min-height: 44px;
	padding: 8px 12px;
	box-sizing: border-box;
}
.cp-portal .cp-transactions-page .cp-txn-card__value a,
.cp-portal .cp-txn-billing-history .cp-txn-card__value a{
	display: inline-block;
	min-height: 44px;
	padding: 10px 0;
	box-sizing: border-box;
	line-height: 1.35;
}

.cp-portal .cp-txn-billing-history{
	margin-top: 28px;
}
.cp-portal .cp-txn-billing-history__card{
	padding: 0;
	overflow: hidden;
}
.cp-portal .cp-txn-billing-history__head{
	padding: 20px 20px 12px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
}
.cp-portal .cp-txn-billing-history__title{
	margin: 0;
	font-size: 1.125rem;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.25;
}
.cp-portal .cp-txn-billing-history__lead{
	margin: 6px 0 0;
	font-size: var(--cp-text-sm, 13px);
	line-height: 1.45;
}
.cp-portal .cp-txn-billing-history__more{
	margin: 10px 0 0;
	font-size: 12px;
}
.cp-portal .cp-txn-billing-history__link{
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 600;
	color: var(--cp-brand, #0a0a0a);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.cp-portal .cp-txn-billing-history__link:hover{
	color: var(--cp-brand-hot, #262626);
}
.cp-portal .cp-txn-billing-history__empty{
	padding: 28px 20px;
}
.cp-portal .cp-txn-billing-history__empty .cp-muted{
	margin: 0;
}
.cp-portal .cp-txn-stack.cp-txn-stack--billing-pad{
	padding: 8px 12px 20px;
}

/* --- PT-10 Portal documents ------------------------------------------------ */
.cp-portal .cp-documents-page{
	min-width: 0;
}
.cp-portal .cp-documents-page .cp-page-title{
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-documents-page__card-lead{
	margin: 0;
}
.cp-portal .cp-documents-page .cp-doc-hub-card{
	min-height: 72px;
}
.cp-portal .cp-documents-page .cp-doc-hub-card__cta{
	min-height: 44px;
	padding: 10px 16px;
	box-sizing: border-box;
}
.cp-portal .cp-doc-sign-view .crm-link-action.cp-nav-back{
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	margin-bottom: 12px;
}

.cp-portal .cp-doc-sign-view .cp-doc-sign-header{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-header__info .cp-page-title{
	margin: 0 0 4px 0;
	padding: 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-header__meta{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body{
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	border-radius: var(--cp-radius-global, 8px);
	padding: 32px 28px;
	margin-bottom: 24px;
	line-height: 1.7;
	font-size: 14.5px;
	color: var(--cp-text, #0b0d10);
	overflow-x: auto;
	min-width: 0;
	box-sizing: border-box;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body h1,
.cp-portal .cp-doc-sign-view .cp-doc-sign-body h2,
.cp-portal .cp-doc-sign-view .cp-doc-sign-body h3,
.cp-portal .cp-doc-sign-view .cp-doc-sign-body h4{
	color: var(--cp-heading-text, #0a0a0a);
	margin-top: 1.4em;
	margin-bottom: 0.5em;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body p{
	margin: 0 0 1em 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body ul,
.cp-portal .cp-doc-sign-view .cp-doc-sign-body ol{
	margin: 0 0 1em 1.5em;
	padding: 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body table{
	width: 100%;
	border-collapse: collapse;
	margin: 1em 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body th,
.cp-portal .cp-doc-sign-view .cp-doc-sign-body td{
	padding: 8px 12px;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
	text-align: left;
	font-size: 13px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-body th{
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	font-weight: 600;
}

.cp-portal .cp-doc-sign-view .cp-doc-sign-action{
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	border-radius: var(--cp-radius-global, 8px);
	padding: 28px;
	margin-bottom: 24px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-action__title{
	margin: 0 0 4px 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-action__sub{
	margin: 0 0 20px 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-input{
	display: block;
	width: 100%;
	padding: 12px 16px;
	font-size: 16px;
	font-family: var(--cp-font-body, Montserrat, "Segoe UI", system-ui, sans-serif);
	border: 2px solid var(--cp-border-faint, rgba(11, 13, 16, 0.1));
	border-radius: var(--cp-radius-global, 8px);
	background: var(--cp-surface, #ffffff);
	color: var(--cp-text, #0b0d10);
	box-sizing: border-box;
	outline: none;
	transition: border-color 0.2s;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-input:focus{
	border-color: var(--cp-brand, #0a0a0a);
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-input::placeholder{
	color: var(--cp-muted-62, #525252);
	font-style: italic;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-confirm{
	margin-top: 16px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-height: 44px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-confirm input[type="checkbox"]{
	margin-top: 4px;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	accent-color: var(--cp-brand, #0a0a0a);
	cursor: pointer;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-confirm label{
	font-size: 13px;
	color: var(--cp-text, #0b0d10);
	line-height: 1.5;
	cursor: pointer;
	user-select: none;
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-submit{
	margin-top: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	font-size: 15px;
	font-weight: var(--cp-font-weight-button, 600);
	color: var(--cp-btn-primary-text, #ffffff);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	border: none;
	border-radius: var(--cp-radius-pill, 999px);
	cursor: pointer;
	transition: background 0.2s, opacity 0.2s;
	line-height: 1.4;
	box-sizing: border-box;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-submit:hover{
	background: var(--cp-brand-hot, #262626);
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-submit:disabled{
	opacity: 0.5;
	cursor: not-allowed;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-msg{
	margin-top: 12px;
	padding: 10px 16px;
	border-radius: var(--cp-radius-global, 8px);
	font-size: 13px;
	font-weight: 600;
	display: none;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-msg--error{
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
	display: block;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-msg--success{
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
	display: block;
}

.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt{
	background: var(--cp-surface, #ffffff);
	border: 1px solid #bbf7d0;
	border-radius: var(--cp-radius-global, 8px);
	padding: 28px;
	margin-bottom: 24px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt__icon{
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #dcfce7;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #166534;
	margin-bottom: 12px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt__icon svg{
	width: 24px;
	height: 24px;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt__title{
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	margin: 0 0 4px 0;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt__detail{
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	margin: 2px 0;
	line-height: 1.5;
}
.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt__detail strong{
	color: var(--cp-text, #0b0d10);
}

@media (max-width: 640px){
	.cp-portal .cp-doc-sign-view .cp-doc-sign-header{
		flex-direction: column;
	}
	.cp-portal .cp-doc-sign-view .cp-doc-sign-body{
		padding: 20px 16px;
	}
	.cp-portal .cp-doc-sign-view .cp-doc-sign-action{
		padding: 20px 16px;
	}
	.cp-portal .cp-doc-sign-view .cp-doc-sign-receipt{
		padding: 20px 16px;
	}
}

/* --- PT-11 Portal appointments --------------------------------------------- */
.cp-portal .cp-appointments-page{
	min-width: 0;
}
.cp-portal .cp-appointments-page > .cp-page-head{
	margin-bottom: 4px;
}
.cp-portal .cp-appointments-page .cp-page-title{
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal .cp-appointments-page .cp-appt-page{
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cp-portal .cp-appointments-page .cp-appt-card{
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-soft, rgba(0, 0, 0, 0.08));
	border-radius: var(--cp-radius-card, 12px);
	overflow: hidden;
	box-shadow: var(--cp-shadow-card);
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-row{
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: center;
	gap: 16px;
	padding: 16px 24px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(0, 0, 0, 0.06));
	transition: background 0.1s;
	min-width: 0;
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-row:last-child{
	border-bottom: none;
}
.cp-portal .cp-appointments-page .cp-appt-row:hover{
	background: var(--cp-fill-01, rgba(0, 0, 0, 0.02));
}
.cp-portal .cp-appointments-page .cp-appt-main{
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.cp-portal .cp-appointments-page .cp-appt-reason{
	font-size: var(--cp-text-base, 14px);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cp-portal .cp-appointments-page .cp-appt-meta{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	margin: 0;
}
.cp-portal .cp-appointments-page .cp-appt-cal__icon{
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.cp-portal .cp-appointments-page .cp-appt-badge{
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 4px 10px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-badge--upcoming{
	background: #2563eb;
	color: #fff;
}
.cp-portal .cp-appointments-page .cp-appt-badge--confirmed{
	background: #16a34a;
	color: #fff;
}
.cp-portal .cp-appointments-page .cp-appt-badge--pending{
	background: #d97706;
	color: #fff;
}
.cp-portal .cp-appointments-page .cp-appt-badge--past{
	background: var(--cp-muted-62, #525252);
	color: #fff;
}
.cp-portal .cp-appointments-page .cp-appt-badge--missed{
	background: #dc2626;
	color: #fff;
}

.cp-portal .cp-appointments-page .cp-appt-cal{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 14px;
	box-sizing: border-box;
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.15s, background 0.15s, border-color 0.15s;
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.12));
}
.cp-portal .cp-appointments-page .cp-appt-cal:hover{
	color: var(--cp-heading-text, #0a0a0a);
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.04));
	border-color: var(--cp-border-soft, rgba(0, 0, 0, 0.12));
}

.cp-portal .cp-appointments-page .cp-appt-empty{
	padding: 40px 24px;
	text-align: center;
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-empty__icon{
	width: 40px;
	height: 40px;
	margin: 0 auto 12px;
	color: var(--cp-muted-62, #525252);
	opacity: 0.4;
}
.cp-portal .cp-appointments-page .cp-appt-empty__icon svg{
	width: 100%;
	height: 100%;
	display: block;
}
.cp-portal .cp-appointments-page .cp-appt-empty__text{
	margin: 0 0 4px 0;
	font-size: var(--cp-text-base, 14px);
	color: var(--cp-heading-text, #0a0a0a);
	font-weight: 600;
}
.cp-portal .cp-appointments-page .cp-appt-empty__sub{
	margin: 0;
	font-size: var(--cp-text-sm, 13px);
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}

.cp-portal .cp-appointments-page .cp-appt-footer{
	padding: 14px 24px;
	border-top: 1px solid var(--cp-border-faint, rgba(0, 0, 0, 0.06));
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-footer a{
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--cp-heading-text, #0a0a0a);
	font-weight: 600;
	text-decoration: none;
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-footer a:hover{
	text-decoration: underline;
}

.cp-portal .cp-appointments-page .cp-appt-cta{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-soft, rgba(0, 0, 0, 0.08));
	border-radius: var(--cp-radius-card, 12px);
	padding: 18px 24px;
	box-shadow: var(--cp-shadow-card);
	box-sizing: border-box;
}
.cp-portal .cp-appointments-page .cp-appt-cta__text{
	margin: 0;
	font-size: var(--cp-text-base, 14px);
	color: var(--cp-text, #262626);
	line-height: 1.45;
}
.cp-portal .cp-appointments-page .cp-appt-cta__text strong{
	font-weight: 700;
}
.cp-portal .cp-appointments-page .cp-appt-cta__link{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 10px 16px;
	box-sizing: border-box;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.15s, background 0.15s;
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.12));
}
.cp-portal .cp-appointments-page .cp-appt-cta__link:hover{
	opacity: 0.85;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.04));
}

@media (max-width: 640px){
	.cp-portal .cp-appointments-page .cp-appt-row{
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 14px 18px;
	}
	.cp-portal .cp-appointments-page .cp-appt-badge,
	.cp-portal .cp-appointments-page .cp-appt-cal{
		justify-self: start;
	}
	.cp-portal .cp-appointments-page .cp-appt-cta{
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		padding: 16px 18px;
	}
	.cp-portal .cp-appointments-page .cp-appt-reason{
		white-space: normal;
		overflow: visible;
		text-overflow: unset;
	}
}

/* --- PT-12 Portal client settings ----------------------------------------- */
.cp-portal .cp-settings-page{
	min-width: 0;
}
.cp-portal .cp-settings-page > .cp-page-head{
	margin-bottom: 12px;
}
.cp-portal .cp-settings-page .cp-page-title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-settings-page .cp-settings-subsection__title{
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-settings-page .cp-settings-subsection__lead{
	margin: 0 0 14px;
}

.cp-portal .cp-settings-page .cp-acct-overview{
	margin-bottom: 20px;
}
.cp-portal .cp-settings-page .cp-acct-overview__title{
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cp-muted-50, rgba(11, 13, 16, 0.64));
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
}
.cp-portal .cp-settings-page .cp-acct-stats{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 12px;
}
.cp-portal .cp-settings-page .cp-acct-stat{
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 16px 12px;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	border: 1px solid var(--cp-border-soft, rgba(11, 13, 16, 0.09));
	border-radius: 12px;
	transition: border-color 0.15s ease;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-acct-stat:hover{
	border-color: var(--cp-border, #d5dbe3);
}
.cp-portal .cp-settings-page .cp-acct-stat__icon{
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	margin-bottom: 8px;
	color: #fff;
	flex-shrink: 0;
}
.cp-portal .cp-settings-page .cp-acct-stat__icon--calendar{
	background: #6366f1;
}
.cp-portal .cp-settings-page .cp-acct-stat__icon--projects{
	background: #0ea5e9;
}
.cp-portal .cp-settings-page .cp-acct-stat__icon--due{
	background: #f59e0b;
}
.cp-portal .cp-settings-page .cp-acct-stat__icon--gc{
	background: #8b5cf6;
}
.cp-portal .cp-settings-page .cp-acct-stat__val{
	font-size: 18px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.2;
	margin-bottom: 2px;
}
.cp-portal .cp-settings-page .cp-acct-stat__val .cp-money{
	font-size: inherit;
	font-weight: inherit;
}
.cp-portal .cp-settings-page .cp-acct-stat__label{
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-acct-appt{
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	padding: 12px 16px;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	border: 1px solid var(--cp-border-soft, rgba(11, 13, 16, 0.09));
	border-radius: 10px;
	font-size: 13px;
	color: var(--cp-heading-text, #0a0a0a);
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-acct-appt__icon{
	flex-shrink: 0;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-acct-appt__label{
	font-weight: 700;
	margin-right: 4px;
}
.cp-portal .cp-settings-page .cp-acct-appt a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 12px;
	margin-left: auto;
	flex-shrink: 0;
	box-sizing: border-box;
	color: var(--cp-brand, #0a0a0a);
	font-weight: 700;
	text-decoration: none;
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid transparent;
}
.cp-portal .cp-settings-page .cp-acct-appt a:hover{
	text-decoration: underline;
	border-color: var(--cp-border-faint, rgba(11, 13, 16, 0.12));
}

.cp-portal .cp-settings-page .cp-settings-header{
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 24px;
}
.cp-portal .cp-settings-page .cp-settings-avatar{
	position: relative;
	width: 80px;
	height: 80px;
	min-width: 80px;
	min-height: 80px;
	max-width: 80px;
	max-height: 80px;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 50%;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-avatar__img{
	width: 80px;
	height: 80px;
	min-width: 80px;
	min-height: 80px;
	max-width: 80px;
	max-height: 80px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	border: 2px solid var(--cp-border-faint, rgba(11, 13, 16, 0.12));
	aspect-ratio: 1 / 1;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-avatar__placeholder{
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.035));
	border: 2px dashed var(--cp-border, #d5dbe3);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cp-muted-62, #525252);
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-header__info h2{
	margin: 0 0 2px;
	font-size: 20px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.2;
}
.cp-portal .cp-settings-page .cp-settings-header__info p{
	margin: 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-settings-form{
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cp-portal .cp-settings-page .cp-settings-row{
	display: flex;
	gap: 12px;
}
.cp-portal .cp-settings-page .cp-settings-row > .cp-settings-field{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-settings-page .cp-settings-field{
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.cp-portal .cp-settings-page .cp-settings-field label{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-settings-field input[type="text"],
.cp-portal .cp-settings-page .cp-settings-field input[type="tel"]{
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: var(--cp-radius-pill, 999px);
	background: var(--cp-surface, #fff);
	font-size: 16px;
	font-family: inherit;
	color: var(--cp-heading-text, #0a0a0a);
	box-sizing: border-box;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	outline: none;
}
.cp-portal .cp-settings-page .cp-settings-field input:focus{
	border-color: var(--cp-heading-text, #0a0a0a);
	box-shadow: 0 0 0 3px rgba(11, 13, 16, 0.1);
}
.cp-portal .cp-settings-page .cp-settings-upload{
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.cp-portal .cp-settings-page .cp-settings-upload label{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-settings-upload__wrap{
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border: 2px dashed var(--cp-border, #d5dbe3);
	border-radius: 10px;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	transition: border-color 0.15s ease;
	box-sizing: border-box;
	cursor: pointer;
	min-width: 0;
}
.cp-portal .cp-settings-page .cp-settings-upload__wrap:hover{
	border-color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-settings-upload__btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 10px 18px;
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	font-size: 12px;
	font-weight: 600;
	font-family: inherit;
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: var(--cp-radius-pill, 999px);
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background 0.15s ease, border-color 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-upload__btn:hover{
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.035));
	border-color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-settings-page .cp-settings-upload__name{
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}
.cp-portal .cp-settings-page .cp-settings-upload__real{
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	opacity: 0;
}
.cp-portal .cp-settings-page .cp-settings-upload__hint{
	font-size: 11px;
	color: var(--cp-muted-62, #525252);
	margin-top: 4px;
}
.cp-portal .cp-settings-page .cp-settings-readonly{
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.cp-portal .cp-settings-page .cp-settings-readonly label{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-settings-page .cp-settings-readonly .cp-settings-readonly__val{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	min-height: 44px;
	padding: 10px 14px;
	display: flex;
	align-items: center;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.02));
	border: 1px solid var(--cp-border-soft, rgba(11, 13, 16, 0.09));
	border-radius: var(--cp-radius-pill, 999px);
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-actions{
	display: flex;
	gap: 10px;
	margin-top: 4px;
	flex-wrap: wrap;
}
.cp-portal .cp-settings-page .cp-settings-save{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 28px;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: var(--cp-btn-primary-text, #ffffff);
	font-size: 13px;
	font-weight: 800;
	font-family: inherit;
	border: 0;
	border-radius: var(--cp-radius-pill, 999px);
	cursor: pointer;
	transition: background 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-save:hover{
	background: var(--cp-brand-hot, #262626);
}
.cp-portal .cp-settings-page .cp-settings-save:disabled{
	opacity: 0.5;
	cursor: not-allowed;
}
.cp-portal .cp-settings-page .cp-settings-msg{
	padding: 10px 14px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: 13px;
	font-weight: 600;
	display: none;
	text-align: center;
	box-sizing: border-box;
}
.cp-portal .cp-settings-page .cp-settings-msg--ok{
	display: block;
	background: #dcfce7;
	color: #166534;
	border: 1px solid #bbf7d0;
}
.cp-portal .cp-settings-page .cp-settings-msg--err{
	display: block;
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fecaca;
}
.cp-portal .cp-settings-page .cp-settings-note{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	margin-top: 8px;
	line-height: 1.5;
}
.cp-portal .cp-settings-page .cp-settings-note a{
	color: var(--cp-brand, #0a0a0a);
	font-weight: 700;
	text-decoration: none;
}
.cp-portal .cp-settings-page .cp-settings-note a:hover{
	text-decoration: underline;
}
.cp-portal .cp-settings-page .cp-settings-divider{
	border: 0;
	border-top: 1px solid var(--cp-border-soft, rgba(11, 13, 16, 0.09));
	margin: 8px 0;
}

@media (max-width: 640px){
	.cp-portal .cp-settings-page .cp-settings-row{
		flex-direction: column;
		gap: 16px;
	}
	.cp-portal .cp-settings-page .cp-settings-header{
		flex-direction: column;
		text-align: center;
	}
	.cp-portal .cp-settings-page .cp-acct-stats{
		grid-template-columns: repeat(2, 1fr);
	}
	.cp-portal .cp-settings-page .cp-acct-appt{
		flex-direction: column;
		text-align: center;
		gap: 6px;
	}
	.cp-portal .cp-settings-page .cp-acct-appt a{
		margin-left: 0;
	}
}

/* --- PT-13 Portal support ------------------------------------------------- */
.cp-portal .cp-support-page{
	min-width: 0;
}
.cp-portal .cp-support-page > .cp-page-head{
	margin-bottom: 12px;
}
.cp-portal .cp-support-page .cp-page-title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal .cp-support-page .cp-sup{
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cp-portal .cp-support-page .cp-sup-card{
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	border-radius: var(--cp-radius-global, 8px);
	padding: 28px;
	overflow: hidden;
	box-sizing: border-box;
	box-shadow: var(--cp-shadow-card);
}
.cp-portal .cp-support-page .cp-sup-card__head{
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
}
.cp-portal .cp-support-page .cp-sup-card__title{
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: var(--cp-font-weight-heading, 700);
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.25;
}
.cp-portal .cp-support-page .cp-sup-card__sub{
	margin: 0;
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}

.cp-portal .cp-support-page .cp-sup-field{
	margin-bottom: 0;
}
.cp-portal .cp-support-page .cp-sup-card > form > .cp-sup-field{
	margin-bottom: 18px;
}
.cp-portal .cp-support-page .cp-sup-card > form > .cp-sup-field:last-of-type{
	margin-bottom: 0;
}
.cp-portal .cp-support-page .cp-sup-label{
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-support-page .cp-sup-label .cp-req{
	color: var(--cp-brand, #0a0a0a);
	margin-left: 2px;
}
.cp-portal .cp-support-page .cp-sup-input,
.cp-portal .cp-support-page .cp-sup-textarea{
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	font-size: 16px;
	font-family: inherit;
	color: var(--cp-heading-text, #0a0a0a);
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a);
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.15));
	border-radius: var(--cp-radius-pill, 999px);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
}
.cp-portal .cp-support-page .cp-sup-input--dt{
	border-radius: var(--cp-radius-global, 8px);
	min-height: 44px;
}
.cp-portal .cp-support-page .cp-sup-textarea{
	border-radius: var(--cp-radius-global, 8px);
	min-height: 140px;
	resize: vertical;
	line-height: 1.6;
}
.cp-portal .cp-support-page select.cp-sup-select{
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	padding-right: 36px;
	font-size: 16px;
	font-family: inherit;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a);
	background-color: var(--cp-surface, #fff);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5l3 3 3-3' fill='none' stroke='%23525252' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 10px 10px;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.15));
	border-radius: var(--cp-radius-pill, 999px);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.cp-portal .cp-support-page .cp-sup-input:focus,
.cp-portal .cp-support-page .cp-sup-textarea:focus,
.cp-portal .cp-support-page select.cp-sup-select:focus{
	border-color: rgba(10, 10, 10, 0.35);
	box-shadow: 0 0 0 3px rgba(11, 13, 16, 0.08);
}

.cp-portal .cp-support-page .cp-sup-row{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 20px;
	min-width: 0;
}

.cp-portal .cp-support-page .cp-sup-appt{
	display: none;
	margin-bottom: 18px;
	padding: 14px 18px;
	background: color-mix(in srgb, #2563eb 5%, #fff);
	border: 1px solid color-mix(in srgb, #2563eb 15%, transparent);
	border-radius: var(--cp-radius-global, 8px);
	font-size: 13px;
	color: var(--cp-text, #0b0d10);
	line-height: 1.5;
	box-sizing: border-box;
}
.cp-portal .cp-support-page .cp-sup-appt.is-visible{
	display: block;
}
.cp-portal .cp-support-page .cp-sup-appt strong{
	color: #2563eb;
}

.cp-portal .cp-support-page .cp-sup-emergency{
	display: none;
	margin-bottom: 18px;
	padding: 14px 18px;
	background: color-mix(in srgb, var(--cp-brand, #0a0a0a) 5%, #fff);
	border: 1px solid color-mix(in srgb, var(--cp-brand, #0a0a0a) 20%, transparent);
	border-radius: var(--cp-radius-global, 8px);
	font-size: 13px;
	color: var(--cp-text, #0b0d10);
	line-height: 1.5;
	box-sizing: border-box;
}
.cp-portal .cp-support-page .cp-sup-emergency.is-visible{
	display: block;
}
.cp-portal .cp-support-page .cp-sup-emergency strong{
	color: var(--cp-brand, #0a0a0a);
}

.cp-portal .cp-support-page .cp-sup-daterow{
	display: none;
	margin-bottom: 18px;
	min-width: 0;
}
.cp-portal .cp-support-page .cp-sup-daterow.is-visible{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.cp-portal .cp-support-page .cp-sup-submit{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	margin-top: 8px;
	padding: 12px 28px;
	border-radius: var(--cp-radius-pill, 999px);
	border: none;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: var(--cp-btn-primary-text, #fff);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}
.cp-portal .cp-support-page .cp-sup-submit:hover{
	background: var(--cp-brand-hot, #262626);
}
.cp-portal .cp-support-page .cp-sup-submit:disabled{
	opacity: 0.6;
	cursor: not-allowed;
}

.cp-portal .cp-support-page .cp-sup-result{
	display: none;
	margin-top: 16px;
	padding: 14px 18px;
	border-radius: var(--cp-radius-global, 8px);
	font-size: 13px;
	line-height: 1.5;
	box-sizing: border-box;
}
.cp-portal .cp-support-page .cp-sup-result--ok{
	display: block;
	background: color-mix(in srgb, var(--cp-pill-paid-bg, #16a34a) 8%, var(--cp-surface, #fff));
	border: 1px solid color-mix(in srgb, var(--cp-pill-paid-bg, #16a34a) 20%, transparent);
	color: var(--cp-text, #0b0d10);
}
.cp-portal .cp-support-page .cp-sup-result--ok strong{
	color: var(--cp-pill-paid-bg, #16a34a);
}
.cp-portal .cp-support-page .cp-sup-result--err{
	display: block;
	background: color-mix(in srgb, var(--cp-brand, #0a0a0a) 6%, var(--cp-surface, #fff));
	border: 1px solid color-mix(in srgb, var(--cp-brand, #0a0a0a) 18%, transparent);
	color: var(--cp-text, #0b0d10);
}

.cp-portal .cp-support-page .cp-sup-tips{
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	border-radius: var(--cp-radius-global, 8px);
	padding: 18px 22px;
	box-sizing: border-box;
	box-shadow: var(--cp-shadow-card);
}
.cp-portal .cp-support-page .cp-sup-tips__title{
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: var(--cp-font-weight-heading, 700);
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-support-page .cp-sup-tips__list{
	margin: 0;
	padding-left: 18px;
	line-height: 1.6;
	font-size: 13px;
	color: var(--cp-text, #0b0d10);
}
.cp-portal .cp-support-page .cp-sup-tips__list li{
	margin: 6px 0;
}
.cp-portal .cp-support-page .cp-sup-tips__list li::marker{
	color: var(--cp-brand, #0a0a0a);
}
.cp-portal .cp-support-page .cp-sup-tips__note{
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}

.cp-portal .cp-support-page .cp-sup-contact{
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	text-align: center;
	padding: 8px 0;
	line-height: 1.5;
}
.cp-portal .cp-support-page .cp-sup-contact a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 8px;
	color: var(--cp-brand, #0a0a0a);
	text-decoration: none;
	font-weight: 600;
	box-sizing: border-box;
	border-radius: var(--cp-radius-pill, 999px);
}
.cp-portal .cp-support-page .cp-sup-contact a:hover{
	color: var(--cp-brand-hot, #262626);
	text-decoration: underline;
}

@media (max-width: 640px){
	.cp-portal .cp-support-page .cp-sup-row{
		grid-template-columns: 1fr;
		gap: 0;
		margin-bottom: 8px;
	}
	.cp-portal .cp-support-page .cp-sup-row .cp-sup-field{
		margin-bottom: 14px;
	}
	.cp-portal .cp-support-page .cp-sup-daterow.is-visible{
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.cp-portal .cp-support-page .cp-sup-card{
		padding: 20px;
	}
}

/* --- PT-14 Portal quotes list --------------------------------------------- */
/* Route `quotes`: .cp-quotes-list-page shares hub card rules under .cp-documents-page (PT-10). */
.cp-portal .cp-documents-page.cp-quotes-list-page{
	min-width: 0;
}
.cp-portal .cp-documents-page.cp-quotes-list-page .cp-doc-hub-grid{
	margin-top: 0;
}

/* --- PT-15 Portal quote view ---------------------------------------------- */
.cp-portal .cp-quote-view-page{
	min-width: 0;
}
.cp-portal .cp-quote-view-page__lead{
	margin: 0;
}
.cp-portal .cp-quote-view-page .crm-link-action.cp-nav-back{
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	margin-bottom: 12px;
}

.cp-portal .cp-quote-view-page .cpq-head{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.cp-portal .cp-quote-view-page .cpq-head__main{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-quote-view-page .cpq-head .cp-page-title{
	margin: 0 0 4px;
	padding: 0;
	font-size: clamp(1.35rem, 1.12rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-quote-view-page .cpq-head__meta{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	line-height: 1.5;
}

.cp-portal .cp-quote-view-page .cp-card{
	margin-bottom: 16px;
}
.cp-portal .cp-quote-view-banner{
	border-radius: var(--cp-radius-global, 8px);
	overflow: hidden;
}
.cp-portal .cp-quote-view-banner--success.cp-card{
	background: var(--cp-success-bg, #dcfce7);
	border-color: var(--cp-success-border, #bbf7d0);
}
.cp-portal .cp-quote-view-banner--success .cp-quote-view-banner__inner{
	padding: 14px 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-banner--success .cp-quote-view-banner__text{
	font-size: 14px;
	font-weight: 600;
	color: var(--cp-success-text, #166534);
}
.cp-portal .cp-quote-view-banner--warning.cp-card{
	background: var(--cp-warning-bg, #fef3c7);
	border-color: var(--cp-warning-border, #fde68a);
}
.cp-portal .cp-quote-view-banner--warning .cp-quote-view-banner__inner{
	padding: 10px 16px;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-warning-text, #92400e);
	text-align: center;
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-page .cp-quote-view-expired-banner .cp-quote-view-banner__inner{
	padding: 14px 18px;
	line-height: 1.5;
}
.cp-portal .cp-quote-view-page .cp-quote-view-expired-banner{
	margin-bottom: 16px;
}
.cp-portal .cp-quote-view-page .cp-quote-view-client-actions-card{
	margin-bottom: 16px;
}
.cp-portal .cp-quote-view-banner--danger.cp-card{
	background: #fef2f2;
	border-color: #fecaca;
}
.cp-portal .cp-quote-view-banner--danger .cp-quote-view-banner__inner{
	padding: 12px 16px;
	font-size: 13px;
	font-weight: 600;
	color: #991b1b;
	text-align: center;
	line-height: 1.5;
	box-sizing: border-box;
}

.cp-portal .cp-quote-view-card__body{
	padding: 20px;
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-from{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 16px;
	gap: 12px;
	flex-wrap: wrap;
}
.cp-portal .cp-quote-view-kicker{
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cp-muted-62, #6b7280);
	margin-bottom: 2px;
}
.cp-portal .cp-quote-view-from__name{
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.3;
}
.cp-portal .cp-quote-view-from__aside{
	text-align: right;
}
.cp-portal .cp-quote-view-from__date{
	font-size: 12px;
	color: var(--cp-muted-62, #6b7280);
}
.cp-portal .cp-quote-view-valid{
	font-size: 11px;
	margin-top: 2px;
	color: var(--cp-muted-62, #6b7280);
}
.cp-portal .cp-quote-view-valid--expired{
	color: #b91c1c;
}

.cp-portal .cp-quote-view-detail-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 8px 24px;
	margin: 16px 0;
	padding: 14px 16px;
	background: var(--cp-card-alt-bg, #f9fafb);
	border-radius: var(--cp-radius-global, 8px);
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-detail__label{
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--cp-muted-62, #6b7280);
	margin-bottom: 2px;
}
.cp-portal .cp-quote-view-detail__val{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.4;
	word-break: break-word;
}
.cp-portal .cp-quote-view-link{
	color: var(--cp-link, #2563eb);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cp-portal .cp-quote-view-page .cpq-line-table{
	width: 100%;
	margin: 16px 0;
	border-collapse: collapse;
}
.cp-portal .cp-quote-view-page .cpq-line-table th{
	text-align: left;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--cp-muted-62, #525252);
	padding: 8px 10px 10px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
}
.cp-portal .cp-quote-view-page .cpq-line-table th.cpq-line-table__qty{
	text-align: center;
	width: 60px;
}
.cp-portal .cp-quote-view-page .cpq-line-table th.cpq-line-table__money{
	text-align: right;
	width: 100px;
}
.cp-portal .cp-quote-view-page .cpq-line-table td{
	padding: 10px;
	font-size: var(--cp-text-base, 14px);
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	vertical-align: top;
}
.cp-portal .cp-quote-view-page .cpq-line-table td.cpq-line-table__qty{
	text-align: center;
}
.cp-portal .cp-quote-view-page .cpq-line-table td.cpq-line-table__money{
	text-align: right;
}
.cp-portal .cp-quote-view-page .cpq-line-table td.cpq-line-table__money--strong{
	font-weight: 600;
}

.cp-portal .cp-quote-view-total{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
	padding-top: 12px;
	border-top: 2px solid var(--cp-heading-text, #0a0a0a);
	flex-wrap: wrap;
}
.cp-portal .cp-quote-view-total__label{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-muted-62, #6b7280);
	text-transform: uppercase;
}
.cp-portal .cp-quote-view-total__amount{
	font-size: 24px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.2;
}

.cp-portal .cp-quote-view-notes__body{
	padding: 16px 20px;
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-notes__title{
	margin-bottom: 6px;
}
.cp-portal .cp-quote-view-notes__content{
	font-size: 13px;
	color: var(--cp-body-text, #374151);
	line-height: 1.6;
}

.cp-portal .cp-quote-view-page .cpq-actions-wrap--client{
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: stretch;
}
.cp-portal .cp-quote-view-page .cpq-actions-wrap--client .cpq-actions-wrap__primary{
	width: 100%;
	justify-content: center;
	min-height: 48px;
	font-size: 14px;
	font-weight: 800;
}
.cp-portal .cp-quote-view-page .cpq-actions-wrap--client .cpq-actions-wrap__secondary{
	width: 100%;
	justify-content: center;
	min-height: 44px;
}
.cp-portal .cp-quote-view-page .cpq-decline-outline{
	border-color: #fecaca;
	color: #991b1b;
}
.cp-portal .cp-quote-view-page .cpq-approve-btn--disabled{
	opacity: 0.55;
	cursor: not-allowed;
}

.cp-portal .cp-quote-view-page .cpq-panel{
	display: none;
	margin-top: 16px;
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-page .cpq-panel.is-visible{
	display: block;
}
.cp-portal .cp-quote-view-page .cpq-actions-wrap.is-hidden{
	display: none !important;
}

.cp-portal .cp-quote-view-confirm{
	padding: 16px;
	background: var(--cp-success-bg, #f0fdf4);
	border: 1px solid var(--cp-success-border, #bbf7d0);
	border-radius: var(--cp-radius-global, 10px);
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-confirm__row{
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.cp-portal .cp-quote-view-confirm__icon{
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin-top: 1px;
	color: #059669;
}
.cp-portal .cp-quote-view-confirm__body{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-quote-view-confirm__title{
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--cp-success-text, #166534);
}
.cp-portal .cp-quote-view-confirm__text{
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--cp-success-text, #166534);
	line-height: 1.5;
}
.cp-portal .cp-quote-view-confirm__actions{
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	max-width: 360px;
}

.cp-portal .cp-quote-view-changes__lead{
	margin: 0 0 8px;
	font-size: 13px;
	color: var(--cp-muted-62, #6b7280);
	line-height: 1.5;
}
.cp-portal .cp-quote-view-page .cp-quote-view-textarea{
	width: 100%;
	min-height: 80px;
	border: 1px solid var(--cp-border, #e5e7eb);
	border-radius: var(--cp-radius-global, 8px);
	padding: 12px 14px;
	font-size: 16px;
	font-family: inherit;
	resize: vertical;
	box-sizing: border-box;
	min-width: 0;
}
.cp-portal .cp-quote-view-page .cp-quote-view-textarea--decline{
	min-height: 72px;
	border-color: #fecaca;
}
.cp-portal .cp-quote-view-changes__actions{
	margin-top: 8px;
}

.cp-portal .cp-quote-view-decline{
	padding: 16px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: var(--cp-radius-global, 10px);
	box-sizing: border-box;
}
.cp-portal .cp-quote-view-decline__title{
	margin: 0 0 8px;
	font-size: 13px;
	color: #7f1d1d;
	line-height: 1.5;
	font-weight: 600;
}
.cp-portal .cp-quote-view-decline__lead{
	margin: 0 0 10px;
	font-size: 13px;
	color: #6b7280;
	line-height: 1.5;
}
.cp-portal .cp-quote-view-decline__actions{
	margin-top: 10px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 360px;
}
.cp-portal .cp-quote-view-page .cpq-decline-submit-btn{
	background: #b91c1c;
	border-color: #b91c1c;
	color: #fff;
}

.cp-portal .cp-quote-view-page #cpq-msg{
	font-size: 13px;
	font-weight: 600;
	margin-top: 10px;
	min-height: 0;
}
.cp-portal .cp-quote-view-page #cpq-msg.cp-quote-view-msg--success{
	color: var(--cp-success-text, #166534);
}
.cp-portal .cp-quote-view-page #cpq-msg.cp-quote-view-msg--danger{
	color: var(--cp-danger-text, #dc2626);
}

@media (min-width: 640px){
	.cp-portal .cp-quote-view-page .cpq-actions-wrap--client{
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
	}
	.cp-portal .cp-quote-view-page .cpq-actions-wrap--client .cpq-actions-wrap__primary{
		flex: 1 1 220px;
		width: auto;
	}
	.cp-portal .cp-quote-view-page .cpq-actions-wrap--client .cpq-actions-wrap__secondary{
		flex: 0 1 auto;
		width: auto;
		min-width: 160px;
	}
}

@media (max-width: 640px){
	.cp-portal .cp-quote-view-page .cpq-head{
		gap: 8px;
	}
	.cp-portal .cp-quote-view-page .cp-quote-view-from{
		flex-direction: column;
		gap: 8px;
	}
	.cp-portal .cp-quote-view-page .cp-quote-view-from__aside{
		text-align: left;
	}
	.cp-portal .cp-quote-view-page .cpq-line-table thead{
		display: none;
	}
	.cp-portal .cp-quote-view-page .cpq-line-table tr{
		display: block;
		border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.1));
		border-radius: var(--cp-radius-global, 8px);
		margin-bottom: 10px;
		padding: 4px 0;
		background: var(--cp-surface, #fff);
	}
	.cp-portal .cp-quote-view-page .cpq-line-table td{
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 12px;
		text-align: left !important;
		border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
		padding: 8px 12px;
	}
	.cp-portal .cp-quote-view-page .cpq-line-table td:last-child{
		border-bottom: 0;
	}
	.cp-portal .cp-quote-view-page .cpq-line-table td::before{
		content: attr(data-label);
		font-size: 10px;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--cp-muted-62, #525252);
		flex-shrink: 0;
	}
	.cp-portal .cp-quote-view-page .cp-quote-view-detail-grid{
		grid-template-columns: 1fr;
	}
	.cp-portal .cp-quote-view-page .cpq-actions-wrap:not(.cpq-actions-wrap--client){
		flex-direction: column;
	}
	.cp-portal .cp-quote-view-page .cpq-actions-wrap:not(.cpq-actions-wrap--client) .cp-btn{
		width: 100%;
		justify-content: center;
		text-align: center;
	}
	.cp-portal .cp-quote-view-page .cp-quote-view-total{
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
}

/* --- PT-16 Questionnaire fill (token) ------------------------------------ */
.cp-portal .cp-qf-fill-page{
	max-width: min(100%, 700px);
	min-width: 0;
	box-sizing: border-box;
}
.cp-portal .cp-qf-fill-page__card{
	padding: 16px 20px;
	box-sizing: border-box;
}
.cp-portal .cp-qf-fill-page .cp-qf-fill-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-qf-step-card{
	margin-bottom: 16px;
	box-sizing: border-box;
}
.cp-portal .cp-qf-step-card__header{
	padding: 14px 20px;
	border-bottom: 1px solid var(--cp-card-border, #e5e5e5);
	font-size: 13px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	box-sizing: border-box;
}
.cp-portal .cp-qf-step-card__body{
	padding: 16px 20px;
	box-sizing: border-box;
}
.cp-portal .cp-qf-submit-area{
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.cp-portal .cp-qf-submit-btn{
	min-height: 48px;
	padding-left: 20px;
	padding-right: 20px;
}
.cp-portal .cp-qf-error,
.cp-portal .cp-qf-success{
	display: none;
	font-size: 13px;
	font-weight: 600;
	max-width: 100%;
	box-sizing: border-box;
}
.cp-portal .cp-qf-error.is-visible,
.cp-portal .cp-qf-success.is-visible{
	display: inline-block;
	vertical-align: middle;
}
.cp-portal .cp-qf-error{
	color: var(--cp-danger-text, #dc2626);
}
.cp-portal .cp-qf-success{
	color: var(--cp-success-text, #166534);
}
.cp-portal .cp-qf-paragraph{
	font-size: 13px;
	color: var(--cp-muted-62, #525252);
	margin: 0 0 12px;
	line-height: 1.5;
}
.cp-portal .cp-qf-field{
	margin-bottom: 14px;
	box-sizing: border-box;
}
.cp-portal .cp-qf-field:last-child{
	margin-bottom: 0;
}
.cp-portal .cp-qf-field__label{
	display: block;
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 4px;
	color: var(--cp-body-text, #0a0a0a);
}
.cp-portal .cp-qf-required{
	color: var(--cp-danger-text, #dc2626);
	font-weight: 700;
}
.cp-portal .cp-qf-input{
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--cp-input-border, #d4d4d4);
	border-radius: var(--cp-radius-global, 8px);
	font-size: 16px;
	background: var(--cp-input-bg, #fff);
	color: var(--cp-body-text, #0a0a0a);
	box-sizing: border-box;
	min-width: 0;
}
.cp-portal .cp-qf-input--textarea{
	resize: vertical;
	min-height: 96px;
}
.cp-portal .cp-qf-choice{
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	margin-bottom: 4px;
	cursor: pointer;
	min-height: 44px;
	box-sizing: border-box;
}
.cp-portal .cp-qf-choice:last-child{
	margin-bottom: 0;
}
.cp-portal .cp-qf-choice input{
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0;
}
.cp-portal .cp-qf-portal-cta{
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-qf-portal-cta:hover{
	text-decoration: underline;
}
.cp-portal .cp-qf-view-empty{
	text-align: center;
	padding: 32px 24px;
	box-sizing: border-box;
}

/* --- PT-17 Gallery list --------------------------------------------------- */
.cp-portal .cp-gal-list-page{
	min-width: 0;
	box-sizing: border-box;
}
.cp-portal .cp-gal-list-page .cp-gal-list-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-gal-list-empty{
	text-align: center;
	padding: 28px 20px 32px;
	box-sizing: border-box;
}
.cp-portal .cp-gal-list-empty__icon{
	display: block;
	margin: 0 auto 16px;
	opacity: 0.25;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-gal-list-empty__lead{
	margin: 0;
	font-size: 15px;
	line-height: 1.45;
}
.cp-portal .cp-gal-list-empty__hint{
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.45;
}
.cp-portal .cp-gal-card__placeholder-graphic{
	flex-shrink: 0;
}
.cp-portal .cp-gal-card__placeholder-graphic--muted{
	opacity: 0.25;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-gal-card__placeholder-graphic--soft{
	opacity: 0.2;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-gal-list-page .cp-gal-pw-input{
	min-height: 44px;
	height: auto;
	padding: 0 12px;
	font-size: 16px;
	box-sizing: border-box;
}
.cp-portal .cp-gal-list-page .cp-gal-pw-btn{
	min-height: 44px;
	height: auto;
	padding: 0 18px;
	box-sizing: border-box;
}
.cp-portal .cp-gal-list-page .cp-gal-card .cp-doc-hub-card__cta{
	min-height: 44px;
	padding: 10px 16px;
	box-sizing: border-box;
}

/* --- PT-18 Gallery view / unified gallery ---------------------------------
   Detailed rules ship in gallery-view.php (cp_portal_gallery_view_inline_styles)
   and unified-gallery.php (cp_portal_unified_gallery_css). This block only
   reinforces shell constraints on the portal gallery route. */
.cp-portal[data-route-key="gallery_view"] .cp-ug-page,
.cp-portal[data-route-key="gallery_view"] .cp-gv-header{
	min-width: 0;
	box-sizing: border-box;
}

/* --- PT-19 Deliverables --------------------------------------------------- */
.cp-portal .cp-deliv-page{
	min-width: 0;
	box-sizing: border-box;
}
.cp-portal .cp-deliv-page .cp-deliv-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}
.cp-portal .cp-deliv-page .cp-deliv-session{
	margin-bottom: 24px;
}
.cp-portal .cp-deliv-page .cp-deliv-session__head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	flex-wrap: wrap;
}
.cp-portal .cp-deliv-page .cp-deliv-session__title{
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.3;
}
.cp-portal .cp-deliv-page .cp-deliv-session__meta{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	white-space: nowrap;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery{
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	padding-bottom: 4px;
	margin-bottom: 4px;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery:last-child{
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery__head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 20px 8px;
	flex-wrap: wrap;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery__name{
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-body-text, #0b0d10);
	margin: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery__name--minor{
	font-size: 13px;
}
.cp-portal .cp-deliv-page .cp-deliv-gallery__meta{
	font-size: 11px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-deliv-page .cp-deliv-zip-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 18px;
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s;
	line-height: 1;
	white-space: nowrap;
	box-sizing: border-box;
}
.cp-portal .cp-deliv-page .cp-deliv-zip-btn:hover{
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-deliv-page .cp-deliv-zip-btn svg{
	width: 14px;
	height: 14px;
	stroke: currentColor;
	fill: none;
	flex-shrink: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 12px;
	padding: 8px 20px 16px;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card{
	border-radius: var(--cp-radius-global, 6px);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	overflow: hidden;
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.015));
	transition: box-shadow 0.15s, border-color 0.15s;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card:hover{
	border-color: var(--cp-brand, #0a0a0a);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__thumb{
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.04));
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__thumb--placeholder{
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0.3;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__foot{
	padding: 8px 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__name{
	font-size: 11px;
	font-weight: 600;
	color: var(--cp-body-text, #0b0d10);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__dl{
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: 50%;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s;
	line-height: 1;
	box-sizing: border-box;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__dl:hover{
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-deliv-page .cp-deliv-img-card__dl svg{
	width: 14px;
	height: 14px;
	stroke: currentColor;
	fill: none;
	flex-shrink: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-legacy-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
	padding: 8px 20px 16px;
}
.cp-portal .cp-deliv-page .cp-deliv-item{
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border-radius: var(--cp-radius-global, 6px);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.015));
	transition: box-shadow 0.15s, border-color 0.15s;
}
.cp-portal .cp-deliv-page .cp-deliv-item:hover{
	border-color: var(--cp-brand, #0a0a0a);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.cp-portal .cp-deliv-page .cp-deliv-item__icon{
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: var(--cp-radius-global, 6px);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.04));
}
.cp-portal .cp-deliv-page .cp-deliv-item__icon svg{
	width: 20px;
	height: 20px;
	stroke: var(--cp-muted-62, #525252);
	fill: none;
}
.cp-portal .cp-deliv-page .cp-deliv-item__info{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-item__name{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-body-text, #0b0d10);
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	margin: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-item__meta{
	font-size: 11px;
	color: var(--cp-muted-62, #525252);
	margin: 2px 0 0;
	line-height: 1.3;
}
.cp-portal .cp-deliv-page .cp-deliv-item__dl{
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 44px;
	padding: 8px 16px;
	background: var(--cp-surface, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s;
	line-height: 1;
	white-space: nowrap;
	box-sizing: border-box;
}
.cp-portal .cp-deliv-page .cp-deliv-item__dl:hover{
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: none;
}
.cp-portal .cp-deliv-page .cp-deliv-item__dl svg{
	width: 13px;
	height: 13px;
	stroke: currentColor;
	fill: none;
	flex-shrink: 0;
}
.cp-portal .cp-deliv-page .cp-deliv-empty{
	text-align: center;
	padding: 36px 24px;
	box-sizing: border-box;
}
.cp-portal .cp-deliv-page .cp-deliv-empty__icon-wrap{
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.04));
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-deliv-page .cp-deliv-empty__title{
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.35;
}
.cp-portal .cp-deliv-page .cp-deliv-empty__lead{
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.5;
}
@media (max-width: 640px){
	.cp-portal .cp-deliv-page .cp-deliv-grid{
		grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
		padding: 8px 12px 12px;
	}
	.cp-portal .cp-deliv-page .cp-deliv-legacy-grid{
		grid-template-columns: 1fr;
		padding: 12px;
	}
	.cp-portal .cp-deliv-page .cp-deliv-session__head,
	.cp-portal .cp-deliv-page .cp-deliv-gallery__head{
		flex-direction: column;
		align-items: flex-start;
	}
}

/* --- PT-20 Print shop ------------------------------------------------------ */

.cp-portal .cp-ps-page__title{
	margin: 0;
	padding: 0;
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	color: var(--cp-heading-text, #0a0a0a);
	letter-spacing: -0.02em;
}

.cp-portal .cp-po-ship{
	padding: 12px 20px;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	display: flex;
	gap: 10px;
	align-items: flex-start;
}
.cp-portal .cp-po-ship__pin{
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-po-ship__body{
	font-size: 12px;
	line-height: 1.5;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-po-ship__head{
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	margin-bottom: 2px;
}
.cp-portal .cp-po-ship__intercept{
	margin-top: 6px;
	font-size: 11px;
	color: #64748b;
	font-style: italic;
}
.cp-portal .cp-po-item__thumb--empty svg{
	color: #d4d4d4;
}

.cp-portal .cp-po-success-banner{
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #166534;
	padding: 14px 18px;
	border-radius: 12px;
	margin-bottom: 18px;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1.5;
}
.cp-portal .cp-po-success-banner strong{
	font-weight: 700;
}
.cp-portal .cp-po-success-banner svg{
	flex-shrink: 0;
}

.cp-portal .cp-po-empty-state{
	text-align: center;
	padding: 48px 24px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-po-empty-state svg{
	opacity: 0.2;
	margin-bottom: 12px;
}
.cp-portal .cp-po-empty-state strong{
	display: block;
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	margin-bottom: 6px;
}
.cp-portal .cp-po-empty-state p{
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
}

.cp-portal .cp-po-list{
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 8px;
}

.cp-portal .cp-po-card{
	background: var(--cp-card-bg, #fff);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow 0.15s;
}
.cp-portal .cp-po-card:hover{
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}
.cp-portal .cp-po-card--cancelled{
	opacity: 0.7;
}

.cp-portal .cp-po-card__header{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	gap: 12px;
	flex-wrap: wrap;
}
.cp-portal .cp-po-card__meta{
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.cp-portal .cp-po-card__id{
	font-family: ui-monospace, "SF Mono", monospace;
	font-size: 12px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	background: #f5f5f5;
	padding: 4px 10px;
	border-radius: 6px;
}
.cp-portal .cp-po-card__date{
	font-size: 12px;
	color: var(--cp-muted-62, #a3a3a3);
	font-weight: 500;
}
.cp-portal .cp-po-card__gal{
	font-size: 12px;
	color: var(--cp-muted-62, #a3a3a3);
	font-weight: 500;
}
.cp-portal .cp-po-card__gal::before{
	content: "\00b7";
	margin-right: 4px;
}
.cp-portal .cp-po-card__total{
	font-size: 20px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	letter-spacing: -0.01em;
}

.cp-portal .cp-po-stepper{
	display: flex;
	align-items: center;
	padding: 0 18px 16px;
	gap: 0;
}
.cp-portal .cp-po-step{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	flex-shrink: 0;
}
.cp-portal .cp-po-step__dot{
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid #d4d4d4;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s;
	flex-shrink: 0;
}
.cp-portal .cp-po-step--done .cp-po-step__dot{
	border-color: #16a34a;
	background: #16a34a;
	color: #fff;
}
.cp-portal .cp-po-step--active .cp-po-step__dot{
	border-color: #16a34a;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.2);
}
.cp-portal .cp-po-step--active .cp-po-step__dot::after{
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #16a34a;
}
.cp-portal .cp-po-step__label{
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #999;
}
.cp-portal .cp-po-step--done .cp-po-step__label,
.cp-portal .cp-po-step--active .cp-po-step__label{
	color: #16a34a;
}
.cp-portal .cp-po-step__line{
	flex: 1;
	height: 2px;
	background: #e5e5e5;
	min-width: 16px;
	margin: 0 2px;
	margin-bottom: 20px;
}
.cp-portal .cp-po-step__line--done{
	background: #16a34a;
}

.cp-portal .cp-po-cancelled-bar{
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px 16px;
	font-size: 13px;
	font-weight: 600;
	color: #991b1b;
}

.cp-portal .cp-po-tracking-row{
	margin: 0;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	background: var(--cp-bg-subtle, #fafafa);
	padding: 12px 18px;
}
.cp-portal .cp-po-tracking-row__title{
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cp-muted-62, #737373);
	margin: 0 0 8px;
}
.cp-portal .cp-po-tracking-row__body{
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
}
.cp-portal .cp-po-tracking-row__main{
	min-width: 0;
}
.cp-portal .cp-po-tracking-row__copy{
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	min-height: 44px;
	box-sizing: border-box;
	padding: 10px 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	border: 1px solid var(--cp-border, #e5e5e5);
	background: var(--cp-card-bg, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	cursor: pointer;
	font-family: inherit;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
.cp-portal .cp-po-tracking-row__copy:hover{
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.04));
	border-color: var(--cp-border-strong, #d4d4d4);
}
.cp-portal .cp-po-tracking-row__copy:focus{
	outline: 2px solid var(--cp-heading-text, #0a0a0a);
	outline-offset: 2px;
}
.cp-portal .cp-po-tracking-row__copy:focus:not(:focus-visible){
	outline: none;
}
.cp-portal .cp-po-tracking-row__copy.is-copied{
	background: #f0fdf4;
	border-color: #86efac;
	color: #166534;
	box-shadow: 0 1px 2px rgba(22, 101, 52, 0.08);
}
.cp-portal .cp-po-tracking-row__link{
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: #2563eb;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-all;
	line-height: 1.45;
}
.cp-portal .cp-po-tracking-row__link:hover{
	color: #1d4ed8;
}
.cp-portal .cp-po-tracking-row__ref{
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: var(--cp-heading-text, #0a0a0a);
	word-break: break-word;
	line-height: 1.45;
	font-family: ui-monospace, monospace;
}
.cp-portal .cp-po-tracking-row__note{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
	margin-top: 6px;
	line-height: 1.4;
}
.cp-portal .cp-po-tracking-row__empty{
	margin: 0;
	font-size: 12px;
	color: var(--cp-muted-62, #737373);
	line-height: 1.45;
}

@media (max-width: 600px){
	.cp-portal .cp-po-tracking-row__body{
		grid-template-columns: 1fr;
		align-items: stretch;
		gap: 10px;
	}
	.cp-portal .cp-po-tracking-row__copy{
		width: 100%;
		box-sizing: border-box;
	}
}

.cp-portal .cp-po-items{
	padding: 0 20px 18px;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
}
.cp-portal .cp-po-item{
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
}
.cp-portal .cp-po-item:last-child{
	border-bottom: none;
}
.cp-portal .cp-po-item__thumb{
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 8px;
	flex-shrink: 0;
	background: #fafafa;
}
.cp-portal .cp-po-item__thumb--empty{
	background: var(--cp-bg-subtle, #f5f5f5);
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-portal .cp-po-item__body{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-po-item__name{
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-po-item__qty{
	font-size: 11px;
	color: var(--cp-muted-62, #525252);
	margin-top: 1px;
}
.cp-portal .cp-po-item__price{
	font-size: 13px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.cp-portal .cp-po-card__footer{
	padding: 10px 18px;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	background: var(--cp-bg-subtle, #fafafa);
}
.cp-portal .cp-po-card__support-link{
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
	text-decoration: none;
}
.cp-portal .cp-po-card__support-link:hover{
	color: var(--cp-heading-text, #0a0a0a);
	text-decoration: underline;
}

/* Legacy print shop UI (sessions grid, cart, picker) */
.cp-portal .cp-ps-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
	margin-bottom: 24px;
}
.cp-portal .cp-ps-session-card{
	display: block;
	text-decoration: none;
	color: inherit;
	background: var(--cp-card-bg, #fff);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow 0.15s, transform 0.1s;
}
.cp-portal .cp-ps-session-card:hover{
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}
.cp-portal .cp-ps-session-cover{
	height: 160px;
	background-size: cover;
	background-position: center;
	background-color: var(--cp-bg-subtle, #fafafa);
}
.cp-portal .cp-ps-session-cover--empty{
	display: flex;
	align-items: center;
	justify-content: center;
	color: #d4d4d4;
}
.cp-portal .cp-ps-session-info{
	padding: 14px 16px;
}
.cp-portal .cp-ps-session-name{
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	margin-bottom: 2px;
	font-family: var(--cp-font-heading, inherit);
}
.cp-portal .cp-ps-session-meta{
	font-size: 12px;
	color: var(--cp-muted-62, #525252);
}
.cp-portal .cp-ps-img-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 14px;
	margin-bottom: 24px;
}
.cp-portal .cp-ps-img-card{
	background: var(--cp-card-bg, #fff);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.cp-portal .cp-ps-img-wrap{
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--cp-bg-subtle, #fafafa);
}
.cp-portal .cp-ps-img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cp-portal .cp-ps-order-btn{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 9px 10px;
	border: none;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	background: #fff;
	color: var(--cp-primary, #0a0a0a);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.12s;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	width: 100%;
}
.cp-portal .cp-ps-order-btn:hover{
	background: #fef2f2;
}
.cp-portal .cp-ps-order-btn.has-items{
	background: #f0fdf4;
	color: #059669;
}

.cp-portal .cp-ps-cart-panel--drawer,
.cp-portal .cp-ps-cart-backdrop,
.cp-portal .cp-ps-cart-fab,
.cp-portal .cp-ps-picker-overlay,
.cp-portal .cp-ps-picker{
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
}
.cp-portal .cp-ps-cart-backdrop{
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	transition: opacity 0.2s ease;
}
.cp-portal .cp-ps-cart-backdrop[hidden]{
	display: none !important;
}
.cp-portal .cp-ps-cart-panel--drawer{
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	width: 380px;
	max-width: 90vw;
	display: flex;
	flex-direction: column;
	background: var(--cp-card-bg, #fff);
	border-left: 1px solid var(--cp-border, #e5e5e5);
	box-shadow: var(--cp-shell-slide-edge-shadow, -14px 0 40px rgba(15, 23, 42, 0.18));
	transform: translateX(0);
	transition: transform 0.25s ease;
}
.cp-portal .cp-ps-cart-panel--drawer[hidden]{
	transform: translateX(100%);
	pointer-events: none;
	display: flex !important;
	visibility: hidden;
}
.cp-portal .cp-ps-cart-panel__hd{
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 20px 20px 14px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	flex-shrink: 0;
}
.cp-portal .cp-ps-cart-panel__title{
	font-size: 15px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	margin: 0 0 2px;
	font-family: var(--cp-font-heading, inherit);
}
.cp-portal .cp-ps-cart-panel__note{
	font-size: 12px;
	color: #525252;
	margin: 0;
}
.cp-portal .cp-ps-cart-close{
	background: none;
	border: none;
	color: #525252;
	cursor: pointer;
	padding: 10px;
	min-width: 44px;
	min-height: 44px;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.cp-portal .cp-ps-cart-close:hover{
	background: #f5f5f5;
	color: #0a0a0a;
}
.cp-portal .cp-ps-cart-items{
	padding: 0 20px;
	flex: 1;
	overflow-y: auto;
}
.cp-portal .cp-ps-cart-item{
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
}
.cp-portal .cp-ps-cart-item:last-child{
	border-bottom: none;
}
.cp-portal .cp-ps-cart-item__thumb{
	width: 52px;
	height: 52px;
	object-fit: cover;
	border-radius: 7px;
	flex-shrink: 0;
	background: #fafafa;
}
.cp-portal .cp-ps-cart-item__info{
	flex: 1;
	min-width: 0;
}
.cp-portal .cp-ps-cart-item__name{
	font-size: 13px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-ps-cart-item__price{
	font-size: 12px;
	color: #525252;
	margin-top: 2px;
}
.cp-portal .cp-ps-cart-item__remove{
	background: none;
	border: none;
	color: #525252;
	cursor: pointer;
	padding: 10px;
	border-radius: 4px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
}
.cp-portal .cp-ps-cart-item__remove:hover{
	color: #dc2626;
	background: #fee2e2;
}
.cp-portal .cp-ps-cart-footer{
	padding: 14px 20px;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.06));
	flex-shrink: 0;
}
.cp-portal .cp-ps-cart-total-row{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}
.cp-portal .cp-ps-cart-total-label{
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #525252;
}
.cp-portal .cp-ps-cart-total-value{
	font-size: 18px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-ps-cart-email-note{
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 12px;
	color: #525252;
	margin: 0 0 14px;
	line-height: 1.5;
}
.cp-portal .cp-ps-paypal-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 44px;
	padding: 12px 20px;
	background: #0070ba;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.12s;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
}
.cp-portal .cp-ps-paypal-btn:hover{
	background: #005ea6;
}
.cp-portal .cp-ps-paypal-btn:disabled{
	opacity: 0.5;
	cursor: not-allowed;
}
.cp-portal .cp-ps-checkout-btn--stripe{
	background: #635bff !important;
}
.cp-portal .cp-ps-checkout-btn--stripe:hover{
	background: #4f46e5 !important;
}
.cp-portal .cp-ps-cart-fab{
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 9997;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 12px 20px;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: #fff;
	border: none;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	transition: all 0.15s;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
}
.cp-portal .cp-ps-cart-fab:hover{
	transform: translateY(-2px);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3);
}
.cp-portal .cp-ps-cart-fab[hidden]{
	display: none !important;
}
.cp-portal .cp-ps-cart-fab svg{
	flex-shrink: 0;
}
.cp-portal #cp-ps-cart-fab-count{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	background: #fff;
	color: var(--cp-heading-text, #0a0a0a);
	border-radius: 10px;
	font-size: 11px;
	font-weight: 800;
}
.cp-portal .cp-ps-picker-overlay{
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--cp-shell-popup-pad-x, 20px);
	box-sizing: border-box;
}
.cp-portal .cp-ps-picker-overlay[hidden]{
	display: none !important;
}
.cp-portal .cp-ps-picker{
	background: var(--cp-card-bg, #fff);
	border-radius: var(--cp-radius-card, 16px);
	width: 100%;
	max-width: 400px;
	max-height: 80vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--cp-shell-modal-card-shadow, 0 12px 40px rgba(15, 23, 42, 0.12));
	border: 1px solid var(--cp-border, #e5e5e5);
	box-sizing: border-box;
}
.cp-portal .cp-ps-picker__hd{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid #e5e5e5;
	gap: 12px;
}
.cp-portal .cp-ps-picker__title{
	font-size: 16px;
	font-weight: 800;
	margin: 0;
	color: var(--cp-heading-text, #0a0a0a);
	font-family: var(--cp-font-heading, inherit);
}
.cp-portal .cp-ps-picker__close{
	background: none;
	border: none;
	color: #525252;
	cursor: pointer;
	padding: 10px;
	flex-shrink: 0;
	margin-top: 2px;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.cp-portal .cp-ps-picker__close:hover{
	color: #0a0a0a;
}
.cp-portal .cp-ps-picker__body{
	overflow-y: auto;
	padding: 6px 0;
	flex: 1;
}
.cp-portal .cp-ps-picker__item{
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 44px;
	padding: 12px 20px;
	border: none;
	background: #fff;
	cursor: pointer;
	transition: background 0.1s;
	text-align: left;
	font-family: inherit;
	gap: 12px;
}
.cp-portal .cp-ps-picker__item:hover{
	background: #fafafa;
}
.cp-portal .cp-ps-picker__item.is-added{
	background: #f0fdf4;
}
.cp-portal .cp-ps-picker__item-info{
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
}
.cp-portal .cp-ps-picker__item-name{
	font-size: 14px;
	font-weight: 600;
	color: #0a0a0a;
}
.cp-portal .cp-ps-picker__item-desc{
	font-size: 12px;
	color: #525252;
}
.cp-portal .cp-ps-picker__item-price{
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-primary, #0a0a0a);
	white-space: nowrap;
	flex-shrink: 0;
}
.cp-portal .cp-ps-picker__item.is-added .cp-ps-picker__item-price{
	color: #059669;
}

@media (max-width: 640px){
	.cp-portal .cp-po-stepper{
		padding: 0 12px 14px;
		gap: 0;
	}
	.cp-portal .cp-po-step__label{
		font-size: 9px;
	}
	.cp-portal .cp-po-card__header{
		padding: 14px 14px;
	}
	.cp-portal .cp-po-card__total{
		font-size: 16px;
	}
	.cp-portal .cp-po-items{
		padding: 0 14px 14px;
	}
	.cp-portal .cp-ps-grid{
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.cp-portal .cp-ps-img-grid{
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
}

/* PS-28 — print picker bottom sheet + full-width cart (§0.4 tablet/phone) */
@media (max-width: 1024px){
	.cp-portal .cp-ps-picker-overlay{
		align-items: flex-end;
		justify-content: stretch;
		padding: 0;
		padding-top: max(12px, env(safe-area-inset-top, 0));
	}
	.cp-portal .cp-ps-picker{
		max-width: 100%;
		max-height: min(88vh, 720px);
		border-radius: var(--cp-shell-sheet-top-radius, 16px) var(--cp-shell-sheet-top-radius, 16px) 0 0;
		border-left: none;
		border-right: none;
		border-bottom: none;
		box-shadow: var(--cp-shell-bottom-sheet-shadow, 0 -10px 36px rgba(15, 23, 42, 0.16));
	}
	.cp-portal .cp-ps-picker__body{
		padding-bottom: max(8px, env(safe-area-inset-bottom, 0));
	}
	.cp-portal .cp-ps-picker__hd{
		padding-top: var(--cp-shell-popup-header-pad-y, 16px);
	}
	.cp-portal .cp-ps-cart-panel--drawer{
		width: 100%;
		max-width: 100%;
		border-left: none;
		border-radius: 0;
	}
	.cp-portal .cp-ps-cart-footer{
		padding-bottom: var(--cp-shell-mobile-popup-pad-bottom, calc(28px + max(12px, env(safe-area-inset-bottom, 0px))));
	}
}


/* --- PT-21 Gift card purchase (public [cp_gift_card]; root .cp-gc-purchase) --- */

.cp-gc-purchase{
	box-sizing: border-box;
	--cp-gc-accent: #0a0a0a;
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	color: var(--cp-heading-text, #1d2327);
}

.cp-gc-purchase *,
.cp-gc-purchase *::before,
.cp-gc-purchase *::after{
	box-sizing: inherit;
}

.cp-gc-purchase .cp-gc-wrap{
	max-width: 560px;
	margin: 40px auto;
}

.cp-gc-purchase .cp-gc-card{
	background: var(--cp-card-bg, #fff);
	border: 1px solid var(--cp-border, #e5e5e5);
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	overflow: hidden;
}

.cp-gc-purchase .cp-gc-header{
	background: var(--cp-card-bg, #fff);
	border-bottom: 1px solid var(--cp-border, #e5e7eb);
	padding: 28px 24px;
	text-align: center;
	color: var(--cp-heading-text, #111827);
}

.cp-gc-purchase .cp-gc-header h2{
	margin: 0 0 6px;
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	font-family: var(--cp-font-heading, inherit);
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.cp-gc-purchase .cp-gc-header p{
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--cp-muted-62, #525252);
}

.cp-gc-purchase .cp-gc-body{
	padding: 24px 22px 28px;
}

.cp-gc-purchase .cp-gc-field{
	margin-bottom: 18px;
}

.cp-gc-purchase .cp-gc-field label{
	display: block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cp-muted-62, #374151);
	margin-bottom: 8px;
}

.cp-gc-purchase .cp-gc-field__hint{
	display: block;
	margin-top: 8px;
	margin-bottom: 8px;
	font-size: 12px;
	text-transform: none;
	font-weight: 500;
	color: var(--cp-muted-62, #6b7280);
	line-height: 1.4;
}

.cp-gc-purchase .cp-gc-field input,
.cp-gc-purchase .cp-gc-field textarea{
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--cp-border, #d4d4d4);
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.4;
	font-family: inherit;
	background: var(--cp-card-bg, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cp-gc-purchase .cp-gc-field textarea{
	min-height: 88px;
	resize: vertical;
	padding-top: 12px;
}

.cp-gc-purchase .cp-gc-field input:focus,
.cp-gc-purchase .cp-gc-field textarea:focus{
	outline: none;
	border-color: var(--cp-gc-accent, #0a0a0a);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cp-gc-accent, #0a0a0a) 18%, transparent);
}

@supports not (color: color-mix(in srgb, red, blue)){
	.cp-gc-purchase .cp-gc-field input:focus,
	.cp-gc-purchase .cp-gc-field textarea:focus{
		box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.14);
	}
}

.cp-gc-purchase .cp-gc-presets{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}

.cp-gc-purchase .cp-gc-preset{
	min-height: 44px;
	padding: 10px 18px;
	border: 2px solid var(--cp-border, #e5e7eb);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	background: var(--cp-card-bg, #fff);
	color: var(--cp-heading-text, #0a0a0a);
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
	font-family: inherit;
	line-height: 1.2;
}

.cp-gc-purchase .cp-gc-preset:hover,
.cp-gc-purchase .cp-gc-preset.is-active{
	border-color: var(--cp-gc-accent, #0a0a0a);
	color: var(--cp-gc-accent, #0a0a0a);
	background: color-mix(in srgb, var(--cp-gc-accent, #0a0a0a) 6%, var(--cp-card-bg, #fff));
}

@supports not (color: color-mix(in srgb, red, blue)){
	.cp-gc-purchase .cp-gc-preset:hover,
	.cp-gc-purchase .cp-gc-preset.is-active{
		background: rgba(10, 10, 10, 0.04);
	}
}

.cp-gc-purchase .cp-gc-row{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.cp-gc-purchase .cp-gc-pp-wrap{
	margin-top: 12px;
	min-height: 52px;
}

.cp-gc-purchase .cp-gc-msg{
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	margin-top: 14px;
	line-height: 1.45;
}

.cp-gc-purchase .cp-gc-msg[hidden]{
	display: none !important;
}

.cp-gc-purchase .cp-gc-msg--ok{
	display: block;
	background: #dcfce7;
	color: #166534;
	border: 1px solid #bbf7d0;
}

.cp-gc-purchase .cp-gc-msg--err{
	display: block;
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

.cp-gc-purchase .cp-gc-done{
	text-align: center;
	padding: 40px 28px;
}

.cp-gc-purchase .cp-gc-done[hidden]{
	display: none !important;
}

.cp-gc-purchase .cp-gc-done h3{
	font-size: clamp(1.1rem, 1rem + 0.35vw, 1.25rem);
	margin: 0 0 10px;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	font-family: var(--cp-font-heading, inherit);
}

.cp-gc-purchase .cp-gc-done p{
	color: var(--cp-muted-62, #6b7280);
	font-size: 14px;
	line-height: 1.5;
	margin: 0 0 20px;
}

.cp-gc-purchase .cp-gc-done .cp-gc-code{
	font-family: ui-monospace, monospace;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0.1em;
	color: var(--cp-gc-accent, #0a0a0a);
	padding: 14px 20px;
	background: #fef2f2;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
	border-radius: 10px;
	display: inline-block;
}

.cp-gc-purchase .cp-gc-another{
	margin-top: 20px;
	min-height: 44px;
	padding: 12px 24px;
	background: var(--cp-gc-accent, #0a0a0a);
	color: #fff;
	border: none;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	line-height: 1.2;
	transition: opacity 0.15s ease, transform 0.1s ease;
}

.cp-gc-purchase .cp-gc-another:hover{
	opacity: 0.92;
}

.cp-gc-purchase .cp-gc-another:focus-visible{
	outline: 2px solid var(--cp-gc-accent, #0a0a0a);
	outline-offset: 3px;
}

.cp-gc-purchase .cp-gc-paypal-unavail{
	padding: 16px;
	text-align: center;
	background: #fef3c7;
	border: 1px solid #fde68a;
	border-radius: 10px;
	color: #92400e;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
}

.cp-gc-purchase .cp-gc-body[hidden]{
	display: none !important;
}

@media (max-width: 480px){
	.cp-gc-purchase .cp-gc-row{
		grid-template-columns: 1fr;
	}
	.cp-gc-purchase .cp-gc-wrap{
		margin: 24px 12px;
	}
	.cp-gc-purchase .cp-gc-body{
		padding: 20px 16px 24px;
	}
}
/* --- PT-22 Public booking / intake / contact forms (shortcodes) ---------------- */
/* Booking: --bf-accent / --bf-radius on #cp-bf-root. Contact: --cp-cf-* on wrap. */

.cp-bf{--bf-accent:#0a0a0a;--bf-radius:8px;max-width:680px;margin:0 auto;font-family:var(--cp-font-body,Montserrat,"Segoe UI",system-ui,sans-serif);color:#0a0a0a !important;background:#fff !important;border-radius:calc(var(--bf-radius) + 4px);padding:32px 28px;box-shadow:0 1px 4px rgba(0,0,0,.06);border:1px solid var(--cp-border,#e5e7eb);}
	.cp-bf h2,.cp-bf h3,.cp-bf h4,.cp-bf label,.cp-bf p,.cp-bf span,.cp-bf div,.cp-bf code,.cp-bf strong{color:inherit !important;}
	@media(max-width:640px){.cp-bf{padding:20px 16px;}}
	.cp-bf *{box-sizing:border-box;}

	/* Context */
	.cp-bf-context{text-align:center;padding:24px 20px 20px;margin-bottom:4px;border:none;box-shadow:none;background:transparent;}
	.cp-bf-context__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--bf-accent);margin-bottom:4px;display:block;}
	.cp-bf-context__title{font-size:clamp(1.4rem,1rem + 1.2vw,2rem);font-weight:800;margin:0 0 6px;line-height:1.2;color:#0a0a0a !important;}
	.cp-bf-context__meta{display:flex;gap:12px;justify-content:center;font-size:13px;color:#525252;margin-top:6px;}
	.cp-bf-context__meta span::before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:#d4d4d4;margin-right:8px;vertical-align:middle;}

	/* Progress */
	.cp-bf-progress{height:4px;background:#e5e5e5;border-radius:99px;margin:0 0 6px;overflow:hidden;}
	.cp-bf-progress__bar{height:100%;background:var(--bf-accent);border-radius:99px;transition:width .35s ease;width:0%;}

	/* Step pills */
	.cp-bf-step-indicators{display:flex;gap:6px;justify-content:center;padding:8px 0 20px;flex-wrap:wrap;}
	.cp-bf-pill{padding:4px 14px;font-size:11px;font-weight:600;border-radius:999px;border:1px solid #e5e5e5;color:#525252;background:transparent;cursor:default;transition:all .2s;}
	.cp-bf-pill.active{background:var(--bf-accent);color:#fff !important;border-color:var(--bf-accent);}
	.cp-bf-pill.done{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0;}

	/* Steps */
	.cp-bf-step{padding:24px;background:#fff;border:1px solid #e5e5e5;border-radius:var(--bf-radius);margin-bottom:16px;}
	.cp-bf-step__title{font-size:18px;font-weight:700;margin:0 0 6px;color:#0a0a0a !important;}
	.cp-bf-step__desc{font-size:13px;color:#525252;margin:0 0 20px;line-height:1.55;}

	/* Fields */
	.cp-bf-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
	.cp-bf-field{grid-column:span 2;}
	.cp-bf-field--half{grid-column:span 1;}
	@media(max-width:640px){.cp-bf-field--half{grid-column:span 2;}}
	.cp-bf-label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:#404040;}
	.cp-bf-req{color:#dc2626;font-weight:700;}
	.cp-bf-input,.cp-bf-select,.cp-bf-textarea{width:100%;padding:10px 14px;font-size:14px;border:1px solid #d4d4d4;border-radius:var(--bf-radius);background:#fff;color:#0a0a0a;transition:border-color .15s,box-shadow .15s;}
	.cp-bf-input:focus,.cp-bf-select:focus,.cp-bf-textarea:focus{border-color:var(--bf-accent);outline:0;box-shadow:0 0 0 3px rgba(10,10,10,.1);}
	.cp-bf-textarea{min-height:80px;resize:vertical;line-height:1.5;}
	.cp-bf-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23404040' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;}
	.cp-bf-help{font-size:11px;color:#525252;margin-top:3px;}
	.cp-bf-error-msg{font-size:11px;color:#dc2626;margin-top:3px;display:none;}
	.cp-bf-field.has-error .cp-bf-input,.cp-bf-field.has-error .cp-bf-select,.cp-bf-field.has-error .cp-bf-textarea{border-color:#dc2626;}
	.cp-bf-field.has-error .cp-bf-error-msg{display:block;}

	/* Radio/checkbox groups */
	.cp-bf-choice{display:flex;flex-direction:column;gap:6px;}
	.cp-bf-choice label{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e5e5e5;border-radius:var(--bf-radius);cursor:pointer;font-size:13px;transition:all .12s;}
	.cp-bf-choice label:hover{border-color:#d4d4d4;background:#fafafa;}
	.cp-bf-choice input{accent-color:var(--bf-accent);width:16px;height:16px;flex-shrink:0;}

	/* Logged in state */
	.cp-bf-logged-in{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--bf-radius);}
	.cp-bf-logged-in__icon{width:32px;height:32px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;}
	.cp-bf-logged-in__text{font-size:13px;margin:0 0 2px;font-weight:600;}
	.cp-bf-logged-in__hint{font-size:11px;color:#525252;margin:0;}
	.cp-bf-signin-hint{font-size:12px;color:#525252;margin:14px 0 0;text-align:center;}
	.cp-bf-signin-hint a{color:var(--bf-accent);font-weight:600;}

	/* Navigation */
	.cp-bf-nav{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid #fafafa;}

	/* Buttons */
	.cp-bf .cp-bf-btn{border-radius:var(--bf-radius);}
	.cp-bf.cp-bf--btn-rounded .cp-bf-btn{border-radius:999px;}

	.cp-bf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;min-height:36px;font-size:12px;font-weight:600;font-family:var(--cp-font-button,var(--cp-font-body,inherit));letter-spacing:normal;text-transform:none;border:none;cursor:pointer;transition:background .15s ease,border-color .15s ease;white-space:nowrap;}
	
	.cp-bf-btn--primary{background:var(--bf-accent);color:#fff;border:1px solid var(--bf-accent);}
	.cp-bf-btn--primary:hover{filter:brightness(1.08);}
	.cp-bf-btn--primary:disabled{opacity:.5;cursor:not-allowed;}
	.cp-bf-btn--ghost{background:transparent;color:#525252;border:1px solid #e5e5e5;}
	.cp-bf-btn--ghost:hover{background:#fafafa;color:#0a0a0a;}

	/* Calendar */
	.cp-bf-calendar-wrap{display:grid;grid-template-columns:1fr 200px;gap:16px;margin-bottom:16px;}
	@media(max-width:640px){.cp-bf-calendar-wrap{grid-template-columns:1fr;}}
	.cp-bf-calendar{border:1px solid #e5e5e5;border-radius:var(--bf-radius);padding:14px;background:#fff;}
	.cp-bf-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
	.cp-bf-calendar__month{font-size:14px;font-weight:700;}
	.cp-bf-calendar__nav{background:none;border:1px solid #e5e5e5;border-radius:6px;width:30px;height:30px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .12s;}
	.cp-bf-calendar__nav:hover{background:#fafafa;}
	.cp-bf-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;}
	.cp-bf-cal-head{font-size:10px;font-weight:700;color:#525252;text-transform:uppercase;padding:4px 0;}
	.cp-bf-cal-day{padding:8px 4px;font-size:12px;border-radius:6px;cursor:pointer;transition:all .1s;border:1px solid transparent;}
	.cp-bf-cal-day:hover:not(.disabled):not(.empty){background:#fafafa;}
	.cp-bf-cal-day.selected{background:var(--bf-accent);color:#fff !important;font-weight:700;}
	.cp-bf-cal-day.disabled{color:#d4d4d4 !important;cursor:not-allowed;}
	.cp-bf-cal-day.empty{cursor:default;}
	.cp-bf-cal-day.today{border-color:var(--bf-accent);}

	/* Time slots */
	.cp-bf-timeslots{border:1px solid #e5e5e5;border-radius:var(--bf-radius);padding:14px;background:#fff;max-height:320px;overflow-y:auto;}
	.cp-bf-timeslots__hint{font-size:12px;color:#525252;text-align:center;margin:20px 0;}
	.cp-bf-slot{display:block;width:100%;padding:8px 12px;margin-bottom:4px;border:1px solid #e5e5e5;border-radius:6px;font-size:12px;font-weight:600;text-align:center;cursor:pointer;background:#fff;transition:all .12s;}
	.cp-bf-slot:hover{border-color:var(--bf-accent);background:#fef2f2;}
	.cp-bf-slot.selected{background:var(--bf-accent);color:#fff !important;border-color:var(--bf-accent);}
	.cp-bf-slot.taken{opacity:.4;cursor:not-allowed;text-decoration:line-through;}

	/* Contract */
	.cp-bf-contract-body{max-height:300px;overflow-y:auto;padding:16px;border:1px solid #e5e5e5;border-radius:var(--bf-radius);background:#fafafa;font-size:13px;line-height:1.65;margin-bottom:16px;}
	.cp-bf-contract-sign{padding:16px;border:1px solid #e5e5e5;border-radius:var(--bf-radius);background:#fff;}
	.cp-bf-contract-agree{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;}
	.cp-bf-contract-agree input{width:16px;height:16px;accent-color:var(--bf-accent);}

	/* Payment */
	.cp-bf-payment-summary{padding:16px;border:1px solid #e5e5e5;border-radius:var(--bf-radius);margin-bottom:16px;background:#fafafa;}
	.cp-bf-payment-row{display:flex;justify-content:space-between;font-size:14px;}
	.cp-bf-coupon-box{margin-bottom:16px;}
	.cp-bf-coupon-input-wrap{display:flex;gap:8px;align-items:stretch;}
	.cp-bf-coupon-row{margin-top:4px;}
	.cp-bf-paypal-container{min-height:50px;}
	.cp-bf-payment-error{padding:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px;margin-top:12px;}

	/* Confirmation */
	.cp-bf-confirmation{text-align:center;padding:40px 24px;}
	.cp-bf-done-icon{width:56px;height:56px;border-radius:50%;background:#16a34a;color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}

	/* Loading */
	.cp-bf-loading{position:absolute;inset:0;background:rgba(255,255,255,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;border-radius:var(--bf-radius);}
	.cp-bf-spinner{width:32px;height:32px;border:3px solid #e5e5e5;border-top-color:var(--bf-accent);border-radius:50%;animation:cp-bf-spin .6s linear infinite;margin-bottom:12px;}
	@keyframes cp-bf-spin{to{transform:rotate(360deg);}}
	.cp-bf-loading p{font-size:13px;color:#525252;}

	.cp-bf-error{padding:20px;text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;}

	/* Booking calendar (photographer hard-baked step) */
	.cp-bf-booking-calendar{margin-bottom:16px;}
	.cp-bf-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
	.cp-bf-cal-month-label{font-size:16px;font-weight:700;color:#0a0a0a;}
	.cp-bf-cal-nav{background:none;border:1px solid #e5e5e5;border-radius:6px;width:34px;height:34px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#525252;transition:all .15s;}
	.cp-bf-cal-nav:hover{background:#fafafa;color:#0a0a0a;}
	.cp-bf-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
	.cp-bf-cal-head{text-align:center;font-size:11px;font-weight:700;color:#525252;text-transform:uppercase;padding:6px 0;}
	.cp-bf-cal-day{text-align:center;padding:6px 2px;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .12s;color:#404040;}
	.cp-bf-cal-day-inner{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;min-height:40px;}
	.cp-bf-cal-day__num{line-height:1.2;}
	.cp-bf-gh-sun{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin:0;border:none;border-radius:6px;background:rgba(245,158,11,.18);color:#b45309;cursor:pointer;flex-shrink:0;transition:background .12s;}
	.cp-bf-gh-sun:hover{background:rgba(245,158,11,.32);}
	.cp-bf-gh-sun svg{display:block;}
	.cp-bf-cal-day.disabled .cp-bf-gh-sun{opacity:.9;}
	.cp-bf-cal-day:hover:not(.disabled):not(.empty):not(.selected){background:#fafafa;}
	.cp-bf-cal-day.selected{background:var(--bf-accent,#0a0a0a);color:#fff !important;}
	.cp-bf-cal-day.selected .cp-bf-gh-sun{background:rgba(255,255,255,.2);color:#fff;}
	.cp-bf-cal-day.disabled{color:#d4d4d4 !important;cursor:not-allowed;opacity:.5;}
	.cp-bf-cal-day.empty{cursor:default;}
	.cp-bf-gh-modal{position:fixed;inset:0;z-index:100050;display:none;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;}
	.cp-bf-gh-modal.is-open{display:flex;}
	.cp-bf-gh-modal__backdrop{position:absolute;inset:0;background:var(--cp-shell-scrim,rgba(15,23,42,.45));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
	.cp-bf-gh-modal__panel{position:relative;z-index:1;width:100%;max-width:420px;max-height:min(88vh,560px);overflow:auto;background:var(--cp-card-bg,#fff);border-radius:var(--cp-radius-card,16px);box-shadow:var(--cp-shell-modal-card-shadow,0 12px 40px rgba(15,23,42,.12));border:1px solid var(--cp-border,#e5e5e5);padding:20px 20px 16px;text-align:left;box-sizing:border-box;}
	.cp-bf-gh-modal__close{position:absolute;top:10px;right:12px;width:36px;height:36px;border:none;border-radius:var(--cp-radius-global,10px);background:transparent;font-size:22px;line-height:1;cursor:pointer;color:#525252;}
	.cp-bf-gh-modal__close:hover{background:#f4f4f5;color:#0a0a0a;}
	.cp-bf-gh-modal__title{margin:0 0 10px;font-size:18px;font-weight:700;color:#0a0a0a;padding-right:32px;}
	.cp-bf-gh-modal__body{font-size:14px;line-height:1.55;color:#404040;}
	.cp-bf-gh-modal__body p{margin:0 0 10px;}
	.cp-bf-gh-modal__times{margin:12px 0;padding:12px;border-radius:10px;background:#fffbeb;border:1px solid #fde68a;}
	.cp-bf-gh-modal__row{font-size:13px;margin:4px 0;color:#78350f;}
	.cp-bf-gh-modal__row strong{color:#92400e;}
	.cp-bf-gh-modal__err{color:#b91c1c;font-size:14px;}
	.cp-bf-booking-slots{margin-top:20px;padding-top:16px;border-top:1px solid #e5e5e5;}
	.cp-bf-slots-title{font-size:14px;font-weight:600;color:#0a0a0a;margin:0 0 12px;}
	.cp-bf-slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;}
	.cp-bf-slot{padding:10px 14px;border:1.5px solid #e5e5e5;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#404040;cursor:pointer;transition:all .15s;text-align:center;}
	.cp-bf-slot:hover{border-color:#525252;background:#fafafa;}
	.cp-bf-slot.selected{border-color:var(--bf-accent,#0a0a0a);background:var(--bf-accent,#0a0a0a);color:#fff !important;}

	@media(max-width:1024px){
		.cp-bf-gh-modal{align-items:flex-end;padding:0;padding-top:max(12px,env(safe-area-inset-top,0));padding-left:0;padding-right:0;padding-bottom:0;}
		.cp-bf-gh-modal__panel{max-width:none;width:100%;max-height:min(88vh,720px);border-radius:var(--cp-shell-sheet-top-radius,16px) var(--cp-shell-sheet-top-radius,16px) 0 0;border-left:none;border-right:none;border-bottom:none;box-shadow:var(--cp-shell-bottom-sheet-shadow,0 -10px 36px rgba(15,23,42,.16));padding:20px 20px var(--cp-shell-mobile-popup-pad-bottom,calc(28px + max(12px,env(safe-area-inset-bottom,0px))));}
	}


.cp-bf{
	position: relative;
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
}
.cp-bf .cp-bf-btn{
	min-height: 44px;
	padding: 10px 18px;
	font-size: 13px;
}
.cp-bf .cp-bf-pill{
	min-height: 36px;
	padding: 8px 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.cp-bf .cp-bf-input,
.cp-bf .cp-bf-select,
.cp-bf .cp-bf-textarea{
	min-height: 44px;
}
.cp-bf .cp-bf-textarea{
	min-height: 88px;
}
.cp-bf .cp-bf-calendar__nav,
.cp-bf .cp-bf-cal-nav{
	min-width: 44px;
	min-height: 44px;
	width: auto;
	height: auto;
	padding: 0 10px;
}
.cp-bf .cp-bf-slot{
	min-height: 44px;
}
.cp-bf .cp-bf-gh-modal__close{
	min-width: 44px;
	min-height: 44px;
}
.cp-bf .cp-bf-coupon-code-input{
	text-transform: uppercase;
	flex: 1;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--cp-border, #d4d4d4);
	border-radius: var(--bf-radius, 8px);
	font-size: 13px;
	box-sizing: border-box;
	font-family: inherit;
}
.cp-bf .cp-bf-btn--coupon{
	background: var(--bf-accent, #0a0a0a);
	color: #fff;
	padding: 0 18px;
	min-height: 44px;
	border-radius: var(--bf-radius, 8px);
	font-size: 13px;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}
.cp-bf .cp-bf-btn--gc{
	background: #7c3aed;
	color: #fff;
	padding: 0 18px;
	min-height: 44px;
	border-radius: var(--bf-radius, 8px);
	font-size: 13px;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}
.cp-bf #cp-bf-coupon-msg,
.cp-bf #cp-bf-gc-msg{
	font-size: 12px;
	margin-top: 6px;
}
.cp-bf #cp-bf-coupon-applied{
	margin-top: 8px;
	padding: 10px 14px;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: var(--bf-radius, 8px);
	font-size: 13px;
}
.cp-bf #cp-bf-gc-applied{
	margin-top: 8px;
	padding: 10px 14px;
	background: #f5f3ff;
	border: 1px solid #c4b5fd;
	border-radius: var(--bf-radius, 8px);
	font-size: 13px;
}
.cp-bf .cp-bf-coupon-remove,
.cp-bf .cp-bf-gc-remove{
	background: none;
	border: none;
	color: #dc2626;
	cursor: pointer;
	font-size: 12px;
	margin-left: 8px;
	text-decoration: underline;
	min-height: 44px;
	padding: 4px 8px;
}
.cp-bf .cp-bf-payment-row--tax{
	font-size: 13px;
	color: #737373;
}
.cp-bf .cp-bf-total-row{
	border-top: 1px solid var(--cp-border, #e5e7eb);
	padding-top: 8px;
	margin-top: 4px;
}
.cp-bf .cp-bf-total-row .cp-bf-total-label{
	font-weight: 600;
}
.cp-bf .cp-bf-total-row #cp-bf-final-amount{
	font-size: 15px;
}
.cp-bf #cp-bf-discount-amount{
	color: #16a34a;
}
.cp-bf .cp-bf-gc-box{
	margin-bottom: 16px;
}
.cp-bf .cp-bf-submit-error{
	display: none;
	margin: 16px 0;
	padding: 12px 16px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-left: 4px solid #dc2626;
	border-radius: 8px;
	color: #991b1b;
	font-size: 13px;
	font-weight: 600;
}
.cp-bf .cp-bf-payment-error{
	padding: 12px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: 6px;
	color: #dc2626;
	font-size: 13px;
	margin-top: 12px;
}


/* [contact_form] */
.cp-cf{
	--cp-cf-accent: #0a0a0a;
	--cp-cf-radius: 8px;
	--cp-cf-btn-radius: 8px;
	max-width: 600px;
	margin: 0 auto;
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	box-sizing: border-box;
}
.cp-cf *,
.cp-cf *::before,
.cp-cf *::after{
	box-sizing: inherit;
}
.cp-cf-field{
	margin-bottom: 16px;
}
.cp-cf-label{
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	margin-bottom: 6px;
}
.cp-cf-label .cp-cf-req{
	color: #dc2626;
	margin-left: 2px;
}
.cp-cf-input,
.cp-cf-select,
.cp-cf-textarea{
	width: 100%;
	box-sizing: border-box;
	min-height: 44px;
	padding: 10px 14px;
	border: 1.5px solid var(--cp-border, #d4d4d4);
	border-radius: var(--cp-cf-radius);
	font-size: 14px;
	font-family: inherit;
	color: var(--cp-heading-text, #0a0a0a);
	background: var(--cp-card-bg, #fff);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cp-cf-input:focus,
.cp-cf-select:focus,
.cp-cf-textarea:focus{
	border-color: var(--cp-cf-accent);
	outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cp-cf-accent) 18%, transparent);
}
@supports not (color: color-mix(in srgb, red, blue)){
	.cp-cf-input:focus,
	.cp-cf-select:focus,
	.cp-cf-textarea:focus{
		box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.12);
	}
}
.cp-cf-textarea{
	min-height: 120px;
	resize: vertical;
}
.cp-cf-select{
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23404040' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.cp-cf-submit{
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 12px 16px;
	border: none;
	border-radius: var(--cp-cf-btn-radius);
	background: var(--cp-cf-accent);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: opacity 0.15s ease;
	margin-top: 8px;
	font-family: inherit;
}
.cp-cf-submit:hover{
	opacity: 0.92;
}
.cp-cf-submit:disabled{
	opacity: 0.5;
	cursor: not-allowed;
}
.cp-cf-success{
	padding: 20px;
	border-radius: var(--cp-cf-radius);
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	text-align: center;
}
.cp-cf-success h3{
	color: #166534;
	font-size: 16px;
	margin: 0 0 4px;
}
.cp-cf-success p{
	color: #15803d;
	font-size: 14px;
	margin: 0;
}
.cp-cf #cp-cf-success{
	display: none;
}
.cp-cf-error{
	display: none;
	padding: 10px 14px;
	border-radius: var(--cp-cf-radius);
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 12px;
}


.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: var(--cp-text-base);
	line-height: 1.45;
	color: var(--cp-muted-50);
}

.cp-portal .cp-section-link{
	font-size: var(--cp-text-base);
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}

.cp-portal .cp-nav-back{
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
	color: var(--cp-muted-62, #525252) !important;
	text-decoration: none !important;
	margin-bottom: 12px !important;
}
.cp-portal .cp-nav-back:hover{
	color: var(--cp-brand, #0a0a0a) !important;
}
.cp-portal .cp-nav-back svg{
	width: 16px !important;
	height: 16px !important;
}

.cp-portal .cp-muted{
	color: var(--cp-muted-62);
}

.cp-portal .cp-sub{
	display: block;
	margin-top: 4px;
	font-size: var(--cp-text-base);
	color: var(--cp-muted-50);
}

.cp-portal .cp-note{
	margin-top: 8px;
	margin-bottom: 4px;
	font-size: var(--cp-text-base);
	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: var(--cp-shadow-focus);
	border-color: rgba(11,13,16,.34);
}

.cp-portal .cp-card{
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius-global);
	padding: 24px;
	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: var(--cp-radius-global);
		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: var(--cp-radius-global);
	margin: 0 0 14px 0;
	padding: 24px;
	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: 1024px){
	.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: var(--cp-text-base);
	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: var(--cp-radius-pill);
	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: 4px 10px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	border: 0 !important;
	background: #5f6771;
	color: var(--cp-pill-text, #fff) !important;
}

.cp-portal .cp-pill--active,
.cp-portal .cp-pill--booked{
	background: var(--cp-pill-active-bg, #2196F3);
	color: #fff !important;
}
.cp-portal .cp-pill--confirmed{
	background: var(--cp-pill-confirmed-bg, #4CAF50);
	color: #fff !important;
}
.cp-portal .cp-pill--paid{
	background: var(--cp-pill-paid-bg, #388E3C);
	color: #fff !important;
}
.cp-portal .cp-pill--completed{
	background: var(--cp-pill-completed-bg, #009688);
	color: #fff !important;
}
.cp-portal .cp-pill--delivered{
	background: var(--cp-pill-delivered-bg, #00796B);
	color: #fff !important;
}
.cp-portal .cp-pill--paused,
.cp-portal .cp-pill--on-hold{
	background: var(--cp-pill-paused-bg, #757575);
	color: #fff !important;
}
.cp-portal .cp-pill--canceled,
.cp-portal .cp-pill--cancelled{
	background: var(--cp-pill-cancelled-bg, #F44336);
	color: #fff !important;
}
.cp-portal .cp-pill--draft{
	background: var(--cp-pill-draft-bg, #9E9E9E);
	color: #fff !important;
}
.cp-portal .cp-pill--overdue{
	background: var(--cp-pill-overdue-bg, #D32F2F);
	color: #fff !important;
}
.cp-portal .cp-pill--published{
	background: var(--cp-pill-published-bg, #4CAF50);
	color: #fff !important;
}
.cp-portal .cp-pill--doc-type{
	background: rgba(10, 10, 10, .06);
	color: var(--cp-muted-62, #525252) !important;
	border: 1px solid rgba(0, 0, 0, .1) !important;
	text-transform: none;
}

.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 a.crm-btn.crm-btn--primary,
.cp-portal button.crm-btn.crm-btn--primary,
.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: 36px;
	padding: 8px 16px;
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-btn-primary-bg, #0a0a0a);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: #ffffff !important;
	-webkit-text-fill-color: #fff;
	box-shadow: none;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
	width: auto;
	max-width: 100%;
	box-sizing: border-box;
}

/* Full-width CTAs (modals, stacked actions) — opt-in */
.cp-portal .cp-btn.cp-btn--block{
	width: 100%;
	max-width: 100%;
	justify-content: center;
}

.cp-portal .cp-btn.cp-btn--max-320{
	width: 100%;
	max-width: 320px;
}

.cp-portal .cp-btn.cp-btn--max-280{
	max-width: 280px;
}

@media (hover:hover){
	.cp-portal .cp-btn:hover,
	.cp-portal a.crm-btn.crm-btn--primary:hover,
	.cp-portal button.crm-btn.crm-btn--primary: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, #262626);
		border-color: var(--cp-brand-hot, #262626);
		text-decoration: none;
		color: #ffffff !important;
		-webkit-text-fill-color: #fff;
	}
}

.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-faint, rgba(11,13,16,.06));
	border-radius: var(--cp-radius-global, 8px);
	overflow: hidden;
	background: var(--cp-surface);
}

.cp-portal .cp-table thead th{
	background: var(--cp-fill-01);
	color: var(--cp-muted-50);
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	padding: 11px 12px;
	border-bottom: 1px solid var(--cp-border-faint, rgba(11,13,16,.06));
}

.cp-portal .cp-table th,
.cp-portal .cp-table td{
	text-align: left;
	vertical-align: middle;
}

.cp-portal .cp-table td{
	padding: 12px 12px;
	font-size: var(--cp-text-base);
	color: var(--cp-text, #0b0d10);
	border-bottom: 1px solid var(--cp-border-faint, rgba(11,13,16,.04));
}

.cp-portal .cp-table thead th + th,
.cp-portal .cp-table td + td{
	border-left: 0;
}

.cp-portal .cp-table tbody tr:nth-child(even){
	background: var(--cp-fill-01, rgba(11,13,16,.015));
}

.cp-portal .cp-table tbody tr:last-child td{
	border-bottom: 0;
}

@media (hover:hover){
	.cp-portal .cp-table tbody tr:hover td{
		background: rgba(11,13,16, .03);
	}
}

.cp-portal .cp-table td:last-child .cp-cell{
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: block;
}

.cp-portal .cp-table .cp-btn{
	min-height: 36px;
	padding: 9px 13px;
	font-size: var(--cp-text-base);
}

@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: var(--cp-text-base);
		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;
}
}

/* ── Transaction records (client portal) ── */
.cp-portal .cp-txn-stack{
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
}

.cp-portal .cp-txn-card{
	margin: 0;
	padding: 0;
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
	border-radius: var(--cp-radius-input);
	box-shadow: var(--cp-shadow-card);
	overflow: hidden;
	box-sizing: border-box;
}

.cp-portal .cp-txn-card__head{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 12px;
	flex-wrap: wrap;
	padding: 10px 12px 8px;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	background: #eef2f7;
}

.cp-portal .cp-txn-card__date{
	font-size: var(--cp-text-base);
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.25;
}

.cp-portal .cp-txn-card__amount{
	font-size: 1rem;
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.2;
	text-align: right;
	flex: 1 1 auto;
	min-width: 0;
}

.cp-portal .cp-txn-card__amount .cp-sub{
	display: block;
	margin-top: 2px;
	font-size: 10px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
}

.cp-portal .cp-txn-card__body{
	padding: 6px 12px 8px;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.cp-portal .cp-txn-card__row{
	display: grid;
	grid-template-columns: minmax(72px, 96px) minmax(0, 1fr);
	gap: 6px 10px;
	align-items: start;
	padding: 5px 0;
	border-top: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.05));
	font-size: var(--cp-text-base);
	line-height: 1.35;
}

.cp-portal .cp-txn-card__row:first-child{
	border-top: 0;
	padding-top: 0;
}

.cp-portal .cp-txn-card__label{
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--cp-muted-62, #525252);
}

.cp-portal .cp-txn-card__value{
	font-weight: 600;
	color: var(--cp-text, #0b0d10);
	word-break: break-word;
	overflow-wrap: break-word;
	min-width: 0;
}

.cp-portal .cp-txn-card__value a{
	color: var(--cp-brand, #0a0a0a);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cp-portal .cp-txn-card__value a:hover{
	color: var(--cp-brand-hot, #262626);
}

.cp-portal .cp-txn-card__value--mono{
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: var(--cp-text-sm);
	font-weight: 600;
}

@media (max-width: 640px){
	.cp-portal .cp-txn-card__row{
		grid-template-columns: 1fr;
		gap: 3px;
		padding: 7px 0;
	}

	.cp-portal .cp-txn-card__head{
		flex-direction: column;
		align-items: flex-start;
	}

	.cp-portal .cp-txn-card__amount{
		text-align: left;
		width: 100%;
	}
}

.cp-portal .cp-progress{
	margin: 0 0 14px 0;
	padding: 14px 18px;
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11,13,16,.08));
	border-radius: var(--cp-radius-input);
}

.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: var(--cp-text-sm);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cp-muted-62, #525252);
}

.cp-portal .cp-progress__value{
	font-size: var(--cp-text-base);
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal .cp-progress__track{
	height: 10px;
	background: #e8ecf1;
	border-radius: var(--cp-radius-pill);
	overflow: hidden;
	box-shadow: inset 0 1px 2px rgba(10,10,10,.06);
}

.cp-portal .cp-progress__bar{
	display: block;
	height: 100%;
	width: var(--cp-progress, 0%);
	border-radius: var(--cp-radius-pill);
	background: linear-gradient(90deg, var(--cp-brand, #0a0a0a), #c41200, var(--cp-brand-hot, #262626));
	transition: width .5s ease;
}

.cp-portal .cp-project-progress{
	margin: 0 0 14px 0;
	padding: 14px 18px;
	background: var(--cp-surface, #fff);
	border: 1px solid var(--cp-border-faint, rgba(11,13,16,.08));
	border-radius: var(--cp-radius-input);
}

.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: var(--cp-text-sm);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cp-muted-62, #525252);
}

.cp-portal .cp-project-progress__value{
	font-size: var(--cp-text-base);
	font-weight: 800;
	color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal .cp-project-progress__track{
	height: 10px;
	background: #e8ecf1;
	border-radius: var(--cp-radius-pill);
	overflow: hidden;
	box-shadow: inset 0 1px 2px rgba(10,10,10,.06);
}

.cp-portal .cp-project-progress__bar{
	display: block;
	height: 100%;
	width: var(--cp-project-progress, 0%);
	border-radius: var(--cp-radius-pill);
	background: linear-gradient(90deg, #0d9373 0%, #10b981 60%, #34d399 100%);
	transition: width .5s ease;
}

.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: var(--cp-radius-global);
	padding: 16px;
	margin: 0 0 14px 0;
}

@media (max-width: 1024px){
	.cp-portal .cp-summary{
		border-color: var(--cp-border-soft);
		border-radius: var(--cp-radius-global);
		box-shadow: var(--cp-shadow-overlay);
	}
}

.cp-portal .cp-alert{
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius-global);
	background: var(--cp-fill-01);
	padding: 16px 16px;
	margin: 10px 0;
}

.cp-portal .cp-alert--error{
	border-color: rgba(38,38,38,.24);
	background: rgba(38,38,38,.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: var(--cp-text-base);
	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: 1024px){
	.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: var(--cp-radius-global);
	padding: 14px;
	background: #ffffff;
}

.cp-portal .cp-billpay-panel-title{
	margin: 0 0 10px 0;
	font-size: var(--cp-text-base);
	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: 768px){
	.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: 10px;
}

.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-sup{
	padding: 0;
}
body.cp-portal-forms .flatpickr-calendar,
body.cp-portal-forms .ui-datepicker{
	border: 1px solid rgba(22,33,46,.22) !important;
	border-radius: var(--cp-radius-md) !important;
	box-shadow: var(--cp-shadow-overlay) !important;
	font-family: var(--cp-font-body, inherit);
}

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 .ui-datepicker td .ui-state-active,
body.cp-portal-forms .ui-datepicker td .ui-state-highlight{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
}
body.cp-portal-forms .flatpickr-day.selected:hover,
body.cp-portal-forms .flatpickr-day.startRange:hover,
body.cp-portal-forms .flatpickr-day.endRange:hover{
	background: var(--cp-brand-hot, #262626) !important;
	border-color: var(--cp-brand-hot, #262626) !important;
	color: #ffffff !important;
}

@media (max-width: 1024px){
	.cp-portal .cp-sup{
		padding: 0;
	}
}
.cp-portal .cp-support-cta{
	margin: 16px 0 0 0;
	border-radius: var(--cp-radius-md) !important;
	overflow: hidden;
	border: 1px solid rgba(11,15,21,.18);
	min-height: 228px;
	display: flex;
	align-items: flex-end;
	position: relative;
	background-color: #0a0a0a;
	background-size: cover;
	background-position: center;
	box-shadow: var(--cp-shadow-overlay);
}

.cp-portal .cp-support-cta__overlay{
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, rgba(10,14,22,.78) 0%, rgba(10,14,22,.58) 46%, rgba(10,14,22,.40) 100%);
	border-radius: inherit;
	pointer-events: none;
}

.cp-portal .cp-support-cta__inner{
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	padding: 24px;
	position: relative;
	z-index: 1;
}

.cp-portal .cp-support-cta__copy{
	max-width: 640px;
	width: min(640px, 100%);
	min-width: 0;
}

.cp-portal .cp-support-cta__kicker{
	font-size: var(--cp-text-base);
	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{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 8px 16px;
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	background: #ffffff;
	border: 1px solid #ffffff;
	color: #0b0f15 !important;
	box-shadow: none;
	white-space: nowrap;
	border-radius: var(--cp-radius-pill, 999px);
}

@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{
		justify-self: start;
	}
	.cp-portal .cp-action-row__cta .cp-btn{
		width: auto;
	}
	.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: 768px){
	.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-btn{
		width: auto;
	}
}

.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: var(--cp-text-base);
	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: 6px 14px !important;
	min-height: 0 !important;
	border-radius: var(--cp-radius-pill, 999px);
	border: 1px solid #bdc8d6 !important;
	background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	box-shadow: none !important;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	font-size: var(--cp-text-base);
	font-weight: 700;
	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: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #fff !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;
	animation: none;
}

.cp-portal .cp-dashboard-snapshot .cp-snapshot-panel.is-active{
	display: block;
	animation: cpSnapshotFadeIn .2s ease;
}

@keyframes cpSnapshotFadeIn{
	from{ opacity: 0; transform: translateX(6px); }
	to{ opacity: 1; transform: translateX(0); }
}

/* Snapshot prev/next arrows */
.cp-portal .cp-snapshot-arrows{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}

.cp-portal .cp-snapshot-arrow{
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px !important;
	min-height: 30px !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 50% !important;
	border: 1px solid var(--cp-border-faint, rgba(11,13,16,.1)) !important;
	background: var(--cp-surface, #fff) !important;
	color: var(--cp-text, #0a0a0a) !important;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, opacity .15s ease;
	box-shadow: none !important;
	line-height: 1;
	font-size: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.cp-portal .cp-snapshot-arrow:hover:not(:disabled){
	background: var(--cp-fill-01, rgba(11,13,16,.04)) !important;
	border-color: rgba(11,13,16,.18) !important;
	transform: none !important;
}

.cp-portal .cp-snapshot-arrow:disabled{
	cursor: default;
}

.cp-portal .cp-snapshot-arrow svg{
	width: 16px;
	height: 16px;
	stroke: currentColor;
	fill: none;
}

/* Dashboard snapshot sliders — strong contrast (projects + sessions + gallery showcase) */
.cp-portal .cp-dashboard-snapshot .cp-snapshot-arrow:not(:disabled),
.cp-portal .cp-dash-gal-showcase .cp-snapshot-arrow:not(:disabled){
	color: #0a0a0a !important;
	border-color: rgba(10, 10, 10, 0.22) !important;
	opacity: 1 !important;
	box-shadow: var(--cp-shadow-card) !important;
}
.cp-portal .cp-dashboard-snapshot .cp-snapshot-arrow:not(:disabled) svg,
.cp-portal .cp-dash-gal-showcase .cp-snapshot-arrow:not(:disabled) svg{
	stroke-width: 2.25px;
}
.cp-portal .cp-dashboard-snapshot .cp-snapshot-arrow:hover:not(:disabled),
.cp-portal .cp-dash-gal-showcase .cp-snapshot-arrow:hover:not(:disabled){
	background: rgba(10, 10, 10, 0.06) !important;
	border-color: rgba(10, 10, 10, 0.35) !important;
	color: #0a0a0a !important;
}
.cp-portal .cp-dashboard-snapshot .cp-snapshot-arrow:disabled,
.cp-portal .cp-dash-gal-showcase .cp-snapshot-arrow:disabled{
	color: #a3a3a3 !important;
	border-color: rgba(10, 10, 10, 0.1) !important;
	opacity: 1 !important;
}

/* Photographer dashboard: gallery showcase + session snapshot (40/60) */
.cp-portal .cp-dash-photo-split{
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 16px;
	align-items: stretch;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.cp-portal .cp-dash-photo-split--no-galleries{
	grid-template-columns: minmax(0, 1fr);
}

.cp-portal .cp-dash-photo-split__gallery,
.cp-portal .cp-dash-photo-split__sessions{
	min-width: 0;
}

.cp-portal .cp-dash-gal-showcase,
.cp-portal .cp-dash-session-snapshot{
	position: relative;
}

.cp-portal .cp-dash-gal-showcase .cp-section-head,
.cp-portal .cp-dash-session-snapshot .cp-section-head{
	margin-bottom: 8px;
}

.cp-portal .cp-dash-snapshot__title{
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	line-height: 1.35 !important;
	color: var(--cp-muted-62, #525252) !important;
}

.cp-portal .cp-dash-session-headline{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 8px;
}

.cp-portal .cp-dash-session-headline__type{
	margin: 0 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	flex: 1 1 auto;
	min-width: 0;
}

.cp-portal .cp-dash-session-headline__tail{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex-shrink: 0;
	max-width: 100%;
}

.cp-portal .cp-dash-session-cal{
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
	text-decoration: none;
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.1));
	padding: 5px 10px;
	border-radius: var(--cp-radius-md, 8px);
	line-height: 1.25;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	white-space: nowrap;
}

.cp-portal .cp-dash-session-cal:hover{
	color: var(--cp-heading-text, #0a0a0a);
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.04));
	border-color: var(--cp-border, #e5e5e5);
}

.cp-portal .cp-dash-session-cal svg{
	flex-shrink: 0;
}

.cp-portal .cp-dash-session-footnote{
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--cp-muted-62, #737373);
	text-align: left;
}

.cp-portal .cp-dash-session-footnote a{
	color: var(--cp-muted-62, #525252);
	font-weight: 600;
	text-decoration: underline;
}

.cp-portal .cp-dash-session-footnote a:hover{
	color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal .cp-dash-gal-showcase .cp-pill-tabs,
.cp-portal .cp-dash-session-snapshot .cp-pill-tabs{
	margin-bottom: 12px;
}

/* Hidden tab controls (gallery + session snapshot): arrows + swipe still work; no visible pills */
.cp-portal .cp-dash-gal-tablist-sr,
.cp-portal .cp-dash-snapshot-tablist-sr{
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.cp-portal .cp-dash-session-snapshot .cp-tab-swipe-note{
	display: none !important;
}

/* Session snapshot: protect text contrast from theme interference */
.cp-portal .cp-dash-session-snapshot,
.cp-portal .cp-dashboard-snapshot{
	color: var(--cp-text, #262626) !important;
}

.cp-portal .cp-dash-session-snapshot p,
.cp-portal .cp-dashboard-snapshot p{
	color: var(--cp-text, #262626) !important;
	max-width: none !important;
}

/* Session snapshot checklist (retainer/contract/questionnaire) */
.cp-portal .cp-sess-checklist{
	list-style: none !important;
	padding: 0 !important;
	margin: 4px 0 14px !important;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cp-portal .cp-sess-check{
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--cp-text-base);
	font-weight: 500;
	color: var(--cp-text, #262626);
	line-height: 1.4;
}

.cp-portal .cp-sess-check__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	font-size: var(--cp-text-sm);
	flex-shrink: 0;
}

.cp-portal .cp-sess-check__icon--ok{
	background: rgba(5, 150, 105, .12);
	color: #059669;
}

.cp-portal .cp-sess-check__icon--no{
	background: rgba(220, 38, 38, .1);
	color: #dc2626;
}

.cp-portal .cp-sess-check__icon--pending{
	background: rgba(161, 161, 170, .12);
	color: #71717a;
}

/* Session snapshot countdown badges */
.cp-portal .cp-sess-countdown{
	display: inline-flex;
	gap: 5px;
	align-items: center;
	font-size: var(--cp-text-base);
	font-weight: 600;
	padding: 4px 10px;
	border-radius: var(--cp-radius-sm);
	line-height: 1.3;
}

.cp-portal .cp-sess-countdown--future{
	background: rgba(59, 130, 246, .08);
	color: #2563eb;
}

.cp-portal .cp-sess-countdown--soon{
	background: rgba(245, 158, 11, .1);
	color: #d97706;
}

.cp-portal .cp-sess-countdown--today{
	background: rgba(5, 150, 105, .1);
	color: #059669;
}

.cp-portal .cp-sess-countdown--past{
	background: rgba(107, 114, 128, .08);
	color: #6b7280;
}

/* Session snapshot action buttons */
.cp-portal .cp-dash-snapshot__actions{
	display: flex;
	gap: 8px;
	margin-top: 14px;
	flex-wrap: wrap;
}

.cp-portal .cp-dash-snapshot__cta{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: var(--cp-radius-md);
	font-size: var(--cp-text-base);
	font-weight: 600;
	text-decoration: none;
	transition: background .15s ease, box-shadow .15s ease;
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: var(--cp-btn-primary-text, #fff) !important;
}

.cp-portal .cp-dash-snapshot__cta:hover{
	opacity: .92;
	box-shadow: var(--cp-shadow-card);
}

.cp-portal .cp-dash-snapshot__cta svg{
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.cp-portal .cp-dash-snapshot__cta--secondary{
	background: var(--cp-fill-02, rgba(10,10,10,.04));
	color: var(--cp-heading-text, #0a0a0a) !important;
}

.cp-portal .cp-dash-snapshot__cta--secondary:hover{
	background: var(--cp-fill-02, rgba(10,10,10,.08));
}

.cp-portal .cp-dash-gal-slide{
	display: flex;
	flex-direction: column;
	gap: 0;
	min-height: 0;
}

.cp-portal .cp-dash-gal-slide__cover{
	position: relative;
	border-radius: var(--cp-radius-input);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--cp-fill-02, rgba(11, 13, 16, 0.04));
	border: 1px solid var(--cp-border-faint, rgba(11, 13, 16, 0.08));
}

.cp-portal .cp-dash-gal-slide__cover img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cp-portal .cp-dash-gal-slide__cover-placeholder{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--cp-muted-62, #525252);
	opacity: 0.45;
}

.cp-portal .cp-dash-gal-slide__lock{
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(11, 13, 16, 0.35);
	color: #fff;
}

.cp-portal .cp-dash-gal-slide__cover-badge{
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	max-width: calc(100% - 20px);
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	line-height: 1.2 !important;
	padding: 5px 10px !important;
	border-radius: var(--cp-radius-pill) !important;
	box-shadow: var(--cp-shadow-card);
	pointer-events: none;
}

.cp-portal .cp-dash-gal-slide__body{
	padding: 10px 0 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 auto;
}

.cp-portal .cp-dash-gal-slide__title-row{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px 12px;
}

.cp-portal .cp-dash-gal-slide__title-row .cp-dash-gal-slide__title{
	flex: 1;
	min-width: 0;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
	line-height: 1.35;
}

.cp-portal .cp-dash-gal-slide__title-row .cp-dash-gal-slide__count{
	flex-shrink: 0;
	margin: 0;
	padding-top: 2px;
	font-size: var(--cp-text-sm);
	font-weight: 600;
	color: var(--cp-muted-62, #525252);
	line-height: 1.35;
	text-align: right;
	white-space: nowrap;
}

.cp-portal .cp-dash-gal-slide__sub{
	margin: 0;
	font-size: var(--cp-text-base);
	color: var(--cp-muted-62, #525252);
	line-height: 1.4;
}

/* Dashboard snapshot CTAs — clear hierarchy: primary (pay) vs secondary (view) */
.cp-portal .cp-dash-snapshot__actions{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 12px 0 2px;
	margin-top: 4px;
}

.cp-portal .cp-dash-snapshot__cta{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px 16px;
	border-radius: var(--cp-radius-pill, 999px);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	font-size: var(--cp-text-base);
	font-weight: 600;
	font-family: inherit;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background 0.15s ease, transform 0.1s ease, border-color 0.15s ease, color 0.15s ease;
	align-self: flex-start;
	box-shadow: none;
	border: 1px solid var(--cp-btn-primary-bg, #0a0a0a);
}

.cp-portal .cp-dash-snapshot__cta--secondary{
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border, #d5dbe3);
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: currentColor;
}

.cp-portal .cp-dash-snapshot__cta svg{
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	stroke: currentColor;
	color: inherit;
}

.cp-portal .cp-dash-snapshot__cta:hover,
.cp-portal .cp-dash-snapshot__cta:focus-visible{
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	background: var(--cp-brand-hot, #262626);
	border-color: var(--cp-brand-hot, #262626);
	text-decoration: none !important;
}

.cp-portal .cp-dash-snapshot__cta--secondary:hover,
.cp-portal .cp-dash-snapshot__cta--secondary:focus-visible{
	background: var(--cp-fill-02, rgba(11,13,16,.035));
	border-color: var(--cp-heading-text, #0a0a0a);
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: currentColor;
}

.cp-portal .cp-dash-snapshot__cta:visited{
	text-decoration: none !important;
}

.cp-portal .cp-dash-gal-slide .cp-dash-snapshot__cta{
	margin-top: 4px;
}

@media (max-width: 1024px){
	.cp-portal .cp-dash-photo-split{
		grid-template-columns: 1fr;
	}
}

.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: var(--cp-radius-global);
	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: var(--cp-text-base);
	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{
		justify-self: start;
	}

	.cp-portal .cp-action-row__cta .cp-btn{
		width: auto;
	}
}

.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: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}

.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: var(--cp-radius-card);
	border: 1px solid var(--cp-border);
	background: var(--cp-card-bg, #ffffff);
	box-shadow: var(--cp-shell-modal-card-shadow, var(--cp-shadow-overlay));
	box-sizing: border-box;
}

.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: var(--cp-radius-pill, 999px);
	background: transparent !important;
	color: #525252 !important;
	font-size: 32px !important;
	line-height: 1 !important;
	font-family: inherit !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: #0a0a0a !important;
	outline: none;
}

.cp-portal .cp-modal__rows{
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 14px;
}

/* PS-28 — body-mounted gallery “submit selections” review (tokens; was inline in gallery-view.js) */
@keyframes cp-gv-review-fade-in{
	from{ opacity: 0; }
	to{ opacity: 1; }
}
@media (prefers-reduced-motion: reduce){
	#cp-gv-review-overlay{
		animation: none !important;
	}
}
#cp-gv-review-overlay{
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(16px, env(safe-area-inset-top, 0)) max(16px, env(safe-area-inset-right, 0)) max(16px, env(safe-area-inset-bottom, 0)) max(16px, env(safe-area-inset-left, 0));
	box-sizing: border-box;
	background: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	animation: cp-gv-review-fade-in 0.15s ease;
	font-family: var(--cp-font-body, "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
}
.cp-gv-review-panel{
	background: var(--cp-card-bg, #fff);
	border-radius: var(--cp-radius-card, 16px);
	padding: 32px 36px;
	max-width: 440px;
	width: min(440px, calc(100vw - 32px));
	box-sizing: border-box;
	box-shadow: var(--cp-shell-modal-card-shadow, 0 12px 40px rgba(15, 23, 42, 0.12));
	text-align: center;
	border: 1px solid var(--cp-border, #e5e5e5);
}
.cp-gv-review-title{
	font-size: 18px;
	font-weight: 800;
	margin: 0 0 10px;
	color: var(--cp-heading-text, #0a0a0a);
	font-family: var(--cp-font-heading, inherit);
}
.cp-gv-review-summary{
	font-size: 14px;
	color: var(--cp-muted-62, #525252);
	margin: 0 0 16px;
	line-height: 1.55;
}
.cp-gv-review-extras{
	font-size: 13px;
	color: #92400e;
	background: #fef3c7;
	border: 1px solid #fcd34d;
	border-radius: var(--cp-radius-global, 10px);
	padding: 12px 16px;
	margin-bottom: 16px;
	line-height: 1.5;
}
.cp-gv-review-extras[hidden]{
	display: none !important;
}
.cp-gv-review-actions{
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}
.cp-gv-review-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 20px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, transform 0.1s, box-shadow 0.15s;
	font-family: var(--cp-font-button, var(--cp-font-body, inherit));
	line-height: 1.2;
	border-style: solid;
	border-width: 1px;
	box-sizing: border-box;
}
@media (prefers-reduced-motion: reduce){
	.cp-gv-review-btn{
		transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
	}
	.cp-gv-review-btn--cancel:hover,
	.cp-gv-review-btn--confirm:hover{
		transform: none;
	}
}
.cp-gv-review-btn--cancel{
	background: transparent;
	border-color: var(--cp-border, #d5dbe3);
	color: var(--cp-muted-62, #525252);
	border-width: 1.5px;
}
.cp-gv-review-btn--cancel:hover{
	background: var(--cp-fill-01, rgba(11, 13, 16, 0.03));
	transform: translateY(-1px);
}
.cp-gv-review-btn--confirm{
	color: #fff;
}
.cp-gv-review-btn--gw-stripe{
	background: #635bff !important;
	border-color: #635bff !important;
}
.cp-gv-review-btn--gw-paypal{
	background: #0070ba !important;
	border-color: #0070ba !important;
}
.cp-gv-review-btn--gw-default{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
}
.cp-gv-review-btn--confirm:hover{
	opacity: 0.9;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
.cp-gv-review-cap-warn{
	font-size: 13px;
	color: #92400e;
	background: #fffbeb;
	border: 1px solid #fcd34d;
	border-radius: var(--cp-radius-global, 10px);
	padding: 12px 16px;
	margin: 0 0 16px;
	line-height: 1.5;
	text-align: left;
}
@media (max-width: 1024px){
	#cp-gv-review-overlay{
		align-items: flex-end;
		padding: 0;
		padding-top: max(12px, env(safe-area-inset-top, 0));
	}
	.cp-gv-review-panel{
		max-width: none;
		width: 100%;
		border-radius: var(--cp-shell-sheet-top-radius, 16px) var(--cp-shell-sheet-top-radius, 16px) 0 0;
		border-left: none;
		border-right: none;
		border-bottom: none;
		box-shadow: var(--cp-shell-bottom-sheet-shadow, 0 -10px 36px rgba(15, 23, 42, 0.16));
		padding: 22px 20px var(--cp-shell-mobile-popup-pad-bottom, calc(28px + max(12px, env(safe-area-inset-bottom, 0px))));
	}
	.cp-gv-review-actions{
		flex-direction: column;
		align-items: stretch;
	}
	.cp-gv-review-btn{
		width: 100%;
		justify-content: center;
	}
}

/* PS-28 — questionnaire responses modal on client routes (footer-injected; admin-portal.css base) */
body.cp-portal-managed-route .cp-fb-qview-modal__backdrop{
	background: var(--cp-shell-scrim, rgba(15, 23, 42, 0.45));
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
body.cp-portal-managed-route .cp-fb-qview-modal__panel{
	border-radius: var(--cp-radius-card, 16px);
	box-shadow: var(--cp-shell-modal-card-shadow, 0 12px 40px rgba(15, 23, 42, 0.12));
}
@media (max-width: 1024px){
	body.cp-portal-managed-route .cp-fb-qview-modal{
		align-items: flex-end;
		justify-content: stretch;
		padding: 0;
		padding-top: max(12px, env(safe-area-inset-top, 0px));
	}
	body.cp-portal-managed-route .cp-fb-qview-modal__panel{
		width: 100%;
		max-width: none;
		margin: 0;
		max-height: min(92vh, 900px);
		border-radius: var(--cp-shell-sheet-top-radius, 16px) var(--cp-shell-sheet-top-radius, 16px) 0 0;
		border-left: none;
		border-right: none;
		border-bottom: none;
		box-shadow: var(--cp-shell-bottom-sheet-shadow, 0 -10px 36px rgba(15, 23, 42, 0.16));
	}
	body.cp-portal-managed-route .cp-fb-qview-modal__body{
		padding-bottom: var(--cp-shell-mobile-popup-pad-bottom, calc(28px + max(12px, env(safe-area-inset-bottom, 0px))));
	}
}

.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: var(--cp-radius-global);
	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: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-border-soft);
	background: #ffffff;
	font-size: var(--cp-text-base);
	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: var(--cp-text-base);
	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: var(--cp-font-body, inherit);
	font-size: var(--cp-text-base);
	font-weight: 700;
	letter-spacing: .01em;
	color: var(--cp-text);
}
.cp-portal details.cp-accordion{
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius-global);
	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: var(--cp-font-heading, inherit);
	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: var(--cp-text-base);
	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: var(--cp-radius-input);
	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: var(--cp-radius-global);
	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: var(--cp-radius-global);
	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: var(--cp-radius-pill, 999px);
	background: #7d0500 !important;
	color: #ffffff !important;
	font-size: var(--cp-text-base);
	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: var(--cp-brand-hot, #262626) !important;
			border-color: var(--cp-brand-hot, #262626) !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: var(--cp-radius-global) !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: var(--cp-radius-global);
	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: var(--cp-text-base);
	font-weight: 700;
	line-height: 1.3;
	color: var(--cp-text);
	word-break: break-word;
}

.cp-portal .cp-asset-card__sub{
	font-size: var(--cp-text-sm);
	line-height: 1.35;
}

.cp-portal .cp-asset-card__note{
	font-size: var(--cp-text-base);
	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 16px;
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	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: var(--cp-btn-primary-bg, #0a0a0a);
	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: 36px;
	padding: 8px 12px;
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	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: var(--cp-radius-pill, 999px);
	background: #ffffff;
	font-size: var(--cp-text-sm);
	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(38,38,38,.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: var(--cp-radius-global);
	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: 36px;
	padding: 8px 12px;
	font-size: var(--cp-text-base);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	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: var(--cp-text-base);
	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: var(--cp-radius-pill, 999px);
	border: 1px solid var(--cp-btn-primary-bg, #0a0a0a);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	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: var(--cp-brand-hot, #262626);
	border-color: var(--cp-brand-hot, #262626);
	color: #ffffff !important;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon:focus-visible{
	outline: 2px solid rgba(10,10,10,.35);
	outline-offset: 2px;
}

.cp-portal .cp-asset-card__actions .cp-asset-related{
	flex: 1 0 100%;
	margin-top: 2px;
}
.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: var(--cp-radius-pill, 999px);
	background: var(--cp-fill-01);
	border: 1px solid var(--cp-border-soft);
	font-size: var(--cp-text-sm);
	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: var(--cp-text-base);
	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: var(--cp-radius-global);
	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__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: 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;
}

/* Milestone billing: client cards (project Payments tab) */
.cp-portal .cp-ms-list--client{
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.cp-portal .cp-ms-card--client{
	border: 1px solid var(--cp-border-soft);
	border-radius: var(--cp-radius-global);
	padding: 14px 16px;
	background: var(--cp-surface);
	box-shadow: var(--cp-shadow-card);
	box-sizing: border-box;
	min-width: 0;
}

.cp-portal .cp-ms-card--client .cp-ms-card__head{
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px 16px;
	margin-bottom: 10px;
}

.cp-portal .cp-ms-card--client .cp-ms-card__title-block{
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	flex: 1;
}

.cp-portal .cp-ms-card--client .cp-ms-card__title{
	font-weight: var(--cp-font-weight-heading);
	font-size: 15px;
	line-height: 1.35;
	color: var(--cp-heading-text);
}

.cp-portal .cp-ms-card--client .cp-ms-card__desc{
	font-size: 13px;
	line-height: 1.45;
	display: block;
}

.cp-portal .cp-ms-card--client .cp-ms-card__amount{
	font-weight: var(--cp-font-weight-heading);
	font-variant-numeric: tabular-nums;
	font-size: 15px;
	white-space: nowrap;
	color: var(--cp-heading-text);
}

.cp-portal .cp-ms-card--client .cp-ms-card__body{
	font-size: 14px;
	line-height: 1.45;
	color: var(--cp-text);
	margin-bottom: 12px;
}

.cp-portal .cp-ms-card--client .cp-ms-card__status-label{
	font-weight: var(--cp-font-weight-button);
	color: var(--cp-muted-62);
	margin-right: 4px;
}

.cp-portal .cp-ms-card--client .cp-ms-card__actions{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.cp-portal .cp-ms-card--client .cp-ms-card__actions .cp-btn{
	min-height: 36px;
}

@media (max-width: 1024px){
	.cp-portal .cp-filter-row{
		grid-template-columns: 1fr;
	}

	.cp-portal .cp-filter-actions .cp-btn{
		width: auto;
	}

	.cp-portal .cp-asset-grid{
			grid-template-columns: repeat(2, minmax(0, 1fr));
	}

		.cp-portal .cp-dashboard-snapshot .cp-pill-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-project-tabs{
			display: flex;
			flex-direction: column;
			gap: 6px;
			padding-bottom: 0;
			border-bottom: 0 !important;
			margin-bottom: 10px;
		}

	.cp-portal .cp-dashboard-snapshot .cp-pill-tabs::-webkit-scrollbar{
		display: none;
		width: 0;
		height: 0;
	}

	.cp-portal .cp-dashboard-snapshot .cp-pill-tab{
		flex: 0 0 auto;
		white-space: nowrap;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.cp-portal .cp-project-tabs .cp-pill-tab{
		width: 100% !important;
		flex: none !important;
		text-align: center;
		justify-content: center;
		box-sizing: border-box;
	}

		.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: 1024px){
	.cp-portal .cp-modal{
		align-items: flex-end;
		justify-content: stretch;
		padding: 0;
		padding-top: max(12px, env(safe-area-inset-top, 0));
	}

	.cp-portal .cp-modal__dialog{
		margin: 0;
		max-width: none;
		width: 100%;
		max-height: min(92vh, 900px);
		height: auto;
		border-radius: var(--cp-shell-sheet-top-radius, 16px) var(--cp-shell-sheet-top-radius, 16px) 0 0;
		border-left: none;
		border-right: none;
		border-bottom: none;
		box-shadow: var(--cp-shell-bottom-sheet-shadow, 0 -10px 36px rgba(15, 23, 42, 0.16));
		padding: 20px 20px var(--cp-shell-mobile-popup-pad-bottom, calc(28px + max(12px, env(safe-area-inset-bottom, 0px))));
	}
}

@media (max-width: 768px){
	.cp-portal .cp-action-picker-row{
		grid-template-columns: 1fr;
	}

	.cp-portal .cp-action-picker-row__cta .cp-btn{
		width: auto;
	}

	.cp-portal .cp-filter-actions .cp-btn{
		width: auto;
	}
}

/* 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 rgba(10,10,10,.12);
	border-color: var(--cp-heading-text, #0a0a0a);
}

.cp-portal h1,
.cp-portal h2,
.cp-portal h3,
.cp-portal h4,
.cp-portal h5,
.cp-portal h6{
	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 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-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(10,10,10,.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, #525252);
}

.cp-portal .cp-btn,
.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: 600;
	letter-spacing: normal;
	text-transform: none;
	box-shadow: none;
}

@media (hover:hover){
	.cp-portal .cp-btn: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{
	background: var(--cp-surface, #ffffff) !important;
	border: 1px solid var(--cp-border, #d5dbe3) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: currentColor !important;
}

@media (hover:hover){
	.cp-portal .cp-btn.cp-btn--secondary:hover{
		background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
		border-color: var(--cp-heading-text, #0a0a0a) !important;
		color: var(--cp-heading-text, #0a0a0a) !important;
		-webkit-text-fill-color: currentColor !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(10,10,10,.03));
	color: var(--cp-muted-62, #525252);
	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, 700);
	background: var(--cp-pill-neutral-bg);
	color: var(--cp-pill-text, #ffffff) !important;
}

.cp-portal .cp-pill--active,
.cp-portal .cp-pill--booked{ background: var(--cp-pill-active-bg); }
.cp-portal .cp-pill--confirmed{ background: var(--cp-pill-confirmed-bg); }
.cp-portal .cp-pill--paid{ background: var(--cp-pill-paid-bg); }
.cp-portal .cp-pill--completed{ background: var(--cp-pill-completed-bg); }
.cp-portal .cp-pill--delivered{ background: var(--cp-pill-delivered-bg); }
.cp-portal .cp-pill--paused,
.cp-portal .cp-pill--on-hold,
.cp-portal .cp-pill--pending{ background: var(--cp-pill-paused-bg); }
.cp-portal .cp-pill--canceled,
.cp-portal .cp-pill--cancelled{ background: var(--cp-pill-cancelled-bg); }
.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--published{ background: var(--cp-pill-published-bg); }
.cp-portal .cp-pill--neutral,
.cp-portal .cp-pill--info,
.cp-portal .cp-pill--default{ background: var(--cp-pill-neutral-bg); }
.cp-portal .cp-pill--signed{ background: var(--cp-pill-paid-bg, #388E3C); }
.cp-portal .cp-pill--needs_signature{ background: var(--cp-pill-pending-bg, #FF9800); }
.cp-portal .cp-pill--external{ background: var(--cp-pill-active-bg, #2196F3); }
.cp-portal .cp-pill--doc-type{
	background: var(--cp-fill-02, rgba(10, 10, 10, .055));
	color: var(--cp-muted-62, #525252) !important;
	border: 1px solid var(--cp-border-soft, rgba(0, 0, 0, .08)) !important;
	text-transform: none;
}

@media (min-width: 1024px){
	.cp-app-main__inner{
		padding: var(--cp-space-5, 30px);
	}

	.cp-portal .cp-grid{
		gap: var(--cp-space-3, 18px);
	}
}

/* v1.9.1 polish overrides */
.cp-portal{
	--cp-radius-global: 8px;
	--cp-radius-card: 8px;
	--cp-radius-input: 8px;
	--cp-radius-pill: 999px;
}

.cp-portal .cp-card,
.cp-portal .cp-table,
.cp-portal .cp-accordion,
.cp-portal .cp-asset-card,
.cp-portal .cp-asset-card__thumb,
.cp-portal .cp-projects-shell,
.cp-portal .cp-alert,
.cp-portal .cp-kv{
	border-radius: var(--cp-radius-md) !important;
}

.cp-portal .cp-pill,
.cp-portal .cp-pill-tab,
.cp-portal .cp-shell-profile__trigger,
.cp-portal .cp-shell-avatar,
.cp-portal .cp-btn,
.cp-portal .cp-asset-btn{
	border-radius: var(--cp-radius-pill, 999px) !important;
}

.cp-portal .cp-app-header,
.cp-portal .cp-app-header__logo-area{
	border-bottom: 0 !important;
}

.cp-portal .cp-vertical-nav-menu > li.cp-nav-divider{
	height: 0;
	margin: 6px 12px;
	padding: 0 !important;
	border-top: 1px solid var(--cp-nav-border, rgba(255,255,255,.12));
}
.cp-portal .cp-vertical-nav-menu > li.cp-nav-divider a{ display: none; }

.cp-mobile-menu__nav{
	border-bottom: none;
	padding-bottom: 8px !important;
}
.cp-mobile-menu__link--logout{
	margin-top: 0;
	border-top: none !important;
	padding-top: 0 !important;
}

.cp-mobile-menu{
	z-index: 2147483600 !important;
}
.cp-mobile-menu__overlay{
	z-index: 2147483601 !important;
}
.cp-mobile-menu__panel{
	z-index: 2147483602 !important;
}

.cp-portal .cp-btn,
.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,
.cp-portal .cp-filter-actions .cp-btn,
.cp-portal .cp-asset-btn{
	color: #fff !important;
	font-weight: 600 !important;
}

.cp-portal .cp-btn:hover,
.cp-portal .cp-btn:focus,
.cp-portal .cp-btn:active,
.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{
	color: #fff !important;
	font-weight: 600 !important;
}

.cp-portal select,
.cp-portal .jet-form-builder select{
	background: #ffffff !important;
	border-color: #d4d4d4 !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
	font-weight: 600 !important;
}

.cp-portal-managed-route--assets .cp-asset-card__thumb{
	min-height: 190px;
	background: #f4f6f9;
}
.cp-portal-managed-route--assets .cp-asset-thumb{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cp-portal-managed-route--assets .cp-asset-thumb--icon{
	object-fit: contain;
	padding: 18px;
}
.cp-portal-managed-route--assets .cp-asset-btn{
	min-width: 40px;
	min-height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cp-portal-managed-route--billing .cp-actions .cp-btn,
.cp-portal-managed-route--transactions .cp-actions .cp-btn{
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--cp-brand, #0a0a0a) !important;
	font-weight: 600 !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-decoration: underline !important;
}

.cp-portal-managed-route--documents .cp-filter-row{
	display: grid;
	grid-template-columns: minmax(0, 1fr) 220px;
	gap: 12px;
	align-items: end;
}
.cp-portal-managed-route--documents .cp-filter-field{
	margin: 0;
}
.cp-portal-managed-route--documents .cp-filter-actions{
	margin: 0;
}
.cp-portal-managed-route--documents .cp-filter-actions .cp-btn{
	width: 100%;
	min-height: 44px;
}

@media (max-width: 768px){
	.cp-portal-managed-route--documents .cp-filter-row{
		grid-template-columns: 1fr;
	}
}

/* v1.9.2 targeted fixes — shell close control (readable on light panel) */
.cp-portal .cp-mobile-menu__close-btn,
.cp-portal .cp-mobile-menu__close-btn:hover,
.cp-portal .cp-mobile-menu__close-btn:focus,
.cp-portal .cp-mobile-menu__close-btn:active{
	background: var(--cp-fill-02, rgba(11,13,16,.08)) !important;
	box-shadow: none !important;
	outline: none !important;
	border: 0 !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	min-width: 44px !important;
	min-height: 44px !important;
}
.cp-portal .cp-mobile-menu__close-btn svg{
	stroke: currentColor !important;
}

.cp-portal .cp-shell-profile__trigger{
	pointer-events: auto;
}
.cp-portal .cp-shell-profile__menu{
	z-index: 2500;
}

.cp-portal .cp-btn,
.cp-portal a.cp-btn,
.cp-portal button.cp-btn,
.cp-portal .cp-actions .cp-btn,
.cp-portal .cp-filter-actions .cp-btn,
.cp-portal .cp-asset-btn{
	color: #fff !important;
	font-weight: 600 !important;
}

.cp-portal .cp-btn:hover,
.cp-portal .cp-btn:focus,
.cp-portal .cp-btn:active,
.cp-portal a.cp-btn:hover,
.cp-portal button.cp-btn:hover,
.cp-portal .cp-actions .cp-btn:hover,
.cp-portal .cp-filter-actions .cp-btn:hover,
.cp-portal .cp-asset-btn:hover{
	color: #fff !important;
	font-weight: 600 !important;
}

.cp-portal select,
.cp-portal .jet-form-builder select,
.cp-portal .cp-filter-row select{
	background-color: #ffffff !important;
	border-color: #d4d4d4 !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	font-weight: 600 !important;
}

.cp-portal[data-route-key="billing"] .cp-actions .cp-btn,
.cp-portal[data-route-key="transactions"] .cp-actions .cp-btn{
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--cp-brand, #0a0a0a) !important;
	font-weight: 600 !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-decoration: underline !important;
	border-radius: 0 !important;
	transform: none !important;
}

@media (hover:hover){
	.cp-portal[data-route-key="billing"] .cp-actions .cp-btn:hover,
	.cp-portal[data-route-key="transactions"] .cp-actions .cp-btn:hover{
		transform: none !important;
	}
}

.cp-portal[data-route-key="documents"] .cp-filter-row{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
	gap: 12px;
	align-items: end;
	width: 100%;
}

.cp-portal .cp-filter-row--docs{
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(180px, 240px) !important;
	gap: 12px !important;
	align-items: end !important;
	width: 100% !important;
}
.cp-portal .cp-filter-row--docs .cp-filter-field,
.cp-portal .cp-filter-row--docs .cp-filter-actions{
	margin: 0 !important;
}
.cp-portal .cp-filter-row--docs .cp-filter-field select,
.cp-portal .cp-filter-row--docs .cp-filter-actions .cp-btn{
	width: 100% !important;
	min-height: 36px !important;
}

.cp-portal .cp-btn.cp-btn--link-action{
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--cp-brand, #0a0a0a) !important;
	font-weight: 600 !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-decoration: underline !important;
	border-radius: 0 !important;
	transform: none !important;
}

@media (hover:hover){
	.cp-portal .cp-btn.cp-btn--link-action:hover{
		transform: none !important;
	}
}

@media (max-width: 768px){
	.cp-portal .cp-filter-row--docs{
		grid-template-columns: 1fr !important;
	}
}
.cp-portal[data-route-key="documents"] .cp-filter-field,
.cp-portal[data-route-key="documents"] .cp-filter-actions{
	margin: 0;
}
.cp-portal[data-route-key="documents"] .cp-filter-field select,
.cp-portal[data-route-key="documents"] .cp-filter-actions .cp-btn{
	width: 100%;
	min-height: 36px;
}

.cp-portal[data-route-key="assets"] .cp-asset-card__thumb,
.cp-portal[data-route-key="project_view"] .cp-asset-card__thumb{
	min-height: 200px !important;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f3f6fa !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-thumb,
.cp-portal[data-route-key="project_view"] .cp-asset-thumb{
	width: 100%;
	height: 100%;
	object-fit: cover !important;
	object-position: center center;
}
.cp-portal[data-route-key="assets"] .cp-asset-thumb-placeholder,
.cp-portal[data-route-key="project_view"] .cp-asset-thumb-placeholder{
	color: var(--cp-muted-62, #525252);
	font-weight: 600;
}
.cp-portal[data-route-key="assets"] .cp-asset-card__actions,
.cp-portal[data-route-key="project_view"] .cp-asset-card__actions{
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.cp-portal[data-route-key="assets"] .cp-asset-btn,
.cp-portal[data-route-key="project_view"] .cp-asset-btn{
	min-height: 34px;
	padding: 6px 12px !important;
	font-size: var(--cp-text-base);
}
.cp-portal[data-route-key="assets"] .cp-asset-related,
.cp-portal[data-route-key="project_view"] .cp-asset-related{
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 6px 12px;
	border-radius: var(--cp-radius-pill, 999px);
	background: var(--cp-btn-primary-bg, #0a0a0a);
	border: 1px solid var(--cp-btn-primary-bg, #0a0a0a);
	text-decoration: none !important;
}

@media (max-width: 768px){
	.cp-portal[data-route-key="documents"] .cp-filter-row{
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   UI Remaster v2.0 (shared visual system only)
   - No routing/menu architecture changes
   - Premium, scannable, consistent treatment across all client routes
   ========================================================================== */

.cp-portal{
	--cp-bg: #eef2f7;
	--cp-surface: #ffffff;
	--cp-text: #0a0a0a;
	--cp-heading-text: #0b1220;
	--cp-muted-62: #5f6b7a;
	--cp-border: #d9e1ea;
	--cp-border-soft: rgba(10,10,10,.12);
	--cp-border-faint: rgba(10,10,10,.08);
	--cp-fill-01: #f6f8fb;
	--cp-fill-02: #eef3f8;
	--cp-brand: #0a0a0a;
	--cp-brand-hot: #262626;
	--cp-btn-primary-bg: #0a0a0a;
	--cp-btn-primary-border: #0a0a0a;
	--cp-btn-primary-text: #ffffff;
	--cp-radius-card: 8px;
	--cp-radius-input: 8px;
	--cp-radius-pill: 999px;
	--cp-shadow-card: 0 10px 28px -24px rgba(10,10,10,.34);
}

.cp-portal .cp-app-main__inner > .cp-container{
	max-width: min(1180px, 100%);
}

.cp-portal .cp-page-head{
	margin: 0 0 16px 0;
}

.cp-portal .cp-page-title{
	font-size: clamp(1.5rem, 1.2rem + .8vw, 2rem) !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: -.02em !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
}

.cp-portal .cp-page-note{
	margin-top: 6px;
	color: var(--cp-muted-62);
	max-width: 78ch;
}

.cp-portal .cp-card,
.cp-portal .cp-project-shell > .cp-card,
.cp-portal details.cp-accordion,
.cp-portal .cp-summary,
.cp-portal .cp-alert{
	border-radius: var(--cp-radius-md) !important;
	border: 1px solid var(--cp-border-soft);
	box-shadow: var(--cp-shadow-card);
}

.cp-portal .cp-card{
	padding: 24px;
	margin-bottom: 14px;
}

.cp-portal details.cp-accordion > summary{
	padding: 14px 16px;
	font-size: clamp(1rem, .96rem + .2vw, 1.16rem);
}

.cp-portal .cp-accordion__body{
	padding: 14px 16px;
}

.cp-portal .cp-kv{
	padding: 11px 0;
}

.cp-portal .cp-k{
	font-size: var(--cp-text-sm);
	letter-spacing: .06em;
}

.cp-portal .cp-v{
	font-weight: 700;
}

/* Buttons and actions: strict global consistency */
.cp-portal .cp-btn,
.cp-portal a.cp-btn,
.cp-portal button.cp-btn,
.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,
.cp-portal .cp-asset-btn{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #fff !important;
	font-weight: 600 !important;
	font-size: var(--cp-text-base) !important;
	min-height: 36px !important;
	padding: 8px 16px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
}

@media (hover:hover){
	.cp-portal .cp-btn:hover,
	.cp-portal a.cp-btn:hover,
	.cp-portal button.cp-btn: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,
	.cp-portal .cp-asset-btn:hover{
		background: var(--cp-brand-hot, #262626) !important;
		border-color: var(--cp-brand-hot, #262626) !important;
		color: #ffffff !important;
	}
}

.cp-portal .cp-btn--link-action,
.cp-portal .cp-actions .cp-btn--link-action,
.cp-portal .cp-section-link{
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	border-radius: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--cp-brand, #0a0a0a) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transform: none !important;
}

.cp-portal .cp-btn--link-action:hover,
.cp-portal .cp-actions .cp-btn--link-action:hover,
.cp-portal .cp-section-link:hover{
	color: var(--cp-brand-hot, #262626) !important;
	text-decoration: underline !important;
	transform: none !important;
}

/* Tables: tighter, cleaner, premium */
.cp-portal .cp-table{
	border-radius: 5px !important;
	border: 1px solid var(--cp-border-soft);
}

.cp-portal .cp-table thead th{
	background: #f3f6fa;
	font-size: var(--cp-text-sm);
	color: #5d6978;
	font-weight: 700;
}

.cp-portal .cp-table td{
	padding: 11px 12px;
}

/* Updates stream - card-based notification rows */
.cp-portal .cp-update__title{
	font-size: var(--cp-text-base);
	font-weight: 600;
}

.cp-portal .cp-update__headline{
	font-weight: 600;
	margin-bottom: 2px;
}

/* Dashboard quick actions */
.cp-portal .cp-action-row{
	border-radius: var(--cp-radius-md);
	background: #f8fbff;
	border: 1px solid var(--cp-border-soft);
	padding: 12px 13px;
}

.cp-portal .cp-action-row__copy h3{
	font-size: 15px;
}

.cp-portal .cp-action-row__copy p{
	font-size: 12.5px;
	color: var(--cp-muted-62);
}

/* Files/assets cards */
.cp-portal .cp-asset-grid{
	gap: 10px;
}

.cp-portal .cp-asset-card{
	border-radius: var(--cp-radius-md) !important;
	border: 1px solid var(--cp-border-soft);
	box-shadow: none;
}

.cp-portal .cp-asset-card__thumb{
	height: 210px;
	border-radius: 5px 5px 0 0 !important;
	background: #f2f5f9 !important;
}

.cp-portal .cp-asset-card__name{
	font-size: 12.5px;
}

.cp-portal .cp-asset-card__sub{
	font-size: var(--cp-text-sm);
}

/* Filters/forms */
.cp-portal .cp-filter-row{
	gap: 10px;
	margin-bottom: 12px;
}

.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="search"],
.cp-portal input[type="tel"],
.cp-portal select,
.cp-portal textarea{
	border-radius: var(--cp-radius-md);
	border-color: #cdd6e1;
	background: #ffffff;
	color: var(--cp-heading-text, #0a0a0a);
}

/* Keep selects legible while preserving strict action-color rules */
.cp-portal .cp-filter-field select,
.cp-portal .cp-sup select,
.cp-portal .cp-billpay-shell select{
	background: #ffffff !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	border-color: #cdd6e1 !important;
	font-weight: 600 !important;
}

/* Mobile: deliberate spacing and density */
@media (max-width: 1024px){
	.cp-portal .cp-app-main__inner{
		padding: 16px 12px !important;
	}
	.cp-portal .cp-card{
		padding: 16px;
		margin-bottom: 10px;
	}
	.cp-portal .cp-page-head{
		margin-bottom: 12px;
	}
	.cp-portal .cp-page-title{
		font-size: clamp(1.25rem, 1rem + .72vw, 1.5rem) !important;
	}
	.cp-portal .cp-action-row{
		padding: 10px;
	}
	.cp-portal .cp-table tr{
		padding: 12px !important;
	}
}

/* Mobile menu - text transform reset and polish */
.cp-portal .cp-mobile-menu__link,
.cp-portal .cp-mobile-menu__link--logout,
.cp-portal .cp-mobile-menu__action{
	text-transform: none !important;
}

.cp-portal .cp-mobile-menu__link:hover,
.cp-portal .cp-mobile-menu__link:focus,
.cp-portal .cp-mobile-menu__link:focus-visible,
.cp-portal .cp-mobile-menu__link:active{
	background: rgba(10,10,10,.06) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	text-decoration: none !important;
}
.cp-portal .cp-mobile-menu__link.is-active:hover,
.cp-portal .cp-mobile-menu__link.is-active:focus{
	background: var(--cp-brand-hot, #262626) !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}
.cp-portal .cp-mobile-menu__link--logout:hover,
.cp-portal .cp-mobile-menu__link--logout:focus{
	background: rgba(185,28,28,.06) !important;
	color: var(--cp-brand, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-brand, #0a0a0a) !important;
	text-decoration: none !important;
}
.cp-portal .cp-mobile-menu__action:hover,
.cp-portal .cp-mobile-menu__action:focus,
.cp-portal .cp-mobile-menu__action:focus-visible,
.cp-portal .cp-mobile-menu__action:active{
	background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
	border-color: var(--cp-heading-text, #0a0a0a) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	text-decoration: none !important;
}

/* Progress bar polish – consolidated into base rules above */

/* Asset card action remaster (icon actions + text project link + preview polish) */
.cp-portal .cp-asset-card__thumb{
	background: linear-gradient(180deg, #eef3f8 0%, #e5ecf4 100%) !important;
}

.cp-portal .cp-asset-card__thumb--image{
	background-image:
		linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,255,255,.08)),
		repeating-linear-gradient(45deg, rgba(255,255,255,.22) 0 10px, rgba(255,255,255,.08) 10px 20px),
		linear-gradient(180deg, #dfe7f0, #e9eff6) !important;
}

.cp-portal .cp-asset-card__thumb--file{
	background: linear-gradient(180deg, #edf2f8 0%, #e3ebf4 100%) !important;
}

.cp-portal .cp-asset-thumb{
	object-fit: cover !important;
	width: 100%;
	height: 100%;
	padding: 0;
}

.cp-portal .cp-asset-thumb--icon{
	object-fit: contain !important;
	padding: 22px !important;
	opacity: .95;
}

.cp-portal .cp-asset-card__actions{
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 8px !important;
	padding: 4px 12px 2px !important;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon{
	width: 42px !important;
	min-width: 42px !important;
	height: 42px !important;
	min-height: 42px !important;
	padding: 0 !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
}

.cp-portal .cp-asset-card__actions .cp-asset-btn--icon svg{
	width: 20px !important;
	height: 20px !important;
	stroke: currentColor;
}

.cp-portal-managed-route--assets .cp-asset-thumb,
.cp-portal-managed-route--project_view .cp-asset-thumb,
.cp-portal[data-route-key="assets"] .cp-asset-thumb,
.cp-portal[data-route-key="project_view"] .cp-asset-thumb{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

.cp-portal-managed-route--assets .cp-asset-card__actions .cp-asset-btn--icon,
.cp-portal-managed-route--project_view .cp-asset-card__actions .cp-asset-btn--icon,
.cp-portal[data-route-key="assets"] .cp-asset-card__actions .cp-asset-btn--icon,
.cp-portal[data-route-key="project_view"] .cp-asset-card__actions .cp-asset-btn--icon{
	width: 42px !important;
	min-width: 42px !important;
	height: 42px !important;
	min-height: 42px !important;
}

.cp-portal-managed-route--assets .cp-asset-card__actions .cp-asset-btn--icon svg,
.cp-portal-managed-route--project_view .cp-asset-card__actions .cp-asset-btn--icon svg,
.cp-portal[data-route-key="assets"] .cp-asset-card__actions .cp-asset-btn--icon svg,
.cp-portal[data-route-key="project_view"] .cp-asset-card__actions .cp-asset-btn--icon svg{
	width: 20px !important;
	height: 20px !important;
}

.cp-portal .cp-asset-project-link{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 0;
	font-size: var(--cp-text-base);
	font-weight: 700;
	color: var(--cp-brand, #0a0a0a) !important;
	text-decoration: none !important;
}

.cp-portal .cp-asset-project-link:hover{
	color: var(--cp-brand-hot, #262626) !important;
	text-decoration: underline !important;
}

/* Global select: white bg, black text, pill radius, clean chevron */
.cp-portal select,
.cp-portal .jet-form-builder select,
.cp-portal .cp-filter-field select,
.cp-portal .cp-billpay-shell select,
.cp-portal .cp-sup select{
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-color: #ffffff !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
	border: 1px solid #d4d4d4 !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	min-height: 44px !important;
	padding: 10px 44px 10px 14px !important;
	font-weight: 600 !important;
	background-image:
		linear-gradient(45deg, transparent 50%, #404040 50%),
		linear-gradient(135deg, #404040 50%, transparent 50%) !important;
	background-position:
		calc(100% - 20px) calc(50% - 2px),
		calc(100% - 14px) calc(50% - 2px) !important;
	background-size: 6px 6px, 6px 6px !important;
	background-repeat: no-repeat !important;
}

.cp-portal select:focus,
.cp-portal .jet-form-builder select:focus,
.cp-portal .cp-filter-field select:focus{
	border-color: var(--cp-heading-text, #0a0a0a) !important;
	outline: 2px solid rgba(10,10,10,.15) !important;
	outline-offset: 0 !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
}
.cp-portal select:hover,
.cp-portal .jet-form-builder select:hover,
.cp-portal .cp-filter-field select:hover{
	background: #fafafa !important;
	background-color: #fafafa !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
	border-color: #525252 !important;
}

/* Files library refresh: filter toolbar + grid/list toggle + list mode */
.cp-portal[data-route-key="assets"] .cp-filter-row,
.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files{
	display: grid !important;
	grid-template-columns: repeat(4, minmax(180px, 1fr)) auto auto !important;
	align-items: end !important;
	gap: 10px !important;
}

.cp-portal[data-route-key="assets"] .cp-filter-row .cp-filter-actions,
.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files .cp-filter-actions{
	justify-content: flex-start;
}

.cp-portal[data-route-key="assets"] .cp-filter-row .cp-filter-view,
.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files .cp-filter-view{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	justify-content: flex-end;
}

.cp-portal .cp-view-toggle{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 14px;
	border: 1px solid #c9d4df;
	border-radius: var(--cp-radius-pill, 999px);
	background: #ffffff;
	color: var(--cp-heading-text, #0a0a0a);
	font-size: var(--cp-text-base);
	font-weight: 700;
	line-height: 1;
}

.cp-portal .cp-view-toggle.is-active{
	background: var(--cp-btn-primary-bg, #0a0a0a);
	border-color: var(--cp-btn-primary-bg, #0a0a0a);
	color: #ffffff;
}

.cp-portal .cp-view-toggle:hover{
	border-color: var(--cp-brand, #0a0a0a);
}

.cp-portal .cp-asset-grid--list{
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 10px !important;
}

.cp-portal .cp-asset-grid--list .cp-asset-card{
	display: grid !important;
	grid-template-columns: 220px minmax(0, 1fr);
	min-height: 0;
}

.cp-portal .cp-asset-grid--list .cp-asset-card__thumb{
	height: 100% !important;
	min-height: 160px !important;
	border-right: 1px solid var(--cp-border-faint);
	border-bottom: 0;
}

.cp-portal .cp-asset-grid--list .cp-asset-card__meta{
	padding: 12px !important;
}

.cp-portal .cp-asset-grid--list .cp-asset-card__actions{
	padding: 8px 0 4px !important;
	border-top: 0 !important;
}

@media (max-width: 1180px){
	.cp-portal[data-route-key="assets"] .cp-filter-row,
	.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files{
		grid-template-columns: repeat(2, minmax(180px, 1fr)) auto auto !important;
	}
}

@media (max-width: 768px){
	.cp-portal[data-route-key="assets"] .cp-filter-row,
	.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files{
		grid-template-columns: 1fr !important;
	}
	.cp-portal[data-route-key="assets"] .cp-filter-row .cp-filter-view,
	.cp-portal[data-route-key="project_view"] .cp-filter-row--project-files .cp-filter-view{
		justify-content: flex-start;
	}
	.cp-portal .cp-asset-grid--list .cp-asset-card{
		grid-template-columns: minmax(0, 1fr);
	}
	.cp-portal .cp-asset-grid--list .cp-asset-card__thumb{
		border-right: 0;
		border-bottom: 1px solid var(--cp-border-faint);
	}
}

/* Assets module remaster: toolbar hierarchy, parity, and empty states */
.cp-portal .cp-assets-toolbar{
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 12px 14px !important;
	align-items: start !important;
	margin-bottom: 16px !important;
	padding: 12px !important;
	border: 1px solid var(--cp-border-soft) !important;
	border-radius: var(--cp-radius-md) !important;
	background: #f8fbff !important;
}

.cp-portal .cp-assets-toolbar__summary{
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.cp-portal .cp-assets-toolbar__eyebrow{
	font-size: var(--cp-text-sm);
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--cp-muted-62);
}

.cp-portal .cp-assets-toolbar__count{
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text);
	line-height: 1.25;
	margin-right: 8px;
}

.cp-portal .cp-assets-toolbar__reset{
	width: fit-content;
	font-size: var(--cp-text-base);
	font-weight: 700;
	color: var(--cp-brand, #0a0a0a) !important;
	text-decoration: none !important;
}

.cp-portal .cp-assets-toolbar__reset:hover{
	color: var(--cp-brand-hot, #262626) !important;
	text-decoration: underline !important;
}

.cp-portal .cp-assets-toolbar__controls{
	display: grid;
	grid-template-columns: repeat(4, minmax(160px, 1fr)) auto auto;
	gap: 10px;
	align-items: end;
}

.cp-portal .cp-assets-toolbar__controls .cp-filter-field{
	min-width: 0;
}

.cp-portal .cp-assets-toolbar__controls .cp-filter-actions{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cp-portal .cp-assets-toolbar__controls .cp-filter-view{
	justify-content: flex-end;
}

.cp-portal .cp-assets-empty-state{
	border: 1px dashed var(--cp-border);
	border-radius: var(--cp-radius-md);
	background: #ffffff;
	padding: 20px 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: flex-start;
}

.cp-portal .cp-assets-empty-state__title{
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-heading-text);
}

.cp-portal .cp-assets-empty-state__text{
	margin: 0;
}

.cp-portal .cp-asset-card__header{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
}

.cp-portal .cp-asset-type-pill{
	flex-shrink: 0;
	padding: 3px 9px;
	border-radius: var(--cp-radius-pill, 999px);
	font-size: var(--cp-text-sm);
	font-weight: 700;
	line-height: 1.2;
	background: #e5ebf2;
	color: #404040;
}

.cp-portal .cp-asset-type-pill--image{ background:#dbeafe; color:#1d4ed8; }
.cp-portal .cp-asset-type-pill--pdf{ background:#fee2e2; color:#b91c1c; }
.cp-portal .cp-asset-type-pill--document{ background:#ede9fe; color:#6d28d9; }
.cp-portal .cp-asset-type-pill--spreadsheet{ background:#dcfce7; color:#166534; }
.cp-portal .cp-asset-type-pill--archive{ background:#ffedd5; color:#9a3412; }
.cp-portal .cp-asset-type-pill--video{ background:#e0e7ff; color:#3730a3; }
.cp-portal .cp-asset-type-pill--audio{ background:#fce7f3; color:#9d174d; }

.cp-portal .cp-asset-grid--list .cp-asset-card__header{
	align-items: center;
}

@media (max-width: 1180px){
	.cp-portal .cp-assets-toolbar__controls{
		grid-template-columns: repeat(2, minmax(180px, 1fr)) auto auto;
	}
}

@media (max-width: 768px){
	.cp-portal .cp-assets-toolbar{
		padding: 10px !important;
	}
	.cp-portal .cp-assets-toolbar__controls{
		grid-template-columns: 1fr;
	}
	.cp-portal .cp-assets-toolbar__controls .cp-filter-view{
		justify-content: flex-start;
	}
	.cp-portal .cp-assets-toolbar__controls .cp-filter-actions .cp-btn{
		width: auto;
	}
	.cp-portal .cp-assets-empty-state{
		padding: 16px 12px;
	}
}

/* Hard override per QA: selects white/black, controls inline, view toggles visible */
.cp-portal .cp-assets-toolbar .cp-filter-field{
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}

.cp-portal .cp-assets-toolbar .cp-filter-field select{
	width: 100% !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: var(--cp-heading-text, #0a0a0a) !important;
	border: 1px solid #d4d4d4 !important;
	border-radius: var(--cp-radius-md) !important;
	box-shadow: none !important;
}

.cp-portal .cp-assets-toolbar .cp-filter-field select:hover,
.cp-portal .cp-assets-toolbar .cp-filter-field select:focus{
	background: #ffffff !important;
	background-color: #ffffff !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	border-color: #525252 !important;
}

.cp-portal .cp-assets-toolbar .cp-filter-view{
	display: inline-flex !important;
	gap: 8px !important;
}

.cp-portal .cp-assets-toolbar .cp-view-toggle{
	min-width: 74px !important;
	min-height: 40px !important;
	padding: 8px 12px !important;
	border-radius: var(--cp-radius-md) !important;
	border: 1px solid #d4d4d4 !important;
	background: #ffffff !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 700 !important;
	cursor: pointer !important;
}

.cp-portal .cp-assets-toolbar .cp-view-toggle.is-active{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
}

/* Card restructure: cleaner hierarchy and action footing */
.cp-portal .cp-asset-card{
	display: flex !important;
	flex-direction: column !important;
}

.cp-portal .cp-asset-card__meta{
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

.cp-portal .cp-asset-card__sub{
	line-height: 1.35 !important;
}

.cp-portal .cp-asset-card__actions{
	margin-top: auto !important;
}

/* Assets final cleanup: compact modern cards + live filters */
.cp-portal [data-cp-assets-module="1"] .cp-assets-toolbar{
	background: #f8fafd !important;
	border: 1px solid var(--cp-border-faint) !important;
	border-radius: var(--cp-radius-md) !important;
	padding: 12px !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-assets-toolbar__controls{
	grid-template-columns: repeat(3, minmax(170px, 1fr)) auto auto !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-assets-toolbar .cp-filter-field select{
	border-radius: var(--cp-radius-pill, 999px) !important;
	padding-right: 52px !important;
	background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50% !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-view-toggle--icon{
	width: 36px !important;
	min-width: 36px !important;
	height: 36px !important;
	min-height: 36px !important;
	padding: 0 !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-view-toggle--icon svg{
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-grid{
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
	gap: 12px !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-card{
	border: 1px solid var(--cp-border-faint) !important;
	border-radius: var(--cp-radius-md) !important;
	overflow: hidden !important;
	background: #ffffff !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-card__thumb{
	height: 150px !important;
	border-radius: 0 !important;
	border-bottom: 1px solid var(--cp-border-faint) !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-thumb{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-thumb--icon{
	object-fit: contain !important;
	padding: 18px !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-card__meta{
	padding: 10px !important;
	min-height: 0 !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-card__name{
	font-size: var(--cp-text-base) !important;
	line-height: 1.35 !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-card__actions{
	padding: 2px 0 0 !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-project-link{
	margin-top: 2px !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-grid.is-list{
	grid-template-columns: minmax(0, 1fr) !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-grid.is-list .cp-asset-card{
	display: grid !important;
	grid-template-columns: 168px minmax(0, 1fr) !important;
	align-items: stretch !important;
}

.cp-portal [data-cp-assets-module="1"] .cp-asset-grid.is-list .cp-asset-card__thumb{
	height: 100% !important;
	min-height: 124px !important;
	border-right: 1px solid var(--cp-border-faint) !important;
	border-bottom: 0 !important;
}

/* Final assets card modernization (single list mode) */
.cp-portal .cp-asset-grid--modern-list{
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 10px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card{
	grid-template-columns: 200px minmax(0, 1fr) !important;
	width: 100% !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb{
	background: #fafafa !important;
	height: 148px !important;
	min-height: 148px !important;
	overflow: hidden !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-thumb{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	max-width: none !important;
	display: block !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__name{
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

@media (max-width: 768px){
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card{
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb{
		border-right: 0 !important;
		border-bottom: 1px solid rgba(10,10,10,.10) !important;
		min-height: 160px !important;
	}
}

/* Assets spacing/button polish (hotfix) */
.cp-portal .cp-assets-toolbar{
	margin-bottom: 14px !important;
}

.cp-portal .cp-assets-toolbar__controls{
	column-gap: 10px !important;
	row-gap: 8px !important;
}

.cp-portal .cp-asset-grid--modern-list{
	gap: 12px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card{
	border-radius: var(--cp-radius-md) !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__meta{
	gap: 7px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__header{
	align-items: center !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__sub{
	margin: 0 !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__note{
	margin: 0 !important;
	color: var(--cp-muted-62) !important;
}

/* Make file type less dominant */
.cp-portal .cp-asset-grid--modern-list .cp-asset-type-pill{
	font-size: 10px !important;
	font-weight: 600 !important;
	padding: 2px 8px !important;
	opacity: .8 !important;
	background: #eef2f7 !important;
	color: #404040 !important;
	border: 1px solid rgba(10,10,10,.10) !important;
}

/* Clean modern icon actions */
.cp-portal .cp-asset-grid--modern-list .cp-asset-card__actions{
	display: flex !important;
	gap: 8px !important;
	padding: 0 !important;
	padding-left: 0 !important;
	padding-bottom: 0 !important;
	margin: 0 !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--icon{
	width: 38px !important;
	min-width: 38px !important;
	height: 38px !important;
	min-height: 38px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	background: #ffffff !important;
	border: 1px solid rgba(10,10,10,.16) !important;
	color: var(--cp-brand, #0a0a0a) !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--icon svg{
	width: 20px !important;
	height: 20px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--icon:hover{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
}

/* Keep preview image perfectly covered in preview area */
.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb,
.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb img,
.cp-portal .cp-asset-grid--modern-list .cp-asset-thumb{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb img{
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-thumb--icon{
	object-fit: contain !important;
	padding: 16px !important;
}

/* Mobile-friendly tap targets and spacing */
@media (max-width: 768px){
	.cp-portal .cp-assets-toolbar{
		padding: 10px !important;
	}
	.cp-portal .cp-assets-toolbar__controls{
		grid-template-columns: 1fr !important;
	}
	.cp-portal .cp-assets-toolbar .cp-filter-actions{
		width: 100% !important;
	}
	.cp-portal .cp-assets-toolbar .cp-filter-actions .cp-btn{
		flex: 1 1 auto !important;
		justify-content: center !important;
	}
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card__meta{
		padding: 10px !important;
	}
	.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--icon{
		width: 40px !important;
		min-width: 40px !important;
		height: 40px !important;
		min-height: 40px !important;
	}
}

/* Assets consistency cleanup v2 */
.cp-portal .cp-assets-toolbar .cp-filter-field select{
	padding-right: 64px !important;
	background-position:
		calc(100% - 24px) calc(50% - 2px),
		calc(100% - 16px) calc(50% - 2px) !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card{
	grid-template-columns: 200px minmax(0, 1fr) !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb{
	border-right: 1px solid rgba(10,10,10,.10) !important;
	border-bottom: 0 !important;
	height: 148px !important;
	min-height: 148px !important;
	overflow: hidden !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__meta{
	padding: 12px !important;
	gap: 8px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__header{
	display: flex !important;
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 10px !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-type-pill{
	font-size: 10px !important;
	font-weight: 900 !important;
	text-transform: uppercase !important;
	letter-spacing: .05em !important;
	opacity: .72 !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__actions{
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--text{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 32px !important;
	padding: 6px 12px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	border: 1px solid rgba(10,10,10,.16) !important;
	background: #ffffff !important;
	color: var(--cp-brand, #0a0a0a) !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-btn--text:hover{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb,
.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb img,
.cp-portal .cp-asset-grid--modern-list .cp-asset-thumb{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	max-width: none !important;
	display: block !important;
}

.cp-portal .cp-asset-grid--modern-list .cp-asset-thumb--icon{
	object-fit: contain !important;
	padding: 16px !important;
}

@media (max-width: 768px){
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card{
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card__thumb{
		border-right: 0 !important;
		border-bottom: 1px solid rgba(10,10,10,.10) !important;
		min-height: 168px !important;
	}
	.cp-portal .cp-asset-grid--modern-list .cp-asset-card__meta{
		padding: 10px !important;
	}
}

/* Final user-requested overrides */
.cp-portal[data-route-key="assets"] .cp-projects-shell{
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.cp-portal[data-route-key="assets"] .cp-assets-toolbar,
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list{
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-card__actions{
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 8px !important;
	align-items: stretch !important;
}

.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-btn--text{
	width: 100% !important;
	justify-content: center !important;
	padding: 7px 10px !important;
}

.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-project-link{
	font-size: var(--cp-text-sm) !important;
	font-weight: 700 !important;
}

.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill{
	font-size: 9px !important;
	font-weight: 900 !important;
	text-transform: uppercase !important;
	letter-spacing: .05em !important;
	padding: 2px 7px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	opacity: 1 !important;
}

.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--image{
	background: #dbeafe !important;
	color: #1d4ed8 !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--pdf{
	background: #fee2e2 !important;
	color: #b91c1c !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--document{
	background: #ede9fe !important;
	color: #6d28d9 !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--spreadsheet{
	background: #dcfce7 !important;
	color: #166534 !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--archive{
	background: #ffedd5 !important;
	color: #9a3412 !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--video{
	background: #e0e7ff !important;
	color: #3730a3 !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--audio{
	background: #fce7f3 !important;
	color: #9d174d !important;
}
.cp-portal[data-route-key="assets"] .cp-asset-grid--modern-list .cp-asset-type-pill--other{
	background: #e5ebf2 !important;
	color: #404040 !important;
}

@media (max-width: 1024px){
	.cp-portal [data-cp-assets-module="1"] .cp-assets-toolbar__controls{
		grid-template-columns: repeat(2, minmax(160px, 1fr)) auto auto !important;
	}
}

@media (max-width: 768px){
	.cp-portal [data-cp-assets-module="1"] .cp-assets-toolbar__controls{
		grid-template-columns: 1fr !important;
	}
	.cp-portal [data-cp-assets-module="1"] .cp-asset-grid{
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.cp-portal [data-cp-assets-module="1"] .cp-asset-grid.is-list .cp-asset-card{
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.cp-portal [data-cp-assets-module="1"] .cp-asset-grid.is-list .cp-asset-card__thumb{
		min-height: 140px !important;
		border-right: 0 !important;
		border-bottom: 1px solid var(--cp-border-faint) !important;
	}
}

/* ===== Final hard overrides: assets cards/buttons/pills ===== */
.cp-portal .cp-card.cp-projects-shell{
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-assets-toolbar,
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list{
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-card__actions{
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-card__actions > a.cp-btn.cp-asset-btn.cp-asset-btn--text{
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 32px !important;
	padding: 7px 10px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #ffffff !important;
	border: 1px solid rgba(10,10,10,.2) !important;
	color: var(--cp-brand, #0a0a0a) !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	font-size: var(--cp-text-sm) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-card__actions > a.cp-btn.cp-asset-btn.cp-asset-btn--text:hover{
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
	border-color: var(--cp-btn-primary-bg, #0a0a0a) !important;
	color: #ffffff !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-project-link{
	font-size: var(--cp-text-sm) !important;
	font-weight: 700 !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-card__header{
	display: flex !important;
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 10px !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	font-size: 9px !important;
	font-weight: 900 !important;
	text-transform: uppercase !important;
	letter-spacing: .05em !important;
	padding: 2px 7px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	opacity: 1 !important;
	border: 1px solid rgba(10,10,10,.08) !important;
}

.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--image{ background:#dbeafe !important; color:#1d4ed8 !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--pdf{ background:#fee2e2 !important; color:#b91c1c !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--document{ background:#ede9fe !important; color:#6d28d9 !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--spreadsheet{ background:#dcfce7 !important; color:#166534 !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--archive{ background:#ffedd5 !important; color:#9a3412 !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--video{ background:#e0e7ff !important; color:#3730a3 !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--audio{ background:#fce7f3 !important; color:#9d174d !important; }
.cp-portal .cp-card.cp-projects-shell .cp-asset-grid--modern-list .cp-asset-type-pill--other{ background:#e5ebf2 !important; color:#404040 !important; }

.cp-portal .cp-card.cp-projects-shell .cp-assets-toolbar .cp-filter-field select{
	padding-right: 66px !important;
	background-position:
		calc(100% - 24px) calc(50% - 2px),
		calc(100% - 16px) calc(50% - 2px) !important;
}
/* FILE MANAGER v2.0 styles live in assets-page.php inline style block */

/* Global button hover: bright red (lighter on hover) */
.cp-portal .cp-btn:hover,
.cp-portal .cp-btn:focus,
.cp-portal a.cp-btn:hover,
.cp-portal button.cp-btn:hover,
.cp-portal input[type="button"]:hover,
.cp-portal input[type="submit"]:hover,
.cp-portal .jet-form-builder__submit:hover,
.cp-portal .jet-form-builder button[type="submit"]:hover{
	background: var(--cp-brand-hot, #262626) !important;
	background-color: var(--cp-brand-hot, #262626) !important;
	border-color: var(--cp-brand-hot, #262626) !important;
	color: #ffffff !important;
}

/* Label/value weight hierarchy: labels bold+dark, values medium+softer */
.cp-portal .cp-k{
	font-weight: 700 !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
}
.cp-portal .cp-v{
	font-weight: 500 !important;
	color: #404040 !important;
}

/* Dashboard action rows: 8px rounding */
.cp-portal .cp-action-row{
	border-radius: var(--cp-radius-md) !important;
}

/* Cards: 8px rounding globally */
.cp-portal .cp-card,
.cp-portal .cp-project-shell > .cp-card{
	border-radius: var(--cp-radius-md) !important;
}
@media (max-width: 1024px){
	.cp-portal .cp-card{
		border-radius: var(--cp-radius-md) !important;
	}
}

/* ============================================================
   Dashboard layout - priority row, twin row, compact helpers
   ============================================================ */

.cp-portal .cp-dash-priority-row{
	display: grid !important;
	grid-template-columns: 1.35fr 1fr !important;
	gap: 12px !important;
	margin-bottom: 12px !important;
	align-items: stretch !important;
}

.cp-portal .cp-dash-priority-col{
	display: flex !important;
	flex-direction: column !important;
}

.cp-portal .cp-dash-priority-col > .cp-card{
	margin-bottom: 0 !important;
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column !important;
}

.cp-portal .cp-dash-priority-col--payment .cp-next-payment{
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	flex: 1 1 auto !important;
}

.cp-portal .cp-dash-twin-row{
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 12px !important;
	margin-bottom: 12px !important;
	align-items: stretch !important;
}

.cp-portal .cp-dash-twin-row--single{
	grid-template-columns: 1fr !important;
}

.cp-portal .cp-dash-twin-col{
	display: flex !important;
	flex-direction: column !important;
}

.cp-portal .cp-dash-twin-col > .cp-card{
	margin-bottom: 0 !important;
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column !important;
}

.cp-portal .cp-dash-kv-grid{
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 0 16px !important;
}

.cp-portal .cp-dash-kv-grid .cp-kv{
	border-bottom: 0 !important;
}

.cp-portal .cp-btn--outline,
.cp-portal .cp-btn--secondary,
.cp-portal .cp-btn.cp-btn--secondary,
.cp-portal a.crm-btn.crm-btn--secondary:not(.cp-btn--primary),
.cp-portal button.crm-btn.crm-btn--secondary:not(.cp-btn--primary){
	background: var(--cp-surface, #ffffff) !important;
	border: 1px solid var(--cp-border, #d5dbe3) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: currentColor !important;
	min-height: 36px !important;
	padding: 8px 16px !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
}

@media (hover:hover){
	.cp-portal .cp-btn--outline:hover,
	.cp-portal .cp-btn--secondary:hover,
	.cp-portal .cp-btn.cp-btn--secondary:hover,
	.cp-portal a.crm-btn.crm-btn--secondary:not(.cp-btn--primary):hover,
	.cp-portal button.crm-btn.crm-btn--secondary:not(.cp-btn--primary):hover{
		background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
		border-color: var(--cp-heading-text, #0a0a0a) !important;
		color: var(--cp-heading-text, #0a0a0a) !important;
		-webkit-text-fill-color: currentColor !important;
	}
}

.cp-portal .cp-empty-state{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 40px 24px !important;
	text-align: center !important;
}
.cp-portal .cp-empty-state__icon{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: 14px;
	border-radius: 50%;
	background: var(--cp-fill-01, rgba(11,13,16,.04));
	color: var(--cp-muted-62, #a3a3a3);
}
.cp-portal .cp-empty-state__icon svg{
	width: 28px;
	height: 28px;
	stroke: currentColor;
	fill: none;
}
.cp-portal .cp-empty-state h3,
.cp-portal .cp-empty-state__title{
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-heading-text, #0a0a0a);
}
.cp-portal .cp-empty-state p,
.cp-portal .cp-empty-state__desc{
	margin: 0;
	font-size: var(--cp-text-base);
	line-height: 1.5;
	color: var(--cp-muted-62, #525252);
	max-width: 340px;
}

.cp-portal .cp-appt-list .cp-appt-item:first-child{
	border-top: 0 !important;
	padding-top: 4px !important;
}

.cp-portal .cp-appt-list .cp-appt-item:last-child{
	padding-bottom: 4px !important;
}

.cp-portal .cp-action-items-dash{
	margin-bottom: 12px !important;
}

.cp-portal .cp-dashboard-transactions-wrap{
	margin-bottom: 12px !important;
}

.cp-portal .cp-dashboard-transactions-wrap .cp-section-head{
	margin-bottom: 12px !important;
}

@media (max-width: 1024px){
	.cp-portal .cp-dash-priority-row{
		grid-template-columns: 1fr !important;
	}
	.cp-portal .cp-dash-twin-row{
		grid-template-columns: 1fr !important;
	}
	.cp-portal .cp-dash-kv-grid{
		grid-template-columns: 1fr !important;
	}
}

/* ============================================================
   Projects index polish
   ============================================================ */

.cp-portal .cp-projects-table{
	margin-top: 0 !important;
}

.cp-portal .cp-projects-table thead th{
	padding: 12px 16px !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: #737373 !important;
	white-space: nowrap !important;
}

.cp-portal .cp-projects-table .cp-th--action{
	width: 1% !important;
	white-space: nowrap !important;
}

.cp-portal .cp-projects-table td{
	padding: 14px 14px !important;
	font-size: 13.5px !important;
	vertical-align: middle !important;
}

.cp-portal .cp-projects-table__name{
	font-weight: 700 !important;
	font-size: 14px !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	text-decoration: none !important;
}

.cp-portal .cp-projects-table__name:hover{
	color: var(--cp-brand, #0a0a0a) !important;
	text-decoration: none !important;
}

.cp-portal .cp-projects-table .cp-pill{
	padding: 4px 10px !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
}

.cp-portal .cp-projects-table .cp-cell--money{
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
	white-space: nowrap !important;
}

.cp-portal .cp-text--overdue{
	color: var(--cp-pill-overdue-bg, #b91c1c) !important;
	font-weight: 700 !important;
}

.cp-portal .cp-btn--sm{
	min-height: 32px !important;
	padding: 6px 14px !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
	width: auto !important;
}

.cp-portal .cp-td--action{
	text-align: right !important;
	white-space: nowrap !important;
}

/* Mobile project cards */
.cp-portal .cp-project-mobile-card{
	border-radius: var(--cp-radius-md) !important;
	padding: 16px !important;
	margin-bottom: 12px !important;
	border: 1px solid var(--cp-border-soft) !important;
	background: #ffffff !important;
	box-shadow: var(--cp-shadow-card) !important;
}

.cp-portal .cp-project-mobile-card__head{
	margin-bottom: 10px !important;
	gap: 10px !important;
}

.cp-portal .cp-project-mobile-card__title{
	font-size: 18px !important;
	font-weight: 800 !important;
	line-height: 1.25 !important;
	margin: 0 !important;
}

.cp-portal .cp-project-mobile-card__row{
	padding: 10px 0 !important;
	border-top: 1px solid rgba(10,10,10,.06) !important;
	font-size: 13.5px !important;
}

.cp-portal .cp-project-mobile-card__row:first-of-type{
	border-top: 1px solid rgba(10,10,10,.08) !important;
}

.cp-portal .cp-project-mobile-card__row span{
	font-size: var(--cp-text-sm) !important;
}

.cp-portal .cp-project-mobile-card__row strong{
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
}

/* ============================================================
   Single project view polish
   ============================================================ */

.cp-portal .cp-project-top-summary{
	padding: 24px !important;
}

.cp-portal .cp-project-headline{
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}

.cp-portal .cp-pv-kv-row{
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 0 16px !important;
	border-top: 1px solid rgba(10,10,10,.06) !important;
	border-bottom: 1px solid rgba(10,10,10,.06) !important;
	padding: 6px 0 !important;
	margin: 4px 0 0 !important;
}

.cp-portal .cp-pv-kv-row .cp-kv{
	border-bottom: 0 !important;
}

.cp-portal .cp-project-top-actions{
	padding-top: 4px !important;
	gap: 10px !important;
}

/* Document rows - layout is inline-styled in PHP to defeat theme overrides.
   CSS here is only for hover/focus states that can't be inlined. */

/* Tab intro copy */
.cp-portal .cp-tab-intro{
	margin: 0 0 16px !important;
	font-size: 13.5px !important;
	color: var(--cp-muted-62, #525252) !important;
	line-height: 1.5 !important;
}

/* Project progress bar inside top summary */
.cp-portal .cp-project-top-summary .cp-project-progress{
	background: #f8f9fb !important;
	border-radius: var(--cp-radius-md) !important;
}

/* Responsive */
@media (max-width: 1024px){
	.cp-portal .cp-project-top-summary{
		padding: 18px !important;
	}
	.cp-portal .cp-pv-kv-row{
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 640px){
	.cp-portal .cp-project-top-summary{
		padding: 16px !important;
	}
}

/* Files action bar inside project view */
.cp-portal .cp-pv-files-actions{
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	margin-bottom: 16px !important;
	flex-wrap: wrap !important;
}

.cp-portal a.cp-pv-files-viewall,
.cp-portal a.cp-pv-files-viewall:link,
.cp-portal a.cp-pv-files-viewall:visited{
	font-size: var(--cp-text-base) !important;
	font-weight: 700 !important;
	color: var(--cp-brand, #0a0a0a) !important;
	text-decoration: none !important;
	background: none !important;
	border: none !important;
	padding: 0 !important;
	cursor: pointer !important;
}

.cp-portal a.cp-pv-files-viewall:hover,
.cp-portal a.cp-pv-files-viewall:focus,
.cp-portal a.cp-pv-files-viewall:active,
.cp-portal .cp-project-sections a.cp-pv-files-viewall:hover,
.cp-portal .cp-project-shell a.cp-pv-files-viewall:hover{
	color: var(--cp-brand-hot, #262626) !important;
	text-decoration: none !important;
	background: none !important;
	border: none !important;
}

/* Document row link - all states */
.cp-portal a.cp-doc-row__link,
.cp-portal a.cp-doc-row__link:link,
.cp-portal a.cp-doc-row__link:visited{
	text-decoration: none !important;
	color: #ffffff !important;
	background: var(--cp-btn-primary-bg, #0a0a0a) !important;
}

.cp-portal a.cp-doc-row__link:hover,
.cp-portal a.cp-doc-row__link:focus,
.cp-portal a.cp-doc-row__link:active,
.cp-portal .cp-project-sections a.cp-doc-row__link:hover,
.cp-portal .cp-project-shell a.cp-doc-row__link:hover{
	background: var(--cp-brand-hot, #262626) !important;
	background-color: var(--cp-brand-hot, #262626) !important;
	color: #ffffff !important;
	text-decoration: none !important;
}

/* Document row hover */
.cp-portal .cp-doc-row:hover{
	background: #fafafa !important;
}

/* ============================================================
   Documents page - project cards
   ============================================================ */
.cp-portal .cp-docs-project{
	border-radius: var(--cp-radius-md) !important;
}

.cp-portal .cp-docs-project__head h3{
	margin: 0 !important;
}

@media (max-width: 640px){
	.cp-portal .cp-docs-project__head{
		padding: 14px 16px !important;
	}
	.cp-portal .cp-docs-project > div:last-child{
		padding: 10px 16px 14px !important;
	}
}

/* ============================================================
   Deliverables - project tab cards
   ============================================================ */
.cp-portal .cp-dlv-card{
	background: var(--cp-fill-01, rgba(11,13,16,.015)) !important;
	border: 1px solid var(--cp-border-faint, rgba(11,13,16,.04)) !important;
	border-radius: var(--cp-radius-md) !important;
}
.cp-portal .cp-dlv-card:hover{
	border-color: var(--cp-border, rgba(11,13,16,.08)) !important;
}
.cp-portal .cp-dlv-card__title{
	color: var(--cp-heading-text, #0a0a0a) !important;
}
.cp-portal .cp-dlv-card__cat{
	color: var(--cp-muted-62, #525252) !important;
	background: var(--cp-fill-02, rgba(11,13,16,.03)) !important;
}
.cp-portal .cp-dlv-card__date{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-dlv-card__desc{
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-dlv-card__instructions{
	background: var(--cp-fill-02, rgba(11,13,16,.03)) !important;
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-dlv-card__instructions strong{
	color: var(--cp-heading-text, #0a0a0a) !important;
}
.cp-portal .cp-dlv-card__section-label{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-dlv-att-item a,
.cp-portal .cp-dlv-link-item a{
	color: var(--cp-brand, #0a0a0a) !important;
}
.cp-portal .cp-dlv-att-item a:hover,
.cp-portal .cp-dlv-link-item a:hover{
	color: var(--cp-brand-hot, #262626) !important;
}
.cp-portal .cp-dlv-actions{
	border-top-color: var(--cp-border-faint, rgba(11,13,16,.04)) !important;
}
.cp-portal .cp-dlv-actions a.cp-dlv-btn{
	color: var(--cp-brand, #0a0a0a) !important;
}
.cp-portal .cp-dlv-actions a.cp-dlv-btn:hover{
	color: var(--cp-brand-hot, #262626) !important;
}
.cp-portal .cp-dlv-empty__title{
	color: var(--cp-heading-text, #0a0a0a) !important;
}
.cp-portal .cp-dlv-empty__sub{
	color: var(--cp-muted-62, #525252) !important;
}

/* ============================================================
   To Do / Action Items - dashboard card + project block
   ============================================================ */
.cp-portal .cp-action-items-dash{
	margin-bottom: 12px !important;
}

/* Dashboard To Do card */
.cp-portal .cp-todo-dash__title{
	color: var(--cp-heading-text, #0a0a0a) !important;
}
.cp-portal .cp-todo-badge{
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-todo-text{
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-todo-row.is-done .cp-todo-text{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-todo-meta__project{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-todo-meta__due{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-todo-meta__due.is-overdue{
	color: var(--cp-pill-overdue-bg, #b91c1c) !important;
}
.cp-portal .cp-todo-check__box{
	border-color: var(--cp-border, rgba(11,13,16,.18)) !important;
}
.cp-portal .cp-todo-check:hover .cp-todo-check__box{
	border-color: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-todo-row.is-done .cp-todo-check__box{
	background: var(--cp-pill-paid-bg, #16a34a) !important;
	border-color: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-todo-empty__text{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-todo-empty__icon svg{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-todo-list{
	border-color: var(--cp-border-faint, rgba(11,13,16,.06)) !important;
}
.cp-portal .cp-todo-row{
	border-color: var(--cp-border-faint, rgba(11,13,16,.06)) !important;
}
.cp-portal .cp-todo-row:hover{
	background: var(--cp-fill-01, rgba(11,13,16,.015)) !important;
}

/* Project-level To Do block */
.cp-portal .cp-ai-badge{
	font-size: var(--cp-text-sm) !important;
	font-weight: 700 !important;
	color: var(--cp-pill-paid-bg, #16a34a) !important;
	background: color-mix(in srgb, var(--cp-pill-paid-bg, #16a34a) 10%, transparent) !important;
	padding: 3px 10px !important;
	border-radius: var(--cp-radius-pill) !important;
}
.cp-portal .cp-ai-block{
	border-radius: var(--cp-radius-md) !important;
}
.cp-portal .cp-ai-row__title{
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-ai-row.is-done .cp-ai-row__title{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-row__desc{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-row__project,
.cp-portal .cp-ai-row__due{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-row__due.is-overdue{
	color: var(--cp-pill-overdue-bg, #b91c1c) !important;
}
.cp-portal .cp-ai-check__box{
	border-color: var(--cp-border, rgba(11,13,16,.18)) !important;
}
.cp-portal .cp-ai-check:hover .cp-ai-check__box{
	border-color: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-ai-row.is-done .cp-ai-check__box{
	background: var(--cp-pill-paid-bg, #16a34a) !important;
	border-color: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-ai-completed-toggle{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-completed-toggle:hover{
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-update__actions{
	background: var(--cp-fill-01, rgba(11,13,16,.015)) !important;
	border-color: var(--cp-border-faint, rgba(11,13,16,.04)) !important;
}
.cp-portal .cp-update__actions-label{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-inline__icon{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-ai-inline__icon--done{
	color: var(--cp-pill-paid-bg, #16a34a) !important;
}
.cp-portal .cp-ai-inline__text{
	color: var(--cp-text, #0b0d10) !important;
}
.cp-portal .cp-ai-inline.is-done .cp-ai-inline__text{
	color: var(--cp-muted-62, #525252) !important;
}

/* ============================================================
   Notification type tags (solid pill badges)
   ============================================================ */
.cp-portal .cp-ntf-tag{
	display: inline-flex;
	align-items: center;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	padding: 3px 9px;
	border-radius: 4px;
	line-height: 1.3;
	margin-right: 8px;
	white-space: nowrap;
	flex-shrink: 0;
}
.cp-portal .cp-ntf-tag--update{
	background: var(--cp-pill-neutral-bg, #404040);
	color: #fff;
}
.cp-portal .cp-ntf-tag--todo,
.cp-portal .cp-ntf-tag--action{
	background: #92400e;
	color: #fff;
}
.cp-portal .cp-ntf-tag--completed,
.cp-portal .cp-ntf-tag--done{
	background: var(--cp-pill-completed-bg, #009688);
	color: #fff;
}
.cp-portal .cp-ntf-tag--document{
	background: #4338ca;
	color: #fff;
}

/* Notification card rows */
.cp-portal .cp-update{
	background: var(--cp-surface, #fff) !important;
	border-color: var(--cp-border-faint, rgba(11,13,16,.06)) !important;
}
.cp-portal .cp-update__title a{
	color: var(--cp-brand, #0a0a0a) !important;
}
.cp-portal .cp-update__title a:hover{
	color: var(--cp-brand-hot, #262626) !important;
}
.cp-portal .cp-update__date{
	color: var(--cp-muted-62, #525252) !important;
}
.cp-portal .cp-update__headline{
	color: var(--cp-text, #0b0d10) !important;
}

/* ============================================================
   Safe additions (non-breaking, no scoping issues)
   ============================================================ */
.cp-doc-row__link:hover{background:var(--cp-brand-hot,#262626) !important;}
.cp-pv-files-viewall{font-size:var(--cp-text-base) !important;font-weight:var(--cp-font-weight-heading,700) !important;color:var(--cp-brand,#0a0a0a) !important;text-decoration:none !important;background:none !important;border:none !important;padding:0 !important;margin-left:12px !important;transition:color .15s;}
.cp-pv-files-viewall:hover{color:var(--cp-brand-hot,#262626) !important;}

/* ============================================================
   Shell polish - header, sidebar, footer micro-refinements
   ============================================================ */
.cp-portal .cp-shell-profile__trigger{
	transition: background .15s ease !important;
}
.cp-portal .cp-shell-profile__trigger:hover{
	background: var(--cp-fill-02, rgba(10,10,10,.04)) !important;
}
.cp-portal .cp-shell-profile__menu .cp-shell-profile__link{
	transition: background .12s ease, color .12s ease !important;
}
.cp-portal .cp-shell-profile__menu .cp-shell-profile__link:hover{
	background: var(--cp-fill-02, rgba(10,10,10,.04)) !important;
}
.cp-portal .cp-shell-profile__menu .cp-shell-profile__link--danger:hover{
	background: rgba(185,28,28,.06) !important;
}
.cp-portal .cp-header-icon-btn{
	transition: background .12s ease, color .12s ease !important;
}
.cp-portal .cp-header-icon-btn:hover{
	background: var(--cp-fill-02, rgba(10,10,10,.05)) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
}

.cp-portal .cp-sidebar-cta{
	display: block !important;
	padding: 16px !important;
	border-radius: var(--cp-radius-input) !important;
	background: rgba(255,255,255,.07) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	text-decoration: none !important;
	transition: background .2s ease, border-color .2s ease !important;
}
.cp-portal .cp-sidebar-cta:hover{
	background: rgba(255,255,255,.12) !important;
	border-color: rgba(255,255,255,.22) !important;
}
.cp-portal .cp-sidebar-cta__title{
	font-size: var(--cp-text-base) !important;
	font-weight: 700 !important;
	color: #fafafa !important;
	line-height: 1.2 !important;
}
.cp-portal .cp-sidebar-cta__desc{
	font-size: var(--cp-text-sm) !important;
	color: rgba(248,250,252,.5) !important;
	line-height: 1.45 !important;
}
.cp-portal .cp-sidebar-cta__btn{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 5px !important;
	min-height: 36px !important;
	padding: 8px 16px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	background: var(--cp-btn-primary-bg, var(--cp-brand, #0a0a0a)) !important;
	color: var(--cp-btn-primary-text, #fff) !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
	letter-spacing: normal !important;
	border: 1px solid transparent !important;
	transition: background .15s ease, border-color .15s ease !important;
	cursor: pointer !important;
}
.cp-portal .cp-sidebar-cta:hover .cp-sidebar-cta__btn{
	background: var(--cp-brand-hot, #262626) !important;
	border-color: var(--cp-brand-hot, #262626) !important;
}

/* ============================================================
   Wave 7 - Client portal mobile / iOS QoL (Part B UX-C-*)
   ============================================================ */
@media (max-width: 1024px) {
	.cp-portal .cp-mobile-toggle-nav{
		min-width: 44px;
		min-height: 44px;
		width: 44px;
		height: 44px;
	}
}

/* Booking / intake shortcode: avoid iOS input zoom; comfortable taps (scoped to form root) */
.standalone-form-layout.cp-bf .cp-bf-input,
.standalone-form-layout.cp-bf input.cp-bf-input,
.standalone-form-layout.cp-bf select,
.standalone-form-layout.cp-bf textarea{
	font-size: max(16px, 1rem);
}

@media (max-width: 1024px) {
	.standalone-form-layout.cp-bf .cp-bf-input,
	.standalone-form-layout.cp-bf input.cp-bf-input,
	.standalone-form-layout.cp-bf select,
	.standalone-form-layout.cp-bf textarea{
		min-height: 44px;
		box-sizing: border-box;
	}
	.standalone-form-layout.cp-bf .cp-bf-btn{
		min-height: 44px;
		padding: 8px 16px;
		box-sizing: border-box;
	}
	.standalone-form-layout.cp-bf .cp-bf-nav{
		padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
	}
}

/* ============================================================
   Unified Button & Card-Action System
   ============================================================
   Hierarchy:
     1. cp-btn (primary/dominant) — dark bg, white text — SINGLE main action
     2. cp-btn cp-btn--secondary — white bg, subtle border, dark text — supporting actions
     3. cp-btn cp-btn--sm — smaller variant for tight spaces (works with primary or secondary)
     4. cp-section-link / cp-btn--link-action — text-only actions
   ============================================================ */

/* Card-action area: consistent spacing for stacked button placement below card content */
.cp-portal .cp-card-actions{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--cp-border-faint, rgba(10, 10, 10, .06));
}
.cp-portal .cp-card-actions--stack{
	flex-direction: column;
}
.cp-portal .cp-card-actions--center{
	justify-content: center;
}

/* Hub-card CTA upgrade: non-dominant button inside entity cards */
.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__cta{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 34px;
	padding: 7px 16px;
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: var(--cp-radius-pill, 999px);
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	text-align: center;
	transition: background .12s ease, border-color .12s ease;
	width: auto;
	align-self: flex-start;
	box-shadow: var(--cp-shadow-card);
}
@media (hover:hover){
	.cp-portal .cp-doc-hub-card--entity:hover .cp-doc-hub-card__cta,
	.cp-portal .cp-doc-hub-card--entity .cp-doc-hub-card__cta:hover{
		background: var(--cp-fill-02, rgba(11,13,16,.035));
		border-color: var(--cp-heading-text, #0a0a0a);
		color: var(--cp-heading-text, #0a0a0a);
	}
}

/* Gallery-card CTA: non-dominant button */
.cp-portal .cp-gal-card .cp-doc-hub-card__cta{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 32px;
	padding: 6px 14px;
	background: var(--cp-surface, #ffffff);
	border: 1px solid var(--cp-border, #d5dbe3);
	border-radius: var(--cp-radius-pill, 999px);
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: var(--cp-heading-text, #0a0a0a);
	text-align: center;
	transition: background .12s ease, border-color .12s ease;
	width: auto;
	align-self: flex-start;
	margin-top: 6px;
	box-shadow: var(--cp-shadow-card);
}
@media (hover:hover){
	.cp-portal .cp-gal-card:hover .cp-doc-hub-card__cta{
		background: var(--cp-fill-02, rgba(11,13,16,.035));
		border-color: var(--cp-heading-text, #0a0a0a);
	}
}

/* Billing list: Pay Now as non-dominant button */
.cp-portal .cp-wl-pay-link{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	min-height: 34px !important;
	padding: 7px 18px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	background: var(--cp-surface, #ffffff) !important;
	border: 1px solid var(--cp-border, #d5dbe3) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	-webkit-text-fill-color: currentColor !important;
	font-size: var(--cp-text-base) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: background .12s ease, border-color .12s ease !important;
	white-space: nowrap !important;
	box-shadow: var(--cp-shadow-card) !important;
}
@media (hover:hover){
	.cp-portal .cp-wl-pay-link:hover{
		background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
		border-color: var(--cp-heading-text, #0a0a0a) !important;
	}
}
.cp-portal .cp-wl-view-link{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 30px !important;
	padding: 5px 14px !important;
	border-radius: var(--cp-radius-pill, 999px) !important;
	background: var(--cp-surface, #ffffff) !important;
	border: 1px solid var(--cp-border, #d5dbe3) !important;
	color: var(--cp-heading-text, #0a0a0a) !important;
	font-size: var(--cp-text-sm) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	opacity: 1 !important;
	transition: background .12s ease, border-color .12s ease !important;
	white-space: nowrap !important;
	box-shadow: var(--cp-shadow-card) !important;
}
@media (hover:hover){
	.cp-portal .cp-wl-view-link:hover{
		background: var(--cp-fill-02, rgba(11,13,16,.035)) !important;
		border-color: var(--cp-heading-text, #0a0a0a) !important;
		text-decoration: none !important;
	}
}

/* ============================================================
   Responsive: Unified Button & Card System
   ============================================================ */

/* Tablet: ≤1024px — tighten spacing, ensure tap targets */
@media (max-width: 1024px){
	.cp-portal .cp-btn,
	.cp-portal input[type="submit"]{
		min-height: 40px;
	}
	.cp-portal .cp-btn--sm{
		min-height: 36px !important;
	}
}

/* Small laptop / large tablet: ≤768px */
@media (max-width: 768px){
	.cp-portal .cp-doc-hub-grid{
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}
	.cp-portal .cp-dash-snapshot__actions{
		flex-direction: row;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 8px;
	}
	.cp-portal .cp-dash-snapshot__cta{
		width: auto;
	}
}

/* Paid invoice: badge + View inline, not stacked */
.cp-portal .cp-wl-item__action{
	flex-direction: row !important;
	align-items: center !important;
	gap: 8px !important;
}

/* Subtle shadow on all non-dominant / secondary buttons globally */
.cp-portal .cp-btn--secondary,
.cp-portal .cp-btn--outline,
.cp-portal .cp-btn.cp-btn--secondary,
.cp-portal .cp-doc-hub-card__cta{
	box-shadow: var(--cp-shadow-card);
}

/* Gallery card: pills sit above title in DOM order (no reorder needed) */
.cp-portal .cp-gal-card .cp-doc-hub-card__pills{
	padding-left: 0;
}

/* Session card: hide Location/Total/Remaining rows */
.cp-portal .cp-doc-hub-card--entity .cp-hub-card-rows{
	display: none !important;
}

/* Mobile: ≤640px — keep buttons auto-width, never full-width */
@media (max-width: 640px){
	.cp-portal .cp-card-actions{
		flex-direction: column;
		align-items: flex-start;
	}
	.cp-portal .cp-card-actions .cp-btn{
		width: auto;
	}
	.cp-portal .cp-doc-hub-card__cta{
		width: auto;
	}
	.cp-portal .cp-wl-item__action{
		width: auto !important;
		align-items: flex-start !important;
	}
	.cp-portal .cp-wl-pay-link{
		width: auto !important;
	}
	.cp-portal .cp-wl-view-link{
		width: auto !important;
	}
	.cp-portal .cp-gv-chosen-banner__actions{
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 8px !important;
	}
	.cp-portal .cp-gv-chosen-banner__actions .cp-btn{
		width: auto !important;
	}
}

/* Small mobile: ≤480px — compact buttons */
@media (max-width: 480px){
	.cp-portal .cp-btn{
		padding: 8px 14px;
		font-size: var(--cp-text-base);
	}
	.cp-portal .cp-btn--sm{
		padding: 6px 12px !important;
		font-size: var(--cp-text-sm) !important;
	}
}

/* ---------- Shared back-link utilities (mirrors admin-portal.css) ---------- */
.cp-portal .cp-page-back-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 0 0 12px;
	width: 100%;
	box-sizing: border-box;
}
.cp-portal .crm-link-action {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 4px;
	margin: 0;
	border: none;
	background: transparent;
	box-shadow: none;
	font: inherit;
	font-size: var(--cp-text-base);
	font-weight: 600;
	color: #737373;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	white-space: nowrap;
}
.cp-portal .crm-link-action:hover {
	color: #0a0a0a;
	text-decoration: underline;
}

/* ---------- U-04: Custom login page (front-end, body.login.cp-portal) ----------
   Loads with portal.css + cp-login inline (settings colors). Active theme CSS may still affect wp-login. */
body.login.cp-portal .epl-panel {
	box-sizing: border-box;
}
body.login.cp-portal .epl-layout--classic .epl-panel,
body.login.cp-portal .epl-layout--reversed .epl-panel,
body.login.cp-portal .epl-layout--stacked .epl-panel {
	border: 1px solid var(--cp-border-soft, rgba(38, 38, 38, 0.09));
	border-radius: var(--cp-radius-card, 16px);
	background: var(--cp-surface, #fff);
	box-shadow: var(--cp-shadow-panel, 0 4px 12px rgba(0, 0, 0, 0.08));
	padding: var(--cp-space-4, 24px);
}
body.login.cp-portal .epl-title {
	font-weight: var(--cp-font-weight-heading, 700);
	font-size: clamp(1.375rem, 3.2vw, 1.75rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--cp-heading-text, #0a0a0a);
}
body.login.cp-portal .epl-sub {
	font-weight: 600;
	font-size: var(--cp-text-base, 13px);
	color: var(--cp-muted-62, #525252);
}
body.login.cp-portal #login_error,
body.login.cp-portal .message,
body.login.cp-portal .success {
	border-color: var(--cp-border-soft, rgba(38, 38, 38, 0.09)) !important;
	background: var(--cp-fill-01, rgba(38, 38, 38, 0.02)) !important;
	color: var(--cp-text, #262626) !important;
}
body.login.cp-portal #login_error {
	border-left-color: var(--cp-brand-hot, #262626) !important;
}
body.login.cp-portal #nav a,
body.login.cp-portal .privacy-policy-page-link a {
	color: var(--cp-muted-62, #525252) !important;
}
body.login.cp-portal #nav a:hover,
body.login.cp-portal .privacy-policy-page-link a:hover {
	color: var(--cp-link, #0a0a0a) !important;
}
body.login.cp-portal .epl-powered {
	color: var(--cp-muted-50, rgba(38, 38, 38, 0.64));
}
body.login.cp-portal .epl-powered a {
	color: var(--cp-muted-62, #525252);
}
body.login.cp-portal .epl-powered a:hover {
	color: var(--cp-link, #0a0a0a);
}
body.login.cp-portal .epl-dots {
	min-height: 44px;
	align-items: center;
	padding: 6px 4px;
	box-sizing: border-box;
}
body.login.cp-portal .epl-dot {
	min-width: 32px;
	min-height: 8px;
	cursor: pointer;
}
body.login.cp-portal .epl-shell {
	max-width: 100vw;
	overflow-x: hidden;
}
