/* ========================================================================== */
/* COMMON.CSS - Consolidated Common Styles                                   */
/* ========================================================================== */
/* این فایل شامل تمام استایل‌های مشترک است                                   */
/* شامل: variables, fonts, base, utilities, buttons, tables, badges,       */
/*       row-styles, cards, maps, popups, status-indicators, components,     */
/*       responsive                                                           */
/* ========================================================================== */

/* ===================== CSS Variables ===================== */
:root {
    /* Color System */
    /* Status Colors - Requests */
    --status-new: #3b82f6;
    --status-new-bg: #dbeafe;
    --status-initial-negotiation: #f59e0b;
    --status-initial-negotiation-bg: #fef3c7;
    --status-visit: #8b5cf6;
    --status-visit-bg: #ede9fe;
    --status-final-negotiation: #06b6d4;
    --status-final-negotiation-bg: #cffafe;
    --status-contract: #10b981;
    --status-contract-bg: #d1fae5;
    --status-successful-close: #059669;
    --status-successful-close-bg: #d1fae5;
    --status-unsuccessful-close: #dc2626;
    --status-unsuccessful-close-bg: #fee2e2;
    
    /* Status Colors - Visits */
    --status-scheduled: #f59e0b;
    --status-scheduled-bg: #fef3c7;
    --status-completed: #10b981;
    --status-completed-bg: #d1fae5;
    --status-cancelled: #ef4444;
    --status-cancelled-bg: #fee2e2;
    --status-postponed: #3b82f6;
    --status-postponed-bg: #dbeafe;
    
    /* Status Colors - Contracts */
    --status-contract-draft: #9ca3af;
    --status-contract-draft-bg: #f3f4f6;
    --status-contract-pending_signature: #f59e0b;
    --status-contract-pending_signature-bg: #fef3c7;
    --status-contract-active: #10b981;
    --status-contract-active-bg: #d1fae5;
    --status-contract-completed: #2563eb;
    --status-contract-completed-bg: #dbeafe;
    --status-contract-cancelled: #dc2626;
    --status-contract-cancelled-bg: #fee2e2;
    --status-contract-terminated: #b91c1c;
    --status-contract-terminated-bg: #fee2e2;
    
    /* Property Deal Type Colors */
    --deal-type-sale: #2563eb;
    --deal-type-rent: #dc2626;
    --deal-type-mortgage: #dc2626;
    
    /* Property Status Colors */
    --property-active: #166534;
    --property-active-bg: #dcfce7;
    --property-sold: #991b1b;
    --property-sold-bg: #fee2e2;
    --property-rented: #1e40af;
    --property-rented-bg: #dbeafe;
    --property-inactive: #374151;
    --property-inactive-bg: #f3f4f6;
    
    /* Button Colors */
    --btn-primary: #3b82f6;
    --btn-primary-hover: #2563eb;
    --btn-success: #10b981;
    --btn-success-hover: #059669;
    --btn-warning: #f59e0b;
    --btn-warning-hover: #d97706;
    --btn-danger: #ef4444;
    --btn-danger-hover: #dc2626;
    --btn-secondary: #6b7280;
    --btn-secondary-hover: #4b5563;
    --btn-info: #8b5cf6;
    --btn-info-hover: #7c3aed;
    
    /* Price Colors */
    --price-sale: #059669;
    --price-rent: #2563eb;
    --price-deposit: #9333ea;
    
    /* Gradients */
    --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --gradient-gold: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
    --gradient-blue: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);
    --gradient-blue-dark: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 50%, #3730a3 100%);
    --gradient-blue-semi: linear-gradient(135deg, rgba(30, 58, 138, 0.95) 0%, rgba(29, 78, 216, 0.95) 100%);
    --gradient-light: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #cbd5e1 100%);
    
    /* Spacing System */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 0.75rem;
    --spacing-lg: 1rem;
    --spacing-xl: 1.5rem;
    --spacing-2xl: 2rem;
    --spacing-3xl: 3rem;
    
    /* Transitions */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;
    --transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Border Radius */
    --radius-sm: 0.25rem;
    --radius-md: 0.375rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-full: 9999px;
    
    /* Shadows */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
    --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    
    /* Z-Index Scale */
    --z-base: 1;
    --z-elevated: 2;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-fixed: 300;
    --z-modal-backdrop: 1000;
    --z-modal: 1001;
    --z-popover: 1002;
    --z-tooltip: 1003;
    
    /* Breakpoints */
    --breakpoint-xs: 480px;
    --breakpoint-sm: 640px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
    
    /* Typography */
    --font-family-primary: 'Vazir', 'Tahoma', sans-serif;
    --font-size-xs: 0.46875rem;
    --font-size-sm: 0.546875rem;
    --font-size-base: 0.625rem;
    --font-size-lg: 0.703125rem;
    --font-size-xl: 0.78125rem;
    --font-size-2xl: 0.9375rem;
    /* Additional font sizes for specific use cases */
    --font-size-icon-xs: 0.390625rem;
    --font-size-10px: 0.625rem; /* same as base */
    --font-size-11px: 0.6875rem;
    --font-size-12px: 0.75rem;
    --font-size-13px: 0.8125rem;
    --font-size-14px: 0.875rem;
    --font-size-15px: 0.9375rem;
    --font-size-17px: 1.0625rem;
    --font-size-18px: 1.125rem;
    --font-size-32px: 2rem;
    --font-size-empty-icon: 1.875rem;
    
    /* Common Colors */
    --color-text-primary: #111827;
    --color-text-secondary: #6b7280;
    --color-text-muted: #9ca3af;
    --color-bg-white: #ffffff;
    --color-bg-gray-50: #f9fafb;
    --color-bg-gray-100: #f3f4f6;
    --color-border: #e5e7eb;
    
    /* Component Specific */
    --overlay-background: rgba(0, 0, 0, 0.5);
    --popup-min-width: 200px;
    --popup-max-width: 280px;
    --badge-padding: 0.25rem 0.5rem;
    --badge-padding-lg: 0.25rem 0.75rem;
    --badge-radius: 9999px;
}

/* ===================== Base Font Size ===================== */
html {
    font-size: 0.725rem; /* Base font size - all rem units will be relative to this */
}

/* ===================== Fonts ===================== */
@font-face {
    font-family: 'Vazir';
    src: url('../fonts/vazir-font/Vazir.eot');
    src: url('../fonts/vazir-font/Vazir.eot?#iefix') format('embedded-opentype'),
         url('../fonts/vazir-font/Vazir.woff2') format('woff2'),
         url('../fonts/vazir-font/Vazir.woff') format('woff'),
         url('../fonts/vazir-font/Vazir.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Vazir';
    src: url('../fonts/vazir-font/Vazir-Thin.eot');
    src: url('../fonts/vazir-font/Vazir-Thin.eot?#iefix') format('embedded-opentype'),
         url('../fonts/vazir-font/Vazir-Thin.woff2') format('woff2'),
         url('../fonts/vazir-font/Vazir-Thin.woff') format('woff'),
         url('../fonts/vazir-font/Vazir-Thin.ttf') format('truetype');
    font-weight: 100;
    font-style: normal;
}
@font-face {
    font-family: 'Vazir';
    src: url('../fonts/vazir-font/Vazir-Light.eot');
    src: url('../fonts/vazir-font/Vazir-Light.eot?#iefix') format('embedded-opentype'),
         url('../fonts/vazir-font/Vazir-Light.woff2') format('woff2'),
         url('../fonts/vazir-font/Vazir-Light.woff') format('woff'),
         url('../fonts/vazir-font/Vazir-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: 'Vazir';
    src: url('../fonts/vazir-font/Vazir-Medium.eot');
    src: url('../fonts/vazir-font/Vazir-Medium.eot?#iefix') format('embedded-opentype'),
         url('../fonts/vazir-font/Vazir-Medium.woff2') format('woff2'),
         url('../fonts/vazir-font/Vazir-Medium.woff') format('woff'),
         url('../fonts/vazir-font/Vazir-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}
@font-face {
    font-family: 'Vazir';
    src: url('../fonts/vazir-font/Vazir-Bold.eot');
    src: url('../fonts/vazir-font/Vazir-Bold.eot?#iefix') format('embedded-opentype'),
         url('../fonts/vazir-font/Vazir-Bold.woff2') format('woff2'),
         url('../fonts/vazir-font/Vazir-Bold.woff') format('woff'),
         url('../fonts/vazir-font/Vazir-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}
body {
    font-family: 'Vazir', 'Tahoma', sans-serif;
}
.font-persian {
    font-family: 'Vazir', 'Tahoma', sans-serif;
}

/* ===================== Base Styles ===================== */
body {
    direction: rtl;
}
.bg-gradient-blue {
    background: var(--gradient-blue-dark);
    min-height: 100vh;
}
.bg-gradient-light {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #cbd5e1 100%);
    min-height: 100vh;
}

/* ===================== Utilities ===================== */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===================== Buttons ===================== */
.action-buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.action-btn {
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-size: var(--font-size-14px);
    font-weight: 500;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
}
.action-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.btn-primary { background-color: #3b82f6; color: white; }
.btn-primary:hover { background-color: #2563eb; }
.btn-success { background-color: #10b981; color: white; }
.btn-success:hover { background-color: #059669; }
.btn-warning { background-color: #f59e0b; color: white; }
.btn-warning:hover { background-color: #d97706; }
.btn-danger { background-color: #ef4444; color: white; }
.btn-danger:hover { background-color: #dc2626; }
.btn-secondary { background-color: #6b7280; color: white; }
.btn-secondary:hover { background-color: #4b5563; }
.btn-info { background-color: #8b5cf6; color: white; }
.btn-info:hover { background-color: #7c3aed; }
.property-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.property-action {
    flex: 1;
    padding: 0.5rem;
    border-radius: 0.375rem;
    font-size: var(--font-size-sm);
    font-weight: 500;
    text-align: center;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.property-action-primary { background: #3b82f6; color: white; }
.property-action-primary:hover { background: #2563eb; color: white; }
.property-action-secondary { background: #6b7280; color: white; }
.property-action-secondary:hover { background: #4b5563; color: white; }
.property-action-danger { background: #ef4444; color: white; }
.property-action-danger:hover { background: #dc2626; color: white; }

/* ===================== Tables ===================== */
#tableView { overflow: visible; }
#tableView .overflow-x-auto { overflow-x: auto; overflow-y: visible; }
.property-row, .request-row, .agency-row, .visit-row, .customer-row, .contract-row {
    position: relative;
    cursor: pointer;
}
.property-row:hover .action-menu-trigger,
.request-row:hover .action-menu-trigger,
.agency-row:hover .action-menu-trigger,
.visit-row:hover .action-menu-trigger,
.customer-row:hover .action-menu-trigger,
.contract-row:hover .action-menu-trigger {
    opacity: 1;
}
@media (max-width: 640px) {
    .overflow-x-auto { -webkit-overflow-scrolling: touch; padding-right: 0; }
    .min-w-full { border-collapse: separate; border-spacing: 0; }
    .min-w-full td { border-right: none; }
}

/* ===================== Badges ===================== */
.status-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: var(--font-size-13px);
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
}
.status-new { background-color: #dbeafe; color: #1e40af; font-weight: 600; }
.status-initial_negotiation { background-color: #fef3c7; color: #92400e; font-weight: 600; }
.status-visit { background-color: #ede9fe; color: #6d28d9; font-weight: 600; }
.status-final_negotiation { background-color: #cffafe; color: #0e7490; font-weight: 600; }
.status-contract { background-color: #d1fae5; color: #065f46; font-weight: 600; }
.status-successful_close { background-color: #d1fae5; color: #065f46; font-weight: 600; }
.status-unsuccessful_close { background-color: #fee2e2; color: #991b1b; font-weight: 600; }
.status-scheduled { background-color: #fef3c7; color: #92400e; }
.status-completed { background-color: #d1fae5; color: #065f46; }
.status-cancelled { background-color: #fee2e2; color: #991b1b; }
.status-postponed { background-color: #dbeafe; color: #1e40af; }
.visit-type-badge {
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--font-size-13px);
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
}
.visit-type-scheduled { background-color: #e0e7ff; color: #3730a3; }
.visit-type-immediate { background-color: #fef3c7; color: #92400e; }
.visit-type-follow_up { background-color: #f3e8ff; color: #7c3aed; }
.satisfaction-badge {
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--font-size-13px);
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
}
.satisfaction-very_satisfied { background-color: #d1fae5; color: #065f46; }
.satisfaction-satisfied { background-color: #d1fae5; color: #065f46; }
.satisfaction-neutral { background-color: #fef3c7; color: #92400e; }
.satisfaction-dissatisfied { background-color: #fee2e2; color: #991b1b; }
.satisfaction-very_dissatisfied { background-color: #fee2e2; color: #991b1b; }
.property-status {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--font-size-13px);
    font-weight: 500;
}
.property-status-active { background: #dcfce7; color: #166534; }
.property-status-sold { background: #fee2e2; color: #991b1b; }
.property-status-rented { background: #dbeafe; color: #1e40af; }
.property-status-inactive { background: #f3f4f6; color: #374151; }
.property-featured {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--font-size-xs);
    font-weight: 500;
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 10;
}
.amenity-tag {
    display: inline-block;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    font-size: var(--font-size-xs);
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    margin: 0.125rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ===================== Row Styles ===================== */
.property-row-sale { border-right: 8px solid #2563eb !important; position: relative; z-index: 1; }
.property-row-rent { border-right: 8px solid #dc2626 !important; position: relative; z-index: 1; }
.property-row-mortgage { border-right: 8px solid #dc2626 !important; position: relative; z-index: 1; }
.property-row-rent_mortgage { border-right: 8px solid #dc2626 !important; position: relative; z-index: 1; }
.property-row-sold { border-right: 8px solid #000000 !important; position: relative; z-index: 1; }
.property-row-rented { border-right: 8px solid #000000 !important; position: relative; z-index: 1; }
.property-row-sale:hover, .property-row-rent:hover, .property-row-mortgage:hover, .property-row-rent_mortgage:hover, .property-row-sold:hover, .property-row-rented:hover { z-index: 2; }
.property-card-sale { border-bottom: 4px solid #2563eb !important; }
.property-card-rent { border-bottom: 4px solid #dc2626 !important; }
.property-card-mortgage { border-bottom: 4px solid #dc2626 !important; }
.property-card-rent_mortgage { border-bottom: 4px solid #dc2626 !important; }
.property-card-sold { border-bottom: 4px solid #000000 !important; }
.property-card-rented { border-bottom: 4px solid #000000 !important; }
.deal-type-sale { color: #2563eb !important; font-weight: 600; }
.deal-type-rent { color: #dc2626 !important; font-weight: 600; }
.deal-type-mortgage { color: #dc2626 !important; font-weight: 600; }
.deal-type-rent_mortgage { color: #dc2626 !important; font-weight: 600; }
@media (max-width: 640px) {
    .property-row-sale, .property-row-rent, .property-row-mortgage, .property-row-rent_mortgage, .property-row-sold, .property-row-rented { border-right-width: 10px !important; }
    .property-row-sale { border-right: 10px solid #2563eb !important; }
    .property-row-rent { border-right: 10px solid #dc2626 !important; }
    .property-row-mortgage { border-right: 10px solid #dc2626 !important; }
    .property-row-rent_mortgage { border-right: 10px solid #dc2626 !important; }
    .property-row-sold { border-right: 10px solid #000000 !important; }
    .property-row-rented { border-right: 10px solid #000000 !important; }
    .min-w-full { border-collapse: separate !important; border-spacing: 0 !important; }
    .min-w-full td { border-right: none !important; }
    .overflow-x-auto { padding-right: 0 !important; }
}

/* ===================== Cards ===================== */
.preview-card { transition: all 0.3s ease; }
.preview-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
.preview-section { border-left: 3px solid #e5e7eb; padding-left: 0.75rem; margin-bottom: 0.75rem; }
.preview-section:last-child { margin-bottom: 0; }
.card, .property-card { transition: all 0.3s ease; border-radius: 0.5rem; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); }
.card:hover, .property-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); }
.property-image { width: 100%; height: 200px; object-fit: cover; transition: transform 0.3s ease; }
.property-card:hover .property-image { transform: scale(1.05); }
.property-info { padding: 1rem; }
.property-title { font-size: var(--font-size-lg); font-weight: 600; color: #1f2937; margin-bottom: 0.5rem; line-height: 1.4; }
.property-description { color: #6b7280; font-size: var(--font-size-sm); line-height: 1.5; margin-bottom: 0.75rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.property-details { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.property-detail { display: flex; align-items: center; font-size: var(--font-size-xs); color: #6b7280; background: #f9fafb; padding: 0.25rem 0.5rem; border-radius: 0.25rem; }
.property-detail i { margin-left: 0.25rem; font-size: var(--font-size-icon-xs); }
.property-price { font-size: var(--font-size-lg); font-weight: 700; color: #059669; margin-bottom: 0.5rem; }
.property-price-sale { color: #059669; }
.property-price-rent { color: #2563eb; }
.property-price-deposit { color: #9333ea; }
.property-list-item { display: flex; background: white; border-radius: 0.5rem; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; }
.property-list-item:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); }
.property-list-image { width: 200px; height: 150px; object-fit: cover; flex-shrink: 0; }
.property-list-content { flex: 1; padding: 1rem; display: flex; flex-direction: column; justify-content: space-between; }
.properties-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.properties-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }
@media (max-width: 768px) {
    .properties-grid { grid-template-columns: 1fr; gap: 1rem; }
    .property-list-item { flex-direction: column; }
    .property-list-image { width: 100%; height: 200px; }
}

/* ===================== Maps ===================== */
#searchMap, #locationMap, .property-map, #requestMap { position: relative; z-index: 1; }
.map-container { height: 300px; border-radius: 8px; overflow: hidden; }
.property-map-container { min-height: 256px; }
.preview-image-overlay { background: linear-gradient(45deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); }
#searchMap .leaflet-draw-toolbar, #locationMap .leaflet-draw-toolbar { margin-top: 0; }
#searchMap .leaflet-draw-actions, #locationMap .leaflet-draw-actions { left: 26px; top: 0; }
.leaflet-popup-content-wrapper { border-radius: 8px; }
.custom-div-icon { background: transparent; border: none; }
.property-map-popup { min-width: var(--popup-min-width); max-width: var(--popup-max-width); direction: rtl; text-align: right; font-family: 'Vazir', sans-serif; }
.property-map-popup h3 { font-size: var(--font-size-17px); font-weight: bold; margin-bottom: 8px; color: #1e40af; display: flex; align-items: center; }
.property-map-popup h3 i { font-size: var(--font-size-14px); color: #4b5563; }
.property-map-popup p { margin: 8px 0; font-size: var(--font-size-13px); color: #4b5563; display: flex; align-items: flex-start; }
.property-map-popup p i { flex-shrink: 0; margin-left: 4px; margin-top: 2px; }
.property-map-popup p strong { flex-shrink: 0; white-space: nowrap; margin-left: 4px; }
.property-map-popup .price, .property-map-popup .price-sale { color: #059669; font-weight: bold; margin-top: 8px; }
.property-map-popup .price-rent { color: #2563eb; font-weight: bold; margin-top: 8px; }
.property-map-popup .price-deposit { color: #9333ea; font-weight: bold; margin-top: 8px; }
.property-map-popup a { color: white !important; display: block; text-align: center; }
@media (max-width: 640px) {
    #searchMap, #locationMap { height: 350px; }
    .property-map-container { height: 256px; }
    .leaflet-control-container .leaflet-top { top: 5px; }
    .leaflet-control-container .leaflet-left { left: 5px; }
    .leaflet-popup-content { margin: 18px 12px 12px 12px; }
    .property-map-popup { min-width: 180px; max-width: 240px; }
    .property-map-popup h3 { font-size: var(--font-size-15px); margin-bottom: 6px; }
    .property-map-popup h3 i { font-size: var(--font-size-12px); }
    .property-map-popup p { margin: 6px 0; font-size: var(--font-size-12px); }
}

/* ===================== Popups ===================== */
.leaflet-popup-content { margin: 18px 12px 12px 12px; }
.property-popup, .agency-popup, .request-popup { min-width: var(--popup-min-width); max-width: var(--popup-max-width); direction: rtl; text-align: right; font-family: 'Vazir', sans-serif; }
.property-popup h3, .agency-popup h3, .request-popup h3 { font-size: var(--font-size-17px); font-weight: bold; margin-bottom: 8px; color: #1e40af; display: flex; align-items: center; }
.property-popup h3 i, .agency-popup h3 i, .request-popup h3 i { font-size: var(--font-size-14px); color: #4b5563; }
.property-popup p, .agency-popup p, .request-popup p { margin: 8px 0; font-size: var(--font-size-13px); color: #4b5563; display: flex; align-items: flex-start; }
.property-popup p i, .agency-popup p i, .request-popup p i { flex-shrink: 0; margin-left: 4px; margin-top: 2px; }
.property-popup p strong, .agency-popup p strong, .request-popup p strong { flex-shrink: 0; white-space: nowrap; margin-left: 4px; }
.property-popup a, .agency-popup a, .request-popup a { color: white !important; display: block; text-align: center; }
.property-popup .price, .property-popup .price-sale { color: #059669; font-weight: bold; margin-top: 8px; }
.property-popup .price-rent { color: #2563eb; font-weight: bold; margin-top: 8px; }
.property-popup .price-deposit { color: #9333ea; font-weight: bold; margin-top: 8px; }
.request-popup .budget { color: #059669; font-weight: bold; margin-top: 8px; }
@media (max-width: 640px) {
    .popup-common, .property-popup, .agency-popup, .request-popup { min-width: 180px; max-width: 240px; }
    .popup-common h3, .property-popup h3, .agency-popup h3, .request-popup h3 { font-size: var(--font-size-15px); margin-bottom: 6px; }
    .popup-common h3 i, .property-popup h3 i, .agency-popup h3 i, .request-popup h3 i { font-size: var(--font-size-12px); }
    .popup-common p, .property-popup p, .agency-popup p, .request-popup p { margin: 6px 0; font-size: var(--font-size-11px); line-height: 1.5; }
    .popup-common p i, .property-popup p i, .agency-popup p i, .request-popup p i { font-size: var(--font-size-10px); margin-left: 3px !important; }
    .popup-common p strong, .property-popup p strong, .agency-popup p strong, .request-popup p strong { font-size: var(--font-size-11px); }
    .popup-common p.flex, .property-popup p.flex, .agency-popup p.flex, .request-popup p.flex { gap: 8px !important; }
    .popup-common a, .property-popup a, .agency-popup a, .request-popup a { margin-top: 8px !important; padding: 6px 8px !important; font-size: var(--font-size-11px) !important; }
    .popup-common a i, .property-popup a i, .agency-popup a i, .request-popup a i { font-size: var(--font-size-10px); margin-left: 3px !important; }
}

/* ===================== Status Indicators ===================== */
.status-step { min-width: 120px; position: relative; z-index: var(--z-base); transition: all var(--transition-normal); }
.status-step:hover { z-index: var(--z-elevated); }
.status-step:active { transform: scale(0.95); }
.status-step-mobile { min-height: 44px; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.2; }
@media (max-width: 768px) { .status-step { min-width: 80px; padding: 8px 12px; font-size: var(--font-size-12px); } }

/* Base row and card styles - مشترک برای همه ردیف‌ها و کارت‌ها */
[class*="-row-"], [class*="-card-"] {
    position: relative;
    z-index: var(--z-base);
}
[class*="-row-"]:hover, [class*="-card-"]:hover {
    z-index: var(--z-elevated);
}

/* Visit Row Styles - ساده شده */
.visit-row-scheduled { border-right: 8px solid var(--status-scheduled) !important; }
.visit-row-completed { border-right: 8px solid var(--status-completed) !important; }
.visit-row-cancelled { border-right: 8px solid var(--status-cancelled) !important; }
.visit-row-postponed { border-right: 8px solid var(--status-postponed) !important; }

/* Visit Card Styles - با wrapper برای نمایش border */
.visit-card-scheduled { padding-bottom: 4px; }
.visit-card-scheduled > div { border-bottom: 4px solid var(--status-scheduled) !important; }
.visit-card-completed { padding-bottom: 4px; }
.visit-card-completed > div { border-bottom: 4px solid var(--status-completed) !important; }
.visit-card-cancelled { padding-bottom: 4px; }
.visit-card-cancelled > div { border-bottom: 4px solid var(--status-cancelled) !important; }
.visit-card-postponed { padding-bottom: 4px; }
.visit-card-postponed > div { border-bottom: 4px solid var(--status-postponed) !important; }

/* Contract Row Styles */
.contract-row-draft { border-right: 8px solid var(--status-contract-draft) !important; }
.contract-row-pending_signature { border-right: 8px solid var(--status-contract-pending_signature) !important; }
.contract-row-active { border-right: 8px solid var(--status-contract-active) !important; }
.contract-row-completed { border-right: 8px solid var(--status-contract-completed) !important; }
.contract-row-cancelled { border-right: 8px solid var(--status-contract-cancelled) !important; }
.contract-row-terminated { border-right: 8px solid var(--status-contract-terminated) !important; }

/* Request Row Styles - ساده شده */
.request-row-new { border-right: 8px solid var(--status-new) !important; }
.request-row-initial_negotiation { border-right: 8px solid var(--status-initial-negotiation) !important; }
.request-row-visit { border-right: 8px solid var(--status-visit) !important; }
.request-row-final_negotiation { border-right: 8px solid var(--status-final-negotiation) !important; }
.request-row-contract { border-right: 8px solid var(--status-contract) !important; }
.request-row-successful_close { border-right: 8px solid var(--status-successful-close) !important; }
.request-row-unsuccessful_close { border-right: 8px solid var(--status-unsuccessful-close) !important; }

/* Request Card Styles - با wrapper برای نمایش border */
.request-card-new { padding-bottom: 4px; }
.request-card-new > div { border-bottom: 4px solid var(--status-new) !important; }
.request-card-initial_negotiation { padding-bottom: 4px; }
.request-card-initial_negotiation > div { border-bottom: 4px solid var(--status-initial-negotiation) !important; }
.request-card-visit { padding-bottom: 4px; }
.request-card-visit > div { border-bottom: 4px solid var(--status-visit) !important; }
.request-card-final_negotiation { padding-bottom: 4px; }
.request-card-final_negotiation > div { border-bottom: 4px solid var(--status-final-negotiation) !important; }
.request-card-contract { padding-bottom: 4px; }
.request-card-contract > div { border-bottom: 4px solid var(--status-contract) !important; }
.request-card-successful_close { padding-bottom: 4px; }
.request-card-successful_close > div { border-bottom: 4px solid var(--status-successful-close) !important; }
.request-card-unsuccessful_close { padding-bottom: 4px; }
.request-card-unsuccessful_close > div { border-bottom: 4px solid var(--status-unsuccessful-close) !important; }

/* Mobile adjustments */
@media (max-width: 640px) {
    [class*="-row-"] { border-right-width: 10px !important; }
    .visit-row-scheduled { border-right: 10px solid var(--status-scheduled) !important; }
    .visit-row-completed { border-right: 10px solid var(--status-completed) !important; }
    .visit-row-cancelled { border-right: 10px solid var(--status-cancelled) !important; }
    .visit-row-postponed { border-right: 10px solid var(--status-postponed) !important; }
    .contract-row-draft { border-right: 10px solid var(--status-contract-draft) !important; }
    .contract-row-pending_signature { border-right: 10px solid var(--status-contract-pending_signature) !important; }
    .contract-row-active { border-right: 10px solid var(--status-contract-active) !important; }
    .contract-row-completed { border-right: 10px solid var(--status-contract-completed) !important; }
    .contract-row-cancelled { border-right: 10px solid var(--status-contract-cancelled) !important; }
    .contract-row-terminated { border-right: 10px solid var(--status-contract-terminated) !important; }
    /* برای request-row که از inline style استفاده می‌کند، فقط border-right-width را تغییر می‌دهیم */
    .request-row[data-status-color] { border-right-width: 10px !important; }
    /* کلاس‌های قدیمی برای سازگاری */
    .request-row-new { border-right: 10px solid var(--status-new) !important; }
    .request-row-initial_negotiation { border-right: 10px solid var(--status-initial-negotiation) !important; }
    .request-row-visit { border-right: 10px solid var(--status-visit) !important; }
    .request-row-final_negotiation { border-right: 10px solid var(--status-final-negotiation) !important; }
    .request-row-contract { border-right: 10px solid var(--status-contract) !important; }
    .request-row-successful_close { border-right: 10px solid var(--status-successful-close) !important; }
    .request-row-unsuccessful_close { border-right: 10px solid var(--status-unsuccessful-close) !important; }
}

/* ===================== Base Classes ===================== */
/* Base Overlay - برای استفاده در تمام overlay ها */
.overlay-base {
    position: fixed;
    inset: 0;
    background-color: var(--overlay-background);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}
.overlay-base.show {
    opacity: 1;
    visibility: visible;
}

/* Base Popup - برای استفاده در تمام popup ها */
.popup-base {
    min-width: var(--popup-min-width);
    max-width: var(--popup-max-width);
    direction: rtl;
    text-align: right;
    font-family: 'Vazir', sans-serif;
}
.popup-base h3 {
    font-size: var(--font-size-17px);
    font-weight: bold;
    margin-bottom: 8px;
    color: #1e40af;
    display: flex;
    align-items: center;
}
.popup-base h3 i {
    font-size: var(--font-size-14px);
    color: #4b5563;
}
.popup-base p {
    margin: 8px 0;
    font-size: var(--font-size-13px);
    color: #4b5563;
    display: flex;
    align-items: flex-start;
}
.popup-base p i {
    flex-shrink: 0;
    margin-left: 4px;
    margin-top: 2px;
}
.popup-base p strong {
    flex-shrink: 0;
    white-space: nowrap;
    margin-left: 4px;
}
.popup-base a {
    color: white !important;
    display: block;
    text-align: center;
}

/* Base Badge - برای استفاده در تمام badge ها */
.badge-base {
    padding: var(--badge-padding);
    border-radius: var(--badge-radius);
    font-size: var(--font-size-xs);
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
}

/* ===================== Components ===================== */
.search-panel { position: fixed; bottom: 0; left: 0; right: 0; background: white; box-shadow: 0 -4px 6px -1px rgba(0, 0, 0, 0.1), 0 -2px 4px -1px rgba(0, 0, 0, 0.06); transform: translateY(100%); transition: transform 0.3s ease-in-out; z-index: 1000; max-height: 85vh; overflow-y: auto; }
.search-panel.active { transform: translateY(0); }
.search-overlay { position: fixed; inset: 0; background: var(--overlay-background); opacity: 0; visibility: hidden; transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out; z-index: 999; }
.search-overlay.active { opacity: 1; visibility: visible; }
.action-menu-trigger { opacity: 0; transition: opacity 0.2s ease-in-out; position: relative; z-index: 10; }
.property-row:hover .action-menu-trigger, .request-row:hover .action-menu-trigger, .agency-row:hover .action-menu-trigger, .visit-row:hover .action-menu-trigger, .customer-row:hover .action-menu-trigger, .contract-row:hover .action-menu-trigger { opacity: 1; }
.action-menu { position: absolute; background: white; border: 1px solid #e5e7eb; border-radius: 8px; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 4px 10px -3px rgba(0, 0, 0, 0.05); min-width: 150px; z-index: 99999; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: all 0.2s ease-in-out; }
.action-menu.show { opacity: 1; visibility: visible; transform: translateY(0); }
.action-menu-item { display: block; width: 100%; padding: 8px 12px; text-align: right; color: #374151; text-decoration: none; font-size: var(--font-size-14px); transition: background-color 0.2s ease-in-out; border: none; background: none; cursor: pointer; }
.action-menu-item:hover { background-color: #f3f4f6; }
.action-menu-item.edit:hover { background-color: #dbeafe; color: #1d4ed8; }
.action-menu-item.delete:hover { background-color: #fee2e2; color: #dc2626; }
.action-menu-item.approve:hover { background-color: #dcfce7; color: #16a34a; }
.action-menu-item.reject:hover { background-color: #fee2e2; color: #dc2626; }
.action-menu-item i { margin-left: 8px; width: 16px; text-align: center; }
.action-menu-item-form { display: block; width: 100%; }
.action-menu-item-form form { width: 100%; }
@media (max-width: 640px) {
    .search-panel { max-height: 90vh; }
    .action-menu { min-width: 130px; z-index: 9999; }
    .action-menu-item { padding: 6px 10px; font-size: var(--font-size-13px); }
    .action-menu-item i { margin-left: 6px; width: 14px; }
}

/* ===================== Responsive ===================== */
@media (max-width: 640px) {
    .grid.grid-cols-1.sm\\:grid-cols-2.lg\\:grid-cols-3.xl\\:grid-cols-4, .grid.grid-cols-1.sm\\:grid-cols-2.lg\\:grid-cols-4, .grid.grid-cols-1.sm\\:grid-cols-2.lg\\:grid-cols-3 { grid-template-columns: 1fr; gap: 1rem; }
    .space-y-4 > * + * { margin-top: 1rem; }
    .space-y-6 > * + * { margin-top: 1.5rem; }
    .p-4 { padding: 0.75rem; }
    .p-6 { padding: 1rem; }
    .mb-4 { margin-bottom: 1rem; }
    .mb-6 { margin-bottom: 1.5rem; }
}
@media (max-width: 768px) {
    .flex.items-center.bg-gray-100 { flex-wrap: wrap; justify-content: center; }
    .grid.grid-cols-1.lg\\:grid-cols-10 { grid-template-columns: 1fr; }
    .lg\\:col-span-7, .lg\\:col-span-3 { grid-column: span 1; }
    .grid.grid-cols-1.md\\:grid-cols-2.xl\\:grid-cols-3 { grid-template-columns: 1fr; }
    .bg-gray-50.rounded-lg { margin-bottom: 1rem; }
    .text-xl { font-size: var(--font-size-lg); }
    .text-lg { font-size: var(--font-size-base); }
    .grid.grid-cols-2.md\\:grid-cols-4 { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
    .grid.grid-cols-1.md\\:grid-cols-3 { grid-template-columns: 1fr; gap: 0.75rem; }
}
@media (min-width: 769px) and (max-width: 1024px) {
    .grid.grid-cols-1.md\\:grid-cols-2.xl\\:grid-cols-3 { grid-template-columns: repeat(2, 1fr); }
    .grid.grid-cols-1.lg\\:grid-cols-10 { grid-template-columns: 1fr; }
    .lg\\:col-span-7, .lg\\:col-span-3 { grid-column: span 1; }
}

/* ===================== Agency Registration Styles ===================== */
/* Base fallback; full design lives in agency-registration.css */
.agency-registration-body {
    min-height: 100vh;
}

/* ===================== Agencies Specific Styles ===================== */
/* Note: Merged from agencies.css */
/* Agency Detail Popup Styles - extends .popup-base */
.agency-detail-popup {
    min-width: var(--popup-min-width);
    max-width: var(--popup-max-width);
    direction: rtl;
    text-align: right;
    font-family: 'Vazir', sans-serif;
}
.agency-detail-popup h3 {
    font-size: var(--font-size-17px);
    font-weight: bold;
    margin-bottom: 8px;
    color: #1e40af;
    display: flex;
    align-items: center;
}
.agency-detail-popup h3 i {
    font-size: var(--font-size-14px);
    color: #4b5563;
}
.agency-detail-popup p {
    margin: 8px 0;
    font-size: var(--font-size-13px);
    color: #4b5563;
    display: flex;
    align-items: flex-start;
}
.agency-detail-popup p i {
    flex-shrink: 0;
    margin-left: 4px;
    margin-top: 2px;
}
.agency-detail-popup p strong {
    flex-shrink: 0;
    white-space: nowrap;
    margin-left: 4px;
}
.agency-detail-popup .flex {
    display: flex;
    align-items: center;
}
.agency-detail-popup .gap-3 {
    gap: 12px;
}
.agency-detail-popup span i {
    margin-left: 4px;
}
.agency-detail-popup strong {
    font-weight: 600;
}
.agency-detail-popup .ml-1 {
    margin-left: 0.25rem;
}
.agency-detail-popup .text-blue-600 {
    color: #2563eb;
}
.agency-detail-popup .text-green-600 {
    color: #16a34a;
}
@media (max-width: 640px) {
    .agency-detail-popup {
        min-width: 180px;
        max-width: 240px;
    }
    .agency-detail-popup h3 {
        font-size: var(--font-size-15px);
        margin-bottom: 6px;
    }
    .agency-detail-popup h3 i {
        font-size: var(--font-size-12px);
    }
    .agency-detail-popup p {
        margin: 6px 0;
        font-size: var(--font-size-11px);
        line-height: 1.5;
    }
    .agency-detail-popup p i,
    .agency-detail-popup span i {
        font-size: var(--font-size-10px);
        margin-left: 3px !important;
    }
    .agency-detail-popup p strong {
        font-size: var(--font-size-11px);
    }
    .agency-detail-popup p.flex {
        gap: 8px !important;
    }
}

/* ===================== Customer Requests Specific Styles ===================== */
/* Note: Merged from customer-requests.css */
#statusChangeModal, #propertyModal, #similarPropertiesModal, #cancellationModal {
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 9999;
}
#modalContent, #propertyModalContent, #cancellationModalContent {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 10000;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (max-width: 640px) {
    #modalContent, #propertyModalContent, #cancellationModalContent {
        margin: 1rem;
        max-width: calc(100% - 2rem);
        max-height: calc(100vh - 2rem);
        overflow-y: auto;
    }
    #statusChangeModal .p-6, #propertyModal .p-6, #cancellationModal .p-6 {
        padding: 1rem;
    }
    #statusChangeModal .space-x-3, #propertyModal .space-x-3, #cancellationModal .space-x-3 {
        flex-direction: column;
        gap: 0.75rem;
    }
    #statusChangeModal .space-x-3 button, #propertyModal .space-x-3 button, #cancellationModal .space-x-3 button {
        width: 100%;
    }
    .property-card-mobile {
        margin-bottom: 1rem;
    }
    .property-card-mobile .h-28 {
        height: 8rem;
    }
    .property-card-mobile .text-base {
        font-size: var(--font-size-sm);
    }
    .property-card-mobile .text-lg {
        font-size: var(--font-size-base);
    }
    .property-card-mobile .p-3 {
        padding: 0.75rem;
    }
}

/* ===================== Visits Specific Styles ===================== */
/* Note: Merged from visits.css */
.info-section {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border-right: 4px solid #e5e7eb;
}
.info-section h3 {
    color: #374151;
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #e5e7eb;
}
.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}
.info-item {
    display: flex;
    flex-direction: column;
}
.info-label {
    color: #6b7280;
    font-size: var(--font-size-14px);
    font-weight: 500;
    margin-bottom: 0.25rem;
}
.info-value {
    color: #111827;
    font-size: var(--font-size-15px);
    font-weight: 600;
}

/* Mobile optimizations for info sections */
@media (max-width: 640px) {
    .info-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    .info-item {
        gap: 0.25rem;
    }
    .info-label {
        font-size: var(--font-size-13px);
        margin-bottom: 0.125rem;
    }
    .info-value {
        font-size: var(--font-size-14px);
    }
    .col-span-full {
        grid-column: 1 / -1;
    }
}

/* ===================== Badge Classes ===================== */
.badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: var(--font-size-13px);
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

.badge-warning {
    background-color: #fef3c7;
    color: #92400e;
}

.badge-danger {
    background-color: #fee2e2;
    color: #991b1b;
}

.badge-success {
    background-color: #d1fae5;
    color: #065f46;
}

.badge-info {
    background-color: #dbeafe;
    color: #1e40af;
}

.badge-primary {
    background-color: #3b82f6;
    color: white;
}

.badge-secondary {
    background-color: #f3f4f6;
    color: #374151;
}

/* ===================== Announcements Styles ===================== */

/* Quill Editor Styles */
.quill-editor {
    min-height: 400px;
}

.ql-container {
    font-family: "Vazir", "Tahoma", Arial, sans-serif;
    font-size: 14px;
    direction: rtl;
}

.ql-editor {
    text-align: right;
}

/* Announcement Content Display Styles */
.announcement-content {
    line-height: 1.8;
}

.announcement-content p {
    margin-bottom: 1rem;
}

.announcement-content h1,
.announcement-content h2,
.announcement-content h3,
.announcement-content h4 {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    font-weight: bold;
}

.announcement-content ul,
.announcement-content ol {
    margin: 1rem 0;
    padding-right: 2rem;
}

.announcement-content li {
    margin-bottom: 0.5rem;
}

.announcement-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 1rem 0;
}

.announcement-content a {
    color: #2563eb;
    text-decoration: underline;
}

.announcement-content a:hover {
    color: #1e40af;
}

.announcement-content blockquote {
    border-right: 4px solid #e5e7eb;
    padding-right: 1rem;
    margin: 1rem 0;
    font-style: italic;
    color: #6b7280;
}

.announcement-content code {
    background-color: #f3f4f6;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    font-family: monospace;
    font-size: 0.9em;
}

.announcement-content pre {
    background-color: #f3f4f6;
    padding: 1rem;
    border-radius: 8px;
    overflow-x: auto;
    margin: 1rem 0;
}

.announcement-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}

.announcement-content table th,
.announcement-content table td {
    border: 1px solid #e5e7eb;
    padding: 0.5rem;
    text-align: right;
}

.announcement-content table th {
    background-color: #f9fafb;
    font-weight: bold;
}

/* ===================== Dashboard Styles ===================== */
.trend-up { color: #10b981; }
.trend-down { color: #ef4444; }
.chart-container {
    position: relative;
    height: 300px;
    margin: 10px 0;
}
/* Stats and Calendar Layout */
.stats-cards-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}
.stats-card {
    display: flex;
    flex-direction: column;
}
/* Stats cards should have natural height */
.stats-card:not(.dashboard-shortcuts) {
    align-self: start;
    height: auto;
}
/* Shortcuts card should stretch to match other cards height */
.dashboard-shortcuts {
    align-self: stretch;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.dashboard-shortcuts .grid {
    flex: 1;
    display: grid;
    min-height: 0;
}
.dashboard-shortcut-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    min-height: 0;
    text-decoration: none;
}
.dashboard-shortcut-btn:hover {
    transform: translateY(-2px);
}
@media (max-width: 1023px) {
    .stats-cards-container {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 639px) {
    .stats-cards-container {
        grid-template-columns: 1fr;
    }
}

/* ===================== Contract Styles ===================== */
/* Contract Status Colors */
.contract-status-draft {
    background-color: #f3f4f6;
    color: #374151;
}

.contract-status-pending_signature {
    background-color: #fef3c7;
    color: #92400e;
}

.contract-status-active {
    background-color: #d1fae5;
    color: #065f46;
}

.contract-status-completed {
    background-color: #dbeafe;
    color: #1e40af;
}

.contract-status-cancelled,
.contract-status-terminated {
    background-color: #fee2e2;
    color: #991b1b;
}

/* Contract Type Colors */
.contract-type-sale {
    color: #2563eb;
}

.contract-type-rent {
    color: #dc2626;
}

.contract-type-mortgage {
    color: #9333ea;
}

.contract-type-rent_mortgage {
    color: #ea580c;
}

/* Contract Row Hover Effect */
.contract-row:hover {
    background-color: #eff6ff !important;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.15);
}

/* Contract Card Styles */
.contract-card {
    transition: all 0.3s ease;
}

.contract-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

