/**
 * DW250 CRM Public Styles
 *
 * Styles for CRM shortcodes used on frontend pages (/client, /crm, /crm-admin).
 * Includes all component styling from admin interface adapted for frontend use.
 *
 * @package    DW250_CRM
 * @subpackage DW250_CRM/public/css
 * @author     SBLOCK (Sean Lennon)
 * @since      1.0.0
 */

/* Dashboard Cards */
.dw250-crm-dashboard {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	margin-top: 20px;
}

.dw250-crm-dashboard .card {
	padding: 20px;
}

.dw250-crm-dashboard .card h2 {
	margin-top: 0;
	color: #1B3B6F; /* Navy Blue */
}

.dw250-crm-dashboard .card p {
	margin: 10px 0;
}

.dw250-crm-dashboard .card strong {
	color: #8B0000; /* Deep Red */
}

/* Client List Table */
.dw250-crm-clients-table {
	width: 100%;
	margin-top: 20px;
}

.dw250-crm-clients-table th {
	background-color: #1B3B6F;
	color: #fff;
	padding: 12px;
	text-align: left;
}

.dw250-crm-clients-table td {
	padding: 12px;
	border-bottom: 1px solid #ddd;
}

.dw250-crm-clients-table tr:hover {
	background-color: #f5f5f5;
}

/* Status Badges (will be used in future stories) */
.dw250-status-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
}

.status-intro-email {
	background-color: #2196F3;
	color: #fff;
}

.status-assessment {
	background-color: #FF9800;
	color: #fff;
}

.status-active {
	background-color: #9C27B0;
	color: #fff;
}

.status-submitted {
	background-color: #4CAF50;
	color: #fff;
}

.status-decision {
	background-color: #9C27B0;
	color: #fff;
}

.status-closed {
	background-color: #2E7D32;
	color: #fff;
}

.status-on-hold {
	background-color: #757575;
	color: #fff;
}

/* Forms */
.dw250-crm-form-section {
	background: #fff;
	padding: 20px;
	margin-bottom: 20px;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.dw250-crm-form-section h3 {
	margin-top: 0;
	color: #1B3B6F;
	border-bottom: 2px solid #F0A202;
	padding-bottom: 10px;
}

/* Loading Spinner */
.dw250-crm-loading {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 3px solid #f3f3f3;
	border-top: 3px solid #1B3B6F;
	border-radius: 50%;
	animation: dw250-spin 1s linear infinite;
}

@keyframes dw250-spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Search and Filter Styles (Stories 3.5 & 3.6) */
.dw250-search-box {
	margin: 20px 0;
	display: flex;
	gap: 10px;
	align-items: center;
}

.dw250-search-box input[type="text"] {
	flex: 1;
	max-width: 400px;
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 14px;
}

.dw250-search-box input[type="text"]:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 1px #1B3B6F;
}

#dw250-search-results-count,
#dw250-filter-results-count {
	margin: 10px 0;
	font-style: italic;
	color: #666;
}

/* Filter Panel */
.dw250-filter-panel {
	background: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 20px;
	margin: 20px 0;
}

.dw250-filter-panel .filter-row {
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.dw250-filter-panel .filter-row label {
	min-width: 150px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-filter-panel .filter-row select {
	flex: 1;
	max-width: 300px;
	padding: 6px 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.dw250-filter-panel .filter-actions {
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid #ddd;
	display: flex;
	gap: 10px;
}

/* Client List Filter Grid - horizontal layout */
.dw250-cl-filter-grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	padding: 16px 20px;
	margin: 0 0 16px 0;
}

.dw250-cl-filter-grid .filter-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 0;
	flex: 1;
	min-width: 140px;
}

.dw250-cl-filter-grid .filter-row label {
	font-size: 12px;
	font-weight: 600;
	color: #1B3B6F;
	min-width: auto;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dw250-cl-filter-grid .filter-row select {
	width: 100%;
	max-width: none;
	padding: 8px 10px;
	border: 1px solid #ddd;
	border-radius: 6px;
	background: #fff;
	font-size: 14px;
	cursor: pointer;
}

.dw250-cl-filter-grid .filter-row select:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 2px rgba(27, 59, 111, 0.1);
}

.dw250-cl-filter-grid .filter-actions {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
	align-self: flex-end;
}

#toggle-filters {
	margin: 10px 0;
}

#toggle-filters.filters-open .dashicons {
	transform: rotate(180deg);
	transition: transform 0.3s;
}

/* Active Filter Tags */
#active-filters {
	margin: 15px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.dw250-filter-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #1B3B6F;
	color: #fff;
	padding: 6px 12px;
	border-radius: 20px;
	font-size: 13px;
}

.dw250-filter-tag strong {
	font-weight: 600;
}

.dw250-filter-tag .remove-filter {
	color: #fff;
	text-decoration: none;
	font-size: 18px;
	line-height: 1;
	margin-left: 5px;
	opacity: 0.8;
	transition: opacity 0.2s;
}

.dw250-filter-tag .remove-filter:hover {
	opacity: 1;
}

/* Workflow Badges */
.dw250-workflow-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 3px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
}

.dw250-workflow-badge.status-intro_email,
.dw250-workflow-badge.status-intro-email {
	background-color: #2196F3;
}

.dw250-workflow-badge.status-assessment {
	background-color: #FF9800;
}

.dw250-workflow-badge.status-active_engagement,
.dw250-workflow-badge.status-active-engagement {
	background-color: #9C27B0;
}

.dw250-workflow-badge.status-claim_submitted,
.dw250-workflow-badge.status-claim-submitted {
	background-color: #4CAF50;
}

.dw250-workflow-badge.status-decision_received,
.dw250-workflow-badge.status-decision-received {
	background-color: #9C27B0;
}

.dw250-workflow-badge.status-closed {
	background-color: #2E7D32;
}

/* Status Badges */
.dw250-status-badge.status-new {
	background-color: #2196F3;
}

.dw250-status-badge.status-active {
	background-color: #4CAF50;
}

.dw250-status-badge.status-closed {
	background-color: #757575;
}

/* Loading Overlay */
#dw250-clients-table.loading {
	position: relative;
	opacity: 0.6;
	pointer-events: none;
}

#dw250-clients-table .dw250-crm-loading {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 40px;
	height: 40px;
	border-width: 4px;
	z-index: 10;
}

/* Empty State */
.dw250-empty-state {
	text-align: center;
	padding: 40px 20px;
	color: #666;
	font-style: italic;
}

/* Responsive */
@media screen and (max-width: 782px) {
	.dw250-crm-dashboard {
		grid-template-columns: 1fr;
	}

	.dw250-search-box {
		flex-direction: column;
		align-items: stretch;
	}

	.dw250-search-box input[type="text"] {
		max-width: 100%;
	}

	.dw250-filter-panel .filter-row {
		flex-direction: column;
		align-items: stretch;
	}

	.dw250-filter-panel .filter-row label {
		min-width: auto;
	}

	.dw250-filter-panel .filter-row select {
		max-width: 100%;
	}

	.dw250-cl-filter-grid {
		flex-direction: column;
		gap: 12px;
	}

	.dw250-cl-filter-grid .filter-row {
		min-width: 100%;
	}
}

/* =========================================================================
   CRM LAYOUT - SIDEBAR + MAIN CONTENT GRID
   ========================================================================= */

.dw250-crm-layout {
	display: grid;
	grid-template-columns: 250px 1fr;
	min-height: 100vh;
}

/* Sidebar */
.dw250-crm-sidebar {
	background: #1B3B6F;
	color: #fff;
	padding: 24px 0;
	position: sticky;
	top: 0;
	height: 100vh;
	overflow-y: auto;
}

.dw250-crm-sidebar-logo {
	padding: 0 24px;
	margin-bottom: 32px;
}

.dw250-crm-sidebar-logo h2 {
	font-size: 24px;
	color: #F0A202;
	margin: 0;
}

.dw250-crm-sidebar-logo p {
	font-size: 12px;
	color: #ccc;
	margin: 4px 0 0 0;
}

.dw250-crm-sidebar-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-crm-sidebar-nav li {
	margin: 0;
}

.dw250-crm-sidebar-nav a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 24px;
	color: #fff;
	text-decoration: none;
	font-size: 15px;
	transition: all 0.3s;
	border-left: 4px solid transparent;
}

.dw250-crm-sidebar-nav a:hover,
.dw250-crm-sidebar-nav a.active {
	background: rgba(255, 255, 255, 0.1);
	border-left-color: #F0A202;
	padding-left: 20px;
}

.dw250-crm-sidebar-nav a .dashicons {
	font-size: 20px;
	width: 24px;
	height: 24px;
	line-height: 24px;
}

.dw250-crm-sidebar-divider {
	margin-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	padding-top: 24px;
}

/* Main Content Area */
.dw250-crm-main {
	padding: 32px;
	background: #F5F5F5;
	min-height: 100vh;
}

/* =========================================================================
   CRM CLIENT LIST PAGE
   ========================================================================= */

/* Page Header */
.dw250-cl-page-header {
	background: #fff;
	padding: 24px;
	border-radius: 8px;
	margin-bottom: 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cl-page-header h1 {
	font-size: 32px;
	color: #1B3B6F;
	margin: 0;
}

.dw250-cl-page-header p {
	color: #666;
	margin: 4px 0 0 0;
	font-size: 14px;
}

.dw250-cl-btn-add {
	background: #28A745;
	color: #fff;
	padding: 12px 24px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 14px;
	border: none;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: background 0.3s;
}

.dw250-cl-btn-add:hover {
	background: #218838;
	color: #fff;
}

/* Controls Bar */
.dw250-cl-controls {
	background: #fff;
	padding: 24px;
	border-radius: 8px;
	margin-bottom: 24px;
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cl-search {
	flex: 1;
	min-width: 250px;
	position: relative;
}

.dw250-cl-search .dashicons {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #666;
	font-size: 18px;
}

.dw250-cl-search input {
	width: 100%;
	padding: 12px 64px 12px 40px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
	box-sizing: border-box;
}

.dw250-cl-search input:focus {
	outline: none;
	border-color: #1B3B6F;
	box-shadow: 0 0 0 1px #1B3B6F;
}

.dw250-cl-btn-search,
.dw250-cl-btn-clear-search {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: #666;
	line-height: 1;
}

.dw250-cl-btn-search {
	right: 36px;
}

.dw250-cl-btn-clear-search {
	right: 8px;
}

.dw250-cl-btn-search:hover,
.dw250-cl-btn-clear-search:hover {
	color: #1B3B6F;
}

.dw250-cl-btn-filter {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	background: #f0f0f1;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
	cursor: pointer;
	color: #1B3B6F;
	transition: background 0.2s;
}

.dw250-cl-btn-filter:hover {
	background: #e0e0e1;
}

.dw250-cl-btn-filter .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.dw250-cl-filter-select {
	padding: 12px 16px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
	min-width: 150px;
	background: #fff;
	cursor: pointer;
}

.dw250-cl-filter-select:focus {
	outline: none;
	border-color: #1B3B6F;
}

/* Results Count */
.dw250-cl-results-count {
	font-size: 14px;
	color: #666;
	font-style: italic;
	margin-bottom: 16px;
}

/* Client Table */
.dw250-cl-table-container {
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cl-table {
	width: 100%;
	border-collapse: collapse;
}

.dw250-cl-table thead {
	background: #1B3B6F;
	color: #fff;
}

.dw250-cl-table th {
	padding: 16px;
	text-align: left;
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
}

.dw250-cl-table td {
	padding: 16px;
	border-bottom: 1px solid #f0f0f0;
	font-size: 14px;
}

.dw250-cl-table tbody tr {
	transition: background 0.2s;
	cursor: pointer;
}

.dw250-cl-table tbody tr:hover {
	background: #F0F7FF;
}

.dw250-cl-table td a {
	color: #1B3B6F;
	text-decoration: none;
}

.dw250-cl-table td a:hover {
	text-decoration: underline;
}

/* Priority Badge */
.dw250-cl-priority-badge {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	display: inline-block;
}

.dw250-cl-priority-badge.priority-high {
	background: #DC3545;
}

.dw250-cl-priority-badge.priority-normal {
	background: #999;
}

/* Status Badge (Workflow Stage) */
.dw250-cl-status-badge {
	padding: 4px 12px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 700;
	display: inline-block;
	white-space: nowrap;
	color: #fff;
}

.dw250-cl-status-badge.stage-intro_email {
	background: #1B3B6F;
}

.dw250-cl-status-badge.stage-assessment {
	background: #FFA500;
}

.dw250-cl-status-badge.stage-active_engagement {
	background: #6A0DAD;
}

.dw250-cl-status-badge.stage-claim_submitted {
	background: #4A90E2;
}

.dw250-cl-status-badge.stage-decision_received {
	background: #FFD700;
	color: #1B3B6F;
}

.dw250-cl-status-badge.stage-closed {
	background: #2E7D32;
}

/* Action Buttons */
.dw250-cl-actions {
	display: flex;
	gap: 8px;
}

.dw250-cl-action-btn {
	padding: 6px 8px;
	background: transparent;
	border: 1px solid #ccc;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.3s;
	text-decoration: none;
	color: #333;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.dw250-cl-action-btn:hover {
	background: #F5F5F5;
	border-color: #1B3B6F;
	color: #1B3B6F;
}

.dw250-cl-action-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 16px;
}

/* Last Touched Warning */
.dw250-cl-touch-warning {
	color: #DC3545;
	margin-left: 4px;
}

.dw250-cl-touch-warning .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	line-height: 14px;
	vertical-align: middle;
}

/* Pagination */
.dw250-cl-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 24px;
	border-top: 1px solid #f0f0f0;
}

.dw250-cl-pagination-info {
	color: #666;
	font-size: 14px;
}

.dw250-cl-pagination-buttons {
	display: flex;
	gap: 8px;
}

.dw250-cl-pagination-btn {
	padding: 8px 16px;
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	font-family: inherit;
	text-decoration: none;
	color: #333;
	display: inline-block;
	transition: all 0.2s;
}

.dw250-cl-pagination-btn:hover {
	background: #F5F5F5;
}

.dw250-cl-pagination-btn.active {
	background: #1B3B6F;
	color: #fff;
	border-color: #1B3B6F;
}

.dw250-cl-pagination-btn.disabled {
	opacity: 0.5;
	cursor: default;
	pointer-events: none;
}

/* Empty State */
.dw250-cl-empty {
	text-align: center;
	padding: 60px 20px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cl-empty p {
	color: #666;
	font-size: 16px;
	margin: 0 0 16px 0;
}

/* Loading State */
.dw250-cl-table-container.loading {
	position: relative;
	opacity: 0.6;
	pointer-events: none;
}

/* Responsive */
@media (max-width: 1024px) {
	.dw250-crm-layout {
		grid-template-columns: 1fr;
	}

	.dw250-crm-sidebar {
		display: none;
	}
}

@media (max-width: 768px) {
	.dw250-crm-main {
		padding: 16px;
	}

	.dw250-cl-page-header {
		flex-direction: column;
		gap: 16px;
		align-items: flex-start;
	}

	.dw250-cl-controls {
		flex-direction: column;
	}

	.dw250-cl-search {
		min-width: 100%;
	}

	.dw250-cl-filter-select {
		width: 100%;
	}

	.dw250-cl-table th:nth-child(3),
	.dw250-cl-table td:nth-child(3),
	.dw250-cl-table th:nth-child(4),
	.dw250-cl-table td:nth-child(4),
	.dw250-cl-table th:nth-child(7),
	.dw250-cl-table td:nth-child(7) {
		display: none;
	}

	.dw250-cl-pagination {
		flex-direction: column;
		gap: 12px;
	}
}

/* =========================================================================
   EPIC 4: WORKFLOW MANAGEMENT STYLES
   ========================================================================= */

/* Modal Overlay */
.dw250-modal {
	display: none;
	position: fixed;
	z-index: 100000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	animation: dw250-modal-fadein 0.2s;
}

@keyframes dw250-modal-fadein {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* Modal Content */
.dw250-modal-content {
	background-color: #fff;
	margin: 5% auto;
	padding: 30px;
	border-radius: 6px;
	max-width: 600px;
	width: 90%;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
	animation: dw250-modal-slidein 0.3s;
}

@keyframes dw250-modal-slidein {
	from {
		transform: translateY(-50px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

/* Modal Close Button */
.dw250-modal-close {
	color: #aaa;
	float: right;
	font-size: 28px;
	font-weight: bold;
	line-height: 20px;
	cursor: pointer;
	transition: color 0.2s;
}

.dw250-modal-close:hover,
.dw250-modal-close:focus {
	color: #000;
	text-decoration: none;
}

/* Workflow Timeline (Story 4.1) */
.dw250-timeline {
	position: relative;
	padding-left: 40px;
	max-height: 400px;
	overflow-y: auto;
}

.dw250-timeline::before {
	content: '';
	position: absolute;
	left: 15px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: #ddd;
}

.dw250-timeline-item {
	position: relative;
	margin-bottom: 25px;
	padding-bottom: 15px;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-timeline-item:last-child {
	border-bottom: none;
	margin-bottom: 0;
}

.dw250-timeline-icon {
	position: absolute;
	left: -32px;
	top: 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #1B3B6F;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: bold;
	z-index: 2;
}

.dw250-timeline-content {
	padding-left: 10px;
}

.dw250-timeline-content strong {
	color: #1B3B6F;
	font-weight: 600;
}

.dw250-timeline-meta {
	margin-top: 8px;
	font-size: 13px;
	color: #666;
	display: flex;
	align-items: center;
	gap: 15px;
}

.dw250-timeline-meta .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.dw250-timeline-notes {
	margin-top: 10px;
	padding: 10px;
	background: #f9f9f9;
	border-left: 3px solid #F0A202;
	font-size: 13px;
	color: #333;
	border-radius: 3px;
}

/* Priority Badge */
.dw250-priority-badge-header {
	display: inline-block;
	background: #C41E3A;
	color: #fff;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	margin-left: 15px;
	vertical-align: middle;
}

.dw250-priority-badge-header .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	margin-right: 4px;
}

/* Blocked Badge */
.dw250-blocked-badge-header {
	display: inline-block;
	background: #757575;
	color: #fff;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	margin-left: 10px;
	vertical-align: middle;
}

.dw250-blocked-badge-header .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	margin-right: 4px;
}

/* Last Touched Badge */
.dw250-last-touched-badge {
	font-weight: 600;
}

/* Profile Quick Actions */
.dw250-profile-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.dw250-profile-actions .button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.dw250-profile-actions .button .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

/* Responsive Modal Styles */
@media screen and (max-width: 600px) {
	.dw250-modal-content {
		margin: 20% auto;
		padding: 20px;
		width: 95%;
	}

	.dw250-timeline {
		padding-left: 30px;
	}

	.dw250-timeline::before {
		left: 10px;
	}

	.dw250-timeline-icon {
		left: -24px;
		width: 24px;
		height: 24px;
		font-size: 10px;
	}
}

/* =========================================================================
   EPIC 4 STORY 4.4: LAST TOUCHED ALERT DASHBOARD
   ========================================================================= */

/* Alert Widget Container */
.dw250-alert-widget-card {
	background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
	border-left: 4px solid #1B3B6F;
	padding: 25px !important;
}

.dw250-alert-widget h2 {
	color: #1B3B6F;
	font-size: 22px;
	margin-top: 0;
	margin-bottom: 10px;
}

.dw250-alert-widget > p {
	color: #666;
	margin-bottom: 25px;
}

/* Alert Categories Grid */
.dw250-alert-categories {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
	margin-bottom: 30px;
}

.dw250-alert-category {
	background: #fff;
	border: 2px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	display: flex;
	align-items: center;
	gap: 15px;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-alert-category:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Yellow Alert */
.dw250-alert-category.yellow {
	border-color: #F0A202;
}

.dw250-alert-category.yellow .alert-icon {
	background: #FFF8E1;
	color: #F0A202;
}

/* Orange Alert */
.dw250-alert-category.orange {
	border-color: #FF6B35;
}

.dw250-alert-category.orange .alert-icon {
	background: #FFF3E0;
	color: #FF6B35;
}

/* Red Alert */
.dw250-alert-category.red {
	border-color: #C41E3A;
}

.dw250-alert-category.red .alert-icon {
	background: #FFEBEE;
	color: #C41E3A;
}

/* Alert Icon */
.alert-icon {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.alert-icon .dashicons {
	font-size: 28px;
	width: 28px;
	height: 28px;
}

/* Alert Info */
.alert-info {
	flex: 1;
}

.alert-count {
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 8px;
}

.alert-count a {
	text-decoration: none;
	color: inherit;
	transition: opacity 0.2s;
}

.alert-count a:hover {
	opacity: 0.7;
}

.alert-label {
	font-size: 14px;
	font-weight: 600;
	color: #333;
	margin-bottom: 4px;
}

.alert-description {
	font-size: 12px;
	color: #666;
}

/* Oldest Clients Table */
.dw250-oldest-clients {
	margin-top: 30px;
	padding-top: 25px;
	border-top: 2px solid #e0e0e0;
}

.dw250-oldest-clients h3 {
	color: #1B3B6F;
	font-size: 18px;
	margin-top: 0;
	margin-bottom: 15px;
}

.dw250-oldest-clients table {
	margin-top: 15px;
}

.dw250-oldest-clients th {
	background: #1B3B6F;
	color: #fff;
	font-weight: 600;
	padding: 12px;
}

.dw250-oldest-clients td {
	padding: 12px;
	vertical-align: middle;
}

/* Days Badge in Table */
.dw250-days-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
}

.dw250-days-badge.green {
	background: #2E7D32;
}

.dw250-days-badge.yellow {
	background: #F0A202;
}

.dw250-days-badge.orange {
	background: #FF6B35;
}

.dw250-days-badge.red {
	background: #C41E3A;
}

/* Touch Now Button */
.dw250-touch-now-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: #4CAF50;
	color: #fff;
	border: none;
	padding: 6px 12px;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.2s;
}

.dw250-touch-now-btn:hover {
	background: #45A049;
	color: #fff;
}

.dw250-touch-now-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* Cache Info */
.dw250-cache-info {
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid #e0e0e0;
}

.dw250-cache-info .description {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #666;
	font-size: 13px;
	margin: 0;
}

.dw250-cache-info .dashicons {
	color: #1B3B6F;
}

/* Mini Badges for Quick Stats */
.dw250-mini-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
	min-width: 24px;
	text-align: center;
}

.dw250-mini-badge.yellow {
	background: #F0A202;
}

.dw250-mini-badge.orange {
	background: #FF6B35;
}

.dw250-mini-badge.red {
	background: #C41E3A;
}

.dw250-alert-highlight {
	color: #C41E3A;
	font-size: 120%;
}

/* Responsive Alert Widget */
@media screen and (max-width: 782px) {
	.dw250-alert-categories {
		grid-template-columns: 1fr;
	}

	.alert-count {
		font-size: 24px;
	}

	.dw250-oldest-clients table {
		font-size: 13px;
	}

	.dw250-oldest-clients th,
	.dw250-oldest-clients td {
		padding: 8px;
	}
}

/* =========================================================================
   EPIC 4 STORY 4.5: TASK ASSIGNMENT SYSTEM
   ========================================================================= */

/* My Tasks Widget */
.dw250-my-tasks-widget-card {
	background: #fff;
	border-left: 4px solid #4CAF50;
}

.dw250-my-tasks-widget h2 {
	color: #1B3B6F;
	font-size: 22px;
	margin-top: 0;
	margin-bottom: 15px;
}

/* Task Summary Counts */
.dw250-task-summary {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 15px;
	margin-bottom: 25px;
}

.task-count-item {
	background: #f9f9f9;
	border: 2px solid #ddd;
	border-radius: 6px;
	padding: 15px;
	text-align: center;
	transition: all 0.2s;
}

.task-count-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.task-count-item.in-progress {
	border-color: #2196F3;
}

.task-count-item.pending {
	border-color: #FF9800;
}

.task-count-item.completed {
	border-color: #4CAF50;
}

.task-count-item .count {
	display: block;
	font-size: 32px;
	font-weight: 700;
	color: #1B3B6F;
	margin-bottom: 5px;
}

.task-count-item .label {
	display: block;
	font-size: 13px;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Task Status Badges */
.dw250-task-status-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	color: #fff;
}

.dw250-task-status-badge.status-pending {
	background: #9E9E9E;
}

.dw250-task-status-badge.status-in_progress {
	background: #2196F3;
}

.dw250-task-status-badge.status-completed {
	background: #4CAF50;
}

.dw250-task-status-badge.status-cancelled {
	background: #757575;
}

/* Task Priority Badges */
.dw250-task-priority-badge {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
}

.dw250-task-priority-badge.priority-low {
	background: #E0E0E0;
	color: #666;
}

.dw250-task-priority-badge.priority-normal {
	background: #FFF9C4;
	color: #F57C00;
}

.dw250-task-priority-badge.priority-high {
	background: #FFCCBC;
	color: #E64A19;
}

.dw250-task-priority-badge.priority-urgent {
	background: #C41E3A;
	color: #fff;
}

/* Tasks Table */
.dw250-tasks-table {
	margin-top: 15px;
}

.dw250-tasks-table th {
	background: #1B3B6F;
	color: #fff;
	font-weight: 600;
	padding: 12px;
}

.dw250-tasks-table td {
	padding: 12px;
	vertical-align: middle;
}

.dw250-tasks-table .task-description {
	color: #666;
	font-style: italic;
}

/* Overdue Tasks */
.dw250-tasks-table tr.task-overdue {
	background-color: #FFEBEE !important;
	border-left: 3px solid #C41E3A;
}

.task-overdue-label {
	display: inline-block;
	padding: 2px 6px;
	background: #C41E3A;
	color: #fff;
	font-size: 10px;
	font-weight: 600;
	border-radius: 3px;
	margin-top: 4px;
}

/* Task Action Buttons */
.dw250-start-task-btn,
.dw250-complete-task-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	padding: 4px 10px;
	margin-right: 5px;
}

.dw250-start-task-btn:hover {
	background: #2196F3;
	border-color: #1976D2;
	color: #fff;
}

/* Empty State */
.dw250-my-tasks-widget .dw250-empty-state {
	text-align: center;
	padding: 40px 20px;
	color: #4CAF50;
	font-size: 16px;
	font-weight: 600;
}

.dw250-my-tasks-widget .dw250-empty-state .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	display: block;
	margin: 0 auto 15px;
	color: #4CAF50;
}

/* Responsive */
@media screen and (max-width: 782px) {
	.dw250-task-summary {
		grid-template-columns: 1fr;
	}

	.task-count-item .count {
		font-size: 24px;
	}

	.dw250-tasks-table {
		font-size: 13px;
	}

	.dw250-tasks-table th,
	.dw250-tasks-table td {
		padding: 8px;
	}
}

/* =========================================================================
   EPIC 4 STORY 4.6: ROLE-SPECIFIC QUEUE VIEWS
   ========================================================================= */

/* Queue Widget */
.dw250-queue-widget-card {
	background: #fff;
	border-left: 4px solid #2196F3;
}

.dw250-queue-widget h2 {
	color: #1B3B6F;
	font-size: 22px;
	margin-top: 0;
	margin-bottom: 10px;
}

.dw250-queue-widget .queue-description {
	color: #666;
	margin-bottom: 20px;
}

/* Queue List */
.dw250-queue-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 15px;
	margin-bottom: 20px;
}

.dw250-queue-item {
	background: #f9f9f9;
	border: 2px solid #E0E0E0;
	border-radius: 6px;
	transition: all 0.3s ease;
	overflow: hidden;
}

.dw250-queue-item:hover {
	border-color: #2196F3;
	box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);
	transform: translateY(-2px);
}

.dw250-queue-item .queue-link {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	padding: 15px;
	text-decoration: none;
	color: inherit;
}

.dw250-queue-item .queue-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);
}

.dw250-queue-item .queue-icon .dashicons {
	font-size: 24px;
	width: 24px;
	height: 24px;
	color: #fff;
}

.dw250-queue-item .queue-info {
	flex: 1;
}

.dw250-queue-item .queue-label {
	font-size: 15px;
	font-weight: 600;
	color: #1B3B6F;
	margin-bottom: 5px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.dw250-queue-item .queue-count-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 8px;
	background: #2196F3;
	color: #fff;
	border-radius: 14px;
	font-size: 13px;
	font-weight: 700;
}

.dw250-queue-item .queue-description {
	font-size: 12px;
	color: #666;
	margin: 0;
}

/* Hover Effects */
.dw250-queue-item:hover .queue-icon {
	background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);
	transform: scale(1.05);
}

.dw250-queue-item:hover .queue-count-badge {
	background: #1976D2;
}

/* Queue Refresh Info */
.queue-refresh-info {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-top: 15px;
	border-top: 1px solid #E0E0E0;
	color: #666;
	font-size: 13px;
}

.queue-refresh-info .dashicons {
	color: #2196F3;
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* Empty State */
.dw250-queue-widget .dw250-empty-state {
	text-align: center;
	padding: 40px 20px;
	color: #999;
}

/* Responsive */
@media screen and (max-width: 782px) {
	.dw250-queue-list {
		grid-template-columns: 1fr;
	}

	.dw250-queue-item .queue-icon {
		width: 40px;
		height: 40px;
	}

	.dw250-queue-item .queue-icon .dashicons {
		font-size: 20px;
		width: 20px;
		height: 20px;
	}
}

/* =========================================================================
   EPIC 5: COMMUNICATION HISTORY & NOTES
   ========================================================================= */

/* Large Modal */
.dw250-modal-large {
	max-width: 800px;
}

/* Communication Type Selector (Story 5.1) */
.dw250-comm-type-selector {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 15px;
	margin-top: 10px;
}

.dw250-comm-type-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 15px 10px;
	border: 2px solid #ddd;
	border-radius: 8px;
	cursor: pointer;
	transition: all 0.2s ease;
	background: #fff;
}

.dw250-comm-type-option:hover {
	border-color: #1B3B6F;
	background: #f9f9f9;
}

.dw250-comm-type-option.selected {
	border-color: #1B3B6F;
	background: #f0f6fc;
	box-shadow: 0 2px 8px rgba(27, 59, 111, 0.2);
}

.dw250-comm-type-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.dw250-comm-type-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: transform 0.2s;
}

.dw250-comm-type-option:hover .dw250-comm-type-icon,
.dw250-comm-type-option.selected .dw250-comm-type-icon {
	transform: scale(1.1);
}

.dw250-comm-type-icon .dashicons {
	font-size: 24px;
	width: 24px;
	height: 24px;
}

.dw250-comm-type-label {
	font-size: 13px;
	font-weight: 600;
	color: #333;
	text-align: center;
}

/* Form Sections */
.dw250-form-section {
	margin-bottom: 20px;
}

.dw250-form-section label {
	display: block;
	margin-bottom: 8px;
	color: #1B3B6F;
}

.dw250-form-section .required {
	color: #C41E3A;
}

/* Form Row */
.dw250-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}

.dw250-form-col label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-form-col input[type="date"],
.dw250-form-col input[type="time"] {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
}

/* Subject Suggestions */
.dw250-subject-suggestions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	padding: 10px;
	background: #f9f9f9;
	border-radius: 4px;
}

.dw250-suggestion-btn {
	background: #fff;
	border: 1px solid #ddd;
	padding: 6px 12px;
	border-radius: 20px;
	cursor: pointer;
	font-size: 13px;
	transition: all 0.2s;
}

.dw250-suggestion-btn:hover {
	background: #1B3B6F;
	border-color: #1B3B6F;
	color: #fff;
}

/* Checkbox Label */
.dw250-checkbox-label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	padding: 10px;
	background: #f9f9f9;
	border-radius: 4px;
}

.dw250-checkbox-label input[type="checkbox"] {
	width: 18px;
	height: 18px;
}

.dw250-checkbox-label .description {
	color: #666;
	font-size: 13px;
	margin-left: 10px;
}

/* Form Actions */
.dw250-form-actions {
	display: flex;
	gap: 10px;
	padding-top: 20px;
	border-top: 1px solid #ddd;
	margin-top: 20px;
}

.dw250-form-actions .button-large {
	padding: 8px 20px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.dw250-form-actions .button-large .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

/* Min Characters Indicator */
.dw250-min-chars {
	color: #d63638;
	font-weight: 600;
}

/* Communication Filter Buttons (Story 5.5) */
.dw250-comm-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}

.dw250-comm-filter-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s;
}

.dw250-comm-filter-btn:hover {
	background: #f9f9f9;
	border-color: #999;
}

.dw250-comm-filter-btn.active {
	background: #1B3B6F;
	border-color: #1B3B6F;
	color: #fff;
}

.dw250-comm-filter-btn.active .dashicons {
	color: #fff !important;
}

.dw250-comm-filter-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.dw250-filter-count {
	font-size: 12px;
	opacity: 0.8;
}

/* Communication Timeline (Story 5.2) */
.dw250-comm-timeline {
	position: relative;
}

.dw250-comm-loading,
.dw250-comm-empty,
.dw250-comm-error {
	text-align: center;
	padding: 40px 20px;
	color: #666;
}

.dw250-comm-empty p {
	margin: 10px 0;
}

.dw250-comm-error {
	color: #C41E3A;
}

/* Communication Entry */
.dw250-comm-entry {
	display: flex;
	gap: 15px;
	padding: 20px;
	background: #f9f9f9;
	border-radius: 8px;
	margin-bottom: 15px;
	border-left: 4px solid #ddd;
	transition: all 0.2s;
}

.dw250-comm-entry:hover {
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.dw250-comm-icon {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

.dw250-comm-icon .dashicons {
	font-size: 22px;
	width: 22px;
	height: 22px;
}

.dw250-comm-content {
	flex: 1;
	min-width: 0;
}

.dw250-comm-header {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 8px;
}

.dw250-comm-type-label {
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
}

.dw250-comm-date {
	color: #666;
	font-size: 13px;
}

.dw250-comm-subject {
	font-size: 16px;
	font-weight: 600;
	color: #1B3B6F;
	margin-bottom: 8px;
}

.dw250-comm-notes {
	color: #333;
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 12px;
}

.dw250-comm-notes p {
	margin: 0 0 10px;
}

.dw250-comm-notes p:last-child {
	margin-bottom: 0;
}

.dw250-comm-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid #e0e0e0;
}

.dw250-comm-author {
	color: #666;
	font-size: 13px;
}

.dw250-edit-comm-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.dw250-edit-time-remaining {
	font-size: 11px;
	color: #666;
	margin-left: 5px;
}

/* Communication Type Badge */
.dw250-comm-type-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 4px;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
}

.dw250-comm-type-badge .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
}

/* Load More */
#dw250-comm-load-more {
	text-align: center;
	margin-top: 20px;
}

.dw250-comm-showing-count {
	display: block;
	margin-top: 10px;
	color: #666;
	font-size: 13px;
}

/* Responsive Communication Styles */
@media screen and (max-width: 782px) {
	.dw250-comm-type-selector {
		grid-template-columns: repeat(2, 1fr);
	}

	.dw250-form-row {
		grid-template-columns: 1fr;
	}

	.dw250-comm-entry {
		flex-direction: column;
		gap: 10px;
	}

	.dw250-comm-icon {
		width: 36px;
		height: 36px;
	}

	.dw250-comm-icon .dashicons {
		font-size: 18px;
		width: 18px;
		height: 18px;
	}

	.dw250-comm-header {
		flex-wrap: wrap;
	}

	.dw250-comm-footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.dw250-comm-filters {
		flex-direction: column;
	}

	.dw250-comm-filter-btn {
		justify-content: center;
	}
}

@media screen and (max-width: 480px) {
	.dw250-comm-type-selector {
		grid-template-columns: 1fr;
	}

	.dw250-modal-large {
		padding: 20px;
	}
}

/* ============================================================
   Story 5.3: Edit Communication Notes (24-Hour Window)
   ============================================================ */

/* Edit button hover and active states */
.dw250-edit-comm-btn:hover {
	background-color: #2271b1;
	color: #fff;
	border-color: #2271b1;
}

.dw250-edit-comm-btn:hover .dashicons {
	color: #fff;
}

.dw250-edit-comm-btn:hover .dw250-edit-time-remaining {
	color: rgba(255, 255, 255, 0.8);
}

.dw250-edit-comm-btn .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	vertical-align: text-bottom;
}

/* Edit modal loading state */
.dw250-modal-body.loading {
	opacity: 0.5;
	pointer-events: none;
	position: relative;
}

.dw250-modal-body.loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40px;
	height: 40px;
	margin: -20px 0 0 -20px;
	border: 4px solid #f3f3f3;
	border-top: 4px solid #1B3B6F;
	border-radius: 50%;
	animation: dw250-spin 1s linear infinite;
}

@keyframes dw250-spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Edit window info notice */
.dw250-edit-window-info {
	display: flex;
	align-items: center;
	gap: 8px;
}

.dw250-edit-window-info .dashicons {
	color: #d63638;
}

/* Updated indicator on edited entries */
.dw250-comm-entry.edited::after {
	content: 'Edited';
	position: absolute;
	top: 10px;
	right: 10px;
	font-size: 11px;
	color: #787c82;
	font-style: italic;
}

.dw250-comm-entry {
	position: relative;
}

/* ============================================================
   Story 5.4: Search Across All Communication Notes
   ============================================================ */

/* Search and Filter Controls Container */
.dw250-comm-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	align-items: flex-start;
	margin-bottom: 20px;
}

/* Search Input Container */
.dw250-comm-search {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1;
	min-width: 250px;
	max-width: 400px;
	position: relative;
}

.dw250-comm-search .dashicons-search {
	color: #787c82;
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
}

.dw250-comm-search input {
	flex: 1;
	padding: 8px 35px 8px 35px;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	font-size: 14px;
}

.dw250-comm-search input:focus {
	border-color: #2271b1;
	box-shadow: 0 0 0 1px #2271b1;
	outline: none;
}

#dw250-comm-search-clear {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	color: #787c82;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
}

#dw250-comm-search-clear:hover {
	color: #d63638;
}

#dw250-comm-search-clear .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

/* Search Results Info */
.dw250-comm-search-info {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 15px;
	background: #f0f6fc;
	border-left: 4px solid #2271b1;
	border-radius: 0 4px 4px 0;
	margin-bottom: 15px;
}

.dw250-search-results-text {
	color: #1d2327;
	font-size: 14px;
}

.dw250-clear-search {
	color: #2271b1;
	text-decoration: none;
}

.dw250-clear-search:hover {
	color: #135e96;
	text-decoration: underline;
}

/* No Results State */
.dw250-comm-no-results {
	text-align: center;
	padding: 40px 20px;
}

.dw250-comm-no-results .dashicons-search {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: #c3c4c7;
	margin-bottom: 15px;
}

.dw250-comm-no-results p {
	margin: 0 0 15px;
	color: #787c82;
}

/* Responsive Search Styles */
@media screen and (max-width: 782px) {
	.dw250-comm-controls {
		flex-direction: column;
	}

	.dw250-comm-search {
		max-width: 100%;
		width: 100%;
	}

	.dw250-comm-filters {
		width: 100%;
	}
}

/* ========================================
   Document Upload Styles - Epic 12 Story 12.2
   ======================================== */

.dw250-upload-dropzone {
	border: 2px dashed #1B3B6F;
	border-radius: 6px;
	padding: 40px 20px;
	text-align: center;
	background: #f9f9f9;
	cursor: pointer;
	transition: all 0.3s;
	margin-bottom: 15px;
}

.dw250-upload-dropzone:hover,
.dw250-upload-dropzone.drag-over {
	background: #e8f0fe;
	border-color: #F0A202;
}

.dw250-upload-dropzone-content .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: #1B3B6F;
	margin-bottom: 10px;
}

.dw250-upload-primary-text {
	font-size: 16px;
	font-weight: 600;
	margin: 10px 0;
	color: #1B3B6F;
}

.dw250-upload-info-text {
	font-size: 13px;
	color: #666;
	margin: 5px 0 0 0;
}

.dw250-selected-file-display {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 15px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.dw250-selected-file-display .dashicons {
	font-size: 24px;
	color: #1B3B6F;
}

.dw250-file-name {
	font-weight: 600;
	flex: 1;
}

.dw250-file-size {
	color: #666;
	font-size: 13px;
}

.dw250-remove-file-btn {
	background: #C41E3A;
	color: #fff;
	border: none;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	font-size: 18px;
	line-height: 20px;
	cursor: pointer;
	transition: background 0.2s;
}

.dw250-remove-file-btn:hover {
	background: #a01828;
}

.dw250-upload-progress {
	margin-top: 15px;
	padding: 15px;
	background: #f0f0f0;
	border-radius: 4px;
}

.dw250-progress-bar-container {
	width: 100%;
	height: 20px;
	background: #ddd;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 10px;
}

.dw250-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, #1B3B6F 0%, #F0A202 100%);
	transition: width 0.3s;
}

.dw250-progress-text {
	font-size: 14px;
	color: #333;
	text-align: center;
	margin: 0;
}

.dw250-document-summary {
	margin: 10px 0 15px 0;
	padding: 10px;
	background: #f0f0f0;
	border-radius: 4px;
}

.dw250-documents-table .dashicons {
	margin-right: 5px;
	vertical-align: middle;
}

.dw250-empty-state {
	text-align: center;
	padding: 40px 20px;
	color: #666;
	font-style: italic;
}


/**
 * Document Categorization & Organization Styles - Epic 12 Story 12.3
 */

/* Document Statistics Widget */
.dw250-document-stats {
	background: #fff;
	border: 1px solid #ddd;
	padding: 20px;
	border-radius: 4px;
	margin-bottom: 20px;
}

.dw250-document-stats h3 {
	margin-top: 0;
	margin-bottom: 15px;
	font-size: 18px;
	color: #1B3B6F;
}

.stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-bottom: 20px;
}

.stat-item {
	text-align: center;
	padding: 15px;
	background: #f9f9f9;
	border-radius: 4px;
	border: 1px solid #e5e5e5;
}

.stat-label {
	display: block;
	font-size: 12px;
	color: #666;
	margin-bottom: 5px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.stat-value {
	display: block;
	font-size: 24px;
	font-weight: bold;
	color: #1B3B6F;
	margin-top: 5px;
}

.stats-breakdown {
	border-top: 1px solid #e5e5e5;
	padding-top: 15px;
}

.stats-breakdown h4 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 14px;
	color: #333;
}

.stats-breakdown ul {
	margin: 0;
	padding: 0;
	list-style: none;
	column-count: 2;
	column-gap: 20px;
}

.stats-breakdown li {
	padding: 4px 0;
	font-size: 13px;
	color: #666;
}

.stats-breakdown li strong {
	color: #1B3B6F;
	font-weight: 600;
}

/* Tab Navigation */
.dw250-documents-tabs {
	margin-top: 20px;
}

.dw250-tabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	border-bottom: 2px solid #ddd;
	margin-bottom: 20px;
}

.dw250-tab {
	padding: 10px 16px;
	background: #f5f5f5;
	border: 1px solid #ddd;
	border-bottom: none;
	cursor: pointer;
	border-radius: 4px 4px 0 0;
	transition: all 0.2s;
	font-size: 14px;
	font-weight: 500;
	color: #333;
}

.dw250-tab:hover {
	background: #e8e8e8;
}

.dw250-tab.active {
	background: #1B3B6F;
	color: #fff;
	border-color: #1B3B6F;
	position: relative;
	bottom: -2px;
}

.dw250-tab .badge {
	display: inline-block;
	background: rgba(255, 255, 255, 0.3);
	padding: 2px 6px;
	border-radius: 10px;
	font-size: 11px;
	margin-left: 5px;
	font-weight: 600;
}

.dw250-tab.active .badge {
	background: rgba(255, 255, 255, 0.4);
}

/* Document Controls (Search, Filters, Bulk Actions) */
.dw250-document-controls {
	margin-bottom: 20px;
}

.dw250-document-search-filters {
	display: flex;
	gap: 10px;
	margin-bottom: 15px;
	align-items: center;
}

.dw250-document-search-filters input[type="text"] {
	flex: 1;
	max-width: 400px;
}

/* Filter Panel */
.dw250-filter-panel {
	background: #f9f9f9;
	border: 1px solid #ddd;
	padding: 15px;
	border-radius: 4px;
	margin-bottom: 15px;
}

.dw250-filter-row {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 10px;
	margin-bottom: 10px;
	align-items: center;
}

.dw250-filter-row label {
	margin: 0;
}

.filter-actions {
	display: flex;
	gap: 10px;
	margin-top: 15px;
	padding-top: 15px;
	border-top: 1px solid #ddd;
}

/* Active Filters Display */
.active-filters-display {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 15px;
	min-height: 0;
}

.active-filters-display:empty {
	display: none;
}

.dw250-filter-tag {
	display: inline-flex;
	align-items: center;
	background: #e8f0fe;
	border: 1px solid #1B3B6F;
	padding: 5px 10px;
	border-radius: 3px;
	font-size: 12px;
	color: #1B3B6F;
	gap: 8px;
}

.dw250-filter-tag strong {
	font-weight: 600;
}

.remove-filter {
	text-decoration: none;
	font-size: 18px;
	line-height: 1;
	color: #1B3B6F;
	font-weight: bold;
	cursor: pointer;
}

.remove-filter:hover {
	color: #C41E3A;
}

/* Bulk Actions Bar */
.dw250-bulk-actions-bar {
	background: #e8f0fe;
	border: 1px solid #1B3B6F;
	padding: 10px 15px;
	border-radius: 4px;
	margin-bottom: 15px;
	display: flex;
	gap: 15px;
	align-items: center;
}

.dw250-bulk-actions-bar label {
	margin: 0;
	font-weight: 500;
}

#selected-count {
	margin-left: auto;
	font-size: 13px;
	color: #1B3B6F;
	font-weight: 600;
}

/* Sortable Column Headers */
.sortable-column {
	cursor: pointer;
	user-select: none;
	position: relative;
	transition: background-color 0.2s;
}

.sortable-column:hover {
	background: #f0f0f0;
}

.sortable-column .sort-indicator {
	margin-left: 5px;
	opacity: 0.3;
	font-size: 10px;
}

.sortable-column .sort-indicator::after {
	content: "⇅";
}

.sortable-column.sort-asc .sort-indicator::after {
	content: "▲";
	opacity: 1;
}

.sortable-column.sort-desc .sort-indicator::after {
	content: "▼";
	opacity: 1;
}

/* Color-coded Document Type Badges */
.doc-badge {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

.doc-badge.medical {
	background: #2196F3;
	color: #fff;
}

.doc-badge.military {
	background: #4CAF50;
	color: #fff;
}

.doc-badge.va {
	background: #FF9800;
	color: #fff;
}

.doc-badge.forms {
	background: #9E9E9E;
	color: #fff;
}

.doc-badge.assessments {
	background: #9C27B0;
	color: #fff;
}

.doc-badge.contracts {
	background: #F44336;
	color: #fff;
}

.doc-badge.lay_statement {
	background: #FFC107;
	color: #000;
}

.doc-badge.other {
	background: #E0E0E0;
	color: #000;
}

/* Tab Content Area */
.dw250-tab-content {
	min-height: 200px;
}

.dw250-empty-state {
	text-align: center;
	padding: 40px 20px;
	color: #666;
	font-style: italic;
	background: #f9f9f9;
	border-radius: 4px;
	border: 1px dashed #ddd;
}

/* Documents Table Enhancements */
.dw250-documents-table {
	margin-top: 0;
}

.dw250-documents-table thead th {
	background: #f9f9f9;
	font-weight: 600;
	padding: 12px 10px;
}

.dw250-documents-table tbody tr:hover {
	background-color: #f5f5f5;
}

.dw250-documents-table .dashicons {
	vertical-align: middle;
}

.dw250-documents-table .dashicons-yes-alt {
	font-size: 20px;
}

.dw250-documents-table .dashicons-dismiss {
	font-size: 20px;
}

.document-checkbox {
	margin: 0;
	vertical-align: middle;
}

/* Pagination */
.dw250-documents-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #ddd;
}

.dw250-documents-pagination .button {
	min-width: 80px;
}

.dw250-pagination-info {
	font-size: 13px;
	color: #666;
}

/* Loading State */
.dw250-loading-overlay {
	position: relative;
	min-height: 100px;
	opacity: 0.6;
	pointer-events: none;
}

.dw250-loading-overlay::after {
	content: "Loading...";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #fff;
	padding: 15px 30px;
	border: 1px solid #ddd;
	border-radius: 4px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	font-weight: 600;
	color: #1B3B6F;
}

/* Responsive Design */
@media screen and (max-width: 782px) {
	/* Tabs stack vertically on mobile */
	.dw250-tabs-nav {
		flex-direction: column;
	}

	.dw250-tab {
		width: 100%;
		text-align: center;
		border-radius: 4px;
		border: 1px solid #ddd;
		margin-bottom: 5px;
	}

	.dw250-tab.active {
		bottom: 0;
	}

	/* Stats grid becomes 2 columns */
	.stats-grid {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.stat-value {
		font-size: 20px;
	}

	/* Breakdown becomes single column */
	.stats-breakdown ul {
		column-count: 1;
	}

	/* Filter rows stack */
	.dw250-filter-row {
		grid-template-columns: 1fr;
	}

	.dw250-filter-row label {
		margin-bottom: 5px;
	}

	/* Search filters stack */
	.dw250-document-search-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.dw250-document-search-filters input[type="text"] {
		max-width: 100%;
	}

	/* Bulk actions wrap */
	.dw250-bulk-actions-bar {
		flex-wrap: wrap;
	}

	#selected-count {
		margin-left: 0;
		width: 100%;
		text-align: center;
	}

	/* Table becomes scrollable */
	.dw250-tab-content {
		overflow-x: auto;
	}

	.dw250-documents-table {
		min-width: 600px;
	}
}

@media screen and (max-width: 600px) {
	/* Stats become single column on very small screens */
	.stats-grid {
		grid-template-columns: 1fr;
	}
}


/* ================================
   DOCUMENT VIEWER MODAL - Epic 12 Story 12.4
   ================================ */

/* Viewer Modal - Larger than standard modals */
.dw250-document-viewer-modal .dw250-modal-content {
	max-width: 900px;
	width: 90%;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
}

/* Fullscreen Mode */
.dw250-document-viewer-modal.fullscreen {
	z-index: 999999;
}

.dw250-document-viewer-modal.fullscreen .dw250-modal-content {
	max-width: 100%;
	width: 100%;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	border-radius: 0;
}

/* Viewer Header */
.dw250-document-viewer-modal .dw250-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px 20px;
	border-bottom: 1px solid #ddd;
	flex-shrink: 0;
}

.dw250-document-viewer-modal .dw250-modal-header h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	color: #1B3B6F;
	max-width: 80%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Viewer Controls Bar */
.dw250-viewer-controls {
	padding: 10px 20px;
	background: #f5f5f5;
	border-bottom: 1px solid #ddd;
	flex-shrink: 0;
}

.dw250-pdf-controls {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}

.dw250-pdf-controls .button-small {
	padding: 4px 8px;
	height: auto;
	line-height: 1.5;
}

.dw250-pdf-controls .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	vertical-align: text-bottom;
}

#dw250-pdf-page-info {
	font-weight: 600;
	color: #1B3B6F;
	white-space: nowrap;
}

#dw250-pdf-zoom-level {
	min-width: 45px;
	text-align: center;
	font-weight: 600;
	color: #666;
}

/* Viewer Body */
.dw250-viewer-body {
	flex: 1;
	overflow: auto;
	padding: 20px;
	background: #f9f9f9;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
}

/* Loading Spinner */
.dw250-viewer-loading {
	text-align: center;
	color: #666;
}

.dw250-viewer-loading .spinner {
	float: none;
	margin: 0 auto 10px;
}

/* PDF Container */
.dw250-pdf-container {
	width: 100%;
	overflow: auto;
	text-align: center;
	background: #525659;
	padding: 20px;
	box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}

.dw250-pdf-container canvas {
	display: block;
	margin: 0 auto;
	box-shadow: 0 2px 8px rgba(0,0,0,0.3);
	background: #fff;
}

/* Image Preview */
.dw250-image-container {
	width: 100%;
	text-align: center;
}

.dw250-image-container img {
	max-width: 100%;
	max-height: 70vh;
	height: auto;
	box-shadow: 0 2px 8px rgba(0,0,0,0.2);
	border-radius: 4px;
}

/* Unsupported File Type */
.dw250-viewer-unsupported {
	text-align: center;
	padding: 40px 20px;
	color: #666;
}

.dw250-viewer-unsupported .dashicons {
	font-size: 64px;
	width: 64px;
	height: 64px;
	color: #f0ad4e;
	margin-bottom: 20px;
}

.dw250-viewer-unsupported p {
	font-size: 16px;
	margin: 10px 0;
}

/* Error Display */
.dw250-viewer-error {
	text-align: center;
	padding: 40px 20px;
	color: #d9534f;
}

.dw250-viewer-error .dashicons {
	font-size: 64px;
	width: 64px;
	height: 64px;
	margin-bottom: 20px;
}

/* Modal Footer */
.dw250-document-viewer-modal .dw250-modal-footer {
	padding: 15px 20px;
	border-top: 1px solid #ddd;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	flex-shrink: 0;
}

/* Responsive - Mobile */
@media screen and (max-width: 782px) {
	.dw250-document-viewer-modal .dw250-modal-content {
		width: 95%;
		max-width: 95%;
	}

	.dw250-pdf-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.dw250-pdf-controls .button-small {
		width: 100%;
		justify-content: center;
	}

	.dw250-viewer-body {
		padding: 10px;
		min-height: 300px;
	}
}

/* ================================
   DOCUMENT SHARING - Epic 12 Story 12.5
   ================================ */

/* Row highlight animation after toggle */
.dw250-row-highlight {
	background-color: #d4edda !important;
	transition: background-color 0.3s ease;
}

/* Share toggle button hover */
.dw250-toggle-share-btn:hover .dashicons {
	opacity: 0.7;
}

.dw250-toggle-share-btn:disabled {
	cursor: not-allowed;
}
/* ================================================================
   ALL DOCUMENTS DASHBOARD - Epic 12 Story 12.6
   Global document search, filtering, and management
   ================================================================ */

/* Dashboard Container */
.dw250-documents-dashboard {
	background: #fff;
	padding: 20px;
	margin: 20px 0;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	box-shadow: 0 1px 1px rgba(0,0,0,0.04);
}

/* Header Section */
.dw250-documents-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	padding-bottom: 15px;
	border-bottom: 1px solid #dcdcde;
}

.dw250-documents-header h1 {
	margin: 0;
	font-size: 23px;
	font-weight: 400;
	line-height: 1.3;
	color: #1d2327;
}

#dw250-results-count {
	font-size: 16px;
	color: #50575e;
	font-weight: 600;
}

/* Search Bar */
.dw250-search-bar {
	display: flex;
	gap: 10px;
	margin-bottom: 15px;
}

.dw250-document-search-input {
	flex: 1;
	height: 40px;
	padding: 0 15px;
	font-size: 14px;
	border: 1px solid #8c8f94;
	border-radius: 4px;
}

.dw250-document-search-input:focus {
	border-color: #2271b1;
	outline: none;
	box-shadow: 0 0 0 1px #2271b1;
}

#dw250-search-btn,
#dw250-clear-search-btn {
	height: 40px;
	padding: 0 20px;
	white-space: nowrap;
}

#dw250-search-btn .dashicons,
#dw250-clear-search-btn .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	vertical-align: text-top;
}

/* Filter Toggle Button */
#dw250-toggle-filters-btn {
	display: flex;
	align-items: center;
	gap: 5px;
	height: 40px;
}

#dw250-toggle-filters-btn .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

/* Filter Panel */
.dw250-filter-panel {
	background: #f6f7f7;
	padding: 20px;
	margin-bottom: 20px;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	display: none;
}

.dw250-filter-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 15px;
	margin-bottom: 15px;
}

.dw250-filter-item {
	display: flex;
	flex-direction: column;
}

.dw250-filter-item label {
	font-weight: 600;
	margin-bottom: 5px;
	color: #1d2327;
	font-size: 13px;
}

.dw250-filter-item select,
.dw250-filter-item input[type="date"] {
	height: 36px;
	padding: 0 10px;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	font-size: 14px;
}

#dw250-custom-date-range {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
	margin-top: 10px;
}

.dw250-filter-actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

/* Active Filters */
.dw250-active-filters {
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-radius: 4px;
	padding: 10px 15px;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.dw250-active-filters strong {
	color: #856404;
	font-weight: 600;
}

#dw250-filter-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.dw250-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #fff;
	border: 1px solid #ffc107;
	border-radius: 16px;
	padding: 4px 12px;
	font-size: 13px;
	color: #856404;
}

.dw250-filter-chip .dw250-remove-filter {
	background: none;
	border: none;
	font-size: 18px;
	font-weight: bold;
	color: #856404;
	cursor: pointer;
	padding: 0;
	margin-left: 4px;
	line-height: 1;
}

.dw250-filter-chip .dw250-remove-filter:hover {
	color: #d32f2f;
}

/* Bulk Actions Bar */
.dw250-bulk-actions {
	background: #f6f7f7;
	padding: 12px 15px;
	margin-bottom: 15px;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	display: flex;
	align-items: center;
	gap: 10px;
}

#bulk-action-selector-global {
	height: 36px;
	padding: 0 10px;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	font-size: 14px;
}

#apply-bulk-action-global {
	height: 36px;
}

#dw250-selected-count {
	margin-left: auto;
	font-weight: 600;
	color: #50575e;
}

/* Loading State */
.dw250-documents-loading {
	text-align: center;
	padding: 60px 20px;
	color: #666;
}

.dw250-documents-loading .spinner {
	float: none;
	margin: 0 auto 15px;
}

/* Empty State */
.dw250-documents-empty {
	text-align: center;
	padding: 60px 20px;
	color: #666;
}

.dw250-documents-empty .dashicons {
	font-size: 64px;
	width: 64px;
	height: 64px;
	color: #c3c4c7;
	margin-bottom: 20px;
}

.dw250-documents-empty p {
	font-size: 16px;
	margin: 10px 0;
}

/* Documents Table */
.dw250-documents-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.dw250-documents-table thead {
	background: #f6f7f7;
	border-bottom: 2px solid #c3c4c7;
}

.dw250-documents-table th {
	padding: 12px;
	text-align: left;
	font-weight: 600;
	color: #1d2327;
	font-size: 13px;
	white-space: nowrap;
}

.dw250-documents-table th.check-column {
	width: 2.2em;
	padding: 8px 0 0 10px;
}

.dw250-documents-table td {
	padding: 12px;
	border-bottom: 1px solid #f0f0f1;
	font-size: 14px;
	vertical-align: middle;
}

.dw250-documents-table tbody tr:hover {
	background: #f6f7f7;
}

/* Sortable Column Headers */
.dw250-sortable {
	cursor: pointer;
	user-select: none;
	position: relative;
	padding-right: 24px;
}

.dw250-sortable:hover {
	color: #2271b1;
}

.dw250-sortable::after {
	content: '\f156'; /* dashicons-sort */
	font-family: dashicons;
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	opacity: 0.5;
	font-size: 16px;
}

.dw250-sortable.sorted-asc::after {
	content: '\f142'; /* dashicons-arrow-up */
	opacity: 1;
	color: #2271b1;
}

.dw250-sortable.sorted-desc::after {
	content: '\f140'; /* dashicons-arrow-down */
	opacity: 1;
	color: #2271b1;
}

/* Document Name Column */
.dw250-document-name {
	font-weight: 600;
	color: #2271b1;
	max-width: 300px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dw250-document-name:hover {
	color: #135e96;
}

/* File Icon */
.dw250-file-icon {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.dw250-file-icon .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

/* Client Name Link */
.dw250-client-link {
	color: #2271b1;
	text-decoration: none;
}

.dw250-client-link:hover {
	color: #135e96;
	text-decoration: underline;
}

/* File Size */
.dw250-file-size {
	color: #646970;
	white-space: nowrap;
}

/* Shared Status Badge */
.dw250-shared-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 8px;
	border-radius: 3px;
	font-size: 12px;
	font-weight: 600;
}

.dw250-shared-badge.shared {
	background: #d4edda;
	color: #155724;
}

.dw250-shared-badge.not-shared {
	background: #f8d7da;
	color: #721c24;
}

.dw250-shared-badge .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
}

/* Action Buttons */
.dw250-documents-table .actions {
	white-space: nowrap;
}

.dw250-documents-table .actions .button-small {
	padding: 4px 8px;
	font-size: 12px;
	height: auto;
	line-height: 1.5;
	margin-right: 4px;
}

.dw250-documents-table .actions .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	vertical-align: text-bottom;
}

/* Row Highlight on Update */
.dw250-row-highlight {
	background: #d4edda !important;
	transition: background 0.3s ease;
}

/* Pagination */
.dw250-documents-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #dcdcde;
}

.dw250-pagination-ellipsis {
	padding: 0 8px;
	color: #646970;
}

.dw250-documents-pagination .button {
	min-width: 36px;
	text-align: center;
}

#dw250-results-showing {
	text-align: center;
	color: #646970;
	margin-bottom: 10px;
	font-size: 13px;
}

/* Sidebar Widgets */
.dw250-documents-sidebar {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.dw250-sidebar-widget {
	background: #fff;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	box-shadow: 0 1px 1px rgba(0,0,0,0.04);
}

.dw250-widget-header {
	padding: 12px 15px;
	border-bottom: 1px solid #dcdcde;
	background: #f6f7f7;
	font-weight: 600;
	font-size: 14px;
	color: #1d2327;
}

.dw250-widget-body {
	padding: 15px;
}

/* Recent Uploads Widget */
.dw250-recent-uploads-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-recent-upload-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #f0f0f1;
}

.dw250-recent-upload-item:last-child {
	border-bottom: none;
}

.dw250-upload-icon .dashicons {
	font-size: 24px;
	width: 24px;
	height: 24px;
	color: #646970;
}

.dw250-upload-info {
	flex: 1;
	min-width: 0;
}

.dw250-upload-name {
	font-weight: 600;
	color: #1d2327;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 13px;
}

.dw250-upload-meta {
	font-size: 12px;
	color: #646970;
	margin-top: 2px;
}

.dw250-upload-meta span {
	margin-right: 4px;
}

/* Storage Statistics Widget */
.dw250-storage-stats {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dw250-stat-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px solid #f0f0f1;
}

.dw250-stat-item:last-child {
	border-bottom: none;
}

.dw250-stat-label {
	font-weight: 600;
	color: #1d2327;
	font-size: 13px;
}

.dw250-stat-value {
	color: #2271b1;
	font-weight: 600;
	font-size: 14px;
}

.dw250-storage-by-type {
	list-style: none;
	margin: 10px 0 0 0;
	padding: 0;
}

.dw250-storage-by-type li {
	display: flex;
	justify-content: space-between;
	padding: 6px 0;
	font-size: 13px;
	color: #646970;
}

.dw250-storage-by-type li strong {
	color: #1d2327;
}

.dw250-top-clients {
	list-style: none;
	margin: 10px 0 0 0;
	padding: 0;
}

.dw250-top-clients li {
	display: flex;
	justify-content: space-between;
	padding: 6px 0;
	font-size: 13px;
}

.dw250-top-clients li a {
	color: #2271b1;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	flex: 1;
	min-width: 0;
	margin-right: 10px;
}

.dw250-top-clients li a:hover {
	color: #135e96;
	text-decoration: underline;
}

.dw250-top-clients li span {
	color: #646970;
	font-weight: 600;
	white-space: nowrap;
}

/* Responsive - Tablet */
@media screen and (max-width: 1280px) {
	.dw250-filter-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	#dw250-custom-date-range {
		grid-column: 1 / -1;
	}
}

/* Responsive - Mobile */
@media screen and (max-width: 782px) {
	.dw250-documents-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.dw250-search-bar {
		flex-direction: column;
	}

	.dw250-document-search-input,
	#dw250-search-btn,
	#dw250-clear-search-btn,
	#dw250-toggle-filters-btn {
		width: 100%;
	}

	.dw250-filter-grid {
		grid-template-columns: 1fr;
	}

	#dw250-custom-date-range {
		grid-template-columns: 1fr;
	}

	.dw250-filter-actions {
		flex-direction: column;
	}

	.dw250-filter-actions .button {
		width: 100%;
	}

	.dw250-bulk-actions {
		flex-direction: column;
		align-items: stretch;
	}

	#dw250-selected-count {
		margin-left: 0;
		text-align: center;
	}

	.dw250-documents-table {
		font-size: 12px;
	}

	.dw250-documents-table th,
	.dw250-documents-table td {
		padding: 8px;
	}

	.dw250-documents-table .actions .button-small {
		font-size: 11px;
		padding: 3px 6px;
	}

	.dw250-documents-pagination {
		flex-wrap: wrap;
	}
}

/* Print Styles */
@media print {
	.dw250-search-bar,
	.dw250-filter-panel,
	.dw250-bulk-actions,
	.dw250-documents-pagination,
	.dw250-documents-sidebar {
		display: none !important;
	}

	.dw250-documents-table .actions {
		display: none !important;
	}
}

/* ================================
   EMAIL SETTINGS PAGE - Epic 13 Story 13.1
   ================================ */

.dw250-email-settings-page {
	padding: 20px;
	max-width: 1400px;
	margin: 0 auto;
}

.dw250-email-settings-layout {
	display: grid;
	grid-template-columns: 1fr 350px;
	gap: 30px;
	margin-top: 20px;
}

.dw250-email-main-column {
	flex: 1;
}

.dw250-email-sidebar {
	width: 100%;
}

/* Settings Cards */
.dw250-settings-card {
	background: #fff;
	border: 1px solid #ccd0d4;
	border-radius: 4px;
	padding: 0;
	margin-bottom: 20px;
	box-shadow: 0 1px 1px rgba(0,0,0,0.04);
}

.dw250-settings-card-header {
	padding: 15px 20px;
	border-bottom: 1px solid #e5e5e5;
	background: #f9f9f9;
}

.dw250-settings-card-header h3 {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-settings-card-body {
	padding: 20px;
}

/* Form Fields */
.dw250-form-row {
	margin-bottom: 20px;
}

.dw250-form-row label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #23282d;
}

.dw250-form-row input[type="text"],
.dw250-form-row input[type="email"],
.dw250-form-row input[type="password"],
.dw250-form-row input[type="number"],
.dw250-form-row select {
	width: 100%;
	max-width: 500px;
	padding: 8px 12px;
	border: 1px solid #8c8f94;
	border-radius: 3px;
	font-size: 14px;
	line-height: 1.5;
}

.dw250-form-row input[type="text"]:focus,
.dw250-form-row input[type="email"]:focus,
.dw250-form-row input[type="password"]:focus,
.dw250-form-row select:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 1px #1B3B6F;
}

.dw250-form-row .description {
	margin-top: 5px;
	color: #646970;
	font-size: 13px;
	font-style: italic;
}

/* Toggle Switch */
.dw250-toggle-wrapper {
	display: flex;
	align-items: center;
	gap: 12px;
}

.dw250-toggle-switch {
	position: relative;
	display: inline-block;
	width: 44px;
	height: 24px;
}

.dw250-toggle-switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.dw250-toggle-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	transition: 0.3s;
	border-radius: 24px;
}

.dw250-toggle-slider:before {
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 3px;
	bottom: 3px;
	background-color: white;
	transition: 0.3s;
	border-radius: 50%;
}

input:checked + .dw250-toggle-slider {
	background-color: #1B3B6F;
}

input:checked + .dw250-toggle-slider:before {
	transform: translateX(20px);
}

.dw250-toggle-label {
	font-weight: 600;
	color: #23282d;
}

/* SMTP Fields Visibility */
.smtp-fields,
.smtp-auth-fields {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #e5e5e5;
}

/* Help Text */
.dw250-help-box {
	background: #f0f6fc;
	border-left: 4px solid #1B3B6F;
	padding: 12px 15px;
	margin-top: 15px;
	border-radius: 3px;
}

.dw250-help-box h4 {
	margin: 0 0 8px 0;
	font-size: 14px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-help-box p {
	margin: 0 0 8px 0;
	font-size: 13px;
	line-height: 1.6;
}

.dw250-help-box ul {
	margin: 8px 0 8px 20px;
	font-size: 13px;
}

.dw250-help-box ul li {
	margin-bottom: 4px;
}

/* Provider List */
.dw250-provider-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
	margin-top: 15px;
}

.dw250-provider-card {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 12px 15px;
	cursor: pointer;
	transition: all 0.2s;
}

.dw250-provider-card:hover {
	border-color: #1B3B6F;
	box-shadow: 0 2px 4px rgba(27, 59, 111, 0.1);
}

.dw250-provider-card h5 {
	margin: 0 0 5px 0;
	font-size: 14px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-provider-card p {
	margin: 0;
	font-size: 12px;
	color: #646970;
	line-height: 1.4;
}

/* Delivery Stats Sidebar */
.dw250-delivery-stats {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.dw250-stat-card {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 20px;
	text-align: center;
}

.dw250-stat-value {
	display: block;
	font-size: 32px;
	font-weight: 700;
	color: #1B3B6F;
	margin-bottom: 8px;
}

.dw250-stat-label {
	display: block;
	font-size: 13px;
	color: #646970;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dw250-stat-success {
	color: #2E7D32;
}

.dw250-stat-warning {
	color: #F0A202;
}

.dw250-stat-error {
	color: #D32F2F;
}

/* Last Test/Failed Email Cards */
.dw250-last-email-card {
	background: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 15px;
}

.dw250-last-email-card h4 {
	margin: 0 0 10px 0;
	font-size: 14px;
	font-weight: 600;
	color: #23282d;
}

.dw250-last-email-info {
	font-size: 13px;
	line-height: 1.6;
	color: #646970;
}

.dw250-last-email-info p {
	margin: 5px 0;
}

.dw250-last-email-info strong {
	color: #23282d;
}

.dw250-last-email-error {
	background: #fff3cd;
	border-left: 3px solid #F0A202;
	padding: 10px 12px;
	margin-top: 10px;
	font-size: 12px;
	color: #856404;
	border-radius: 3px;
}

/* Test Email Section */
.dw250-test-email-section {
	background: #e8f4f8;
	border: 1px solid #b3d9e6;
	border-radius: 4px;
	padding: 20px;
}

.dw250-test-email-section h4 {
	margin: 0 0 15px 0;
	font-size: 15px;
	font-weight: 600;
	color: #1B3B6F;
}

/* Submit Buttons */
.dw250-submit-row {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-top: 20px;
}

.dw250-submit-row .button-primary {
	background: #1B3B6F;
	border-color: #1B3B6F;
	text-shadow: none;
	box-shadow: none;
	padding: 8px 16px;
	height: auto;
	line-height: 1.5;
}

.dw250-submit-row .button-primary:hover {
	background: #2E4F8E;
	border-color: #2E4F8E;
}

.dw250-submit-row .button-secondary {
	padding: 8px 16px;
	height: auto;
	line-height: 1.5;
}

/* Notice Messages */
.dw250-notice {
	margin: 20px 0;
	animation: slideDown 0.3s ease-out;
}

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

/* Responsive Design */
@media screen and (max-width: 1024px) {
	.dw250-email-settings-layout {
		grid-template-columns: 1fr;
	}

	.dw250-email-sidebar {
		order: -1;
	}

	.dw250-delivery-stats {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.dw250-stat-card {
		flex: 1;
		min-width: 150px;
	}
}

@media screen and (max-width: 768px) {
	.dw250-email-settings-page {
		padding: 10px;
	}

	.dw250-provider-list {
		grid-template-columns: 1fr;
	}

	.dw250-form-row input[type="text"],
	.dw250-form-row input[type="email"],
	.dw250-form-row input[type="password"],
	.dw250-form-row select {
		max-width: 100%;
	}

	.dw250-delivery-stats {
		flex-direction: column;
	}

	.dw250-submit-row {
		flex-direction: column;
		align-items: stretch;
	}

	.dw250-submit-row .button {
		width: 100%;
	}
}

/* =====================================================
   STAFF CALENDAR STYLES (.dw250-cal-)
   ===================================================== */

/* Page Header */
.dw250-cal-page-header {
	background: white;
	padding: 24px;
	border-radius: 8px;
	margin-bottom: 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cal-page-header h1 {
	font-size: 28px;
	color: #1B3B6F;
	margin: 0 0 4px 0;
}

.dw250-cal-page-header p {
	color: #666;
	margin: 0;
	font-size: 14px;
}

.dw250-cal-btn-new {
	background: #1B3B6F;
	color: white;
	padding: 12px 24px;
	border-radius: 6px;
	font-weight: 700;
	border: none;
	cursor: pointer;
	font-size: 14px;
	transition: background 0.2s;
}

.dw250-cal-btn-new:hover {
	background: #142d54;
}

/* Calendar Controls */
.dw250-cal-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 24px;
}

.dw250-cal-month-nav {
	display: flex;
	align-items: center;
	gap: 16px;
}

.dw250-cal-month-nav h2 {
	color: #1B3B6F;
	min-width: 220px;
	text-align: center;
	font-size: 22px;
	margin: 0;
}

.dw250-cal-nav-btn {
	padding: 8px 12px;
	background: white;
	border: 1px solid #ccc;
	border-radius: 6px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
}

.dw250-cal-nav-btn:hover {
	background: #f5f5f5;
}

.dw250-cal-nav-btn .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

.dw250-cal-view-toggle {
	display: flex;
	gap: 0;
}

.dw250-cal-view-btn {
	padding: 8px 16px;
	background: white;
	border: 1px solid #ccc;
	cursor: pointer;
	font-size: 14px;
	transition: all 0.2s;
}

.dw250-cal-view-btn:first-child {
	border-radius: 6px 0 0 6px;
}

.dw250-cal-view-btn:last-child {
	border-radius: 0 6px 6px 0;
}

.dw250-cal-view-btn:not(:first-child) {
	border-left: none;
}

.dw250-cal-view-btn.active {
	background: #1B3B6F;
	color: white;
	border-color: #1B3B6F;
}

.dw250-cal-view-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Staff Calendar Visibility Filter */
.dw250-cal-staff-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
	padding: 12px 16px;
	background: #f8f9fa;
	border-radius: 8px;
	border: 1px solid #e9ecef;
}

.dw250-cal-staff-filter-label {
	font-weight: 600;
	color: #1B3B6F;
	font-size: 14px;
	margin-right: 4px;
}

.dw250-cal-staff-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	color: #333;
	cursor: pointer;
	padding: 4px 8px;
	border-radius: 4px;
	transition: background 0.2s;
}

.dw250-cal-staff-checkbox:hover {
	background: #e9ecef;
}

.dw250-cal-staff-checkbox input[type="checkbox"] {
	display: none;
}

.dw250-cal-staff-swatch {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 3px;
	opacity: 0.3;
	transition: opacity 0.2s;
}

.dw250-cal-staff-checkbox input[type="checkbox"]:checked ~ .dw250-cal-staff-swatch {
	opacity: 1;
}

.dw250-cal-staff-checkbox em {
	font-size: 12px;
	color: #666;
}

.dw250-cal-event-item-staff {
	font-size: 12px;
	color: #666;
	font-style: italic;
}

@media (max-width: 600px) {
	.dw250-cal-staff-filter {
		gap: 8px;
		padding: 10px 12px;
	}
	.dw250-cal-staff-checkbox {
		font-size: 13px;
	}
}

/* Calendar Layout (Grid + Sidebar) */
.dw250-cal-layout {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 24px;
}

/* Calendar Container */
.dw250-cal-container {
	background: white;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dw250-cal-header {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	background: #1B3B6F;
	color: white;
}

.dw250-cal-header div {
	padding: 14px 8px;
	text-align: center;
	font-weight: 600;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dw250-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}

/* Day Cells */
.dw250-cal-day {
	min-height: 120px;
	border: 1px solid #e0e0e0;
	padding: 8px;
	cursor: pointer;
	transition: background 0.15s;
}

.dw250-cal-day:hover {
	background: #f0f7ff;
}

.dw250-cal-day--other {
	background: #fafafa;
}

.dw250-cal-day--other:hover {
	background: #f0f4f8;
}

.dw250-cal-day--other .dw250-cal-day-number {
	color: #ccc;
}

.dw250-cal-day--today {
	background: rgba(240, 162, 2, 0.1);
}

.dw250-cal-day--today:hover {
	background: rgba(240, 162, 2, 0.18);
}

.dw250-cal-day-number {
	font-weight: 600;
	color: #1B3B6F;
	margin-bottom: 6px;
	font-size: 14px;
}

/* Calendar Events (pills in day cells) */
.dw250-cal-event {
	padding: 3px 6px;
	border-radius: 3px;
	font-size: 11px;
	margin-bottom: 3px;
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: white;
	line-height: 1.3;
}

.dw250-cal-event:hover {
	opacity: 0.85;
}

.dw250-cal-event--assessment_call { background: #FFA500; }
.dw250-cal-event--follow_up { background: #4A90E2; }
.dw250-cal-event--meeting { background: #6A0DAD; }
.dw250-cal-event--cp_exam_prep { background: #DC3545; }
.dw250-cal-event--document_review { background: #28A745; }
.dw250-cal-event--check_in { background: #1B3B6F; }
.dw250-cal-event--other { background: #666; }

/* Upcoming Events Sidebar */
.dw250-cal-upcoming {
	background: white;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
	align-self: start;
}

.dw250-cal-upcoming h3 {
	color: #1B3B6F;
	margin: 0 0 16px 0;
	padding-bottom: 12px;
	border-bottom: 2px solid #f5f5f5;
	font-size: 18px;
}

.dw250-cal-event-item {
	padding: 12px;
	border-left: 4px solid #F0A202;
	background: #f5f5f5;
	margin-bottom: 12px;
	border-radius: 0 6px 6px 0;
	cursor: pointer;
	transition: background 0.15s;
}

.dw250-cal-event-item:hover {
	background: #eef1f5;
}

.dw250-cal-event-item:last-child {
	margin-bottom: 0;
}

.dw250-cal-event-time {
	font-size: 12px;
	color: #666;
	margin-bottom: 4px;
}

.dw250-cal-event-title {
	font-weight: 600;
	color: #1B3B6F;
	margin-bottom: 4px;
	font-size: 14px;
}

.dw250-cal-event-client {
	font-size: 13px;
	color: #666;
}

.dw250-cal-upcoming-empty {
	color: #999;
	font-size: 14px;
	text-align: center;
	padding: 20px 0;
}

.dw250-cal-loading {
	text-align: center;
	padding: 40px 0;
	color: #666;
}

.dw250-spin {
	animation: dw250-spin 1s linear infinite;
	display: inline-block;
}

@keyframes dw250-spin {
	100% { transform: rotate(360deg); }
}

/* Calendar Modals */
.dw250-cal-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dw250-cal-modal {
	background: white;
	border-radius: 12px;
	width: 90%;
	max-width: 600px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.dw250-cal-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid #e0e0e0;
}

.dw250-cal-modal-header h3 {
	margin: 0;
	color: #1B3B6F;
	font-size: 20px;
}

.dw250-cal-modal-close {
	background: none;
	border: none;
	cursor: pointer;
	color: #666;
	padding: 4px;
	border-radius: 4px;
	transition: background 0.15s;
}

.dw250-cal-modal-close:hover {
	background: #f0f0f0;
	color: #333;
}

.dw250-cal-modal-close .dashicons {
	font-size: 24px;
	width: 24px;
	height: 24px;
}

.dw250-cal-modal-body {
	padding: 24px;
}

.dw250-cal-modal-footer {
	padding: 16px 24px;
	border-top: 1px solid #e0e0e0;
	display: flex;
	justify-content: flex-end;
	gap: 12px;
}

.dw250-cal-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 16px;
}

.dw250-cal-form-full {
	grid-column: 1 / -1;
}

.dw250-cal-form-group label {
	display: block;
	font-weight: 600;
	color: #333;
	margin-bottom: 6px;
	font-size: 13px;
}

.dw250-cal-form-group label .required {
	color: #DC3545;
}

.dw250-cal-form-group input[type="text"],
.dw250-cal-form-group input[type="datetime-local"],
.dw250-cal-form-group select,
.dw250-cal-form-group textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	transition: border-color 0.2s;
	box-sizing: border-box;
}

.dw250-cal-form-group input:focus,
.dw250-cal-form-group select:focus,
.dw250-cal-form-group textarea:focus {
	outline: none;
	border-color: #4A90E2;
	box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.15);
}

.dw250-cal-checkbox-label {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-weight: 400 !important;
	cursor: pointer;
	padding-top: 10px;
}

.dw250-cal-checkbox-label input[type="checkbox"] {
	width: 18px;
	height: 18px;
}

.dw250-cal-client-search-wrap {
	position: relative;
}

.dw250-cal-client-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 6px 6px;
	max-height: 200px;
	overflow-y: auto;
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dw250-cal-client-result {
	padding: 10px 12px;
	cursor: pointer;
	border-bottom: 1px solid #f0f0f0;
	transition: background 0.15s;
}

.dw250-cal-client-result:hover {
	background: #f0f7ff;
}

.dw250-cal-client-result:last-child {
	border-bottom: none;
}

.dw250-cal-client-result-name {
	font-weight: 600;
	color: #333;
}

.dw250-cal-client-result-email {
	font-size: 12px;
	color: #666;
}

.dw250-cal-client-selected {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #e8f4fd;
	padding: 8px 12px;
	border-radius: 6px;
	margin-top: 8px;
}

.dw250-cal-client-selected span {
	font-weight: 500;
	color: #1B3B6F;
}

.dw250-cal-client-clear {
	background: none;
	border: none;
	cursor: pointer;
	color: #999;
	padding: 2px;
}

.dw250-cal-client-clear:hover {
	color: #DC3545;
}

.dw250-cal-btn-cancel {
	padding: 10px 20px;
	background: #f5f5f5;
	border: 1px solid #ddd;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	transition: background 0.2s;
}

.dw250-cal-btn-cancel:hover {
	background: #e8e8e8;
}

.dw250-cal-btn-save {
	padding: 10px 20px;
	background: #1B3B6F;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	transition: background 0.2s;
}

.dw250-cal-btn-save:hover {
	background: #142d54;
}

.dw250-cal-btn-save:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.dw250-cal-view-details {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dw250-cal-detail-row {
	display: flex;
	gap: 16px;
}

.dw250-cal-detail-label {
	font-weight: 600;
	color: #666;
	min-width: 100px;
	font-size: 13px;
}

.dw250-cal-detail-value {
	color: #333;
	font-size: 14px;
}

.dw250-cal-view-actions {
	justify-content: space-between;
	flex-wrap: wrap;
}

.dw250-cal-action-left,
.dw250-cal-action-right {
	display: flex;
	gap: 8px;
}

.dw250-cal-btn-edit {
	padding: 8px 16px;
	background: #4A90E2;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 4px;
	transition: background 0.2s;
}

.dw250-cal-btn-edit:hover { background: #357abd; }
.dw250-cal-btn-edit .dashicons { font-size: 16px; width: 16px; height: 16px; }

.dw250-cal-btn-delete {
	padding: 8px 16px;
	background: #DC3545;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 4px;
	transition: background 0.2s;
}

.dw250-cal-btn-delete:hover { background: #c82333; }
.dw250-cal-btn-delete .dashicons { font-size: 16px; width: 16px; height: 16px; }

.dw250-cal-btn-complete {
	padding: 8px 14px;
	background: #28A745;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	transition: background 0.2s;
}

.dw250-cal-btn-complete:hover { background: #218838; }

.dw250-cal-btn-cancel-apt {
	padding: 8px 14px;
	background: #FFA500;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	transition: background 0.2s;
}

.dw250-cal-btn-cancel-apt:hover { background: #e69500; }

.dw250-cal-btn-noshow {
	padding: 8px 14px;
	background: #6c757d;
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	transition: background 0.2s;
}

.dw250-cal-btn-noshow:hover { background: #5a6268; }

.dw250-cal-status-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	color: white;
}

.dw250-cal-status--scheduled { background: #3788d8; }
.dw250-cal-status--confirmed { background: #28a745; }
.dw250-cal-status--completed { background: #6c757d; }
.dw250-cal-status--cancelled { background: #dc3545; }
.dw250-cal-status--no_show { background: #ffc107; color: #333; }

/* Calendar Responsive */
@media (max-width: 1200px) {
	.dw250-cal-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.dw250-cal-page-header {
		flex-direction: column;
		gap: 16px;
		align-items: flex-start;
	}

	.dw250-cal-controls {
		flex-direction: column;
		gap: 16px;
		align-items: stretch;
	}

	.dw250-cal-month-nav {
		justify-content: center;
	}

	.dw250-cal-view-toggle {
		justify-content: center;
	}

	.dw250-cal-day {
		min-height: 80px;
		padding: 4px;
	}

	.dw250-cal-day-number {
		font-size: 12px;
	}

	.dw250-cal-event {
		font-size: 9px;
		padding: 2px 4px;
	}

	.dw250-cal-header div {
		padding: 10px 4px;
		font-size: 10px;
	}

	.dw250-cal-form-row {
		grid-template-columns: 1fr;
	}

	.dw250-cal-modal {
		width: 95%;
	}

	.dw250-cal-view-actions {
		flex-direction: column;
		gap: 8px;
	}

	.dw250-cal-action-left,
	.dw250-cal-action-right {
		justify-content: center;
	}
}

/* =========================================================================
   Document Library Styles (dw250-doc-)
   ========================================================================= */

/* Page Header */
.dw250-doc-page-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	padding: 24px 32px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	margin-bottom: 24px;
}

.dw250-doc-page-header h1 {
	font-family: 'Jost', sans-serif;
	font-size: 32px;
	font-weight: 700;
	color: #1B3B6F;
	margin: 0 0 4px 0;
}

.dw250-doc-page-header p {
	color: #666;
	margin: 0;
	font-size: 14px;
}

.dw250-doc-btn-upload {
	background: #1B3B6F;
	color: #fff;
	border: none;
	padding: 10px 20px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.dw250-doc-btn-upload:hover {
	background: #8B0000;
}

/* Stats Grid */
.dw250-doc-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-bottom: 24px;
}

.dw250-doc-stat-card {
	background: #fff;
	padding: 20px 24px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dw250-doc-stat-label {
	font-size: 14px;
	color: #666;
}

.dw250-doc-stat-value {
	font-size: 36px;
	font-weight: 700;
	color: #1B3B6F;
	font-family: 'Jost', sans-serif;
}

.dw250-doc-stat-value .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

/* Controls: Search & Filters */
.dw250-doc-controls {
	background: #fff;
	padding: 20px 24px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	margin-bottom: 24px;
}

.dw250-doc-search-row {
	margin-bottom: 16px;
}

.dw250-doc-search-wrap {
	position: relative;
}

.dw250-doc-search-wrap .dashicons {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #999;
	font-size: 18px;
}

.dw250-doc-search-wrap input {
	width: 100%;
	padding: 10px 12px 10px 40px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
}

.dw250-doc-search-wrap input:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 2px rgba(27, 59, 111, 0.1);
}

.dw250-doc-filter-row {
	display: flex;
	gap: 12px;
}

.dw250-doc-filter-row select {
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	min-width: 180px;
	background: #fff;
}

.dw250-doc-filter-row select:focus {
	border-color: #1B3B6F;
	outline: none;
}

/* Documents Table */
.dw250-doc-table-wrap {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	overflow-x: auto;
	margin-bottom: 24px;
}

.dw250-doc-table {
	width: 100%;
	border-collapse: collapse;
}

.dw250-doc-table thead tr {
	background: #1B3B6F;
}

.dw250-doc-table thead th {
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	padding: 14px 16px;
	text-align: left;
	white-space: nowrap;
	cursor: default;
}

.dw250-doc-table thead th[data-sort] {
	cursor: pointer;
}

.dw250-doc-table thead th[data-sort]:hover {
	background: rgba(255,255,255,0.1);
}

.dw250-doc-table thead th .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	vertical-align: middle;
	opacity: 0.6;
}

.dw250-doc-table thead th.sort-active .dashicons {
	opacity: 1;
}

.dw250-doc-table tbody tr {
	border-bottom: 1px solid #eee;
}

.dw250-doc-table tbody tr:hover {
	background: #F0F7FF;
}

.dw250-doc-table tbody td {
	padding: 12px 16px;
	font-size: 14px;
	color: #333;
	vertical-align: middle;
}

.dw250-doc-loading {
	text-align: center;
	padding: 40px 16px !important;
	color: #666;
}

.dw250-doc-loading .dashicons {
	margin-right: 8px;
	vertical-align: middle;
}

/* Document name cell */
.dw250-doc-name-cell {
	display: flex;
	align-items: center;
	gap: 12px;
}

.dw250-doc-name-cell .dashicons {
	font-size: 28px;
	width: 28px;
	height: 28px;
	color: #1B3B6F;
	flex-shrink: 0;
}

.dw250-doc-name-text {
	display: flex;
	flex-direction: column;
}

.dw250-doc-name-primary {
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-doc-name-meta {
	font-size: 12px;
	color: #999;
	margin-top: 2px;
}

/* Category Badges */
.dw250-doc-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.dw250-doc-badge--medical {
	background: #E3F2FD;
	color: #1976D2;
}

.dw250-doc-badge--military {
	background: #FFF3E0;
	color: #F57C00;
}

.dw250-doc-badge--va {
	background: #E8F5E9;
	color: #388E3C;
}

.dw250-doc-badge--legal {
	background: #F3E5F5;
	color: #7B1FA2;
}

.dw250-doc-badge--lay_statement {
	background: #FFF8E1;
	color: #F9A825;
}

.dw250-doc-badge--other {
	background: #F5F5F5;
	color: #666;
}

/* Action Buttons */
.dw250-doc-actions {
	display: flex;
	gap: 6px;
}

.dw250-doc-action-btn {
	background: transparent;
	border: 1px solid #CCC;
	border-radius: 4px;
	padding: 4px 6px;
	cursor: pointer;
	transition: all 0.2s;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.dw250-doc-action-btn:hover {
	background: #f5f5f5;
	border-color: #1B3B6F;
}

.dw250-doc-action-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	color: #666;
}

.dw250-doc-action-btn:hover .dashicons {
	color: #1B3B6F;
}

.dw250-doc-action-btn--delete:hover {
	border-color: #DC3545;
	background: #FFF5F5;
}

.dw250-doc-action-btn--delete:hover .dashicons {
	color: #DC3545;
}

/* Pagination */
.dw250-doc-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	padding: 16px 0;
}

.dw250-doc-pagination button {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 6px 12px;
	font-size: 13px;
	cursor: pointer;
	transition: all 0.2s;
	color: #333;
}

.dw250-doc-pagination button:hover {
	border-color: #1B3B6F;
	color: #1B3B6F;
}

.dw250-doc-pagination button.active {
	background: #1B3B6F;
	color: #fff;
	border-color: #1B3B6F;
}

.dw250-doc-pagination button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.dw250-doc-pagination .dw250-doc-page-info {
	font-size: 13px;
	color: #666;
	margin: 0 12px;
}

/* Upload Modal */
.dw250-doc-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0,0,0,0.5);
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dw250-doc-modal {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.3);
	width: 90%;
	max-width: 600px;
	max-height: 90vh;
	overflow-y: auto;
}

.dw250-doc-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid #eee;
}

.dw250-doc-modal-header h3 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #1B3B6F;
}

.dw250-doc-modal-close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: #999;
}

.dw250-doc-modal-close:hover {
	color: #333;
}

.dw250-doc-modal-body {
	padding: 24px;
}

.dw250-doc-form-row {
	display: flex;
	gap: 16px;
	margin-bottom: 16px;
}

.dw250-doc-form-group {
	flex: 1;
}

.dw250-doc-form-full {
	flex: 1 1 100%;
}

.dw250-doc-form-group label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #333;
	margin-bottom: 6px;
}

.dw250-doc-form-group label .required {
	color: #DC3545;
}

.dw250-doc-form-group input[type="text"],
.dw250-doc-form-group select,
.dw250-doc-form-group textarea {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
}

.dw250-doc-form-group input[type="text"]:focus,
.dw250-doc-form-group select:focus,
.dw250-doc-form-group textarea:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 2px rgba(27, 59, 111, 0.1);
}

.dw250-doc-form-group input[type="file"] {
	width: 100%;
	padding: 8px;
	border: 2px dashed #ddd;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
	cursor: pointer;
}

.dw250-doc-file-hint {
	font-size: 12px;
	color: #999;
	margin: 6px 0 0 0;
}

.dw250-doc-checkbox-label {
	display: flex !important;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-weight: 400 !important;
}

.dw250-doc-checkbox-label input[type="checkbox"] {
	width: auto;
}

/* Client search in modal */
.dw250-doc-client-search-wrap {
	position: relative;
}

.dw250-doc-client-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0 0 6px 6px;
	max-height: 200px;
	overflow-y: auto;
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.dw250-doc-client-result-item {
	padding: 10px 12px;
	cursor: pointer;
	font-size: 14px;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-doc-client-result-item:hover {
	background: #F0F7FF;
}

.dw250-doc-client-result-item:last-child {
	border-bottom: none;
}

.dw250-doc-client-selected {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #E3F2FD;
	padding: 8px 12px;
	border-radius: 6px;
	font-size: 14px;
	color: #1976D2;
	font-weight: 500;
}

.dw250-doc-client-clear {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: #999;
	margin-left: auto;
}

.dw250-doc-client-clear:hover {
	color: #DC3545;
}

/* Upload progress bar */
.dw250-doc-upload-progress {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 16px;
}

.dw250-doc-progress-bar {
	flex: 1;
	height: 8px;
	background: #eee;
	border-radius: 4px;
	overflow: hidden;
}

.dw250-doc-progress-fill {
	height: 100%;
	background: #1B3B6F;
	border-radius: 4px;
	width: 0;
	transition: width 0.3s;
}

.dw250-doc-progress-text {
	font-size: 13px;
	font-weight: 600;
	color: #1B3B6F;
	min-width: 40px;
	text-align: right;
}

/* Modal footer */
.dw250-doc-modal-footer {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	padding: 16px 24px;
	border-top: 1px solid #eee;
}

.dw250-doc-btn-cancel {
	background: #f5f5f5;
	color: #666;
	border: 1px solid #ddd;
	padding: 8px 20px;
	border-radius: 6px;
	font-size: 14px;
	cursor: pointer;
	transition: all 0.2s;
}

.dw250-doc-btn-cancel:hover {
	background: #eee;
	color: #333;
}

.dw250-doc-btn-save {
	background: #1B3B6F;
	color: #fff;
	border: none;
	padding: 8px 20px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.dw250-doc-btn-save:hover {
	background: #142d54;
}

.dw250-doc-btn-save:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Empty/No Results State */
.dw250-doc-empty {
	text-align: center;
	padding: 40px 16px;
	color: #999;
}

.dw250-doc-empty .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: #ddd;
	display: block;
	margin: 0 auto 12px;
}

/* Responsive */
@media (max-width: 1200px) {
	.dw250-doc-stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.dw250-doc-page-header {
		flex-direction: column;
		gap: 16px;
		text-align: center;
		padding: 20px;
	}

	.dw250-doc-stats {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.dw250-doc-stat-value {
		font-size: 28px;
	}

	.dw250-doc-filter-row {
		flex-direction: column;
	}

	.dw250-doc-filter-row select {
		min-width: 100%;
	}

	.dw250-doc-table-wrap {
		overflow-x: auto;
	}

	.dw250-doc-form-row {
		flex-direction: column;
	}

	.dw250-doc-modal {
		width: 95%;
		max-height: 85vh;
	}
}

/* =========================================================================
   Communication Hub Styles (dw250-comm-)
   ========================================================================= */

/* Page Header */
.dw250-comm-page-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	padding: 24px 32px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	margin-bottom: 24px;
}

.dw250-comm-page-header h1 {
	font-family: 'Jost', sans-serif;
	font-size: 32px;
	font-weight: 700;
	color: #1B3B6F;
	margin: 0 0 4px 0;
}

.dw250-comm-page-header p {
	color: #666;
	margin: 0;
	font-size: 14px;
}

.dw250-comm-btn-quicklog {
	background: #F0A202;
	color: #fff;
	border: none;
	padding: 10px 20px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 6px;
}

.dw250-comm-btn-quicklog:hover {
	background: #d48e00;
}

.dw250-comm-btn-quicklog .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.dw250-comm-btn-quicklog kbd {
	background: rgba(255,255,255,0.3);
	padding: 2px 6px;
	border-radius: 3px;
	font-size: 11px;
	font-family: monospace;
	margin-left: 4px;
}

/* Stats Grid */
.dw250-comm-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-bottom: 24px;
}

.dw250-comm-stat-card {
	background: #fff;
	padding: 20px 24px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dw250-comm-stat-label {
	font-size: 14px;
	color: #666;
}

.dw250-comm-stat-value {
	font-size: 36px;
	font-weight: 700;
	color: #1B3B6F;
	font-family: 'Jost', sans-serif;
}

.dw250-comm-stat-value .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

/* Controls: Search & Filters */
.dw250-comm-controls {
	background: #fff;
	padding: 20px 24px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	margin-bottom: 24px;
}

.dw250-comm-search-row {
	margin-bottom: 16px;
}

.dw250-comm-search-wrap {
	position: relative;
}

.dw250-comm-search-wrap .dashicons {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #999;
	font-size: 18px;
}

.dw250-comm-search-wrap input {
	width: 100%;
	padding: 10px 12px 10px 40px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
}

.dw250-comm-search-wrap input:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 2px rgba(27, 59, 111, 0.1);
}

.dw250-comm-filter-row {
	display: flex;
	gap: 12px;
}

.dw250-comm-filter-row select {
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	min-width: 160px;
	background: #fff;
}

.dw250-comm-filter-row select:focus {
	border-color: #1B3B6F;
	outline: none;
}

/* Timeline */
.dw250-comm-timeline-wrap {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	padding: 32px;
	margin-bottom: 24px;
}

.dw250-comm-timeline {
	position: relative;
	padding-left: 50px;
}

.dw250-comm-timeline::before {
	content: '';
	position: absolute;
	left: 17px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: #E0E0E0;
}

.dw250-comm-timeline-item {
	position: relative;
	margin-bottom: 28px;
}

.dw250-comm-timeline-item:last-child {
	margin-bottom: 0;
}

.dw250-comm-timeline-icon {
	position: absolute;
	left: -50px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 3px solid #1B3B6F;
}

.dw250-comm-timeline-icon .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* Type-specific icon colors */
.dw250-comm-timeline-icon.type-phone {
	border-color: #2196F3;
	color: #2196F3;
}

.dw250-comm-timeline-icon.type-email {
	border-color: #4CAF50;
	color: #4CAF50;
}

.dw250-comm-timeline-icon.type-meeting {
	border-color: #9C27B0;
	color: #9C27B0;
}

.dw250-comm-timeline-icon.type-text {
	border-color: #FF9800;
	color: #FF9800;
}

.dw250-comm-timeline-content {
	background: #F9F9F9;
	padding: 16px 20px;
	border-radius: 8px;
	border: 1px solid #eee;
}

.dw250-comm-timeline-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 8px;
	gap: 12px;
}

.dw250-comm-timeline-header-left {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1;
	min-width: 0;
}

.dw250-comm-timeline-subject {
	font-weight: 700;
	color: #1B3B6F;
	font-size: 15px;
}

.dw250-comm-timeline-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.dw250-comm-timeline-badge.type-phone {
	background: #E3F2FD;
	color: #1976D2;
}

.dw250-comm-timeline-badge.type-email {
	background: #E8F5E9;
	color: #388E3C;
}

.dw250-comm-timeline-badge.type-meeting {
	background: #F3E5F5;
	color: #7B1FA2;
}

.dw250-comm-timeline-badge.type-text {
	background: #FFF3E0;
	color: #F57C00;
}

.dw250-comm-timeline-date {
	font-size: 13px;
	color: #999;
	white-space: nowrap;
}

.dw250-comm-timeline-meta {
	font-size: 13px;
	color: #888;
	margin-bottom: 10px;
}

.dw250-comm-timeline-meta a {
	color: #1B3B6F;
	text-decoration: none;
	font-weight: 500;
}

.dw250-comm-timeline-meta a:hover {
	text-decoration: underline;
}

.dw250-comm-timeline-body {
	font-size: 14px;
	line-height: 1.6;
	color: #444;
}

.dw250-comm-timeline-actions {
	margin-top: 10px;
	display: flex;
	gap: 8px;
}

.dw250-comm-timeline-edit {
	background: none;
	border: 1px solid #ddd;
	padding: 4px 12px;
	border-radius: 4px;
	font-size: 12px;
	color: #666;
	cursor: pointer;
	transition: all 0.2s;
	display: flex;
	align-items: center;
	gap: 4px;
}

.dw250-comm-timeline-edit:hover {
	border-color: #1B3B6F;
	color: #1B3B6F;
}

.dw250-comm-timeline-edit .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
}

.dw250-comm-timeline-edit-time {
	font-size: 11px;
	color: #999;
	margin-left: 4px;
}

/* Loading State */
.dw250-comm-loading {
	text-align: center;
	padding: 40px 16px;
	color: #999;
	font-size: 14px;
}

.dw250-comm-loading .dashicons {
	display: block;
	margin: 0 auto 12px;
	font-size: 24px;
	width: 24px;
	height: 24px;
}

/* Empty/No Results State */
.dw250-comm-empty {
	text-align: center;
	padding: 40px 16px;
	color: #999;
}

.dw250-comm-empty .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: #ddd;
	display: block;
	margin: 0 auto 12px;
}

/* Pagination */
.dw250-comm-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
	margin-bottom: 24px;
}

.dw250-comm-pagination button {
	background: #fff;
	border: 1px solid #ddd;
	padding: 8px 14px;
	border-radius: 6px;
	font-size: 13px;
	cursor: pointer;
	transition: all 0.2s;
}

.dw250-comm-pagination button:hover:not(:disabled) {
	border-color: #1B3B6F;
	color: #1B3B6F;
}

.dw250-comm-pagination button.active {
	background: #1B3B6F;
	color: #fff;
	border-color: #1B3B6F;
}

.dw250-comm-pagination button:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.dw250-comm-pagination .dw250-comm-page-info {
	font-size: 13px;
	color: #666;
	margin: 0 12px;
}

/* Quick Log Modal */
.dw250-comm-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0,0,0,0.5);
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dw250-comm-modal {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.3);
	width: 90%;
	max-width: 620px;
	max-height: 90vh;
	overflow-y: auto;
}

.dw250-comm-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid #eee;
}

.dw250-comm-modal-header h3 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #1B3B6F;
}

.dw250-comm-modal-close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: #999;
}

.dw250-comm-modal-close:hover {
	color: #333;
}

.dw250-comm-modal-body {
	padding: 24px;
}

.dw250-comm-form-group {
	margin-bottom: 18px;
}

.dw250-comm-form-group > label,
.dw250-comm-form-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #333;
	margin-bottom: 8px;
}

.dw250-comm-form-group .required {
	color: #DC3545;
}

.dw250-comm-form-group input[type="text"],
.dw250-comm-form-group input[type="datetime-local"],
.dw250-comm-form-group select,
.dw250-comm-form-group textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
	font-family: inherit;
}

.dw250-comm-form-group input:focus,
.dw250-comm-form-group textarea:focus {
	border-color: #1B3B6F;
	outline: none;
	box-shadow: 0 0 0 2px rgba(27, 59, 111, 0.1);
}

.dw250-comm-form-group textarea {
	resize: vertical;
	min-height: 100px;
}

/* Communication Type Grid (modal) */
.dw250-comm-type-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}

.dw250-comm-type-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 14px 8px;
	border: 2px solid #eee;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	transition: all 0.2s;
	font-size: 12px;
	font-weight: 600;
	color: #666;
}

.dw250-comm-type-btn .dashicons {
	font-size: 22px;
	width: 22px;
	height: 22px;
}

.dw250-comm-type-btn:hover {
	border-color: #F0A202;
}

.dw250-comm-type-btn.selected {
	background: #F0A202;
	border-color: #F0A202;
	color: #fff;
}

/* Client search (modal) */
.dw250-comm-client-search-wrap {
	position: relative;
}

.dw250-comm-client-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0 0 6px 6px;
	max-height: 200px;
	overflow-y: auto;
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.dw250-comm-client-result-item {
	padding: 10px 12px;
	cursor: pointer;
	font-size: 14px;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-comm-client-result-item:hover {
	background: #F0F7FF;
}

.dw250-comm-client-result-item:last-child {
	border-bottom: none;
}

.dw250-comm-client-selected {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #E3F2FD;
	padding: 8px 12px;
	border-radius: 6px;
	font-size: 14px;
	color: #1976D2;
	font-weight: 500;
}

.dw250-comm-client-clear {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: #999;
	margin-left: auto;
}

.dw250-comm-client-clear:hover {
	color: #DC3545;
}

/* Subject suggestions */
.dw250-comm-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0 0 6px 6px;
	max-height: 160px;
	overflow-y: auto;
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.dw250-comm-suggestion-item {
	padding: 8px 12px;
	cursor: pointer;
	font-size: 13px;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-comm-suggestion-item:hover {
	background: #F0F7FF;
}

/* Checkbox label */
.dw250-comm-checkbox-label {
	display: flex !important;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-weight: 400 !important;
	font-size: 14px;
}

.dw250-comm-checkbox-label input[type="checkbox"] {
	width: auto;
}

/* Modal footer */
.dw250-comm-modal-footer {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	padding: 16px 24px;
	border-top: 1px solid #eee;
}

.dw250-comm-btn-cancel {
	background: #f5f5f5;
	color: #666;
	border: 1px solid #ddd;
	padding: 8px 20px;
	border-radius: 6px;
	font-size: 14px;
	cursor: pointer;
	transition: all 0.2s;
}

.dw250-comm-btn-cancel:hover {
	background: #eee;
	color: #333;
}

.dw250-comm-btn-save {
	background: #1B3B6F;
	color: #fff;
	border: none;
	padding: 8px 20px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.dw250-comm-btn-save:hover {
	background: #142d54;
}

.dw250-comm-btn-save:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Spin animation */
.dw250-comm-wrapper .dw250-spin {
	animation: dw250-spin 1s linear infinite;
}

/* Responsive */
@media (max-width: 1200px) {
	.dw250-comm-stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.dw250-comm-page-header {
		flex-direction: column;
		gap: 16px;
		text-align: center;
		padding: 20px;
	}

	.dw250-comm-stats {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.dw250-comm-stat-value {
		font-size: 28px;
	}

	.dw250-comm-filter-row {
		flex-direction: column;
	}

	.dw250-comm-filter-row select {
		min-width: 100%;
	}

	.dw250-comm-timeline {
		padding-left: 0;
	}

	.dw250-comm-timeline::before {
		display: none;
	}

	.dw250-comm-timeline-icon {
		display: none;
	}

	.dw250-comm-timeline-header {
		flex-direction: column;
		gap: 4px;
	}

	.dw250-comm-type-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.dw250-comm-modal {
		width: 95%;
		max-height: 85vh;
	}

	.dw250-comm-timeline-wrap {
		padding: 20px;
	}
}

/* =========================================================================
   REPORTS PAGE
   ========================================================================= */

.dw250-reports-wrapper { position: relative; }

.dw250-reports-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 16px;
}

.dw250-reports-header h1 { margin: 0 0 4px 0; color: #1B3B6F; }
.dw250-reports-header p { margin: 0; color: #666; }

.dw250-reports-date-range {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.dw250-reports-date-range select {
	padding: 6px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.dw250-reports-custom-dates { display: flex; align-items: center; gap: 6px; }
.dw250-reports-custom-dates input { padding: 5px 8px; border: 1px solid #ccc; border-radius: 4px; }

.dw250-btn-sm {
	padding: 4px 10px;
	font-size: 13px;
	border: 1px solid #1B3B6F;
	background: #1B3B6F;
	color: #fff;
	border-radius: 4px;
	cursor: pointer;
}
.dw250-btn-sm:hover { background: #162f59; }

/* KPI Cards */
.dw250-reports-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 24px;
}

.dw250-kpi-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 20px;
	display: flex;
	align-items: center;
	gap: 16px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-kpi-icon {
	font-size: 32px;
	color: #1B3B6F;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(27,59,111,0.08);
	border-radius: 8px;
}

.dw250-kpi-data { display: flex; flex-direction: column; }
.dw250-kpi-value { font-size: 28px; font-weight: 700; color: #1B3B6F; line-height: 1.1; }
.dw250-kpi-label { font-size: 13px; color: #666; margin-top: 2px; }

/* Two column layout */
.dw250-reports-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 24px;
}

.dw250-reports-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-reports-card h2 { margin: 0 0 16px 0; color: #1B3B6F; font-size: 18px; }

.dw250-reports-full-width { margin-bottom: 24px; }

/* Stage bars */
.dw250-stage-bar-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.dw250-stage-bar-label {
	width: 160px;
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.dw250-stage-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

.dw250-stage-bar-track {
	flex: 1;
	height: 24px;
	background: #f0f0f0;
	border-radius: 4px;
	overflow: hidden;
}

.dw250-stage-bar-fill {
	height: 100%;
	border-radius: 4px;
	min-width: 2px;
	transition: width 0.3s ease;
}

.dw250-stage-bar-count { font-weight: 600; width: 36px; text-align: right; }

/* Staff performance table */
.dw250-reports-table { width: 100%; border-collapse: collapse; }
.dw250-reports-table th { text-align: left; padding: 8px 12px; border-bottom: 2px solid #e0e0e0; font-size: 12px; text-transform: uppercase; color: #666; }
.dw250-reports-table td { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; font-size: 14px; }
.dw250-staff-rank { font-weight: 700; color: #1B3B6F; margin-right: 6px; }

/* Bar chart */
.dw250-bar-chart {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	height: 200px;
	padding: 0 8px;
}

.dw250-bar-group {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
}

.dw250-bar-stack {
	flex: 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 2px;
}

.dw250-bar {
	border-radius: 3px 3px 0 0;
	min-height: 2px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	transition: height 0.3s ease;
}

.dw250-bar span { font-size: 10px; color: #fff; padding: 2px; }
.dw250-bar-total { background: #1B3B6F; }
.dw250-bar-closed { background: #2E7D32; }
.dw250-bar-label { font-size: 11px; color: #666; margin-top: 4px; }

.dw250-chart-legend { display: flex; gap: 20px; margin-top: 12px; justify-content: center; }
.dw250-legend-item { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.dw250-legend-swatch { width: 14px; height: 14px; border-radius: 3px; }

/* Distribution */
.dw250-dist-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.dw250-dist-label { width: 120px; font-size: 13px; flex-shrink: 0; }
.dw250-dist-bar-track { flex: 1; height: 20px; background: #f0f0f0; border-radius: 4px; overflow: hidden; }
.dw250-dist-bar-fill { height: 100%; border-radius: 4px; min-width: 2px; transition: width 0.3s ease; }
.dw250-dist-count { font-size: 13px; width: 80px; text-align: right; color: #666; }

/* Reports loading overlay */
.dw250-reports-loading {
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(255,255,255,0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	z-index: 10;
	border-radius: 8px;
}

@media (max-width: 768px) {
	.dw250-reports-kpi-grid { grid-template-columns: repeat(2, 1fr); }
	.dw250-reports-two-col { grid-template-columns: 1fr; }
	.dw250-stage-bar-label { width: 120px; }
}

/* =========================================================================
   WORKFLOW TRACKING PAGE
   ========================================================================= */

.dw250-workflow-wrapper { }

.dw250-workflow-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 12px;
}

.dw250-workflow-header h1 { margin: 0 0 4px 0; color: #1B3B6F; }
.dw250-workflow-header p { margin: 0; color: #666; }

.dw250-workflow-totals { display: flex; gap: 12px; align-items: center; }

.dw250-workflow-total-badge {
	background: #1B3B6F;
	color: #fff;
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 14px;
}

.dw250-workflow-alert-badge {
	background: #d63638;
	color: #fff;
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 4px;
}

.dw250-workflow-alert-badge .dashicons { font-size: 16px; width: 16px; height: 16px; }

/* Pipeline visualization */
.dw250-pipeline {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-pipeline h2 { margin: 0 0 20px 0; color: #1B3B6F; font-size: 18px; }

.dw250-pipeline-stages {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	overflow-x: auto;
	padding-bottom: 4px;
}

.dw250-pipeline-stage {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
	transition: transform 0.15s ease;
}

.dw250-pipeline-stage:hover { transform: translateY(-2px); }

.dw250-pipeline-circle {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
	transition: box-shadow 0.15s ease;
}

.dw250-pipeline-stage:hover .dw250-pipeline-circle {
	box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

.dw250-pipeline-connector {
	width: 40px;
	height: 3px;
	background: #ccc;
	flex-shrink: 0;
	margin-top: 30px;
}

.dw250-pipeline-label {
	margin-top: 8px;
	font-size: 12px;
	text-align: center;
	color: #333;
	max-width: 90px;
	word-wrap: break-word;
}

/* Stage cards */
.dw250-workflow-stage-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 24px;
}

.dw250-workflow-stage-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 20px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-wsc-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.dw250-wsc-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.dw250-wsc-header h3 { margin: 0; font-size: 14px; color: #333; }
.dw250-wsc-count { font-size: 32px; font-weight: 700; color: #1B3B6F; }
.dw250-wsc-pct { font-size: 13px; color: #666; margin-bottom: 4px; }
.dw250-wsc-desc { font-size: 12px; color: #999; margin: 4px 0 0 0; }

/* Follow-up alerts */
.dw250-workflow-alerts {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-workflow-alerts-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
	flex-wrap: wrap;
	gap: 8px;
}

.dw250-workflow-alerts-header h2 {
	margin: 0;
	color: #1B3B6F;
	font-size: 18px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.dw250-alert-summary { display: flex; gap: 8px; }

.dw250-alert-count-badge {
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
}

.dw250-alert-red { background: #C41E3A; }
.dw250-alert-orange { background: #FF6B35; }
.dw250-alert-yellow { background: #F0A202; color: #333; }

.dw250-workflow-alerts-table { width: 100%; border-collapse: collapse; }
.dw250-workflow-alerts-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid #e0e0e0; font-size: 12px; text-transform: uppercase; color: #666; }
.dw250-workflow-alerts-table td { padding: 12px; border-bottom: 1px solid #f0f0f0; }
.dw250-workflow-alerts-table a { color: #1B3B6F; text-decoration: none; font-weight: 500; }
.dw250-workflow-alerts-table a:hover { text-decoration: underline; }

.dw250-days-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
}

.dw250-workflow-actions { display: flex; gap: 6px; }

.dw250-btn-touch {
	display: inline-flex;
	align-items: center;
	gap: 3px;
}

.dw250-workflow-no-alerts {
	text-align: center;
	padding: 40px 20px;
	color: #666;
}

.dw250-workflow-no-alerts .dashicons { display: block; margin: 0 auto 12px; }

@media (max-width: 768px) {
	.dw250-workflow-stage-cards { grid-template-columns: repeat(2, 1fr); }
	.dw250-pipeline-connector { width: 20px; }
	.dw250-pipeline-circle { width: 48px; height: 48px; font-size: 16px; }
	.dw250-pipeline-connector { margin-top: 22px; }
	.dw250-pipeline-label { font-size: 10px; max-width: 70px; }
}

/* =========================================================================
   SETTINGS PAGE
   ========================================================================= */

.dw250-settings-wrapper { }

.dw250-settings-page-header { margin-bottom: 24px; }
.dw250-settings-page-header h1 { margin: 0 0 4px 0; color: #1B3B6F; }
.dw250-settings-page-header p { margin: 0; color: #666; }

/* Settings tabs */
.dw250-settings-tabs {
	display: flex;
	border-bottom: 2px solid #e0e0e0;
	margin-bottom: 24px;
	overflow-x: auto;
	gap: 0;
}

.dw250-settings-tab {
	padding: 10px 18px;
	border: none;
	background: none;
	cursor: pointer;
	font-size: 14px;
	color: #666;
	display: flex;
	align-items: center;
	gap: 6px;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	white-space: nowrap;
	transition: color 0.2s, border-color 0.2s;
}

.dw250-settings-tab:hover { color: #1B3B6F; }

.dw250-settings-tab.active {
	color: #1B3B6F;
	font-weight: 600;
	border-bottom-color: #1B3B6F;
}

.dw250-settings-tab .dashicons { font-size: 18px; width: 18px; height: 18px; }

/* Settings panels */
.dw250-settings-panel { display: none; }
.dw250-settings-panel.active { display: block; }

.dw250-settings-section {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 20px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.dw250-settings-section h2 { margin: 0 0 16px 0; color: #1B3B6F; font-size: 18px; }

/* Settings form fields */
.dw250-settings-field { margin-bottom: 16px; }
.dw250-settings-field label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 14px; color: #333; }
.dw250-settings-field .description { font-size: 12px; color: #666; margin-top: 4px; }

.dw250-settings-input {
	width: 100%;
	max-width: 400px;
	padding: 8px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
}

.dw250-settings-input:focus { border-color: #1B3B6F; outline: none; box-shadow: 0 0 0 2px rgba(27,59,111,0.15); }
.dw250-settings-input-sm { max-width: 120px; }

/* Toggle switches */
.dw250-settings-toggle-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-settings-toggle-row:last-of-type { border-bottom: none; }
.dw250-settings-toggle-row p { margin: 4px 0 0 0; }

.dw250-toggle {
	position: relative;
	display: inline-block;
	width: 48px;
	height: 26px;
	flex-shrink: 0;
}

.dw250-toggle input { opacity: 0; width: 0; height: 0; }

.dw250-toggle-slider {
	position: absolute;
	cursor: pointer;
	top: 0; left: 0; right: 0; bottom: 0;
	background-color: #ccc;
	border-radius: 26px;
	transition: 0.3s;
}

.dw250-toggle-slider:before {
	content: "";
	position: absolute;
	height: 20px;
	width: 20px;
	left: 3px;
	bottom: 3px;
	background-color: white;
	border-radius: 50%;
	transition: 0.3s;
}

.dw250-toggle input:checked + .dw250-toggle-slider { background-color: #1B3B6F; }
.dw250-toggle input:checked + .dw250-toggle-slider:before { transform: translateX(22px); }

/* Settings actions */
.dw250-settings-actions { margin-top: 16px; display: flex; align-items: center; gap: 12px; }

.dw250-btn-primary {
	padding: 10px 20px;
	background: #1B3B6F;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.dw250-btn-primary:hover { background: #162f59; }

.dw250-btn-secondary {
	padding: 10px 20px;
	background: #fff;
	color: #1B3B6F;
	border: 1px solid #1B3B6F;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.dw250-btn-secondary:hover { background: rgba(27,59,111,0.05); }

.dw250-settings-status { font-size: 14px; }

/* Team member cards */
.dw250-team-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }

.dw250-team-list { display: flex; flex-direction: column; gap: 12px; }

.dw250-team-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px;
	border: 1px solid #e8e8e8;
	border-radius: 8px;
	background: #fafafa;
}

.dw250-team-card.dw250-team-inactive { opacity: 0.6; }

.dw250-team-avatar img { border-radius: 50%; }

.dw250-team-info { flex: 1; }
.dw250-team-info strong { display: block; font-size: 14px; }
.dw250-team-role { display: block; font-size: 13px; color: #1B3B6F; }
.dw250-team-email { display: block; font-size: 12px; color: #666; }

.dw250-badge-active { background: #e8f5e9; color: #2E7D32; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; }
.dw250-badge-inactive { background: #fce4ec; color: #c62828; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; }

/* Integration cards */
.dw250-integration-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px;
	border: 1px solid #e8e8e8;
	border-radius: 8px;
	background: #fafafa;
	margin-bottom: 12px;
}

.dw250-integration-info { flex: 1; }
.dw250-integration-info strong { display: block; margin-bottom: 4px; }
.dw250-integration-info .description { margin: 0; }

/* Security info rows */
.dw250-security-info { display: flex; flex-direction: column; gap: 0; }

.dw250-security-row {
	display: flex;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-security-row:last-child { border-bottom: none; }
.dw250-security-row .dashicons { color: #1B3B6F; font-size: 24px; width: 24px; height: 24px; margin-top: 2px; }
.dw250-security-row strong { display: block; margin-bottom: 2px; }
.dw250-security-row p { margin: 0; font-size: 13px; color: #666; }

/* Backup actions */
.dw250-backup-actions { display: flex; gap: 12px; margin-top: 16px; }

@media (max-width: 768px) {
	.dw250-settings-tabs { gap: 0; }
	.dw250-settings-tab { padding: 8px 12px; font-size: 12px; }
	.dw250-settings-tab .dashicons { display: none; }
	.dw250-team-card { flex-wrap: wrap; }
}

/* =========================================================================
   CLIENT PROFILE - Activity Timeline
   ========================================================================= */

.dw250-timeline-tabs {
	display: flex;
	gap: 0;
	border-bottom: 2px solid #e0e0e0;
	margin-bottom: 16px;
}

.dw250-timeline-tab {
	padding: 8px 16px;
	border: none;
	background: none;
	cursor: pointer;
	font-size: 14px;
	color: #666;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
}

.dw250-timeline-tab:hover { color: #1B3B6F; }
.dw250-timeline-tab.active { color: #1B3B6F; font-weight: 600; border-bottom-color: #1B3B6F; }

.dw250-timeline-loading { text-align: center; padding: 20px; }

.dw250-timeline-item {
	display: flex;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-timeline-item:last-child { border-bottom: none; }

.dw250-timeline-item > .dashicons {
	font-size: 20px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
}

.dw250-timeline-workflow > .dashicons { background: rgba(106,13,173,0.1); color: #6A0DAD; }
.dw250-timeline-comm > .dashicons { background: rgba(27,59,111,0.1); color: #1B3B6F; }

.dw250-timeline-body { flex: 1; }
.dw250-timeline-body strong { text-transform: capitalize; }
.dw250-timeline-detail { color: #666; }
.dw250-timeline-notes { margin: 4px 0; font-size: 13px; color: #444; }
.dw250-timeline-meta { font-size: 12px; color: #999; }

/* =========================================================================
   CALENDAR - Week and Day view
   ========================================================================= */

.dw250-cal-week-view,
.dw250-cal-day-view {
	display: grid !important;
	gap: 1px;
	background: #e0e0e0;
}

.dw250-cal-week-view { grid-template-columns: 60px repeat(7, 1fr); }
.dw250-cal-day-view { grid-template-columns: 60px 1fr; }

.dw250-cal-header .dw250-cal-time-col { background: #f9f9f9; }
.dw250-cal-header .dw250-cal-today { background: rgba(27,59,111,0.08); font-weight: 600; }

.dw250-cal-time-label {
	background: #f9f9f9;
	padding: 8px 6px;
	font-size: 11px;
	color: #666;
	text-align: right;
	border-right: 1px solid #e0e0e0;
}

.dw250-cal-time-slot {
	background: #fff;
	min-height: 48px;
	padding: 2px;
	position: relative;
}

.dw250-cal-time-slot:hover { background: #f8f9ff; }

.dw250-cal-event-chip {
	background: #1B3B6F;
	color: #fff;
	font-size: 11px;
	padding: 2px 6px;
	border-radius: 3px;
	margin-bottom: 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Spinner animation */
.dw250-spin { animation: dw250Spin 1.5s linear infinite; }
@keyframes dw250Spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* =============================================
   STAFF DASHBOARD
   ============================================= */

.dw250-dashboard-staff-wrapper {
	max-width: 1200px;
	margin: 0 auto;
}

/* --- Page Header --- */
.dw250-dash-header {
	background: #fff;
	padding: 20px 24px;
	border-radius: 8px;
	margin-bottom: 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.dw250-dash-header h1 {
	font-family: 'Jost', sans-serif;
	font-size: 26px;
	color: #1B3B6F;
	margin: 0;
}

.dw250-dash-header p {
	color: #666;
	margin: 4px 0 0 0;
	font-size: 14px;
}

.dw250-dash-header-actions {
	display: flex;
	gap: 12px;
	align-items: center;
}

.dw250-dash-date {
	font-size: 13px;
	color: #666;
	padding-right: 12px;
	border-right: 1px solid #ddd;
}

/* --- Buttons --- */
.dw250-btn-outline {
	background: transparent;
	color: #1B3B6F;
	padding: 8px 16px;
	border-radius: 4px;
	font-weight: 700;
	border: 1px solid #1B3B6F;
	cursor: pointer;
	font-size: 13px;
	text-decoration: none;
	transition: all 0.2s;
	display: inline-block;
}

.dw250-btn-outline:hover {
	background: #1B3B6F;
	color: #fff;
}

.dw250-btn-outline.dw250-btn-sm {
	padding: 5px 12px;
	font-size: 12px;
}

.dw250-btn-success {
	background: #28A745;
	color: #fff;
	padding: 8px 16px;
	border-radius: 4px;
	font-weight: 700;
	border: none;
	cursor: pointer;
	font-size: 13px;
	text-decoration: none;
	display: inline-block;
}

.dw250-btn-touch {
	padding: 4px 10px;
	background: #28A745;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.2s;
}

.dw250-btn-touch:hover {
	background: #218838;
}

/* --- KPI Stats Grid --- */
.dw250-dash-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 20px;
}

.dw250-dash-stat-card {
	background: #fff;
	padding: 18px 20px;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	position: relative;
	overflow: hidden;
	border-left: 4px solid transparent;
}

.dw250-dash-stat-card.dw250-accent-navy  { border-left-color: #1B3B6F; }
.dw250-dash-stat-card.dw250-accent-blue  { border-left-color: #4A90E2; }
.dw250-dash-stat-card.dw250-accent-gold  { border-left-color: #F0A202; }
.dw250-dash-stat-card.dw250-accent-green { border-left-color: #28A745; }

.dw250-dash-stat-card h3 {
	font-size: 12px;
	color: #666;
	margin: 0 0 6px 0;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dw250-dash-stat-number {
	font-size: 30px;
	font-weight: 700;
	color: #1B3B6F;
	font-family: 'Jost', sans-serif;
}

.dw250-dash-stat-sub {
	font-size: 11px;
	margin-top: 4px;
	color: #999;
}

/* --- Generic Card --- */
.dw250-dash-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	margin-bottom: 20px;
	display: flex;
	flex-direction: column;
}

.dw250-dash-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 20px;
	border-bottom: 1px solid #f0f0f0;
}

.dw250-dash-card-header h2 {
	font-size: 16px;
	color: #1B3B6F;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.dw250-dash-card-header a {
	font-size: 13px;
	color: #4A90E2;
	text-decoration: none;
	font-weight: 600;
}

.dw250-dash-card-header a:hover {
	text-decoration: underline;
}

.dw250-dash-card-body {
	padding: 0;
	flex: 1;
}

/* --- Badges --- */
.dw250-badge-danger {
	background: #DC3545;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 10px;
	font-family: 'Roboto', sans-serif;
}

.dw250-badge-warning {
	background: #FFA500;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 10px;
	font-family: 'Roboto', sans-serif;
}

.dw250-badge-info {
	background: #4A90E2;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 10px;
	font-family: 'Roboto', sans-serif;
}

/* --- Two-Column Grid --- */
.dw250-dash-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}

.dw250-dash-grid .dw250-dash-card {
	margin-bottom: 0;
}

/* --- Empty State --- */
.dw250-dash-empty {
	text-align: center;
	padding: 32px 20px;
	color: #999;
}

/* --- Pipeline (Dashboard variant) --- */
.dw250-dash-pipeline {
	display: flex;
	gap: 4px;
	padding: 16px 20px;
}

.dw250-dash-pipeline-stage {
	flex: 1;
	text-align: center;
	padding: 14px 6px;
	border-radius: 6px;
	color: #fff;
	cursor: pointer;
	transition: transform 0.2s, box-shadow 0.2s;
	text-decoration: none;
	display: block;
}

.dw250-dash-pipeline-stage:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.dw250-dash-pipeline-count {
	font-size: 22px;
	font-weight: 700;
	display: block;
}

.dw250-dash-pipeline-label {
	font-size: 10px;
	font-weight: 600;
	display: block;
	margin-top: 4px;
	opacity: 0.9;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

/* --- Alert List --- */
.dw250-dash-alert-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-dash-alert-item {
	display: flex;
	align-items: center;
	padding: 10px 20px;
	border-bottom: 1px solid #f5f5f5;
	gap: 10px;
	transition: background 0.15s;
}

.dw250-dash-alert-item:last-child {
	border-bottom: none;
}

.dw250-dash-alert-item:hover {
	background: #fafafa;
}

.dw250-dash-alert-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	flex-shrink: 0;
}

.dw250-dot-red    { background: #DC3545; }
.dw250-dot-orange { background: #FFA500; }
.dw250-dot-yellow { background: #F0A202; }

.dw250-dash-alert-info {
	flex: 1;
	min-width: 0;
}

.dw250-dash-alert-name {
	font-weight: 600;
	font-size: 14px;
	color: #333;
	text-decoration: none;
}

.dw250-dash-alert-name:hover {
	color: #1B3B6F;
	text-decoration: underline;
}

.dw250-dash-alert-detail {
	font-size: 12px;
	color: #999;
	margin-top: 2px;
}

.dw250-dash-alert-days {
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
	padding: 3px 8px;
	border-radius: 4px;
}

.dw250-days-critical { background: #fce4ec; color: #DC3545; }
.dw250-days-warn     { background: #fff3e0; color: #e65100; }
.dw250-days-caution  { background: #fff8e1; color: #f57f17; }

/* --- Task List --- */
.dw250-dash-task-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-dash-task-item {
	display: flex;
	align-items: center;
	padding: 10px 20px;
	border-bottom: 1px solid #f5f5f5;
	gap: 10px;
}

.dw250-dash-task-item:last-child {
	border-bottom: none;
}

.dw250-dash-task-check {
	width: 18px;
	height: 18px;
	border: 2px solid #ccc;
	border-radius: 4px;
	flex-shrink: 0;
	cursor: pointer;
	transition: all 0.2s;
	background: transparent;
	padding: 0;
}

.dw250-dash-task-check:hover {
	border-color: #28A745;
	background: #e8f5e9;
}

.dw250-dash-task-info {
	flex: 1;
	min-width: 0;
}

.dw250-dash-task-title {
	font-size: 14px;
	font-weight: 500;
	color: #333;
}

.dw250-dash-task-meta {
	font-size: 12px;
	color: #999;
	margin-top: 2px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.dw250-dash-task-overdue {
	color: #DC3545;
	font-weight: 600;
}

.dw250-dash-task-priority {
	font-size: 10px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	flex-shrink: 0;
	align-self: center;
}

.dw250-priority-urgent { background: #fce4ec; color: #DC3545; }
.dw250-priority-high   { background: #fff3e0; color: #e65100; }
.dw250-priority-normal { background: #e3f2fd; color: #4A90E2; }

/* --- Activity Feed --- */
.dw250-dash-activity-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-dash-activity-item {
	display: flex;
	padding: 10px 20px;
	border-bottom: 1px solid #f5f5f5;
	gap: 10px;
	align-items: flex-start;
}

.dw250-dash-activity-item:last-child {
	border-bottom: none;
}

.dw250-dash-activity-icon {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	flex-shrink: 0;
}

.dw250-activity-phone   { background: #e3f2fd; }
.dw250-activity-email   { background: #e8f5e9; }
.dw250-activity-meeting { background: #f3e5f5; }
.dw250-activity-text    { background: #fff3e0; }

.dw250-dash-activity-info {
	flex: 1;
	min-width: 0;
}

.dw250-dash-activity-text {
	font-size: 13px;
	color: #333;
	line-height: 1.4;
}

.dw250-dash-activity-text strong {
	color: #1B3B6F;
}

.dw250-dash-activity-text a {
	color: inherit;
	text-decoration: none;
}

.dw250-dash-activity-text a:hover {
	text-decoration: underline;
}

.dw250-dash-activity-time {
	font-size: 11px;
	color: #bbb;
	margin-top: 2px;
}

/* --- Appointments --- */
.dw250-dash-appt-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw250-dash-appt-item {
	display: flex;
	padding: 10px 20px;
	border-bottom: 1px solid #f5f5f5;
	gap: 12px;
	align-items: center;
}

.dw250-dash-appt-item:last-child {
	border-bottom: none;
}

.dw250-dash-appt-date {
	width: 44px;
	text-align: center;
	flex-shrink: 0;
	background: #f5f5f5;
	border-radius: 6px;
	padding: 5px 4px;
}

.dw250-dash-appt-day {
	font-size: 18px;
	font-weight: 700;
	color: #1B3B6F;
	line-height: 1;
}

.dw250-dash-appt-month {
	font-size: 10px;
	text-transform: uppercase;
	color: #999;
	font-weight: 600;
	letter-spacing: 0.5px;
}

.dw250-dash-appt-info {
	flex: 1;
	min-width: 0;
}

.dw250-dash-appt-title {
	font-size: 14px;
	font-weight: 600;
	color: #333;
}

.dw250-dash-appt-meta {
	font-size: 12px;
	color: #999;
	margin-top: 2px;
}

.dw250-dash-appt-type {
	font-size: 10px;
	padding: 2px 8px;
	border-radius: 3px;
	font-weight: 600;
	flex-shrink: 0;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

.dw250-appt-type-assessment_call  { background: #fff3e0; color: #e65100; }
.dw250-appt-type-follow_up        { background: #e3f2fd; color: #1565c0; }
.dw250-appt-type-cp_exam_prep     { background: #f3e5f5; color: #6a1b9a; }
.dw250-appt-type-document_review  { background: #e8f5e9; color: #2e7d32; }
.dw250-appt-type-check_in         { background: #e0f7fa; color: #00838f; }
.dw250-appt-type-meeting          { background: #fce4ec; color: #c62828; }
.dw250-appt-type-other            { background: #f5f5f5; color: #666; }

/* --- Quick Links --- */
.dw250-dash-quick-links {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.dw250-dash-quick-link {
	background: #fff;
	border-radius: 8px;
	padding: 18px;
	text-align: center;
	text-decoration: none;
	color: #333;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	transition: all 0.2s;
	border: 1px solid transparent;
}

.dw250-dash-quick-link:hover {
	border-color: #F0A202;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.dw250-dash-quick-icon {
	font-size: 26px;
	display: block;
	margin-bottom: 6px;
}

.dw250-dash-quick-label {
	font-size: 14px;
	font-weight: 600;
	color: #1B3B6F;
}

.dw250-dash-quick-count {
	font-size: 12px;
	color: #999;
	margin-top: 3px;
}

/* --- Dashboard Responsive --- */
@media (max-width: 1024px) {
	.dw250-dash-stats {
		grid-template-columns: repeat(2, 1fr);
	}
	.dw250-dash-grid {
		grid-template-columns: 1fr;
	}
	.dw250-dash-quick-links {
		grid-template-columns: repeat(2, 1fr);
	}
	.dw250-dash-pipeline {
		flex-wrap: wrap;
	}
	.dw250-dash-pipeline-stage {
		flex: 1 1 30%;
	}
}

@media (max-width: 600px) {
	.dw250-dash-header {
		flex-direction: column;
		gap: 14px;
		text-align: center;
	}
	.dw250-dash-header-actions {
		flex-direction: column;
		gap: 8px;
	}
	.dw250-dash-date {
		border-right: none;
		padding-right: 0;
	}
	.dw250-dash-stats {
		grid-template-columns: 1fr;
	}
	.dw250-dash-quick-links {
		grid-template-columns: 1fr;
	}
	.dw250-dash-pipeline-stage {
		flex: 1 1 45%;
	}
}

/* Client Reassignment */
#dw250-assigned-user-select {
	padding: 4px 8px;
	border: 1px solid #ccc;
	border-radius: 3px;
	font-size: 14px;
}
.dw250-reassign-status {
	margin-left: 8px;
	font-size: 13px;
	font-style: italic;
}
.dw250-reassign-success {
	color: #2E7D32;
}
.dw250-reassign-error {
	color: #d63638;
}

/* =========================================================================
   Client profile card titles (v1.2.0)
   Consolidates the per-card inline <h2> styles. Apply via class so it
   survives anywhere card titles live, not just inside .dw250-profile-card.
   ========================================================================= */
.dw250-card-title {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	color: #1B3B6F;
	line-height: 1.4;
	display: inline-flex;
	align-items: center;
}

.dw250-card-title > .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	margin-right: 6px;
	line-height: 1;
}

/* When the card title sits alone (no flex header above it), give it
   default bottom spacing so the body content doesn't crowd it. */
.dw250-profile-card > .dw250-card-title {
	display: flex;
	margin-bottom: 12px;
}

/* Navy underline beneath every card header — full width across the card.
   Applies to either the h2 directly (Activity Timeline, Documents) or to
   the flex header div that wraps the h2 + action button (Client Details,
   Conditions Tracker, Internal Notes, Contact Change History). */
.dw250-profile-card > .dw250-card-title,
.dw250-profile-card > div:has(> .dw250-card-title) {
	border-bottom: 2px solid #1B3B6F;
	padding-bottom: 10px;
	margin-bottom: 16px !important;
}

/* Form controls inside a profile card — selects, text/email/tel/number
   inputs, and textareas all share the same border/radius/padding so the
   page feels like one design system. Buttons stay separate (they have
   their own primary/ghost rules). */
.dw250-profile-card select,
.dw250-profile-card input[type="text"],
.dw250-profile-card input[type="email"],
.dw250-profile-card input[type="tel"],
.dw250-profile-card input[type="number"],
.dw250-profile-card input[type="search"],
.dw250-profile-card input[type="date"],
.dw250-profile-card textarea {
	padding: 7px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	font-size: 13px;
	font-family: inherit;
	color: #333;
	box-sizing: border-box;
	line-height: 1.4;
	min-height: 34px;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.dw250-profile-card select:focus,
.dw250-profile-card input[type="text"]:focus,
.dw250-profile-card input[type="email"]:focus,
.dw250-profile-card input[type="tel"]:focus,
.dw250-profile-card input[type="number"]:focus,
.dw250-profile-card input[type="search"]:focus,
.dw250-profile-card input[type="date"]:focus,
.dw250-profile-card textarea:focus {
	outline: none;
	border-color: #1B3B6F;
	box-shadow: 0 0 0 3px rgba(27, 59, 111, 0.12);
}

.dw250-profile-card select:disabled,
.dw250-profile-card input:disabled,
.dw250-profile-card textarea:disabled {
	background: #f5f5f5;
	color: #888;
	cursor: not-allowed;
}

/* Native select gets a custom chevron via inline SVG, keeping the look
   consistent across browsers (Chrome's default arrow is too chunky on
   light backgrounds, Firefox's varies, Safari is a different shape). */
.dw250-profile-card select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 32px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 12px 8px;
}

.dw250-profile-card select:hover {
	border-color: #1B3B6F;
}

/* Document table action buttons (View / Download / Delete).
   Keep them on one row, uniform border, uniform padding. */
.dw250-doc-actions {
	display: inline-flex;
	gap: 4px;
	flex-wrap: nowrap;
	white-space: nowrap;
	align-items: center;
}

.dw250-doc-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 4px;
	cursor: pointer;
	color: #555;
	text-decoration: none;
	box-sizing: border-box;
	line-height: 1;
}

.dw250-doc-action-btn:hover {
	background: #f5f5f5;
	border-color: #1B3B6F;
	color: #1B3B6F;
}

.dw250-doc-action-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 1;
}

.dw250-doc-action-btn--danger:hover {
	border-color: #a00;
	color: #a00;
}

/* Breathing room for inline dashicons in the documents table
   (file-type icon column, shared-status column, etc).
   Override to zero inside action buttons so the 28x28 boxes stay tight. */
.dw250-documents-table .dashicons {
	margin: 5px;
}

.dw250-documents-table .dw250-doc-action-btn .dashicons {
	margin: 0;
}
