:root {
	--primary: #192946;
	--success: #198754;
	--dark: #1d2c4d;
	--light: #f8f9fa;
	--border: #dee2e6;
	--primary-rgb: 25, 41, 70;
	--primary-hover: #0f1e38;
	--primary-light: #eef2fa;
	--surface-2: #f7f9fc;
	--surface-3: #f0f4fa;
	--border-soft: #e6ecf5;
	--border-mid: #d4dce9;
	--text-primary: #1a2840;
	--text-secondary: #5c6f8a;
	--text-muted: #8fa3bb;
	--stat-blue-bg: #eff4ff;
	--stat-blue-icon: #3b6fd4;
	--stat-teal-bg: #edfaf5;
	--stat-teal-icon: #0ea470;
	--stat-amber-bg: #fff8ec;
	--stat-amber-icon: #d97706;
	--stat-indigo-bg: #f3f0ff;
	--stat-indigo-icon: #6c4de6;
	--sidebar-accent: #3b82f6;
	--shadow-xs: 0 1px 3px rgba(25, 41, 70, 0.07);
	--shadow-sm: 0 2px 8px rgba(25, 41, 70, 0.08);
	--shadow-md: 0 4px 18px rgba(25, 41, 70, 0.11);
	--shadow-lg: 0 8px 32px rgba(25, 41, 70, 0.14);
	--transition-fast: 150ms cubic-bezier(0.22, 1, 0.36, 1);
	--transition-base: 220ms cubic-bezier(0.22, 1, 0.36, 1);
	--transition-slow: 350ms cubic-bezier(0.22, 1, 0.36, 1);
}
.affiliates-page {
	min-height: 70vh;
}

/* Auth Layout */
.aff-auth-wrap {
	margin: 20px 0 60px;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 8px 40px rgba(2,49,111,0.13);
}

/* Left Hero Panel */
.aff-auth-hero {
	background: linear-gradient(145deg, #02316f 0%, #192946 60%, #192946 100%);
	height: 100%;
	min-height: 560px;
	display: flex;
	align-items: center;
	padding: 60px 50px;
	position: relative;
	overflow: hidden;
}
.aff-auth-hero::before {
	content: '';
	position: absolute;
	top: -80px;
	right: -80px;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: rgba(255,255,255,0.05);
}
.aff-auth-hero::after {
	content: '';
	position: absolute;
	bottom: -60px;
	left: -60px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(255,255,255,0.04);
}
.aff-auth-hero-inner {
	position: relative;
	z-index: 1;
}
.aff-auth-logo {
	width: 56px;
	height: 56px;
	background: rgba(255,255,255,0.15);
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	color: #fff;
	margin-bottom: 28px;
}
.aff-auth-hero-title {
	font-size: 1.7rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
	margin-bottom: 12px;
}
.aff-auth-hero-sub {
	color: rgba(255,255,255,0.75);
	font-size: 0.95rem;
	line-height: 1.6;
	margin-bottom: 36px;
}
.aff-benefit-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.aff-benefit-list li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}
.aff-benefit-icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: rgba(255,255,255,0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	color: #fff;
	flex-shrink: 0;
	margin-top: 2px;
}
.aff-benefit-list li div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.aff-benefit-list li strong {
	color: #fff;
	font-size: 0.92rem;
	font-weight: 600;
}
.aff-benefit-list li span {
	color: rgba(255,255,255,0.65);
	font-size: 0.82rem;
}

/* Right Auth Card */
.aff-auth-card {
	background: #fff;
	height: 100%;
	padding: 50px 48px;
	display: flex;
	flex-direction: column;
}

/* Tabs */
.aff-auth-tabs {
	display: flex;
	border-bottom: 2px solid #e9ecef;
	margin-bottom: 28px;
	gap: 4px;
}
.aff-auth-tab {
	background: none;
	border: none;
	padding: 10px 20px;
	font-size: 0.95rem;
	font-weight: 600;
	color: #6c757d;
	cursor: pointer;
	position: relative;
	transition: color 0.2s;
	margin-bottom: -2px;
}
.aff-auth-tab::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--primary);
	border-radius: 2px 2px 0 0;
	transform: scaleX(0);
	transition: transform 0.2s;
}
.aff-auth-tab.active {
	color: var(--primary);
}
.aff-auth-tab.active::after {
	transform: scaleX(1);
}

/* Panels */
.aff-auth-panel {
	display: none;
	flex-direction: column;
	flex: 1;
}
.aff-auth-panel.active {
	display: flex;
}
.aff-auth-intro {
	color: #6c757d;
	font-size: 0.88rem;
	margin-bottom: 24px;
	line-height: 1.6;
}

/* Fields */
.aff-field {
	margin-bottom: 13px;
}
.aff-form-label {
	display: block;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--dark);
	margin-bottom: 4px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.aff-input-wrap {
	position: relative;
}
.aff-input-wrap > i {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #adb5bd;
	font-size: 0.875rem;
	pointer-events: none;
}
.aff-form-input {
	width: 100%;
	padding: 8px 14px 8px 38px;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.875rem;
	color: var(--dark);
	background: #f8fafc;
	outline: none;
	transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.aff-form-input:focus {
	border-color: var(--primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(2,49,111,0.08);
}
.aff-form-input::placeholder {
	color: #c0c8d4;
}
.aff-form-input.is-invalid {
	border-color: #dc3545;
}
.aff-forgot {
	text-align: right;
	margin-top: -8px;
	margin-bottom: 8px;
}
.aff-forgot a {
	font-size: 0.82rem;
	color: var(--primary);
	text-decoration: none;
}
.aff-forgot a:hover {
	text-decoration: underline;
}
.aff-submit-btn {
	background: var(--primary);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 8px 16px;
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	letter-spacing: 0.3px;
	transition: all 0.3s ease;
}
.aff-submit-btn:hover {
	background: #0b5ed7;
	box-shadow: 0 4px 12px rgba(13,110,253,0.3);
}
.aff-submit-register {
	background: #198754;
	color: #fff;
}
.aff-submit-register:hover {
	background: #146c43;
	box-shadow: 0 4px 12px rgba(25,135,84,0.3);
}
.aff-auth-switch {
	text-align: center;
	font-size: 0.85rem;
	color: #6c757d;
	margin-top: 20px;
	margin-bottom: 0;
}
.aff-auth-switch a {
	color: var(--primary);
	font-weight: 600;
	text-decoration: none;
}
.aff-auth-switch a:hover {
	text-decoration: underline;
}

/* License block */
.partner-license-block {
	background: #f8fafc;
	border: 1.5px solid #e2e8f0;
	border-radius: 12px;
	padding: 20px 20px 4px;
	margin-bottom: 18px;
}
.partner-license-title {
	font-size: 0.83rem;
	font-weight: 700;
	color: var(--dark);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	margin-bottom: 16px;
}
.partner-file-hint {
	font-weight: 400;
	color: #adb5bd;
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.78rem;
	margin-left: 4px;
}
.partner-file-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1.5px dashed #c5d0e0;
	border-radius: 10px;
	padding: 10px 14px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s;
}
.partner-file-wrap:hover {
	border-color: var(--primary);
}
.partner-file-wrap > i {
	color: #adb5bd;
	font-size: 1rem;
	flex-shrink: 0;
}
.partner-file-input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.partner-file-label {
	font-size: 0.88rem;
	color: #6c757d;
	cursor: pointer;
	flex: 1;
}
.partner-file-preview {
	margin-top: 8px;
}
.partner-file-preview img {
	max-height: 80px;
	border-radius: 6px;
	border: 1px solid #dee2e6;
}
.partner-file-preview a {
	font-size: 0.85rem;
	color: var(--primary);
	text-decoration: underline;
}

/* ═══════════════════════════════════════════
   DASHBOARD — Layout
═══════════════════════════════════════════ */
.partner-page { display: flex; min-height: 100vh; background: #f5f7fa; padding-top: 0; }

/*  Sidebar  */
.partner-sidebar {
	width: 64px;
	min-width: 0;
	background: #111c30;
	color: #fff;
	display: flex;
	flex-direction: column;
	position: fixed;
	top: 0;
	left: 0;
	height: 100vh;
	overflow: hidden;
	z-index: 150;
	transition: width .25s ease, box-shadow .25s ease;
}
.partner-sidebar:hover {
	width: 260px;
	box-shadow: 4px 0 24px rgba(0,0,0,.18);
}
.partner-sidebar-brand { padding: 22px 22px 14px; border-bottom: 1px solid rgba(255,255,255,.1); }
.partner-sidebar-brand .brand-name { font-size: 1.1rem; font-weight: 700; color: #fff; letter-spacing: .3px; }
.partner-sidebar-brand .brand-sub { font-size: 0.72rem; color: rgba(255,255,255,.55); margin-top: 2px; }

.partner-user-card { padding: 18px 22px; border-bottom: 1px solid rgba(255,255,255,.1); }
.partner-user-avatar {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: rgba(255,255,255,.15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	color: #fff;
	margin-bottom: 10px;
	overflow: hidden;
}
.partner-user-avatar img { width: 100%; height: 100%; object-fit: cover; }
.partner-user-name { font-size: .9rem; font-weight: 600; color: #fff; line-height: 1.2; }
.partner-user-company { font-size: .75rem; color: rgba(255,255,255,.6); margin-top: 2px; }
.partner-user-status {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 7px;
	font-size: .7rem;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: 20px;
}
.partner-user-status.active { background: rgba(25,135,84,.25); color: #5fe3a1; }
.partner-user-status.pending { background: rgba(255,193,7,.18); color: #ffc107; }

.partner-nav { flex: 1; padding: 12px 0; }
.partner-nav-section { padding: 0 12px; margin-bottom: 2px; }
.partner-nav-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border-radius: 10px;
	color: rgba(255,255,255,.72);
	font-size: .875rem;
	font-weight: 500;
	cursor: pointer;
	transition: background .15s, color .15s;
	border: none;
	background: transparent;
	width: 100%;
	text-align: left;
}
.partner-nav-link i { font-size: 1rem; min-width: 18px; }
.partner-nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.partner-nav-link.active { background: rgba(255,255,255,.15); color: #fff; font-weight: 600; }
.partner-nav-badge {
	margin-left: auto;
	background: rgba(255,255,255,.18);
	color: #fff;
	font-size: .68rem;
	font-weight: 700;
	padding: 1px 7px;
	border-radius: 10px;
	min-width: 22px;
	text-align: center;
}

.partner-sidebar-divider { height: 1px; background: rgba(255,255,255,.1); margin: 8px 16px; }

.partner-sidebar-footer { padding: 14px 12px; }
.partner-sidebar-logout {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border-radius: 10px;
	color: rgba(255,255,255,.6);
	font-size: .875rem;
	cursor: pointer;
	transition: background .15s, color .15s;
	border: none;
	background: transparent;
	width: 100%;
	text-align: left;
}
.partner-sidebar-logout:hover { background: rgba(220,53,69,.2); color: #ff6b7a; }

/*  Main content  */
.partner-main { flex: 1; min-width: 0; display: flex; flex-direction: column; margin-left: 64px; }

/*  Sidebar collapsed — hide labels, center icons  */
.partner-sidebar .partner-nav-link span,
.partner-sidebar .partner-sidebar-logout span {
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	white-space: nowrap;
	transition: max-width .25s ease, opacity .15s ease;
}
.partner-sidebar:hover .partner-nav-link span,
.partner-sidebar:hover .partner-sidebar-logout span {
	max-width: 200px;
	opacity: 1;
}
.partner-sidebar .partner-nav-badge { display: none; }
.partner-sidebar:hover .partner-nav-badge { display: inline; }
.partner-sidebar .partner-sidebar-brand .brand-sub {
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	white-space: nowrap;
	transition: max-width .25s ease, opacity .15s ease;
}
.partner-sidebar:hover .partner-sidebar-brand .brand-sub {
	max-width: 200px;
	opacity: 1;
}
.partner-sidebar .partner-user-card { display: none; }
.partner-sidebar:hover .partner-user-card { display: block; }
.partner-sidebar .partner-nav-link,
.partner-sidebar .partner-sidebar-logout { justify-content: center; padding-left: 0; padding-right: 0; gap: 0; }
.partner-sidebar:hover .partner-nav-link,
.partner-sidebar:hover .partner-sidebar-logout { justify-content: flex-start; padding-left: 14px; padding-right: 14px; gap: 10px; }
.partner-sidebar .partner-nav-section { padding-left: 4px; padding-right: 4px; }
.partner-sidebar:hover .partner-nav-section { padding-left: 12px; padding-right: 12px; }
.partner-sidebar .partner-sidebar-brand { justify-content: center; padding-left: 0; padding-right: 0; }
.partner-sidebar:hover .partner-sidebar-brand { justify-content: flex-start; padding-left: 22px; padding-right: 22px; }
.partner-sidebar .partner-sidebar-footer { padding-left: 0; padding-right: 0; }
.partner-sidebar:hover .partner-sidebar-footer { padding-left: 12px; padding-right: 12px; }

.partner-topbar {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid #e8edf5;
	padding: 14px 28px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.partner-menu-toggle {
	display: none;
	background: transparent;
	border: none;
	color: #192946;
	font-size: 1.3rem;
	cursor: pointer;
	padding: 2px 6px;
	border-radius: 6px;
}
.partner-topbar-title { font-size: 1.1rem; font-weight: 700; color: #1d2c4d; flex: 1; }
.partner-topbar-user { font-size: .82rem; color: #8696aa; }

.partner-content { padding: 20px 22px; flex: 1; }

.partner-panel { display: none; }
.partner-panel.active { display: block; }

/*  Stat cards (Overview)  */
.partner-stat-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.partner-stat-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid #e8edf5;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.partner-stat-icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #eef2f9;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	color: #192946;
	flex-shrink: 0;
}
.partner-stat-value { font-size: 1.45rem; font-weight: 700; color: #1d2c4d; line-height: 1; }
.partner-stat-label { font-size: .72rem; color: #8696aa; margin-top: 3px; }

/*  Mobile overlay  */
.partner-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 199; }
.partner-overlay.show { display: block; }

/* ═══════════════════════════════════════════
   DASHBOARD — Cards
═══════════════════════════════════════════ */
.aff-card {
	background: #fff;
	border-radius: 16px;
	border: 1px solid #e8edf5;
	box-shadow: 0 2px 12px rgba(2,49,111,0.06);
	overflow: hidden;
}
.aff-card-header {
	padding: 16px 22px;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--dark);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border-bottom: 1px solid #f0f3f8;
	background: #fafbfd;
	display: flex;
	align-items: center;
}
.aff-card-body { padding: 20px 22px; }
.aff-profile-meta { display: flex; flex-direction: column; gap: 0; }
.aff-meta-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 0;
	border-bottom: 1px solid #f0f3f8;
}
.aff-meta-row:last-child { border-bottom: none; }
.aff-meta-label {
	font-size: 0.82rem;
	color: #8696aa;
	font-weight: 500;
	flex-shrink: 0;
	display: flex;
	align-items: center;
}
.aff-meta-value {
	font-size: 0.88rem;
	color: var(--dark);
	font-weight: 500;
	text-align: right;
}
.aff-highlight {
	color: var(--primary);
	text-decoration: none;
	font-weight: 600;
}
.aff-highlight:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════
   DASHBOARD — Tab content header
═══════════════════════════════════════════ */
.partner-tab-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}
.partner-tab-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--dark);
	margin: 0 0 2px;
}
.partner-tab-sub {
	font-size: 0.82rem;
	color: #8696aa;
	margin: 0;
}

/* ═══════════════════════════════════════════
   DASHBOARD — Empty state
═══════════════════════════════════════════ */
.partner-empty-state {
	text-align: center;
	padding: 60px 20px;
	background: #fafbfd;
	border-radius: 16px;
	border: 1.5px dashed #d8e2ee;
}
.partner-empty-state > i {
	font-size: 3rem;
	color: #c5d0e0;
	display: block;
	margin-bottom: 14px;
}
.partner-empty-state > p {
	color: #8696aa;
	font-size: 0.9rem;
	margin-bottom: 20px;
}

/* ═══════════════════════════════════════════
   DASHBOARD — Car cards grid
═══════════════════════════════════════════ */
.partner-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.partner-car-card {
	background: #fff;
	border-radius: 16px;
	border: 1px solid #e8edf5;
	box-shadow: 0 2px 12px rgba(2,49,111,0.06);
	overflow: hidden;
	position: relative;
	transition: box-shadow 0.2s, transform 0.2s;
}
.partner-car-card:hover {
	box-shadow: 0 6px 24px rgba(2,49,111,0.12);
	transform: translateY(-2px);
}
.partner-car-thumb {
	width: 100%;
	height: 140px;
	background: linear-gradient(135deg, #eef2f8 0%, #dde6f4 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.partner-car-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.partner-car-thumb > i {
	font-size: 3rem;
	color: #b0c2d8;
}
.partner-car-body { padding: 14px 16px 12px; }
.partner-car-name {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--dark);
	margin-bottom: 6px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.partner-car-meta {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 0.78rem;
	color: #8696aa;
	margin-bottom: 8px;
}
.partner-car-meta span { display: flex; align-items: center; gap: 4px; }
.partner-validity-row {
	font-size: 0.76rem;
	color: #8696aa;
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 8px;
}

/* Doc status badges */
.partner-doc-status {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.partner-doc-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.72rem;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: 6px;
	background: #f0f2f5;
	color: #adb5bd;
}
.partner-doc-badge.ok {
	background: #d1fae5;
	color: #065f46;
}
.partner-doc-badge.missing {
	background: #fee2e2;
	color: #991b1b;
}

/* Card action buttons */
.partner-card-actions {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	gap: 5px;
	opacity: 0;
	transition: opacity 0.2s;
}
.partner-car-card:hover .partner-card-actions { opacity: 1; }
.partner-action-btn {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8rem;
	transition: all 0.2s;
}
.partner-action-btn.edit { background: #fff; color: var(--primary); box-shadow: 0 1px 4px rgba(0,0,0,0.12); }
.partner-action-btn.edit:hover { background: var(--primary); color: #fff; }
.partner-action-btn.delete { background: #fff; color: #dc3545; box-shadow: 0 1px 4px rgba(0,0,0,0.12); }
.partner-action-btn.delete:hover { background: #dc3545; color: #fff; }
.partner-action-btn.finish { background: #fff; color: #198754; box-shadow: 0 1px 4px rgba(0,0,0,0.12); }
.partner-action-btn.finish:hover { background: #198754; color: #fff; }
.partner-action-btn.cancel { background: #fff; color: #dc3545; box-shadow: 0 1px 4px rgba(0,0,0,0.12); }
.partner-action-btn.cancel:hover { background: #dc3545; color: #fff; }

/* ═══════════════════════════════════════════
   DASHBOARD — Driver list
═══════════════════════════════════════════ */
.partner-driver-list { display: flex; flex-direction: column; gap: 10px; }
.partner-driver-item {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #fff;
	border-radius: 14px;
	border: 1px solid #e8edf5;
	padding: 14px 16px;
	box-shadow: 0 1px 6px rgba(2,49,111,0.05);
	position: relative;
	transition: box-shadow 0.2s;
}
.partner-driver-item:hover {
	box-shadow: 0 4px 16px rgba(2,49,111,0.1);
}
.partner-driver-item:hover .partner-card-actions { opacity: 1; }
.partner-driver-avatar {
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: linear-gradient(135deg, #eef2f8 0%, #dde6f4 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	color: #b0c2d8;
	flex-shrink: 0;
	overflow: hidden;
}
.partner-driver-avatar img { width: 100%; height: 100%; object-fit: cover; }
.partner-driver-info { flex: 1; min-width: 0; }
.partner-driver-name {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--dark);
	margin-bottom: 4px;
}
.partner-driver-meta {
	font-size: 0.78rem;
	color: #8696aa;
	margin-bottom: 6px;
}

/* ═══════════════════════════════════════════
   DASHBOARD — Profile form inputs
═══════════════════════════════════════════ */
.aff-form-input-plain {
	width: 100%;
	padding: 7px 11px;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.875rem;
	color: var(--dark);
	background: #f8fafc;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.aff-form-input-plain:focus {
	border-color: var(--primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(2,49,111,0.08);
}
.aff-form-input-plain.field-error,
.partner-file-wrap.field-error {
	border-color: #dc3545 !important;
}
.aff-pm-save-btn { padding: 7px 18px; }

/* ═══════════════════════════════════════════
   DASHBOARD — Modals
═══════════════════════════════════════════ */
.partner-modal { border-radius: 18px; border: none; overflow: hidden; }
.partner-modal-header {
	background: #fafbfd;
	border-bottom: 1px solid #f0f3f8;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.partner-modal-header .modal-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--dark);
}
.partner-modal-close {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
	background: #fff;
	color: #6c757d;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	transition: all 0.2s;
}
.partner-modal-close:hover { background: #fee2e2; color: #dc3545; border-color: #fca5a5; }
.partner-modal .modal-body { padding: 24px; }
/*  Car modal wizard  */
.car-wizard-header { display:flex; align-items:center; gap:0; padding: 0 0 20px; }
.car-wizard-step-item { display:flex; flex-direction:column; align-items:center; gap:4px; }
.car-wizard-circle { width:30px; height:30px; border-radius:50%; border:2px solid #c5d0e0; background:#fff; display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:700; color:#8696aa; transition:all .2s; }
.car-wizard-circle.active { background:#192946; border-color:#192946; color:#fff; }
.car-wizard-circle.done { background:#198754; border-color:#198754; color:#fff; }
.car-wizard-label { font-size:.68rem; color:#8696aa; font-weight:500; white-space:nowrap; }
.car-wizard-label.active { color:#192946; font-weight:600; }
.car-wizard-connector { flex:1; height:2px; background:#e2e8f0; margin-bottom:14px; min-width:40px; }
.partner-modal-footer {
	background: #fafbfd;
	border-top: 1px solid #f0f3f8;
	padding: 16px 24px;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}
.partner-cancel-btn {
	padding: 8px 18px;
	border-radius: 8px;
	border: 1.5px solid #e2e8f0;
	background: #fff;
	color: #6c757d;
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
}
.partner-cancel-btn:hover { background: #f8f9fa; border-color: #c8d0db; color: var(--dark); }

/* ═══════════════════════════════════════════
   Services Tab
═══════════════════════════════════════════ */
#service-type-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.partner-svc-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: #fff;
	cursor: grab;
	transition: box-shadow 0.15s, border-color 0.15s;
	user-select: none;
}
.partner-svc-item:active { cursor: grabbing; }
.partner-svc-item.drag-over { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(2,49,111,0.12); }
.partner-svc-handle {
	color: #adb5bd;
	font-size: 1rem;
	flex-shrink: 0;
}
.partner-svc-cb {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	accent-color: var(--primary);
	cursor: pointer;
}
.partner-svc-label {
	flex: 1;
	font-size: 0.9rem;
	color: var(--dark);
	cursor: pointer;
	margin: 0;
}
.partner-svc-priority {
	font-size: 0.75rem;
	color: #adb5bd;
	font-weight: 600;
	min-width: 28px;
	text-align: right;
}
.partner-area-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.partner-area-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: #fff;
}
.partner-area-cb {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	accent-color: var(--primary);
	cursor: pointer;
}

/* ═══════════════════════════════════════════
   Operating Areas — country/city config
═══════════════════════════════════════════ */
.oa-countries-list {
	display: flex;
	flex-direction: column;
}
.oa-country-row {
	border-bottom: 1px solid var(--border);
}
.oa-country-row:last-child {
	border-bottom: none;
}
.oa-country-header {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
}
.oa-country-header input[type="checkbox"] {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	accent-color: var(--primary);
	cursor: pointer;
}
.oa-city-panel {
	padding: 0 0 14px 26px;
}
.oa-mode-radios {
	display: flex;
	gap: 20px;
	margin-bottom: 10px;
}
.oa-radio-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85rem;
	color: var(--dark);
	cursor: pointer;
}
.oa-radio-label input[type="radio"] {
	accent-color: var(--primary);
	cursor: pointer;
}
.oa-tags-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-height: 10px;
	margin-bottom: 8px;
}
.oa-city-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #eef2f9;
	color: var(--dark);
	font-size: 0.82rem;
	padding: 4px 10px;
	border-radius: 20px;
	border: 1px solid #c5d0e0;
}
.oa-city-tag span {
	cursor: pointer;
	color: #8696aa;
	font-size: 1rem;
	line-height: 1;
}
.oa-city-tag span:hover {
	color: #dc3545;
}
.oa-tag-input-row {
	display: flex;
	gap: 8px;
}
.oa-tag-input-row .aff-form-input-plain {
	flex: 1;
}
.oa-hu-cities .partner-area-list {
	max-height: 200px;
	overflow-y: auto;
}

/* ═══════════════════════════════════════════
   Operating Areas — autocomplete & cached chips
═══════════════════════════════════════════ */
.oa-city-input-wrap {
	position: relative;
	width: 100%;
}
.oa-city-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--border);
	border-top: none;
	border-radius: 0 0 8px 8px;
	z-index: 500;
	max-height: 220px;
	overflow-y: auto;
	box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.oa-city-suggestion-item {
	padding: 8px 12px;
	font-size: .875rem;
	cursor: pointer;
	transition: background .15s;
}
.oa-city-suggestion-item:hover {
	background: var(--light);
}
.oa-cached-chips {
	margin-bottom: 8px;
}
.oa-cached-chip {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 20px;
	border: 1px solid var(--border);
	background: #f1f3f5;
	font-size: .8rem;
	cursor: pointer;
	margin: 2px 3px 2px 0;
	transition: background .15s, border-color .15s, color .15s;
}
.oa-cached-chip:hover {
	border-color: var(--primary);
	color: var(--primary);
}
.oa-cached-chip.active {
	display: none;
}

/* ═══════════════════════════════════════════
   Responsive
═══════════════════════════════════════════ */
@media (max-width: 991px) {
	.aff-auth-hero { min-height: auto; padding: 50px 36px; }
	.aff-auth-card { padding: 40px 36px; }
	.partner-card-grid { grid-template-columns: repeat(2, 1fr); }
	.partner-sidebar { position: fixed; left: -260px; top: 0; height: 100vh; width: 260px; overflow-y: auto; z-index: 200; transition: left .25s ease; box-shadow: none; }
	.partner-sidebar:hover { width: 260px; box-shadow: none; }
	.partner-sidebar.open { left: 0; }
	.partner-sidebar .partner-nav-link span,
	.partner-sidebar .partner-sidebar-logout span,
	.partner-sidebar .partner-sidebar-brand .brand-sub { max-width: 200px; opacity: 1; }
	.partner-sidebar .partner-nav-badge { display: inline; }
	.partner-sidebar .partner-user-card { display: block; }
	.partner-sidebar .partner-nav-link,
	.partner-sidebar .partner-sidebar-logout { justify-content: flex-start; padding-left: 14px; padding-right: 14px; gap: 10px; }
	.partner-sidebar:hover .partner-nav-link,
	.partner-sidebar:hover .partner-sidebar-logout { padding-left: 14px; padding-right: 14px; gap: 10px; }
	.partner-sidebar .partner-nav-section { padding-left: 12px; padding-right: 12px; }
	.partner-sidebar:hover .partner-nav-section { padding-left: 12px; padding-right: 12px; }
	.partner-sidebar .partner-sidebar-brand { justify-content: flex-start; padding-left: 22px; padding-right: 22px; }
	.partner-sidebar:hover .partner-sidebar-brand { padding-left: 22px; padding-right: 22px; }
	.partner-sidebar .partner-sidebar-footer { padding-left: 12px; padding-right: 12px; }
	.partner-sidebar:hover .partner-sidebar-footer { padding-left: 12px; padding-right: 12px; }
	.partner-main { margin-left: 0; }
	.partner-menu-toggle { display: flex; }
	.partner-content { padding: 20px 16px; }
	.partner-topbar { padding: 12px 16px; }
	.partner-stat-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
	.aff-auth-wrap { border-radius: 14px; }
	.aff-auth-hero { padding: 40px 24px; }
	.aff-auth-hero-title { font-size: 1.4rem; }
	.aff-auth-card { padding: 32px 24px; }
	.partner-card-grid { grid-template-columns: 1fr; }
	.partner-stat-cards { grid-template-columns: 1fr 1fr; gap: 10px; }
	.partner-stat-card { padding: 14px; }
	.partner-card-actions { opacity: 1; }
}

/* ═══════════════════════════════════════════
   Car card — type label below name
═══════════════════════════════════════════ */
.partner-car-type {
	font-size: 0.78rem;
	color: #8696aa;
	margin-bottom: 6px;
}

/* ═══════════════════════════════════════════
   Expiry status — stat cards & rows
═══════════════════════════════════════════ */
.partner-stat-card.stat-expired { border: 1.5px solid #fca5a5; background: #fff5f5; }
.partner-stat-card.stat-warning { border: 1.5px solid #fde68a; background: #fffdf0; }
.partner-stat-card.stat-expired .partner-stat-value { color: #dc2626; }
.partner-stat-card.stat-warning .partner-stat-value { color: #d97706; }

.aff-meta-row.expiry-expired { background: #fff5f5; border-radius: 8px; padding: 4px 8px; margin: 0 -8px; }
.aff-meta-row.expiry-warning { background: #fffdf0; border-radius: 8px; padding: 4px 8px; margin: 0 -8px; }

.partner-validity-row.expiry-expired { color: #dc2626; }
.partner-validity-row.expiry-warning { color: #d97706; }

.expiry-badge {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 2px 7px;
	border-radius: 5px;
	vertical-align: middle;
}
.expiry-badge.expired { background: #fee2e2; color: #991b1b; }
.expiry-badge.warning { background: #fef3c7; color: #92400e; }

/* Car status: Inactive (in review) */
.partner-car-card.car-status-inactive {
	border-color: #d0d7e2;
	box-shadow: none;
	opacity: 0.75;
}
.partner-car-card.car-status-inactive:hover {
	box-shadow: none;
	transform: none;
}
.partner-car-card.car-status-inactive .partner-car-thumb {
	filter: grayscale(1);
}
.car-review-banner {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 10px;
	padding: 6px 10px;
	border-radius: 8px;
	background: #f0f2f5;
	color: #6b7a90;
	font-size: 0.76rem;
	font-weight: 600;
}

/* Car status: Rejected */
.partner-car-card.car-status-rejected {
	border-color: #f5c2c7;
}
.car-rejected-banner {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 10px;
	padding: 7px 10px;
	border-radius: 8px;
	background: #fff0f0;
	color: #b91c1c;
	font-size: 0.76rem;
	font-weight: 500;
	line-height: 1.4;
}
.car-rejected-banner i {
	margin-top: 1px;
	flex-shrink: 0;
}
.partner-card-actions.always-visible {
	opacity: 1;
}

/* ═══════════════════════════════════════════
   Password hint
═══════════════════════════════════════════ */
.partner-pwd-hint {
	font-size: 0.78rem;
	color: #8696aa;
	margin-top: 5px;
}

/* ═══════════════════════════════════════════
   Pricing read-only summary (locked mode)
═══════════════════════════════════════════ */
.pricing-readonly-summary {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.pricing-summary-section { display: flex; flex-direction: column; }
.pricing-summary-title {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #8696aa;
	margin-bottom: 8px;
	padding-bottom: 4px;
	border-bottom: 1px solid #e8edf5;
}
.pricing-summary-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 6px 16px;
}
.pricing-summary-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.85rem;
	padding: 5px 10px;
	background: #f8fafc;
	border-radius: 8px;
}
.pricing-summary-label { color: #6c757d; }
.pricing-summary-value { font-weight: 600; color: var(--dark); }

/*  Onboarding Wizard  */
.aff-onboarding-wrap { max-width: 700px; margin: 0 auto; }
.aff-wizard-progress {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	margin-bottom: 32px;
}
.aff-wizard-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.aff-wizard-dot {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #e8edf3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #6c7a8d;
	font-weight: 700;
	font-size: 0.9rem;
	transition: background 0.2s, color 0.2s;
}
.aff-wizard-step.active .aff-wizard-dot {
	background: var(--primary);
	color: #fff;
}
.aff-wizard-step.done .aff-wizard-dot {
	background: #198754;
	color: #fff;
	font-size: 1rem;
}
.aff-wizard-label {
	font-size: 0.72rem;
	color: #4e6080;
	font-weight: 600;
	white-space: nowrap;
}
.aff-wizard-step.active .aff-wizard-label { color: var(--primary); }
.aff-wizard-step.done .aff-wizard-label { color: #198754; }
.aff-wizard-line {
	flex: 1;
	height: 2px;
	background: #e8edf3;
	margin: 17px 6px 0;
	transition: background 0.2s;
	min-width: 20px;
}
.aff-wizard-line.done { background: #198754; }
.aff-wizard-panel { display: none; }
.aff-wizard-panel.active { display: block; }
.aff-section-title {
	font-weight: 700;
	color: var(--primary);
	border-bottom: 2px solid #e8edf3;
	padding-bottom: 8px;
	margin-bottom: 0;
}
.aff-wizard-nav {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 28px;
}
.aff-wizard-back-btn {
	background: transparent;
	border: 1.5px solid var(--primary);
	color: var(--primary);
	padding: 10px 22px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.9rem;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}
.aff-wizard-back-btn:hover {
	background: var(--primary);
	color: #fff;
}
.aff-input-invalid {
	border-color: #dc3545 !important;
	box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.12) !important;
}

/*  Under Review  */
.aff-review-wrap { max-width: 500px; margin: 0 auto; }
.aff-review-icon { font-size: 3.5rem; color: var(--primary); display: block; }

/*  Onboarding logout link  */
.aff-logout-btn {
	font-size: 0.8rem;
	color: #4e6080;
	text-decoration: none;
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 4px;
	transition: color 0.15s;
}
.aff-logout-btn:hover { color: var(--primary); }

/* ═══════════════════════════════════════════
   REDESIGN OVERRIDES
   All selectors below cascade over existing rules.
═══════════════════════════════════════════ */

/*  Sidebar — refined  */
.partner-sidebar-brand {
	padding: 24px 22px 16px;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.partner-sidebar-brand .brand-sub {
	font-size: 0.68rem;
	color: rgba(255,255,255,.38);
	text-transform: uppercase;
	letter-spacing: 1.4px;
	margin-top: 3px;
}
.partner-user-card {
	padding: 16px 22px 18px;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.partner-user-avatar {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: rgba(255,255,255,.11);
	border: 1px solid rgba(255,255,255,.15);
	margin-bottom: 10px;
}
.partner-user-name {
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .1px;
}
.partner-user-company {
	font-size: .72rem;
	color: rgba(255,255,255,.42);
	margin-top: 2px;
}
.partner-nav-section { padding: 8px 10px 4px; }
.partner-nav-link {
	position: relative;
	padding: 10px 12px 10px 14px;
	border-radius: 8px;
	color: rgba(255,255,255,.58);
	font-size: .845rem;
	margin-bottom: 1px;
	transition: background var(--transition-fast), color var(--transition-fast);
}
.partner-nav-link:hover {
	background: rgba(255,255,255,.08);
	color: rgba(255,255,255,.9);
}
.partner-nav-link.active {
	background: rgba(59,130,246,.18);
	color: #fff;
	font-weight: 600;
}
.partner-nav-link.active::before {
	content: '';
	position: absolute;
	left: 0;
	top: 6px;
	bottom: 6px;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--sidebar-accent);
}
.partner-nav-link i {
	font-size: .95rem;
	min-width: 18px;
	opacity: .75;
	transition: opacity var(--transition-fast);
}
.partner-nav-link.active i,
.partner-nav-link:hover i { opacity: 1; }
.partner-nav-badge {
	background: rgba(255,255,255,.12);
	font-size: .65rem;
	padding: 2px 7px;
	border-radius: 20px;
}
.partner-sidebar-logout {
	padding: 10px 12px;
	border-radius: 8px;
	font-size: .845rem;
	color: rgba(255,255,255,.48);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.partner-sidebar-logout:hover {
	background: rgba(220,53,69,.18);
	color: #fc8181;
}

/*  Topbar — refined  */
.partner-topbar {
	margin-top: 0;
	height: 62px;
	padding: 0 28px;
	border-bottom: 1px solid var(--border-soft);
	box-shadow: 0 1px 0 var(--border-soft), 0 2px 8px rgba(25,41,70,.04);
}
.partner-topbar-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--text-primary);
	letter-spacing: -.1px;
}
.partner-topbar-right {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 12px;
}
.partner-topbar-user-pill {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 5px 13px 5px 6px;
	border-radius: 30px;
	border: 1px solid var(--border-soft);
	background: var(--surface-2);
	cursor: default;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.partner-topbar-user-pill:hover {
	border-color: var(--border-mid);
	box-shadow: var(--shadow-xs);
}
.partner-topbar-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .72rem;
	color: #fff;
	font-weight: 800;
	flex-shrink: 0;
	letter-spacing: 0;
}
.partner-topbar-username {
	font-size: .82rem;
	font-weight: 600;
	color: var(--text-primary);
	max-width: 130px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
}
.partner-topbar-role {
	font-size: .7rem;
	color: var(--text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 130px;
	line-height: 1.2;
}

/*  Stat cards — color-coded + hover lift  */
.partner-stat-card {
	border-radius: 12px;
	border: 1px solid var(--border-soft);
	padding: 14px 16px;
	box-shadow: var(--shadow-xs);
	transition: transform var(--transition-base), box-shadow var(--transition-base);
	position: relative;
	overflow: hidden;
}
.partner-stat-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-md);
}
.partner-stat-card::after {
	content: '';
	position: absolute;
	top: -28px;
	right: -28px;
	width: 86px;
	height: 86px;
	border-radius: 50%;
	opacity: .06;
	background: currentColor;
	pointer-events: none;
}
.partner-stat-cards .partner-stat-card:nth-child(1) {
	background: var(--stat-blue-bg);
	border-color: #c7d9f8;
}
.partner-stat-cards .partner-stat-card:nth-child(1) .partner-stat-icon {
	background: var(--stat-blue-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(59,111,212,.32);
}
.partner-stat-cards .partner-stat-card:nth-child(1) .partner-stat-value { color: var(--stat-blue-icon); }
.partner-stat-cards .partner-stat-card:nth-child(2) {
	background: var(--stat-teal-bg);
	border-color: #b0ecda;
}
.partner-stat-cards .partner-stat-card:nth-child(2) .partner-stat-icon {
	background: var(--stat-teal-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(14,164,112,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(2) .partner-stat-value { color: var(--stat-teal-icon); }
.partner-stat-cards .partner-stat-card:nth-child(3) {
	background: var(--stat-amber-bg);
	border-color: #fde8a8;
}
.partner-stat-cards .partner-stat-card:nth-child(3) .partner-stat-icon {
	background: var(--stat-amber-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(217,119,6,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(3) .partner-stat-value { color: var(--stat-amber-icon); }
.partner-stat-cards .partner-stat-card:nth-child(4) {
	background: var(--stat-indigo-bg);
	border-color: #d0c7f8;
}
.partner-stat-cards .partner-stat-card:nth-child(4) .partner-stat-icon {
	background: var(--stat-indigo-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(108,77,230,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(4) .partner-stat-value { color: var(--stat-indigo-icon); }
/* Expiry overrides — must win over nth-child color-coding */
.partner-stat-card.stat-expired {
	background: #fff5f5 !important;
	border-color: #fca5a5 !important;
}
.partner-stat-card.stat-expired .partner-stat-icon {
	background: #dc2626 !important;
	box-shadow: 0 4px 12px rgba(220,38,38,.28) !important;
	color: #fff !important;
}
.partner-stat-card.stat-expired .partner-stat-value { color: #dc2626 !important; }
.partner-stat-card.stat-warning {
	background: #fffdf0 !important;
	border-color: #fde68a !important;
}
.partner-stat-card.stat-warning .partner-stat-icon {
	background: #d97706 !important;
	box-shadow: 0 4px 12px rgba(217,119,6,.28) !important;
	color: #fff !important;
}
.partner-stat-card.stat-warning .partner-stat-value { color: #d97706 !important; }
.partner-stat-icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	font-size: 1rem;
	flex-shrink: 0;
	transition: transform var(--transition-base);
}
.partner-stat-card:hover .partner-stat-icon { transform: scale(1.06); }
.partner-stat-value {
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.3px;
}
.partner-stat-label {
	font-size: .7rem;
	color: var(--text-secondary);
	margin-top: 4px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .5px;
}

/*  aff-card — polished with left accent  */
.aff-card {
	border-radius: 10px;
	border: 1px solid var(--border-soft);
	box-shadow: var(--shadow-sm), inset 2px 0 0 var(--primary);
	transition: box-shadow var(--transition-base);
}
.aff-card:hover {
	box-shadow: var(--shadow-md), inset 2px 0 0 var(--primary);
}
.aff-card-header {
	padding: 11px 16px;
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--text-primary);
	text-transform: none;
	letter-spacing: 0;
	border-bottom: 1px solid var(--border-soft);
	background: var(--surface-2);
}
.aff-card-header i { color: var(--primary); opacity: .7; }
.aff-card-body { padding: 16px 18px; }
.aff-meta-row {
	padding: 8px 0;
	border-bottom: 1px solid var(--border-soft);
	transition: background var(--transition-fast), padding var(--transition-fast);
}
.aff-meta-row:hover {
	background: var(--surface-2);
	border-radius: 6px;
	padding: 8px 6px;
	margin: 0 -6px;
}
.aff-meta-label {
	font-size: .81rem;
	color: var(--text-muted);
	font-weight: 500;
}
.aff-meta-value {
	font-size: .875rem;
	color: var(--text-primary);
	font-weight: 600;
}

/*  Buttons — consistent + hover lift  */
.aff-submit-btn {
	padding: 6px 14px;
	border-radius: 7px;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .1px;
	transition: background var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);
}
.aff-submit-btn:hover {
	background: var(--primary-hover);
	box-shadow: 0 4px 14px rgba(25,41,70,.3);
	transform: translateY(-1px);
	color: #fff;
}
.aff-submit-btn:active { transform: translateY(0); box-shadow: none; }
.partner-cancel-btn {
	padding: 10px 20px;
	border-radius: 8px;
	font-size: .875rem;
	font-weight: 500;
	transition: background var(--transition-base), border-color var(--transition-fast);
}
.partner-cancel-btn:hover {
	background: var(--surface-3);
	border-color: var(--border-mid);
}

/*  Reservations table card wrap  */
.partner-reservations-table-wrap {
	border-radius: 14px;
	border: 1px solid var(--border-soft);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}
.partner-panel .table {
	font-size: .875rem;
	margin: 0;
}
.partner-panel .table thead th {
	font-size: .71rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .6px;
	color: var(--text-muted);
	background: var(--surface-2);
	border-bottom: 1px solid var(--border-soft);
	padding: 13px 16px;
	white-space: nowrap;
}
.partner-panel .table tbody td {
	padding: 13px 16px;
	border-bottom: 1px solid var(--border-soft);
	color: var(--text-primary);
	vertical-align: middle;
}
.partner-panel .table tbody tr:last-child td { border-bottom: none; }
.partner-panel .table-hover tbody tr {
	transition: background var(--transition-fast);
}
.partner-panel .table-hover tbody tr:hover td {
	background: var(--primary-light);
}

/*  Vehicle cards — stronger hover, image zoom  */
.partner-car-card {
	border-radius: 14px;
	border: 1px solid var(--border-soft);
	box-shadow: var(--shadow-xs);
	transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}
.partner-car-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
	border-color: var(--border-mid);
}
.partner-car-thumb {
	height: 150px;
	background: linear-gradient(135deg, var(--surface-3) 0%, #dde6f4 100%);
	overflow: hidden;
}
.partner-car-thumb img {
	transition: transform var(--transition-slow);
}
.partner-car-card:hover .partner-car-thumb img { transform: scale(1.04); }
.partner-car-thumb > i {
	font-size: 3.2rem;
	color: #c5d4e8;
}
.partner-car-body { padding: 15px 16px 14px; }
.partner-car-name {
	font-size: .95rem;
	font-weight: 700;
	color: var(--text-primary);
	margin-bottom: 3px;
}
.partner-car-type {
	font-size: .72rem;
	color: var(--text-muted);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .4px;
	margin-bottom: 8px;
}
.partner-car-meta {
	font-size: .78rem;
	color: var(--text-secondary);
	margin-bottom: 8px;
}
.partner-card-actions {
	opacity: 0;
	transition: opacity var(--transition-fast);
}
.partner-car-card:hover .partner-card-actions,
.partner-driver-item:hover .partner-card-actions { opacity: 1; }
.partner-action-btn {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	font-size: .82rem;
	transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
.partner-action-btn:hover { transform: scale(1.1); }

/*  Driver list — horizontal slide hover  */
.partner-driver-item {
	border-radius: 12px;
	border: 1px solid var(--border-soft);
	padding: 14px 16px;
	box-shadow: var(--shadow-xs);
	transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}
.partner-driver-item:hover {
	transform: translateX(4px);
	box-shadow: var(--shadow-md);
	border-color: var(--border-mid);
}
.partner-driver-avatar {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--primary-light) 0%, #d0ddf8 100%);
	color: var(--primary);
	font-size: 1.3rem;
	border: 2px solid var(--border-soft);
}
.partner-driver-name {
	font-size: .92rem;
	font-weight: 700;
	color: var(--text-primary);
}
.partner-driver-meta {
	font-size: .77rem;
	color: var(--text-muted);
}

/*  Empty states — premium  */
.partner-empty-state {
	padding: 72px 32px;
	background: var(--surface-2);
	border-radius: 16px;
	border: 1.5px dashed var(--border-mid);
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: border-color var(--transition-base);
}
.partner-empty-state:hover { border-color: var(--primary); }
.partner-empty-state > i {
	font-size: 2.4rem;
	color: var(--text-muted);
	background: var(--surface-3);
	width: 80px;
	height: 80px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--border-soft);
	margin-bottom: 18px;
}
.partner-empty-state > p {
	font-size: .95rem;
	font-weight: 600;
	color: var(--text-secondary);
	margin-bottom: 20px;
}

/*  Services tab — refined items  */
.partner-svc-item {
	padding: 12px 14px;
	border: 1px solid var(--border-soft);
	border-radius: 10px;
	background: #fff;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
.partner-svc-item:hover {
	border-color: var(--border-mid);
	box-shadow: var(--shadow-xs);
	background: var(--surface-2);
}
.partner-svc-item.drag-over {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(25,41,70,.09);
	background: var(--primary-light);
}
.partner-svc-label {
	font-size: .875rem;
	font-weight: 500;
	color: var(--text-primary);
}

/*  Tab header  */
.partner-tab-header { margin-bottom: 24px; }
.partner-tab-title {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--text-primary);
	letter-spacing: -.2px;
}
.partner-tab-sub {
	font-size: .81rem;
	color: var(--text-muted);
	margin-top: 2px;
}

/*  Form labels — remove uppercase inside dashboard  */
.partner-panel .aff-form-label {
	font-size: .8rem;
	font-weight: 600;
	color: var(--text-secondary);
	text-transform: none;
	letter-spacing: 0;
	margin-bottom: 6px;
}
.aff-form-input-plain {
	border: 1.5px solid var(--border-soft);
	border-radius: 7px;
	background: var(--surface-2);
	color: var(--text-primary);
	transition: border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-fast);
}
.aff-form-input-plain:focus {
	border-color: var(--primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(25,41,70,.08);
}

/*  Doc badges  */
.partner-doc-badge {
	font-size: .7rem;
	font-weight: 600;
	padding: 3px 9px;
	border-radius: 20px;
	gap: 4px;
}
.partner-doc-badge.ok { background: #dcfce7; color: #166534; }
.partner-doc-badge.missing { background: #fee2e2; color: #991b1b; }

/*  Responsive additions  */
@media (max-width: 991px) {
	.partner-topbar { height: 56px; padding: 0 16px; }
	.partner-topbar-username { max-width: 90px; }
	.partner-topbar-role { display: none; }
	.partner-stat-cards { gap: 12px; }
	.partner-stat-card { padding: 16px 14px; }
}
/* ═══════════════════════════════════════════
   LIST TOOLBAR — Search
═══════════════════════════════════════════ */
.partner-list-toolbar {
	display: flex;
	align-items: center;
	margin-bottom: 12px;
}
.partner-search-input {
	width: 100%;
	padding: 8px 14px 8px 36px;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-size: 0.875rem;
	background: var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%238696aa' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.868-3.834zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") no-repeat 12px center;
	color: var(--text-primary);
	transition: border-color 0.2s;
	outline: none;
}
.partner-search-input:focus { border-color: var(--primary); }
.partner-search-input::placeholder { color: var(--text-muted); }

/* ═══════════════════════════════════════════
   SUMMARY BAR — Chips
═══════════════════════════════════════════ */
.partner-summary-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
	align-items: center;
}
.partner-summary-chip {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
	background: #e8eef6;
	color: var(--text-primary);
}
.partner-summary-chip.danger {
	background: #fee2e2;
	color: #b91c1c;
}
.partner-summary-chip.warning {
	background: #fef9c3;
	color: #92400e;
}

/* ═══════════════════════════════════════════
   EXPIRY BANNER
═══════════════════════════════════════════ */
.partner-expiry-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fef9c3;
	border: 1px solid #fde047;
	color: #78350f;
	font-size: 0.85rem;
	font-weight: 500;
	margin-bottom: 14px;
}
.partner-expiry-banner > i { font-size: 1rem; flex-shrink: 0; }
.partner-expiry-banner > span { flex: 1; }
.partner-expiry-banner > button {
	background: none;
	border: none;
	padding: 0 2px;
	color: #78350f;
	cursor: pointer;
	font-size: 0.85rem;
	line-height: 1;
	opacity: 0.7;
}
.partner-expiry-banner > button:hover { opacity: 1; }


@media (max-width: 575px) {
	.partner-topbar-user-pill { display: none; }
	.partner-stat-value { font-size: 1.25rem; }
	.partner-empty-state { padding: 48px 20px; }
	.partner-empty-state > i { width: 64px; height: 64px; font-size: 2rem; }
}

/* ═══════════════════════════════════════════
   STAT CARDS — color rules for cards 5–7
═══════════════════════════════════════════ */
:root {
	--stat-violet-bg: #f5f3ff;
	--stat-violet-icon: #7c3aed;
	--stat-rose-bg: #fff1f2;
	--stat-rose-icon: #e11d48;
}
.partner-stat-cards .partner-stat-card:nth-child(5) {
	background: var(--stat-violet-bg);
	border-color: #d4c8fa;
}
.partner-stat-cards .partner-stat-card:nth-child(5) .partner-stat-icon {
	background: var(--stat-violet-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(124,58,237,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(5) .partner-stat-value { color: var(--stat-violet-icon); }
.partner-stat-cards .partner-stat-card:nth-child(6) {
	background: var(--stat-teal-bg);
	border-color: #b0ecda;
}
.partner-stat-cards .partner-stat-card:nth-child(6) .partner-stat-icon {
	background: var(--stat-teal-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(14,164,112,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(6) .partner-stat-value { color: var(--stat-teal-icon); }
.partner-stat-cards .partner-stat-card:nth-child(7) {
	background: var(--stat-rose-bg);
	border-color: #ffc9d0;
}
.partner-stat-cards .partner-stat-card:nth-child(7) .partner-stat-icon {
	background: var(--stat-rose-icon);
	color: #fff;
	box-shadow: 0 4px 12px rgba(225,29,72,.28);
}
.partner-stat-cards .partner-stat-card:nth-child(7) .partner-stat-value { color: var(--stat-rose-icon); }

/* ═══════════════════════════════════════════
   PAYMENT TAB — method selector & bank form
═══════════════════════════════════════════ */
.aff-method-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
	margin-bottom: 24px;
}
.aff-method-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border: 2px solid var(--border-soft);
	border-radius: 12px;
	background: var(--surface-2);
	cursor: pointer;
	transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}
.aff-method-card.active {
	border-color: var(--primary);
	background: var(--primary-light);
	box-shadow: 0 0 0 3px rgba(25,41,70,.06);
}
.aff-method-icon {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--border-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	color: var(--primary);
	flex-shrink: 0;
}
.aff-method-card.active .aff-method-icon {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
}
.aff-method-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.aff-method-info strong {
	font-size: .9rem;
	font-weight: 700;
	color: var(--text-primary);
}
.aff-method-info span {
	font-size: .78rem;
	color: var(--text-muted);
}
.aff-pm-panel { display: none; }
.aff-pm-panel.active { display: block; }
.aff-saved-info-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 18px;
	border: 1px solid var(--border-soft);
	border-radius: 12px;
	background: var(--surface-2);
	margin-bottom: 18px;
}
.aff-saved-info-left {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}
.aff-saved-info-icon {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: var(--primary-light);
	color: var(--primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.15rem;
	flex-shrink: 0;
}
.aff-saved-info-left div {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}
.aff-saved-info-left strong {
	font-size: .9rem;
	font-weight: 700;
	color: var(--text-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.aff-saved-info-left span {
	font-size: .78rem;
	color: var(--text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.aff-pm-update-bank {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 14px;
	border: 1.5px solid var(--border-mid);
	border-radius: 8px;
	background: #fff;
	color: var(--text-secondary);
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
}
.aff-pm-update-bank:hover {
	border-color: var(--primary);
	color: var(--primary);
	background: var(--primary-light);
}

/* ═══════════════════════════════════════════
   REQUESTS TAB — action buttons
═══════════════════════════════════════════ */
.partner-req-accept-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 14px;
	border-radius: 7px;
	border: none;
	background: var(--primary);
	color: #fff;
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--transition-fast), box-shadow var(--transition-fast);
	white-space: nowrap;
}
.partner-req-accept-btn:hover {
	background: var(--primary-hover);
	box-shadow: 0 3px 10px rgba(25,41,70,.25);
}
.partner-req-decline-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 14px;
	border-radius: 7px;
	border: 1.5px solid #fca5a5;
	background: #fff5f5;
	color: #dc2626;
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--transition-fast), border-color var(--transition-fast);
	white-space: nowrap;
}
.partner-req-decline-btn:hover {
	background: #fee2e2;
	border-color: #f87171;
}

/* ═══════════════════════════════════════════
   REQUESTS TAB — mobile cards
═══════════════════════════════════════════ */
.req-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid var(--border-soft);
	box-shadow: var(--shadow-xs);
	margin-bottom: 12px;
	overflow: hidden;
	transition: box-shadow var(--transition-base);
}
.req-card:hover { box-shadow: var(--shadow-md); }
.req-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 13px 15px 11px;
	border-bottom: 1px solid var(--border-soft);
	gap: 10px;
}
.req-card-no {
	font-size: .88rem;
	font-weight: 700;
	color: var(--text-primary);
}
.req-card-body {
	padding: 11px 15px;
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.req-card-row {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: .85rem;
	color: var(--text-primary);
}
.req-card-row > i {
	color: var(--text-muted);
	font-size: .9rem;
	margin-top: 2px;
	flex-shrink: 0;
}
.req-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 11px 15px;
	border-top: 1px solid var(--border-soft);
	background: var(--surface-2);
	gap: 10px;
}
.req-card-price {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: .85rem;
}
.req-card-actions {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}


/* ═══════════════════════════════════════════
   RESERVATIONS PAGINATION
═══════════════════════════════════════════ */
.partner-pagination-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 4px 2px;
	flex-wrap: wrap;
	gap: 8px;
}
.partner-pagination-info {
	font-size: 0.8rem;
	color: var(--text-muted);
}
.partner-pagination-controls {
	display: flex;
	align-items: center;
	gap: 4px;
}
.partner-page-btn {
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	border: 1.5px solid var(--border);
	border-radius: 6px;
	background: var(--surface-2);
	color: var(--text-primary);
	font-size: 0.82rem;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}
.partner-page-btn:hover:not(:disabled):not(.active) { background: var(--border); }
.partner-page-btn.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.partner-page-btn:disabled { opacity: 0.4; cursor: default; }
.partner-page-ellipsis { font-size: 0.82rem; color: var(--text-muted); padding: 0 2px; }

/* ═══════════════════════════════════════════
   RESERVATIONS MOBILE CARDS
═══════════════════════════════════════════ */
.res-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid #e8edf5;
	box-shadow: 0 2px 10px rgba(2,49,111,0.05);
	margin-bottom: 12px;
	overflow: hidden;
}
.res-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 14px 10px;
	border-bottom: 1px solid #f0f3f8;
}
.res-card-no {
	font-size: 0.82rem;
	color: var(--dark);
	word-break: break-all;
}
.res-card-body {
	padding: 10px 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.res-card-row {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.85rem;
	color: var(--text-primary);
}
.res-card-row > i {
	color: var(--text-muted);
	font-size: 0.9rem;
	margin-top: 2px;
	flex-shrink: 0;
}
.res-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 14px;
	border-top: 1px solid #f0f3f8;
	background: #fafbfd;
}
.res-card-price {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 0.85rem;
}
.res-card-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 6px 14px;
	border-top: 1px solid #f0f3f8;
	font-size: 0.85rem;
}

/* ═══════════════════════════════════════════
   RESERVATIONS FILTER BAR
═══════════════════════════════════════════ */
.res-filter-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin: 16px 16px;
}
.res-status-filters {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.res-filter-btn {
	padding: 5px 14px;
	border-radius: 20px;
	border: 1.5px solid var(--border);
	background: var(--surface-2);
	color: var(--text-primary);
	font-size: 0.8rem;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.res-filter-btn:hover:not(.active) { background: var(--border); }
.res-filter-btn.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.res-search-wrap {
	position: relative;
	display: flex;
	align-items: center;
}
.res-search-icon {
	position: absolute;
	left: 10px;
	color: var(--text-muted);
	font-size: 0.85rem;
	pointer-events: none;
}
.res-search-input {
	padding: 6px 12px 6px 30px;
	border: 1.5px solid var(--border);
	border-radius: 20px;
	font-size: 0.82rem;
	background: var(--surface-2);
	color: var(--text-primary);
	outline: none;
	transition: border-color 0.15s;
	width: 200px;
}
.res-search-input:focus { border-color: var(--primary); }
.res-empty-filtered {
	text-align: center;
	padding: 40px 20px;
	color: var(--text-muted);
}
.res-empty-filtered i { font-size: 2rem; display: block; margin-bottom: 8px; }
.res-empty-filtered p { font-size: 0.9rem; margin: 0; }

/* ═══════════════════════════════════════════
   PROFILE TAB UX
═══════════════════════════════════════════ */
.prof-card-subtitle {
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--text-muted);
	margin: 2px 0 0;
	padding-left: 22px;
}
.prof-input-wrap {
	position: relative;
	display: flex;
	align-items: center;
}
.prof-input-icon {
	position: absolute;
	left: 11px;
	color: var(--text-muted);
	font-size: 0.85rem;
	pointer-events: none;
	z-index: 1;
}
.prof-has-icon { padding-left: 32px; }
.prof-has-toggle { padding-right: 36px; }
.prof-pwd-toggle {
	position: absolute;
	right: 0;
	top: 0;
	height: 100%;
	width: 36px;
	border: none;
	background: transparent;
	color: var(--text-muted);
	font-size: 0.9rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s;
}
.prof-pwd-toggle:hover { color: var(--primary); }
.prof-section-sep {
	position: relative;
	text-align: center;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 20px 0 4px;
}
.prof-section-sep::before,
.prof-section-sep::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 38%;
	height: 1px;
	background: var(--border-soft);
}
.prof-section-sep::before { left: 0; }
.prof-section-sep::after { right: 0; }
.prof-strength-wrap {
	height: 4px;
	border-radius: 4px;
	background: var(--border-soft);
	margin-top: 8px;
	overflow: hidden;
}
.prof-strength-bar {
	height: 100%;
	border-radius: 4px;
	width: 0;
	transition: width 0.3s, background 0.3s;
}
.prof-strength-label {
	font-size: 0.72rem;
	font-weight: 600;
	margin-top: 4px;
	display: block;
}
.prof-form-footer {
	display: flex;
	justify-content: flex-end;
}
.aff-pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 0;
	border-top: 1px solid var(--border);
}
.aff-pager-btn {
	width: 32px;
	height: 32px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s;
}
.aff-pager-btn:hover:not(.disabled) {
	background: var(--light);
}
.aff-pager-btn.disabled {
	opacity: 0.4;
	cursor: default;
}
.aff-pager-info {
	font-size: 0.85rem;
	color: #6c757d;
	min-width: 50px;
	text-align: center;
}

/* ═══════════════════════════════════════════
   PARTNER AUTH HEADER
   Shown on login / onboarding / pending states
═══════════════════════════════════════════ */
.partner-auth-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 28px;
	background: #111c30;
	position: sticky;
	top: 0;
	z-index: 200;
	box-shadow: 0 1px 0 rgba(255,255,255,.06);
}
.partner-auth-logo img {
	height: 36px;
	width: auto;
}
.partner-auth-header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
}
.partner-auth-action {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 7px 14px;
	border-radius: 7px;
	font-size: 0.82rem;
	font-weight: 600;
	color: rgba(255,255,255,0.78);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast);
	background: transparent;
	border: none;
}
.partner-auth-action:hover {
	background: rgba(255,255,255,0.1);
	color: #fff;
}
.partner-auth-action-ghost {
	background: rgba(255,255,255,0.07);
	border: 1px solid rgba(255,255,255,0.12);
}
.partner-auth-action-ghost:hover {
	background: rgba(255,255,255,0.13);
	border-color: rgba(255,255,255,0.2);
}

/* Auth page wrapper — replace pt-100 spacing */
.affiliates-page {
	padding-top: 44px;
	padding-bottom: 80px;
}

/* ═══════════════════════════════════════════
   SIDEBAR BRAND ICON (visible when collapsed)
═══════════════════════════════════════════ */
.partner-brand-icon {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: rgba(255,255,255,0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1rem;
	flex-shrink: 0;
	border: 1px solid rgba(255,255,255,0.1);
}
/* Override brand layout for icon+text side-by-side */
.partner-sidebar-brand {
	display: flex !important;
	align-items: center !important;
	gap: 12px;
	padding: 20px 16px 16px !important;
	justify-content: center !important;
}
.partner-sidebar:hover .partner-sidebar-brand {
	justify-content: flex-start !important;
	padding-left: 22px !important;
	padding-right: 22px !important;
}
/* brand-sub inherits existing show/hide logic from collapsed sidebar rules */

/* ═══════════════════════════════════════════
   SIDEBAR — Website link
═══════════════════════════════════════════ */
.partner-sidebar-website {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 8px;
	color: rgba(255,255,255,0.45);
	font-size: .845rem;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast);
	border: none;
	background: transparent;
	width: 100%;
	text-align: left;
	text-decoration: none;
	margin-bottom: 4px;
}
.partner-sidebar-website i { font-size: .95rem; min-width: 18px; }
.partner-sidebar-website:hover {
	background: rgba(255,255,255,0.08);
	color: rgba(255,255,255,0.82);
}
/* Collapsed: icon-only; Expanded: icon + label */
.partner-sidebar .partner-sidebar-website span {
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	white-space: nowrap;
	transition: max-width .25s ease, opacity .15s ease;
}
.partner-sidebar:hover .partner-sidebar-website span {
	max-width: 200px;
	opacity: 1;
}
.partner-sidebar .partner-sidebar-website { justify-content: center; padding-left: 0; padding-right: 0; gap: 0; }
.partner-sidebar:hover .partner-sidebar-website { justify-content: flex-start; padding-left: 12px; padding-right: 12px; gap: 10px; }
@media (max-width: 991px) {
	.partner-sidebar .partner-sidebar-website { justify-content: flex-start; padding-left: 14px; padding-right: 14px; gap: 10px; }
	.partner-sidebar .partner-sidebar-website span { max-width: 200px; opacity: 1; }
	.partner-auth-header { padding: 12px 16px; }
}
