/* ==========================================================================
   All-Safe Customer Portal — Front-End Portal Styles (Mobile-first)
   Design: "Monitoring Center" — deep navy + signal blue, evoking a 24/7
   alarm/security monitoring brand (inspired by All-Safe's industry).
   ========================================================================== */

.ascp-portal {
	/* Dark mode is the customer portal default and matches the admin palette. */
	--ascp-navy: #f4f8ff;
	--ascp-navy-2: #163a5f;
	--ascp-primary: #6aaeff;
	--ascp-primary-dark: #4387ba;
	--ascp-accent: #63c1ff;
	--ascp-bg: #081b2e;
	--ascp-surface: #0f2a45;
	--ascp-surface-alt: #123452;
	--ascp-surface-soft: #183f61;
	--ascp-border: #2c5277;
	--ascp-text: #f3f8ff;
	--ascp-muted: #b7c8dc;
	--ascp-success: #4ade80;
	--ascp-warning: #f4bd50;
	--ascp-danger: #ff7d88;
	color-scheme: dark;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--ascp-text);
	background: var(--ascp-bg);
	width: 100%;
	box-sizing: border-box;
}

.ascp-portal[data-ascp-theme="light"] {
	--ascp-navy: #203650;
	--ascp-navy-2: #29436a;
	--ascp-primary: #29436a;
	--ascp-primary-dark: #0f52a8;
	--ascp-accent: #6f91b8;
	--ascp-bg: #f3f6fa;
	--ascp-surface: #ffffff;
	--ascp-surface-alt: #f8fafc;
	--ascp-surface-soft: #eef4fa;
	--ascp-border: #dce6f2;
	--ascp-text: #10233f;
	--ascp-muted: #5c7092;
	--ascp-success: #16a34a;
	--ascp-warning: #d97706;
	--ascp-danger: #dc2626;
	color-scheme: light;
}

.ascp-portal * {
	box-sizing: border-box;
}

/* ---------- Guest / Auth Wrapper ---------- */
.ascp-auth-wrapper {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: 48px 16px;
	background: radial-gradient(circle at top left, var(--ascp-navy-2), var(--ascp-navy) 60%);
	border-radius: 16px;
	min-height: 480px;
}

.ascp-auth-card {
	width: 100%;
	max-width: 420px;
	background: var(--ascp-surface);
	border-radius: 14px;
	padding: 32px 28px;
	box-shadow: 0 20px 45px rgba(10, 37, 64, 0.35);
}

.ascp-auth-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--ascp-primary), var(--ascp-navy));
	margin: 0 auto 16px;
}

.ascp-auth-title {
	text-align: center;
	margin-top: 0;
	margin-bottom: 22px;
	font-size: 22px;
	font-weight: 700;
	color: var(--ascp-navy);
}

.ascp-auth-footer {
	text-align: center;
	margin-top: 18px;
	font-size: 14px;
	color: var(--ascp-muted);
}

.ascp-auth-footer a {
	color: var(--ascp-primary);
	font-weight: 600;
	text-decoration: none;
}

/* ---------- Forms ---------- */
.ascp-form-row {
	margin-bottom: 16px;
	display: flex;
	flex-direction: column;
}

.ascp-form-row label {
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 6px;
	color: var(--ascp-navy);
}

.ascp-required {
	color: var(--ascp-danger);
}

.ascp-portal input[type="text"],
.ascp-portal input[type="email"],
.ascp-portal input[type="tel"],
.ascp-portal input[type="password"],
.ascp-portal input[type="number"],
.ascp-portal input[type="date"],
.ascp-portal input[type="file"],
.ascp-portal textarea,
.ascp-portal select {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--ascp-border);
	border-radius: 8px;
	font-size: 15px;
	min-height: 44px;
	background: var(--ascp-surface);
	color: var(--ascp-text);
	transition: border-color 0.15s ease;
}

.ascp-portal input:focus,
.ascp-portal textarea:focus,
.ascp-portal select:focus {
	outline: none;
	border-color: var(--ascp-primary);
	box-shadow: 0 0 0 3px rgba(23, 104, 209, 0.15);
}

.ascp-portal textarea {
	min-height: 100px;
	resize: vertical;
}

.ascp-checkbox-label,
.ascp-radio-label {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-size: 14px;
	color: var(--ascp-muted);
}

/* ---------- Buttons ---------- */
.ascp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px;
	border-radius: 8px;
	border: 1.5px solid var(--ascp-border);
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	background: var(--ascp-surface);
	color: var(--ascp-navy);
	transition: transform 0.1s ease, box-shadow 0.15s ease;
}

.ascp-btn-primary {
	background: linear-gradient(135deg, var(--ascp-primary), var(--ascp-navy-2));
	color: #fff;
	border-color: transparent;
	box-shadow: 0 6px 16px rgba(23, 104, 209, 0.35);
}

.ascp-btn-primary:hover {
	box-shadow: 0 8px 20px rgba(23, 104, 209, 0.45);
}

.ascp-btn-secondary {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.35);
}

.ascp-btn-block {
	width: 100%;
}

.ascp-btn-link {
	background: none;
	border: none;
	color: var(--ascp-primary);
	text-decoration: underline;
	margin-top: 10px;
	min-height: auto;
}

/* ---------- Alerts ---------- */
.ascp-alert {
	padding: 12px 14px;
	border-radius: 8px;
	margin-bottom: 16px;
	font-size: 14px;
}

.ascp-alert-success {
	background: #dcfce7;
	color: #166534;
}

.ascp-alert-error {
	background: #fee2e2;
	color: #991b1b;
}

/* ---------- 2FA OTP UI ---------- */
.ascp-otp-instructions {
	color: var(--ascp-muted);
	font-size: 14px;
	margin-bottom: 12px;
}

#ascp-otp-code {
	letter-spacing: 8px;
	text-align: center;
	font-size: 22px;
	font-weight: 700;
	color: var(--ascp-navy);
}

.ascp-otp-timer {
	font-size: 13px;
	color: var(--ascp-muted);
	margin-bottom: 14px;
	text-align: center;
}

/* ---------- Portal Header ---------- */
.ascp-portal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	background: linear-gradient(120deg, var(--ascp-navy) 0%, var(--ascp-navy-2) 55%, var(--ascp-primary) 130%);
	border-radius: 14px;
	padding: 20px 24px;
	margin-bottom: 20px;
	color: #fff;
}

.ascp-portal-header-main {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ascp-portal-shield {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 10px;
}

.ascp-portal-header h2 {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
}

.ascp-portal-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.75);
	margin-top: 3px;
}

.ascp-portal-status-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #4ade80;
	box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.25);
}

/* ---------- Nav (segmented pill control) ---------- */
.ascp-portal-nav {
	display: flex;
	gap: 4px;
	margin-bottom: 20px;
	overflow-x: auto;
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-radius: 10px;
	padding: 4px;
}

.ascp-nav-btn {
	background: none;
	border: none;
	border-radius: 7px;
	padding: 10px 16px;
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
	cursor: pointer;
	min-height: 40px;
	color: var(--ascp-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	flex: 1;
	transition: background 0.15s ease, color 0.15s ease;
}

.ascp-nav-btn.active {
	color: #fff;
	background: linear-gradient(135deg, var(--ascp-primary), var(--ascp-navy-2));
}

.ascp-mobile-nav-toggle {
	display: none;
	min-height: 44px;
	min-width: 44px;
	font-size: 22px;
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-radius: 8px;
	margin-bottom: 12px;
	color: var(--ascp-navy);
}

/* ---------- Overview Cards ---------- */
.ascp-portal-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
}

.ascp-portal-card {
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-left: 4px solid var(--ascp-primary);
	border-radius: 10px;
	padding: 18px;
	position: relative;
}

.ascp-portal-card:nth-child(2) {
	border-left-color: var(--ascp-accent);
}

.ascp-portal-card:nth-child(3) {
	border-left-color: var(--ascp-navy-2);
}

.ascp-portal-card h3 {
	margin: 0 0 8px;
	font-size: 12px;
	color: var(--ascp-muted);
	font-weight: 700;
}

.ascp-portal-card p {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	color: var(--ascp-navy);
}

.ascp-company-details div {
	font-size: 12px;
	line-height: 1.5;
	color: var(--ascp-text);
}

.ascp-company-details div:first-child {
	font-weight: 700;
	color: var(--ascp-navy);
}

/* ---------- Documents ---------- */
.ascp-doc-intro {
	color: var(--ascp-muted);
	font-size: 14px;
	margin-bottom: 16px;
}

.ascp-doc-section {
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-radius: 10px;
	padding: 0 18px 18px;
	margin-bottom: 16px;
	overflow: hidden;
}

.ascp-doc-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 -18px 14px;
	padding: 14px 18px;
	background: #eaf2ff;
	border-bottom: 1px solid var(--ascp-border);
}

.ascp-doc-header h3 {
	margin: 0;
	font-size: 15px;
	color: var(--ascp-navy);
}

.ascp-upload-btn {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 16px;
	background: var(--ascp-primary);
	color: #fff;
	border-radius: 8px;
	cursor: pointer;
	font-weight: 600;
	font-size: 14px;
}

.ascp-upload-btn input[type="file"] {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
}

.ascp-doc-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid var(--ascp-border);
	gap: 10px;
	flex-wrap: wrap;
}

.ascp-doc-item:last-child {
	border-bottom: none;
}

.ascp-frontend-message {
	flex-direction: column;
	align-items: flex-start;
}

.ascp-message-body {
	margin-bottom: 6px;
}

.ascp-message-attachment a {
	font-size: 13px;
	color: var(--ascp-primary);
	text-decoration: none;
}

.ascp-message-attachment a:hover {
	text-decoration: underline;
}

.ascp-empty-state {
	color: var(--ascp-muted);
	font-size: 14px;
	text-align: center;
	padding: 20px 0;
}

/* ---------- Badges ---------- */
.ascp-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	color: #fff;
	background: #94a3b8;
}

.ascp-badge-pending { background: var(--ascp-warning); }
.ascp-badge-approved { background: var(--ascp-success); }
.ascp-badge-rejected { background: var(--ascp-danger); }
.ascp-badge-suspended { background: #6b21a8; }
.ascp-badge-new { background: var(--ascp-primary); }
.ascp-badge-customer_replied { background: var(--ascp-danger); }
.ascp-badge-admin_replied { background: var(--ascp-success); }
.ascp-badge-closed { background: var(--ascp-muted); }

/* ---------- Tickets ---------- */
.ascp-ticket-list-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}

.ascp-ticket-list-header h3 {
	margin: 0;
	color: var(--ascp-navy);
}

.ascp-ticket-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ascp-ticket-row {
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-left: 3px solid var(--ascp-primary);
	border-radius: 8px;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	cursor: pointer;
	flex-wrap: wrap;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.1s ease;
}

.ascp-ticket-row:hover {
	box-shadow: 0 6px 16px rgba(10, 37, 64, 0.1);
}

.ascp-ticket-number {
	font-size: 12px;
	color: var(--ascp-muted);
	font-family: monospace;
}

.ascp-ticket-subject {
	flex: 1;
	font-weight: 600;
	min-width: 140px;
	color: var(--ascp-navy);
}

.ascp-ticket-detail {
	background: var(--ascp-surface);
	border: 1px solid var(--ascp-border);
	border-radius: 10px;
	padding: 18px;
	margin-top: 16px;
}

.ascp-ticket-thread-frontend h3,
#panel-tickets h3 {
	color: var(--ascp-navy);
}

/* ---------- Modal (New Ticket) ---------- */
.ascp-modal {
	position: fixed;
	inset: 0;
	background: rgba(10, 37, 64, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	padding: 16px;
}

.ascp-modal-content {
	background: var(--ascp-surface);
	border-radius: 12px;
	padding: 24px;
	width: 100%;
	max-width: 520px;
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
}

.ascp-modal-content h3 {
	color: var(--ascp-navy);
	margin-top: 0;
}

.ascp-modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
	min-width: 44px;
	min-height: 44px;
	color: var(--ascp-muted);
}

/* ==========================================================================
   Mobile-First Media Queries
   ========================================================================== */

@media (max-width: 1024px) {
	.ascp-portal-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.ascp-auth-wrapper {
		padding: 28px 12px;
	}

	.ascp-auth-card {
		padding: 22px 18px;
	}

	.ascp-portal-header {
		flex-direction: column;
		align-items: flex-start;
	}

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

	.ascp-doc-item {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 480px) {
	.ascp-portal-nav {
		display: none;
	}

	.ascp-portal-nav.ascp-nav-open {
		display: flex;
		flex-direction: column;
		border: 1px solid var(--ascp-border);
		border-radius: 10px;
		padding: 4px;
	}

	.ascp-nav-btn {
		width: 100%;
	}

	.ascp-mobile-nav-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.ascp-auth-title {
		font-size: 19px;
	}

	#ascp-otp-code {
		font-size: 18px;
		letter-spacing: 5px;
	}

	.ascp-ticket-row {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* ---------- Administrator Customer View ---------- */
.ascp-impersonation-bar {
	position: relative;
	z-index: 99999;
	padding: 10px 18px;
	background: #102f4d;
	color: #fff;
	text-align: center;
	font-size: 14px;
	box-sizing: border-box;
}
.ascp-impersonation-bar a {
	display: inline-block;
	margin-left: 10px;
	padding: 5px 10px;
	border-radius: 5px;
	background: #fff;
	color: #102f4d;
	font-weight: 700;
	text-decoration: none;
}


/* ---------- Customer Portal Theme Controls ---------- */
.ascp-portal-header-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: flex-end;
}
.ascp-portal-theme-toggle {
	gap: 7px;
	white-space: nowrap;
}
.ascp-portal-theme-toggle .ascp-theme-icon {
	font-size: 16px;
	line-height: 1;
}

/* Dark-mode contrast for legacy fixed-color portal elements. */
.ascp-portal:not([data-ascp-theme="light"]) .ascp-alert-success {
	background: #183426;
	color: #a9efc2;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-alert-error {
	background: #3a2025;
	color: #ffb3ba;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-card,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-portal-card,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-section {
	background: var(--ascp-surface);
	border-color: var(--ascp-border);
	color: var(--ascp-text);
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-card:hover {
	background: var(--ascp-surface-alt);
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-modal-overlay {
	background: rgba(2, 12, 22, .72);
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-modal {
	background: var(--ascp-surface);
	color: var(--ascp-text);
	border: 1px solid var(--ascp-border);
}
.ascp-portal:not([data-ascp-theme="light"]) input::placeholder,
.ascp-portal:not([data-ascp-theme="light"]) textarea::placeholder {
	color: #8fa7c1;
	opacity: 1;
}

@media (max-width: 640px) {
	.ascp-portal-header-actions {
		width: 100%;
		justify-content: flex-start;
	}
	.ascp-portal-header-actions .ascp-btn {
		flex: 1 1 auto;
	}
}

/* ---------- Customer Dashboard Layout ---------- */
/* Keep the dashboard at 100% of the WordPress content area. */
.ascp-portal.ascp-dashboard {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	transform: none !important;
	box-sizing: border-box;
}


/* ---------- Customer Dashboard Spacing + Theme Polish ---------- */
.ascp-portal.ascp-dashboard {
	padding: 22px !important;
	border-radius: 14px;
}

/* Dark mode header: use the same deep All-Safe navy family as admin dark mode. */
.ascp-portal.ascp-dashboard:not([data-ascp-theme="light"]) .ascp-portal-header {
	background: linear-gradient(120deg, #0a2540 0%, #123a63 58%, #174f88 130%) !important;
	border: 1px solid #284d73;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .28);
	color: #fff;
}
.ascp-portal.ascp-dashboard:not([data-ascp-theme="light"]) .ascp-portal-header h2 {
	color: #fff;
}
.ascp-portal.ascp-dashboard:not([data-ascp-theme="light"]) .ascp-portal-status {
	color: #c7d6e8;
}
.ascp-portal.ascp-dashboard:not([data-ascp-theme="light"]) .ascp-portal-header .ascp-btn-secondary {
	background: rgba(255, 255, 255, .08);
	border-color: #5c82aa;
	color: #fff;
}
.ascp-portal.ascp-dashboard:not([data-ascp-theme="light"]) .ascp-portal-header .ascp-btn-secondary:hover {
	background: rgba(255, 255, 255, .15);
	border-color: #7ba6d2;
}

/* Keep the lighter branded gradient specifically for light mode. */
.ascp-portal.ascp-dashboard[data-ascp-theme="light"] .ascp-portal-header {
	background: linear-gradient(120deg, #29436a 0%, #315f8f 58%, #4d86c3 130%) !important;
	color: #fff;
}

@media (max-width: 782px) {
	.ascp-portal.ascp-dashboard {
		padding: 16px !important;
		border-radius: 10px;
	}
}
@media (max-width: 480px) {
	.ascp-portal.ascp-dashboard {
		padding: 10px !important;
		border-radius: 8px;
	}
	.ascp-portal-header {
		padding: 16px !important;
	}
}


/* ---------- Customer Dashboard Outer Gutter ---------- */
/*
 * Match the admin dashboard's visible spacing around the outside edge.
 * This is intentionally an OUTER gutter, not padding inside the dashboard.
 */
.ascp-portal.ascp-dashboard {
	width: calc(100% - 32px) !important;
	max-width: calc(100% - 32px) !important;
	margin: 16px auto !important;
	padding: 22px !important;
	border-radius: 14px !important;
	box-sizing: border-box !important;
}

@media (max-width: 782px) {
	.ascp-portal.ascp-dashboard {
		width: calc(100% - 24px) !important;
		max-width: calc(100% - 24px) !important;
		margin: 12px auto !important;
		padding: 16px !important;
	}
}

@media (max-width: 480px) {
	.ascp-portal.ascp-dashboard {
		width: calc(100% - 16px) !important;
		max-width: calc(100% - 16px) !important;
		margin: 8px auto !important;
		padding: 10px !important;
	}
}


/* ---------- Customer Dashboard: Admin Dashboard Layout Match ---------- */
.ascp-portal.ascp-dashboard {
	width: calc(100% - 16px) !important;
	max-width: calc(100% - 16px) !important;
	margin: 8px auto 20px !important;
	padding: 10px !important;
	border: 1px solid var(--ascp-border);
	border-radius: 12px !important;
	background: var(--ascp-bg);
	box-sizing: border-box !important;
}
.ascp-dashboard .ascp-portal-header { margin-bottom: 20px; padding: 18px 22px; border-radius: 12px; }
.ascp-customer-dashboard-meta { display:flex; align-items:center; gap:12px; margin-top:6px; color:#dce8f5; font-size:13px; }
.ascp-customer-dashboard-meta .ascp-portal-status { margin:0; }
.ascp-customer-dashboard-divider { opacity:.55; }
.ascp-dashboard .ascp-portal-nav { margin-bottom:20px; }
.ascp-customer-overview-panel { display:grid; gap:20px; }
.ascp-customer-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ascp-customer-stat-card { display:flex; align-items:center; gap:16px; min-height:86px; padding:16px 18px; border:1px solid var(--ascp-border); border-radius:9px; background:var(--ascp-surface); box-sizing:border-box; }
.ascp-customer-stat-icon,.ascp-customer-quick-icon { width:46px; height:46px; flex:0 0 46px; display:grid; place-items:center; border-radius:10px; background:#315f8f; color:#fff; font-size:22px; font-weight:700; }
.ascp-customer-stat-card>div:last-child { min-width:0; display:flex; flex-direction:column; gap:4px; }
.ascp-customer-stat-label { color:var(--ascp-muted); font-size:12px; }
.ascp-customer-company-name { color:var(--ascp-text); font-size:15px; line-height:1.25; }
.ascp-customer-stat-card small { color:var(--ascp-muted); }
.ascp-customer-stat-number { font-size:25px; color:var(--ascp-text); line-height:1; }
.ascp-customer-dashboard-section { padding:18px; border:1px solid var(--ascp-border); border-radius:9px; background:var(--ascp-surface); }
.ascp-customer-section-heading h3,.ascp-customer-recent-heading h3 { margin:0 0 3px; color:var(--ascp-text); font-size:18px; }
.ascp-customer-section-heading p,.ascp-customer-recent-heading p { margin:0; color:var(--ascp-muted); font-size:12px; }
.ascp-customer-quick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.ascp-customer-quick-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; min-height:74px; padding:14px; border:1px solid var(--ascp-border); border-radius:10px; background:var(--ascp-surface-alt); color:var(--ascp-text); text-decoration:none !important; transition:.15s ease; }
.ascp-customer-quick-card:hover { transform:translateY(-1px); background:var(--ascp-surface-soft); border-color:#3f729e; }
.ascp-customer-quick-card span:nth-child(2) { display:flex; flex-direction:column; gap:3px; min-width:0; }
.ascp-customer-quick-card strong { color:var(--ascp-text); font-size:14px; }
.ascp-customer-quick-card small { color:var(--ascp-muted); font-size:12px; }
.ascp-customer-quick-card b { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#174f78; color:#83c5ff; font-size:23px; line-height:1; }
.ascp-customer-recent-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:14px; }
.ascp-customer-ticket-table-wrap { margin:0 -18px; overflow-x:auto; border-top:1px solid var(--ascp-border); border-bottom:1px solid var(--ascp-border); }
.ascp-customer-ticket-table { width:100%; border-collapse:collapse; color:var(--ascp-text); }
.ascp-customer-ticket-table th { padding:12px 16px; background:#153a5b; text-align:left; font-size:12px; white-space:nowrap; }
.ascp-customer-ticket-table td { padding:12px 16px; border-top:1px solid var(--ascp-border); font-size:12px; }
.ascp-customer-ticket-table tbody tr:hover { background:var(--ascp-surface-alt); }
.ascp-customer-ticket-view { min-height:28px; padding:5px 12px; }
.ascp-customer-ticket-empty { text-align:center; color:var(--ascp-muted); padding:24px !important; }
.ascp-customer-view-all { text-align:center; padding-top:12px; }
.ascp-customer-view-all a { color:var(--ascp-primary); }
.ascp-portal[data-ascp-theme="light"] .ascp-customer-dashboard-meta { color:rgba(255,255,255,.82); }

@media (max-width:900px) {
 .ascp-customer-stat-grid { grid-template-columns:1fr; }
 .ascp-customer-quick-grid { grid-template-columns:1fr; }
}
@media (max-width:782px) {
 .ascp-portal.ascp-dashboard { width:calc(100% - 16px)!important; max-width:calc(100% - 16px)!important; margin:8px auto 16px!important; padding:8px!important; }
 .ascp-customer-dashboard-meta { flex-wrap:wrap; gap:7px; }
 .ascp-customer-dashboard-divider { display:none; }
}
@media (max-width:520px) {
 .ascp-customer-recent-heading { align-items:flex-start; flex-direction:column; }
 .ascp-customer-stat-card { padding:14px; }
 .ascp-customer-dashboard-section { padding:14px; }
 .ascp-customer-ticket-table-wrap { margin:0 -14px; }
}


/* ---------- Customer Dashboard: Recent Login History ---------- */
.ascp-customer-login-history {
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-bottom: 0 !important;
	overflow: hidden;
}
.ascp-customer-login-history .ascp-customer-section-heading {
	padding: 0 18px 14px;
}
.ascp-customer-login-table-wrap {
	width: 100%;
	overflow-x: auto;
	border-top: 1px solid var(--ascp-border);
}
.ascp-customer-login-table {
	width: 100%;
	border-collapse: collapse;
	color: var(--ascp-text);
}
.ascp-customer-login-table th {
	padding: 12px 16px;
	background: #153a5b;
	color: var(--ascp-text);
	text-align: left;
	font-size: 12px;
	white-space: nowrap;
}
.ascp-customer-login-table td {
	padding: 13px 16px;
	border-top: 1px solid var(--ascp-border);
	font-size: 12px;
}
.ascp-customer-login-table tbody tr:hover {
	background: var(--ascp-surface-alt);
}
.ascp-customer-login-empty {
	padding: 24px !important;
	text-align: center;
	color: var(--ascp-muted);
}
.ascp-portal[data-ascp-theme="light"] .ascp-customer-login-table th {
	background: #e8f0f8;
	color: #10233f;
}
@media (max-width: 520px) {
	.ascp-customer-login-history .ascp-customer-section-heading {
		padding-left: 14px;
		padding-right: 14px;
	}
}


/* ---------- Customer Dashboard: Company Address Card ---------- */
.ascp-customer-company-card {
	align-items: flex-start;
	min-height: 128px;
}
.ascp-customer-company-icon {
	margin-top: 2px;
	color: #fff;
}
.ascp-customer-company-details {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}
.ascp-customer-company-name {
	margin-bottom: 2px;
}
.ascp-customer-company-line {
	display: block;
	color: var(--ascp-muted);
	font-size: 13px;
	line-height: 1.35;
}


/* ---------- Customer Dashboard: Linked Company Source Fix ---------- */
.ascp-customer-company-card-stack {
	display: grid;
	gap: 10px;
	min-width: 0;
}
.ascp-customer-company-card-stack .ascp-customer-company-card {
	width: 100%;
	height: 100%;
}


/* ---------- Hide WordPress Page Title on Customer Portal ---------- */
/* The plugin supplies its own dashboard header, so suppress the theme/page title. */
body:has(#ascp-portal-app) .entry-title,
body:has(#ascp-portal-app) .page-title,
body:has(#ascp-portal-app) .wp-block-post-title,
body:has(#ascp-portal-app) .wp-block-query-title,
body:has(#ascp-portal-app) header.entry-header > h1,
body:has(#ascp-portal-app) main h1.entry-title {
	display: none !important;
}


/* ---------- Support Ticket Site / Location ---------- */
.ascp-ticket-site-field small {
	display: block;
	margin-top: 6px;
	color: var(--ascp-muted);
	font-size: 12px;
}


/* ---------- Customer Account Status Messages ---------- */
.ascp-account-status-message {
	width: calc(100% - 32px);
	max-width: calc(100% - 32px);
	margin: 16px auto;
	padding: 18px 20px;
	box-sizing: border-box;
	border: 1px solid #2c5277;
	border-radius: 10px;
	background: #0f2a45;
	color: #f3f8ff;
}
.ascp-account-status-message p {
	margin: 0;
	color: inherit;
	font-size: 15px;
	line-height: 1.55;
}
.ascp-account-inactive {
	border-color: #84691e;
	background: #3b311d;
	color: #fff3c4;
}


/* ---------- Customer Portal Dark Mode: Documents + Sub-Users ---------- */
/*
 * Document and Team Member section headers previously used a fixed light
 * #eaf2ff background. Override all fixed light header colors in portal dark mode.
 */
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-header {
	background: #153a5b !important;
	border-bottom-color: #2c5277 !important;
	color: #f3f8ff !important;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-header h3,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-header a,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-header span {
	color: #f3f8ff !important;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-intro {
	color: #b7c8dc !important;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-section,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-list,
.ascp-portal:not([data-ascp-theme="light"]) #ascp-subuser-list {
	background: #0f2a45 !important;
	color: #f3f8ff !important;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item {
	background: #123452 !important;
	border-color: #2c5277 !important;
	color: #f3f8ff !important;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item strong,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item h4,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item p {
	color: #f3f8ff;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item small,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-doc-item .description {
	color: #b7c8dc;
}

/* Keep the existing light appearance only when Light Mode is explicitly selected. */
.ascp-portal[data-ascp-theme="light"] .ascp-doc-header {
	background: #eaf2ff;
	color: #10233f;
}
.ascp-portal[data-ascp-theme="light"] .ascp-doc-header h3 {
	color: #10233f;
}

/* PDF e-signature */
.ascp-signing-card{max-width:900px;margin:30px auto;padding:24px;border:1px solid #2c5277;border-radius:12px;background:#0f2a45;color:#f3f8ff;box-sizing:border-box}.ascp-signing-card h2{color:#f3f8ff}.ascp-signing-card canvas{display:block;width:100%;height:auto;aspect-ratio:3/1;background:#fff;border:2px solid #2c5277;border-radius:8px;touch-action:none}.ascp-signing-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.ascp-signing-actions button{padding:10px 16px;border-radius:7px;border:1px solid #5c82aa;cursor:pointer}.ascp-signing-actions #ascp-submit-signature{background:#315f8f;color:#fff}.ascp-signing-actions #ascp-clear-signature{background:#123452;color:#fff}#ascp-signing-message{margin-top:14px;font-weight:600}


/* ---------- PDF Signing Detail Fields ---------- */
.ascp-signing-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 18px 0;
}
.ascp-signing-fields label,
.ascp-signature-label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-weight: 600;
}
.ascp-signing-fields input {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--ascp-border, #ccd6e0);
	border-radius: 7px;
	background: var(--ascp-input-bg, #fff);
	color: var(--ascp-text, #10233f);
}
.ascp-signing-fields small { font-weight: 400; color: var(--ascp-muted, #68788a); }
@media (max-width: 640px) {
	.ascp-signing-fields { grid-template-columns: 1fr; }
}


/* v1.15.47 - customer dashboard payment panel. */
.ascp-portal-header-actions .ascp-payment-header-btn {
	display:inline-flex;align-items:center;justify-content:center;gap:7px;
	text-decoration:none;white-space:nowrap;
}
.ascp-portal-header-actions .ascp-payment-header-btn.active {
	background:#2f6ea8;border-color:#5fa8e8;color:#fff;
}
.ascp-customer-payment-panel {padding:22px;}
.ascp-customer-payment-heading {margin-bottom:18px;}
.ascp-customer-payment-heading h3 {margin:0 0 5px;}
.ascp-customer-payment-heading p {margin:0;opacity:.82;}
.ascp-customer-payment-form #spp-checkout-wrapper {
	max-width:none;width:100%;box-sizing:border-box;
}
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-checkout-wrapper,
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form {
	background:#0f2a45 !important;color:#f3f8ff !important;border-color:#2c5277 !important;
}
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form label,
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form h3 {color:#f3f8ff !important;}
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form input,
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form select,
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-form #spp-payment-form textarea {
	background:#0a2035 !important;color:#f3f8ff !important;border-color:#41688c !important;
}
@media (max-width:782px) {
	.ascp-portal-header-actions {flex-wrap:wrap;}
	.ascp-portal-header-actions .ascp-payment-header-btn {width:100%;}
}


/* v1.15.47 - draggable customer document sections. */
#ascp-sortable-document-sections .ascp-sortable-doc-section {transition:opacity .15s ease,transform .15s ease;}
#ascp-sortable-document-sections .ascp-doc-header {display:flex;align-items:center;gap:10px;}
.ascp-doc-drag-handle {
	display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
	border:1px solid rgba(130,180,225,.35);border-radius:7px;cursor:grab;user-select:none;
	font-size:18px;line-height:1;
}
.ascp-doc-drag-handle:active {cursor:grabbing;}
.ascp-doc-dragging {opacity:.55;}
.ascp-document-order-status {min-height:20px;margin-top:8px;font-size:12px;opacity:.75;}


/* v1.15.47 - document title left, drag handle right. */
#ascp-sortable-document-sections .ascp-doc-header h3 {
	order:1;
	margin-right:auto;
}
#ascp-sortable-document-sections .ascp-doc-drag-handle {
	order:2;
	margin-left:auto;
}


/* v1.15.47 - Customer Support Tickets styled to mirror the admin ticket layout. */
.ascp-customer-tickets-modern{display:flex;flex-direction:column;gap:18px}
.ascp-customer-ticket-list-hero,.ascp-customer-ticket-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;border:1px solid var(--ascp-border);border-radius:12px;background:var(--ascp-card)}
.ascp-customer-ticket-list-hero h2,.ascp-customer-ticket-hero h2{margin:0 0 5px;font-size:24px}
.ascp-customer-ticket-list-hero p{margin:0;color:var(--ascp-muted)}
.ascp-customer-ticket-kicker{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ascp-accent)}
.ascp-customer-ticket-dates{display:flex;gap:8px;flex-wrap:wrap;color:var(--ascp-muted);font-size:12px}
.ascp-customer-ticket-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.ascp-customer-ticket-filter-pills{display:flex;gap:8px;flex-wrap:wrap}
.ascp-customer-ticket-filter{appearance:none;border:1px solid var(--ascp-border);background:var(--ascp-card);color:var(--ascp-text);border-radius:999px;padding:8px 13px;cursor:pointer;font-weight:600}
.ascp-customer-ticket-filter span{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;margin-left:5px;border-radius:999px;background:rgba(100,170,230,.18);font-size:11px}
.ascp-customer-ticket-filter.active{border-color:var(--ascp-accent);background:rgba(70,145,210,.18)}
.ascp-customer-ticket-search input{min-width:260px;border:1px solid var(--ascp-border)!important;border-radius:8px!important;background:var(--ascp-input)!important;color:var(--ascp-text)!important;padding:10px 12px!important}
.ascp-customer-ticket-list-card,.ascp-customer-ticket-card,.ascp-customer-ticket-conversation{border:1px solid var(--ascp-border);border-radius:12px;background:var(--ascp-card);overflow:hidden}
.ascp-customer-ticket-table-wrap{overflow-x:auto}
.ascp-customer-ticket-table{width:100%;border-collapse:collapse;min-width:880px}
.ascp-customer-ticket-table th{padding:13px 14px;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--ascp-muted);background:rgba(70,145,210,.12);border-bottom:1px solid var(--ascp-border)}
.ascp-customer-ticket-table td{padding:14px;border-bottom:1px solid var(--ascp-border);vertical-align:middle}
.ascp-customer-ticket-table tbody tr:last-child td{border-bottom:0}
.ascp-customer-ticket-table tbody tr:hover{background:rgba(70,145,210,.06)}
.ascp-customer-ticket-table td small{display:block;margin-top:3px;color:var(--ascp-muted)}
.ascp-customer-ticket-table a:not(.ascp-btn){color:var(--ascp-link);font-weight:700;text-decoration:none}
.ascp-customer-ticket-view-btn{padding:7px 13px!important;white-space:nowrap}
.ascp-customer-ticket-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ascp-customer-ticket-summary>div,.ascp-customer-ticket-fields>div{padding:15px;border:1px solid var(--ascp-border);border-radius:10px;background:var(--ascp-card)}
.ascp-customer-ticket-summary span:not(.ascp-badge),.ascp-customer-ticket-fields span{display:block;margin-bottom:7px;color:var(--ascp-muted);font-size:11px;font-weight:700;text-transform:uppercase}
.ascp-customer-ticket-summary small{display:block;margin-top:5px;color:var(--ascp-muted)}
.ascp-customer-ticket-summary-action{display:flex;align-items:center;justify-content:center}
.ascp-customer-ticket-card h3,.ascp-customer-ticket-conversation>h3{margin:0;padding:17px 20px;border-bottom:1px solid var(--ascp-border);font-size:17px}
.ascp-customer-ticket-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}
.ascp-modern-customer-thread{padding:20px;display:flex;flex-direction:column;gap:16px}
.ascp-customer-message-row{display:flex;gap:12px;align-items:flex-start}
.ascp-customer-ticket-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(70,145,210,.25);border:1px solid var(--ascp-border);font-weight:800}
.ascp-customer-ticket-message{flex:1;min-width:0;padding:14px 16px;border:1px solid var(--ascp-border);border-radius:10px;background:var(--ascp-input)}
.ascp-from-support .ascp-customer-ticket-message{border-left:3px solid var(--ascp-accent)}
.ascp-customer-message-author{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px}
.ascp-customer-message-author span{color:var(--ascp-muted);font-size:12px}
.ascp-customer-ticket-reply-card form{padding:18px}
.ascp-customer-ticket-reply-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ascp-customer-ticket-reply-footer .ascp-form-row{margin:0}
.ascp-ticket-priority{font-weight:700}
.ascp-priority-urgent{color:#ff7373}.ascp-priority-high{color:#ffb35c}
@media(max-width:850px){
 .ascp-customer-ticket-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ascp-customer-ticket-list-hero,.ascp-customer-ticket-hero{align-items:flex-start;flex-direction:column}
 .ascp-customer-ticket-search,.ascp-customer-ticket-search input{width:100%;min-width:0}
}
@media(max-width:560px){
 .ascp-customer-ticket-summary,.ascp-customer-ticket-fields{grid-template-columns:1fr}
}


/* v1.15.47 - redesigned customer dashboard. */
.ascp-portal.ascp-dashboard{display:grid!important;grid-template-columns:minmax(0,1fr) 220px!important;grid-template-rows:auto 1fr!important;gap:16px!important;align-items:start!important}
.ascp-customer-new-header{grid-column:1;grid-row:1;margin:0!important;display:flex!important;align-items:center;justify-content:space-between;background:#0b2a46!important;border:1px solid #24557d!important;border-radius:12px!important;padding:20px 22px!important}
.ascp-customer-new-heading h2{font-size:32px!important;margin:0 0 4px!important;color:#fff!important}
.ascp-customer-new-heading p{margin:0;color:#c7d9eb;font-size:15px}
.ascp-customer-user-chip{display:flex;align-items:center;gap:12px}.ascp-customer-user-text{display:flex;flex-direction:column;text-align:right}.ascp-customer-user-text strong{color:#fff}.ascp-customer-user-text span{font-size:12px;color:#b9cee2}
.ascp-customer-user-avatar{width:42px;height:42px;border-radius:50%;background:#2e75b6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px}
.ascp-customer-side-nav{grid-column:2;grid-row:1 / span 2;position:sticky;top:16px;margin:0!important;padding:12px!important;display:flex!important;flex-direction:column!important;gap:7px;background:#0a2138!important;border:1px solid #24557d!important;border-radius:12px!important}
.ascp-customer-side-nav .ascp-nav-btn{width:100%!important;min-height:48px;display:flex!important;align-items:center!important;gap:12px!important;justify-content:flex-start!important;border:0!important;border-radius:8px!important;padding:11px 13px!important;background:transparent!important;color:#eef7ff!important;text-decoration:none!important;font-weight:600!important;cursor:pointer}
.ascp-customer-side-nav .ascp-nav-btn span:first-child{width:22px;text-align:center;font-size:20px}
.ascp-customer-side-nav .ascp-nav-btn.active,.ascp-customer-side-nav .ascp-nav-btn:hover{background:linear-gradient(90deg,#2c78bb,#1762a3)!important}
.ascp-portal.ascp-dashboard>.ascp-portal-panel{grid-column:1;grid-row:2;margin:0!important;min-width:0}
.ascp-mobile-nav-toggle{display:none!important}
.ascp-dashboard-v2{background:transparent!important;border:0!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:16px!important}
.ascp-v2-locations,.ascp-v2-recent-card{background:#0b2a46;border:1px solid #24557d;border-radius:12px;padding:16px}
.ascp-v2-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.ascp-v2-section-title>div{display:flex;align-items:center;gap:10px}.ascp-v2-section-title h3{margin:0;color:#fff;font-size:21px}.ascp-v2-title-icon{width:34px;height:34px;border-radius:8px;background:#2f70aa;display:inline-flex;align-items:center;justify-content:center;color:#fff}.ascp-v2-count{min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:#1683f5;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.ascp-v2-location-viewport{position:relative;overflow:hidden}.ascp-v2-location-grid{display:grid;gap:16px}.ascp-v2-location-grid.ascp-v2-count-1{grid-template-columns:1fr}.ascp-v2-location-grid.ascp-v2-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ascp-v2-location-grid.ascp-v2-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ascp-v2-location-viewport.is-carousel{padding:0 38px 32px}.ascp-v2-location-viewport.is-carousel .ascp-v2-location-grid{display:flex;gap:16px;transition:transform .3s ease;will-change:transform}
.ascp-v2-location-card{overflow:hidden;border:1px solid #2c6592;border-radius:10px;background:#0e3557;color:#fff;min-width:0}.ascp-v2-location-image{height:145px;background-size:cover;background-position:center;position:relative}.ascp-v2-location-badge{position:absolute;right:10px;top:10px;padding:6px 10px;border-radius:8px;background:#126fc2;color:#fff;font-size:11px;font-weight:800}.ascp-v2-location-card:not(:first-child) .ascp-v2-location-badge{background:#174e76}
.ascp-v2-location-body{padding:14px}.ascp-v2-location-body h4{margin:0 0 12px;color:#fff;font-size:17px}.ascp-v2-location-line{display:flex;gap:10px;margin:8px 0;color:#d9e9f6;font-size:13px;line-height:1.45}.ascp-v2-location-line>span{color:#a9d3f6}
.ascp-v2-carousel-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-65%);width:36px;height:36px;border:0;border-radius:50%;background:#1e79bf;color:#fff;font-size:28px;cursor:pointer}.ascp-v2-carousel-arrow.prev{left:0}.ascp-v2-carousel-arrow.next{right:0}.ascp-v2-carousel-arrow:disabled{opacity:.3;cursor:default}.ascp-v2-carousel-dots{position:absolute;left:0;right:0;bottom:3px;display:flex;justify-content:center;gap:7px}.ascp-v2-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#47718f;cursor:pointer}.ascp-v2-dot.active{background:#1683f5}
.ascp-v2-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ascp-v2-stat-card{min-height:82px;display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px solid #24557d;border-radius:10px;background:#0b2a46;color:#fff!important;text-decoration:none!important}.ascp-v2-stat-card:hover{background:#103858}.ascp-v2-stat-icon{width:42px;height:42px;border-radius:8px;background:#2f70aa;display:flex;align-items:center;justify-content:center;font-size:22px}.ascp-v2-stat-card>span:nth-child(2){display:flex;flex-direction:column}.ascp-v2-stat-card strong{font-size:22px;color:#fff}.ascp-v2-stat-card small{color:#c4d8e9}.ascp-v2-stat-card b{margin-left:auto;font-size:26px;font-weight:400}
.ascp-v2-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ascp-v2-recent-card{padding:0;overflow:hidden}.ascp-v2-recent-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid #24557d}.ascp-v2-recent-head h3{margin:0;color:#fff;font-size:16px}.ascp-v2-recent-head a{color:#3ba2ff!important;text-decoration:none!important;font-weight:700}.ascp-v2-table-wrap{overflow:auto}.ascp-v2-recent-card table{width:100%;border-collapse:collapse;color:#eaf4fc}.ascp-v2-recent-card th,.ascp-v2-recent-card td{padding:11px 13px;border-bottom:1px solid #1e4667;text-align:left;font-size:12px}.ascp-v2-recent-card th{color:#bcd1e3;background:#0d304f}.ascp-v2-recent-card td a{color:#fff!important;text-decoration:none}.ascp-v2-doc-type{display:inline-block;padding:4px 8px;border-radius:6px;background:#1568af;color:#fff;font-size:10px;font-weight:700}.ascp-v2-empty{padding:24px;text-align:center;color:#c4d8e9}
.ascp-portal[data-ascp-theme="light"] .ascp-customer-new-header,.ascp-portal[data-ascp-theme="light"] .ascp-v2-locations,.ascp-portal[data-ascp-theme="light"] .ascp-v2-stat-card,.ascp-portal[data-ascp-theme="light"] .ascp-v2-recent-card{background:#fff!important;color:#132b40!important}.ascp-portal[data-ascp-theme="light"] .ascp-customer-new-heading h2,.ascp-portal[data-ascp-theme="light"] .ascp-v2-section-title h3,.ascp-portal[data-ascp-theme="light"] .ascp-v2-recent-head h3,.ascp-portal[data-ascp-theme="light"] .ascp-v2-stat-card strong{color:#132b40!important}
@media(max-width:1100px){.ascp-portal.ascp-dashboard{grid-template-columns:minmax(0,1fr) 190px!important}.ascp-v2-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ascp-v2-bottom-grid{grid-template-columns:1fr}.ascp-v2-location-grid.ascp-v2-count-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.ascp-portal.ascp-dashboard{display:block!important}.ascp-customer-side-nav{position:static!important;display:none!important;margin-bottom:14px!important}.ascp-customer-side-nav.ascp-nav-open{display:flex!important}.ascp-mobile-nav-toggle{display:block!important;margin:0 0 12px auto!important}.ascp-customer-new-header{margin-bottom:12px!important}.ascp-customer-user-chip{display:none}.ascp-v2-location-grid.ascp-v2-count-2,.ascp-v2-location-grid.ascp-v2-count-3{grid-template-columns:1fr}.ascp-v2-stat-grid{grid-template-columns:1fr 1fr}.ascp-customer-new-heading h2{font-size:27px!important}}
@media(max-width:520px){.ascp-v2-stat-grid{grid-template-columns:1fr}.ascp-v2-location-image{height:125px}}


/* v1.15.47 - Modern customer login / signup.
 * Keep these rules auth-scoped so themes such as Betheme cannot easily restyle the forms.
 */
.ascp-portal.ascp-auth-wrapper {
	display:flex;
	justify-content:center;
	align-items:flex-start;
	width:100%;
	min-height:0;
	padding:28px 16px;
	margin:0;
	background:transparent;
	border:0;
	border-radius:0;
	box-shadow:none;
	box-sizing:border-box;
}

.ascp-auth-wrapper .ascp-auth-card {
	width:100%;
	max-width:480px;
	padding:38px 34px 32px;
	margin:0;
	background:linear-gradient(145deg,#0c2944 0%,#0a3558 100%);
	border:1px solid rgba(113,178,238,.18);
	border-radius:20px;
	box-shadow:none;
	box-sizing:border-box;
	color:#fff;
}

.ascp-auth-wrapper .ascp-auth-badge {
	width:58px;
	height:58px;
	margin:0 auto 18px;
	border-radius:16px;
	background:linear-gradient(135deg,#268cff,#58b8f7);
	border:1px solid rgba(255,255,255,.22);
	box-shadow:none;
}

.ascp-auth-wrapper .ascp-auth-title {
	margin:0 0 8px;
	color:#fff;
	font-size:27px;
	line-height:1.2;
	font-weight:750;
	letter-spacing:-.35px;
	text-align:center;
}

.ascp-auth-wrapper .ascp-auth-subtitle {
	max-width:390px;
	margin:0 auto 28px;
	color:#a9c4db;
	font-size:14px;
	line-height:1.55;
	text-align:center;
}

.ascp-auth-wrapper .ascp-auth-form .ascp-form-row,
.ascp-auth-wrapper .ascp-auth-form .ascp-form-group {
	margin-bottom:17px;
}

.ascp-auth-wrapper .ascp-auth-form label {
	margin:0 0 7px;
	color:#fff;
	font-size:13px;
	line-height:1.3;
	font-weight:700;
}

.ascp-auth-wrapper input[type="text"],
.ascp-auth-wrapper input[type="email"],
.ascp-auth-wrapper input[type="tel"],
.ascp-auth-wrapper input[type="password"] {
	width:100% !important;
	min-height:50px !important;
	padding:12px 15px !important;
	margin:0 !important;
	background:#183d60 !important;
	border:1px solid #37668e !important;
	border-radius:10px !important;
	box-shadow:none !important;
	color:#fff !important;
	font-size:15px !important;
	line-height:1.3 !important;
	box-sizing:border-box !important;
	-webkit-appearance:none;
	appearance:none;
}

.ascp-auth-wrapper input::placeholder {
	color:#8faac0;
	opacity:1;
}

.ascp-auth-wrapper input:focus {
	outline:none !important;
	border-color:#5aa9f5 !important;
	box-shadow:0 0 0 3px rgba(64,153,240,.16) !important;
}

.ascp-auth-wrapper .ascp-btn.ascp-btn-primary {
	width:100%;
	min-height:50px;
	margin-top:2px;
	border:0 !important;
	border-radius:10px !important;
	background:linear-gradient(100deg,#3e9df4,#0878ef) !important;
	box-shadow:none !important;
	color:#fff !important;
	font-size:15px;
	font-weight:750;
	text-decoration:none;
}

.ascp-auth-wrapper .ascp-btn.ascp-btn-primary:hover,
.ascp-auth-wrapper .ascp-btn.ascp-btn-primary:focus {
	background:linear-gradient(100deg,#54aaf8,#1985f2) !important;
	transform:none;
	box-shadow:none !important;
}

.ascp-auth-wrapper .ascp-btn.ascp-btn-link {
	display:flex;
	width:auto;
	min-height:auto;
	padding:4px 0;
	margin:10px auto 0;
	border:0 !important;
	background:transparent !important;
	box-shadow:none !important;
	color:#4eafff !important;
	font-size:14px;
	font-weight:650;
	text-decoration:underline;
}

.ascp-auth-wrapper .ascp-auth-footer {
	position:relative;
	margin:26px 0 0;
	padding-top:24px;
	color:#a9c4db;
	font-size:14px;
	text-align:center;
}

.ascp-auth-wrapper .ascp-auth-footer:before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:1px;
	background:rgba(151,193,226,.25);
}

.ascp-auth-wrapper .ascp-auth-footer a {
	color:#46adff !important;
	font-weight:750;
	text-decoration:none;
}

.ascp-auth-wrapper .ascp-otp-instructions,
.ascp-auth-wrapper .ascp-checkbox-label,
.ascp-auth-wrapper .ascp-otp-timer {
	color:#a9c4db;
}

.ascp-auth-wrapper #ascp-otp-code {
	color:#fff;
}

.ascp-auth-wrapper .ascp-alert {
	border:1px solid transparent;
	border-radius:10px;
}

@media (max-width:600px) {
	.ascp-portal.ascp-auth-wrapper {
		padding:14px 8px;
	}
	.ascp-auth-wrapper .ascp-auth-card {
		padding:30px 20px 26px;
		border-radius:16px;
	}
	.ascp-auth-wrapper .ascp-auth-title {
		font-size:24px;
	}
}

/* v1.15.47 - Auth pages use the card heading only; suppress legacy outer page headings. */
body.page .ascp-auth-wrapper { margin-top:0; }

/* v1.15.47 - Signup anti-bot honeypot. Kept off-screen rather than display:none. */
.ascp-signup-honeypot {
	position:absolute !important;
	left:-10000px !important;
	top:auto !important;
	width:1px !important;
	height:1px !important;
	overflow:hidden !important;
	opacity:0 !important;
	pointer-events:none !important;
}

/* v1.15.47 - Login anti-bot honeypot. Kept off-screen rather than display:none. */
.ascp-login-honeypot {
	position:absolute !important;
	left:-10000px !important;
	top:auto !important;
	width:1px !important;
	height:1px !important;
	overflow:hidden !important;
	opacity:0 !important;
	pointer-events:none !important;
}


/* v1.15.47 - Auth layout hardening / honeypot isolation.
 * display:none keeps the anti-bot field entirely out of theme layout calculations.
 * Server-side validation remains authoritative if a bot submits the field.
 */
.ascp-auth-wrapper .ascp-login-honeypot,
.ascp-auth-wrapper .ascp-signup-honeypot {
	display:none !important;
	position:absolute !important;
	left:-99999px !important;
	width:1px !important;
	height:1px !important;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	overflow:hidden !important;
}

.ascp-auth-wrapper .ascp-auth-card {
	display:block !important;
}

.ascp-auth-wrapper .ascp-auth-form {
	display:block;
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	box-sizing:border-box !important;
}

.ascp-auth-wrapper .ascp-auth-form[style*="display:none"] {
	display:none !important;
}

.ascp-auth-wrapper .ascp-auth-form .ascp-form-row,
.ascp-auth-wrapper .ascp-auth-form .ascp-form-group {
	display:flex !important;
	flex-direction:column !important;
	width:100% !important;
	max-width:none !important;
	float:none !important;
	clear:both !important;
	margin:0 0 17px !important;
	box-sizing:border-box !important;
}

.ascp-auth-wrapper .ascp-auth-form .ascp-form-row > label,
.ascp-auth-wrapper .ascp-auth-form .ascp-form-group > label {
	display:block !important;
	width:100% !important;
	float:none !important;
}

.ascp-auth-wrapper .ascp-auth-form input[type="text"],
.ascp-auth-wrapper .ascp-auth-form input[type="email"],
.ascp-auth-wrapper .ascp-auth-form input[type="tel"],
.ascp-auth-wrapper .ascp-auth-form input[type="password"] {
	display:block !important;
	width:100% !important;
	max-width:100% !important;
	float:none !important;
}

.ascp-auth-wrapper .ascp-auth-form .ascp-btn {
	float:none !important;
}

.ascp-auth-wrapper .ascp-auth-form .ascp-btn-block {
	display:flex !important;
	width:100% !important;
	max-width:100% !important;
}


/* v1.15.47 - Customer payment panel mobile containment / Betheme compatibility. */
.ascp-customer-payment-panel,
.ascp-customer-payment-form,
.ascp-customer-payment-form #spp-checkout-wrapper,
.ascp-customer-payment-form #spp-payment-form {
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}
@media (max-width: 640px) {
	.ascp-customer-payment-panel {
		padding: 12px !important;
		overflow: hidden !important;
	}
	.ascp-customer-payment-form {
		width: 100% !important;
		overflow: hidden !important;
	}
	.ascp-customer-payment-form #spp-checkout-wrapper {
		width: 100% !important;
		margin: 0 !important;
		padding: 20px 12px !important;
	}
}

/* v1.15.47: administrator preview return control, visible without theme wp_body_open support. */
.ascp-portal.ascp-dashboard .ascp-admin-return-button {
 display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;
 padding:11px 16px!important;margin:0 12px!important;min-height:42px;
 border:1px solid #83baf2!important;border-radius:9px!important;
 background:#2869a8!important;color:#fff!important;font-weight:700!important;
 text-decoration:none!important;white-space:nowrap;box-sizing:border-box;
}
.ascp-portal.ascp-dashboard .ascp-admin-return-button:hover,
.ascp-portal.ascp-dashboard .ascp-admin-return-nav:hover {background:#347fbe!important;color:#fff!important;}
.ascp-portal.ascp-dashboard .ascp-admin-return-nav {background:#225783!important;color:#fff!important;}
@media(max-width:780px){.ascp-portal.ascp-dashboard .ascp-admin-return-button{margin:10px 0!important;width:100%;}}

/* v1.15.47: The ticket composer is an in-flow panel rather than a fixed modal.
   This avoids transformed/overflow-clipped Betheme containers trapping its overlay. */
.ascp-portal #ascp-new-ticket-modal {
 position:static !important; inset:auto !important; width:100% !important;
 max-width:100% !important; height:auto !important; min-height:0 !important;
 padding:0 !important; margin:20px 0 !important; background:transparent !important;
 overflow:visible !important; z-index:auto !important; box-sizing:border-box !important;
}
.ascp-portal #ascp-new-ticket-modal .ascp-modal-content {
 position:relative !important; display:block !important; width:100% !important;
 max-width:100% !important; max-height:none !important; min-width:0 !important;
 height:auto !important; margin:0 !important; padding:24px !important;
 overflow:visible !important; box-sizing:border-box !important;
}
.ascp-portal #ascp-new-ticket-modal form,
.ascp-portal #ascp-new-ticket-modal .ascp-form-row {
 width:100% !important; min-width:0 !important; max-width:100% !important;
 box-sizing:border-box !important;
}
.ascp-portal #ascp-new-ticket-modal input:not([type=checkbox]):not([type=radio]),
.ascp-portal #ascp-new-ticket-modal select,
.ascp-portal #ascp-new-ticket-modal textarea {
 display:block; width:100% !important; min-width:0 !important; max-width:100% !important;
 box-sizing:border-box !important; float:none !important;
}
@media(max-width:600px){
 .ascp-portal #ascp-new-ticket-modal .ascp-modal-content{padding:18px 14px !important;}
}

/* v1.15.47 — Customer Support Tickets: readable status badges, scoped to tickets only. */
.ascp-portal .ascp-customer-ticket-row td .ascp-badge,
.ascp-portal .ascp-customer-ticket-summary .ascp-badge {
 display:inline-flex !important;
 align-items:center !important;
 justify-content:center !important;
 min-width:90px !important;
 max-width:100% !important;
 min-height:32px !important;
 padding:7px 12px !important;
 border-radius:9px !important;
 border:1px solid transparent !important;
 box-sizing:border-box !important;
 font-size:12px !important;
 line-height:1.3 !important;
 font-weight:750 !important;
 letter-spacing:.15px !important;
 text-align:center !important;
 text-transform:uppercase !important;
 white-space:normal !important;
 overflow-wrap:normal !important;
 word-break:normal !important;
 color:#fff !important;
 background:#35465b !important;
}
.ascp-portal .ascp-customer-ticket-row td .ascp-badge-new,
.ascp-portal .ascp-customer-ticket-summary .ascp-badge-new {
 background:#20548b !important; border-color:#70b4ff !important; color:#fff !important;
}
.ascp-portal .ascp-customer-ticket-row td .ascp-badge-admin_replied,
.ascp-portal .ascp-customer-ticket-summary .ascp-badge-admin_replied {
 background:#145c43 !important; border-color:#35c98a !important; color:#fff !important;
}
.ascp-portal .ascp-customer-ticket-row td .ascp-badge-customer_replied,
.ascp-portal .ascp-customer-ticket-summary .ascp-badge-customer_replied {
 background:#74471c !important; border-color:#e7a44b !important; color:#fff !important;
}
.ascp-portal .ascp-customer-ticket-row td .ascp-badge-closed,
.ascp-portal .ascp-customer-ticket-summary .ascp-badge-closed {
 background:#35465b !important; border-color:#8497ad !important; color:#fff !important;
}
@media (max-width:600px) {
 .ascp-portal .ascp-customer-ticket-row td .ascp-badge,
 .ascp-portal .ascp-customer-ticket-summary .ascp-badge {
  min-width:82px !important; min-height:32px !important; padding:7px 9px !important;
 }
}


/* v1.15.47: Match Recent Support Tickets dashboard badges to ticket-page status badges. */
.ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge {
 display:inline-flex !important;
 align-items:center !important;
 justify-content:center !important;
 min-width:90px !important;
 max-width:100% !important;
 min-height:32px !important;
 padding:7px 12px !important;
 border:1px solid transparent !important;
 border-radius:9px !important;
 box-sizing:border-box !important;
 font-size:12px !important;
 line-height:1.3 !important;
 font-weight:750 !important;
 letter-spacing:.15px !important;
 text-align:center !important;
 text-transform:uppercase !important;
 white-space:normal !important;
 overflow-wrap:normal !important;
 word-break:normal !important;
 color:#fff !important;
 background:#35465b !important;
}
.ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge-new {
 background:#20548b !important; border-color:#70b4ff !important; color:#fff !important;
}
.ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge-admin_replied {
 background:#145c43 !important; border-color:#35c98a !important; color:#fff !important;
}
.ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge-customer_replied {
 background:#74471c !important; border-color:#e7a44b !important; color:#fff !important;
}
.ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge-closed {
 background:#35465b !important; border-color:#8497ad !important; color:#fff !important;
}
@media (max-width:600px) {
 .ascp-portal .ascp-v2-recent-card .ascp-v2-table-wrap td .ascp-badge {
  min-width:82px !important; min-height:32px !important; padding:7px 9px !important;
 }
}

/* v1.15.52: keep customer payment heading readable in dark mode, including Betheme overrides. */
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-panel .ascp-customer-payment-heading h3 {
 color:#ffffff !important; font-size:26px; font-weight:700; line-height:1.3; opacity:1 !important;
}
.ascp-portal[data-ascp-theme="dark"] .ascp-customer-payment-panel .ascp-customer-payment-heading p {
 color:#d6e4f2 !important; opacity:1 !important; line-height:1.5;
}

/* v1.15.55 — Support Tickets heading contrast inside customer portal.
 * Scope to the ticket hero so Betheme heading colors cannot blend into navy. */
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-list-hero h2,
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-hero h2 {
  color: #ffffff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #ffffff !important;
  font-weight: 700 !important;
}
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-list-hero p {
  color: #c7d9eb !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #c7d9eb !important;
}

/* v1.15.55 — Only the Add a Sub-User heading: keep readable over the navy card under Betheme. */
.ascp-portal #panel-subusers .ascp-doc-section > h3 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  font-weight: 700 !important;
  line-height: 1.3;
}

/* v1.15.55: Sub-Users create form visual layout; existing inputs and handlers untouched. */
.ascp-portal #panel-subusers .ascp-subuser-create {margin-top:24px;min-width:0;}
.ascp-portal #panel-subusers .ascp-subuser-create-heading {background:linear-gradient(110deg,#132f4b,#205184);border:1px solid #395d7e;border-radius:12px;padding:22px 24px;margin-bottom:14px;}
.ascp-portal #panel-subusers .ascp-subuser-create-heading h3 {color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;font-size:28px!important;font-weight:700!important;line-height:1.3!important;margin:0!important;}
.ascp-portal #panel-subusers .ascp-subuser-create-body {background:#142d45;border:1px solid #395d7e;border-radius:12px;padding:28px 24px;min-width:0;box-sizing:border-box;}
.ascp-portal #panel-subusers .ascp-subuser-create-body .ascp-auth-form {width:100%;max-width:none;min-width:0;box-sizing:border-box;}
.ascp-portal #panel-subusers .ascp-subuser-create-body .ascp-form-row {display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box;margin-bottom:22px;}
.ascp-portal #panel-subusers .ascp-subuser-create-body .ascp-form-row label {color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:600;margin-bottom:10px;}
.ascp-portal #panel-subusers .ascp-subuser-create-body .ascp-form-row input {width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
@media(max-width:600px){.ascp-portal #panel-subusers .ascp-subuser-create-heading{padding:18px}.ascp-portal #panel-subusers .ascp-subuser-create-body{padding:18px}.ascp-portal #panel-subusers .ascp-subuser-create-heading h3{font-size:23px!important}}

/* v1.15.56: Match the payment section to the customer header's full content width.
   Only the payment panel is affected; sidebar and checkout internals are unchanged. */
.ascp-portal.ascp-dashboard > .ascp-customer-payment-panel {
  width:100% !important; max-width:100% !important;
  padding:0 !important; margin:0 !important;
  background:transparent !important; border:0 !important;
  box-sizing:border-box !important;
}
.ascp-portal .ascp-customer-payment-panel > .ascp-customer-payment-heading {
  padding:20px 20px 0 !important; margin:0 0 18px !important;
}
.ascp-portal .ascp-customer-payment-panel > .ascp-customer-payment-form {
  width:100% !important; max-width:100% !important; margin:0 !important;
  padding:0 !important; box-sizing:border-box !important;
}
.ascp-portal .ascp-customer-payment-panel .ascp-customer-payment-form #spp-checkout-wrapper {
  width:100% !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important;
  box-sizing:border-box !important;
}
@media(max-width:640px) {
  .ascp-portal .ascp-customer-payment-panel > .ascp-customer-payment-heading {padding:12px 0 0 !important;}
}

/* v1.15.57: Reduce excess top whitespace in the customer portal checkout only.
   Preserve the full-width panel, two-column layout, and responsive mobile padding. */
@media (min-width: 641px) {
  .ascp-portal .ascp-customer-payment-panel .ascp-customer-payment-form #spp-checkout-wrapper {
    padding-top: 18px !important;
  }
}

/* v1.15.58: Customer portal payment panel: reduce the previous 18px top
   inset by 65% (18px * .35 = 6.3px). Keep other checkout contexts intact. */
@media (min-width: 641px) {
  .ascp-portal .ascp-customer-payment-panel .ascp-customer-payment-form #spp-checkout-wrapper {
    padding-top: 6.3px !important;
  }
}

/* v1.15.59: customer portal team-member cards; scoped to Sub-Users only. */
.ascp-portal #panel-subusers #ascp-subuser-list {padding:14px 18px;display:grid;gap:12px;min-width:0;}
.ascp-portal #panel-subusers .ascp-team-card {background:#17334e;border:1px solid #385b7c;border-radius:11px;padding:15px 17px;min-width:0;box-sizing:border-box;}
.ascp-portal #panel-subusers .ascp-team-card-main {display:flex;align-items:center;gap:14px;min-width:0;}
.ascp-portal #panel-subusers .ascp-team-avatar {display:flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;border-radius:11px;background:#2c669c;color:#fff;}
.ascp-portal #panel-subusers .ascp-team-avatar .dashicons {font-size:23px;width:23px;height:23px;}
.ascp-portal #panel-subusers .ascp-team-identity {display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere;}
.ascp-portal #panel-subusers .ascp-team-identity strong {color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:15px;font-weight:700;}
.ascp-portal #panel-subusers .ascp-team-identity>span {color:#c0d5e9!important;font-size:13px;}
.ascp-portal #panel-subusers .ascp-team-card-footer {border-top:1px solid #385b7c;margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.ascp-portal #panel-subusers .ascp-team-role {color:#a9c4dc;font-size:13px;}
.ascp-portal #panel-subusers .ascp-team-remove {display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto!important;min-width:0!important;padding:8px 12px!important;border:1px solid #a64b5a!important;border-radius:7px!important;background:transparent!important;color:#ffbdc5!important;-webkit-text-fill-color:#ffbdc5!important;font-size:13px!important;line-height:1.2!important;}
.ascp-portal #panel-subusers .ascp-team-remove:hover,.ascp-portal #panel-subusers .ascp-team-remove:focus-visible {background:#6d2635!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
.ascp-portal #panel-subusers .ascp-team-remove .dashicons {font-size:15px;width:15px;height:15px;}
@media(max-width:600px){.ascp-portal #panel-subusers #ascp-subuser-list{padding:12px}.ascp-portal #panel-subusers .ascp-team-card{padding:12px}.ascp-portal #panel-subusers .ascp-team-card-footer{gap:8px}}
.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-card{background:#f4f8fd;border-color:#c5d4e4}
.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-identity strong{color:#17334e!important;-webkit-text-fill-color:#17334e!important}
.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-identity>span,.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-role{color:#38536d!important}
.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-card-footer{border-color:#c5d4e4}

/* v1.15.60: customer-owned sub-user edit controls */
.ascp-portal #panel-subusers .ascp-team-edit {display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto!important;padding:8px 12px!important;border-radius:7px!important;background:#276aa5!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:13px!important;line-height:1.2!important;margin-left:auto;}
.ascp-portal #panel-subusers .ascp-team-edit .dashicons {font-size:15px;width:15px;height:15px;}
.ascp-portal #panel-subusers #ascp-edit-subuser-panel[hidden] {display:none!important;}
.ascp-portal #panel-subusers #ascp-edit-subuser-panel .ascp-alert[hidden] {display:none!important;}

/* v1.15.61: team member actions and edit form (scoped to customer portal). */
.ascp-portal #panel-subusers .ascp-team-card-main{display:flex;align-items:center;gap:14px}
.ascp-portal #panel-subusers .ascp-team-avatar{border-radius:50%;flex:0 0 48px;width:48px;height:48px}
.ascp-portal #panel-subusers .ascp-team-active{margin-left:auto;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#baf8c8!important;-webkit-text-fill-color:#baf8c8!important;background:#123d30;border:1px solid #2c9b56;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}
.ascp-portal #panel-subusers .ascp-team-active-dot{width:8px;height:8px;border-radius:50%;background:#70e895;flex:none}
.ascp-portal #panel-subusers .ascp-team-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;flex-wrap:wrap}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-btn{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-width:100px!important;min-height:42px!important;padding:9px 15px!important;margin:0!important;border-radius:8px!important;font-size:13px!important;font-weight:700!important;line-height:1.2!important;text-decoration:none!important;box-shadow:none!important;transform:none!important}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-team-edit{background:#276aa5!important;border:1px solid #438bd0!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-team-remove{background:#3c2534!important;border:1px solid #ff5267!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-team-remove .dashicons{color:#ff6575!important}
.ascp-portal #panel-subusers .ascp-team-actions .dashicons,.ascp-portal #panel-subusers .ascp-edit-actions .dashicons{display:inline-block!important;font-size:17px!important;width:17px!important;height:17px!important;line-height:17px!important;flex:none}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-team-edit:hover{background:#337cbb!important}
.ascp-portal #panel-subusers .ascp-team-actions .ascp-team-remove:hover{background:#633041!important}
.ascp-portal #panel-subusers .ascp-edit-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid #385b7c;padding-top:15px;margin-top:18px}
.ascp-portal #panel-subusers .ascp-edit-actions .ascp-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:42px!important;margin:0!important;padding:9px 16px!important;border-radius:8px!important;font-weight:700!important;line-height:1.2!important}
.ascp-portal #panel-subusers .ascp-edit-actions .ascp-edit-cancel{background:#354d65!important;border:1px solid #71869b!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.ascp-portal #panel-subusers .ascp-edit-actions .ascp-edit-save{background:#1977d2!important;border:1px solid #4298e7!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
@media(max-width:520px){.ascp-portal #panel-subusers .ascp-team-card-main{flex-wrap:wrap}.ascp-portal #panel-subusers .ascp-team-active{margin-left:0}.ascp-portal #panel-subusers .ascp-team-actions{width:100%;justify-content:flex-end}.ascp-portal #panel-subusers .ascp-team-card-footer{align-items:flex-start}}
.ascp-portal[data-ascp-theme="light"] #panel-subusers .ascp-team-active{background:#e1f7e9;color:#176333!important;-webkit-text-fill-color:#176333!important}

/* v1.15.62: self-contained Team Members icons, independent of Dashicons/Betheme */
.ascp-portal #panel-subusers .ascp-inline-icon {display:inline-block!important;flex:0 0 auto!important;width:16px!important;height:16px!important;vertical-align:middle!important;visibility:visible!important;opacity:1!important;overflow:visible!important;stroke:currentColor;}
.ascp-portal #panel-subusers .ascp-team-avatar .ascp-inline-icon {width:25px!important;height:25px!important;color:#fff!important;stroke:#fff!important;}
.ascp-portal #panel-subusers .ascp-team-remove .ascp-inline-icon {stroke:#ff6575!important;}
.ascp-portal #panel-subusers .ascp-team-edit .ascp-inline-icon,.ascp-portal #panel-subusers .ascp-edit-actions .ascp-inline-icon {stroke:#fff!important;}

/* v1.15.63: employee photos */
.ascp-portal #panel-subusers .ascp-team-avatar{overflow:hidden}
.ascp-portal #panel-subusers .ascp-team-avatar .ascp-employee-avatar-image{width:100%!important;height:100%!important;object-fit:cover;border-radius:50%;display:block}
.ascp-portal #panel-subusers .ascp-employee-photo-picker{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ascp-portal #panel-subusers .ascp-employee-photo-preview{display:flex;align-items:center;justify-content:center;width:76px;height:76px;flex:0 0 76px;border-radius:50%;overflow:hidden;background:#2c669c;color:white}
.ascp-portal #panel-subusers .ascp-employee-photo-preview svg{width:38px;height:38px}
.ascp-portal #panel-subusers .ascp-employee-photo-preview img{width:100%;height:100%;object-fit:cover}
.ascp-portal #panel-subusers .ascp-employee-photo-picker input[type=file]{display:block;max-width:100%;color:#fff}
.ascp-portal #panel-subusers .ascp-employee-photo-picker small{display:block;margin-top:6px;color:#b8cee2}
.ascp-portal #panel-subusers .ascp-photo-remove-label{display:flex;align-items:center;gap:8px;margin-top:8px;color:#fff}
.ascp-portal #panel-subusers .ascp-photo-remove-label input{width:auto;height:auto}

/* v1.15.64: display the signed-in employee photo in the portal header. */
.ascp-customer-user-avatar{overflow:hidden;flex:0 0 42px;border:2px solid #7bb7e5;box-sizing:border-box}
.ascp-customer-user-avatar .ascp-customer-header-photo{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;border-radius:50%!important;margin:0!important;max-width:none!important}
.ascp-customer-user-avatar .ascp-customer-header-fallback{display:block;width:22px;height:22px;color:#fff}

/* v1.15.66: customer-managed sub-user suspension controls */
.ascp-portal .ascp-team-status { display:inline-flex; align-items:center; justify-content:center; gap:7px; background:#775020; border:1px solid #b78036; color:#fff; }
.ascp-portal .ascp-team-status.ascp-team-reactivate { background:#155c42; border-color:#30b77b; color:#fff; }
.ascp-portal .ascp-team-active.ascp-team-suspended { color:#ffd28a; background:#49351c; border-color:#b78036; }
.ascp-portal .ascp-team-active.ascp-team-suspended .ascp-team-active-dot { background:#ffbd55; }
.ascp-portal .ascp-team-status .ascp-inline-icon { width:15px; height:15px; flex-shrink:0; }
@media(max-width:600px) { .ascp-portal .ascp-team-actions { flex-wrap:wrap; } }

/* v1.15.67 — Customer support ticket cards; scoped to list view. */
.ascp-customer-ticket-cards{display:grid;gap:14px;min-width:0}
.ascp-ticket-list-item{display:grid;gap:15px;padding:18px 20px;border:1px solid var(--ascp-border);border-radius:12px;background:var(--ascp-card);color:var(--ascp-text);min-width:0}
.ascp-ticket-list-top,.ascp-ticket-list-footer{display:flex;align-items:center;justify-content:space-between;gap:14px}
.ascp-ticket-list-title{display:grid;gap:5px;min-width:0}
.ascp-ticket-list-number{color:var(--ascp-accent)!important;font-size:12px;font-weight:700;text-decoration:none!important;overflow-wrap:anywhere}
.ascp-ticket-list-subject{color:var(--ascp-text)!important;font-size:17px;font-weight:700;text-decoration:none!important;overflow-wrap:anywhere}
.ascp-ticket-list-top>.ascp-badge{flex-shrink:0;max-width:45%;text-align:center;white-space:normal}
.ascp-ticket-list-location{display:flex;align-items:flex-start;gap:11px;border-top:1px solid var(--ascp-border);padding-top:14px;min-width:0}
.ascp-ticket-list-location>span{color:var(--ascp-accent);font-size:20px;line-height:1.2}
.ascp-ticket-list-location strong,.ascp-ticket-list-location small{display:block;overflow-wrap:anywhere}
.ascp-ticket-list-location strong{font-size:13px}.ascp-ticket-list-location small{margin-top:4px;color:var(--ascp-muted);font-size:12px}
.ascp-ticket-list-meta{display:grid;gap:5px;color:var(--ascp-muted);font-size:12px}
.ascp-ticket-list-meta .ascp-ticket-priority{font-size:12px}
.ascp-ticket-list-footer .ascp-customer-ticket-view-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-height:38px}
@media(max-width:600px){.ascp-ticket-list-item{padding:15px}.ascp-ticket-list-top{align-items:flex-start}.ascp-ticket-list-top>.ascp-badge{max-width:48%;font-size:10px}.ascp-ticket-list-footer{align-items:flex-start;flex-direction:column}.ascp-ticket-list-footer .ascp-customer-ticket-view-btn{width:100%;box-sizing:border-box}}

/* v1.15.68 — Higher-contrast ticket cards, scoped to the customer ticket list. */
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item {
  position:relative;overflow:hidden;gap:0;padding:0 22px 0 26px;
  border:1px solid #426b91;border-left:5px solid #4aa8f8;border-radius:13px;
  background:linear-gradient(145deg,#183b5b 0%,#112a42 75%);
  box-shadow:0 4px 16px rgba(0,0,0,.16);color:#f5f9ff;
}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-status="replied"] {border-left-color:#ffad35}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-status="closed"] {border-left-color:#a5b7c9}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-top {padding:19px 0 17px;align-items:flex-start}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-title {gap:9px}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-number {color:#80c3ff!important;font-size:13px;letter-spacing:.025em}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-subject {color:#fff!important;font-size:19px;line-height:1.35}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-location {padding:17px 0;border-top:1px solid #416887;border-bottom:1px solid #416887;align-items:center}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-location>span {display:flex;align-items:center;justify-content:center;flex:0 0 43px;width:43px;height:43px;border:1px solid #477ba9;border-radius:10px;background:#224e75;color:#e8f5ff;font-size:23px}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-location strong {color:#fff;font-size:15px;line-height:1.4}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-location small {color:#c4d9ee;font-size:13px}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-footer {padding:16px 0 18px;align-items:center}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-meta {gap:7px;color:#d3e3f4;font-size:13px}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-meta .ascp-ticket-priority {font-size:13px;color:#e7f2ff}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-footer .ascp-customer-ticket-view-btn {min-height:43px;padding:10px 20px;border:1px solid #79bdff;border-radius:9px;background:linear-gradient(120deg,#2d8df0,#1265c7);box-shadow:0 3px 10px rgba(0,0,0,.2);color:#fff!important;font-weight:700}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-top>.ascp-badge {padding:9px 13px;border-radius:11px;font-size:11px;line-height:1.35}
@media(max-width:600px){.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item{padding:0 14px 0 16px}.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-top{gap:9px}.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-subject{font-size:16px}.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-footer{align-items:stretch}.ascp-portal:not([data-ascp-theme="light"]) .ascp-ticket-list-footer .ascp-customer-ticket-view-btn{width:100%}}

/* v1.15.69 — Ticket identity accents follow the actual reply status, not the shared Replied filter group. */
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="customer_replied"] {border-left-color:#ffad35}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="admin_replied"] {border-left-color:#39d77d}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="closed"] {border-left-color:#a5b7c9}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="customer_replied"] .ascp-ticket-list-number,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="customer_replied"] .ascp-ticket-list-subject {color:#ffbd55!important}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="admin_replied"] .ascp-ticket-list-number,
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="admin_replied"] .ascp-ticket-list-subject {color:#6bf0a0!important}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="closed"] .ascp-ticket-list-number {color:#b5c8db!important}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="customer_replied"] .ascp-ticket-list-top>.ascp-badge {background:#9d4c0d!important;border:1px solid #ffad35!important;color:#fff!important}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="admin_replied"] .ascp-ticket-list-top>.ascp-badge {background:#126a45!important;border:1px solid #39d77d!important;color:#fff!important}
.ascp-portal:not([data-ascp-theme="light"]) .ascp-customer-ticket-cards .ascp-ticket-list-item[data-reply-status="closed"] .ascp-ticket-list-top>.ascp-badge {background:#52667b!important;border:1px solid #a5b7c9!important;color:#fff!important}

/* v1.15.70: ticket detail refresh and actual sender profile pictures. */
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-hero{background:linear-gradient(115deg,#102b44,#143a5b);border-color:#35648a;border-left:5px solid #4bafff;padding:23px 25px;align-items:flex-start}
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-hero.ascp-detail-status-customer_replied{border-left-color:#ffa328}
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-hero.ascp-detail-status-admin_replied{border-left-color:#35d47c}
.ascp-portal .ascp-customer-tickets-modern .ascp-customer-ticket-hero.ascp-detail-status-closed{border-left-color:#a6b8cb}
.ascp-portal .ascp-customer-ticket-hero .ascp-customer-ticket-kicker{color:#83c6ff;font-weight:800;letter-spacing:.025em}
.ascp-portal .ascp-detail-status-customer_replied .ascp-customer-ticket-kicker,.ascp-portal .ascp-detail-status-customer_replied h2{color:#ffc15b!important}
.ascp-portal .ascp-detail-status-admin_replied .ascp-customer-ticket-kicker,.ascp-portal .ascp-detail-status-admin_replied h2{color:#70eca3!important}
.ascp-portal .ascp-detail-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0}
.ascp-portal .ascp-detail-hero-actions .ascp-badge{font-size:12px;padding:9px 13px}
.ascp-portal .ascp-customer-ticket-summary>div{background:linear-gradient(135deg,#102a42,#123451);border-color:#345e81;min-width:0;padding:19px}
.ascp-portal .ascp-customer-ticket-summary-action .ascp-btn{width:100%;text-align:center;background:#1476dc;color:white!important;border-color:#58b4ff}
.ascp-portal .ascp-customer-ticket-conversation,.ascp-portal .ascp-customer-ticket-reply-card{background:linear-gradient(135deg,#0e2841,#103451);border-color:#345e81}
.ascp-portal .ascp-customer-ticket-conversation>h3,.ascp-portal .ascp-customer-ticket-reply-card>h3{color:#fff!important;font-size:19px;display:flex;align-items:center;justify-content:space-between;border-bottom-color:#345e81}
.ascp-portal .ascp-detail-message-count{font-size:12px;font-weight:500;color:#b8cee2}
.ascp-portal .ascp-modern-customer-thread{position:relative;gap:20px}
.ascp-portal .ascp-customer-message-row{position:relative;align-items:flex-start;gap:15px}
.ascp-portal .ascp-customer-ticket-avatar{width:48px;height:48px;flex:0 0 48px;overflow:hidden;background:#245781;border:2px solid #4c8ebd;border-radius:50%;color:white}
.ascp-portal .ascp-customer-ticket-avatar .ascp-ticket-message-photo{display:block;width:100%;height:100%;max-width:100%;border-radius:50%;object-fit:cover;margin:0;padding:0;border:0}
.ascp-portal .ascp-from-support .ascp-customer-ticket-avatar{border-color:#32ca83;background:#176c51}
.ascp-portal .ascp-customer-ticket-message{padding:19px 20px;background:#102c47;border-color:#35668b;min-width:0}
.ascp-portal .ascp-from-support .ascp-customer-ticket-message{background:#103b3d;border-color:#2cbb7b;border-left:2px solid #2cbb7b}
.ascp-portal .ascp-customer-ticket-reply-card textarea{background:#153b5e;color:#fff;border-color:#40729a;max-width:100%;box-sizing:border-box}
.ascp-portal .ascp-customer-ticket-reply-footer .ascp-btn-primary{background:#126fdf;color:#fff;border-color:#58b4ff}
@media(max-width:700px){.ascp-portal .ascp-detail-hero-actions{align-items:flex-start;width:100%}.ascp-portal .ascp-customer-ticket-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ascp-portal .ascp-customer-ticket-message{padding:13px}.ascp-portal .ascp-customer-ticket-avatar{width:38px;height:38px;flex-basis:38px}}
@media(max-width:440px){.ascp-portal .ascp-customer-ticket-summary{grid-template-columns:1fr}}

/* v1.15.72 — customer-only Documents redesign; admin uploads and permissions unchanged. */
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-intro{margin:0 0 22px;line-height:1.7;color:#c9d8e8}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-section{padding:18px 20px;margin-bottom:18px;border:1px solid #2c628c;border-radius:15px;background:linear-gradient(120deg,#0c2b46,#103858)!important;overflow:visible;min-width:0}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-header{margin:0 0 14px;padding:0;background:transparent!important;border:0!important;display:flex;align-items:center;gap:15px;flex-wrap:nowrap;color:#fff!important}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-category-icon{display:flex;align-items:center;justify-content:center;flex:none;width:50px;height:50px;border:1px solid #387bb2;border-radius:11px;background:#16476d;color:#a8d4ff!important;font-size:28px}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-heading{flex:1;min-width:0}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-heading h3{margin:0 0 5px!important;font-size:21px;line-height:1.25;color:#fff!important;font-weight:750}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-heading p{margin:0;color:#c8d9e9;font-size:13px;line-height:1.45}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-drag-handle{flex:none;order:3;margin-left:auto;width:36px;height:36px;background:#123958;color:#fff!important;border:1px solid #32678f;border-radius:9px}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-list{background:transparent!important}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-item{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 18px;margin:0 0 9px;border:1px solid #285d87!important;border-radius:11px;background:#0b2943!important;min-width:0}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-item:last-child{margin-bottom:0}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-info{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 210px}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-icon{display:flex;align-items:flex-end;justify-content:center;box-sizing:border-box;flex:none;width:43px;height:52px;padding:0 2px 6px;border-radius:5px 12px 5px 5px;background:linear-gradient(#f9fbff 0 58%,#f2363f 58%);color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-text{min-width:0;overflow-wrap:anywhere}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-text strong{display:block;font-size:15px;color:#fff!important}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-text small{display:block;margin-top:5px;color:#c8d8e8!important;font-size:12px}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:7px 15px;box-sizing:border-box;border:1px solid #4389c3;border-radius:8px;color:#fff!important;background:#103755;text-decoration:none!important;font-size:13px;font-weight:700;white-space:nowrap}
.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-action:hover,.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-action:focus{background:#236da6;color:#fff!important}
@media(max-width:600px){.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-section{padding:14px 12px}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-header{gap:10px}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-category-icon{width:38px;height:38px;font-size:21px}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-heading h3{font-size:17px}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-item{padding:13px 11px}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-file-actions{width:100%}.ascp-portal #panel-documents.ascp-documents-modern .ascp-doc-action{flex:1}}

/* v1.15.73 — Recent Documents: no date column; readable, responsive document rows. */
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-list{padding:8px 12px 12px}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 6px;border-bottom:1px solid #24557d;min-width:0}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-row:last-child{border-bottom:0}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-info{display:flex;align-items:center;gap:10px;flex:1 1 155px;min-width:0}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-icon{display:flex;align-items:end;justify-content:center;flex:none;width:31px;height:38px;padding-bottom:4px;box-sizing:border-box;background:linear-gradient(#f7faff 0 58%,#ed3741 58%);border-radius:4px 8px 4px 4px;color:#fff;font-size:9px;font-weight:800}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-name{color:#fff;font-size:12px;font-weight:600;overflow-wrap:anywhere;min-width:0}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-doc-type{flex:0 1 auto;max-width:110px;line-height:1.35;text-align:center}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-actions a{display:inline-flex;align-items:center;justify-content:center;border:1px solid #397eae;border-radius:6px;background:#123d61;color:#fff!important;text-decoration:none!important;font-size:11px;font-weight:700;min-height:32px;padding:5px 9px;box-sizing:border-box}
.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-actions a:hover{background:#226da9}
@media(max-width:650px){.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-info{flex-basis:100%}.ascp-portal .ascp-v2-recent-documents .ascp-v2-recent-doc-actions{margin-left:auto}}

/* v1.15.74 — Recent Support Tickets dashboard rows match Recent Documents. */
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-list{padding:8px 12px 12px}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 6px;border-bottom:1px solid #24557d;min-width:0}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-row:last-child{border-bottom:0}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-icon{display:flex;align-items:center;justify-content:center;flex:none;width:31px;height:38px;border-radius:6px;background:#1d476a;color:#76b7ff;font-size:20px}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-info{display:flex;flex-direction:column;gap:4px;flex:1 1 130px;min-width:0}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-subject{color:#fff!important;font-size:12px;font-weight:700;text-decoration:none!important;overflow-wrap:anywhere}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-number{color:#a9c4dc;font-size:11px;overflow-wrap:anywhere}
.ascp-portal .ascp-v2-recent-tickets .ascp-badge{max-width:115px;flex:0 1 auto;text-align:center;line-height:1.3;white-space:normal;font-size:10px;padding:7px 8px}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-view{display:inline-flex;align-items:center;justify-content:center;border:1px solid #397eae;border-radius:6px;background:#123d61;color:#fff!important;text-decoration:none!important;font-size:11px;font-weight:700;min-height:32px;padding:5px 12px;box-sizing:border-box}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-view:hover{background:#226da9}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-ticket-status-customer_replied .ascp-v2-recent-ticket-icon{color:#ffbf68}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-ticket-status-admin_replied .ascp-v2-recent-ticket-icon{color:#65e9a0}
.ascp-portal .ascp-v2-recent-tickets .ascp-v2-ticket-status-closed .ascp-v2-recent-ticket-icon{color:#b5c8db}
@media(max-width:650px){.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-info{flex-basis:calc(100% - 45px)}.ascp-portal .ascp-v2-recent-tickets .ascp-badge{margin-left:41px}.ascp-portal .ascp-v2-recent-tickets .ascp-v2-recent-ticket-view{margin-left:auto}}

/* v1.15.75: matched dashboard cards, consistent headings, row heights and actions. */
.ascp-portal .ascp-v2-bottom-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:16px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-card{display:flex;flex-direction:column;min-width:0;background:#102e49;border:1px solid #32628a;border-radius:12px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head{min-height:82px;box-sizing:border-box;gap:12px;padding:15px 16px;background:#102b44}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head h3{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:16px;line-height:1.3}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head h3 small{font-size:11px;line-height:1.4;color:#adc9df;font-weight:400}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head>a{white-space:nowrap;flex:none}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-list,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-list{display:flex;flex-direction:column;gap:8px;padding:12px;flex:1}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-row,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-row{display:flex;align-items:center;gap:9px;flex-wrap:nowrap;min-width:0;min-height:74px;box-sizing:border-box;padding:10px;border:1px solid #24577e!important;border-radius:9px;background:#0d2942}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-info,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-info{flex:1 1 auto;min-width:0}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-icon{width:36px;height:40px;flex:none;font-size:21px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-icon{width:31px;height:38px;flex:none}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-tickets .ascp-badge{max-width:110px;flex:none;white-space:normal;font-size:9px;line-height:1.25;padding:7px 8px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-view,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-actions a{flex:none;min-height:34px;padding:6px 9px;font-size:11px;white-space:nowrap}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-actions{display:flex;flex:none;flex-wrap:nowrap;gap:5px;margin-left:0}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-doc-type{flex:none;max-width:95px;font-size:9px;line-height:1.25}
@media(max-width:1050px){.ascp-portal .ascp-v2-bottom-grid{grid-template-columns:minmax(0,1fr)}.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-card{width:100%}}
@media(max-width:550px){.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-row,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-row{flex-wrap:wrap}.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-info,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-info{flex:1 1 calc(100% - 55px)}.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-tickets .ascp-badge{margin-left:0}.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-actions{margin-left:auto}}

/* v1.15.76: equal-height Recent Tickets and Recent Documents dashboard panels.
   Equalize headers, list tracks and individual row heights on desktop without
   changing ticket/document content or link behavior. */
.ascp-portal .ascp-v2-bottom-grid{align-items:stretch}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-card{height:100%;box-sizing:border-box}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head{height:82px;min-height:82px;flex:0 0 82px;box-sizing:border-box}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-list,
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-list{display:grid;grid-template-rows:repeat(3,minmax(84px,auto));align-content:start;gap:8px;box-sizing:border-box;flex:1;padding:12px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-row,
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-row{height:100%;min-height:84px;box-sizing:border-box;margin:0;padding:10px;align-self:stretch}
@media(max-width:1050px){
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-card{height:auto}
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-list,
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-list{grid-template-rows:none;grid-auto-rows:minmax(84px,auto)}
}
@media(max-width:550px){
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-row,
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-row{height:auto;min-height:84px}
 .ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-head{height:auto;min-height:82px;flex-basis:auto}
}

/* v1.15.78: four-item, independent pagination for both dashboard panels. */
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-list,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-list{grid-template-rows:repeat(4,minmax(84px,auto));flex:0 0 auto}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;margin-top:auto;border-top:1px solid #315778;color:#d9e9fa;font-size:12px}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination a,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination .ascp-v2-page-disabled{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:8px 10px;border:1px solid #3875a5;border-radius:6px;background:#1c619d;color:#fff!important;text-decoration:none!important;font-weight:600;box-sizing:border-box}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination .ascp-v2-page-disabled{opacity:.5;background:#193a55;cursor:default}
.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination a:hover{background:#2779be}
@media(max-width:550px){.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-ticket-list,.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-doc-list{grid-template-rows:none;grid-auto-rows:minmax(84px,auto)}.ascp-portal .ascp-v2-bottom-grid .ascp-v2-recent-pagination{flex-wrap:wrap}}

/* v1.16.68 — Customer dashboard mobile viewport width.
 * The earlier outer-gutter rules reduce the portal to its parent content width.
 * On narrow screens, center the dashboard on the viewport instead, without
 * changing the desktop layout or any WordPress theme containers globally.
 */
@media screen and (max-width: 780px) {
	.ascp-portal.ascp-dashboard {
		width: 100vw !important;
		width: 100dvw !important;
		max-width: 100vw !important;
		max-width: 100dvw !important;
		margin: 0 0 16px calc(50% - 50vw) !important;
		margin-left: calc(50% - 50dvw) !important;
		padding: 10px !important;
		border-radius: 0 !important;
		min-width: 0 !important;
	}
	.ascp-portal.ascp-dashboard > *,
	.ascp-portal.ascp-dashboard .ascp-portal-panel,
	.ascp-portal.ascp-dashboard .ascp-dashboard-v2 {
		min-width: 0;
		max-width: 100%;
	}
	.ascp-portal.ascp-dashboard img,
	.ascp-portal.ascp-dashboard video {
		max-width: 100%;
		height: auto;
	}
}
