/* =========================================================================
   VET DESIGN SYSTEM — منصة الاستشارات البيطرية
   Unified, professional, responsive design system.
   Replaces: modern-design.css, luxury-legal-design.css, luxury-dashboard.css
   ========================================================================= */

:root{
  /* Brand palette — Saudi-inspired muted green + warm gold accent */
  --primary-color:#0f6b47;
  --primary-dark:#0a4a32;
  --primary-light:#3f9c73;
  --primary-navy:#0d2e22;
  --primary-green:#0f6b47;

  --accent-color:#c99a4a;
  --accent-dark:#a97e34;
  --accent-gold:#c99a4a;
  --accent-bronze:#8a6a2f;

  --success-color:#18a765; --success:#18a765;
  --danger-color:#e5484d;  --danger:#e5484d;
  --warning-color:#e0a72e; --warning:#e0a72e;
  --info-color:#0ea5e9;

  --white:#ffffff;
  --gray-50:#f9f8f4;
  --gray-100:#f2f0e9;
  --gray-200:#e3e0d5;
  --gray-300:#d1cdbd;
  --gray-400:#a8a290;
  --gray-500:#7c7767;
  --gray-600:#59554a;
  --gray-700:#3d3a32;
  --gray-800:#27251f;
  --gray-900:#151410;

  --font-primary:'Cairo','Segoe UI',Tahoma,sans-serif;

  --border-radius:14px;
  --border-radius-lg:18px;
  --border-radius-xl:26px;
  --radius-md:10px;
  --radius-xl:20px;
  --radius-full:999px;

  --shadow-sm:0 1px 3px rgba(15,41,45,.06), 0 1px 2px rgba(15,41,45,.08);
  --shadow-md:0 6px 20px -4px rgba(15,41,45,.12);
  --shadow-lg:0 20px 40px -12px rgba(15,41,45,.18);
  --shadow-gold:0 8px 24px -6px rgba(255,138,61,.35);

  --spacing-xs:.5rem;
  --spacing-sm:.75rem;
  --spacing-md:1rem;
  --spacing-lg:1.5rem;
  --spacing-xl:2rem;
  --spacing-2xl:3rem;
  --spacing-3xl:4.5rem;

  --text-sm:.875rem;
  --text-lg:1.125rem;
  --text-2xl:1.5rem;
  --text-3xl:1.9rem;
  --text-5xl:3rem;

  --transition-fast:.15s ease;
  --transition-normal:.28s cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-primary);
  color:var(--gray-800);
  background:var(--gray-50);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,button,input,select,textarea,.btn,.btn-luxury{
  font-family: var(--font-primary);
}
a{text-decoration:none;}
::selection{background:var(--primary-light);color:#fff;}

/* scrollbar */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:var(--gray-100);}
::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:var(--radius-full);}
::-webkit-scrollbar-thumb:hover{background:var(--gray-500);}

.animate-fade-in{animation:fadeInUp .5s ease both;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* =========================================================================
   1. PUBLIC SITE — navbar-modern / container-modern / hero / footer
   ========================================================================= */
.container-modern{
  width:100%;max-width:1240px;margin:0 auto;padding:0 var(--spacing-lg);
}
.navbar-modern{
  position:sticky;top:0;z-index:1000;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--gray-200);
  padding:.85rem 0;
}
.navbar-brand-modern{
  display:flex;align-items:center;gap:.65rem;
  font-weight:800;font-size:1.2rem;color:var(--primary-dark);
}
.navbar-brand-icon{
  width:42px;height:42px;border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--primary-color),var(--primary-light));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.15rem;
  box-shadow:var(--shadow-sm);
}
.navbar-modern .btn,
.navbar-modern a.btn{border-radius:var(--radius-full);font-weight:600;}

/* generic public buttons reuse .btn-luxury system below */

.hero-modern{
  background:
    radial-gradient(1200px 500px at 15% -10%, rgba(13,110,106,.10), transparent),
    radial-gradient(900px 500px at 110% 10%, rgba(255,138,61,.12), transparent),
    var(--white);
  padding:var(--spacing-3xl) 0;
}
.section-modern{padding:var(--spacing-3xl) 0;}
.section-modern-alt{background:var(--gray-50);}

.badge-pill-modern{
  display:inline-flex;align-items:center;gap:.4rem;
  background:rgba(13,110,106,.08);color:var(--primary-color);
  font-weight:700;font-size:.8rem;padding:.4rem .9rem;border-radius:var(--radius-full);
}

.alert-modern{
  border:1px solid var(--gray-200);border-right:4px solid var(--primary-color);
  background:var(--white);border-radius:var(--radius-md);
  padding:var(--spacing-md) var(--spacing-lg);box-shadow:var(--shadow-sm);
}
.alert-modern.alert-danger{border-right-color:var(--danger-color);}
.alert-modern.alert-success{border-right-color:var(--success-color);}
.alert-modern.alert-warning{border-right-color:var(--warning-color);}

footer.footer-modern{
  background:var(--primary-navy);color:#c9d6d8;padding:var(--spacing-2xl) 0 var(--spacing-lg);
}
footer.footer-modern a{color:#c9d6d8;}
footer.footer-modern a:hover{color:#fff;}

/* =========================================================================
   2. AUTH PAGES (login / register) — auth-luxury-*
   ========================================================================= */
.auth-luxury-container{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(600px 400px at 8% 8%, rgba(15,107,71,.07), transparent),
    radial-gradient(500px 350px at 95% 90%, rgba(201,154,74,.08), transparent),
    var(--gray-50);
  padding: 2.5rem 1.25rem;
}
.auth-luxury-card-outer{
  width:100%; max-width:1040px; min-height:620px; display:flex;
  background:#fff; border-radius:28px; box-shadow: var(--shadow-lg);
  overflow:hidden; border:1px solid var(--gray-100);
}
.auth-luxury-left{
  flex:1; display:flex; position:relative; overflow:hidden;
  background:
    radial-gradient(420px 300px at 20% 0%, rgba(255,255,255,.10), transparent),
    radial-gradient(360px 260px at 90% 100%, rgba(201,154,74,.28), transparent),
    linear-gradient(160deg,var(--primary-dark),var(--primary-color) 55%,var(--primary-light));
  color:#fff;padding:3rem 2.75rem;flex-direction:column;justify-content:center;
}
.auth-luxury-left::before{
  content:''; position:absolute; width:280px; height:280px; border-radius:50%;
  border:1px solid rgba(255,255,255,.14); top:-90px; left:-90px;
}
.auth-luxury-left::after{
  content:''; position:absolute; width:180px; height:180px; border-radius:50%;
  background: rgba(255,255,255,.05); bottom:-60px; right:-40px;
}
.auth-luxury-right{
  flex:1; display:flex; align-items:center; justify-content:center; padding:3rem 2.75rem;
  min-width:0; position:relative; z-index:1;
}
.auth-luxury-logo{display:flex;align-items:center;gap:.65rem;margin-bottom:2.25rem;position:relative;z-index:1;}
.auth-luxury-logo-icon{
  width:50px;height:50px;border-radius:14px;flex:none;
  background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:1.5rem;
}
.auth-luxury-logo-text{font-weight:800;font-size:1.15rem;color:#fff;}
.auth-luxury-title{font-size:2.05rem;font-weight:800;color:#fff;margin-bottom:.85rem;position:relative;z-index:1;}
.auth-luxury-description{color:rgba(255,255,255,.85);line-height:1.85;margin-bottom:2rem;max-width:400px;position:relative;z-index:1;}
.auth-luxury-features{display:flex;flex-direction:column;gap:1.15rem;position:relative;z-index:1;}
.auth-luxury-feature{display:flex;align-items:center;gap:.9rem;}
.auth-luxury-feature-icon{
  width:44px;height:44px;flex:none;border-radius:12px;
  background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:1.15rem;color:#fff;
}
.auth-luxury-feature-text{color:rgba(255,255,255,.94);font-weight:600;font-size:.92rem;}

.auth-luxury-form-container,.auth-luxury-form-wrapper{ width:100%; max-width:400px; }
.auth-luxury-form-header{margin-bottom:1.75rem;}
.auth-luxury-form-title{font-size:1.6rem;font-weight:800;color:var(--gray-900);margin-bottom:.4rem;}
.auth-luxury-form-subtitle{color:var(--gray-500);margin:0;font-size:.92rem;}
.auth-luxury-form-group{margin-bottom:1.1rem;}
.auth-luxury-form-footer,.auth-luxury-footer{margin-top:1.6rem;text-align:center;color:var(--gray-600);font-size:.9rem;}
.auth-luxury-form-footer a,.auth-luxury-footer a,.auth-luxury-login-link{color:var(--primary-color);font-weight:700;}
.auth-luxury-submit-btn{
  width:100%;justify-content:center;display:flex;align-items:center;gap:.5rem;
  background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff;border:none;
  padding:.85rem 1.4rem;border-radius:var(--radius-full);font-weight:700;font-family:var(--font-primary);
  cursor:pointer;transition:all var(--transition-fast); box-shadow: var(--shadow-sm);
}
.auth-luxury-submit-btn:hover{filter:brightness(1.05);transform:translateY(-1px); box-shadow: var(--shadow-md);}

.form-check-luxury{display:flex;align-items:center;gap:.5rem;}
.form-check-input-luxury{width:17px;height:17px;accent-color:var(--primary-color);}
.form-check-label-luxury{color:var(--gray-600);font-size:.88rem;}

.role-selection{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-top:.4rem;}
@media(max-width:400px){.role-selection{grid-template-columns:1fr;}}
.role-option input[type="radio"]{display:none;}
.role-label{
  display:flex;align-items:center;gap:.85rem;padding:.9rem;border:1.5px solid var(--gray-200);
  border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);
}
.role-option input[type="radio"]:checked + .role-label{
  border-color:var(--primary-color);background:rgba(15,107,71,.05);
}
.role-icon{
  width:38px;height:38px;flex:none;border-radius:var(--radius-md);background:rgba(15,107,71,.1);
  color:var(--primary-color);display:flex;align-items:center;justify-content:center;font-size:1.1rem;
}
.role-text{display:flex;flex-direction:column;}
.role-title{font-weight:700;color:var(--gray-900);font-size:.92rem;}
.role-desc{font-size:.78rem;color:var(--gray-500);}

/* ---- Responsive stacking for the auth card ---- */
@media(max-width:991.98px){
  .auth-luxury-card-outer{ flex-direction:column; min-height:auto; }
  .auth-luxury-left{ padding:2rem 1.75rem; flex:none; }
  .auth-luxury-left::before{ width:160px; height:160px; top:-60px; left:-60px; }
  .auth-luxury-left::after{ display:none; }
  .auth-luxury-description,.auth-luxury-features{ display:none; }
  .auth-luxury-logo{ margin-bottom:1rem; }
  .auth-luxury-title{ font-size:1.5rem; margin-bottom:0; }
  .auth-luxury-right{ padding:2rem 1.5rem; }
}
@media(max-width:576px){
  .auth-luxury-container{ padding:0; align-items:flex-start; }
  .auth-luxury-card-outer{ border-radius:0; box-shadow:none; border:none; min-height:100vh; }
  .auth-luxury-left{ padding:1.75rem 1.5rem; }
  .auth-luxury-right{padding:1.75rem 1.25rem;}
}

/* =========================================================================
   3. DASHBOARD SHELL — sidebar + main
   ========================================================================= */
.dashboard-luxury-layout{
  display:flex;min-height:100vh;background:var(--gray-50);
}
.dashboard-luxury-sidebar{
  width:280px;flex:none;position:sticky;top:0;height:100vh;overflow-y:auto;
  background:linear-gradient(180deg,var(--primary-navy),#0b2429);
  color:#dfe9ea;padding:var(--spacing-lg) var(--spacing-md);
  z-index:1030;transition:transform var(--transition-normal);
}
.sidebar-luxury-header{padding:0 .5rem var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:var(--spacing-md);}
.sidebar-luxury-brand{display:flex;align-items:center;gap:.65rem;margin-bottom:var(--spacing-lg);}
.sidebar-luxury-brand-icon{
  width:44px;height:44px;border-radius:var(--radius-md);flex:none;
  background:linear-gradient(135deg,var(--accent-color),var(--accent-dark));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;box-shadow:var(--shadow-gold);
}
.sidebar-luxury-brand-text{font-weight:800;color:#fff;font-size:1.05rem;line-height:1.3;}
.sidebar-luxury-user{display:flex;align-items:center;gap:.75rem;background:rgba(255,255,255,.05);border-radius:var(--radius-md);padding:.75rem;}
.sidebar-luxury-avatar{
  width:42px;height:42px;border-radius:var(--radius-full);flex:none;
  background:linear-gradient(135deg,var(--primary-light),var(--primary-color));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;text-transform:uppercase;
}
.sidebar-luxury-user-info h4{font-size:.92rem;color:#fff;margin:0;font-weight:700;}
.sidebar-luxury-user-info p{font-size:.78rem;color:#9fb4b6;margin:0;}
.sidebar-luxury-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;}
.sidebar-luxury-nav-item{margin:0;}
.sidebar-luxury-nav-link{
  display:flex;align-items:center;gap:.75rem;padding:.72rem .9rem;border-radius:var(--radius-md);
  color:#b9cdd0;font-weight:600;font-size:.92rem;transition:background var(--transition-fast),color var(--transition-fast);
}
.sidebar-luxury-nav-link i{font-size:1.05rem;width:20px;text-align:center;}
.sidebar-luxury-nav-link:hover{background:rgba(255,255,255,.07);color:#fff;}
.sidebar-luxury-nav-link.active{
  background:linear-gradient(135deg,var(--accent-color),var(--accent-dark));
  color:#fff;box-shadow:var(--shadow-gold);
}

.dashboard-luxury-main{flex:1;min-width:0;padding:var(--spacing-xl);}
.dashboard-luxury-header{
  display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);
  margin-bottom:var(--spacing-xl);flex-wrap:wrap;
}
.dashboard-luxury-header-content h1,
.dashboard-luxury-header-content h2{font-size:var(--text-2xl);font-weight:800;color:var(--gray-900);margin:0 0 .25rem;}
.dashboard-luxury-header-content p{color:var(--gray-500);margin:0;}

/* mobile sidebar toggle */
.sidebar-luxury-toggle{
  display:none;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:var(--radius-md);border:1px solid var(--gray-200);
  background:#fff;box-shadow:var(--shadow-sm);color:var(--primary-color);font-size:1.2rem;
}
.sidebar-luxury-overlay{display:none;position:fixed;inset:0;background:rgba(11,41,44,.5);z-index:1020;}

@media(max-width:991.98px){
  .dashboard-luxury-sidebar{
    position:fixed;right:0;top:0;transform:translateX(100%);box-shadow:var(--shadow-lg);
  }
  .dashboard-luxury-sidebar.is-open{transform:translateX(0);}
  .sidebar-luxury-toggle{display:inline-flex;}
  .sidebar-luxury-overlay.is-open{display:block;}
  .dashboard-luxury-main{padding:var(--spacing-md);}
}

/* =========================================================================
   4. CARDS
   ========================================================================= */
.card-luxury{
  background:var(--white);border:1px solid var(--gray-100);
  border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);
  transition:box-shadow var(--transition-normal),transform var(--transition-normal);
}
.card-luxury:hover{box-shadow:var(--shadow-md);}
.card-body-luxury{padding:var(--spacing-lg);}
.card-title-luxury{font-weight:800;color:var(--gray-900);font-size:1.05rem;margin-bottom:.25rem;}
.card-description-luxury{color:var(--gray-500);font-size:.9rem;line-height:1.7;}
.card-icon-luxury{
  width:48px;height:48px;border-radius:var(--radius-md);flex:none;
  background:rgba(13,110,106,.1);color:var(--primary-color);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
}

.case-header-luxury{border-bottom:1px solid var(--gray-100);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);}

.alert-luxury{
  border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--gray-200);
  background:var(--gray-50);color:var(--gray-700);
}
.alert-luxury.alert-warning{background:rgba(245,165,36,.1);border-color:rgba(245,165,36,.3);color:#8a5a08;}
.alert-luxury.alert-success{background:rgba(24,167,101,.1);border-color:rgba(24,167,101,.3);color:#0f7a49;}
.alert-luxury.alert-danger{background:rgba(229,72,77,.1);border-color:rgba(229,72,77,.3);color:#b23237;}
.alert-luxury.alert-info{background:rgba(14,165,233,.1);border-color:rgba(14,165,233,.3);color:#0369a1;}

.metric-luxury-container{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:var(--spacing-lg);}

.sidebar-luxury-nav-badge{
  margin-inline-start:auto;background:var(--accent-color);color:#fff;font-size:.72rem;font-weight:700;
  border-radius:var(--radius-full);padding:.1rem .55rem;line-height:1.5;
}

/* =========================================================================
   5. METRICS / GRID
   ========================================================================= */
.grid-luxury{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.grid-luxury-2{grid-template-columns:repeat(2,1fr);}
.grid-luxury-3{grid-template-columns:repeat(3,1fr);}
.grid-luxury-4{grid-template-columns:repeat(4,1fr);}
.metrics-luxury-grid{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
@media(max-width:768px){
  .metrics-luxury-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
}
@media(max-width:768px){
  .grid-luxury-2,.grid-luxury-3,.grid-luxury-4{grid-template-columns:1fr;}
  .grid-luxury[style*="grid-template-columns"]{grid-template-columns:1fr !important;}
}
@media(min-width:769px) and (max-width:1100px){
  .grid-luxury-3,.grid-luxury-4{grid-template-columns:repeat(2,1fr);}
}

.metric-luxury-card{
  background:var(--white);border:1px solid var(--gray-100);border-radius:var(--border-radius-lg);
  padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal);
}
.metric-luxury-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.metric-luxury-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;}
.metric-luxury-icon{
  width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#fff;
}
.metric-luxury-icon.icon-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));}
.metric-luxury-icon.icon-success{background:linear-gradient(135deg,#18a765,#3fc687);}
.metric-luxury-icon.icon-warning{background:linear-gradient(135deg,#e0a72e,#ffc670);}
.metric-luxury-icon.icon-danger{background:linear-gradient(135deg,#e5484d,#ff7a7e);}
.metric-luxury-icon.icon-info{background:linear-gradient(135deg,#0ea5e9,#67cff5);}
.metric-luxury-trend{font-size:.8rem;font-weight:700;padding:.25rem .6rem;border-radius:var(--radius-full);}
.metric-luxury-trend.trend-up{background:rgba(24,167,101,.12);color:var(--success-color);}
.metric-luxury-trend.trend-down{background:rgba(229,72,77,.12);color:var(--danger-color);}
.metric-luxury-body h3{font-size:1.8rem;font-weight:800;color:var(--gray-900);margin:0;}
.metric-luxury-body p{color:var(--gray-500);margin:.4rem 0 0;font-size:.9rem;}

/* =========================================================================
   6. BUTTONS
   ========================================================================= */
.btn-luxury{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-primary);font-weight:700;font-size:.92rem;
  padding:.65rem 1.4rem;border-radius:10px;border:1px solid transparent;
  cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;
}
.btn-luxury-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff;box-shadow:var(--shadow-sm);}
.btn-luxury-primary:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:var(--shadow-md);color:#fff;}
.btn-luxury-secondary{background:var(--accent-color);color:#fff;}
.btn-luxury-secondary:hover{background:var(--accent-dark);color:#fff;}
.btn-luxury-outline{background:transparent;border-color:var(--gray-300);color:var(--gray-700);}
.btn-luxury-outline:hover{border-color:var(--primary-color);color:var(--primary-color);background:rgba(13,110,106,.05);}
.btn-luxury-dark{background:var(--gray-900);color:#fff;}
.btn-luxury-dark:hover{background:var(--gray-800);color:#fff;}
.btn-luxury-danger{background:var(--danger-color);color:#fff;}
.btn-luxury-danger:hover{background:#c9383d;color:#fff;}
.btn-luxury-sm{padding:.4rem 1rem;font-size:.82rem;}
.btn-luxury-lg{padding:.85rem 2rem;font-size:1rem;}
.btn-luxury-success{background:var(--success-color);color:#fff;}
.btn-luxury-success:hover{background:#149256;color:#fff;}
.btn-luxury:disabled{opacity:.55;cursor:not-allowed;transform:none;}

.action-btn-luxury{
  width:38px;height:38px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--gray-200);background:#fff;color:var(--gray-600);transition:all var(--transition-fast);
}
.action-btn-luxury:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff;}
.action-buttons-luxury{display:flex;gap:.4rem;flex-wrap:wrap;}

/* =========================================================================
   7. TABLES
   ========================================================================= */
.table-luxury-container{
  background:var(--white);border:1px solid var(--gray-100);border-radius:var(--border-radius-lg);
  box-shadow:var(--shadow-sm);overflow:hidden;
}
.table-luxury-header{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;
  padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--gray-100);
}
.table-luxury-title{font-weight:800;color:var(--gray-900);margin:0;font-size:1.05rem;}
.table-luxury-body{overflow-x:auto;}
table.table-luxury{width:100%;margin:0;border-collapse:collapse;}
table.table-luxury th{
  background:var(--gray-50);color:var(--gray-600);font-weight:700;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.02em;padding:.85rem 1.25rem;border-bottom:1px solid var(--gray-100);white-space:nowrap;
}
table.table-luxury td{padding:.9rem 1.25rem;border-bottom:1px solid var(--gray-100);vertical-align:middle;color:var(--gray-700);}
table.table-luxury tbody tr:last-child td{border-bottom:none;}
table.table-luxury tbody tr:hover{background:var(--gray-50);}

/* =========================================================================
   8. FORMS
   ========================================================================= */
.form-luxury{width:100%;}
.form-group-luxury{margin-bottom:var(--spacing-md);}
.form-label-luxury{display:block;font-weight:700;color:var(--gray-800);font-size:.88rem;margin-bottom:.4rem;}
.form-control-luxury{
  width:100%;padding:.7rem 1rem;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);
  font-family:var(--font-primary);font-size:.94rem;color:var(--gray-800);background:#fff;
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
}
.form-control-luxury:focus{
  outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(13,110,106,.12);
}
textarea.form-control-luxury{resize:vertical;min-height:110px;}
.invalid-feedback-luxury{color:var(--danger-color);font-size:.82rem;margin-top:.3rem;display:block;}
.form-control-luxury.is-invalid{border-color:var(--danger-color);}
.form-actions-luxury{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:var(--spacing-lg);}

/* =========================================================================
   9. BADGES
   ========================================================================= */
.status-badge-luxury{
  display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;
  padding:.32rem .85rem;border-radius:var(--radius-full);white-space:nowrap;
}
.status-badge-luxury::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.status-badge-luxury.status-active,
.status-badge-luxury.status-success,
.status-badge-luxury.status-completed{background:rgba(24,167,101,.12);color:var(--success-color);}
.status-badge-luxury.status-pending,
.status-badge-luxury.status-warning{background:rgba(245,165,36,.14);color:#b5760a;}
.status-badge-luxury.status-cancelled,
.status-badge-luxury.status-danger{background:rgba(229,72,77,.12);color:var(--danger-color);}
.status-badge-luxury.status-info{background:rgba(14,165,233,.12);color:#0284c7;}

/* =========================================================================
   10. INFO SECTIONS (profile, details pages)
   ========================================================================= */
.section-title-luxury{font-weight:800;color:var(--gray-900);font-size:1.05rem;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:.5rem;}
.section-divider-luxury{border:none;border-top:1px solid var(--gray-100);margin:var(--spacing-lg) 0;}
.info-section-luxury{margin-bottom:var(--spacing-lg);}
.info-label-luxury{font-size:.8rem;color:var(--gray-500);font-weight:600;margin-bottom:.2rem;}
.info-value-luxury{font-size:.98rem;color:var(--gray-900);font-weight:700;}

/* medical file item */
.medication-item-luxury{
  background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--radius-md);
  padding:var(--spacing-md);margin-bottom:.75rem;
}

/* =========================================================================
   11. MISC / SELECT2 OVERRIDE (keep functional, restyle only)
   ========================================================================= */
.select2-container{ width:100% !important; }
.select2-container--default .select2-selection--single,
.select2-container .select2-selection--single{
  height:46px !important; border:1.5px solid var(--gray-200) !important; border-radius:var(--radius-md) !important;
  display:flex !important; align-items:center; padding:0 .9rem !important; background:#fff !important;
  font-family: var(--font-primary); box-shadow:none;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--open .select2-selection--single{
  border-color: var(--primary-color) !important; box-shadow: 0 0 0 3px rgba(15,107,71,.12) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container .select2-selection--single .select2-selection__rendered{
  line-height:44px !important; color:var(--gray-800) !important; padding:0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder{ color:var(--gray-400); }
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:44px !important; left:.7rem !important; right:auto !important;
}
.select2-dropdown{
  border:1.5px solid var(--gray-200) !important; border-radius:var(--radius-md) !important;
  font-family: var(--font-primary); overflow:hidden; box-shadow: var(--shadow-md);
}
.select2-search--dropdown .select2-search__field{
  border:1.5px solid var(--gray-200) !important; border-radius:8px !important; padding:.4rem .6rem !important;
}
.select2-results__option--highlighted[aria-selected]{ background: var(--primary-color) !important; }
.select2-container--default .select2-results__option[aria-selected=true]{ background: var(--gray-100); }

.text-danger{color:var(--danger-color) !important;}
.text-success{color:var(--success-color) !important;}
.text-muted{color:var(--gray-500) !important;}

/* =========================================================================
   12. BOOTSTRAP OVERRIDES — brand-align plain Bootstrap components used
   directly in pages that don't (yet) use the -luxury classes above.
   ========================================================================= */
:root{
  --bs-primary: var(--primary-color);
  --bs-primary-rgb: 13,110,106;
  --bs-success: var(--success-color);
  --bs-success-rgb: 24,167,101;
  --bs-danger: var(--danger-color);
  --bs-danger-rgb: 229,72,77;
  --bs-warning: var(--warning-color);
  --bs-warning-rgb: 245,165,36;
  --bs-info: var(--info-color);
  --bs-info-rgb: 14,165,233;
  --bs-secondary: var(--gray-500);
  --bs-link-color: var(--primary-color);
  --bs-link-hover-color: var(--primary-dark);
}
.btn-primary{
  background-color: var(--primary-color) !important; border-color: var(--primary-color) !important;
}
.btn-primary:hover, .btn-primary:focus{ background-color: var(--primary-dark) !important; border-color: var(--primary-dark) !important; }
.btn-outline-primary{ color: var(--primary-color) !important; border-color: var(--primary-color) !important; }
.btn-outline-primary:hover{ background-color: var(--primary-color) !important; color:#fff !important; }
.btn-success{ background-color: var(--success-color) !important; border-color: var(--success-color) !important; }
.btn-outline-success{ color: var(--success-color) !important; border-color: var(--success-color) !important; }
.btn-outline-success:hover{ background-color: var(--success-color) !important; color:#fff !important; }
.btn-danger{ background-color: var(--danger-color) !important; border-color: var(--danger-color) !important; }
.btn-outline-danger{ color: var(--danger-color) !important; border-color: var(--danger-color) !important; }
.btn-outline-danger:hover{ background-color: var(--danger-color) !important; color:#fff !important; }
.btn-warning{ background-color: var(--warning-color) !important; border-color: var(--warning-color) !important; color:#fff !important; }
.btn-outline-warning{ color: #b5760a !important; border-color: var(--warning-color) !important; }
.btn-outline-warning:hover{ background-color: var(--warning-color) !important; color:#fff !important; }
.btn-info{ background-color: var(--info-color) !important; border-color: var(--info-color) !important; color:#fff !important; }
.btn-secondary{ background-color: var(--gray-500) !important; border-color: var(--gray-500) !important; }
.btn-outline-secondary{ color: var(--gray-600) !important; border-color: var(--gray-300) !important; }
.btn-outline-secondary:hover{ background-color: var(--gray-600) !important; color:#fff !important; border-color: var(--gray-600) !important; }
.btn{ border-radius: var(--radius-md); font-weight: 600; }
.btn-sm{ border-radius: 8px; }

.text-primary{ color: var(--primary-color) !important; }
.text-success{ color: var(--success-color) !important; }
.text-danger{ color: var(--danger-color) !important; }
.text-warning{ color: var(--warning-color) !important; }
.text-info{ color: var(--info-color) !important; }
.bg-primary{ background-color: var(--primary-color) !important; }
.bg-success{ background-color: var(--success-color) !important; }
.bg-danger{ background-color: var(--danger-color) !important; }
.bg-warning{ background-color: var(--warning-color) !important; }
.bg-info{ background-color: var(--info-color) !important; }

.card{ border: 1px solid var(--gray-100) !important; border-radius: var(--border-radius-lg) !important; box-shadow: var(--shadow-sm); }
.card-header{ background: var(--gray-50) !important; border-bottom: 1px solid var(--gray-100) !important; font-weight: 700; }
.form-control, .form-select{
  border: 1.5px solid var(--gray-200); border-radius: var(--radius-md); font-family: var(--font-primary);
}
.form-control:focus, .form-select:focus{
  border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(13,110,106,.12);
}
.form-label{ font-weight: 700; color: var(--gray-800); font-size: .9rem; }
.badge.bg-danger{ background-color: var(--danger-color) !important; }
.badge.bg-success{ background-color: var(--success-color) !important; }
.badge.bg-warning{ background-color: var(--warning-color) !important; }
.badge.bg-primary{ background-color: var(--primary-color) !important; }
.table thead{ background: var(--gray-50); }
.pagination .page-item.active .page-link{ background-color: var(--primary-color); border-color: var(--primary-color); }
.pagination .page-link{ color: var(--primary-color); }
.modal-content{ border-radius: var(--border-radius-lg); border: none; box-shadow: var(--shadow-lg); }
.nav-tabs .nav-link.active{ color: var(--primary-color); border-color: var(--gray-200) var(--gray-200) #fff; font-weight: 700; }
.alert-primary{ background: rgba(13,110,106,.08); border-color: rgba(13,110,106,.2); color: var(--primary-dark); }
.alert-success{ background: rgba(24,167,101,.1); border-color: rgba(24,167,101,.25); color: #0f7a49; }
.alert-danger{ background: rgba(229,72,77,.1); border-color: rgba(229,72,77,.25); color: #b23237; }
.alert-warning{ background: rgba(245,165,36,.1); border-color: rgba(245,165,36,.25); color: #8a5a08; }

.collapse:not(.show){ display:none; }
.collapse.show{ display:block; }
.accordion-button{
  width:100%; text-align:right; padding:1.1rem 1.4rem; border:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; font-size:1rem; color:var(--gray-900);
}
.accordion-button::after{
  content:'\f282'; font-family:'bootstrap-icons'; font-size:1rem; color:var(--primary-color);
  transition: transform var(--transition-fast); margin-left:.5rem;
}
.accordion-button.collapsed::after{ transform: rotate(-90deg); }
.accordion-body{ padding: 0 1.4rem 1.1rem; line-height:1.8; }

/* request/offer list cards — richer header + meta + attachments */
.req-card{ padding: 1.6rem; }
.req-card-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.req-card-title-wrap{ display:flex; align-items:center; gap:.85rem; min-width:0; }
.req-card-icon{
  width:44px; height:44px; flex:none; border-radius:12px; background:rgba(13,110,106,.1); color:var(--primary-color);
  display:flex; align-items:center; justify-content:center; font-size:1.15rem;
}
.req-card-title{ font-weight:800; color:var(--gray-900); font-size:1.02rem; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.req-card-time{ flex:none; font-size:.76rem; color:var(--gray-400); font-weight:600; white-space:nowrap; }
.req-card-meta{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.req-card-desc{ color:var(--gray-500); font-size:.9rem; line-height:1.75; margin-bottom:1.1rem; }
.req-card-attachments{ margin-bottom:1.1rem; }
.req-card-attachments-label{ font-size:.78rem; font-weight:700; color:var(--gray-500); margin-bottom:.45rem; }
.attachment-chip{
  display:inline-flex; align-items:center; gap:.45rem; background:var(--gray-50); border:1px solid var(--gray-100);
  border-radius:999px; padding:.4rem .9rem; font-size:.8rem; color:var(--gray-700); text-decoration:none; font-weight:600;
  max-width:100%;
}
.attachment-chip span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.attachment-chip:hover{ border-color:var(--primary-light); color:var(--primary-color); }
.req-card-footer{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; padding-top:1rem; border-top:1px solid var(--gray-100); }

/* =========================================================================
   13. ERROR PAGES (404 / 403 / 500 / 419 / 503)
   ========================================================================= */
.error-page-wrapper{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(600px 400px at 8% 8%, rgba(15,107,71,.06), transparent),
    radial-gradient(500px 350px at 95% 90%, rgba(201,154,74,.08), transparent),
    var(--gray-50);
  padding:2rem 1.25rem; text-align:center;
}
.error-page-card{ max-width:560px; width:100%; }
.error-icon-circle{
  width:120px; height:120px; margin:0 auto 1.75rem; border-radius:50%;
  background:linear-gradient(135deg,var(--primary-color),var(--primary-light));
  display:flex; align-items:center; justify-content:center; font-size:3rem; color:#fff;
  box-shadow:var(--shadow-md); position:relative;
}
.error-code{
  font-size:5rem; font-weight:900; line-height:1; margin-bottom:.75rem;
  background:linear-gradient(135deg,var(--primary-color),var(--primary-light));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.error-title{ font-size:1.5rem; font-weight:800; color:var(--gray-900); margin-bottom:.85rem; }
.error-desc{ color:var(--gray-500); font-size:1rem; line-height:1.85; margin-bottom:2rem; max-width:440px; margin-inline:auto; }
.error-actions{ display:flex; gap:.85rem; justify-content:center; flex-wrap:wrap; }
.error-brand{ display:flex; align-items:center; justify-content:center; gap:.55rem; margin-bottom:2.5rem; color:var(--primary-dark); font-weight:800; }
.error-brand-icon{ width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,var(--primary-color),var(--primary-light)); display:flex; align-items:center; justify-content:center; color:#fff; }
@media(max-width:480px){
  .error-code{ font-size:3.4rem; }
  .error-icon-circle{ width:96px; height:96px; font-size:2.4rem; }
  .error-title{ font-size:1.2rem; }
}

.chat-icon-wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; margin-left:.35rem; margin-right:.1rem; }
.unread-badge-luxury{
  position:absolute; top:-9px; right:-9px; min-width:17px; height:17px; padding:0 4px;
  border-radius:999px; background:#ff3b30; color:#fff; font-size:.68rem; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
  box-shadow:0 0 0 2px #fff; z-index:5;
}

/* empty state */
.empty-state-luxury{text-align:center;padding:var(--spacing-3xl) var(--spacing-lg);color:var(--gray-500);}
.empty-state-luxury > i{font-size:3rem;color:var(--gray-300);margin-bottom:var(--spacing-md);display:block;}

/* pagination */
.pagination{gap:.25rem;}
.page-link{border-radius:var(--radius-md) !important;border:1px solid var(--gray-200);color:var(--gray-700);}
.page-item.active .page-link{background:var(--primary-color);border-color:var(--primary-color);}

/* responsive helpers */
@media(max-width:576px){
  .dashboard-luxury-header{flex-direction:column;align-items:stretch;}
  .table-luxury-header{flex-direction:column;align-items:stretch;}
  .metric-luxury-body h3{font-size:1.5rem;}
}
