/**
 * Client Portal Frontend stylesheet
 * Corporate Navy & White Clean Design System
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap');

.client-portal-wrapper {
	/* Design System Tokens */
	--cp-navy: #00205B;
	--cp-dark-blue: #0A1D37;
	--cp-accent: #2563EB;
	--cp-accent-hover: #1D4ED8;
	--cp-bg-main: #F8FAFC;
	--cp-bg-card: #FFFFFF;
	--cp-bg-sidebar: #0A1D37;
	--cp-border-color: #E2E8F0;
	--cp-text-primary: #0F172A;
	--cp-text-secondary: #000000;
	--cp-text-muted: #64748B;

	--cp-green-bg: #DCFCE7;
	--cp-green-text: #15803D;
	--cp-green-accent: #22C55E;

	--cp-blue-bg: #E8F0FE;
	--cp-blue-border: #DBEAFE;
	--cp-blue-text: #1D4ED8;

	--cp-orange-bg: #FFF7ED;
	--cp-orange-border: #FFEDD5;
	--cp-orange-text: #C2410C;
	--cp-logout-btn: #8C4323;
	--cp-logout-hover: #733418;

	--cp-radius-lg: 12px;
	--cp-radius-md: 8px;
	--cp-radius-sm: 4px;

	--cp-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03);
	--cp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
	--cp-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.03);

	/* font-family: 'Outfit', sans-serif; */
	background-color: var(--cp-bg-main);
	color: var(--cp-text-primary);
	min-height: 100vh;
	box-sizing: border-box;
	position: relative;
}

.client-portal-wrapper * {
	box-sizing: border-box;
	transition: all 0.2s ease-in-out;
}

/* ==================================================== */
/* 1. SECURE LOGIN FORM STYLES                          */
/* ==================================================== */
.portal-login-card {
	max-width: 440px;
	margin: 80px auto;
	background: var(--cp-bg-card);
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-lg);
	padding: 40px;
	box-shadow: var(--cp-shadow-lg);
	text-align: left;
}

.portal-login-header {
	text-align: center;
	margin-bottom: 30px;
}
.cp-sidebar-footer .cp-user-name {
    text-transform: capitalize;
}
.info-row input {
	padding: 10px;
	border-radius: 5px;
	border: 1px solid #E2E8F0;
}

.edit-input-wrapper input {
	padding: 10px;
	border-radius: 5px;
	border: 1px solid #E2E8F0;
}

.portal-logo {
	margin-bottom: 15px;
	display: inline-block;
}

.portal-logo svg {
	width: 50px;
	height: 50px;
}

.portal-logo svg path[fill="url(#shieldGrad)"] {
	fill: var(--cp-navy);
}

.portal-login-header h2 {
	margin: 0 0 8px 0;
	font-size: 24px;
	font-weight: 700;
	color: #fff !important;
}

.card-title-header h3 {
	color: #1b2a4e !important;
	font-size: 18px !important;
}
.cp-sidebar-widget h3 {
    color: #1b2a4e !important;
    font-size: 18px !important;
}
.cp-card-header h3 {
	color: #1b2a4e !important;
	font-size: 18px !important;
}
.cp-layout-view .header-text-box p {
    font-size: 16px !important;
}
.button-primary-portal span {
	color: #1b2a4e;
}

.portal-login-header p {
	margin: 0;
	color: var(--cp-text-muted);
	font-size: 14px;
}

.portal-login-error {
	background: #FEF2F2;
	border-left: 4px solid #EF4444;
	border-radius: var(--cp-radius-sm);
	padding: 12px;
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.portal-login-error .error-icon {
	color: #EF4444;
	font-size: 16px;
}

.portal-login-error .error-text {
	font-size: 13px;
	color: #991B1B;
}

.portal-input-group {
	margin-bottom: 20px;
}

.portal-input-group label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 500;
	color: var(--cp-text-secondary);
}

.input-with-icon {
	position: relative;
}

.input-with-icon .input-icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--cp-text-muted);
	font-size: 14px;
}

.input-with-icon .input {
	width: 100% !important;
	padding: 12px 12px 12px 38px !important;
	background: #FFFFFF !important;
	border: 1px solid var(--cp-border-color) !important;
	border-radius: var(--cp-radius-md) !important;
	color: var(--cp-text-primary) !important;
	font-size: 14px !important;
	outline: none !important;
	box-shadow: none !important;
}

.input-with-icon .input:focus {
	border-color: var(--cp-accent) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

.portal-login-meta {
	margin-bottom: 20px;
	display: flex;
	align-items: center;
}

.rememberme-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--cp-text-secondary);
	cursor: pointer;
}

.portal-submit-group button {
	width: 100%;
	padding: 12px !important;
	background-color: var(--cp-navy) !important;
	color: #FFFFFF !important;
	border: none !important;
	border-radius: var(--cp-radius-md) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.portal-submit-group button:hover {
	background-color: var(--cp-dark-blue) !important;
}


/* ==================================================== */
/* 2. UNIFIED SIDEBAR NAVIGATION CONTAINER LAYOUT       */
/* ==================================================== */
.cp-sidebar-container {
	display: flex;
	min-height: 100vh;
}

.cp-sidebar {
	width: 260px;
	background-color: var(--cp-bg-sidebar);
	color: #FFFFFF;
	display: flex;
	flex-direction: column;
	padding: 30px 20px;
	flex-shrink: 0;
}

.cp-sidebar-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 40px;
}

.cp-sidebar-logo svg {
	width: 32px;
	height: 32px;
}

.cp-logo-text {
	display: flex;
	flex-direction: column;
}

.cp-logo-title {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.5px;
	line-height: 1.2;
}

.cp-logo-subtitle {
	font-size: 10px;
	color: var(--cp-text-muted);
	letter-spacing: 2px;
}

.cp-sidebar-menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cp-sidebar-menu li {
	margin-bottom: 8px;
}

.cp-menu-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	color: #E2E8F0;
	text-decoration: none;
	font-size: 16px;
	font-weight: 500;
	border-radius: var(--cp-radius-md);
}

.cp-menu-link:hover {
	background-color: rgba(255, 255, 255, 0.08);
	color: #FFFFFF;
}

.cp-menu-link.active {
	background-color: rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
	font-weight: 600;
	border-left: 3px solid var(--cp-accent);
}

.cp-menu-icon {
	font-size: 16px;
}

.cp-sidebar-footer {
	margin-top: auto;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 20px;
}

.cp-user-widget {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}

.cp-user-avatar {
	width: 36px;
	height: 36px;
	background-color: rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}

.cp-user-info {
	display: flex;
	flex-direction: column;
}

.cp-user-name {
	font-size: 13px;
	font-weight: 600;
}

.cp-user-id {
	font-size: 11px;
	color: var(--cp-text-muted);
}

.cp-view-account {
	font-size: 11px;
	color: var(--cp-accent);
	text-decoration: none;
	margin-top: 2px;
}

.cp-view-account:hover {
	text-decoration: underline;
}

.cp-btn-logout-sidebar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 10px;
	background-color: var(--cp-logout-btn);
	color: #FFFFFF;
	text-decoration: none;
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	border: none;
	cursor: pointer;
}

.cp-btn-logout-sidebar:hover {
	background-color: var(--cp-logout-hover);
}


/* ==================================================== */
/* 3. MAIN CONTENT LAYOUT SHELL STYLES                  */
/* ==================================================== */
.cp-main-viewport {
	flex-grow: 1;
	background-color: var(--cp-bg-main);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	overflow-x: hidden;
}

.cp-main-content {
	flex-grow: 1;
	padding: 30px;
	width: 100%;
}

.cp-profile-header,
.cp-section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
}

.cp-header-title h2,
.header-text-box h2 {
	margin: 0 0 5px 0;
	font-size: 28px;
	font-weight: 700;
	color: var(--cp-navy);
}

.cp-header-title p,
.header-text-box p {
	margin: 0;
	color: var(--cp-text-secondary);
	font-size: 14px;
}

.cp-client-id-badge {
	display: flex;
	align-items: center;
	background: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	overflow: hidden;
}

.cp-client-id-badge .badge-label {
	padding: 8px 12px;
	background-color: #F8FAFC;
	color: var(--cp-text-secondary);
	font-size: 12px;
	font-weight: 600;
	border-right: 1px solid var(--cp-border-color);
}

.cp-client-id-badge .badge-val {
	padding: 8px 16px;
	color: var(--cp-text-primary);
	font-size: 13px;
	font-weight: 700;
}


/* ==================================================== */
/* 4. PROFILE GRID & DIRECT INLINE EDIT FIELDS          */
/* ==================================================== */
.cp-profile-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.cp-card {
	background: var(--cp-bg-card);
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-lg);
	box-shadow: var(--cp-shadow-sm);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.cp-card:hover {
	box-shadow: var(--cp-shadow-md);
}

.cp-card-header {
	padding: 16px 20px;
	border-bottom: 1px solid var(--cp-border-color);
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #FFFFFF;
}

.cp-card-header h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-navy);
}

.cp-card-edit-btn {
	background: none;
	border: none;
	color: var(--cp-text-muted);
	font-size: 14px;
	cursor: pointer;
	padding: 4px;
}

.cp-card-edit-btn:hover {
	color: var(--cp-accent);
}

.cp-card-body {
	padding: 20px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.info-row {
	display: flex;
	flex-direction: column;
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 1px dashed #F1F5F9;
}

.info-row:last-of-type {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.info-label {
	font-size: 11px;
	color: var(--cp-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 3px;
}

.info-value {
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-text-primary);
}

/* Card 2 & 3 Direct Inline Inputs Styling */
.cp-card-input {
	border: none;
	background: transparent;
	padding: 4px 0;
	outline: none;
	pointer-events: none;
	color: var(--cp-text-primary);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	width: 100%;
	resize: none;
}

.cp-card-input.editable {
	border: 1px solid var(--cp-border-color);
	background-color: #FFFFFF;
	padding: 6px 10px;
	pointer-events: auto;
	font-weight: 500;
	border-radius: var(--cp-radius-md);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.cp-card-select {
	appearance: none;
	-webkit-appearance: none;
	border: none;
	background: transparent;
	padding: 4px 0;
	outline: none;
	pointer-events: none;
	color: var(--cp-text-primary);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	width: 100%;
}

.cp-card-select.editable {
	appearance: select;
	-webkit-appearance: select;
	border: 1px solid var(--cp-border-color);
	background-color: #FFFFFF;
	padding: 6px 10px;
	pointer-events: auto;
	font-weight: 500;
	border-radius: var(--cp-radius-md);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.card-edit-actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

.btn-sm {
	padding: 6px 14px !important;
	font-size: 12px !important;
}

/* WhatsApp element alignment */
.whatsapp-link {
	color: var(--cp-text-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.whatsapp-link:hover {
	color: var(--cp-green-text);
}

.whatsapp-dot {
	font-size: 10px;
}

/* Alert Boxes / Banners inside cards */
.cp-alert-banner {
	background-color: var(--cp-blue-bg);
	border: 1px solid var(--cp-blue-border);
	border-radius: var(--cp-radius-md);
	padding: 10px 14px;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 15px;
}

.cp-alert-banner .alert-icon {
	color: var(--cp-blue-text);
	font-size: 14px;
	font-weight: bold;
}

.cp-alert-banner .alert-msg {
	margin: 0;
	font-size: 11px;
	line-height: 1.4;
	color: var(--cp-text-secondary);
}

.cp-alert-banner.gray-alert {
	background-color: #F8FAFC;
	border-color: #E2E8F0;
}

.cp-alert-banner.gray-alert .alert-icon {
	color: var(--cp-text-secondary);
}

/* Lockbox widget card styling */
.lock-subtitle {
	font-size: 12px;
	color: var(--cp-text-muted);
	margin-bottom: 8px;
	font-weight: 500;
}

.lock-display-box {
	background-color: var(--cp-orange-bg);
	border: 1px solid var(--cp-orange-border);
	border-radius: var(--cp-radius-md);
	padding: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin-bottom: 15px;
}

.lock-display-box .key-icon {
	font-size: 24px;
}

.lock-display-box .lock-code-text {
	font-size: 32px;
	font-weight: 700;
	color: var(--cp-orange-text);
	letter-spacing: 2px;
}

.lock-footer-help {
	font-size: 11px;
	color: var(--cp-text-muted);
	margin: 5px 0 0 0;
	text-align: center;
}

/* Plan card widget styling */
.plan-summary-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}

.plan-summary-row .plan-label {
	font-size: 12px;
	color: var(--cp-text-muted);
	font-weight: 500;
}

.plan-summary-row .plan-value {
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-orange-text);
}

.plan-services-checklist {
	margin-bottom: 20px;
}

.plan-services-checklist .checklist-title {
	font-size: 12px;
	color: var(--cp-text-muted);
	font-weight: 600;
	display: block;
	margin-bottom: 10px;
}

.checklist-items {
	list-style: none;
	padding: 0;
	margin: 0;
}

.checklist-items li {
	font-size: 13px;
	color: var(--cp-text-secondary);
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.checklist-items li .check-icon {
	color: var(--cp-green-accent);
	font-weight: bold;
}

.checklist-items li.addon-bullet .check-icon.addon-check {
	color: var(--cp-accent);
}

.cp-btn-upgrade-action {
	width: 100%;
	padding: 10px;
	border: 1px solid var(--cp-orange-border);
	background-color: #FFFFFF;
	color: var(--cp-orange-text);
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	margin-top: auto;
}

.cp-btn-upgrade-action:hover {
	background-color: var(--cp-orange-bg);
}

/* Card 7: Account Actions styling */
.cp-card-full-width {
	grid-column: span 3;
}

.actions-description {
	font-size: 14px;
	color: #000;
	margin: 0 0 20px 0;
}

.cp-inline-edit-form {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.edit-fields-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.edit-input-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.edit-input-group label {
	font-size: 12px;
	color: var(--cp-text-muted);
	font-weight: 500;
}

.edit-input-wrapper {
	position: relative;
}

.cp-edit-input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	background-color: #F8FAFC;
	font-size: 13px;
	color: var(--cp-text-secondary);
	outline: none;
}

.cp-edit-input.editable {
	background-color: #FFFFFF;
	border-color: var(--cp-accent);
	color: var(--cp-text-primary);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.inline-pencil-icon {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--cp-text-muted);
	font-size: 12px;
}

.edit-buttons-row {
	display: flex;
	gap: 15px;
}

.cp-btn-primary {
	padding: 10px 20px;
	background-color: var(--cp-navy);
	color: #FFFFFF;
	border: none;
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-primary:hover {
	background-color: var(--cp-dark-blue);
}

.cp-btn-secondary {
	padding: 10px 20px;
	background-color: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	color: var(--cp-text-secondary);
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-secondary:hover {
	background-color: #F8FAFC;
}

.cp-btn-secondary.btn-cancel {
	background-color: #FEF2F2;
	border-color: #FCA5A5;
	color: #991B1B;
}

.cp-btn-outline {
	padding: 10px 20px;
	background-color: #FFFFFF;
	border: 1px solid var(--cp-orange-border);
	color: var(--cp-orange-text);
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	margin-left: auto;
}

.cp-btn-outline:hover {
	background-color: var(--cp-orange-bg);
}

.margin-top-15 {
	margin-top: 15px !important;
}


/* ==================================================== */
/* 5. REPORTS DISPLAY MAIN AREA STYLES                  */
/* ==================================================== */
.cp-reports-grid-container {
	display: grid;
	grid-template-columns: 7fr 3fr;
	gap: 30px;
	width: 100%;
}

.header-icon-box {
	width: 36px;
	height: 36px;
	background-color: var(--cp-blue-bg);
	color: var(--cp-blue-text);
	border-radius: var(--cp-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}

/* Reports Summary Meta Bar */
.cp-reports-info-bar {
	display: flex;
	background-color: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-lg);
	padding: 16px 24px;
	margin-bottom: 30px;
	gap: 40px;
	box-shadow: var(--cp-shadow-sm);
	justify-content: space-between;
}

.info-bar-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.info-bar-icon {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background-color: #F8FAFC;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.info-bar-text {
	display: flex;
	flex-direction: column;
}

.info-bar-label {
	font-size: 10px;
	color: var(--cp-text-muted);
	text-transform: uppercase;
}

.info-bar-value {
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-text-primary);
}

/* Reports listing Card & filters */
.cp-reports-listing-card {
	background: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-lg);
	box-shadow: var(--cp-shadow-sm);
	overflow: hidden;
}

.card-title-header {
	padding: 16px 24px;
	border-bottom: 1px solid var(--cp-border-color);
	background: #FFFFFF;
}

.card-title-header h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-navy);
}

.card-content-body {
	padding: 24px;
}

/* Filter controls row */
.cp-search-filters-row {
	display: flex;
	align-items: flex-end;
	gap: 20px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--cp-border-color);
	padding-bottom: 24px;
}

.filter-dropdown-wrapper {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.filter-dropdown-wrapper label {
	font-size: 12px;
	color: var(--cp-text-muted);
	font-weight: 500;
}

.filter-dropdown-wrapper select {
	padding: 10px 16px;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	background-color: #FFFFFF;
	font-size: 13px;
	color: var(--cp-text-primary);
	outline: none;
	min-width: 150px;
}

.cp-btn-apply-action {
	padding: 12px 15px;
	background-color: #1b2a4f;
	color: #FFFFFF;
	border: none;
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-apply-action:hover {
	background-color: var(--cp-dark-blue);
}

.cp-btn-reset-link {
	padding: 12px 15px;
	background: none;
	border: 1px solid #E2E8F0;
	color: var(--cp-text-muted);
	font-size: 13px;
	text-decoration: none;
	font-weight: 600;
	cursor: pointer;
	border-radius: 8px;
}

.cp-btn-reset-link:hover {
	color: var(--cp-accent);
}

/* Reports AJAX listing Row Card */
.cp-report-list-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 20px;
	background: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	margin-bottom: 12px;
}

.cp-report-list-row:hover {
	border-color: var(--cp-accent);
	box-shadow: var(--cp-shadow-sm);
}

.row-left-meta {
	display: flex;
	align-items: center;
	gap: 15px;
}

.row-icon-box {
	width: 36px;
	height: 36px;
	background-color: #F8FAFC;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}

.row-meta-labels {
	display: flex;
	flex-direction: column;
}

.meta-date-label {
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-text-primary);
}

.meta-title-label {
	font-size: 12px;
	color: var(--cp-text-muted);
}

.status-badge {
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 600;
}

.green-badge {
	background-color: var(--cp-green-bg);
	color: var(--cp-green-text);
}

.row-right-actions {
	display: flex;
	gap: 10px;
}

.cp-btn-row-action {
	padding: 8px 14px;
	border: 1px solid var(--cp-border-color);
	background: #FFFFFF;
	color: var(--cp-text-secondary);
	border-radius: var(--cp-radius-md);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cp-btn-row-action:hover {
	border-color: var(--cp-navy);
	color: var(--cp-navy);
	background-color: #F8FAFC;
}

.cp-btn-row-action.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.cp-btn-row-action.disabled:hover {
	border-color: var(--cp-border-color);
	color: var(--cp-text-secondary);
	background-color: #FFFFFF;
}

.no-reports-placeholder {
	text-align: center;
	padding: 40px;
	color: var(--cp-text-muted);
}

.no-reports-placeholder .info-icon {
	font-size: 24px;
	margin-bottom: 10px;
}


/* ==================================================== */
/* 6. REPORTS SIDEBAR WIDGETS                          */
/* ==================================================== */
.cp-column-reports-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.cp-sidebar-widget {
	background: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-lg);
	box-shadow: var(--cp-shadow-sm);
	overflow: hidden;
}

.widget-header {
	padding: 16px 20px;
	border-bottom: 1px solid var(--cp-border-color);
	background: #FFFFFF;
}

.widget-header h4 {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-navy);
}

.widget-body {
	padding: 20px;
}

.summary-checkpoint-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14px;
	border-bottom: 1px dashed #F1F5F9;
	padding-bottom: 10px;
}

.checkpoint-label {
	font-size: 12px;
	color: var(--cp-text-secondary);
}

.checkpoint-val-box {
	display: flex;
	align-items: center;
	gap: 6px;
}

.checkpoint-val {
	font-size: 13px;
}

.checkpoint-check {
	color: var(--cp-green-accent);
	font-weight: bold;
	font-size: 14px;
}

.text-green {
	color: var(--cp-green-text);
}

.font-bold {
	font-weight: 700;
}

.summary-notes-block {
	margin-top: 15px;
	margin-bottom: 20px;
	background-color: #F8FAFC;
	padding: 12px;
	border-radius: var(--cp-radius-md);
}

.notes-block-label {
	font-size: 10px;
	color: var(--cp-text-muted);
	text-transform: uppercase;
	display: block;
	margin-bottom: 4px;
}

.notes-block-content {
	margin: 0;
	font-size: 12px;
	color: var(--cp-text-secondary);
	line-height: 1.4;
}

.cp-btn-widget-action {
	width: 100%;
	padding: 10px;
	border: 1px solid var(--cp-border-color);
	background: #FFFFFF;
	color: var(--cp-navy);
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-widget-action:hover {
	background-color: #F8FAFC;
	border-color: var(--cp-navy);
}

.about-widget-desc {
	margin: 0 0 15px 0;
	font-size: 12px;
	color: var(--cp-text-secondary);
	line-height: 1.5;
}


/* ==================================================== */
/* 7. LAYOUT FOOTER                                     */
/* ==================================================== */
.cp-navbar-footer {
	margin-top: 40px;
	padding: 20px 0 0px;
	border-top: 1px solid var(--cp-border-color);
	display: block;
	justify-content: space-between;
	align-items: center;
}

.footer-left-info {
	display: flex;
	align-items: center;
	gap: 10px;
}

.footer-shield-badge {
	font-size: 18px;
}

.footer-left-info p {
	margin: 0;
	font-size: 14px;
	color: var(--cp-text-muted);
}

.footer-right-contacts {
	display: flex;
    gap: 20px;
    justify-content: space-between;
    margin-top: 10px;
}

.footer-contact-item {
	font-size: 14px;
	color: #000;
	text-decoration: none;
}

.footer-contact-item:hover {
	color: var(--cp-accent);
}


/* ==================================================== */
/* 8. MODALS AND OVERLAYS                               */
/* ==================================================== */
.cp-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(15, 23, 42, 0.4);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
}

.cp-modal-box {
	background: #FFFFFF;
	border-radius: var(--cp-radius-lg);
	width: 100%;
	max-width: 480px;
	box-shadow: var(--cp-shadow-lg);
	overflow: hidden;
}

.cp-modal-header {
	padding: 16px 24px;
	border-bottom: 1px solid var(--cp-border-color);
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.cp-modal-header h3 {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--cp-navy);
}

.cp-modal-close-btn {
	background: none;
	border: none;
	font-size: 20px;
	color: var(--cp-text-muted);
	cursor: pointer;
}

.cp-modal-close-btn:hover {
	color: var(--cp-text-primary);
}

.cp-modal-body {
	padding: 24px;
}

.modal-form-row {
	margin-bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.modal-form-row label {
	font-size: 13px;
	color: var(--cp-text-secondary);
}

.modal-form-row select {
	padding: 10px;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	width: 100%;
	outline: none;
}

.modal-checkboxes-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 5px;
}

.checkbox-option-item label {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

.checkbox-option-item label span {
	font-size: 13px;
	color: var(--cp-text-primary);
}

.modal-action-buttons {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 25px;
}

.cp-btn-modal-cancel {
	padding: 10px 16px;
	background-color: #FFFFFF;
	border: 1px solid var(--cp-border-color);
	color: var(--cp-text-secondary);
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-modal-submit {
	padding: 10px 20px;
	background-color: var(--cp-navy);
	color: #FFFFFF;
	border: none;
	border-radius: var(--cp-radius-md);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-btn-modal-submit:hover {
	background-color: var(--cp-dark-blue);
}

.cp-btn-modal-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.help-desc {
	font-size: 11px;
	color: var(--cp-text-muted);
	margin: 0 0 10px 0;
	line-height: 1.4;
}

.modal-form-row textarea {
	width: 100%;
	padding: 10px;
	border: 1px solid var(--cp-border-color);
	border-radius: var(--cp-radius-md);
	outline: none;
	font-family: inherit;
	font-size: 13px;
}


/* ==================================================== */
/* 9. REPORT DETAILS DRAWER (AJAX LOADER)               */
/* ==================================================== */
.portal-details-drawer {
	position: fixed;
	top: 0;
	right: -600px;
	width: 500px;
	height: 100%;
	z-index: 9999;
	visibility: hidden;
}

.portal-details-drawer.open {
	right: 0;
	visibility: visible;
}

.drawer-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(15, 23, 42, 0.3);
	backdrop-filter: blur(2px);
	z-index: -1;
}

.drawer-content {
	width: 100%;
	height: 100%;
	background-color: #FFFFFF;
	box-shadow: -5px 0 25px rgba(0, 0, 0, 0.15);
	display: flex;
	flex-direction: column;
	padding: 30px;
	overflow-y: auto;
	position: relative;
}

.btn-close-drawer {
	position: absolute;
	top: 20px;
	left: 20px;
	background: #F1F5F9;
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cp-text-secondary);
	cursor: pointer;
}

.btn-close-drawer:hover {
	background: #E2E8F0;
	color: var(--cp-text-primary);
}

.drawer-body {
	margin-top: 30px;
}

/* Report details tabs */
.report-detail-container {
	display: flex;
	flex-direction: column;
}

.detail-header {
	margin-bottom: 25px;
}

.detail-badge {
	padding: 4px 8px;
	background-color: var(--cp-blue-bg);
	color: var(--cp-blue-text);
	border-radius: var(--cp-radius-sm);
	font-size: 11px;
	font-weight: 700;
	display: inline-block;
	margin-bottom: 8px;
}

.detail-header h2 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var(--cp-navy);
}

.detail-tabs {
	display: flex;
	border-bottom: 1px solid var(--cp-border-color);
	margin-bottom: 20px;
	gap: 10px;
}

.tab-btn {
	padding: 10px 14px;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	font-size: 13px;
	color: var(--cp-text-secondary);
	font-weight: 600;
	cursor: pointer;
}

.tab-btn.active {
	border-bottom-color: var(--cp-accent);
	color: var(--cp-accent);
}

.tab-panels {
	flex-grow: 1;
}

.tab-panel {
	display: none;
}

.tab-panel.active {
	display: block;
}

.pdf-panel-content {
	display: flex;
	gap: 20px;
	background-color: #F8FAFC;
	padding: 20px;
	border-radius: var(--cp-radius-lg);
	border: 1px solid var(--cp-border-color);
}

.pdf-details h4 {
	margin: 0 0 6px 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--cp-text-primary);
}

.pdf-details p {
	margin: 0 0 15px 0;
	font-size: 12px;
	color: var(--cp-text-muted);
	line-height: 1.4;
}

.pdf-action-buttons {
	display: flex;
	gap: 10px;
}

/* ==================================================== */
/* FORM SUCCESS/ERROR MESSAGES */
/* ==================================================== */
.cp-form-message {
	margin-top: 15px;
	margin-bottom: 0;
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	animation: slideDown 0.3s ease-in-out;
	display: block !important;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	position: relative;
	z-index: 100;
}

@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.cp-form-message-success {
	background-color: #DCFCE7 !important;
	color: #15803D !important;
	border: 1px solid #22C55E !important;
	box-shadow: 0 2px 4px rgba(34, 197, 94, 0.1);
}

.cp-form-message-success span::before {
	content: '✓ ';
	font-weight: 700;
	color: #22C55E;
	margin-right: 5px;
}

.cp-form-message-error {
	background-color: #FEE2E2 !important;
	color: #991B1B !important;
	border: 1px solid #FECACA !important;
	box-shadow: 0 2px 4px rgba(220, 38, 38, 0.1);
}

.cp-form-message-error span::before {
	content: '⚠ ';
	font-weight: 700;
	color: #DC2626;
	margin-right: 5px;
}

.cp-form-message-error span::before {
	content: '⚠ ';
	font-weight: 700;
}

.btn-portal-primary {
	padding: 8px 16px;
	background-color: var(--cp-navy);
	color: #FFFFFF;
	border-radius: var(--cp-radius-md);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

.btn-portal-primary:hover {
	background-color: var(--cp-dark-blue);
}

.btn-portal-secondary {
	padding: 8px 16px;
	border: 1px solid var(--cp-border-color);
	background-color: #FFFFFF;
	color: var(--cp-text-secondary);
	border-radius: var(--cp-radius-md);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

.btn-portal-secondary:hover {
	background-color: #F8FAFC;
}

.no-media-placeholder {
	text-align: center;
	padding: 30px;
	background: #F8FAFC;
	border-radius: var(--cp-radius-lg);
	border: 1px dashed var(--cp-border-color);
	color: var(--cp-text-muted);
}

/* Image grid in drawer */
.portal-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.portal-gallery-item {
	aspect-ratio: 1;
	border-radius: var(--cp-radius-md);
	overflow: hidden;
	background-color: #EEEEEE;
	cursor: pointer;
}

.portal-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.portal-gallery-item img:hover {
	transform: scale(1.05);
}

.gallery-tip {
	text-align: center;
	font-size: 11px;
	color: var(--cp-text-muted);
	margin-top: 15px;
}

/* Video player */
.portal-video-player-wrapper {
	width: 100%;
	aspect-ratio: 1.77;
	border-radius: var(--cp-radius-lg);
	overflow: hidden;
}

.portal-video-player {
	width: 100%;
	height: 100%;
	background-color: #000;
}

.portal-youtube-wrapper {
	width: 100%;
	aspect-ratio: 1.77;
	border-radius: var(--cp-radius-lg);
	overflow: hidden;
}

.portal-youtube-wrapper iframe {
	width: 100%;
	height: 100%;
}


/* ==================================================== */
/* 9. LIGHTBOX IMAGE OVERLAY                            */
/* ==================================================== */
.portal-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(15, 23, 42, 0.9);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 10000;
}

.lightbox-close {
	position: absolute;
	top: 25px;
	right: 25px;
	font-size: 36px;
	color: #FFFFFF;
	cursor: pointer;
}

.lightbox-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	font-size: 40px;
	color: rgba(255, 255, 255, 0.7);
	cursor: pointer;
	padding: 20px;
}

.lightbox-arrow:hover {
	color: #FFFFFF;
}

.arrow-prev {
	left: 20px;
}

.arrow-next {
	right: 20px;
}

.lightbox-content-container {
	max-width: 80%;
	max-height: 80%;
}

.lightbox-content-container img {
	max-width: 100%;
	max-height: 80vh;
	border-radius: var(--cp-radius-lg);
}


/* ==================================================== */
/* 10. MOBILE & TABLET RESPONSIVENESS                   */
/* ==================================================== */
@media screen and (max-width: 1199px) {
	.cp-reports-grid-container {
		display: block !important;
		width: 100%;
	}
}

@media screen and (max-width: 1024px) {
	.cp-navbar-footer { 
		gap: 20px;
	}
	.footer-right-contacts {
		display: block; 
	}
	 .footer-right-contacts  a.footer-contact-item {
    padding-right: 20px;
}
	.cp-profile-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.cp-card-full-width {
		grid-column: span 2;
	}
}

@media screen and (max-width: 991px){
		.cp-report-list-row {
		display: block;
		position: relative;
	}

	.cp-report-list-row .row-middle-badge {
		position: absolute;
		top: 20px;
		right: 20px;
	}

	.cp-report-list-row .row-right-actions {
		justify-content: center;
		gap: 15px;
		padding-top: 10px !important;
	}

	.cp-reports-listing-card {
		margin-bottom: 20px;
	}

	.cp-search-filters-row {
		display: block;
	}

	.cp-reports-listing-card {
		margin-bottom: 20px;
	}

	#cp-apply-filters-btn {
		margin: 20px 10px 0px 0px;
	}
}

@media screen and (max-width: 768px) {
	.cp-sidebar-container {
		flex-direction: column;
	}

	.cp-sidebar {
		width: 100%;
		padding: 20px;
	}

	.cp-sidebar-logo {
		margin-bottom: 20px;
	}

	.cp-profile-grid {
		grid-template-columns: 1fr;
	}

	.cp-card-full-width {
		grid-column: span 1;
	}

	.edit-fields-row {
		grid-template-columns: 1fr;
	}

	.cp-reports-info-bar {
		flex-direction: column;
		gap: 15px;
	}

	.cp-search-filters-row {
		flex-direction: column;
		align-items: stretch;
	}

	.filter-dropdown-wrapper select {
		width: 100%;
	}

	.cp-report-list-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}

	.row-right-actions {
		width: 100%;
		flex-wrap: wrap;
	}

	.cp-btn-row-action {
		flex-grow: 1;
		justify-content: center;
	}

	.portal-details-drawer {
		width: 100%;
		right: -100%;
	}

	.cp-navbar-footer {
		flex-direction: column;
		gap: 15px;
		text-align: center;
	}

	.footer-left-info {
		flex-direction: column;
	}
 
	.footer-right-contacts {
		flex-direction: column;
		gap: 10px;
	} 
	.footer-right-contacts { 
		display: flex;
	}
}