:root{
  --sidebar-w: 240px;
  --sidebar-collapsed-w: 82px;
  --purple: #6d5ce8;
  --purple-dark: #5b4bd6;
  --gradient: linear-gradient(135deg, #6366f1 0%, #7c3aed 100%);
  --primary-gradient: var(--gradient);
  --gradient-hover: linear-gradient(135deg, #5457e0 0%, #6d28d9 100%);
  --gradient-shadow: 0 8px 18px rgba(109, 92, 232, 0.38);
  --text-main: #111827;
  --text-sub: #6b7280;
  --text-faint: #9ca3af;
  --border: #e5e7eb;
  --bg: #f7f8fa;
  --card-bg: #ffffff;
  --green: #10b981;
  --green-bg: #ecfdf5;
  --red: #ef4444;
  --red-bg: #fef2f2;
  --blue-badge-bg: #eff6ff;
  --blue-badge-text: #2563eb;
  --amber-badge-bg: #fffbeb;
  --amber-badge-text: #d97706;
}

/* Public pricing page */
.pricing-page{min-height:100vh;background:#f7f8fa;color:var(--text-main);font-family:Inter,Arial,sans-serif}
.pricing-shell{min-height:100vh;padding:42px 0 32px;overflow:hidden}
.pricing-intro{max-width:760px;padding:0 20px;margin:0 auto 38px;animation:pricing-enter .55s ease both}
.pricing-brand{display:inline-flex;align-items:center;justify-content:center;margin-bottom:24px}.pricing-brand img{display:block;width:auto;max-width:145px;max-height:48px;object-fit:contain}
.pricing-kicker{display:inline-flex;padding:7px 11px;margin-bottom:14px;border:1px solid #ddd6fe;border-radius:999px;background:#f5f3ff;color:#6d28d9;font-size:12px;font-weight:700}
.pricing-intro h1{margin:0;color:#111827;font-size:36px;font-weight:700;letter-spacing:0;line-height:1.18}.pricing-intro p{max-width:610px;margin:13px auto 22px;color:#64748b;font-size:15px;line-height:1.65}
.pricing-billing-toggle{display:inline-flex;gap:4px;padding:4px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.pricing-billing-toggle button{border:0;border-radius:6px;padding:9px 13px;background:transparent;color:#64748b;font-size:13px;font-weight:700;transition:color .2s ease,background .2s ease,box-shadow .2s ease}.pricing-billing-toggle button span{margin-left:4px;color:#059669;font-size:11px}.pricing-billing-toggle button.active{background:var(--primary-gradient);color:#fff;box-shadow:0 5px 12px rgba(109,92,232,.25)}.pricing-billing-toggle button.active span{color:#fff}
.pricing-container{max-width:1320px}.pricing-card{position:relative;height:100%;padding:27px 25px 25px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.045);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;animation:pricing-card-enter .55s ease both}.pricing-card:hover{transform:translateY(-7px);border-color:#c4b5fd;box-shadow:0 22px 42px rgba(91,75,214,.15)}
.pricing-card-featured{border:2px solid #7c3aed;box-shadow:0 18px 36px rgba(91,75,214,.17)}.pricing-popular{position:absolute;top:-14px;left:50%;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:var(--primary-gradient);color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 7px 16px rgba(109,92,232,.3)}
.pricing-card-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:18px;border-radius:8px;background:#f1efff;color:#6d5ce8}.pricing-card-icon svg{width:20px;height:20px}.pricing-card h2{margin:0 0 9px;font-size:20px;font-weight:700}.pricing-card-summary{min-height:49px;margin:0;color:#64748b;font-size:13px;line-height:1.55}
.pricing-price{display:flex;align-items:baseline;gap:6px;min-height:63px;margin-top:24px}.pricing-price strong{font-size:38px;font-weight:700;line-height:1}.pricing-price span{color:#64748b;font-size:13px}.pricing-price-custom strong{font-size:32px}.pricing-price-note{min-height:19px;margin:0 0 21px;color:#94a3b8;font-size:12px}
.pricing-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:42px;border:1px solid transparent;border-radius:6px;text-decoration:none;font-size:13px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}.pricing-action svg{width:16px;height:16px}.pricing-action:hover{transform:translateY(-1px)}.pricing-action-outline{border-color:#d8dee9;background:#fff;color:#4f46e5}.pricing-action-outline:hover{border-color:#8b5cf6;background:#f5f3ff;color:#6d28d9}.pricing-action-primary{background:var(--primary-gradient);color:#fff;box-shadow:var(--gradient-shadow)}.pricing-action-primary:hover{background:var(--gradient-hover);color:#fff;box-shadow:0 11px 22px rgba(109,92,232,.42)}
.pricing-checkout-form{margin:0}.pricing-checkout-form .pricing-action{appearance:none;cursor:pointer}
.pricing-features{display:grid;gap:12px;padding:23px 0 0;margin:23px 0 0;border-top:1px solid #edf0f5;list-style:none}.pricing-features li{display:flex;align-items:flex-start;gap:9px;color:#475569;font-size:12px;line-height:1.45}.pricing-features svg{flex:0 0 auto;width:16px;height:16px;color:#6d5ce8}.pricing-note{display:flex;align-items:center;justify-content:center;gap:8px;padding:35px 20px 0;color:#64748b;font-size:12px}.pricing-note svg{width:17px;height:17px;color:#6d5ce8}
@keyframes pricing-enter{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes pricing-card-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.pricing-card:nth-child(2){animation-delay:.06s}.pricing-card:nth-child(3){animation-delay:.12s}.pricing-card:nth-child(4){animation-delay:.18s}
@media (max-width:767.98px){.pricing-shell{padding-top:30px}.pricing-intro{margin-bottom:27px}.pricing-intro h1{font-size:29px}.pricing-intro p{font-size:14px}.pricing-card{padding:24px 21px}.pricing-card-summary{min-height:0}.pricing-price{margin-top:20px}.pricing-note{align-items:flex-start;text-align:left}}

/* Company subscription */
.subscription-page{padding:30px 0}.subscription-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.subscription-page-head h1{margin:3px 0 4px;font-size:25px;font-weight:700}.subscription-page-head p{margin:0;color:#64748b;font-size:13px}.page-eyebrow{color:#6d5ce8;font-size:12px;font-weight:700;text-transform:uppercase}.subscription-page-head .btn{display:inline-flex;align-items:center;gap:7px}.subscription-page-head .btn svg,.subscription-actions-card .btn svg{width:16px;height:16px}.subscription-summary-card,.subscription-actions-card{padding:26px;border:1px solid #dfe6ef;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.045)}.subscription-summary-top{display:flex;align-items:center;gap:13px}.subscription-plan-icon,.subscription-actions-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:#f1efff;color:#6d5ce8}.subscription-plan-icon svg,.subscription-actions-icon svg{width:21px;height:21px}.subscription-caption{display:block;color:#94a3b8;font-size:12px}.subscription-summary-card h2,.subscription-actions-card h2{margin:2px 0 0;font-size:20px;font-weight:700}.subscription-status{margin-left:auto;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.subscription-status-trialing{background:#f5f3ff;color:#6d28d9}.subscription-status-active{background:#ecfdf5;color:#059669}.subscription-status-past_due{background:#fff7ed;color:#c2410c}.subscription-status-canceled,.subscription-status-cancelled{background:#fef2f2;color:#dc2626}.subscription-detail-grid{margin-top:25px}.subscription-detail{padding:14px 15px;border:1px solid #edf0f5;border-radius:7px;background:#fafbfd}.subscription-detail span{display:block;margin-bottom:5px;color:#64748b;font-size:12px}.subscription-detail strong{font-size:14px}.subscription-cancel-notice{display:flex;align-items:center;gap:8px;margin-top:17px;padding:11px 12px;border:1px solid #fed7aa;border-radius:7px;background:#fff7ed;color:#9a3412;font-size:12px}.subscription-cancel-notice svg{width:15px;height:15px}.subscription-actions-card{display:flex;flex-direction:column;align-items:flex-start}.subscription-actions-icon{margin-bottom:17px}.subscription-actions-card p{margin:10px 0 22px;color:#64748b;font-size:13px;line-height:1.6}.subscription-actions-card .btn{margin-top:auto;display:inline-flex;align-items:center;gap:7px}@media(max-width:575.98px){.subscription-page-head{align-items:flex-start;flex-direction:column}.subscription-summary-card,.subscription-actions-card{padding:21px}.subscription-status{font-size:10px}}
*{ box-sizing: border-box; }

/* Global theme utilities */
.primary-gradient{
  color:#fff !important;
  background:var(--primary-gradient) !important;
}
.app-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:22px;
  padding:4px 9px;
  border:1px solid transparent;
  border-radius:6px;
  font-size:10px;
  font-weight:650;
  line-height:1;
  white-space:nowrap;
}
.app-badge-primary{
  color:#5f3dc4;
  border-color:#e8e0ff;
  background:#f1edff;
}
.app-badge-primary-gradient{
  color:#fff;
  border-color:transparent;
  background:var(--primary-gradient);
  box-shadow:0 5px 12px rgba(109,40,217,.18);
}
body{
  margin:0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--bg);
  color: var(--text-main);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
a{ text-decoration:none; color:inherit; }

/* Global Lucide icon baseline: match sidebar navigation icons. */
svg.lucide{
  width:18px;
  height:18px;
  flex-shrink:0;
  stroke-width:2;
}
[data-lucide] svg,
i[data-lucide] svg{
  width:18px;
  height:18px;
  flex-shrink:0;
}

/* Layout */
.app{
  display:flex;
  min-height:100vh;
}

/* Sidebar */
.sidebar{
  width: var(--sidebar-w);
  background:#fff;
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  gap:6px;
  padding: 20px 16px;
  position:fixed;
  top:0; left:0; bottom:0;
  min-height:0;
  overflow:hidden;
  overflow-x:hidden;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 4px 4px 14px 4px;
  flex:0 0 auto;
}
.brand img{
  flex:0 0 auto;
  transition:width .2s ease, opacity .2s ease;
}
.brand-icon{
  width:34px; height:34px;
  background: var(--gradient);
  box-shadow: var(--gradient-shadow);
  border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  flex-shrink:0;
}
.brand-icon svg{ width:18px; height:18px; }
.brand-name{ font-size:17px; font-weight:700; color:#111827; }
.brand-collapse{
  width:28px;
  height:28px;
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  color:#9ca3af;
  cursor:pointer;
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.brand-collapse svg{ width:16px; height:16px; }
.brand-collapse:hover{ background:#f3e8ff; color:#7c3aed; }
.sidebar-mobile-close{
  width:34px;
  height:34px;
  margin-left:auto;
  display:none;
  align-items:center;
  justify-content:center;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fff;
  color:#64748b;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease;
}
.sidebar-mobile-close svg{
  width:17px;
  height:17px;
}
.sidebar-mobile-close:hover{
  background:#f3e8ff;
  border-color:#c4b5fd;
  color:#6d28d9;
}

.nav{
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  align-content:stretch;
  gap:2px;
  margin-top:6px;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
  padding-bottom:8px;
  flex:1 1 auto;
  scrollbar-width:thin;
  scrollbar-color:#cbd5e1 transparent;
}
.sidebar .nav::-webkit-scrollbar{width:5px}
.sidebar .nav::-webkit-scrollbar-track{background:transparent}
.sidebar .nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.sidebar .nav::-webkit-scrollbar-thumb:hover{background:#a5b4fc}
.nav-item{
  display:flex; align-items:center; gap:11px;
  width:100%;
  flex:0 0 auto;
  min-height:39px;
  padding:9px 12px;
  border-radius:8px;
  color:#4b5563;
  font-weight:500;
  font-size:14px;
  cursor:pointer;
  line-height:1.25;
  white-space:nowrap;
  text-decoration:none;
}
.nav-item svg{ width:18px; height:18px; flex-shrink:0; color:#6b7280; }
.nav-item:hover{ background:#f3f4f6; }
.nav-item.active{
  background: var(--gradient);
  color:#fff;
  box-shadow: var(--gradient-shadow);
}
.nav-item.active svg{ color:#fff; }

.sidebar-bottom{
  margin-top:auto;
  display:flex; flex-direction:column; gap:2px;
  border-top:1px solid #e5e7eb;
  padding-top:10px;
  flex:0 0 auto;
  background:#fff;
}

body.sidebar-collapsed .sidebar{
  width:var(--sidebar-collapsed-w);
  padding-left:14px;
  padding-right:14px;
}
body.sidebar-collapsed .main{
  margin-left:var(--sidebar-collapsed-w);
}
body.sidebar-collapsed .brand{
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.sidebar-collapsed .brand img{
  width:42px !important;
}
body.sidebar-collapsed .brand-collapse{
  position:absolute;
  right:8px;
  top:24px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}
body.sidebar-collapsed .brand-collapse svg{
  transform:rotate(180deg);
}
body.sidebar-collapsed .nav-item{
  position:relative;
  justify-content:center;
  gap:0;
  padding:10px;
  font-size:0;
}
body.sidebar-collapsed .nav-item svg{
  width:19px;
  height:19px;
}
body.sidebar-collapsed .nav-item[data-sidebar-label]::after{
  content:attr(data-sidebar-label);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  z-index:1050;
  min-width:max-content;
  max-width:190px;
  padding:8px 10px;
  border:1px solid #e5e7eb;
  border-radius:9px;
  background:#fff;
  color:#111827;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  box-shadow:0 14px 34px rgba(15,23,42,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-6px,-50%);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
body.sidebar-collapsed .nav-item[data-sidebar-label]::before{
  content:"";
  position:absolute;
  left:calc(100% + 7px);
  top:50%;
  z-index:1051;
  width:10px;
  height:10px;
  border-left:1px solid #e5e7eb;
  border-bottom:1px solid #e5e7eb;
  background:#fff;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-6px,-50%) rotate(45deg);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
body.sidebar-collapsed .nav-item[data-sidebar-label]:hover::after,
body.sidebar-collapsed .nav-item[data-sidebar-label]:hover::before{
  opacity:1;
  visibility:visible;
  transform:translate(0,-50%);
}
body.sidebar-collapsed .nav-item[data-sidebar-label]:hover::before{
  transform:translate(0,-50%) rotate(45deg);
}

/* Technician dashboard */
.technician-dashboard-page .technician-period-select{
  min-width:150px;
  justify-content:space-between;
}
.technician-dashboard-page{
  overflow-x:visible;
}
.technician-dashboard-page .technician-period-select .filter-dropdown{
  left:auto;
  right:0;
  min-width:150px;
  max-width:calc(100vw - 32px);
  overflow-x:hidden;
}
.technician-chart-wrap{
  height:300px;
}
.technician-upcoming-card{
  padding:20px;
  overflow:visible;
}
.technician-dashboard-table-responsive{
  overflow-x:visible !important;
  overflow-y:visible !important;
}
.technician-dashboard-table-responsive .dataTables_wrapper{
  overflow:visible;
}
.technician-dashboard-table-responsive .job-action-menu{
  right:0;
  left:auto;
}
.technician-upcoming-job{
  display:block;
  height:100%;
  padding:16px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  color:#0f172a;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.technician-upcoming-job:hover{
  transform:translateY(-2px);
  border-color:#c4b5fd;
  box-shadow:0 14px 32px rgba(124,58,237,.12);
}
.technician-upcoming-job strong{
  display:block;
  margin-bottom:4px;
  font-size:14px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.technician-upcoming-job p{
  margin:0;
  color:#64748b;
  font-size:13px;
}
.technician-job-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:13px;
  color:#64748b;
  font-size:12.5px;
}
.technician-job-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.technician-job-meta svg{
  width:14px;
  height:14px;
}
.empty-state-box{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px dashed #dbe3ef;
  border-radius:12px;
  background:#fbfdff;
  color:#64748b;
  text-align:center;
  padding:22px;
}
.empty-state-box svg{
  width:24px;
  height:24px;
  color:#7c3aed;
}
.empty-state-box strong{
  color:#0f172a;
  font-size:15px;
}
.btn-gradient-sm{
  min-height:38px;
  padding:9px 14px;
  font-size:13px;
}

/* Support, service request, and payment responsive pass */
.support-container{
  max-width:780px;
  margin:0 auto;
}
.support-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:176px;
  padding:20px;
  border:1px solid #dfe4ea;
  border-radius:14px;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.support-card:hover{
  transform:translateY(-2px);
  border-color:#c4b5fd;
  box-shadow:0 16px 34px rgba(124,58,237,.12);
}
.support-icon{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
  border-radius:10px;
  background:var(--gradient);
  color:#fff;
  box-shadow:var(--gradient-shadow);
}
.support-icon svg{
  width:18px;
  height:18px;
}
.support-card h5{
  margin:0 0 7px;
  color:#0f172a;
  font-size:15px;
  font-weight:800;
}
.support-card p{
  margin:0 0 14px;
  color:#64748b;
  font-size:13px;
  line-height:1.45;
}
.support-card a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:auto;
  color:#2563eb;
  font-size:13px;
  font-weight:700;
}
.support-card a svg{
  width:14px;
  height:14px;
}
.payment-stats-row{
  margin-bottom:20px;
}
.payments-page .invoice-stat-card{
  min-height:112px;
}
.payments-page .invoice-toolbar,
.invoices-page .invoice-toolbar{
  row-gap:10px;
}
.payments-page .invoice-search,
.invoices-page .invoice-search{
  min-width:min(100%, 300px);
}
.service-form-card,
.service-detail-card{
  max-width:100%;
}
.service-detail-card .text-muted span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  overflow-wrap:anywhere;
}
.service-detail-card .text-muted span svg{
  width:15px;
  height:15px;
}
.service-image-thumb{
  max-width:100%;
}
.service-inline-status-menu,
.job-action-menu{
  max-width:calc(100vw - 32px);
}
.service-request-control,
#serviceRequestsTable td.dtr-control{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  padding-left:12px !important;
  padding-right:8px !important;
  text-align:center;
}
.estimate-table-control,
#estimateTable td.dtr-control{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  padding-left:12px !important;
  padding-right:8px !important;
  text-align:center;
}
.technician-table-control,
#technicianJobsTable td.dtr-control,
.technician-dashboard-table-control,
#technicianDashboardJobsTable td.dtr-control,
.jobs-table-control,
.jobs-main-table td.dtr-control,
.invoice-table-control,
#invoiceTable td.dtr-control{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  padding-left:12px !important;
  padding-right:8px !important;
  text-align:center;
}
#serviceRequestsTable.dataTable{
  width:100% !important;
  min-width:0 !important;
}
#serviceRequestsTable th,
#serviceRequestsTable td{
  vertical-align:middle;
}
.invoices-page #invoiceStatusFilter{
  min-width:150px;
}
.invoices-page #invoiceStatusFilter .filter-dropdown{
  left:auto;
  right:0;
  min-width:150px;
}

@media (max-width: 991.98px){
  .service-detail-card,
  .service-form-card,
  .payments-page .invoice-table-card{
    padding:18px !important;
  }
}

@media (max-width: 767.98px){
  .support-container{
    max-width:100%;
  }
  .support-card{
    min-height:156px;
    padding:18px;
  }
  .payments-page .invoice-header,
  .invoices-page .invoice-header,
  .jobs-page-header{
    align-items:flex-start !important;
  }
  .payments-page .invoice-header .btn,
  .invoices-page .invoice-header .btn,
  .jobs-page-header .btn{
    width:auto;
  }
  .payments-page .invoice-toolbar,
  .invoices-page .invoice-toolbar{
    align-items:stretch !important;
  }
  .payments-page .invoice-toolbar > *,
  .invoices-page .invoice-toolbar > *{
    flex:1 1 100%;
  }
  .invoices-page #invoiceStatusFilter{
    min-height:42px;
    padding:0 12px;
  }
  .invoices-page #invoiceStatusFilter .filter-dropdown{
    left:0;
    right:auto;
    width:100%;
    min-width:100%;
  }
  .payment-date-filter{
    width:100% !important;
  }
  .service-preview-item{
    max-width:100%;
  }
  .service-detail-card .d-flex.justify-content-between{
    align-items:flex-start !important;
  }
}

@media (max-width: 575.98px){
  .invoices-page .row.g-3.mb-4 > .col-6 .invoice-stat-card{
    min-height:96px;
    padding:14px;
  }
  .invoices-page .row.g-3.mb-4 > .col-6 .invoice-stat-label{
    font-size:12px;
  }
  .invoices-page .row.g-3.mb-4 > .col-6 .invoice-stat-value{
    font-size:22px;
  }
  .payment-stats-row > [class*="col-"]{
    flex:0 0 100%;
    max-width:100%;
  }
  .service-upload-zone{
    min-height:108px;
  }
  .service-image-thumb{
    width:72px;
    height:72px;
  }
  .service-action-btn{
    width:auto;
  }
}

@media (max-width:767.98px){
  .technician-dashboard-page .technician-period-select{
    width:100%;
  }
  .technician-dashboard-page .technician-period-select .filter-dropdown{
    left:0;
    right:auto;
    width:100%;
    min-width:100%;
  }
  .technician-chart-wrap{
    height:260px;
  }
  .technician-upcoming-card{
    padding:16px;
  }
}

/* Main */
.main{
  margin-left: var(--sidebar-w);
  flex:1;
  display:flex;
  flex-direction:column;
  min-width:0;
}

/* Topbar */
.topbar{
  height:72px;
  background:#fff;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:16px;
  padding:0 28px;
  position:sticky;
  top:0;
  z-index:1030;
}
.mobile-menu-toggle{
  width:38px;
  height:38px;
  display:none;
  align-items:center;
  justify-content:center;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fff;
  color:#4f46e5;
}
.mobile-menu-toggle svg{
  width:18px;
  height:18px;
}
.topbar-company-logo{
  display:flex;
  align-items:center;
  min-width:0;
}
.topbar-company-logo img{
  display:block;
  width:auto;
  height:34px;
  max-width:150px;
  object-fit:contain;
}
.sidebar-backdrop{
  display:none;
}
.search{
  flex:1;
  max-width:420px;
  background:#f3f4f6;
  border-radius:8px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  color:#9ca3af;
}
.search svg{ width:16px; height:16px; }
.search input{
  border:none; background:transparent; outline:none;
  font-size:14px; width:100%; color:#111827; font-family:inherit;
}
.search input::placeholder{ color:#9ca3af; }
.topbar-right{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:18px;
}
.btn-create{
  background: var(--gradient);
  box-shadow: var(--gradient-shadow);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:10px 16px;
  font-weight:600;
  font-size:14px;
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
}
.btn-create:hover,
.btn-create:focus,
.btn-create:active{
  background: var(--gradient-hover);
  color:#fff;
}

/* Reusable gradient button (e.g. "New Job" style buttons on other pages) */
.btn-gradient{
  background: var(--gradient);
  box-shadow: var(--gradient-shadow);
  color:#fff;
  border:none;
  border-radius:8px !important;
  min-height:42px !important;
  padding:10px 16px !important;
  font-weight:600;
  font-size:14px !important;
  line-height:1.2 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  transition:all .18s ease;
}
.btn-gradient:hover,
.btn-gradient:focus,
.btn-gradient:active,
.btn-gradient.show{
  background: var(--gradient-hover);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 22px rgba(109, 92, 232, 0.42);
  transform:translateY(-1px);
}
.btn-gradient svg,
.btn-gradient i[data-lucide] svg,
.btn-gradient .lucide{
  width:15px;
  height:15px;
  flex-shrink:0;
}
.btn-gradient > i:not([data-lucide]){
  font-size:15px;
  line-height:1;
}
.btn-gradient.btn-sm,
.btn-sm.btn-gradient{
  min-height:42px !important;
  padding:10px 16px !important;
  font-size:14px !important;
}
@media (max-width:575.98px){
  .btn-gradient,
  .btn-gradient.btn-sm,
  .btn-sm.btn-gradient,
  .app-gradient-btn{
    width:auto !important;
    min-height:34px !important;
    padding:7px 11px !important;
    border-radius:8px !important;
    font-size:12.5px !important;
    gap:6px !important;
    box-shadow:0 7px 15px rgba(109,92,232,.28) !important;
  }
  .btn-gradient svg,
  .btn-gradient i[data-lucide] svg,
  .btn-gradient .lucide,
  .app-gradient-btn svg,
  .app-gradient-btn .lucide{
    width:13px !important;
    height:13px !important;
  }
  .btn-gradient > i:not([data-lucide]),
  .app-gradient-btn > i:not([data-lucide]){
    font-size:13px !important;
  }
}

.btn-create svg{ width:15px; height:15px; }
.icon-btn{
  position:relative;
  color:#4b5563;
  cursor:pointer;
  display:flex;
}
.icon-btn svg{ width:20px; height:20px; }
.icon-dot{
  position:absolute; top:-2px; right:-2px;
  width:8px; height:8px; border-radius:50%;
  background:#ef4444;
  border:1.5px solid #fff;
}
.avatar{
  width:34px; height:34px;
  border-radius:20%;
  background: var(--gradient);
  box-shadow: var(--gradient-shadow);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:600;
  font-size:14px;
}

/* Content */
.content{
  padding: 28px;
  display:flex;
  flex-direction:column;
  gap:20px;
  flex:1;
  width:100%;
  max-width:1920px;
  margin:0 auto;
}
.page-date{ color:#6b7280; font-size:14px; margin-bottom:2px; }
.page-title{ font-size:26px; font-weight:800; color:#111827; margin:2px 0 6px 0; }
.dashboard-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.dashboard-period-filter{ min-width:132px; }
.dashboard-period-filter .filter-dropdown{ min-width:132px; }
.dashboard-date-filter .form-control{height:42px;min-width:142px;border-color:#dce2eb;border-radius:7px;font-size:13px}
.dashboard-date-filter .btn{height:42px;white-space:nowrap}
.dashboard-date-actions{display:flex;gap:8px}
@media (max-width: 767.98px){
  .dashboard-date-filter{width:100%;margin-top:10px}
  .dashboard-date-filter>.col-auto{width:calc(50% - 4px)}
  .dashboard-date-filter>.col-auto:nth-child(4),.dashboard-date-filter>.dashboard-date-actions{width:100%}
  .dashboard-date-filter .form-control,.dashboard-period-filter{width:100%;min-width:0}
  .dashboard-date-actions{justify-content:flex-end}
}

/* Stat cards */
.stats-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:18px;
}
.card{
  background: var(--card-bg);
  border:1px solid var(--border);
  border-radius:14px;
  padding:20px;
}
.stat-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:18px;
}
.stat-icon{
  width:40px; height:40px;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}
.stat-icon svg{ width:19px; height:19px; }
.icon-blue{ background:#3b82f6; }
.icon-purple{ background:#8b5cf6; }
.icon-green{ background:#10b981; }
.icon-orange{ background: linear-gradient(135deg,#fb923c,#f97316); }

.stat-badge{
  display:flex; align-items:center; gap:3px;
  font-size:12.5px; font-weight:600;
  padding:4px 9px;
  border-radius:999px;
}
.stat-badge svg{ width:12px; height:12px; }
.badge-up{ background: var(--green-bg); color:#059669; }
.badge-down{ background: var(--red-bg); color:#dc2626; }

.stat-value{ font-size:26px; font-weight:800; color:#111827; line-height:1; }
.stat-label{ font-size:13.5px; color:#6b7280; margin-top:6px; }

/* two column row */
.row-2col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
}
.card-title{ font-size:15.5px; font-weight:700; color:#111827; }
.card-sub{ font-size:13.5px; color:#6b7280; margin-top:5px; }

.clients-card{ display:flex; flex-direction:column; min-height:200px; }
.clients-top{ display:flex; justify-content:space-between; align-items:flex-start; }
.dashboard-client-trend-card{min-height:280px}
.dashboard-client-trend-card-full{min-height:320px}
.dashboard-client-count{margin-top:4px;color:#111827;font-size:24px;font-weight:800;line-height:1}
.dashboard-client-chart-wrap{position:relative;height:190px;margin-top:14px}
.dashboard-client-trend-card-full .dashboard-client-chart-wrap{height:230px}
.empty-people-icon{ color:#d1d5db; }
.empty-people-icon svg{ width:34px; height:34px; }
.avatar-stack{ display:flex; margin-top:22px; }
.avatar-stack .mini-avatar{
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:600; font-size:13px;
  border:2px solid #fff;
  margin-left:-9px;
}
.avatar-stack .mini-avatar:first-child{ margin-left:0; }
.clients-bottom{ margin-top:auto; display:flex; justify-content:flex-end; padding-top:16px; }
.view-all-link{ color: var(--purple); font-weight:600; font-size:13.5px; display:flex; align-items:center; gap:5px; cursor:pointer; }
.view-all-link svg{ width:14px; height:14px; }
.view-all-link:hover{ color: var(--purple-dark); }

/* charts */
.chart-wrap{ margin-top:18px; height:190px; position:relative; }
.chart-wrap-lg{ position:relative; height:230px; }

/* appointments table */
.table-card{ padding:24px; overflow:visible; }
.table-header{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:20px;
  flex-wrap: wrap; gap:12px;
}
.table-title{ font-size:17px; font-weight:700; }
.filters{ display:flex; gap:10px; }
.filter-select{
  border:1px solid var(--border);
  border-radius:8px;
  padding:8px 12px;
  font-size:13.5px;
  color:#374151;
  display:flex; align-items:center; gap:6px;
  background:#fff;
  cursor:pointer;
  position:relative;
  user-select:none;
}
.filter-select svg{ width:14px; height:14px; color:#9ca3af; }
.filter-select.open svg.chevron{ transform:rotate(180deg); }

.filter-dropdown{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:190px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 12px 28px rgba(17,24,39,.12);
  padding:8px;
  display:none;
  z-index:1055;
}
.filter-dropdown.show{ display:block; }
#statusFilter .filter-dropdown{
  left:auto;
  right:0;
}
.dashboard-appointments-card{
  overflow:visible;
}
.dashboard-table-responsive{
  overflow-x:auto;
  overflow-y:visible;
}
.filter-option{
  display:flex; align-items:center; justify-content:space-between;
  padding:7px 12px;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
  color:#111827;
  cursor:pointer;
  transition:background-color .16s ease, color .16s ease, transform .16s ease;
}
.filter-option:hover{ background:#7c3aed; color:#fff; font-weight:600; }
.filter-option.selected{ background:#7c3aed; color:#fff; font-weight:600; }
.filter-option.selected:hover{ background:#6d28d9; color:#fff; transform:translateX(2px); }
.filter-option .check{ display:none; width:14px; height:14px; }
.filter-option.selected .check{ display:inline-block; color:#fff; }

table{ width:100%; border-collapse:collapse; }
thead th{
  text-align:left;
  font-size:13px;
  color:#6b7280;
  font-weight:500;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
tbody td{
  padding:16px 6px;
  font-size:14px;
  color:#111827;
  border-bottom:1px solid #f1f2f4;
  vertical-align:middle;
}
tbody tr:last-child td{ border-bottom:none; }
td.muted{ color:#6b7280; }
.cat-pill{
  background:#f3f4f6;
  color:#374151;
  font-size:12.5px;
  font-weight:500;
  padding:4px 10px;
  border-radius:999px;
  display:inline-block;
}
.status-pill{
  font-size:12.5px;
  font-weight:600;
  padding:5px 12px;
  border-radius:999px;
  display:inline-block;
}
.status-scheduled{ background: var(--blue-badge-bg); color: var(--blue-badge-text); }
.status-progress{ background: var(--amber-badge-bg); color: var(--amber-badge-text); }
.no-results{ text-align:center; color:#9ca3af; padding:28px 0; display:none; }
.dashboard-table-responsive .dataTables_wrapper .row{
  align-items:center;
  row-gap:10px;
}
.dashboard-table-responsive .dataTables_wrapper .dataTables_info{
  color:#6b7280;
  font-size:13px;
  padding-top:12px;
}
.dashboard-table-responsive .dataTables_wrapper .dataTables_paginate{
  padding-top:12px;
}
.dashboard-table-responsive .dashboard-datatable-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding-top:12px;
}
.dashboard-table-responsive .dashboard-datatable-footer .pagination{
  gap:6px;
  margin:0;
  flex-wrap:wrap;
}
.dashboard-table-responsive .dashboard-datatable-footer .dataTables_paginate .pagination .page-link,
.dashboard-table-responsive .dashboard-datatable-footer .dt-paging .pagination .page-link{
  border-color:var(--border);
  color:#7c3aed;
  font-size:13px;
  font-weight:700;
  box-shadow:none;
  width:34px;
  min-width:34px;
  height:34px;
  padding:0 !important;
  border-radius:9px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  line-height:1;
}
.dashboard-table-responsive .dashboard-datatable-footer .dataTables_paginate .pagination .page-link:hover,
.dashboard-table-responsive .dashboard-datatable-footer .dt-paging .pagination .page-link:hover{
  background:#f3e8ff;
  border-color:#c4b5fd;
  color:#6d28d9;
}
.dashboard-table-responsive .dashboard-datatable-footer .dataTables_paginate .pagination .page-item.active .page-link,
.dashboard-table-responsive .dashboard-datatable-footer .dt-paging .pagination .page-item.active .page-link{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
  box-shadow:0 8px 18px rgba(124,58,237,.22);
}
.dashboard-table-responsive .dashboard-datatable-footer .dataTables_paginate .pagination .page-item.disabled .page-link,
.dashboard-table-responsive .dashboard-datatable-footer .dt-paging .pagination .page-item.disabled .page-link{
  color:#cbd5e1;
  background:#fff;
  border-color:#e5e7eb;
}
#nextWeekJobsTable{
  min-width:0;
}
#nextWeekJobsTable.dataTable{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
#nextWeekJobsTable thead th,
#nextWeekJobsTable tbody td{
  white-space:normal;
  vertical-align:middle;
}
#nextWeekJobsTable .dashboard-table-control,
#nextWeekJobsTable td.dtr-control{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  padding-left:12px !important;
  padding-right:8px !important;
  text-align:center;
}
.dashboard-table-responsive #nextWeekJobsTable.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before{
  border-color:#64748b !important;
}
.dashboard-table-responsive #nextWeekJobsTable.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:hover:before{
  border-color:#6d28d9 !important;
}
.dashboard-table-responsive #nextWeekJobsTable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
.dashboard-table-responsive #nextWeekJobsTable.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before{
  border-color:#6d28d9 !important;
}
.dashboard-table-responsive table.dataTable > tbody > tr.child td{
  background:#f8fafc !important;
  padding:12px 14px 16px !important;
  border-top:0 !important;
}
.dashboard-table-responsive table.dataTable > tbody > tr.child ul.dtr-details{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.dashboard-table-responsive table.dataTable > tbody > tr.child ul.dtr-details > li{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:7px;
  min-height:68px;
  padding:12px;
  border:1px solid #eef2f7;
  border-radius:10px;
  background:#fbfdff;
}
.dashboard-table-responsive table.dataTable > tbody > tr.child span.dtr-title{
  color:#64748b;
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0;
  white-space:normal;
}
.dashboard-table-responsive table.dataTable > tbody > tr.child span.dtr-data{
  width:100%;
  color:#0f172a;
  font-size:13px;
  font-weight:600;
  text-align:left;
  overflow-wrap:anywhere;
}
.dashboard-table-responsive table.dataTable > tbody > tr.child span.dtr-data .cat-pill,
.dashboard-table-responsive table.dataTable > tbody > tr.child span.dtr-data .status-pill{
  width:auto;
  max-width:100%;
}

/* bottom row */
.row-bottom{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap:18px;
}
.revenue-card{ padding:24px; }
.revenue-top{ display:flex; align-items:center; justify-content:space-between; }
.legend{ display:flex; gap:16px; }
.legend-item{ display:flex; align-items:center; gap:6px; font-size:13px; color:#4b5563; }
.legend-dot{ width:9px; height:9px; border-radius:50%; }
.dot-income{ background:#3b82f6; }
.dot-pending{ background:#a78bfa; }
.revenue-value{ font-size:26px; font-weight:800; margin-top:10px; margin-bottom:22px; }

.workers-card{ padding:24px; }
.workers-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.worker-row{
  display:flex; align-items:center; gap:12px;
  padding:14px 0;
  border-bottom:1px solid #f1f2f4;
}
.worker-row:last-child{ border-bottom:none; }
.worker-avatar{
  width:38px; height:38px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-size:14px;
  flex-shrink:0;
}
.worker-name{ font-weight:600; font-size:15px; color:#111827; }
.worker-role{ font-size:14px; color:#6b7280; margin-top:2px; }
.worker-rating{ margin-left:auto; display:flex; align-items:center; gap:4px; font-weight:600; font-size:15px; color:#111827; }
.worker-rating svg{ width:14px; height:14px; color:#f59e0b; fill:#f59e0b; }

/* Footer */
.app-footer{
  border-top:1px solid var(--border);
  padding:18px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#9ca3af;
  font-size:13px;
  flex-wrap:wrap;
  gap:10px;
}
.app-footer a{ color:#6b7280; font-weight:500; }
.app-footer a:hover{ color: var(--purple); }
.app-footer .footer-links{ display:flex; gap:18px; }

/* =========================================================
   Jobs Page
========================================================= */

.jobs-page-header{ margin-bottom:6px; }
.jobs-title{ font-size:24px; font-weight:800; color:#020617; line-height:1.15; }
.jobs-subtitle{ font-size:14px; color:#64748b; margin-top:6px; }

.jobs-toolbar{ margin-bottom:4px; }
.jobs-search{
  width:385px;
  max-width:100%;
  height:38px;
  display:flex;
  align-items:center;
  background:#fff;
  border:1px solid var(--border);
  border-radius:11px;
  color:#9ca3af;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.jobs-search svg{ width:16px; height:16px; }
.jobs-search .input-group-text{ height:100%; color:#94a3b8; }
.jobs-search .form-control{ height:100%; font-size:14px; color:#111827; background:transparent; }
.jobs-search input::placeholder{ color:#9ca3af; }
.jobs-search:focus-within{
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.24);
}
.jobs-period-filter{min-width:142px}
.jobs-date-range{
  min-height:38px;
  padding:4px 6px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  color:#94a3b8;
  font-size:12px;
}
.jobs-date-range .form-control{
  width:132px;
  min-height:28px;
  padding:3px 7px;
  border:0;
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  box-shadow:none;
}
.jobs-date-clear{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#94a3b8;
  transition:background-color .18s ease,color .18s ease;
}
.jobs-date-clear:hover{background:#f1edff;color:#6d28d9}
.jobs-date-clear svg{width:14px!important;height:14px!important}

#categoryFilter{
  width:160px;
  height:38px;
  border-radius:11px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}

/* View toggle (board / list) */
.view-toggle{
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  padding:3px;
  height:42px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.view-toggle button{
  width:32px; height:32px;
  display:flex; align-items:center; justify-content:center;
  border:none;
  border-radius:10px !important;
  color:#334155;
  cursor:pointer;
  padding:0;
}
.view-toggle button svg{ width:17px; height:17px; }
.view-toggle button.active{ background:#f1f1f2; color:#475569; }

/* Kanban board */
.kanban-board{
  display:flex;
  gap:18px;
  height:100%;
  min-height:0;
  overflow-x:auto;
  overflow-y:visible;
  padding-bottom:14px;
}
.kanban-column{
  min-width:320px;
  flex:0 0 320px;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.kanban-column-body{
  flex:1 1 auto;
  height:auto;
  min-height:0;
  max-height:calc(100vh - 250px);
  min-height:520px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:6px;
  scrollbar-width:thin;
  scrollbar-color:#cbd5e1 transparent;
}
.kanban-column-body::-webkit-scrollbar{width:5px}
.kanban-column-body::-webkit-scrollbar-track{background:transparent}
.kanban-column-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.kanban-column-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}
.kanban-col-header{
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:600;
  font-size:14px;
  margin-bottom:14px;
}
.kanban-col-count{ font-size:12px; color:#9ca3af; font-weight:500; }

body.jobs-board-mode{
  overflow-y:auto;
}
body.jobs-board-mode .main{
  height:auto;
  min-height:100vh;
  overflow:visible;
}
body.jobs-board-mode .content.jobs-content{
  flex:1 1 auto;
  height:auto;
  min-height:calc(100vh - 72px);
  overflow:visible;
}
body.jobs-board-mode .content.jobs-content #boardView.active{
  display:block;
  min-height:auto;
  overflow:visible;
}
body.jobs-board-mode .kanban-column-body{
  height:auto;
  min-height:520px;
  max-height:calc(100vh - 250px);
}
body.jobs-board-mode .app-footer{
  display:block;
}
.col-new{ color:#111827; }
.col-scheduled{ color:#4f46e5; }
.col-inprogress{ color:#d97706; }
.col-completed{ color:#059669; }
.col-invoiced{ color:#7c3aed; }
.col-cancelled{ color:#dc2626; }

.job-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  margin-bottom:14px;
}
.job-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:8px;
  margin-bottom:3px;
}
.job-title{ font-weight:700; font-size:14.5px; color:#111827; line-height:1.3; }
.job-priority{ font-size:12px; font-weight:600; white-space:nowrap; }
.job-priority-text{display:inline-block;font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap}
.priority-none{color:#64748b}
.job-client{ font-size:13px; color:#6b7280; }
.job-card-meta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.9fr);gap:12px;margin:9px 0 13px}
.job-card-people{display:grid;align-content:start;gap:6px;margin:0}
.job-card-people .job-client,.job-card-people .job-worker{display:flex;align-items:flex-start;gap:6px;min-width:0;color:#6b7280;font-size:12.5px;overflow:visible;white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.job-card-people .job-worker{color:#475569}
.job-card-people strong{color:#273449;font-size:12px;font-weight:650;flex:0 0 auto;white-space:nowrap}
.job-card-people .job-client>span,.job-card-people .job-worker>span{min-width:0;overflow-wrap:anywhere}
.job-card-people svg{width:13px!important;height:13px!important;flex:0 0 13px;margin-top:2px;color:#8b5cf6}
.job-card-schedule{display:grid;align-content:start;justify-items:start;gap:5px;min-width:0;color:#8793a6;text-align:left}
.job-card-schedule span{display:flex;align-items:center;justify-content:flex-start;gap:5px;max-width:100%;font-size:11.5px;line-height:1.25;white-space:nowrap;text-align:left}
.job-card-schedule .job-location{
  align-items:flex-start;
  overflow:visible;
  text-align:left;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.job-card-schedule .job-location svg{margin-top:1px}
.job-card-schedule .job-time{align-items:flex-start;white-space:normal}
.job-time-range-text{display:grid!important;justify-content:start!important;gap:2px!important;text-align:left!important;white-space:nowrap!important}
.job-time-range-text small{color:inherit;font-size:11px;line-height:1.2}
.job-card-schedule svg{width:12px!important;height:12px!important;flex:0 0 12px;color:#94a3b8}
.technician-status-badge{cursor:default}
.job-card-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.job-date{ font-size:12.5px; color:#9ca3af; white-space:nowrap; }
.job-card-datetime{display:grid;gap:3px;justify-items:end;color:#8793a6}
.job-card-datetime .job-date,.job-card-datetime .job-time{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;white-space:nowrap}
.job-card-datetime svg{width:12px!important;height:12px!important;flex:0 0 12px}

/* Priority text colors */
.priority-high{ color:#ea580c; }
.priority-medium{ color:#2563eb; }
.priority-low{ color:#6b7280; }
.priority-urgent{ color:#dc2626; }

/* Category pill text color variant */
.cat-pill.text-blue{ color:#020617; }

/* Jobs list (table) status pill w/ dropdown chevron */
.job-status,
.job-action-dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:130px;
  justify-content:space-between;
  font-size:12.5px;
  font-weight:500;
  padding: 3px 6px 3px 15px;
  border-radius:16px;
  cursor:pointer;
  border:1px solid transparent;
  position:relative;
  background:transparent;
}
.job-status > svg,
.job-action-dropdown-toggle > svg{
  width:12px;
  height:12px;
  transition:transform .16s ease;
}
.job-status.open > svg,
.job-action-dropdown-toggle[aria-expanded="true"] > svg{ transform:rotate(180deg); }
.status-new{ background:#eff6ff; color:#2563eb; border-color:#bfdbfe; }
.status-scheduled{ background:#eef2ff; color:#4f46e5; border-color:#c7d2fe; }
.status-inprogress{ background:#fffbeb; color:#d97706; border-color:#fde68a; }
.status-completed{ background:#ecfdf5; color:#059669; border-color:#a7f3d0; }
.status-invoiced{ background:#faf5ff; color:#7c3aed; border-color:#e9d5ff; }
.status-cancelled{ background:#fff1f2; color:#dc2626; border-color:#fecdd3; }

.status-dropdown{
  position:absolute;
  min-width:132px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  box-shadow:0 12px 28px rgba(17,24,39,.12);
  padding:4px;
  z-index:1055;
}
.status-option{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 8px;
  border-radius:6px;
  color:#1f2937;
  font-size:13px;
  font-weight:500;
  line-height:1.2;
  cursor:pointer;
}
.status-option:hover{ background:#7c3aed; color:#fff; font-weight:600; }
.status-option.selected{
  background:#7c3aed;
  color:#fff;
  font-weight:600;
}
.status-option .check{
  display:none;
  width:13px;
  height:13px;
  color:currentColor;
}
.status-option.selected .check{ display:block; }

.job-action-wrap{
  position:relative;
  display:inline-flex;
  z-index:5;
}
.job-action-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:104px;
  padding:3px 6px 3px 15px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#f8fafc;
  color:#475569;
  font-size:12.5px;
  font-weight:500;
  cursor:pointer;
}
.job-action-toggle svg{
  width:12px;
  height:12px;
  transition:transform .16s ease;
}
.job-action-wrap.open .job-action-toggle svg{ transform:rotate(180deg); }
.job-action-menu{
  display:none;
  position:absolute;
  top:calc(100% + 4px);
  right:0;
  min-width:132px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  box-shadow:0 12px 28px rgba(17,24,39,.12);
  padding:4px;
  z-index:1055;
}
.job-action-wrap.open .job-action-menu{ display:block; }
.table-responsive:has(.job-action-wrap.open),
.invoice-table-responsive:has(.job-action-wrap.open),
.dashboard-table-responsive:has(.job-action-wrap.open),
.technician-dashboard-table-responsive:has(.job-action-wrap.open){
  overflow:visible !important;
}
.job-action-wrap.open{
  z-index:80;
}
.job-action-option{
  display:flex;
  width:100%;
  align-items:center;
  gap:8px;
  padding:6px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#1f2937;
  font-size:13px;
  font-weight:500;
  line-height:1.2;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .16s ease, color .16s ease, transform .16s ease;
}
.job-action-option:hover{
  background:#7c3aed;
  color:#fff;
  font-weight:600;
  transform:translateX(2px);
}
.job-action-option:active{
  background:#e5e7eb;
}
.job-action-option svg{
  width:14px;
  height:14px;
  flex:0 0 14px;
}

.jobs-table-card{
  padding:0;
  overflow:visible;
  border-radius:14px;
  border-color:#dfe3ea;
}
.jobs-table-card .dataTables_wrapper{ overflow:visible; }
.jobs-table-card .dataTables_wrapper .dataTables_info{
  color:#64748b;
  font-size:13px;
  padding:0;
}
.datatable-page-size{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:14px 18px 10px;
}
.datatable-page-size .dataTables_length,
.datatable-page-size .dt-length{
  margin:0;
  color:#64748b;
  font-size:13px;
  font-weight:600;
}
.datatable-page-size label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  white-space:nowrap;
}
.datatable-page-size select{
  width:auto;
  min-width:72px;
  height:36px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background-color:#fff;
  color:#0f172a;
  font-size:13px;
  font-weight:700;
  padding:0 28px 0 10px;
  box-shadow:0 6px 14px rgba(15,23,42,.04);
}
.datatable-page-size select:focus{
  border-color:#8b5cf6;
  box-shadow:0 0 0 3px rgba(124,58,237,.12);
  outline:0;
}
.jobs-datatable-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 18px;
  border-top:1px solid #e5e7eb;
  flex-wrap:wrap;
}
.jobs-datatable-footer .dataTables_paginate{
  padding:0;
  margin-left:auto;
}
.jobs-datatable-footer .pagination{
  gap:6px;
  margin:0;
  flex-wrap:wrap;
}
.jobs-datatable-footer .page-link{
  min-width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e5e7eb;
  border-radius:9px !important;
  color:#7c3aed;
  background:#fff;
  font-size:13px;
  font-weight:700;
  box-shadow:none;
}
.jobs-datatable-footer .page-link svg{
  width:15px;
  height:15px;
}
.jobs-datatable-footer .page-link:hover{
  background:#f3e8ff;
  border-color:#c4b5fd;
  color:#6d28d9;
}
.jobs-datatable-footer .page-item.active .page-link{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
  box-shadow:0 8px 18px rgba(124,58,237,.22);
}
.jobs-datatable-footer .page-item.disabled .page-link{
  color:#cbd5e1;
  background:#fff;
  border-color:#e5e7eb;
}

.job-list-table.dataTable{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.job-list-table thead th{
  padding:14px 20px;
  color:#64748b;
  font-size:14px;
  font-weight:500;
  border-bottom:1px solid #dfe3ea;
}
.job-list-table thead th:nth-child(1){width:20%}
.job-list-table thead th:nth-child(2){width:15%}
.job-list-table thead th:nth-child(3){width:15%}
.job-list-table thead th:nth-child(4){width:10%}
.job-list-table thead th:nth-child(5){width:12%}
.job-list-table thead th:nth-child(6){width:13%}
.job-list-table thead th:nth-child(7){width:10%}
.job-list-table tbody td{
  padding:15px 20px;
  color:#020617;
  font-size:12px;
  border-bottom:1px solid #dfe3ea;
}
.job-list-table tbody tr:last-child td{ border-bottom:none; }
.job-list-table strong{ font-weight:700; }
.technician-job-title-link{position:relative;z-index:2;display:inline-block;color:#020617;text-decoration:none;transition:color .18s ease}
.technician-job-title-link:hover,.technician-job-title-link:focus{color:#6d28d9;text-decoration:none}
.job-list-table .muted{ color:#64748b; }
.job-list-table .cat-pill{
  background:#f4f4f5;
  color:#020617;
  padding:3px 8px;
  font-size:12px;
  font-weight:500;
}

/* Create job modal */
.job-modal-dialog{ max-width:462px; }
#createJobModal .job-modal-dialog,
#scheduleAppointmentModal .job-modal-dialog,
#rescheduleJobModal .job-modal-dialog,
#workerScheduleJobModal .job-modal-dialog,
#workerRescheduleModal .job-modal-dialog{
  width:calc(100% - 24px);
  max-width:560px;
}
#createJobModal .job-modal-dialog{
  max-width:700px;
}
.job-modal-content{
  background:#f6f7f8;
  border:1px solid #e5e7eb;
  border-radius:10px;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  overflow:visible;
}
.job-modal-content .modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:26px 22px 16px;
}
.job-modal-content .modal-title{
  color:#111827;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
}
.job-modal-content .btn-close{
  width:10px;
  height:10px;
  margin:0 0 0 auto;
  padding:0;
  background-size:10px;
  opacity:.72;
}
.job-modal-content .modal-body{
  padding:10px 22px 22px;
  overflow:visible;
}
.job-modal-content .mb-3,
.job-modal-content .row.mb-3{ margin-bottom:16px !important; }
.job-modal-content .form-label{
  margin-bottom:7px;
  color:#111827;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
}
.job-form-control{
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.job-form-control::placeholder{ color:#6b7280; opacity:1; }
.job-form-control:focus{
  background:#f6f7f8;
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.job-form-control.is-invalid{
  border-color:#dc3545;
}
.job-modal-content textarea.job-form-control{
  min-height:70px;
  resize:vertical;
}
.modal-filter-select{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.modal-filter-select.is-invalid{
  border-color:#dc3545;
}
.modal-filter-select.is-invalid:focus{
  box-shadow:0 0 0 1px rgba(220,53,69,.25);
}
.job-modal-content .invalid-feedback{
  margin-top:6px;
  font-size:12.5px;
}
.modal-filter-select .filter-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.modal-filter-select svg.chevron{ color:#9ca3af; }
.modal-filter-select .filter-dropdown{
  width:100%;
  min-width:100%;
  max-height:240px;
  overflow-y:auto;
  border-radius:10px;
  padding:5px;
}
.modal-filter-select .filter-option{
  padding:6px 8px;
  font-size:13.5px;
  border-radius:6px;
}
.modal-filter-select .filter-option:hover{
  background:#7c3aed;
  color:#fff;
  font-weight:600;
}
.modal-filter-select .filter-option.selected{
  background:#7c3aed;
  color:#fff;
}
.modal-filter-select .filter-option.selected:hover{
  background:#6d28d9;
  color:#fff;
}
.modal-filter-select .filter-option .check{ display:none !important; }
.job-time-slot-picker{
  position:relative;
}
.job-time-slot-picker.is-loading{
  cursor:progress;
}
.job-time-slot-picker.is-loading .chevron{
  animation:spin .8s linear infinite;
}
.job-time-slot-menu{
  min-width:260px !important;
}
.job-time-select{
  position:relative;
}
.job-time-select.open{
  z-index:1090;
}
.job-time-select .job-time-slot-menu{
  top:calc(100% + 6px);
  right:auto;
  bottom:auto;
  left:0;
  z-index:1095;
}
.job-time-slot-option{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:34px;
}
.job-time-slot-option > span:first-child{
  flex:1;
  min-width:0;
}
.job-time-slot-option .job-slot-state{
  color:#94a3b8;
  font-size:11px;
  font-weight:600;
}
.job-time-slot-option.is-booked,
.job-time-slot-option.is-booked:hover{
  background:#f1f3f6;
  color:#9ca3af;
  cursor:not-allowed;
  font-weight:400;
  opacity:.8;
  pointer-events:none;
  transform:none;
}
.job-time-slot-option.is-booked .job-slot-state{
  color:#dc3545;
}
.job-time-slot-feedback{
  color:#7c8799;
  font-size:11.5px;
  line-height:1.35;
  margin-top:5px;
  min-height:16px;
}
.job-native-time{min-height:40px!important;background:#f8fafc!important}
.job-arrival-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:0 0 3px;border:0;border-bottom:1px solid transparent;background:transparent;color:#6d28d9;font-size:12px;font-weight:700;transition:border-color .18s ease,color .18s ease}
.job-arrival-toggle:hover,.job-arrival-toggle:focus-visible{border-bottom-color:#7c3aed;color:#5b21b6}
.job-arrival-toggle svg{width:14px!important;height:14px!important}
.job-arrival-panel{display:none;margin-top:10px;padding:14px;border:1px solid #ddd6fe;border-radius:8px;background:#faf9ff}
.job-arrival-panel.is-open{display:block;animation:arrivalPanelIn .2s ease}
.job-arrival-panel-title{color:#182033;font-size:13px;font-weight:700}
.job-arrival-preview{margin:3px 0 11px;color:#64748b;font-size:11.5px}
.job-arrival-options{display:flex;flex-wrap:wrap;gap:6px}
.job-arrival-option{min-height:30px;padding:5px 10px;display:inline-flex;align-items:center;gap:5px;border:1px solid #d8deea;border-radius:999px;background:#fff;color:#475569;font-size:11px;font-weight:600}
.job-arrival-option.active{border-color:#8b5cf6;background:#f1edff;color:#6d28d9}
.job-arrival-option svg{width:12px!important;height:12px!important}
.job-arrival-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.job-arrival-cancel,.job-arrival-apply{min-height:32px;padding:6px 11px;border-radius:7px;font-size:11px;font-weight:700}
.job-arrival-cancel{border:1px solid #d8deea;background:#fff;color:#64748b}
.job-arrival-apply{display:inline-flex;align-items:center;gap:5px;border:0;background:var(--gradient);color:#fff}
.job-arrival-apply svg{width:13px!important;height:13px!important}
.job-arrival-summary{margin-top:9px;display:flex;align-items:center;gap:7px;color:#475569;font-size:11.5px}
.job-arrival-summary strong{color:#1f2937}.job-arrival-edit{padding:0;border:0;background:transparent;color:#6d28d9;font-weight:700}
@keyframes arrivalPanelIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media (min-width:576px){
  .job-time-range .job-arrival-toggle{
    margin-left:calc(-100% - 16px);
  }
  .job-time-range .job-arrival-panel,
  .job-time-range .job-arrival-summary{
    width:calc(200% + 16px);
    margin-left:calc(-100% - 16px);
  }
}

.settings-arrival-box{padding:18px;border:1px solid #e1e6ee;border-radius:8px;background:#fafbfc}
.settings-arrival-box h3{margin:0 0 4px;color:#182033;font-size:16px;font-weight:700}
.settings-arrival-box > p{margin:0 0 16px!important;font-size:12px!important}
.settings-arrival-options{display:flex;flex-wrap:wrap;gap:8px}
.settings-arrival-options input{position:absolute;opacity:0;pointer-events:none}
.settings-arrival-options span{min-height:34px;padding:7px 12px;display:inline-flex;align-items:center;border:1px solid #d8deea;border-radius:999px;background:#fff;color:#475569;font-size:12px;cursor:pointer}
.settings-arrival-options input:checked + span{border-color:#8b5cf6;background:#f1edff;color:#6d28d9;font-weight:700}
.settings-arrival-style{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;cursor:pointer}
.settings-arrival-style input{margin-top:3px;accent-color:#6d28d9}
.settings-arrival-style span,.settings-arrival-style strong,.settings-arrival-style small{display:block}
.settings-arrival-style strong{color:#273044;font-size:13px}.settings-arrival-style small{margin-top:2px;color:#7b879d;font-size:11.5px}
.settings-payment-box>div>svg{width:18px;height:18px;color:#7c3aed;flex:0 0 auto;margin-top:1px}
.stripe-configured-state{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #a7f3d0;border-radius:7px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:600}
.stripe-configured-state svg{width:15px;height:15px}
.quick-client-open{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:0;border:0;background:transparent;color:#6d28d9;font-size:12px;font-weight:650}
.quick-client-open svg{width:13px!important;height:13px!important}
.quick-client-panel{max-height:0;margin-top:0;padding:0 14px;overflow:hidden;border:0 solid #dfe4ea;border-radius:10px;background:#f8fafc;opacity:0;transform:translateY(-10px);transition:max-height .35s ease,opacity .25s ease,transform .35s ease,margin .35s ease,padding .35s ease,border-width .2s ease}
.quick-client-panel.is-open{max-height:720px;margin-top:12px;padding:14px;border-width:1px;opacity:1;transform:translateY(0)}
.quick-client-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.quick-client-panel-head strong,.quick-client-panel-head small{display:block}.quick-client-panel-head strong{font-size:14px}.quick-client-panel-head small{margin-top:2px;color:#64748b;font-size:11px}
.quick-client-close{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:#64748b}.quick-client-close svg{width:14px!important;height:14px!important}
.quick-client-password{position:relative}.quick-client-password input{padding-right:40px}.quick-client-password-toggle{position:absolute;top:50%;right:10px;display:inline-flex;transform:translateY(-50%);border:0;background:transparent;color:#64748b;padding:3px}.quick-client-password-toggle svg{width:15px!important;height:15px!important}
.quick-client-panel .form-control.is-invalid,.quick-client-panel .form-select.is-invalid{border-color:#dfe4ea;background-image:none;box-shadow:0 1px 2px rgba(15,23,42,.06)}
.quick-client-panel .form-control.is-invalid:focus,.quick-client-panel .form-select.is-invalid:focus{border-color:#6366f1;box-shadow:0 0 0 1px rgba(99,102,241,.35)}
.quick-client-panel .invalid-feedback{margin-top:5px;color:#dc3545;font-size:11px;line-height:1.3}
.quick-client-panel .quick-client-password .form-control{padding-right:40px!important;background-image:none!important}
.quick-client-panel .iti{width:100%}.quick-client-panel .iti input{width:100%;padding-left:82px!important}.quick-client-panel .iti__flag-container{font-size:12px}
.quick-client-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px}.quick-client-actions .btn{min-height:36px;padding:7px 14px;font-size:12px}.quick-client-actions svg{width:14px!important;height:14px!important}
.select2-quick-client{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;border:0;border-radius:7px;background:#f1ecff;color:#6d28d9;font-size:12px;font-weight:700}.select2-quick-client:hover{color:#fff;background:var(--gradient)}
@media (min-width:576px){
  #scheduleQuickClient{
    width:calc(200% + 16px);
  }
}

table.dataTable tbody tr[data-row-url]{
  cursor:pointer;
  transition:background-color .18s ease, box-shadow .18s ease;
}
table.dataTable tbody tr[data-row-url]:hover > td{
  background:#faf9ff;
}
table.dataTable tbody tr[data-row-url]:focus-visible{
  outline:2px solid #7c3aed;
  outline-offset:-2px;
}
.table-entity-link{
  color:inherit;
  text-decoration:none;
  transition:color .16s ease;
}
.table-entity-link:hover{
  color:#6d28d9;
  text-decoration:underline;
  text-underline-offset:3px;
}
.job-form-page .select2-container,
.job-modal-content .select2-container{
  width:100% !important;
}
.job-form-page .select2-container--default .select2-selection--single,
.job-modal-content .select2-container--default .select2-selection--single{
  min-height:33px;
  height:33px;
  background:#f6f7f8;
  border:1px solid #dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  display:flex;
  align-items:center;
}
.job-form-page .select2-container--default .select2-selection--single .select2-selection__rendered,
.job-modal-content .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:#1f2937;
  font-size:14px;
  line-height:31px;
  padding-left:12px;
  padding-right:34px;
}
.job-form-page .select2-container--default .select2-selection--single .select2-selection__placeholder,
.job-modal-content .select2-container--default .select2-selection--single .select2-selection__placeholder{
  color:#6b7280;
}
.job-form-page .select2-container--default .select2-selection--single .select2-selection__arrow,
.job-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:31px;
  right:8px;
}
.job-form-page .select2-container--default.select2-container--focus .select2-selection--single,
.job-form-page .select2-container--default.select2-container--open .select2-selection--single,
.job-modal-content .select2-container--default.select2-container--focus .select2-selection--single,
.job-modal-content .select2-container--default.select2-container--open .select2-selection--single{
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.job-form-page .select2-container--default .select2-selection--single.is-invalid,
.job-form-page .select2-container--default.is-invalid .select2-selection--single,
.job-modal-content .select2-container--default .select2-selection--single.is-invalid,
.job-modal-content .select2-container--default.is-invalid .select2-selection--single{
  border-color:#dc3545;
}
.modal-content > .select2-container--open,
.modal-content .select2-dropdown{
  z-index:1085;
}
.select2-dropdown.job-worker-dropdown,
.select2-container--default .select2-dropdown{
  border-color:#dfe4ea;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 14px 36px rgba(15,23,42,.16);
}
.select2-container--default .select2-results__option{
  font-size:13.5px;
  padding:8px 10px;
}
.job-helper-text{
  margin-top:6px;
  color:#64748b;
  font-size:12.5px;
}
.create-job-submit{
  position:relative;
  overflow:hidden;
  border:0;
  border-radius:9px;
  background:linear-gradient(90deg,#8ea2f1,#b083ef);
  color:#fff;
  font-size:0;
  font-weight:700;
  height:33px;
  margin-top:1px;
  transition:transform .18s ease, box-shadow .18s ease, color .18s ease;
}
.create-job-submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#4f46e5,#7c3aed,#9333ea);
  transform:translateX(-105%);
  transition:transform .35s ease;
  z-index:0;
}
.create-job-submit:hover,
.create-job-submit:focus{
  color:#fff;
  box-shadow:0 10px 22px rgba(124,58,237,.28);
  transform:translateY(-1px);
}
.create-job-submit:active{ color:#fff !important; }
.create-job-submit:hover::before,
.create-job-submit:focus::before{ transform:translateX(0); }
.create-job-submit{ isolation:isolate; }
.create-job-submit::after{
  content:"Create Job";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  z-index:1;
}
.create-job-submit.is-update::after{ content:"Update Job"; }

/* =========================================================
   Clients Page
========================================================= */
.clients-content{
  gap:20px;
  padding:30px 28px 34px;
}
.clients-page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.clients-title{
  color:#020617;
  font-size:24px;
  font-weight:800;
  line-height:1.15;
}
.clients-subtitle{
  margin-top:6px;
  color:#64748b;
  font-size:14px;
}
.clients-add-btn{
  height:34px;
  min-width:113px;
  justify-content:center;
  gap:8px;
  border-radius:9px;
  font-size:14px;
  padding:8px 14px;
}
.clients-add-btn svg{ width:15px; height:15px; }
.clients-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.clients-search{
  width:345px;
  height:34px;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  color:#8a94a6;
}
.clients-search svg{ width:15px; height:15px; }
.clients-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#111827;
  font:inherit;
  font-size:14px;
}
.clients-search input::placeholder{ color:#8a94a6; }
.clients-type-filter{
  width:144px;
  height:34px;
  justify-content:space-between;
  border-color:#dfe4ea;
  border-radius:10px;
  padding:7px 11px;
  background:#fff;
}
.clients-type-filter .filter-dropdown{ min-width:144px; }
.clients-results-shell{
  position:relative;
  min-height:120px;
}
.clients-search-loader{
  position:absolute;
  inset:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#5f4be8;
  font-size:13px;
  font-weight:600;
  background:rgba(248,249,252,.82);
  backdrop-filter:blur(2px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
.clients-results-shell.is-loading .clients-search-loader{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.clients-search-spinner{
  width:20px;
  height:20px;
  flex:0 0 20px;
  border:2px solid rgba(111,76,255,.2);
  border-top-color:#6f4cff;
  border-radius:50%;
  animation:clients-search-spin .65s linear infinite;
}
@keyframes clients-search-spin{
  to{ transform:rotate(360deg); }
}
.clients-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 16px;
}
.client-card{
  position:relative;
  display:flex;
  gap:16px;
  min-height:154px;
  border:1px solid #dfe4ea;
  border-radius:14px;
  background:#fff;
  padding:18px;
}
.client-card-actions{
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  align-items:center;
  gap:6px;
  z-index:2;
}
.client-card-icon-btn{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fff;
  color:#64748b;
  padding:0;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.client-card-icon-btn:hover,
.client-card-icon-btn:focus{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
  transform:translateY(-1px);
}
.client-delete-icon:hover,
.client-delete-icon:focus{
  background:#ef4444;
  border-color:#ef4444;
  color:#fff;
}
.client-card-icon-btn svg{ width:14px; height:14px; }
.client-delete-form{ margin:0; }
.client-avatar{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  color:#fff;
  font-size:18px;
  font-weight:700;
}
.client-avatar.bg-blue{ background:#3b82f6; }
.client-avatar.bg-purple{ background:#a855f7; }
.client-avatar.bg-pink{ background:#ec4899; }
.client-avatar.bg-green{ background:#10b981; }
.client-avatar.bg-orange{ background:#f97316; }
.client-avatar.bg-indigo{ background:#6366f1; }
.client-info{ min-width:0; padding-top:1px; padding-right:58px; }
.client-name-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.client-name{
  color:#020617;
  font-size:14px;
  font-weight:700;
}
.client-badge{
  display:inline-flex;
  align-items:center;
  height:17px;
  border-radius:999px;
  padding:0 7px;
  font-size:10px;
  font-weight:700;
}
.client-badge.active{ background:#dcfce7; color:#059669; }
.client-badge.lead{ background:#dbeafe; color:#2563eb; }
.client-status-row{display:flex;align-items:center;gap:7px;margin:5px 0 10px}
.client-status-label{color:#64748b;font-size:11.5px;font-weight:600}
.client-status-row .client-badge{margin:0;text-transform:capitalize}
.client-type{
  margin-top:4px;
  margin-bottom:10px;
  color:#64748b;
  font-size:12px;
}
.client-meta{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  color:#64748b;
  font-size:12px;
  line-height:1.1;
}
.client-meta svg{
  width:12px;
  height:12px;
  flex:0 0 12px;
  color:#64748b;
}
.client-edit-link{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:12px;
  border:0;
  background:transparent;
  color:#7c3aed;
  font-size:12.5px;
  font-weight:700;
  padding:0;
}
.client-edit-link:hover{ color:#6d28d9; }
.client-edit-link svg{ width:13px; height:13px; }
.clients-empty-state{
  grid-column:1/-1;
  min-height:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px dashed #dfe4ea;
  border-radius:14px;
  background:#fff;
  color:#020617;
  text-align:center;
  padding:28px;
}
.clients-pagination{
  display:flex;
  justify-content:flex-end;
  margin-top:4px;
}
.clients-pagination .pagination{ gap:6px; margin-bottom:0; flex-wrap:wrap; }
.clients-pagination .page-link{
  min-width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-color:#dfe4ea;
  border-radius:9px !important;
  color:#475569;
  font-size:13px;
  font-weight:600;
  box-shadow:none;
}
.clients-pagination .page-link:hover{
  background:#f3e8ff;
  border-color:#c4b5fd;
  color:#7c3aed;
}
.clients-pagination .page-item.active .page-link{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
}
.clients-pagination .page-item.disabled .page-link{
  color:#cbd5e1;
  background:#fff;
}

/* Add client modal */
.client-modal-dialog{ max-width:462px; }
.client-modal-content{
  background:#f6f7f8;
  border:1px solid #e5e7eb;
  border-radius:10px;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  overflow:visible;
}
.client-modal-content .modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:26px 22px 16px;
}
.client-modal-content .modal-title{
  color:#111827;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
}
.client-modal-content .btn-close{
  width:10px;
  height:10px;
  margin:0 0 0 auto;
  padding:0;
  background-size:10px;
  opacity:.72;
}
.client-modal-content .modal-body{
  padding:10px 22px 22px;
  overflow:visible;
}
.client-modal-content .mb-3,
.client-modal-content .row.mb-3{ margin-bottom:16px !important; }
.client-modal-content .form-label{
  margin-bottom:7px;
  color:#111827;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
}
.client-form-control{
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.client-form-control::placeholder{ color:#6b7280; opacity:1; }
.client-form-control:focus{
  background:#f6f7f8;
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.client-modal-content .iti{
  width:100%;
}
.client-modal-type{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.client-modal-type .filter-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.client-modal-type svg.chevron{ color:#9ca3af; }
.client-modal-type .filter-dropdown{
  width:100%;
  min-width:100%;
  border-radius:10px;
  padding:5px;
}
.client-modal-type .filter-option{
  padding:6px 8px;
  border-radius:6px;
  font-size:13.5px;
}
.client-modal-type .filter-option.selected{
  background:#7c3aed;
  color:#fff;
}
.client-modal-type .filter-option .check{ display:none !important; }
.add-client-submit{
  position:relative;
  overflow:hidden;
  height:33px;
  margin-top:1px;
  border:0;
  border-radius:9px;
  background:linear-gradient(90deg,#8ea2f1,#b083ef);
  color:#fff;
  font-size:0;
  font-weight:700;
  transition:transform .18s ease, box-shadow .18s ease;
}
.add-client-submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#4f46e5,#7c3aed,#9333ea);
  transform:translateX(-105%);
  transition:transform .35s ease;
  z-index:0;
}
.add-client-submit::after{
  content:"Add Client";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  z-index:1;
}
.add-client-submit.is-update::after{ content:"Update Client"; }
.add-client-submit:hover,
.add-client-submit:focus{
  color:#fff;
  box-shadow:0 10px 22px rgba(124,58,237,.28);
  transform:translateY(-1px);
}
.add-client-submit:active{ color:#fff !important; }
.add-client-submit:hover::before,
.add-client-submit:focus::before{ transform:translateX(0); }

@media (max-width: 1180px){
  .clients-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px){
  .clients-grid{ grid-template-columns:1fr; }
  .clients-page-head{ align-items:stretch; flex-direction:column; }
  .clients-add-btn{ align-self:flex-start; }
}

/* Clients responsive pass */
.clients-content{
  width:100%;
}
.clients-page-head,
.clients-toolbar{
  min-width:0;
}
.clients-page-head > div:first-child{
  min-width:0;
}
.clients-toolbar{
  width:100%;
}
.clients-search{
  flex:1 1 320px;
  min-width:240px;
}
.clients-type-filter{
  flex:0 0 180px;
}
.client-card{
  min-width:0;
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.client-card:hover{
  border-color:rgba(124,58,237,.28);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
  transform:translateY(-2px);
}
.client-info{
  width:100%;
}
.client-name,
.client-type,
.client-meta{
  min-width:0;
}
.client-meta{
  overflow-wrap:anywhere;
}
.clients-pagination{
  width:100%;
}
.clients-pagination .pagination{
  max-width:100%;
}
.client-modal-content{
  max-width:100%;
}

@media (min-width: 1600px){
  .clients-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media (min-width: 2200px){
  .clients-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}
@media (max-width: 991.98px){
  .clients-content{
    padding:22px 18px 28px;
  }
  .clients-page-head{
    align-items:stretch;
    flex-direction:column;
  }
  .clients-add-btn{
    align-self:flex-start;
  }
  .clients-pagination{
    justify-content:center;
  }
}
@media (max-width: 575.98px){
  .clients-content{
    padding:18px 14px 24px;
  }
  .clients-title{
    font-size:21px;
  }
  .clients-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .clients-search,
  .clients-type-filter{
    flex:0 0 auto;
    width:100%;
    min-width:0;
  }
  .clients-add-btn{
    width:auto;
    align-self:flex-end;
  }
  .client-card{
    padding:16px;
    gap:12px;
  }
  .client-info{
    padding-right:64px;
  }
  .client-modal-dialog{
    max-width:none;
    margin:12px;
  }
  .client-modal-content .modal-header{
    padding:22px 18px 14px;
  }
  .client-modal-content .modal-body{
    padding:8px 18px 20px;
  }
}

/* =========================================================
   Workers Page
========================================================= */
.workers-content{
  gap:20px;
  padding:30px 28px 34px;
}
.workers-page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.workers-title{
  color:#020617;
  font-size:24px;
  font-weight:800;
  line-height:1.15;
}
.workers-subtitle{
  margin-top:6px;
  color:#64748b;
  font-size:14px;
}
.workers-add-btn{
  height:34px;
  min-width:122px;
  justify-content:center;
  gap:8px;
  border-radius:9px;
  font-size:14px;
  padding:8px 14px;
}
.workers-add-btn svg{ width:15px; height:15px; }
.workers-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.workers-search{
  width:345px;
  height:34px;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  color:#8a94a6;
}
.workers-search svg{ width:15px; height:15px; }
.workers-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#111827;
  font:inherit;
  font-size:14px;
}
.workers-search input::placeholder{ color:#8a94a6; }
.workers-specialty-filter{
  width:144px;
  height:34px;
  justify-content:space-between;
  border-color:#dfe4ea;
  border-radius:10px;
  padding:7px 11px;
  background:#fff;
}
.workers-specialty-filter .filter-dropdown{ min-width:180px; }
.workers-results-shell{
  position:relative;
  min-height:120px;
}
.workers-search-loader{
  position:absolute;
  inset:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#5f4be8;
  font-size:13px;
  font-weight:600;
  background:rgba(248,249,252,.82);
  backdrop-filter:blur(2px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
.workers-results-shell.is-loading .workers-search-loader{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.workers-search-spinner{
  width:20px;
  height:20px;
  flex:0 0 20px;
  border:2px solid rgba(111,76,255,.2);
  border-top-color:#6f4cff;
  border-radius:50%;
  animation:workers-search-spin .65s linear infinite;
}
@keyframes workers-search-spin{
  to{ transform:rotate(360deg); }
}
.workers-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 14px;
  align-items:stretch;
}
.worker-card{
  position:relative;
  min-height:197px;
  height:100%;
  display:flex;
  flex-direction:column;
  border:1px solid #dfe4ea;
  border-radius:14px;
  background:#fff;
  padding:18px;
}
.worker-card-link,
.client-card-link{position:absolute;inset:0;z-index:1;border-radius:inherit}
.worker-card-link:focus-visible,
.client-card-link:focus-visible{outline:2px solid #7652ee;outline-offset:3px}
.worker-card-actions{z-index:2}
.worker-card-actions{
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  align-items:center;
  gap:6px;
  z-index:2;
}
.worker-delete-form{ margin:0; }
.worker-card-icon-btn{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fff;
  color:#64748b;
  padding:0;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.worker-card-icon-btn svg{
  width:14px;
  height:14px;
}
.worker-card-icon-btn:hover,
.worker-card-icon-btn:focus{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
  transform:translateY(-1px);
}
.worker-delete-icon:hover,
.worker-delete-icon:focus{
  background:#ef4444;
  border-color:#ef4444;
}
.worker-card-topline{
  display:flex;
  align-items:flex-start;
  gap:15px;
  margin-bottom:23px;
  padding-right:58px;
}
.worker-page-avatar{
  width:51px;
  height:51px;
  flex:0 0 51px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  color:#fff;
  font-size:20px;
  font-weight:700;
}
.worker-page-avatar.bg-purple{ background:#a855f7; }
.worker-page-avatar.bg-blue{ background:#3b82f6; }
.worker-page-avatar.bg-green{ background:#10b981; }
.worker-page-avatar.bg-orange{ background:#f97316; }
.worker-page-avatar.bg-pink{ background:#ec4899; }
.worker-main{ min-width:0; padding-top:2px; }
.worker-card-name{
  color:#020617;
  font-size:14px;
  font-weight:700;
  line-height:1.25;
}
.worker-card-specialty{
  margin-top:3px;
  color:#64748b;
  font-size:13px;
  line-height:1.2;
}
.worker-status-row{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:7px;
}
.worker-status{
  display:inline-flex;
  align-items:center;
  height:18px;
  border-radius:999px;
  padding:0 8px;
  font-size:10px;
  font-weight:700;
  line-height:1;
}
.worker-status.available{
  background:#dcfce7;
  color:#059669;
}
.worker-status.on-job{
  background:#fef3c7;
  color:#d97706;
}
.worker-status.inactive{
  background:#f1f5f9;
  color:#64748b;
}
.worker-rating-inline{
  display:inline-flex;
  align-items:center;
  gap:3px;
  color:#f59e0b;
  font-size:12px;
  font-weight:700;
}
.worker-rating-inline svg{
  width:12px;
  height:12px;
  fill:#f59e0b;
  color:#f59e0b;
}
.worker-contact{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  color:#64748b;
  font-size:12px;
  line-height:1.1;
}
.worker-contact svg{
  width:12px;
  height:12px;
  flex:0 0 12px;
  color:#64748b;
}
.worker-rate{
  margin-top:8px;
  color:#334155;
  font-size:12px;
  line-height:1.1;
}
.worker-tags{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  min-height:18px;
  margin-top:auto;
  padding-top:13px;
}
.worker-tags span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:17px;
  border-radius:999px;
  background:#eaf2ff;
  color:#2563eb;
  padding:0 7px;
  font-size:10px;
  line-height:1;
}
.worker-tags svg{
  width:8px;
  height:8px;
}

@media (max-width: 1180px){
  .workers-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px){
  .workers-grid{ grid-template-columns:1fr; }
  .workers-page-head{ align-items:stretch; flex-direction:column; }
  .workers-add-btn{ align-self:flex-start; }
  .workers-search{ width:100%; }
  .workers-specialty-filter{ width:100%; }
}

/* Employees responsive pass */
.workers-content{
  width:100%;
}
.workers-page-head,
.workers-toolbar{
  min-width:0;
}
.workers-page-head > div:first-child{
  min-width:0;
}
.workers-toolbar{
  width:100%;
}
.workers-search{
  flex:1 1 320px;
  min-width:240px;
}
.workers-specialty-filter{
  flex:0 0 180px;
}
.worker-card{
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.worker-card:hover{
  border-color:rgba(124,58,237,.28);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
  transform:translateY(-2px);
}
.workers-pagination{
  display:flex;
  justify-content:flex-end;
  width:100%;
}
.workers-pagination .pagination{
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:0;
}
.employee-form-page{
  gap:18px;
  padding:30px 28px 34px;
}
.employee-form-card{
  border:1px solid #dfe4ea;
  border-radius:14px;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.employee-form-card .card-body{
  padding:24px;
}
.employee-form-card .form-label,
.employee-form-card label{
  color:#1f2937;
  font-size:14px;
  font-weight:600;
  margin-bottom:8px;
}
.employee-form-card .form-control,
.employee-form-card .form-select{
  min-height:42px;
  border-color:#dfe4ea;
  border-radius:10px;
  font-size:14px;
}
.employee-form-card textarea.form-control{
  min-height:82px;
}
.employee-form-card .dropzone-area{
  border-color:#d8def0 !important;
  border-radius:14px !important;
}

@media (min-width: 1600px){
  .workers-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media (min-width: 2200px){
  .workers-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}
@media (max-width: 991.98px){
  .workers-content,
  .employee-form-page{
    padding:22px 18px 28px;
  }
  .workers-page-head{
    align-items:stretch;
    flex-direction:column;
  }
  .workers-add-btn{
    align-self:flex-end;
  }
  .workers-pagination{
    justify-content:center;
  }
}
@media (max-width: 575.98px){
  .workers-content,
  .employee-form-page{
    padding:18px 14px 24px;
  }
  .workers-title{
    font-size:21px;
  }
  .workers-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .workers-search,
  .workers-specialty-filter{
    flex:0 0 auto;
    width:100%;
    min-width:0;
  }
  .workers-add-btn,
  .employee-form-page .btn{
    width:100%;
  }
  .worker-card{
    padding:16px;
  }
  .worker-card-topline{
    padding-right:64px;
  }
  .employee-form-card .card-body{
    padding:18px;
  }
}

/* Add worker modal */
.worker-modal-dialog{ max-width:760px; }
.worker-modal-content{
  background:#f6f7f8;
  border:1px solid #e5e7eb;
  border-radius:10px;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  overflow:visible;
}
.worker-modal-content .modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:26px 22px 16px;
}
.worker-modal-content .modal-title{
  color:#111827;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
}
.worker-modal-content .btn-close{
  width:10px;
  height:10px;
  margin:0 0 0 auto;
  padding:0;
  background-size:10px;
  opacity:.72;
}
.worker-modal-content .modal-body{
  padding:10px 22px 22px;
  overflow:visible;
}
.worker-modal-content .mb-3,
.worker-modal-content .row.mb-3{ margin-bottom:16px !important; }
.worker-modal-content .form-label{
  margin-bottom:7px;
  color:#111827;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
}
.worker-form-control{
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.worker-form-control:focus{
  background:#f6f7f8;
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.worker-modal-content textarea.worker-form-control{
  min-height:70px;
  resize:vertical;
}
.worker-modal-specialty{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:33px;
  background:#f6f7f8;
  border-color:#dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
}
.worker-modal-specialty .filter-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.worker-modal-specialty svg.chevron{ color:#9ca3af; }
.worker-modal-specialty .filter-dropdown{
  width:100%;
  min-width:100%;
  border-radius:10px;
  padding:5px;
}
.worker-modal-specialty .filter-option{
  padding:6px 8px;
  border-radius:6px;
  font-size:13.5px;
}
.worker-modal-specialty .filter-option.selected{
  background:#7c3aed;
  color:#fff;
}
.worker-modal-specialty .filter-option:hover,
.workers-specialty-filter .filter-option:hover{
  background:#7c3aed;
  color:#fff;
}
.worker-modal-specialty .filter-option .check{ display:none !important; }
.add-worker-submit{
  position:relative;
  overflow:hidden;
  height:33px;
  margin-top:1px;
  border:0;
  border-radius:9px;
  background:linear-gradient(90deg,#8ea2f1,#b083ef);
  color:#fff;
  font-size:0;
  font-weight:700;
  transition:transform .18s ease, box-shadow .18s ease;
}
.add-worker-submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#4f46e5,#7c3aed,#9333ea);
  transform:translateX(-105%);
  transition:transform .35s ease;
  z-index:0;
}
.add-worker-submit::after{
  content:"Add Worker";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:14px;
  z-index:1;
}
.add-worker-submit.is-update::after{ content:"Update Worker"; }
.add-worker-submit:hover,
.add-worker-submit:focus{
  color:#fff;
  box-shadow:0 10px 22px rgba(124,58,237,.28);
  transform:translateY(-1px);
}
.add-worker-submit:active{ color:#fff !important; }
.add-worker-submit:hover::before,
.add-worker-submit:focus::before{ transform:translateX(0); }
.workers-empty-state{
  grid-column:1 / -1;
  display:flex;
  min-height:180px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  border:1px dashed #dfe4ea;
  border-radius:14px;
  background:#fff;
  color:#020617;
  text-align:center;
  padding:28px;
}
.workers-pagination{
  display:flex;
  justify-content:flex-end;
}
.workers-pagination .pagination{
  gap:6px;
  margin-bottom:0;
}
.workers-pagination .page-link{
  border-color:#e5e7eb;
  border-radius:8px;
  color:#7c3aed;
  font-size:13px;
}
.workers-pagination .page-item.active .page-link{
  background:#7c3aed;
  border-color:#7c3aed;
  color:#fff;
}
.workers-pagination .page-link:hover{
  background:#f3e8ff;
  border-color:#c4b5fd;
  color:#6d28d9;
}

.worker-password-control{position:relative}
.worker-password-control .worker-form-control{padding-right:42px}
.worker-password-toggle{position:absolute;top:50%;right:7px;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#64748b;display:flex;align-items:center;justify-content:center;padding:0}
.worker-password-toggle:hover{background:#f3e8ff;color:#7c3aed}
.worker-password-toggle svg{width:16px;height:16px}

.workers-pagination nav,.clients-pagination nav{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}
.workers-pagination nav>div,.clients-pagination nav>div{width:100%}
.workers-pagination nav .d-sm-flex,.clients-pagination nav .d-sm-flex{justify-content:space-between!important;gap:16px}
.workers-pagination nav p,.clients-pagination nav p{margin:0;text-align:left;white-space:nowrap}
.workers-pagination nav ul,.clients-pagination nav ul{margin-left:auto!important}

/* Responsive DataTables menus must remain visible outside child detail cells. */
.dataTables_wrapper,.dataTables_wrapper .table-responsive,.dataTables_wrapper td.child,.dataTables_wrapper td.child>ul,.dataTables_wrapper .dtr-details{overflow:visible!important}
.dataTables_wrapper td.child{position:relative;z-index:4}
.dataTables_wrapper .job-action-wrap.open,.dataTables_wrapper .service-inline-status.open{position:relative;z-index:100}
.dataTables_wrapper .job-action-menu,.dataTables_wrapper .service-inline-status-menu{z-index:1000}

/* =========================================================
   Invoices Page
========================================================= */
.invoices-content{ gap:20px; padding:18px 26px 34px; }
.invoice-page-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.invoice-title{ color:#020617; font-size:24px; font-weight:800; line-height:1.15; }
.invoice-subtitle{ margin-top:6px; color:#64748b; font-size:14px; }
.invoice-actions{ display:flex; gap:8px; align-items:center; }
.bulk-invoice-btn{
  height:34px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; color:#020617;
  display:inline-flex; align-items:center; gap:8px; padding:7px 14px; font-size:14px; font-weight:600;
  transition:background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.bulk-invoice-btn svg{ width:15px; height:15px; }
.bulk-invoice-btn:hover,
.bulk-invoice-btn:focus{
  background:var(--gradient);
  border-color:transparent;
  color:#fff;
  box-shadow:var(--gradient-shadow);
  transform:translateY(-1px);
}
.invoice-add-btn{ height:34px; min-width:125px; justify-content:center; gap:8px; border-radius:9px; font-size:14px; padding:8px 14px; }
.invoice-add-btn svg{ width:15px; height:15px; }
.invoice-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.invoice-stat-card{
  height:82px; border:1px solid #dfe4ea; border-radius:14px; background:#fff; padding:16px;
}
.invoice-stat-card div{ display:flex; align-items:center; gap:7px; font-size:14px; line-height:1; }
.invoice-stat-card svg{ width:15px; height:15px; }
.invoice-stat-card strong{ display:block; margin-top:7px; color:#020617; font-size:24px; line-height:1; }
.invoice-stat-card.paid div{ color:#059669; }
.invoice-stat-card.pending div{ color:#2563eb; }
.invoice-stat-card.overdue div{ color:#ef4444; }
.invoice-toolbar{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.invoice-search{
  width:345px; height:34px; max-width:100%; display:flex; align-items:center; gap:9px;
  border:1px solid #dfe4ea; border-radius:10px; background:#fff; padding:0 12px; color:#8a94a6;
}
.invoice-search svg{ width:15px; height:15px; }
.invoice-search input{ width:100%; border:0; outline:0; background:transparent; color:#111827; font:inherit; font-size:14px; }
.invoice-search input::placeholder{ color:#8a94a6; }
.invoice-status-filter{
  width:144px; height:34px; justify-content:space-between; border-color:#dfe4ea; border-radius:10px; padding:7px 11px; background:#fff;
}
.invoice-status-filter .filter-dropdown{ min-width:144px; }
.invoice-table-card{ border:1px solid #dfe4ea; border-radius:14px; background:#fff; overflow:visible; }
.invoice-table{ width:100%; border-collapse:separate; border-spacing:0; }
.invoice-table th{
  padding:12px 18px; color:#64748b; font-size:14px; font-weight:500; border-bottom:1px solid #dfe4ea;
}
.invoice-table td{
  padding:12px 18px; color:#64748b; font-size:14px; border-bottom:1px solid #dfe4ea; vertical-align:middle;
}
.invoice-table tbody tr:last-child td{ border-bottom:0; }
.invoice-table td:first-child,
.invoice-table td:nth-child(3){ color:#020617; font-weight:700; }
.invoice-status{
  display:inline-flex; align-items:center; justify-content:space-between; min-width:108px; height:26px; gap:8px;
  border:1px solid transparent; border-radius:10px; padding:3px 10px 3px 12px; font-size:12.5px; cursor:pointer;
}
.invoice-status svg{ width:12px; height:12px; transition:transform .16s ease; }
.invoice-status.open svg{ transform:rotate(180deg); }
.invoice-status.status-draft{ background:#f8fafc; color:#64748b; border-color:#e2e8f0; }
.invoice-status.status-paid{ background:#ecfdf5; color:#059669; border-color:#a7f3d0; }
.invoice-status.status-overdue{ background:#fef2f2; color:#ef4444; border-color:#fecaca; }
.invoice-status-menu{
  position:absolute; z-index:50; min-width:108px; background:#fff; border:1px solid #e5e7eb;
  border-radius:10px; box-shadow:0 12px 28px rgba(17,24,39,.12); padding:5px;
}
.invoice-status-option{ padding:7px 9px; border-radius:7px; color:#111827; font-size:13px; cursor:pointer; }
.invoice-status-option:hover{ background:#7c3aed; color:#fff; font-weight:600; }

.invoice-modal-dialog{ max-width:462px; }
.invoice-modal-content,
.bulk-modal-content{
  background:#f6f7f8; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 24px 60px rgba(0,0,0,.28); overflow:visible;
}
.invoice-modal-content .modal-header{ display:flex; align-items:flex-start; justify-content:space-between; padding:26px 22px 16px; }
.invoice-modal-content .modal-title{ color:#111827; font-size:18px; font-weight:700; line-height:1.2; }
.invoice-modal-content .btn-close{ width:10px; height:10px; margin:0 0 0 auto; padding:0; background-size:10px; opacity:.72; }
.invoice-modal-content .modal-body{ padding:10px 22px 22px; overflow:visible; }
.invoice-modal-content .mb-3{ margin-bottom:16px !important; }
.invoice-modal-content .form-label{ margin-bottom:7px; color:#111827; font-size:14px; font-weight:500; line-height:1.2; }
.invoice-form-control,
.invoice-modal-select{
  min-height:33px; background:#f6f7f8; border-color:#dfe4ea; border-radius:10px; box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937; font-size:14px; padding:6px 12px;
}
.invoice-form-control:focus{ background:#f6f7f8; border-color:#6366f1; box-shadow:0 0 0 1px rgba(99,102,241,.35); }
.invoice-modal-select{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.invoice-modal-select .filter-dropdown{ width:100%; min-width:100%; border-radius:10px; padding:5px; }
.invoice-modal-select .filter-option{ padding:6px 8px; border-radius:6px; font-size:13.5px; }
.invoice-modal-select .filter-option .check{ display:none !important; }
.create-invoice-submit,
.bulk-generate-btn{
  position:relative; overflow:hidden; height:33px; border:0; border-radius:9px; background:linear-gradient(90deg,#8ea2f1,#b083ef);
  color:#fff; font-size:14px; font-weight:700; transition:transform .18s ease, box-shadow .18s ease;
}
.create-invoice-submit:hover,
.create-invoice-submit:focus,
.bulk-generate-btn:hover,
.bulk-generate-btn:focus{ color:#fff; box-shadow:0 10px 22px rgba(124,58,237,.28); }

.bulk-modal-dialog{ max-width:606px; }
.bulk-modal-content{ padding:24px; }
.bulk-header{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; }
.bulk-title{ display:flex; align-items:center; gap:8px; color:#111827; font-size:18px; font-weight:700; }
.bulk-title svg{ width:17px; height:17px; }
.bulk-modal-content .btn-close{ width:10px; height:10px; padding:0; background-size:10px; opacity:.72; }
.bulk-select-row{ display:flex; align-items:center; justify-content:space-between; color:#64748b; font-size:14px; margin-bottom:24px; }
.bulk-select-row label{
  display:flex;
  align-items:center;
  gap:7px;
  color:#334155;
  cursor:pointer;
}
.bulk-select-box{
  width:13px;
  height:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #94a3b8;
  border-radius:2px;
  background:transparent;
  color:#3b82f6;
  padding:0;
}
.bulk-select-box svg{
  display:none;
  width:11px;
  height:11px;
  stroke-width:2.6;
}
.bulk-select-box.selected{
  border-color:#3b82f6;
  background:#eff6ff;
}
.bulk-select-box.selected svg{ display:block; }
.bulk-job-card{
  height:78px; display:flex; align-items:center; gap:14px; border:1px solid #dfe4ea; border-radius:12px; background:#f8fafc;
  padding:14px 18px; margin-bottom:28px; cursor:pointer;
}
.bulk-job-card.selected{ background:#eff6ff; border-color:#bfdbfe; box-shadow:0 0 0 1px #bfdbfe inset; }
.bulk-check{ width:15px; height:15px; border:1px solid #3b82f6; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; }
.bulk-check svg{ display:none; width:10px; height:10px; }
.bulk-job-card.selected .bulk-check{ background:#3b82f6; }
.bulk-job-card.selected .bulk-check svg{ display:block; }
.bulk-job-info{ flex:1; display:flex; flex-direction:column; gap:3px; }
.bulk-job-info strong{ color:#111827; font-size:14px; }
.bulk-job-info span{ color:#64748b; font-size:12px; }
.bulk-job-info em{ margin-left:8px; color:#111827; font-style:normal; font-size:10px; }
.bulk-footer{ border-top:1px solid #e5e7eb; padding-top:16px; display:flex; align-items:center; justify-content:space-between; }
.bulk-footer span{ display:block; color:#64748b; font-size:12px; }
.bulk-footer strong{ display:block; color:#111827; font-size:20px; line-height:1.2; }
.bulk-generate-btn{ min-width:138px; padding:0 16px; }
.bulk-generate-btn:disabled{ opacity:.65; box-shadow:none; transform:none; }

@media (max-width: 850px){
  .invoice-stats{ grid-template-columns:1fr; }
  .invoice-page-head{ flex-direction:column; }
  .invoice-table-card{ overflow-x:auto; }
  .invoice-table{ min-width:760px; }
}

/* =========================================================
   Schedule Page
========================================================= */
.schedule-content{ gap:24px; padding:34px 28px 48px; }
.schedule-page-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.schedule-title{ color:#020617; font-size:26px; font-weight:800; line-height:1.1; }
.schedule-subtitle{ margin-top:6px; color:#64748b; font-size:15px; }
.schedule-add-btn{ height:37px; min-width:178px; justify-content:center; gap:8px; border-radius:10px; font-size:15px; padding:8px 16px; }
.schedule-add-btn svg{ width:16px; height:16px; }
.schedule-layout{ display:grid; grid-template-columns:338px 1fr; gap:24px; align-items:start; }
.calendar-card{ background:#fff; border:1px solid #dfe4ea; border-radius:14px; padding:24px 28px 28px; }
.calendar-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.calendar-head strong{ color:#020617; font-size:14px; }
.calendar-head button{ border:0; background:transparent; color:#020617; padding:0; display:flex; cursor:pointer; }
.calendar-head svg{ width:17px; height:17px; }
.calendar-week,
.calendar-grid{ display:grid; grid-template-columns:repeat(7,1fr); text-align:center; }
.calendar-week{ color:#64748b; font-size:12px; margin-bottom:10px; }
.calendar-week span{ height:28px; display:flex; align-items:center; justify-content:center; }
.calendar-grid{ row-gap:10px; }
.calendar-grid span,
.calendar-day{ width:40px; height:42px; display:flex; align-items:center; justify-content:center; justify-self:center; }
.calendar-day{ position:relative; border:0; background:transparent; border-radius:12px; color:#020617; font-size:13px; cursor:pointer; }
.calendar-day.active{ background:var(--gradient); color:#fff; font-weight:700; box-shadow:0 8px 18px rgba(109,92,232,.22); }
.calendar-day.muted-mark{ background:#eff6ff; color:#3b82f6; }
.calendar-day.has-dot::after{
  content:""; position:absolute; bottom:5px; left:50%; transform:translateX(-50%); width:4px; height:4px; border-radius:50%; background:#3b82f6;
}
.calendar-day.active::after{ display:none; }
.schedule-day-panel h3{ margin:2px 0 12px; color:#64748b; font-size:15px; font-weight:700; }
.schedule-empty{
  height:146px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  border:1px solid #dfe4ea; border-radius:14px; background:#fff; color:#64748b;
}
.schedule-empty strong{ color:#64748b; font-size:18px; font-weight:500; }
.schedule-empty span{ margin-top:5px; font-size:15px; }
.appointment-list{ display:flex; flex-direction:column; gap:13px; }
.appointment-card{
  min-height:104px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  border:1px solid #dfe4ea; border-left-width:4px; border-radius:12px; background:#fff; padding:16px 16px;
}
.appointment-card.blue{ border-left-color:#3b82f6; }
.appointment-card.amber{ border-left-color:#f59e0b; }
.appointment-card strong{ display:block; color:#020617; font-size:15px; margin-bottom:5px; }
.appointment-card span{ display:block; color:#64748b; font-size:13px; margin-bottom:13px; }
.appointment-card p{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; color:#64748b; font-size:13px; }
.appointment-card p svg{ width:13px; height:13px; }
.appointment-card em{ flex:0 0 auto; border-radius:999px; background:#f3f4f6; color:#64748b; padding:4px 9px; font-style:normal; font-size:12px; }

.schedule-modal-dialog{ max-width:462px; }
.schedule-modal-content{
  background:#f6f7f8; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 24px 60px rgba(0,0,0,.28); overflow:visible;
}
.schedule-modal-content .modal-header{ display:flex; align-items:flex-start; justify-content:space-between; padding:26px 22px 16px; }
.schedule-modal-content .modal-title{ color:#111827; font-size:18px; font-weight:700; line-height:1.2; }
.schedule-modal-content .btn-close{ width:10px; height:10px; margin:0 0 0 auto; padding:0; background-size:10px; opacity:.72; }
.schedule-modal-content .modal-body{ padding:10px 22px 22px; overflow:visible; }
.schedule-modal-content .mb-3{ margin-bottom:16px !important; }
.schedule-modal-content .form-label{ margin-bottom:7px; color:#111827; font-size:14px; font-weight:500; line-height:1.2; }
.schedule-form-control,
.schedule-modal-select{
  min-height:33px; background:#f6f7f8; border-color:#dfe4ea; border-radius:10px; box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:#1f2937; font-size:14px; padding:6px 12px;
}
.schedule-form-control:focus{ background:#f6f7f8; border-color:#6366f1; box-shadow:0 0 0 1px rgba(99,102,241,.35); }
.schedule-modal-select{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.schedule-modal-select .filter-dropdown{ width:100%; min-width:100%; border-radius:10px; padding:5px; }
.schedule-modal-select .filter-option{ padding:6px 8px; border-radius:6px; font-size:13.5px; }
.schedule-modal-select .filter-option .check{ display:none !important; }

/* Shared dropdown hover color */
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus,
.filter-dropdown .filter-option:hover,
.status-dropdown .status-option:hover,
.job-action-menu .job-action-option:hover,
.invoice-status-menu .invoice-status-option:hover,
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{
  background:#7c3aed !important;
  color:#fff !important;
  font-weight:600;
}
.create-appointment-submit{
  height:33px; border:0; border-radius:9px; background:linear-gradient(90deg,#8ea2f1,#b083ef);
  color:#fff; font-size:14px; font-weight:700; transition:box-shadow .18s ease, transform .18s ease;
}
.create-appointment-submit:hover,
.create-appointment-submit:focus{ color:#fff; box-shadow:0 10px 22px rgba(124,58,237,.28); transform:translateY(-1px); }

@media (max-width: 980px){
  .schedule-layout{ grid-template-columns:1fr; }
  .calendar-card{ max-width:338px; }
}

/* =========================================================
   Analytics Page
========================================================= */
.analytics-content{ gap:20px; padding:28px 28px 34px; }
.analytics-heading h1{ margin:0; color:#020617; font-size:24px; font-weight:800; line-height:1.15; }
.analytics-heading p{ margin:7px 0 0; color:#64748b; font-size:13px; }
.analytics-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.analytics-stat{
  min-height:116px;
  border:1px solid #dfe4ea;
  border-radius:12px;
  background:#fff;
  padding:16px;
}
.analytics-stat-icon{
  width:32px;
  height:32px;
  border-radius:9px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  margin-bottom:10px;
}
.analytics-stat-icon svg{ width:17px; height:17px; }
.analytics-stat-icon.blue{ background:#3b82f6; }
.analytics-stat-icon.purple{ background:#8b5cf6; }
.analytics-stat-icon.green{ background:#10b981; }
.analytics-stat-icon.orange{ background:linear-gradient(135deg,#fb923c,#ef4444); }
.analytics-stat strong{
  display:block;
  color:#020617;
  font-size:23px;
  line-height:1;
  margin-bottom:6px;
}
.analytics-stat span{ color:#64748b; font-size:13px; }
.analytics-main-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:18px;
}
.analytics-card{
  border:1px solid #dfe4ea;
  border-radius:12px;
  background:#fff;
  padding:18px;
}
.analytics-card h2{
  margin:0;
  color:#020617;
  font-size:13px;
  font-weight:700;
}
.analytics-line-wrap{ height:250px; margin-top:14px; }
.analytics-revenue-tooltip{
  position:absolute;
  min-width:120px;
  pointer-events:none;
  opacity:0;
  transform:translateY(-50%);
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  padding:11px 12px;
  transition:opacity .12s ease;
  z-index:2;
}
.analytics-revenue-tooltip .tooltip-title{
  color:#020617;
  font-size:14px;
  margin-bottom:6px;
}
.analytics-revenue-tooltip .tooltip-value{
  color:#4f46e5;
  font-size:14px;
}
.analytics-doughnut-wrap{
  width:172px;
  height:172px;
  margin:26px auto 14px;
}
.category-legend{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:8px;
}
.category-legend div{
  display:grid;
  grid-template-columns:12px 1fr auto;
  align-items:center;
  column-gap:7px;
  color:#64748b;
  font-size:12px;
}
.category-legend .category-empty-state{
  display:block;
  text-align:center;
  padding:18px 12px;
  line-height:1.5;
  word-break:normal;
}
.category-legend .dot{
  width:8px;
  height:8px;
  border-radius:50%;
}
.category-legend .dot.blue{ background:#4f66f5; }
.category-legend .dot.purple{ background:#8b5cf6; }
.category-legend .dot.green{ background:#10b981; }
.category-legend .dot.orange{ background:#f59e0b; }
.category-legend strong{ color:#020617; font-size:12px; }
.client-growth-card{ min-height:238px; }
.analytics-bar-wrap{ height:190px; margin-top:12px; }

@media (max-width: 1050px){
  .analytics-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-main-grid{ grid-template-columns:1fr; }
}
@media (max-width: 640px){
  .analytics-stats{ grid-template-columns:1fr; }
}

/* view sections */
.view-section{ display:none; }
.view-section.active{ display:block; }

@media (max-width: 992px){
  .stats-grid{ grid-template-columns: repeat(2,1fr); }
  .row-2col, .row-bottom{ grid-template-columns: 1fr; }
}



/* =========================================================
   Auth Pages
========================================================= */
.auth-page{
  --primary-gradient:linear-gradient(135deg,#6366f1 0%,#7c3aed 100%);
  --primary-solid:#7c3aed;
  --auth-bg:#f8fafc;
  --auth-text:#0f172a;
  --auth-muted:#64748b;
  --auth-border:#e2e8f0;
  min-height:100vh;
  width:100vw;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow-x:hidden;
  overflow-y:auto;
  margin:0;
  padding:0;
  background:var(--auth-bg);
  color:var(--auth-text);
  font-family:'Inter',sans-serif;
}
.auth-page .login-wrapper{
  width:100%;
  max-width:440px;
  padding:0 1.5rem;
}
.auth-page .login-wrapper.auth-register{
  max-width:760px;
}

.auth-page:has(.auth-register){
  align-items:flex-start;
  padding:28px 0;
}
.auth-page .app-icon-box{
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1.25rem;
  border-radius:12px;
  background:var(--primary-gradient);
  color:#fff;
}
.auth-page .app-icon-box svg{
  width:20px;
  height:20px;
}
.auth-page .auth-logo{
  display:block;
  width:142px;
  max-width:58vw;
  height:auto;
  margin:0 auto 1.1rem;
}
.auth-page .main-heading{
  margin-bottom:.25rem;
  font-size:1.85rem;
  font-weight:700;
  letter-spacing:-.025em;
}
.auth-page .sub-heading{
  color:var(--auth-muted);
  font-size:.95rem;
}
.auth-login .sub-heading{
  margin-bottom:7px;
}
.auth-register .sub-heading{
  margin-bottom:1.5rem;
}
.auth-page .login-card{
  border:1px solid var(--auth-border);
  border-radius:16px;
  background:#fff;
  padding:2.25rem;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.auth-page .auth-status-alert{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0 0 14px;
  padding:13px 14px;
  border:1px solid rgba(16,185,129,.22);
  border-radius:14px;
  background:linear-gradient(135deg,#ecfdf5 0%,#f8fafc 100%);
  box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.auth-page .auth-status-icon{
  width:34px;
  height:34px;
  min-width:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:#10b981;
  color:#fff;
  box-shadow:0 8px 18px rgba(16,185,129,.24);
}
.auth-page .auth-status-icon svg{
  width:17px;
  height:17px;
}
.auth-page .auth-status-content{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#0f172a;
}
.auth-page .auth-status-content strong{
  font-size:13.5px;
  font-weight:800;
}
.auth-page .auth-status-content span{
  color:#64748b;
  font-size:12.5px;
  line-height:1.45;
}
.auth-page .auth-status-close{
  width:28px;
  height:28px;
  min-width:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#64748b;
  transition:background-color .18s ease,color .18s ease;
}
.auth-page .auth-status-close:hover{
  background:#d1fae5;
  color:#047857;
}
.auth-page .auth-status-close svg{
  width:15px;
  height:15px;
}
.auth-page .btn-google{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  border:1px solid var(--auth-border);
  border-radius:8px;
  background:#fff;
  color:var(--auth-text);
  padding:.6rem 1rem;
  font-size:.95rem;
  font-weight:500;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.auth-page .btn-google:hover{
  border-color:#cbd5e1;
  background:#f1f5f9;
  color:var(--auth-text);
}
.auth-page .google-svg{
  width:18px;
  height:18px;
}
.auth-page .separator-line{
  display:flex;
  align-items:center;
  margin:1.5rem 0;
  color:#94a3b8;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.05em;
  text-align:center;
}
.auth-register .separator-line{
  margin:1.25rem 0;
}
.auth-page .separator-line::before,
.auth-page .separator-line::after{
  content:"";
  flex:1;
  border-bottom:1px solid var(--auth-border);
}
.auth-page .separator-line:not(:empty)::before{
  margin-right:1rem;
}
.auth-page .separator-line:not(:empty)::after{
  margin-left:1rem;
}
.auth-page .form-label-group{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.4rem;
}

/* =========================================================
   Messages
========================================================= */
.messages-content{ gap:20px; padding:28px 28px 34px; }
.messages-page-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.messages-eyebrow{ color:#7c3aed; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.messages-page-head h1{ margin:4px 0 0; color:#020617; font-size:26px; font-weight:800; line-height:1.1; }
.messages-page-head p{ margin:7px 0 0; color:#64748b; font-size:14px; }
.messages-new-btn{ height:36px; min-width:142px; justify-content:center; gap:8px; border-radius:10px; }
.messages-new-btn svg{ width:15px; height:15px; }
.messages-alert{ border:1px solid #bbf7d0; background:#f0fdf4; color:#047857; border-radius:12px; padding:10px 14px; font-size:13px; font-weight:600; }
.messages-shell{ height:calc(100vh - 190px); min-height:560px; max-height:760px; display:grid; grid-template-columns:340px minmax(0,1fr); border:1px solid #dfe4ea; border-radius:14px; background:#fff; overflow:hidden; }
.messages-sidebar{ min-height:0; border-right:1px solid #e5e7eb; background:#fbfcff; min-width:0; display:flex; flex-direction:column; }
.messages-search{ height:58px; display:flex; align-items:center; gap:9px; padding:12px 14px; border-bottom:1px solid #e5e7eb; }
.messages-search svg{ width:16px; height:16px; color:#94a3b8; }
.messages-search input{ width:100%; height:34px; border:1px solid #dfe4ea; border-radius:10px; background:#fff; color:#111827; font-size:13.5px; padding:7px 11px; outline:0; }
.messages-search input:focus{ border-color:#6366f1; box-shadow:0 0 0 1px rgba(99,102,241,.25); }
.messages-thread-list{ flex:1; min-height:0; overflow-y:auto; padding:8px; }
.message-thread{ position:relative; display:flex; gap:11px; min-height:76px; padding:12px 10px; border-radius:12px; color:inherit; text-decoration:none; }
.message-thread:hover{ background:#f3f4f6; color:inherit; }
.message-thread.active{ background:#eef2ff; box-shadow:inset 0 0 0 1px #c7d2fe; }
.message-thread-avatar{ width:38px; height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:center; border-radius:11px; background:#e0f2fe; color:#0369a1; font-size:13px; font-weight:800; }
.message-thread-avatar.job{ background:#ede9fe; color:#6d28d9; }
.message-thread-avatar.large{ width:44px; height:44px; flex-basis:44px; font-size:15px; }
.message-thread-body{ min-width:0; flex:1; }
.message-thread-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:5px; }
.message-thread-top strong{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#111827; font-size:13.5px; }
.message-thread-top span{ flex:0 0 auto; color:#94a3b8; font-size:11.5px; }
.message-thread p{ margin:0; color:#64748b; font-size:12.5px; line-height:1.35; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.message-unread{ position:absolute; right:10px; bottom:10px; min-width:18px; height:18px; display:flex; align-items:center; justify-content:center; border-radius:999px; background:#7c3aed; color:#fff; font-size:11px; font-weight:800; padding:0 5px; }
.messages-panel{ min-width:0; min-height:0; display:flex; flex-direction:column; background:#fff; overflow:hidden; }
.messages-panel-head{ min-height:70px; display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid #e5e7eb; }
.messages-panel-head h2{ margin:0; color:#020617; font-size:16px; font-weight:800; line-height:1.2; }
.messages-panel-head p{ margin:3px 0 0; color:#64748b; font-size:12.5px; }
.messages-job-link{ margin-left:auto; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:74px; height:32px; border:1px solid #dfe4ea; border-radius:9px; color:#4f46e5; background:#fff; text-decoration:none; font-size:13px; font-weight:700; }
.messages-job-link:hover{ background:#eef2ff; color:#4338ca; }
.messages-job-link svg{ width:14px; height:14px; }
.messages-timeline{ flex:1 1 auto; min-height:0; overflow-y:auto; background:#f8fafc; padding:20px; }
.messages-timeline-inner{ display:flex; flex-direction:column; gap:14px; min-height:100%; }
.message-row{ display:flex; gap:10px; align-items:flex-end; max-width:78%; }
.message-row.mine{ align-self:flex-end; justify-content:flex-end; }
.message-avatar{ width:30px; height:30px; flex:0 0 30px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:#e5e7eb; color:#475569; font-size:11px; font-weight:800; }
.message-bubble-wrap{ min-width:0; }
.message-meta{ display:flex; align-items:center; gap:8px; margin:5px 0 0; color:#94a3b8; font-size:11.5px; }
.message-meta strong{ color:#475569; font-size:12px; }
.message-row.mine .message-meta{ justify-content:flex-end; }
.message-bubble{ border:1px solid #e5e7eb; border-radius:12px 12px 12px 4px; background:#fff; color:#111827; padding:10px 12px; box-shadow:0 8px 20px rgba(15,23,42,.04); }
.message-row.mine .message-bubble{ border-color:#7c3aed; border-radius:12px 12px 4px 12px; background:#7c3aed; color:#fff; }
.message-bubble p{ margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13.5px; line-height:1.45; }
.message-files{ display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.message-files a{ display:flex; align-items:center; gap:6px; color:inherit; font-size:12.5px; font-weight:700; text-decoration:none; opacity:.92; }
.message-files svg{ width:13px; height:13px; }
.messages-composer{ flex:0 0 auto; border-top:1px solid #e5e7eb; padding:12px 14px 14px; background:#fff; }
.messages-composer-error{ min-height:18px; color:#dc2626; font-size:12.5px; font-weight:600; margin-bottom:4px; }
.messages-progress{ height:4px; border-radius:999px; background:#ede9fe; overflow:hidden; margin-bottom:8px; }
.messages-progress div{ height:100%; width:0; background:#7c3aed; transition:width .18s ease; }
.messages-composer-files{ display:none; flex-wrap:wrap; align-items:center; gap:7px; color:#64748b; font-size:12px; margin-bottom:8px; }
.messages-composer-files.active{ display:flex; }
.message-file-chip{ max-width:220px; display:inline-flex; align-items:center; gap:6px; border:1px solid #dfe4ea; border-radius:999px; background:#f8fafc; color:#475569; padding:5px 8px; font-size:12px; }
.message-file-chip span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.message-file-chip svg{ width:13px; height:13px; flex:0 0 13px; }
.message-file-remove{ width:14px; height:14px; flex:0 0 14px; border:0; border-radius:50%; background:#e5e7eb; position:relative; padding:0; }
.message-file-remove::before,
.message-file-remove::after{ content:""; position:absolute; top:6px; left:3px; width:8px; height:1px; background:#64748b; }
.message-file-remove::before{ transform:rotate(45deg); }
.message-file-remove::after{ transform:rotate(-45deg); }
.messages-composer-row{ display:flex; align-items:center; gap:9px; }
.messages-composer-row input[type="text"]{ flex:1; height:38px; border:1px solid #dfe4ea; border-radius:12px; background:#f8fafc; color:#111827; font-size:14px; padding:8px 12px; outline:0; }
.messages-composer-row input[type="text"]:focus{ border-color:#6366f1; box-shadow:0 0 0 1px rgba(99,102,241,.25); }
.messages-attach-btn,
.messages-send-btn,
.messages-utility-btn{ width:38px; height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:center; border:1px solid #dfe4ea; border-radius:12px; background:#fff; color:#64748b; cursor:pointer; }
.messages-send-btn{ border-color:#7c3aed; background:#7c3aed; color:#fff; }
.messages-send-btn:disabled{ opacity:.55; cursor:not-allowed; }
.messages-send-btn.loading > svg{ display:none; }
.messages-attach-btn input{ display:none; }
.messages-attach-btn svg,
.messages-send-btn svg,
.messages-utility-btn svg{ width:16px; height:16px; }
.messages-send-btn .spinner-border{ width:14px; height:14px; border-width:2px; }
.messages-send-btn .spinner-border:not(.d-none){ display:inline-block !important; }
.message-modal-submit.loading{ gap:7px; }
.message-modal-submit .spinner-border{ width:14px; height:14px; border-width:2px; }
.message-read-tick{ width:13px; height:13px; margin-left:4px; color:#94a3b8; vertical-align:-2px; }
.message-read-tick.seen{ color:#3b82f6; }
.typing-row{ align-self:flex-start; }
.typing-bubble{ min-width:58px; display:flex; align-items:center; justify-content:center; gap:4px; }
.typing-bubble span{ width:6px; height:6px; border-radius:50%; background:#94a3b8; animation:messageTyping 1s infinite ease-in-out; }
.typing-bubble span:nth-child(2){ animation-delay:.15s; }
.typing-bubble span:nth-child(3){ animation-delay:.3s; }
@keyframes messageTyping{
  0%, 80%, 100%{ transform:translateY(0); opacity:.4; }
  40%{ transform:translateY(-3px); opacity:1; }
}
.messages-empty{ min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#64748b; gap:8px; padding:20px; }
.messages-empty.compact{ min-height:250px; }
.messages-empty.panel-empty{ flex:1; }
.messages-empty svg{ width:30px; height:30px; color:#c4b5fd; }
.messages-empty strong{ color:#111827; font-size:15px; }
.messages-empty span{ max-width:260px; font-size:13px; }
.messages-loading-state{flex:1;min-height:100%;display:flex;align-items:center;justify-content:center;background:#f8fafc;padding:28px}
.messages-loader-card{display:flex;align-items:center;gap:13px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:16px 18px;box-shadow:0 14px 34px rgba(15,23,42,.08);color:#475569}
.messages-loader-spinner{width:28px;height:28px;border-radius:50%;border:3px solid #ede9fe;border-top-color:#7c3aed;animation:messagesSpin .75s linear infinite;flex-shrink:0}
.messages-loader-title{font-weight:700;color:#111827;font-size:14px;margin-bottom:2px}
.messages-loader-text{font-size:12.5px;color:#64748b}
@keyframes messagesSpin{to{transform:rotate(360deg)}}
.message-modal-content{ border:1px solid #e5e7eb; border-radius:12px; box-shadow:0 24px 60px rgba(0,0,0,.24); }
.message-modal-content .modal-header{ padding:20px 22px 10px; border:0; }
.message-modal-content .modal-title{ color:#111827; font-size:18px; font-weight:800; }
.message-modal-content .modal-body{ padding:12px 22px 18px; }
.message-modal-content .modal-footer{ border-top:1px solid #e5e7eb; padding:14px 22px; }
.message-form-control{ height:38px; border-color:#dfe4ea; border-radius:10px; font-size:14px; }
.message-modal-submit{ min-width:104px; justify-content:center; border:0; }

.job-card-links{ margin-top:12px; padding-top:12px; border-top:1px solid #eef2f7; }
.job-card-link{ display:inline-flex; align-items:center; justify-content:center; gap:6px; height:28px; border:1px solid #dfe4ea; border-radius:8px; background:#fff; color:#4f46e5; padding:0 10px; text-decoration:none; font-size:12px; font-weight:700; }
.job-card-link:hover{ background:#eef2ff; color:#4338ca; }
.job-card-link svg{ width:13px; height:13px; }
.job-card-links .job-card-status-control{height:28px;min-width:0;padding:0 9px;border-radius:8px;justify-content:center;gap:6px;font-size:12px;font-weight:700;line-height:1}
.job-card-links .job-card-status-control[data-locked="1"]{cursor:default}
.job-card-links .job-card-link,.job-card-links .job-card-status-control{white-space:nowrap}
.modal .select2-dropdown.select2-dropdown--below{border-radius:0 0 8px 8px}
.modal .select2-dropdown.select2-dropdown--below .select2-results__options{max-height:220px!important;overflow-y:auto}

.job-card-reAssign{
  display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 28px;
    border: 1px solid #dfe4ea;
    border-radius: 8px;
    background: #fff;
    color: #4f46e5;
    padding: 0 10px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
}
/* Jobs detail page */
@keyframes jobFadeUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
.job-detail-shell{max-width:1180px;margin:0 auto;width:100%}
.job-detail-hero{
  background:linear-gradient(135deg,#fff 0%,#fbfdff 100%);
  border:1px solid #e2e8f0;
  border-radius:14px;
  box-shadow:0 16px 38px rgba(15,23,42,.07);
  animation:jobFadeUp .35s ease both;
}
.job-detail-title{font-size:26px;font-weight:600;color:#0f172a;margin:0;letter-spacing:0;overflow-wrap:anywhere}
.job-detail-subtitle{color:#64748b;margin-top:4px;font-size:14px}
.job-arrival-detail{display:flex;align-items:center;gap:7px;color:#5f3dc4}
.job-arrival-detail svg{width:15px!important;height:15px!important;flex:0 0 15px}
.job-action-btn{
  width:34px;height:34px;border-radius:9px;border:1px solid #e2e8f0;background:#fff;color:#64748b;
  display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;
}
.job-action-btn:hover{color:#fff;background:var(--gradient);border-color:transparent;box-shadow:var(--gradient-shadow);transform:translateY(-1px)}
.job-detail-card{
  background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 12px 28px rgba(15,23,42,.05);
  overflow:hidden;animation:jobFadeUp .4s ease both;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.job-detail-card:hover{transform:translateY(-2px);background:linear-gradient(180deg,#fff 0%,#fbf9ff 100%);border-color:rgba(124,58,237,.22);box-shadow:0 18px 42px rgba(15,23,42,.08)}
.job-contact-btn{min-height:38px;padding:9px 14px;border-radius:9px;line-height:1}
.job-detail-card-header{padding:15px 18px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:10px;font-weight:600;color:#0f172a;background:#fff}
.job-info-tile{border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#f8fafc;height:100%;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
.job-info-tile:hover{background:#fff;border-color:rgba(124,58,237,.2);transform:translateY(-1px)}
.job-info-label{color:#64748b;font-size:12px;margin-bottom:6px}
.job-info-value{color:#0f172a;font-weight:400;font-size:14px;overflow-wrap:anywhere}
.job-preline-text{white-space:pre-line;overflow-wrap:anywhere}
.job-client-avatar{width:48px;height:48px;border-radius:12px;background:#eef2ff;color:#7c3aed;display:inline-flex;align-items:center;justify-content:center;font-weight:600;flex:0 0 48px}
.job-contact-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #f1f5f9}
.job-contact-row:last-child{border-bottom:0}
.job-contact-row i{color:#94a3b8;margin-top:2px}
.job-image-link{aspect-ratio:1/1;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0;display:block;background:#f8fafc;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.job-image-link:hover{transform:translateY(-2px);border-color:#cbd5e1;box-shadow:0 12px 24px rgba(15,23,42,.12)}
.job-image-link img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.job-image-link:hover img{transform:scale(1.04)}
.job-empty-state{border:1px dashed #cbd5e1;border-radius:10px;padding:14px;color:#64748b;background:#f8fafc;font-size:13px}
.job-timeline-step{padding:14px;border:1px solid #e2e8f0;border-radius:12px;height:100%;background:#fff;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
.job-timeline-step:hover{background:#fbf9ff;border-color:rgba(124,58,237,.2);transform:translateY(-1px)}
.job-timeline-step .label{color:#64748b;font-size:12px;margin-bottom:5px}
.job-timeline-step .value{color:#0f172a;font-weight:400;font-size:13px;overflow-wrap:anywhere}

/* Jobs schedule page */
.schedule-page{padding-bottom:30px}
.schedule-shell{display:grid;grid-template-columns:minmax(280px,338px) minmax(0,1fr);gap:24px;align-items:start}
.schedule-calendar-card,.schedule-list-card{background:#fff;border:1px solid #e1e7ef;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.schedule-calendar-card{padding:22px}
.schedule-month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.schedule-month-head button{width:30px;height:30px;border:0;background:transparent;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#111827}
.schedule-month-head button:hover{background:#f5f3ff;color:#6d28d9}
.schedule-month-title{font-weight:700;color:#020617}
.schedule-weekdays,.schedule-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.schedule-weekdays{font-size:12px;color:#64748b;margin-bottom:14px}
.schedule-day{height:42px;border:0;background:transparent;border-radius:12px;color:#020617;font-size:14px;position:relative;display:flex;align-items:center;justify-content:center;transition:all .18s ease}
.schedule-day:hover{background:#eef2ff;color:#4f46e5}
.schedule-day.is-selected{background:var(--gradient);color:#fff;box-shadow:0 12px 24px rgba(109,40,217,.22)}
.schedule-day.is-today:not(.is-selected){background:#eef6ff;color:#2563eb}
.schedule-day.is-muted{color:#cbd5e1}
.schedule-day.has-jobs:after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:#3b82f6}
.schedule-day.is-selected.has-jobs:after{background:#fff}
.schedule-date-title{font-weight:700;color:#64748b;margin:2px 0 12px}
.schedule-job-card{border:1px solid #e1e7ef;border-left:4px solid #3b82f6;border-radius:12px;background:#fff;padding:16px;margin-bottom:12px;transition:all .18s ease}
.schedule-job-card:hover{border-color:#c4b5fd;box-shadow:0 14px 32px rgba(15,23,42,.08);transform:translateY(-1px)}
.schedule-job-card.status-in-progress,.schedule-job-card.status-arrived{border-left-color:#f59e0b}
.schedule-job-card.status-completed{border-left-color:#10b981}
.schedule-job-card.status-cancelled{border-left-color:#ef4444}
.schedule-job-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.schedule-job-title{font-weight:700;color:#020617;overflow-wrap:anywhere}
.schedule-job-category{font-size:13px;color:#486188;margin-top:3px}
.schedule-status{background:#f4f4f5;color:#475569;border-radius:999px;padding:4px 10px;font-size:12px;white-space:nowrap;text-transform:capitalize}
.schedule-job-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;color:#64748b;font-size:13px}
.schedule-job-meta span{display:inline-flex;align-items:center;gap:6px}
.schedule-job-meta svg{width:14px;height:14px}
.schedule-job-meta .schedule-arrival-time{color:#6d28d9}
.schedule-job-meta .schedule-arrival-time strong{font-size:12px;font-weight:700;color:#4c1d95}
.schedule-card-actions{display:flex;justify-content:flex-end;margin-top:14px}
.schedule-card-actions .btn{min-height:32px;font-size:12px;padding:6px 10px;border-radius:8px}
.schedule-actions .btn{min-height:37px}
.schedule-modal-actions{display:flex;gap:10px;padding:0 22px 22px}
.schedule-modal-actions .btn{flex:1;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px}

/* Jobs responsive pass */
@media (min-width:1440px){
  .kanban-column{min-width:320px;flex-basis:320px}
  .job-list-table thead th,
  .job-list-table tbody td{padding-left:22px;padding-right:22px}
}
@media (min-width:1921px){
  .job-detail-shell{max-width:1480px}
  .kanban-column{min-width:340px;flex-basis:340px}
  .schedule-shell{grid-template-columns:380px minmax(0,1fr)}
}
@media (max-width:1199.98px){
  .kanban-board{gap:14px}
  .kanban-column{min-width:320px;flex-basis:320px}
}
@media (max-width:991.98px){
  .jobs-page-header .btn-gradient,
  .schedule-actions .btn{min-height:38px!important;padding:9px 13px!important}
  .jobs-toolbar{align-items:stretch!important}
  .jobs-search{width:100%;max-width:none;flex:1 1 100%}
  .view-toggle{margin-left:auto}
  .schedule-shell{grid-template-columns:1fr}
  .schedule-calendar-card{max-width:430px;width:100%}
  .kanban-column-body{height:auto;min-height:460px;max-height:calc(100vh - 230px)}
}
@media (max-width:767.98px){
  .jobs-page-header{align-items:stretch!important}
  .jobs-page-header > div{width:100%}
  .jobs-page-header .d-flex,
  .schedule-actions{width:100%}
  .jobs-page-header .btn-gradient,
  .schedule-actions .btn{flex:1 1 auto}
  .jobs-datatable-footer{align-items:flex-start;flex-direction:column}
  .jobs-datatable-footer .dataTables_paginate{margin-left:0;width:100%}
  .jobs-datatable-footer .pagination{justify-content:flex-start}
  .job-detail-hero .btn-gradient{width:auto}
  .job-detail-title{font-size:23px}
  .schedule-calendar-card{max-width:none}
}
@media (max-width:575.98px){
  .jobs-title{font-size:22px}
  .jobs-period-filter{flex:1 1 140px}
  .jobs-date-range{width:100%;display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto}
  .jobs-date-range .form-control{width:100%;min-width:0}
  .job-card{padding:14px}
  .kanban-column{min-width:82vw;flex-basis:82vw}
  .kanban-column-body{height:auto;min-height:480px;max-height:72vh}
  .job-card-top,
  .job-card-bottom,
  .schedule-job-top{align-items:flex-start;flex-direction:column}
  .job-date{white-space:normal}
  .job-action-menu{right:auto;left:0}
  .job-modal-dialog{margin:12px}
  .job-modal-content .modal-header{padding:20px 18px 12px}
  .job-modal-content .modal-body{padding:8px 18px 18px}
  .job-contact-btn{width:100%;justify-content:center}
  .job-detail-card-header{padding:14px 16px}
  .schedule-calendar-card{padding:16px}
  .schedule-day{height:38px;font-size:13px}
  .schedule-modal-actions{flex-direction:column;padding:0 18px 18px}
}

/* Analytics */
.analytics-page .analytics-period-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 13px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fff;
  color:#64748b;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  transition:.18s ease;
}
.analytics-page .analytics-period-tab:hover{
  border-color:#c4b5fd;
  color:#6d28d9;
  background:#f5f3ff;
}
.analytics-page .analytics-period-tab.active{
  color:#fff;
  border-color:#7c3aed;
  background:linear-gradient(135deg,#5b6ff6,#8b35f6);
  box-shadow:0 10px 22px rgba(124,58,237,.22);
}
.analytics-stat-card,
.analytics-chart-card{
  height:100%;
  background:#fff;
  border:1px solid #dfe3ea;
  border-radius:14px;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.analytics-stat-card{
  padding:18px;
}
.analytics-stat-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  margin-bottom:10px;
}
.analytics-stat-icon svg{
  width:16px;
  height:16px;
}
.analytics-icon-blue{background:#3478f6}
.analytics-icon-purple{background:#8b35f6}
.analytics-icon-green{background:#0f9f7a}
.analytics-icon-orange{background:#ff6b4a}
.analytics-stat-value{
  color:#020617;
  font-size:22px;
  font-weight:800;
  line-height:1.1;
}
.analytics-stat-label{
  margin-top:4px;
  color:#64748b;
  font-size:13px;
}
.analytics-chart-card{
  padding:18px;
}
.analytics-card-title{
  color:#020617;
  font-size:13px;
  font-weight:800;
  margin-bottom:12px;
}
.analytics-chart-wrap{
  position:relative;
  width:100%;
}
.analytics-chart-lg{height:245px}
.analytics-chart-md{height:245px}
.analytics-donut-wrap{
  width:210px;
  height:165px;
  margin:8px auto 8px;
}
.analytics-category-list{
  display:grid;
  gap:8px;
  margin-top:8px;
}
.analytics-category-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#64748b;
  font-size:12px;
}
.analytics-category-item span{
  display:inline-flex;
  align-items:center;
  min-width:0;
  gap:7px;
}
.analytics-category-item span i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
}
.analytics-category-item strong{
  color:#020617;
  font-weight:800;
}
.analytics-chart-tooltip{
  position:absolute;
  z-index:30;
  min-width:124px;
  padding:11px 12px;
  pointer-events:none;
  background:#fff;
  border:1px solid #dfe3ea;
  border-radius:10px;
  box-shadow:0 14px 34px rgba(15,23,42,.12);
  opacity:0;
  transform:translate(-50%, 8px);
  transition:opacity .12s ease, transform .12s ease;
}
.analytics-chart-tooltip.show{
  opacity:1;
  transform:translate(-50%, 0);
}
.analytics-chart-tooltip-title{
  color:#020617;
  font-size:13px;
  font-weight:700;
  margin-bottom:6px;
}
.analytics-chart-tooltip-value{
  color:#4f46e5;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}
@media (max-width: 575.98px){
  .analytics-page .analytics-period-tabs{width:100%}
  .analytics-page .analytics-period-tab{flex:1 1 calc(50% - 8px)}
  .analytics-chart-lg,
  .analytics-chart-md{height:220px}
}

/* Invoices */
.invoices-page .invoice-header{ margin-bottom:18px; }
.invoice-stats-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:18px 0 20px;
}
.estimate-value-grid{ margin-top:-6px; }
.invoice-stat-card{
  min-height:82px;
  border:1px solid #dfe3ea;
  border-radius:14px;
  background:#fff;
  padding:16px 18px;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.invoice-stat-label{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:14px;
  font-weight:600;
}
.invoice-stat-label svg{ width:16px; height:16px; }
.invoice-stat-value{
  margin-top:4px;
  color:#020617;
  font-size:26px !important;
  line-height:1;
  font-weight:800;
}
.invoice-toolbar{ margin-bottom:20px; }
.invoice-search{ width:345px; }
#invoiceStatusFilter{ width:150px; height:38px; }
.invoice-export-actions .dt-buttons{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.invoice-export-actions .invoice-export-btn{
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid #e5e7eb !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#4f46e5 !important;
  box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
  padding:0 12px !important;
  font-size:13px;
  font-weight:700;
}
.invoice-export-actions .invoice-export-btn:hover{
  background:#f3e8ff !important;
  border-color:#c4b5fd !important;
  color:#6d28d9 !important;
}
.invoice-export-actions .invoice-export-btn svg{ width:15px; height:15px; }
.invoice-table-card{ overflow:visible; }
.invoice-table-responsive{
  overflow:visible;
}
.invoice-list-table{ min-width:980px; }
.invoice-number-link{
  color:#020617;
  font-weight:400;
  text-decoration:none;
}
.invoice-number-link:hover{ color:#6d28d9; }
.invoice-status-pill{
  min-width:130px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:16px;
  padding:3px 14px;
  font-size:12.5px;
  font-weight:500;
}
.invoice-modal{ border-radius:14px; border:0; }

@media (min-width: 1921px){
  .content{
    max-width:2160px;
    padding-left:40px;
    padding-right:40px;
  }
}

@media (max-width: 1199.98px){
  .content{
    padding:24px;
  }
  .topbar-right{
    gap:12px;
  }
}

@media (max-width: 991.98px){
  body.sidebar-open{
    overflow:hidden;
  }
  .sidebar{
    width:var(--sidebar-w);
    z-index:1045;
    transform:translateX(-100%);
    transition:transform .22s ease;
    box-shadow:18px 0 48px rgba(15,23,42,.18);
  }
  body.sidebar-collapsed .sidebar{
    width:var(--sidebar-w);
    padding:20px 16px;
  }
  body.sidebar-collapsed .main{
    margin-left:0;
  }
  body.sidebar-collapsed .brand{
    justify-content:flex-start;
    padding:4px 4px 14px 4px;
  }
  body.sidebar-collapsed .brand img{
    width:112px !important;
  }
  body.sidebar-collapsed .brand-collapse{
    position:static;
    background:transparent;
    box-shadow:none;
  }
  body.sidebar-collapsed .brand-collapse svg{
    transform:none;
  }
  body.sidebar-collapsed .nav-item{
    justify-content:flex-start;
    gap:11px;
    padding:9px 12px;
    font-size:14px;
  }
  body.sidebar-collapsed .nav-item::before,
  body.sidebar-collapsed .nav-item::after{
    display:none;
  }
  body.sidebar-open .sidebar{
    transform:translateX(0);
  }
  .sidebar-backdrop{
    position:fixed;
    inset:0;
    z-index:1040;
    display:block;
    background:rgba(15,23,42,.42);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
  }
  body.sidebar-open .sidebar-backdrop{
    opacity:1;
    pointer-events:auto;
  }
  .main{
    margin-left:0;
    width:100%;
  }
  .topbar{
    padding:0 16px;
  }
  .content{
    padding:22px 16px 30px;
    max-width:100%;
  }
  .mobile-menu-toggle{
    display:inline-flex;
    flex:0 0 38px;
  }
  .brand-collapse{
    display:none;
  }
  .sidebar-mobile-close{
    display:inline-flex;
  }
  .topbar-create-menu{
    right:auto;
    left:0;
    max-width:calc(100vw - 32px);
  }
  .topbar-profile-menu,
  .topbar-notification-menu{
    max-width:calc(100vw - 32px);
  }
}

@media (max-width: 575.98px){
  .topbar{
    gap:10px;
  }
  .topbar-right{
    gap:8px;
  }
  .btn-create{
    min-width:38px;
    width:38px;
    height:38px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0;
    font-size:0;
  }
  .btn-create i{
    display:flex;
    align-items:center;
    justify-content:center;
    width:17px;
    height:17px;
    margin:0;
  }
  .btn-create svg{
    width:17px;
    height:17px;
    display:block;
  }
  .topbar-create-menu{
    position:fixed;
    left:12px;
    right:12px;
    top:66px;
    width:auto;
    max-height:calc(100vh - 84px);
    overflow-y:auto;
  }
  .topbar-notification-menu,
  .topbar-profile-menu{
    position:fixed;
    left:12px;
    right:12px;
    top:66px;
    width:auto;
    max-height:calc(100vh - 84px);
    overflow-y:auto;
  }
  .topbar-profile-menu{
    left:12px;
    right:12px;
    width:auto;
  }
  .topbar .search{
    max-width:none;
    min-width:0;
  }
  .topbar .search input{
    min-width:0;
  }
  .content{
    padding:18px 12px 28px;
  }
  .table-responsive{
    overflow-x:auto;
  }
}

@media (max-width: 767px){
  .invoice-stats-grid{ grid-template-columns:1fr; }
  .invoice-table-responsive{ overflow-x:auto; overflow-y:visible; }
  .invoice-export-actions{ width:100%; }
  .invoice-export-actions .dt-buttons{ width:100%; }
  .invoice-export-actions .invoice-export-btn{ flex:1; }
}

/* Invoice responsive pass */
.invoices-page,
.invoice-form-page .page-content,
.invoice-detail-page .page-content{
  min-width:0;
}
.invoices-page .invoice-header,
.invoice-toolbar{
  min-width:0;
}
.invoice-table-responsive,
.invoice-detail-page .table-responsive{
  width:100%;
}
.invoice-list-table th,
.invoice-list-table td{
  white-space:nowrap;
}
.invoice-list-table .job-action-dropdown{
  position:relative;
}
.invoice-list-table .job-action-menu{
  right:0;
  left:auto;
}
.invoice-inline-status{
  max-width:100%;
}
.invoice-inline-status-menu{
  z-index:1055;
}
.invoice-form-page .page-content,
.invoice-detail-page .page-content{
  padding-left:0;
  padding-right:0;
}
.invoice-form-page .container-fluid,
.invoice-detail-page .container-fluid{
  max-width:100%;
}
.invoice-form-page .invoice-container{
  width:100%;
}
.invoice-form-page .section-card{
  min-width:0;
}
.invoice-form-page .line-item-header,
.invoice-form-page .line-item-row{
  min-width:660px;
}
.invoice-form-page .section-card:has(.line-item-header){
  overflow-x:auto;
}
.invoice-form-page .custom-input{
  min-width:0;
}
.invoice-detail-page .card{
  border:1px solid #dfe4ea;
  border-radius:16px;
  box-shadow:0 12px 34px rgba(15,23,42,.07);
  overflow:hidden;
}
.invoice-detail-page .card-body{
  padding:28px;
}
.invoice-detail-page .no-print .btn{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.invoice-detail-page .no-print .btn svg{
  width:15px;
  height:15px;
}
.payment-success-card{
  max-width:100%;
}
.table-responsive:has(table.dataTable.dtr-inline),
.invoice-table-responsive:has(table.dataTable.dtr-inline),
.dashboard-table-responsive:has(table.dataTable.dtr-inline){
  overflow-x:visible !important;
  overflow-y:visible !important;
}
table.dataTable.dtr-inline,
.invoice-list-table.dataTable.dtr-inline,
.job-list-table.dataTable.dtr-inline{
  width:100% !important;
  min-width:0 !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control{
  position:relative;
  width:42px;
  min-width:42px;
  text-align:center;
  cursor:pointer;
  padding-left:12px !important;
  padding-right:8px !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before{
  content:"" !important;
  position:static !important;
  display:block !important;
  width:8px !important;
  height:8px !important;
  margin:0 auto !important;
  border:solid #64748b !important;
  border-width:0 2px 2px 0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:rotate(-45deg) !important;
  transition:transform .18s ease, border-color .18s ease;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:hover:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:hover:before{
  border-color:#6d28d9 !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before{
  transform:rotate(45deg) !important;
  border-color:#6d28d9 !important;
}
table.dataTable > tbody > tr.child td{
  background:#fbfdff !important;
  padding:14px 18px !important;
  border-top:0 !important;
}
table.dataTable > tbody > tr.child ul.dtr-details{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 20px;
  margin:0;
  padding:14px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
}
table.dataTable > tbody > tr.child ul.dtr-details > li{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:8px 0;
  border-bottom:1px solid #eef2f7;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child{
  border-bottom:0;
}
table.dataTable > tbody > tr.child span.dtr-title{
  color:#0f172a;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
table.dataTable > tbody > tr.child span.dtr-data{
  min-width:0;
  color:#475569;
  font-size:12px;
  text-align:right;
  overflow-wrap:anywhere;
}
@media (max-width:575.98px){
  table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:1fr;
  }
}

@media (min-width: 1600px){
  .invoice-form-page form,
  .invoice-form-page .invoice-container{
    max-width:1240px !important;
  }
  .invoice-detail-page .col-xxl-9{
    width:78%;
  }
}
@media (min-width: 2200px){
  .invoice-form-page form,
  .invoice-form-page .invoice-container{
    max-width:1440px !important;
  }
  .invoice-detail-page .col-xxl-9{
    width:68%;
  }
}
@media (max-width: 1199.98px){
  .invoice-stats-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .invoice-detail-page .col-xxl-9{
    width:100%;
  }
}
@media (max-width: 991.98px){
  .invoices-page{
    padding:22px 18px 28px;
  }
  .invoice-form-page .container-fluid,
  .invoice-detail-page .container-fluid{
    padding-left:18px;
    padding-right:18px;
  }
  .invoice-form-page .invoice-container{
    padding:24px;
  }
  .invoice-form-page .section-card{
    padding:20px;
  }
  .invoice-toolbar{
    align-items:stretch !important;
  }
  .invoice-search{
    flex:1 1 280px;
    min-width:240px;
  }
  #invoiceStatusFilter{
    flex:0 0 150px;
  }
  .invoice-export-actions{
    margin-left:0 !important;
  }
  .invoice-detail-page .card-body{
    padding:22px;
  }
}
@media (max-width: 767.98px){
  .invoice-stats-grid,
  .invoice-stats{
    grid-template-columns:1fr;
  }
  .invoice-header{
    align-items:stretch !important;
  }
  .invoice-header .btn,
  .invoice-actions .btn{
    width:auto;
  }
  .invoice-toolbar{
    flex-direction:column;
  }
  .invoice-search,
  #invoiceStatusFilter,
  .invoice-export-actions{
    width:100% !important;
    min-width:0;
    flex:0 0 auto;
  }
  .invoice-search,
  #invoiceStatusFilter{
    height:38px !important;
    min-height:38px;
  }
  .invoice-search{
    display:flex;
    align-items:center;
    padding:0 12px;
  }
  #invoiceStatusFilter{
    display:flex;
    align-items:center;
  }
  .invoice-export-actions .dt-buttons{
    justify-content:flex-start;
  }
  .invoice-export-actions .invoice-export-btn{
    flex:0 0 auto;
  }
  .invoice-form-page .line-item-header,
  .invoice-form-page .line-item-row{
    min-width:600px;
  }
  .invoice-form-page .mt-3.pt-3.border-top,
  .invoice-form-page .mt-4.pt-3.border-top{
    text-align:left !important;
  }
  .invoice-detail-page .text-md-end{
    text-align:left !important;
  }
  .invoice-detail-page .d-flex.justify-content-md-end{
    justify-content:flex-start !important;
    flex-wrap:wrap;
  }
}
@media (max-width: 575.98px){
  .invoices-page{
    padding:18px 14px 24px;
  }
  .invoice-form-page .container-fluid,
  .invoice-detail-page .container-fluid{
    padding-left:14px;
    padding-right:14px;
  }
  .invoice-title,
  .invoice-form-page .page-title{
    font-size:21px;
  }
  .invoice-actions{
    flex-wrap:wrap;
  }
  .invoice-form-page .invoice-container{
    padding:18px;
    border-radius:14px;
  }
  .invoice-form-page .section-card{
    padding:16px;
  }
  .invoice-form-page .line-item-header,
  .invoice-form-page .line-item-row{
    min-width:560px;
    gap:10px;
  }
  .invoice-form-page #submitInvoiceBtn,
  .invoice-form-page button[type="submit"],
  .invoice-detail-page .no-print .btn,
  .payment-success-actions .btn{
    width:auto;
  }
  .invoice-detail-page .card-body{
    padding:18px;
  }
  .payment-success-wrap{
    padding:18px 0;
  }
  .payment-success-body{
    padding:24px 16px;
  }
}

@media (max-width: 991px){
  .messages-shell{ height:auto; max-height:none; grid-template-columns:1fr; }
  .messages-sidebar{ border-right:0; border-bottom:1px solid #e5e7eb; }
  .messages-thread-list{ height:auto; max-height:310px; }
  .messages-panel{ min-height:560px; }
}
@media (max-width: 640px){
  .messages-content{ padding:22px 16px 30px; }
  .message-row{ max-width:94%; }
  .messages-panel-head{ align-items:flex-start; }
  .messages-job-link{ min-width:36px; font-size:0; }
}
.auth-page .custom-label{
  margin:0;
  color:var(--auth-text);
  font-size:.88rem;
  font-weight:500;
}
.auth-page .forgot-link,
.auth-page .signup-link{
  color:var(--primary-solid);
  text-decoration:none;
  font-weight:500;
}
.auth-page .forgot-link{
  font-size:.85rem;
}
.auth-page .forgot-link:hover,
.auth-page .signup-link:hover{
  text-decoration:underline;
}
.auth-page .input-icon-wrapper{
  position:relative;
}
.auth-page .auth-phone-control,
.auth-page .auth-phone-control .iti{
  width:100%;
}
.auth-page .auth-phone-control .custom-input{
  padding-left:96px;
}
.auth-page .auth-input-control{
  position:relative;
}
.auth-page .input-icon-wrapper .lucide-icon{
  position:absolute;
  left:12px;
  top:50%;
  width:18px;
  height:18px;
  color:#94a3b8;
  pointer-events:none;
  transform:translateY(-50%);
}
.auth-page .custom-input{
  width:100%;
  border:1px solid var(--auth-border);
  border-radius:8px;
  color:var(--auth-text);
  outline:0;
  padding:.6rem 1rem .6rem 2.5rem;
  font-size:.95rem;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.auth-page .input-icon-wrapper:has(.auth-password-toggle) .custom-input{
  padding-right:3rem;
}
.auth-page .auth-password-toggle{
  position:absolute;
  right:8px;
  top:50%;
  z-index:2;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#64748b;
  transform:translateY(-50%);
  transition:background-color .18s ease,color .18s ease;
}
.auth-page .auth-password-toggle:hover{
  background:#f3e8ff;
  color:#7c3aed;
}
.auth-page .auth-password-toggle i{
  font-size:18px;
  line-height:1;
}
.auth-page .custom-input::placeholder{
  color:#cbd5e1;
}
.auth-page .custom-input:focus{
  border-color:#94a3b8;
  box-shadow:0 0 0 3px rgba(148,163,184,.08);
}
.auth-page .btn-submit{
  width:100%;
  margin-top:1.25rem;
  border:0;
  border-radius:8px;
  background:var(--primary-gradient) !important;
  color:#fff !important;
  padding:.625rem;
  font-size:.95rem;
  font-weight:500;
  transition:filter .15s ease,transform .1s ease;
}
.auth-page .btn-submit:hover{
  color:#fff !important;
  filter:brightness(1.08) contrast(1.02);
}
.auth-page .btn-submit:active{
  transform:scale(.98);
}
.auth-page .btn-submit:disabled{
  opacity:.68;
  cursor:not-allowed;
  filter:grayscale(.2);
}
.auth-page .auth-inline-error{
  margin-top:7px;
  color:#dc2626;
  font-size:12.5px;
  font-weight:600;
}
.auth-page .auth-password-list li,
.auth-page #password-validation li{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:4px;
}
.auth-page .back-footer{
  margin-top:1.25rem;
  text-align:center;
}
.auth-page .back-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#64748b;
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  transition:color .18s ease;
}
.auth-page .back-link:hover{
  color:#7c3aed;
}
.auth-page .back-link svg{
  width:16px;
  height:16px;
}
.auth-page .signup-footer{
  margin-top:1.25rem;
  color:var(--auth-muted);
  font-size:.9rem;
  text-align:center;
}
.auth-page .base44-badge{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:9999;
  display:flex;
  align-items:center;
  gap:6px;
  border-radius:20px;
  background:#000;
  color:#fff;
  padding:6px 12px;
  font-size:.75rem;
  font-weight:500;
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.auth-page .base44-orange-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:linear-gradient(135deg,#ff7e40,#ff4500);
}
.auth-page .badge-close{
  margin-left:4px;
  color:#64748b;
  cursor:pointer;
}
.auth-page .badge-close:hover{
  color:#fff;
}

@media (max-width: 767.98px){
  .auth-page{
    align-items:flex-start;
    min-height:100dvh;
    width:100%;
    overflow-x:hidden;
    overflow-y:auto;
    padding:28px 0;
  }
  .auth-page .login-wrapper,
  .auth-page .login-wrapper.auth-register{
    max-width:100%;
    padding:0 16px;
  }
  .auth-page .auth-logo{
    width:124px;
    margin-bottom:.9rem;
  }
  .auth-page .main-heading{
    font-size:1.45rem;
  }
  .auth-page .sub-heading{
    font-size:.88rem;
    margin-bottom:1rem;
  }
  .auth-page .login-card{
    padding:1.25rem;
    border-radius:14px;
  }
  .auth-page .btn-google,
  .auth-page .btn-submit,
  .auth-page .custom-input{
    min-height:42px;
    font-size:.9rem;
  }
  .auth-page .separator-line{
    margin:1rem 0;
  }
}

@media (max-width: 380px){
  .auth-page .login-card{
    padding:1rem;
  }
  .auth-page .auth-logo{
    width:112px;
  }
  .auth-page .main-heading{
    font-size:1.3rem;
  }
}

    .iti {
        width: 100%;
        display: block;
    }
    
    /* Ensure the input inside inherits bootstrap styling */
    .iti input {
        width: 100% !important;
    }
.select2-container .select2-selection--single{
      height:35px !important;
    }

/* Keep every job-form Select2 field visually identical to job text inputs. */
.job-form-page .select2-container--default .select2-selection--single,
.job-modal-content .select2-container--default .select2-selection--single,
.estimate-job-modal-content .select2-container--default .select2-selection--single{
  height:33px !important;
}
.job-form-page .select2-search--dropdown,
.job-modal-content .select2-search--dropdown,
.estimate-job-modal-content .select2-search--dropdown{
  padding:8px;
  background:#fff;
}
.job-form-page .select2-search--dropdown .select2-search__field,
.job-modal-content .select2-search--dropdown .select2-search__field,
.estimate-job-modal-content .select2-search--dropdown .select2-search__field{
  min-height:33px;
  margin:0;
  padding:6px 12px;
  color:#1f2937;
  font-size:14px;
  background:#f6f7f8;
  border:1px solid #dfe4ea;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  outline:0;
}
.job-form-page .select2-search--dropdown .select2-search__field:focus,
.job-modal-content .select2-search--dropdown .select2-search__field:focus,
.estimate-job-modal-content .select2-search--dropdown .select2-search__field:focus{
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}

/* Topbar dropdowns */
.topbar-menu-wrap{position:relative}
.topbar-dropdown{position:absolute;top:calc(100% + 12px);right:0;z-index:1040;display:none;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 20px 45px rgba(15,23,42,.16);overflow:hidden}
.topbar-menu-wrap.open .topbar-dropdown{display:block}
.topbar-create-menu{width:240px;padding:4px;border-radius:8px;box-shadow:0 12px 28px rgba(17,24,39,.12)}
.topbar-menu-option{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;border-radius:6px;background:transparent;color:#1f2937;font-weight:500;font-size:13px;line-height:1.2;text-align:left;text-decoration:none;transition:background-color .16s ease,color .16s ease,transform .16s ease}
.topbar-menu-option:hover{background:#7c3aed;color:#fff;font-weight:600;transform:translateX(2px)}
.topbar-menu-option:hover svg{color:#fff}
.topbar-menu-option svg{width:14px;height:14px;flex:0 0 14px;color:#7c3aed}
.topbar-notification-menu{width:360px}
.topbar-dropdown-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eef2f7}
.topbar-dropdown-title{font-weight:700;color:#111827;display:flex;align-items:center;gap:8px}
.topbar-dropdown-title svg{width:16px;height:16px;color:#7c3aed}
.topbar-read-all-btn{width:24px;height:24px;border-radius:999px;border:1px solid #7c3aed;color:#475569;display:inline-flex;align-items:center;justify-content:center;background:#fff;transition:all .16s ease}
/* .topbar-read-all-btn:hover{background:var(--gradient);color:#fff;box-shadow:var(--gradient-shadow)} */
.topbar-read-all-btn svg{width:14px;height:14px}
.topbar-count-badge{background:#eef2ff;color:#5b21b6;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}
.topbar-notification-list{max-height:310px;overflow-y:auto}
.topbar-notification-item{display:flex;gap:11px;padding:13px 16px;border-bottom:1px solid #f1f5f9;color:#111827;transition:background .16s ease}
.topbar-notification-item:hover{background:#f8fafc}
.topbar-notification-icon{width:34px;height:34px;border-radius:9px;background:#eef2ff;color:#7c3aed;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.topbar-notification-icon i{font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:inherit}
.topbar-notification-title{font-weight:700;font-size:13px;margin-bottom:2px}
.topbar-notification-message{font-size:12px;color:#64748b;margin-bottom:4px}
.topbar-notification-time{font-size:12px;color:#94a3b8}
.topbar-empty{padding:28px 16px;text-align:center;color:#64748b}
.icon-btn{border:0;background:transparent}
.topbar-right .icon-dot{min-width:17px;height:17px;border-radius:999px;top:-8px;right:-9px;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}
.subscription-action-list{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto}.subscription-action-list form{margin:0}.subscription-action-list .btn{margin-top:0}.subscription-action-list .subscription-cancel-notice{margin-top:0}
.pricing-card-current{border:2px solid #7c3aed;box-shadow:0 18px 36px rgba(91,75,214,.17)}.pricing-current-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:var(--primary-gradient);color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 7px 16px rgba(109,92,232,.3)}
.topbar-email-verification{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px 6px 7px;border:1px solid #ddd6fe;border-radius:8px;background:#faf9ff;color:#312e81}
.topbar-email-verification-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px;border-radius:7px;background:#ede9fe;color:#6d28d9}
.topbar-email-verification-icon svg,.topbar-email-verification-action svg{width:14px;height:14px}
.topbar-email-verification-copy{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.topbar-email-verification-copy strong{font-size:12px;font-weight:700;color:#312e81}
.topbar-email-verification-copy small{max-width:185px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:11px}
.topbar-email-verification form{margin:0}
.topbar-email-verification-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;border:0;border-radius:6px;padding:6px 9px;background:var(--gradient);color:#fff;font-size:11px;font-weight:700;box-shadow:var(--gradient-shadow)}
@media (max-width:767.98px){.topbar-email-verification{padding:5px}.topbar-email-verification-copy{display:none}.topbar-email-verification-action{font-size:0;padding:7px}.topbar-email-verification-action svg{width:15px;height:15px}}
.topbar-message-link{color:#4b5563}
.topbar-profile-menu{width:318px}
.topbar-profile-head{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #eef2f7}
.topbar-profile-avatar{width:42px;height:42px;border-radius:10px;background:var(--gradient);box-shadow:var(--gradient-shadow);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.topbar-profile-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.topbar-profile-grid a{min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border-right:1px dashed #e5e7eb;border-bottom:1px dashed #e5e7eb;color:#4b5563;font-size:13px}
.topbar-profile-grid a:nth-child(3n){border-right:0}
.topbar-profile-grid a:hover{background:#f8fafc;color:#6d28d9}
.topbar-profile-grid svg{width:24px;height:24px;color:#94a3b8}
.topbar-profile-foot{padding:14px 16px;text-align:right}
.topbar-logout-btn{border:0;background:#fee2e2;color:#dc2626;border-radius:7px;padding:8px 14px;font-weight:600}

@media (max-width:575.98px){
  .topbar-menu-wrap{
    position:static;
  }
  .topbar-dropdown,
  .topbar-create-menu,
  .topbar-notification-menu,
  .topbar-profile-menu{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    top:66px !important;
    width:auto !important;
    max-width:none !important;
    max-height:calc(100vh - 84px);
    overflow-y:auto;
    transform:none !important;
  }
  .topbar-create-menu{
    padding:6px;
  }
}

/* Final mobile compact gradient buttons */
@media (max-width:575.98px){
  .btn-gradient,
  .btn-gradient.btn-sm,
  .btn-sm.btn-gradient,
  .app-gradient-btn,
  .jobs-page-header .btn-gradient,
  .schedule-actions .btn-gradient,
  .schedule-actions .btn.btn-gradient,
  .invoice-add-btn,
  .workers-add-btn.btn-gradient,
  .clients-add-btn.btn-gradient{
    width:auto !important;
    height:32px !important;
    min-height:32px !important;
    max-height:32px !important;
    padding:5px 10px !important;
    border-radius:8px !important;
    font-size:12px !important;
    line-height:1 !important;
    gap:5px !important;
  }
  .btn-gradient svg,
  .btn-gradient i[data-lucide] svg,
  .btn-gradient .lucide,
  .app-gradient-btn svg,
  .app-gradient-btn .lucide,
  .invoice-add-btn svg,
  .workers-add-btn.btn-gradient svg,
  .clients-add-btn.btn-gradient svg{
    width:12px !important;
    height:12px !important;
  }
}

/* Estimates responsive pass */
.estimates-page,
.estimate-create-page,
.estimate-detail-page{
  min-width:0;
}
.estimates-page .invoice-header,
.estimates-page .invoice-toolbar{
  min-width:0;
}
.estimates-page #estimateStatusFilter,
.estimates-page #estimateSortFilter{
  width:170px;
  min-height:38px;
  border-radius:10px;
}
.estimates-page #estimateStatusFilter .filter-dropdown,
.estimates-page #estimateSortFilter .filter-dropdown{
  min-width:190px;
}
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control{
  position:relative;
  padding-left:42px !important;
}
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before{
  position:absolute !important;
  left:18px !important;
  top:50% !important;
  margin:0 !important;
  transform:translateY(-50%) rotate(-45deg) !important;
}
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
.estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before{
  transform:translateY(-50%) rotate(45deg) !important;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-data .invoice-status-pill,
.estimates-page table.dataTable > tbody > tr.child span.dtr-data .job-action-wrap{
  display:inline-flex;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-data .job-action-toggle{
  min-width:104px;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-data .job-action-menu{
  right:0;
  left:auto;
}
.estimates-page table.dataTable > tbody > tr.child td{
  background:#f8fafc !important;
  padding:12px 16px 16px !important;
}
.estimates-page table.dataTable > tbody > tr.child ul.dtr-details{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.estimates-page table.dataTable > tbody > tr.child ul.dtr-details > li{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:7px;
  min-height:72px;
  padding:12px;
  border:1px solid #eef2f7;
  border-radius:10px;
  background:#fbfdff;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-title{
  color:#64748b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-data{
  width:100%;
  color:#0f172a;
  font-size:13px;
  font-weight:600;
  text-align:left;
}
.estimates-page table.dataTable > tbody > tr.child span.dtr-data .invoice-status-pill{
  width:100%;
  min-height:30px;
  justify-content:center;
}
.estimate-create-page .page-content{
  padding-left:0;
  padding-right:0;
}
.estimate-create-page .container-fluid{
  max-width:100%;
}
.estimate-create-page form,
.estimate-create-page .invoice-container{
  width:100%;
}
.estimate-create-page .invoice-container,
.estimate-create-page .section-card{
  min-width:0;
}
.estimate-create-page .line-item-row{
  width:100%;
}
.estimate-create-page .custom-input{
  min-width:0;
}
.estimate-create-page .select2-container{
  max-width:100%;
}
.estimate-create-page .mt-3.pt-3.border-top{
  flex-wrap:wrap;
}
.estimate-job-modal-dialog{
  max-width:min(1080px, calc(100vw - 32px));
}
.estimate-job-modal-content{
  border:0;
  border-radius:18px;
  box-shadow:0 28px 80px rgba(15,23,42,.22);
  overflow:hidden;
  background:#f5f7fb;
  max-height:calc(100vh - 24px);
}
.estimate-job-modal-content > form{
  display:flex;
  flex-direction:column;
  width:100%;
  max-height:calc(100vh - 24px);
  min-height:0;
  overflow:hidden;
}
.estimate-job-modal-content .modal-header{
  padding:22px 26px 12px;
  border-bottom:0;
  background:#f5f7fb;
  flex:0 0 auto;
}
.estimate-job-modal-content .modal-title{
  font-size:20px;
  font-weight:750;
  color:#0f172a;
}
.estimate-job-modal-content .modal-body{
  padding:16px 26px 20px;
  background:#f5f7fb;
  overflow-y:auto;
  overflow-x:hidden;
  flex:1 1 auto;
  min-height:0;
  overscroll-behavior:contain;
}
.estimate-job-modal-content .modal-footer{
  padding:16px 26px 24px;
  border-top:1px solid #e3e8f0;
  background:#f5f7fb;
  gap:10px;
  flex:0 0 auto;
  position:relative;
  z-index:4;
}
.estimate-job-fixed-client{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#eef2f7;
  color:#1f2937;
}
.estimate-job-fixed-client-avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:8px;
  color:#6d28d9;
  background:#e9e3ff;
  font-size:12px;
  font-weight:700;
}
.estimate-job-fixed-client strong,
.estimate-job-fixed-client small{display:block;line-height:1.25}
.estimate-job-fixed-client strong{font-size:13px;font-weight:650}
.estimate-job-fixed-client small{margin-top:2px;color:#64748b;font-size:11px}
.estimate-job-panel{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  overflow:visible;
}
.estimate-job-panel-body{
  padding:0;
}
.estimate-job-panel-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  font-size:15px;
  font-weight:750;
  color:#0f172a;
}
.estimate-job-panel-title span{
  width:26px;
  height:26px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#f1ecff;
  color:#7c3aed;
  flex:0 0 26px;
}
.estimate-job-panel-title svg{
  width:14px;
  height:14px;
}
.estimate-job-modal-content .form-label{
  font-size:14px;
  font-weight:500;
  color:#111827;
  margin-bottom:7px;
  line-height:1.2;
}
.estimate-job-modal-content .job-form-control{
  min-height:33px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#f6f7f8;
  color:#1f2937;
  font-size:14px;
  padding:6px 12px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.estimate-job-modal-content textarea.job-form-control{
  min-height:70px;
  resize:vertical;
}
.estimate-job-modal-content .job-form-control:focus{
  background:#f6f7f8;
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.estimate-job-modal-content .select2-container{
  width:100% !important;
}
.estimate-job-modal-content .select2-container--default .select2-selection--single{
  min-height:33px;
  height:33px;
  border:1px solid #dfe4ea;
  border-radius:10px;
  background:#f6f7f8;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  display:flex;
  align-items:center;
}
.estimate-job-modal-content .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:#1f2937;
  font-size:14px;
  line-height:31px;
  padding-left:12px;
  padding-right:34px;
}
.estimate-job-modal-content .select2-container--default .select2-selection--single .select2-selection__placeholder{
  color:#6b7280;
}
.estimate-job-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:31px;
  right:8px;
}
.estimate-job-modal-content .select2-container--default.select2-container--focus .select2-selection--single,
.estimate-job-modal-content .select2-container--default.select2-container--open .select2-selection--single{
  border-color:#6366f1;
  box-shadow:0 0 0 1px rgba(99,102,241,.35);
}
.select2-dropdown.estimate-job-worker-dropdown{
  border:1px solid #dfe4ea;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 18px 45px rgba(15,23,42,.14);
}
.estimate-job-summary-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.estimate-job-summary-number{
  color:#64748b;
  font-size:13px;
}
.estimate-job-items{
  border:1px solid #d9e0ea;
  border-radius:12px;
  overflow:hidden;
  background:#f6f7f8;
  box-shadow:0 1px 2px rgba(15,23,42,.05);
}
.estimate-job-items-head,
.estimate-job-item-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 58px 92px 98px;
  align-items:center;
  gap:10px;
}
.estimate-job-items-head{
  padding:9px 12px;
  background:#edf2f7;
  color:#475569;
  font-size:12px;
  font-weight:750;
}
.estimate-job-items-head span:not(:first-child),
.estimate-job-item-row span:not(:first-child),
.estimate-job-item-row strong{
  text-align:right;
}
.estimate-job-item-row{
  padding:11px 12px;
  border-top:1px solid #dfe4ea;
  color:#1f2937;
  font-size:13px;
}
.estimate-job-item-description{
  min-width:0;
  overflow-wrap:anywhere;
}
.estimate-job-totals{
  border:1px solid #d9e0ea;
  border-radius:12px;
  background:#f6f7f8;
  padding:10px 12px;
  box-shadow:0 1px 2px rgba(15,23,42,.05);
}
.estimate-job-totals div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#64748b;
  font-size:13px;
  padding:5px 0;
}
.estimate-job-totals strong{
  color:#1f2937;
  font-weight:700;
}
.estimate-job-total-line{
  margin-top:4px;
  padding-top:9px !important;
  border-top:1px solid #d9e0ea;
  color:#2563eb !important;
  font-size:15px !important;
}
.estimate-job-total-line strong{
  color:#2563eb;
}
.estimate-job-service{
  border-top:1px solid #d9e0ea;
  padding-top:18px;
}
.estimate-job-service-icon{
  width:24px;
  height:24px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef2ff;
  color:#7c3aed;
  flex:0 0 24px;
}
.estimate-job-service-icon svg{
  width:13px;
  height:13px;
}
.estimate-job-action-btn{
  min-width:128px;
  min-height:40px;
  border-radius:9px;
  font-weight:700;
}
.estimate-job-action-btn svg{
  width:15px;
  height:15px;
}
@media (max-width: 767.98px){
  .estimate-job-modal-dialog{
    max-width:none;
    margin:10px;
  }
  .estimate-job-modal-content .modal-header,
  .estimate-job-modal-content .modal-body,
  .estimate-job-modal-content .modal-footer{
    padding-left:18px;
    padding-right:18px;
  }
  .estimate-job-modal-content .modal-footer{
    flex-wrap:nowrap;
  }
  .estimate-job-action-btn{
    flex:1 1 0;
    min-width:0;
  }
  .estimate-job-summary-header{
    align-items:flex-start;
  }
  .estimate-job-items-head{
    display:none;
  }
  .estimate-job-item-row{
    grid-template-columns:1fr;
    gap:5px;
  }
  .estimate-job-item-row span:not(:first-child),
  .estimate-job-item-row strong{
    text-align:left;
  }
  .estimate-job-item-row span:not(:first-child)::before,
  .estimate-job-item-row strong::before{
    display:inline-block;
    min-width:48px;
    color:#64748b;
    font-weight:600;
  }
  .estimate-job-item-row span:nth-child(2)::before{ content:"Qty"; }
  .estimate-job-item-row span:nth-child(3)::before{ content:"Rate"; }
  .estimate-job-item-row strong::before{ content:"Total"; }
}
.estimate-detail-page{
  padding:30px 28px 34px;
}
.estimate-detail-page .container-fluid{
  max-width:100%;
}
.estimate-detail-page .page-title-box,
.estimate-detail-page .estimate-document,
.estimate-detail-page .estimate-side-card{
  min-width:0;
}
.estimate-detail-page .estimate-document{
  transition:border-color .18s ease, box-shadow .18s ease;
}
.estimate-detail-page .estimate-title,
.estimate-detail-page .estimate-muted,
.estimate-detail-page .estimate-side-value{
  overflow-wrap:anywhere;
}
.estimate-detail-page .estimate-items-table{
  width:100%;
}
.estimate-detail-page .estimate-items-table table{
  min-width:620px;
}
.estimate-detail-page .estimate-total-panel{
  width:100%;
}
.estimate-detail-page .estimate-side-card form .btn-gradient,
.estimate-detail-page .estimate-side-card .btn-gradient{
  justify-content:center;
}
.estimate-detail-page #createJobModal .modal-dialog{
  max-width:min(1140px, calc(100vw - 24px));
}

@media (min-width:1600px){
  .estimate-create-page form,
  .estimate-create-page .invoice-container{
    max-width:1240px !important;
  }
  .estimate-detail-page > .container-fluid{
    max-width:1440px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* Technician responsive pass */
.technician-jobs-page,
.technician-complete-page{
  min-width:0;
}
.technician-jobs-page .jobs-page-header,
.technician-jobs-page .jobs-toolbar{
  min-width:0;
}
.technician-jobs-page #technicianCategoryFilter,
.technician-jobs-page #technicianStatusFilter{
  width:170px;
  min-height:38px;
  border-radius:10px;
}
.technician-jobs-page #technicianCategoryFilter .filter-dropdown,
.technician-jobs-page #technicianStatusFilter .filter-dropdown{
  min-width:190px;
}
.technician-jobs-page .table-responsive:has(#technicianJobsTable.dataTable.dtr-inline){
  overflow-x:visible !important;
  overflow-y:visible !important;
}
.technician-jobs-page #technicianJobsTable.dataTable.dtr-inline{
  width:100% !important;
  min-width:0 !important;
}
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control{
  position:relative;
  padding-left:42px !important;
}
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before{
  position:absolute !important;
  left:18px !important;
  top:50% !important;
  margin:0 !important;
  transform:translateY(-50%) rotate(-45deg) !important;
}
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
.technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before{
  transform:translateY(-50%) rotate(45deg) !important;
}
.technician-jobs-page table.dataTable > tbody > tr.child td{
  background:#f8fafc !important;
  padding:12px 16px 16px !important;
}
.technician-jobs-page table.dataTable > tbody > tr.child ul.dtr-details{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.technician-jobs-page table.dataTable > tbody > tr.child ul.dtr-details > li{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:7px;
  min-height:72px;
  padding:12px;
  border:1px solid #eef2f7;
  border-radius:10px;
  background:#fbfdff;
}
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-title{
  color:#64748b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-data{
  width:100%;
  color:#0f172a;
  font-size:13px;
  font-weight:600;
  text-align:left;
  overflow-wrap:anywhere;
}
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-data .job-status,
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-data .job-action-wrap{
  display:inline-flex;
}
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-data .job-action-toggle{
  min-width:104px;
}
.technician-jobs-page table.dataTable > tbody > tr.child span.dtr-data .job-action-menu{
  right:0;
  left:auto;
}
.technician-jobs-page #jobStatusModal .modal-footer{
  gap:10px;
}
.technician-complete-page .container-fluid{
  max-width:100%;
}
.technician-complete-page .technician-complete-card,
.technician-complete-page .technician-dropzone,
.technician-complete-page .technician-preview-item{
  min-width:0;
}
.technician-complete-page .technician-dropzone svg{
  width:24px;
  height:24px;
}
.technician-complete-page .technician-preview-item .min-w-0{
  min-width:0;
}
.technician-complete-page .technician-complete-actions{
  align-items:center;
}

@media (min-width:1600px){
  .technician-jobs-page,
  .technician-complete-page > .container-fluid{
    max-width:1440px;
    margin-left:auto;
    margin-right:auto;
  }
}
@media (min-width:2200px){
  .technician-jobs-page,
  .technician-complete-page > .container-fluid{
    max-width:1640px;
  }
}
@media (max-width:991.98px){
  .technician-jobs-page,
  .technician-complete-page{
    padding:22px 18px 28px;
  }
  .technician-jobs-page .jobs-toolbar{
    align-items:stretch !important;
  }
  .technician-jobs-page .jobs-search{
    flex:1 1 280px;
    min-width:240px;
  }
  .technician-jobs-page #technicianCategoryFilter,
  .technician-jobs-page #technicianStatusFilter{
    flex:0 0 170px;
  }
}
@media (max-width:767.98px){
  .technician-jobs-page .jobs-page-header{
    align-items:stretch !important;
  }
  .technician-jobs-page .jobs-toolbar{
    flex-direction:column;
  }
  .technician-jobs-page .jobs-search,
  .technician-jobs-page #technicianCategoryFilter,
  .technician-jobs-page #technicianStatusFilter{
    width:100% !important;
    min-width:0;
    flex:0 0 auto;
    height:38px !important;
    min-height:38px;
  }
  .technician-jobs-page #technicianCategoryFilter,
  .technician-jobs-page #technicianStatusFilter{
    display:flex;
    align-items:center;
  }
  .technician-jobs-page #technicianCategoryFilter .filter-dropdown,
  .technician-jobs-page #technicianStatusFilter .filter-dropdown{
    left:0;
    right:0;
    width:100%;
    min-width:100%;
  }
  .technician-jobs-page table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .technician-jobs-page #jobStatusModal .modal-dialog{
    margin:12px;
  }
  .technician-jobs-page #jobStatusModal .modal-footer{
    flex-wrap:wrap;
  }
  .technician-jobs-page #jobStatusModal .modal-footer .btn{
    width:auto;
    min-width:112px;
  }
  .technician-complete-page .technician-dropzone{
    min-height:140px;
  }
  .technician-complete-page .technician-complete-actions{
    justify-content:flex-start !important;
  }
}
@media (max-width:575.98px){
  .technician-jobs-page,
  .technician-complete-page{
    padding:18px 14px 24px;
  }
  .technician-jobs-page table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:1fr;
  }
  .technician-jobs-page table.dataTable > tbody > tr.child ul.dtr-details > li{
    min-height:auto;
  }
  .technician-complete-page .jobs-title{
    font-size:21px;
  }
  .technician-complete-page .technician-complete-card{
    padding:16px !important;
  }
  .technician-complete-page .technician-dropzone{
    min-height:128px;
    padding:18px !important;
  }
  .technician-complete-page .technician-preview-img{
    width:42px;
    height:42px;
  }
  .technician-complete-page .technician-complete-actions .btn{
    width:auto;
    min-width:0;
  }
}
@media (min-width:2200px){
  .estimate-create-page form,
  .estimate-create-page .invoice-container{
    max-width:1440px !important;
  }
  .estimate-detail-page > .container-fluid{
    max-width:1640px;
  }
}
@media (max-width:991.98px){
  .estimates-page,
  .estimate-detail-page{
    padding:22px 18px 28px;
  }
  .estimate-create-page .container-fluid{
    padding-left:18px;
    padding-right:18px;
  }
  .estimate-create-page .invoice-container{
    padding:24px;
  }
  .estimate-create-page .section-card{
    padding:20px;
  }
  .estimates-page .invoice-toolbar{
    align-items:stretch !important;
  }
  .estimates-page .invoice-search{
    flex:1 1 280px;
    min-width:240px;
  }
  .estimates-page #estimateStatusFilter,
  .estimates-page #estimateSortFilter{
    flex:0 0 170px;
  }
  .estimate-detail-page .estimate-document-top,
  .estimate-detail-page .estimate-document-body{
    padding:24px;
  }
  .estimate-detail-page .estimate-title{
    font-size:24px;
  }
  .estimate-detail-page .estimate-side-card{
    margin-top:0;
  }
}
@media (max-width:767.98px){
  .estimates-page .invoice-header{
    align-items:stretch !important;
  }
  .estimates-page .invoice-toolbar{
    flex-direction:column;
  }
  .estimates-page .invoice-search,
  .estimates-page #estimateStatusFilter,
  .estimates-page #estimateSortFilter{
    width:100% !important;
    min-width:0;
    flex:0 0 auto;
    height:38px !important;
    min-height:38px;
  }
  .estimates-page #estimateStatusFilter,
  .estimates-page #estimateSortFilter{
    display:flex;
    align-items:center;
  }
  .estimates-page #estimateStatusFilter .filter-dropdown,
  .estimates-page #estimateSortFilter .filter-dropdown{
    left:0;
    right:0;
    width:100%;
    min-width:100%;
  }
  .estimate-create-page .line-item-row{
    grid-template-columns:1fr !important;
  }
  .estimate-create-page .amount-text{
    text-align:left !important;
  }
  .estimate-create-page .remove-line{
    justify-self:flex-start;
  }
  .estimate-create-page .mt-3.pt-3.border-top{
    justify-content:flex-start !important;
  }
  .estimate-detail-page .estimate-document-top,
  .estimate-detail-page .estimate-document-body{
    padding:20px;
  }
  .estimate-detail-page .estimate-title{
    font-size:22px;
  }
  .estimate-detail-page .estimate-party{
    min-height:auto;
  }
  .estimate-detail-page .estimate-items-table{
    overflow-x:auto;
  }
  .estimate-detail-page .estimate-side-row{
    align-items:flex-start;
  }
  .estimate-detail-page #createJobModal .modal-footer{
    flex-wrap:wrap;
  }
  .estimate-detail-page #createJobModal .modal-footer .btn{
    width:auto;
  }
}
@media (max-width:575.98px){
  .estimates-page,
  .estimate-detail-page{
    padding:18px 14px 24px;
  }
  .estimate-create-page .container-fluid{
    padding-left:14px;
    padding-right:14px;
  }
  .estimate-create-page .estimate-page-title{
    font-size:21px;
  }
  .estimate-create-page .invoice-container{
    padding:18px;
    border-radius:14px;
  }
  .estimate-create-page .section-card{
    padding:16px;
  }
  .estimate-create-page .mt-3.pt-3.border-top .btn{
    width:auto;
  }
  .estimate-detail-page .page-title-box{
    align-items:flex-start !important;
  }
  .estimate-detail-page .estimate-document-top,
  .estimate-detail-page .estimate-document-body,
  .estimate-detail-page .estimate-side-card{
    padding:16px;
  }
  .estimate-detail-page .estimate-number{
    max-width:100%;
    white-space:normal;
  }
  .estimate-detail-page .estimate-total-row,
  .estimate-detail-page .estimate-side-row{
    gap:8px;
  }
  .estimate-detail-page .estimate-grand-total{
    font-size:18px;
  }
  .estimates-page table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:1fr;
  }
  .estimates-page table.dataTable > tbody > tr.child ul.dtr-details > li{
    min-height:auto;
  }
}

/* Chat responsive pass */
.messages-content,
.messages-shell,
.messages-sidebar,
.messages-panel{
  min-width:0;
}
.messages-panel-head > div:not(.message-thread-avatar){
  min-width:0;
}
.messages-panel-head h2,
.messages-panel-head p{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.messages-composer-row input[type="text"]{
  min-width:0;
}
.messages-thread,
.message-bubble-wrap,
.message-bubble{
  min-width:0;
}
.message-files a,
.message-file-chip{
  max-width:100%;
}
.message-modal-content{
  max-width:100%;
}
@media (min-width:1600px){
  .messages-content{
    max-width:1480px;
    margin-left:auto;
    margin-right:auto;
    width:100%;
  }
  .messages-shell{
    grid-template-columns:380px minmax(0,1fr);
    max-height:860px;
  }
}
@media (min-width:2200px){
  .messages-content{
    max-width:1680px;
  }
  .messages-shell{
    grid-template-columns:420px minmax(0,1fr);
    max-height:980px;
  }
}
@media (max-width:1199.98px){
  .messages-shell{
    grid-template-columns:310px minmax(0,1fr);
  }
}
@media (max-width:991.98px){
  .messages-content{
    padding:22px 18px 28px;
  }
  .messages-shell{
    height:auto;
    min-height:0;
    max-height:none;
    grid-template-columns:1fr;
  }
  .messages-sidebar{
    min-height:0;
    max-height:365px;
    border-right:0;
    border-bottom:1px solid #e5e7eb;
  }
  .messages-thread-list{
    max-height:306px;
  }
  .messages-panel{
    min-height:520px;
    height:calc(100vh - 430px);
    max-height:720px;
  }
  .message-row{
    max-width:86%;
  }
  .messages-page-head{
    align-items:flex-start;
  }
}
@media (max-width:767.98px){
  .messages-content{
    padding:18px 14px 24px;
    gap:14px;
  }
  .messages-page-head{
    flex-direction:column;
  }
  .messages-page-head h1{
    font-size:22px;
  }
  .messages-page-head p{
    font-size:13px;
  }
  .messages-new-btn{
    min-width:0;
    height:34px;
    padding:7px 11px;
    font-size:12.5px;
  }
  .messages-shell{
    border-radius:12px;
  }
  .messages-search{
    height:54px;
    padding:10px 12px;
  }
  .message-thread{
    min-height:68px;
    padding:10px;
  }
  .message-thread-avatar{
    width:34px;
    height:34px;
    flex-basis:34px;
    border-radius:10px;
  }
  .message-thread-avatar.large{
    width:38px;
    height:38px;
    flex-basis:38px;
  }
  .messages-panel{
    min-height:500px;
    height:calc(100vh - 410px);
  }
  .messages-panel-head{
    min-height:62px;
    padding:12px 14px;
    gap:10px;
  }
  .messages-panel-head h2{
    font-size:15px;
  }
  .messages-job-link{
    min-width:34px;
    width:34px;
    height:30px;
    padding:0;
    font-size:0;
    flex:0 0 34px;
  }
  .messages-timeline{
    padding:14px;
  }
  .message-row{
    max-width:92%;
  }
  .message-bubble{
    padding:9px 11px;
  }
  .message-bubble p{
    font-size:13px;
  }
  .messages-composer{
    padding:10px 12px 12px;
  }
  .messages-composer-row{
    gap:7px;
  }
  .messages-attach-btn,
  .messages-send-btn,
  .messages-utility-btn{
    width:34px;
    height:34px;
    flex-basis:34px;
    border-radius:10px;
  }
  .messages-composer-row input[type="text"]{
    height:34px;
    border-radius:10px;
    font-size:13px;
  }
  .message-file-chip{
    max-width:160px;
  }
}
@media (max-width:575.98px){
  .messages-content{
    padding:16px 12px 22px;
  }
  .messages-sidebar{
    max-height:310px;
  }
  .messages-thread-list{
    max-height:252px;
    padding:6px;
  }
  .messages-panel{
    min-height:480px;
    height:calc(100vh - 360px);
  }
  .messages-panel-head{
    align-items:center;
  }
  .messages-panel-head p{
    display:none;
  }
  .message-row,
  .message-row.mine{
    max-width:96%;
  }
  .message-avatar{
    width:26px;
    height:26px;
    flex-basis:26px;
  }
  .message-meta{
    flex-wrap:wrap;
    gap:5px;
  }
  .messages-composer-row{
    display:grid;
    grid-template-columns:34px 34px minmax(0,1fr) 34px;
    gap:7px;
  }
  .messages-composer-row .messages-utility-btn[title="Voice message"]{
    display:none;
  }
  .messages-send-btn{
    grid-column:4;
    grid-row:1;
  }
  .messages-composer-row input[type="text"]{
    grid-column:3;
    grid-row:1;
  }
  .message-modal-content .modal-header,
  .message-modal-content .modal-body,
  .message-modal-content .modal-footer{
    padding-left:16px;
    padding-right:16px;
  }
  .message-modal-content .modal-footer{
    flex-wrap:wrap;
  }
  .message-modal-content .modal-footer .btn{
    width:auto;
  }
}
@media (max-width:390px){
  .messages-composer-row{
    grid-template-columns:32px 32px minmax(0,1fr) 32px;
    gap:6px;
  }
  .messages-attach-btn,
  .messages-send-btn,
  .messages-utility-btn{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
}

/* Chat mobile button and loader fixes */
@media (max-width:767.98px){
  .messages-page-head{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }
  .messages-page-head > div:first-child{
    min-width:0;
    flex:1 1 auto;
  }
  .messages-new-btn,
  .btn-create.messages-new-btn{
    flex:0 0 auto;
    align-self:flex-start;
    width:auto !important;
    min-width:112px !important;
    height:34px !important;
    min-height:34px !important;
    padding:7px 12px !important;
    white-space:nowrap;
    font-size:12.5px !important;
    line-height:1 !important;
  }
  .messages-new-btn svg,
  .btn-create.messages-new-btn svg{
    width:13px !important;
    height:13px !important;
  }
  .messages-loading-state{
    min-height:260px;
    height:auto;
    align-items:flex-start;
    padding:28px 14px;
    overflow-y:auto;
  }
  .messages-panel:has(.messages-loading-state){
    height:auto;
    min-height:320px;
    overflow-y:auto;
  }
}
@media (max-width:575.98px){
  .messages-page-head{
    flex-wrap:nowrap;
  }
  .messages-page-head h1{
    font-size:21px;
  }
  .messages-page-head p{
    display:none;
  }
  .messages-new-btn,
  .btn-create.messages-new-btn{
    min-width:102px !important;
    height:32px !important;
    min-height:32px !important;
    padding:6px 10px !important;
    font-size:12px !important;
  }
}
@media (max-width:390px){
  .messages-new-btn,
  .btn-create.messages-new-btn{
    min-width:92px !important;
    font-size:11.5px !important;
    gap:4px !important;
  }
}

/* Final payment, settings, and chat composer responsive fixes */
@media (max-width:767.98px){
  .messages-composer-row{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:7px;
  }
  .messages-attach-btn{
    grid-column:1;
    grid-row:1;
  }
  .messages-composer-row input[type="text"]{
    grid-column:2;
    grid-row:1;
  }
  .messages-send-btn{
    grid-column:3;
    grid-row:1;
  }
  .messages-composer-row .messages-utility-btn[title="Voice message"]{
    display:none;
  }
  .stripe-payment-wrap{
    margin-top:20px;
    padding:0 2px;
  }
  .stripe-payment-card{
    width:100%;
    border-radius:14px;
  }
  .stripe-payment-inner{
    padding:22px;
  }
  .stripe-payment-head{
    align-items:flex-start;
    margin-bottom:22px;
  }
  .stripe-payment-icon{
    width:42px;
    height:42px;
    border-radius:12px;
  }
  .stripe-card-element{
    min-height:48px;
    padding:15px 13px;
  }
  .stripe-pay-btn{
    width:auto !important;
    min-height:40px !important;
    padding:10px 16px !important;
    border-radius:10px;
  }
  .settings-content{
    padding:20px 16px 28px;
  }
  .settings-heading h1{
    font-size:23px;
  }
  .settings-layout{
    grid-template-columns:1fr;
    gap:14px;
  }
  .settings-tabs{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:6px;
    border:1px solid #e5e7eb;
    background:#fff;
  }
  .settings-tab{
    width:auto;
    flex:0 0 auto;
    min-height:36px;
    padding:8px 11px;
    white-space:nowrap;
  }
  .settings-tab svg{
    width:15px;
    height:15px;
  }
  .settings-panel{
    padding:18px;
  }
  .settings-panel h2{
    font-size:18px;
  }
  .notify-row{
    align-items:flex-start;
    padding:12px;
  }
}
@media (max-width:575.98px){
  .messages-composer-row{
    grid-template-columns:32px minmax(0,1fr) 32px;
    gap:6px;
  }
  .settings-content{
    padding:18px 12px 24px;
  }
  .settings-panel{
    padding:16px;
  }
  .profile-summary{
    align-items:flex-start;
  }
  .settings-save-btn{
    width:auto;
    min-height:34px;
    padding:7px 12px;
    font-size:12.5px;
  }
  .notify-row span{
    font-size:13px;
  }
  .stripe-payment-inner{
    padding:18px;
  }
  .stripe-payment-head{
    flex-direction:column;
    gap:14px;
  }
  .stripe-secure-list{
    justify-content:flex-start;
    gap:8px 12px;
  }
}

/* Job detail contact/action fixes */
.job-detail-card .job-contact-row > i,
.job-detail-card .text-muted.small > i,
.job-detail-card-header > i{
  width:16px !important;
  height:16px !important;
  min-width:16px;
  flex:0 0 16px;
  vertical-align:-3px;
  color:#64748b;
}
.job-detail-card .text-muted.small{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow-wrap:anywhere;
}
.job-detail-card .job-contact-row > div{
  min-width:0;
}
.job-detail-card .job-contact-row + .d-flex,
.job-detail-card .p-3 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3,
.job-detail-card .p-md-4 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px !important;
  align-items:center !important;
}
.job-detail-card .job-contact-btn{
  width:100% !important;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 12px;
  white-space:nowrap;
}
.job-detail-card .job-contact-btn svg,
.job-detail-card .job-contact-btn i{
  width:15px !important;
  height:15px !important;
  flex:0 0 15px;
}
@media (max-width:575.98px){
  .job-detail-card .job-contact-row + .d-flex,
  .job-detail-card .p-3 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3,
  .job-detail-card .p-md-4 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .job-detail-card .job-contact-btn{
    min-height:34px;
    padding:7px 10px;
    font-size:12.5px;
  }
}
@media (max-width:360px){
  .job-detail-card .job-contact-row + .d-flex,
  .job-detail-card .p-3 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3,
  .job-detail-card .p-md-4 > .d-flex.align-items-center.gap-2.flex-wrap.mt-3{
    grid-template-columns:1fr;
  }
}

/* Job detail technician card polish */
.job-detail-card .job-detail-card-header{
  min-height:48px;
  padding:13px 18px;
}
.job-detail-card .job-detail-card-header > i{
  width:15px !important;
  height:15px !important;
  color:#475569;
}
.job-detail-card .job-detail-card-header + .p-3,
.job-detail-card .job-detail-card-header + .p-md-4{
  padding-top:18px !important;
  padding-bottom:18px !important;
}
.job-detail-card .job-detail-card-header + .p-3 .fw-semibold,
.job-detail-card .job-detail-card-header + .p-md-4 .fw-semibold{
  margin-bottom:8px;
  font-size:14px;
  font-weight:600 !important;
}
.job-detail-card .job-detail-card-header + .p-3 .text-muted.small,
.job-detail-card .job-detail-card-header + .p-md-4 .text-muted.small{
  gap:8px;
  margin-top:5px !important;
  color:#64748b !important;
  line-height:1.35;
}
.job-detail-card .job-detail-card-header + .p-3 .text-muted.small > i,
.job-detail-card .job-detail-card-header + .p-md-4 .text-muted.small > i{
  width:14px !important;
  height:14px !important;
  min-width:14px;
  color:#64748b;
  stroke-width:1.9;
}
@media (max-width:575.98px){
  .job-detail-card .job-detail-card-header{
    min-height:44px;
    padding:12px 16px;
  }
  .job-detail-card .job-detail-card-header + .p-3,
  .job-detail-card .job-detail-card-header + .p-md-4{
    padding-top:16px !important;
    padding-bottom:16px !important;
  }
}

/* Technician complete job action button sizing */
.technician-complete-page{max-width:1380px;margin:0 auto}
.complete-job-hero{position:relative;overflow:hidden;padding:24px;border:1px solid #e1e7f0;border-radius:14px;background:#fff;box-shadow:0 12px 34px rgba(15,23,42,.055)}
.complete-job-hero:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#5267ef 0%,#8036ee 100%)}
.complete-job-back{display:inline-flex;align-items:center;gap:7px;color:#64748b;font-size:13px;font-weight:600;text-decoration:none;transition:color .18s ease}
.complete-job-back:hover{color:#6d28d9}
.complete-job-back svg{width:15px!important;height:15px!important}
.complete-job-hero-icon,.complete-job-section-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,#5267ef 0%,#8036ee 100%);box-shadow:0 8px 18px rgba(109,40,217,.2)}
.complete-job-hero-icon{width:44px;height:44px;border-radius:11px}
.complete-job-hero-icon svg{width:20px!important;height:20px!important}
.complete-job-reference{color:#6d28d9;font-size:11px;line-height:1;font-weight:800;text-transform:uppercase}
.complete-job-summary-item{display:flex;align-items:center;gap:10px;min-height:62px;padding:11px 13px;border:1px solid #e7ebf2;border-radius:10px;background:#f8fafc}
.complete-job-summary-item>svg{width:16px!important;height:16px!important;color:#6d28d9;flex:0 0 16px}
.complete-job-summary-item div{min-width:0}
.complete-job-summary-item span,.complete-job-summary-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.complete-job-summary-item span{margin-bottom:3px;color:#8491a6;font-size:10px;font-weight:700;text-transform:uppercase}
.complete-job-summary-item strong{color:#1e293b;font-size:12.5px;font-weight:600}
.complete-job-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #e1e7f0;border-radius:12px;background:#fff;overflow:hidden}
.complete-job-step{display:flex;align-items:center;gap:11px;min-width:0;padding:15px 18px}
.complete-job-step:not(:last-child){border-right:1px solid #e7ebf2}
.complete-job-step>span{display:flex;align-items:center;justify-content:center;flex:0 0 29px;width:29px;height:29px;border-radius:8px;color:#6d28d9;background:#f0eaff;font-size:12px;font-weight:800}
.complete-job-step div{min-width:0}
.complete-job-step strong,.complete-job-step small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.complete-job-step strong{color:#1e293b;font-size:12.5px;font-weight:700}
.complete-job-step small{margin-top:2px;color:#8491a6;font-size:11px}
.technician-complete-card{border:1px solid #e1e7f0;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.045);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.technician-complete-card:hover{border-color:#d6ccfb;box-shadow:0 14px 34px rgba(76,29,149,.075);transform:translateY(-1px)}
.complete-job-section-heading{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid #e8edf4}
.complete-job-section-icon{width:36px;height:36px;border-radius:9px}
.complete-job-section-icon svg{width:17px!important;height:17px!important}
.complete-job-section-heading h2{margin:0;color:#172033;font-size:15px;font-weight:700}
.complete-job-section-heading p{margin:3px 0 0;color:#7b879b;font-size:12px}
.technician-dropzone{min-height:184px;border:1px dashed #bfc9d8;border-radius:12px;background:#f8fafc;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease;cursor:pointer}
.technician-dropzone:hover,.technician-dropzone.drag-over{border-color:#7950ed;background:#faf8ff;box-shadow:inset 0 0 0 1px rgba(121,80,237,.08);transform:translateY(-1px)}
.technician-dropzone.is-invalid{border-color:#dc3545;background:#fff5f5}
.technician-upload-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:10px;border-radius:10px;color:#6d28d9;background:#ede9fe}
.technician-upload-icon svg{width:18px!important;height:18px!important}
.technician-file-types{margin-top:9px;padding:4px 8px;border:1px solid #e5eaf1;border-radius:5px;color:#8793a7;background:#fff;font-size:10.5px}
.technician-preview-item{border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px;transition:border-color .18s ease,box-shadow .18s ease}
.technician-preview-item:hover{border-color:rgba(124,58,237,.24);box-shadow:0 8px 20px rgba(15,23,42,.06)}
.technician-preview-img{width:46px;height:46px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.technician-remove-file{width:30px;height:30px;padding:0;border-radius:7px}
.technician-upload-error{min-height:18px;color:#dc2626;font-size:12px;margin-top:6px}
.complete-job-notes{min-height:150px!important;resize:vertical}
.complete-job-action-note{display:flex;align-items:center;gap:8px;color:#64748b;font-size:12px}
.complete-job-action-note svg{width:16px!important;height:16px!important;color:#6d28d9}
.technician-complete-page .technician-complete-actions .btn{
  width:132px !important;
  min-width:132px !important;
  max-width:132px !important;
  min-height:40px !important;
  height:40px !important;
  padding:9px 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  white-space:nowrap;
}
.technician-complete-page .technician-complete-actions .btn svg,
.technician-complete-page .technician-complete-actions .btn .lucide{
  width:14px !important;
  height:14px !important;
  flex:0 0 14px;
}

.customer-signature-box{
  position:relative;
  width:100%;
  min-height:172px;
  border:1px solid #d9e1ec;
  border-radius:12px;
  background-color:#fff;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,#f1f4f8 34px);
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.customer-signature-box:hover{
  border-color:rgba(124,58,237,.35);
  box-shadow:0 12px 26px rgba(15,23,42,.06);
}

.customer-signature-box.is-invalid{
  border-color:#dc3545;
  background:#fff7f7;
}

.customer-signature-box canvas{
  display:block;
  width:100%;
  height:170px;
  cursor:crosshair;
  touch-action:none;
}

.customer-signature-hint{
  position:absolute;
  right:16px;
  bottom:12px;
  color:#94a3b8;
  font-size:12px;
  pointer-events:none;
}

.job-signature-preview{
  min-height:150px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}

.job-signature-preview img{
  max-width:100%;
  max-height:180px;
  object-fit:contain;
}

@media (max-width:575.98px){
  .complete-job-hero{padding:18px 16px}
  .complete-job-hero-icon{width:38px;height:38px}
  .complete-job-steps{grid-template-columns:1fr}
  .complete-job-step{padding:12px 14px}
  .complete-job-step:not(:last-child){border-right:0;border-bottom:1px solid #e7ebf2}
  .complete-job-section-heading{align-items:flex-start}
  .complete-job-section-heading p{line-height:1.4}
  .complete-job-action-note{width:100%}
  .technician-complete-page .technician-complete-actions .btn{
    width:120px !important;
    min-width:120px !important;
    max-width:120px !important;
    height:36px !important;
    min-height:36px !important;
    padding:8px 10px !important;
    font-size:12.5px !important;
  }
}

/* Dashboard Bootstrap responsive pass */
.dashboard-stats-row{
  margin-bottom:2px;
}
.dashboard-stats-row > [class*="col-"]{
  min-width:0;
}
.dashboard-stats-row .card{
  min-width:0;
  height:100%;
}
.dashboard-stats-row .stat-top{
  gap:10px;
}
.dashboard-stats-row .stat-value,
.dashboard-stats-row .stat-label{
  overflow-wrap:anywhere;
}
@media (min-width:1600px){
  .content:has(.dashboard-head){
    max-width:1480px;
  }
}
@media (min-width:2200px){
  .content:has(.dashboard-head){
    max-width:1680px;
  }
}
@media (max-width:1199.98px){
  .row-bottom{
    grid-template-columns:1fr;
  }
}
@media (max-width:991.98px){
  .content:has(.dashboard-head){
    padding:22px 18px 28px;
  }
  .dashboard-head{
    align-items:flex-start;
  }
  .dashboard-stats-row .card{
    padding:18px;
  }
  .row-2col{
    grid-template-columns:1fr;
  }
  .table-card,
  .revenue-card,
  .workers-card{
    padding:20px;
  }
  .chart-wrap-lg{
    height:220px;
  }
}
@media (max-width:767.98px){
  .dashboard-head{
    flex-direction:column;
  }
  .dashboard-period-filter{
    min-width:150px;
    height:38px;
    align-items:center;
    justify-content:space-between;
  }
  .page-title{
    font-size:22px;
  }
  .dashboard-stats-row{
    --bs-gutter-x:12px;
    --bs-gutter-y:12px;
  }
  .dashboard-stats-row .card{
    padding:16px;
    border-radius:12px;
  }
  .dashboard-stats-row .stat-top{
    margin-bottom:14px;
  }
  .dashboard-stats-row .stat-icon{
    width:36px;
    height:36px;
    border-radius:9px;
  }
  .dashboard-stats-row .stat-icon svg{
    width:17px;
    height:17px;
  }
  .dashboard-stats-row .stat-badge{
    padding:3px 7px;
    font-size:11.5px;
  }
  .dashboard-stats-row .stat-value{
    font-size:22px;
  }
  .dashboard-stats-row .stat-label{
    font-size:12.5px;
  }
  .table-header,
  .revenue-top,
  .workers-top{
    align-items:flex-start;
    flex-direction:column;
  }
  .filters{
    width:100%;
    flex-wrap:wrap;
  }
  .filters .filter-select{
    flex:1 1 160px;
    justify-content:space-between;
  }
  #statusFilter .filter-dropdown{
    left:0;
    right:auto;
  }
  .dashboard-table-responsive:has(table.dataTable.dtr-inline){
    overflow-x:visible !important;
  }
  #nextWeekJobsTable.dataTable.dtr-inline{
    width:100% !important;
    min-width:0 !important;
  }
  .legend{
    flex-wrap:wrap;
  }
}
@media (max-width:575.98px){
  .content:has(.dashboard-head){
    padding:18px 12px 24px;
  }
  .dashboard-table-responsive table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:1fr;
  }
  .page-date{
    font-size:12.5px;
  }
  .page-title{
    font-size:20px;
  }
  .dashboard-stats-row .card{
    padding:14px;
  }
  .dashboard-stats-row .stat-top{
    align-items:flex-start;
  }
  .dashboard-stats-row .stat-badge{
    font-size:10.5px;
    padding:3px 6px;
  }
  .dashboard-stats-row .stat-value{
    font-size:20px;
  }
  .card-title,
  .table-title{
    font-size:15px;
  }
  .table-card,
  .revenue-card,
  .workers-card{
    padding:16px;
  }
  .clients-card,
  .category-card{
    min-height:auto;
  }
  .chart-wrap-lg{
    height:200px;
  }
  .worker-row{
    align-items:flex-start;
  }
  .worker-rating{
    margin-left:0;
  }
}
@media (max-width:380px){
  .dashboard-stats-row .stat-top{
    flex-direction:column;
  }
}

/* Unified DataTables responsive arrow across all pages */
body table.dataTable.dtr-inline:not(.collapsed) > thead > tr > th.dtr-control,
body table.dataTable.dtr-inline:not(.collapsed) > tbody > tr > td.dtr-control,
body table.dataTable.dtr-inline:not(.collapsed) > tbody > tr > th.dtr-control,
body table.dataTable.dtr-inline:not(.collapsed) > thead > tr > th:first-child:empty,
body table.dataTable.dtr-inline:not(.collapsed) > tbody > tr > td:first-child.dtr-control:empty{
  display:none !important;
}
body table.dataTable.dtr-inline.collapsed > thead > tr > th.dtr-control,
body table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
body table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control{
  display:table-cell !important;
}
body table.dataTable > tbody > tr > td.dtr-control,
body table.dataTable > tbody > tr > th.dtr-control{
  position:relative !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  text-align:center !important;
  cursor:pointer !important;
  padding-left:12px !important;
  padding-right:8px !important;
}
body table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
body table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control{
  position:relative !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  text-align:center !important;
  cursor:pointer !important;
  padding-left:12px !important;
  padding-right:8px !important;
}
body table.dataTable > tbody > tr > td.dtr-control:before,
body table.dataTable > tbody > tr > th.dtr-control:before,
body #serviceRequestsTable > tbody > tr > td.dtr-control:before,
body #serviceRequestsTable > tbody > tr > th.dtr-control:before{
  content:"" !important;
  position:static !important;
  display:block !important;
  width:8px !important;
  height:8px !important;
  margin:0 auto !important;
  border:solid #64748b !important;
  border-width:0 2px 2px 0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:rotate(-45deg) !important;
  transition:transform .18s ease,border-color .18s ease !important;
}
body table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
body table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before{
  content:"" !important;
  position:static !important;
  display:block !important;
  width:8px !important;
  height:8px !important;
  margin:0 auto !important;
  border:solid #64748b !important;
  border-width:0 2px 2px 0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:rotate(-45deg) !important;
  transition:transform .18s ease,border-color .18s ease !important;
}
body table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:hover:before,
body table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:hover:before{
  border-color:#6d28d9 !important;
}
body table.dataTable > tbody > tr > td.dtr-control:hover:before,
body table.dataTable > tbody > tr > th.dtr-control:hover:before{
  border-color:#6d28d9 !important;
}
body table.dataTable > tbody > tr.parent > td.dtr-control:before,
body table.dataTable > tbody > tr.parent > th.dtr-control:before,
body table.dataTable > tbody > tr.dt-hasChild > td.dtr-control:before,
body table.dataTable > tbody > tr.dt-hasChild > th.dtr-control:before,
body #serviceRequestsTable > tbody > tr.parent > td.dtr-control:before,
body #serviceRequestsTable > tbody > tr.dt-hasChild > td.dtr-control:before{
  transform:rotate(45deg) !important;
  border-color:#6d28d9 !important;
}
body table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
body table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
body table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
body table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
body .payments-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
body .estimates-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > td.dtr-control:before,
body .technician-jobs-page table.dataTable.dtr-inline.collapsed > tbody > tr.dt-hasChild > th.dtr-control:before{
  transform:rotate(45deg) !important;
  border-color:#6d28d9 !important;
}

/* Unified responsive child-row card design */
body table.dataTable > tbody > tr.child > td,
body table.dataTable > tbody > tr.child > th{
  background:#f8fafc !important;
  padding:14px 18px !important;
  border-top:0 !important;
  box-shadow:inset 0 1px 0 #eef2f7;
}
body table.dataTable > tbody > tr.child ul.dtr-details{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px !important;
  width:100% !important;
  margin:0 !important;
  padding:12px !important;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#ffffff;
}
body table.dataTable > tbody > tr.child ul.dtr-details > li{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:42px;
  margin:0 !important;
  padding:10px 12px !important;
  border:1px solid #edf2f7 !important;
  border-radius:12px;
  background:#fbfdff;
}
body table.dataTable > tbody > tr.child span.dtr-title{
  flex:0 0 auto;
  min-width:0 !important;
  font-size:12px;
  font-weight:700;
  color:#0f172a;
  white-space:nowrap;
}
body table.dataTable > tbody > tr.child span.dtr-data{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  text-align:right;
  font-size:12px;
  color:#475569;
  overflow-wrap:anywhere;
}
body table.dataTable > tbody > tr.child span.dtr-data .invoice-status-pill,
body table.dataTable > tbody > tr.child span.dtr-data .status-pill,
body table.dataTable > tbody > tr.child span.dtr-data .job-status{
  min-width:116px;
}
body table.dataTable > tbody > tr.child span.dtr-data .job-action-wrap{
  display:inline-flex;
}
body table.dataTable > tbody > tr.child span.dtr-data .job-action-menu{
  left:auto;
  right:0;
}

/* Complete job workspace */
.completion-workspace{max-width:1440px;margin:0 auto}
.completion-page-head{padding:2px 2px 0}
.completion-back-link{display:inline-flex;align-items:center;gap:7px;color:#64748b;font-size:12.5px;font-weight:600;text-decoration:none;transition:color .18s ease}
.completion-back-link:hover{color:#6d28d9}
.completion-back-link svg{width:14px!important;height:14px!important}
.completion-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #b9ecd5;border-radius:8px;color:#087a55;background:#ecfdf5;font-size:11.5px;font-weight:700}
.completion-status-chip span{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.completion-status-chip.is-completed{color:#087a55;border-color:#9ee6c8;background:#e8fbf3}
.completion-status-chip.is-completed svg{width:15px!important;height:15px!important}
.completion-job-strip{overflow:hidden;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.completion-job-primary,.completion-job-meta{display:flex;align-items:center;gap:11px;min-height:78px;padding:14px 18px}
.completion-job-primary{background:linear-gradient(135deg,#f4f2ff 0%,#fbfaff 100%);border-right:1px solid #e3e7ef}
.completion-job-mark{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#5865ee,#7c3aed);box-shadow:0 8px 18px rgba(109,40,217,.2)}
.completion-job-mark svg{width:18px!important;height:18px!important}
.completion-job-primary span,.completion-job-primary strong,.completion-job-meta span,.completion-job-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.completion-job-primary span{margin-bottom:4px;color:#7451de;font-size:10px;font-weight:800}
.completion-job-primary strong{color:#101828;font-size:14px;font-weight:700}
.completion-job-meta{border-right:1px solid #edf0f5}
.completion-job-meta:last-child{border-right:0}
.completion-job-meta>svg{width:16px!important;height:16px!important;flex:0 0 16px;color:#7c3aed}
.completion-job-meta div{min-width:0}
.completion-job-meta span{margin-bottom:4px;color:#8b97a9;font-size:9.5px;font-weight:700;text-transform:uppercase}
.completion-job-meta strong{color:#334155;font-size:11.5px;font-weight:600}
.completion-panel,.completion-signoff-panel{border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(15,23,42,.045)}
.completion-panel{overflow:hidden}
.completion-panel-head{display:flex;align-items:center;gap:12px;min-height:75px;padding:14px 18px;border-bottom:1px solid #e8edf3;background:#fbfcfe}
.completion-step-number{display:flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;color:#6d28d9;background:#eee9ff;font-size:11px;font-weight:800}
.completion-panel-head>div:nth-child(2){min-width:0;flex:1}
.completion-panel-head h2{margin:0;color:#182033;font-size:14px;font-weight:700}
.completion-panel-head p{margin:3px 0 0;color:#7d899b;font-size:11.5px;line-height:1.4}
.completion-required,.completion-optional{padding:4px 8px;border-radius:6px;font-size:9.5px;font-weight:800;text-transform:uppercase}
.completion-required{color:#6d28d9;background:#eee9ff}
.completion-optional{color:#64748b;background:#edf1f5}
.completion-panel-body{padding:20px}
.completion-upload-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.completion-upload-label span{color:#1e293b;font-size:12.5px;font-weight:700}
.completion-upload-label small{color:#94a3b8;font-size:10.5px}
.completion-dropzone{min-height:205px!important;border:1px dashed #c1cada!important;border-radius:11px!important;background:#fafbfc!important}
.completion-dropzone:hover,.completion-dropzone.drag-over{border-color:#7451de!important;background:#faf8ff!important;box-shadow:inset 0 0 0 1px rgba(116,81,222,.08)!important}
.completion-dropzone.is-invalid{border-color:#dc3545!important;background:#fff7f7!important}
.completion-upload-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:11px;border:1px solid #ddd5ff;border-radius:11px;color:#7145e8;background:#f0ebff}
.completion-upload-icon-after{color:#335edb;background:#eaf1ff;border-color:#d2ddff}
.completion-upload-icon svg{width:18px!important;height:18px!important}
.completion-dropzone>strong{margin-bottom:4px;color:#1e293b;font-size:12.5px;font-weight:700}
.completion-dropzone>span:not(.completion-upload-icon){color:#7d899b;font-size:11px}
.completion-dropzone>small{margin-top:10px;padding:4px 7px;border:1px solid #e5e9ef;border-radius:5px;color:#94a3b8;background:#fff;font-size:9.5px}
.completion-notes{min-height:165px!important;padding:14px!important;resize:vertical}
.completion-signoff-panel{position:sticky;top:20px;overflow:hidden}
.completion-signoff-top{padding:22px 20px 18px;border-bottom:1px solid #e8edf3;background:linear-gradient(145deg,#f7f5ff 0%,#fff 72%)}
.completion-signoff-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-bottom:14px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#5865ee,#7c3aed);box-shadow:0 8px 18px rgba(109,40,217,.2)}
.completion-signoff-icon svg{width:17px!important;height:17px!important}
.completion-signoff-top>span{display:block;margin-bottom:5px;color:#7047db;font-size:9.5px;font-weight:800;text-transform:uppercase}
.completion-signoff-top h2{margin:0 0 6px;color:#172033;font-size:16px;font-weight:700}
.completion-signoff-top p{margin:0;color:#748095;font-size:11.5px;line-height:1.5}
.completion-signature-area{padding:18px 20px}
.completion-clear-signature{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:0;border-radius:6px;color:#64748b;background:#f1f4f7;font-size:10.5px;font-weight:600;transition:color .18s ease,background .18s ease}
.completion-clear-signature:hover{color:#6d28d9;background:#ece7ff}
.completion-clear-signature svg{width:13px!important;height:13px!important}
.completion-signature-box{min-height:190px!important;border-radius:10px!important;background-color:#fff!important;background-image:repeating-linear-gradient(0deg,transparent,transparent 37px,#eef2f6 38px)!important}
.completion-signature-box canvas{height:188px!important}
.completion-confirmation-note{display:flex;align-items:flex-start;gap:8px;margin:0 20px 18px;padding:10px 11px;border:1px solid #dce5f0;border-radius:8px;color:#64748b;background:#f8fafc;font-size:10.5px;line-height:1.45}
.completion-confirmation-note svg{width:15px!important;height:15px!important;flex:0 0 15px;color:#6d28d9}
.completion-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:16px 20px;border-top:1px solid #e8edf3;background:#fbfcfe}
.completion-workspace .completion-actions .btn{width:100%!important;min-width:0!important;max-width:none!important;height:40px!important;min-height:40px!important;padding:8px 10px!important;font-size:12px!important}
.completion-workspace .completion-actions .btn svg{width:14px!important;height:14px!important}
.completion-finished-state{display:flex;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid #ccebdd;background:#effbf6}
.completion-finished-state>span{display:flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;color:#fff;background:#10a875}
.completion-finished-state>span svg{width:15px!important;height:15px!important}
.completion-finished-state strong,.completion-finished-state small{display:block}
.completion-finished-state strong{color:#096b4d;font-size:12.5px;font-weight:700}
.completion-finished-state small{margin-top:2px;color:#548573;font-size:10.5px}

@media (max-width:1199.98px){
  .completion-signoff-panel{position:static}
}

/* Shared payment, client and worker detail pages */
.detail-page{max-width:1440px;margin:0 auto}
.detail-page-head{margin-bottom:24px}
.detail-page-head h1{margin:12px 0 3px;color:#0f172a;font-size:24px;font-weight:750}
.detail-page-head p{margin:0;color:#748095;font-size:12.5px}
.detail-back-link{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:12px;font-weight:600;text-decoration:none;transition:color .18s ease}
.detail-back-link:hover{color:#6d28d9}
.detail-back-link svg{width:14px!important;height:14px!important}
.detail-card{overflow:hidden;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 9px 26px rgba(15,23,42,.045)}
.detail-card-head{display:flex;align-items:center;gap:11px;min-height:70px;padding:14px 18px;border-bottom:1px solid #e8edf3;background:#fbfcfe}
.detail-card-head>svg{width:17px!important;height:17px!important;color:#7145e8}
.detail-card-head h2{margin:0;color:#172033;font-size:14px;font-weight:700}
.detail-card-head p{margin:3px 0 0;color:#8591a3;font-size:10.5px}
.detail-card-body{padding:18px}
.detail-amount-banner{display:flex;align-items:center;gap:14px;padding:20px 22px;border:1px solid #dcdff5;border-radius:12px;background:linear-gradient(135deg,#f7f5ff 0%,#fff 68%);box-shadow:0 10px 28px rgba(76,29,149,.055)}
.detail-amount-icon{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#5865ee,#7c3aed);box-shadow:0 8px 18px rgba(109,40,217,.2)}
.detail-amount-icon svg{width:20px!important;height:20px!important}
.detail-amount-banner span,.detail-amount-banner strong{display:block}
.detail-amount-banner>div:nth-child(2)>span,.detail-amount-meta span{margin-bottom:3px;color:#7b8799;font-size:10px;font-weight:700;text-transform:uppercase}
.detail-amount-banner>div:nth-child(2)>strong{color:#111827;font-size:26px;font-weight:750}
.detail-amount-meta{margin-left:auto;text-align:right}
.detail-amount-meta strong{color:#334155;font-size:12px;font-weight:650}
.detail-info-tile{height:100%;min-height:72px;padding:13px 14px;border:1px solid #e7ebf1;border-radius:9px;background:#fafbfc}
.detail-info-tile span,.detail-info-tile strong{display:block}
.detail-info-tile span{margin-bottom:6px;color:#8a96a8;font-size:9.5px;font-weight:750;text-transform:uppercase}
.detail-info-tile strong{color:#263246;font-size:12.5px;font-weight:650;overflow-wrap:anywhere}
.detail-profile-head{padding:23px 20px 19px;text-align:center;border-bottom:1px solid #e8edf3;background:linear-gradient(145deg,#f5f2ff 0%,#fff 75%)}
.detail-avatar{display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin:0 auto 12px;border-radius:14px;color:#fff;background:linear-gradient(135deg,#5865ee,#7c3aed);box-shadow:0 9px 22px rgba(109,40,217,.22);font-size:18px;font-weight:750}
.detail-profile-head>span{display:block;margin-bottom:4px;color:#7650da;font-size:9.5px;font-weight:800;text-transform:uppercase}
.detail-profile-head h2{margin:0;color:#182033;font-size:16px;font-weight:700}
.detail-state{display:inline-flex;margin-top:10px;padding:5px 9px;border-radius:7px;color:#07805b;background:#e8faf3;font-size:10px;font-weight:750;text-transform:capitalize}
.detail-state.lead,.detail-state.on_job{color:#6d28d9;background:#eee9ff}
.detail-state.inactive{color:#64748b;background:#edf1f5}
.detail-contact-row{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid #edf1f5}
.detail-contact-row:first-child{padding-top:0}
.detail-contact-row:last-child{padding-bottom:0;border-bottom:0}
.detail-contact-row>svg{width:15px!important;height:15px!important;flex:0 0 15px;margin-top:2px;color:#7650da}
.detail-contact-row div{min-width:0}
.detail-contact-row span,.detail-contact-row strong{display:block}
.detail-contact-row span{margin-bottom:3px;color:#8b97a8;font-size:9.5px;font-weight:700;text-transform:uppercase}
.detail-contact-row strong{color:#344054;font-size:11.5px;font-weight:600;overflow-wrap:anywhere}
.detail-stat{height:100%;min-height:104px;padding:15px;border:1px solid #dfe5ee;border-radius:11px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.035)}
.detail-stat>svg{width:17px!important;height:17px!important;margin-bottom:13px;color:#7047db}
.detail-stat span,.detail-stat strong{display:block}
.detail-stat span{color:#8793a5;font-size:10px;font-weight:650}
.detail-stat strong{margin-top:4px;color:#111827;font-size:20px;font-weight:750}
.detail-list{padding:5px 16px}
.detail-list-row{display:flex;align-items:center;gap:11px;padding:13px 2px;border-bottom:1px solid #edf1f5;color:inherit;text-decoration:none;transition:background-color .18s ease,padding .18s ease}
.detail-list-row:last-child{border-bottom:0}
.detail-list-row:hover{padding-left:7px;padding-right:7px;background:#faf8ff}
.detail-list-icon{display:flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;color:#7047db;background:#eee9ff}
.detail-list-icon svg{width:15px!important;height:15px!important}
.detail-list-main{min-width:0;flex:1}
.detail-list-main strong,.detail-list-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-list-main strong{color:#233047;font-size:12px;font-weight:650}
.detail-list-main span{margin-top:3px;color:#8793a5;font-size:10.5px}
.detail-list-status{flex:0 0 auto;padding:4px 8px;border-radius:6px;color:#5c43bd;background:#f0ecff;font-size:9.5px;font-weight:700}
.detail-list-arrow{width:14px!important;height:14px!important;color:#94a3b8}
.detail-empty{padding:30px 15px;text-align:center;color:#8793a5;font-size:12px}
.client-card-icon-btn,.worker-card-icon-btn{text-decoration:none}

@media (max-width:767.98px){
  .detail-page-head h1{font-size:21px}
  .detail-amount-banner{align-items:flex-start;flex-wrap:wrap;padding:17px}
  .detail-amount-meta{width:100%;margin-left:58px;text-align:left}
  .detail-list-status{display:none}
}

/* Employee edit page */
.employee-edit-page{max-width:1320px;margin:0 auto}
.employee-edit-head{margin-bottom:24px}
.employee-edit-head h1{margin:12px 0 3px;color:#0f172a;font-size:24px;font-weight:750}
.employee-edit-head p{margin:0;color:#748095;font-size:12.5px}
.employee-edit-status{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #aee7ce;border-radius:8px;color:#087a55;background:#ecfdf5;font-size:10.5px;font-weight:750}
.employee-edit-status.on_job{color:#6d28d9;border-color:#d7c9fb;background:#f2edff}
.employee-edit-status.inactive{color:#64748b;border-color:#dce2e9;background:#f1f4f7}
.employee-edit-status svg{width:14px!important;height:14px!important}
.employee-edit-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 14px;border:1px solid #fecaca;border-radius:9px;color:#b42318;background:#fff5f5}
.employee-edit-alert>svg{width:16px!important;height:16px!important;flex:0 0 16px;margin-top:1px}
.employee-edit-alert strong,.employee-edit-alert span{display:block}
.employee-edit-alert strong{font-size:12px;font-weight:700}
.employee-edit-alert span{margin-top:2px;font-size:10.5px}
.employee-edit-profile,.employee-edit-card{border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 9px 26px rgba(15,23,42,.045)}
.employee-edit-profile{position:sticky;top:20px;padding:25px 20px;text-align:center}
.employee-edit-avatar{display:flex;align-items:center;justify-content:center;width:74px;height:74px;margin:0 auto 14px;overflow:hidden;border:4px solid #f1edff;border-radius:18px;color:#fff;background:linear-gradient(135deg,#5865ee,#7c3aed);box-shadow:0 10px 25px rgba(109,40,217,.2);font-size:23px;font-weight:750}
.employee-edit-avatar img{width:100%;height:100%;object-fit:cover}
.employee-edit-profile h2{margin:0;color:#182033;font-size:16px;font-weight:700}
.employee-edit-profile>p{margin:4px 0 0;color:#8490a2;font-size:11px;overflow-wrap:anywhere}
.employee-profile-divider{height:1px;margin:20px 0;background:#edf1f5}
.employee-edit-profile .form-label{text-align:left}
.employee-field-help{margin-top:6px;color:#94a3b8;font-size:9.5px;text-align:left}
.employee-edit-card{overflow:hidden}
.employee-edit-card-head{display:flex;align-items:center;gap:11px;min-height:70px;padding:14px 18px;border-bottom:1px solid #e8edf3;background:#fbfcfe}
.employee-edit-card-head>svg{width:17px!important;height:17px!important;color:#7145e8}
.employee-edit-card-head h2{margin:0;color:#172033;font-size:14px;font-weight:700}
.employee-edit-card-head p{margin:3px 0 0;color:#8591a3;font-size:10.5px}
.employee-edit-card-body{padding:20px}
.employee-edit-page .form-label{display:block;margin-bottom:6px;color:#344054;font-size:11.5px;font-weight:650}
.employee-edit-control{width:100%;height:41px!important;padding:9px 11px!important;border:1px solid #d8e0ea!important;border-radius:8px!important;color:#273449!important;background:#f9fafc!important;font-size:12px!important;box-shadow:none!important;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease!important}
.employee-edit-control::placeholder{color:#98a2b3}
.employee-edit-control:focus{border-color:#7c5ce1!important;background:#fff!important;box-shadow:0 0 0 3px rgba(124,92,225,.1)!important}
.employee-edit-control.is-invalid{border-color:#dc3545!important}
.employee-input-icon,.employee-input-prefix,.employee-input-suffix{position:relative}
.employee-input-icon>svg{position:absolute;z-index:2;left:11px;top:13px;width:15px!important;height:15px!important;color:#8b97a8;pointer-events:none}
.employee-input-icon .employee-edit-control{padding-left:34px!important}
.employee-edit-page .employee-phone-control .iti,.employee-edit-page .iti{width:100%}
.employee-edit-page .employee-phone-control .employee-edit-control{padding-left:88px!important}
.employee-input-prefix>span,.employee-input-suffix>span{position:absolute;z-index:2;top:1px;bottom:1px;display:flex;align-items:center;color:#758195;background:#f1f4f7;font-size:11px;font-weight:650;pointer-events:none}
.employee-input-prefix>span{left:1px;padding:0 10px;border-radius:7px 0 0 7px;border-right:1px solid #dfe5ec}
.employee-input-prefix .employee-edit-control{padding-left:39px!important}
.employee-input-suffix>span{right:1px;padding:0 9px;border-radius:0 7px 7px 0;border-left:1px solid #dfe5ec}
.employee-input-suffix .employee-edit-control{padding-right:42px!important}
.employee-edit-page .select2-container{width:100%!important}
.employee-edit-page .select2-container--default .select2-selection--single{height:41px!important;border:1px solid #d8e0ea!important;border-radius:8px!important;background:#f9fafc!important;box-shadow:none!important}
.employee-edit-page .select2-container--default .select2-selection--single .select2-selection__rendered{height:39px!important;padding:0 34px 0 11px!important;color:#273449!important;font-size:12px!important;line-height:39px!important}
.employee-edit-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:39px!important;right:7px!important}
.employee-edit-page .select2-container--default.select2-container--focus .select2-selection--single,.employee-edit-page .select2-container--default.select2-container--open .select2-selection--single{border-color:#7c5ce1!important;background:#fff!important;box-shadow:0 0 0 3px rgba(124,92,225,.1)!important}
.employee-edit-actions .btn{width:138px!important;min-width:138px!important;max-width:138px!important;height:40px!important;min-height:40px!important;padding:8px 11px!important;font-size:12px!important}
.employee-edit-actions .btn svg{width:14px!important;height:14px!important}

@media (max-width:1199.98px){
  .employee-edit-profile{position:static}
}
@media (max-width:767.98px){
  .employee-edit-head h1{font-size:21px}
  .employee-edit-card-body{padding:16px}
}
@media (max-width:575.98px){
  .employee-edit-profile{padding:20px 15px}
  .employee-edit-card-head{padding:13px 15px}
  .employee-edit-actions{justify-content:flex-end!important}
  .employee-edit-actions .btn{width:124px!important;min-width:124px!important;max-width:124px!important;height:37px!important;min-height:37px!important}
}
@media (max-width:575.98px){
  .detail-card-body{padding:15px}
  .detail-card-head{padding:13px 15px}
  .detail-stat{min-height:94px;padding:13px}
  .detail-stat strong{font-size:18px}
  .detail-list{padding-left:12px;padding-right:12px}
  .detail-list-row{gap:9px}
}
@media (max-width:991.98px){
  .completion-job-primary{border-right:0;border-bottom:1px solid #e3e7ef}
  .completion-job-meta{min-height:66px}
}
@media (max-width:767.98px){
  .completion-page-head{align-items:flex-start!important}
  .completion-panel-body{padding:16px}
  .completion-dropzone{min-height:170px!important}
}
@media (max-width:575.98px){
  .completion-status-chip{padding:7px 9px}
  .completion-job-primary{min-height:72px;padding:12px 14px}
  .completion-job-meta{padding:11px 13px;border-bottom:1px solid #edf0f5}
  .completion-job-meta:nth-child(2){border-right:1px solid #edf0f5}
  .completion-job-meta:last-child{border-bottom:0}
  .completion-panel-head{align-items:flex-start;padding:13px 14px}
  .completion-panel-head p{white-space:normal}
  .completion-required,.completion-optional{display:none}
  .completion-signoff-top,.completion-signature-area{padding-left:15px;padding-right:15px}
  .completion-confirmation-note{margin-left:15px;margin-right:15px}
  .completion-actions{padding:14px 15px}
}

@media (max-width:575.98px){
  .datatable-page-size{
    justify-content:flex-start;
    padding:12px 14px 8px;
  }
  .datatable-page-size label{
    flex-wrap:wrap;
  }
  body table.dataTable > tbody > tr.child > td,
  body table.dataTable > tbody > tr.child > th{
    padding:12px !important;
  }
  body table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:1fr;
    padding:10px !important;
  }
  body table.dataTable > tbody > tr.child ul.dtr-details > li{
    min-height:40px;
    padding:9px 10px !important;
  }
}

/* Final responsive toolbar normalization for payments, invoices and service requests */
.invoices-page .invoice-toolbar,
.payments-page .invoice-toolbar,
.service-requests-page .invoice-toolbar{
  display:grid !important;
  align-items:center !important;
  gap:10px !important;
  margin-bottom:20px;
}
.invoices-page .invoice-toolbar{
  grid-template-columns:minmax(260px, 1fr) 150px auto;
}
.service-requests-page .invoice-toolbar{
  grid-template-columns:minmax(0, 1fr) 150px;
}
.payments-page .invoice-toolbar{
  grid-template-columns:minmax(260px, 1fr) 150px 150px 150px;
}
.invoices-page .invoice-search,
.payments-page .invoice-search,
.service-requests-page .invoice-search{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:42px !important;
  min-height:42px !important;
  flex:none !important;
  margin:0 !important;
  padding:0 12px !important;
}
.invoices-page .invoice-search .input-group-text,
.payments-page .invoice-search .input-group-text,
.service-requests-page .invoice-search .input-group-text{
  height:100% !important;
  min-height:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.invoices-page .invoice-search .form-control,
.payments-page .invoice-search .form-control,
.service-requests-page .invoice-search .form-control{
  height:100% !important;
  min-height:0 !important;
}
.invoices-page #invoiceStatusFilter,
.payments-page #paymentStatusFilter,
.service-requests-page #serviceStatusFilter,
.payments-page .payment-date-filter{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:42px !important;
  min-height:42px !important;
  flex:none !important;
  margin:0 !important;
  padding:0 12px !important;
}
.invoices-page #invoiceStatusFilter .filter-label,
.payments-page #paymentStatusFilter .filter-label,
.service-requests-page #serviceStatusFilter .filter-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.invoices-page #invoiceStatusFilter .filter-dropdown,
.payments-page #paymentStatusFilter .filter-dropdown,
.service-requests-page #serviceStatusFilter .filter-dropdown{
  left:0 !important;
  right:auto !important;
  width:100% !important;
  min-width:100% !important;
}

.invoices-page .invoice-export-actions{
  width:auto !important;
  min-width:0 !important;
  margin-left:0 !important;
  justify-self:end;
}
.invoices-page .invoice-export-actions .dt-buttons{
  display:flex !important;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  width:auto !important;
}
.invoices-page .invoice-export-actions .invoice-export-btn{
  flex:0 0 auto !important;
  min-width:0 !important;
  height:38px !important;
  padding:0 12px !important;
}

@media (max-width:991.98px){
  .invoices-page .invoice-toolbar,
  .payments-page .invoice-toolbar{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .invoices-page .invoice-search,
  .payments-page .invoice-search,
  .payments-page #paymentStatusFilter{
    grid-column:span 2;
  }
  .invoices-page .invoice-export-actions{
    justify-self:start;
  }
}

@media (max-width:575.98px){
  .service-requests-page .invoice-toolbar{
    grid-template-columns:minmax(0, 1fr) 112px;
  }
  .invoices-page .invoice-toolbar,
  .payments-page .invoice-toolbar{
    grid-template-columns:1fr;
  }
  .invoices-page .invoice-search,
  .invoices-page #invoiceStatusFilter,
  .payments-page .invoice-search,
  .payments-page #paymentStatusFilter{
    grid-column:auto;
  }
  .invoices-page .invoice-export-actions{
    width:100% !important;
    justify-self:stretch;
  }
  .invoices-page .invoice-export-actions .dt-buttons{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .invoices-page .invoice-export-actions .invoice-export-btn{
    width:auto !important;
  }
  .service-requests-page #serviceStatusFilter{
    padding-left:10px !important;
    padding-right:10px !important;
  }
}

/* Final DataTables child detail overflow guard */
body .table-responsive:has(table.dataTable.dtr-inline),
body .invoice-table-responsive:has(table.dataTable.dtr-inline),
body .dashboard-table-responsive:has(table.dataTable.dtr-inline),
body .technician-dashboard-table-responsive:has(table.dataTable.dtr-inline){
  overflow-x:visible !important;
}
body table.dataTable,
body table.dataTable > tbody,
body table.dataTable > tbody > tr.child,
body table.dataTable > tbody > tr.child > td,
body table.dataTable > tbody > tr.child > th{
  max-width:100% !important;
}
body table.dataTable > tbody > tr.child > td,
body table.dataTable > tbody > tr.child > th{
  overflow:hidden !important;
  box-sizing:border-box;
}
body table.dataTable > tbody > tr.child ul.dtr-details{
  max-width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
  box-sizing:border-box;
}
body table.dataTable > tbody > tr.child ul.dtr-details > li,
body table.dataTable > tbody > tr.child span.dtr-title,
body table.dataTable > tbody > tr.child span.dtr-data{
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box;
}
body table.dataTable > tbody > tr.child span.dtr-data,
body table.dataTable > tbody > tr.child span.dtr-data *{
  overflow-wrap:anywhere;
  word-break:break-word;
}

@media (max-width:575.98px){
  body table.dataTable > tbody > tr.child > td,
  body table.dataTable > tbody > tr.child > th{
    padding:10px !important;
  }
  body table.dataTable > tbody > tr.child ul.dtr-details{
    grid-template-columns:minmax(0, 1fr) !important;
    gap:8px !important;
    padding:8px !important;
  }
  body table.dataTable > tbody > tr.child ul.dtr-details > li{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr);
    gap:6px;
    padding:10px !important;
  }
  body table.dataTable > tbody > tr.child span.dtr-data{
    justify-content:flex-start;
    text-align:left;
  }
}

body table.dataTable > tbody > tr.child > td:has(.job-action-wrap.open),
body table.dataTable > tbody > tr.child > td:has(.service-inline-status.open),
body table.dataTable > tbody > tr.child ul.dtr-details:has(.job-action-wrap.open),
body table.dataTable > tbody > tr.child ul.dtr-details:has(.service-inline-status.open),
body table.dataTable > tbody > tr.child li:has(.job-action-wrap.open),
body table.dataTable > tbody > tr.child li:has(.service-inline-status.open),
body table.dataTable > tbody > tr.child span.dtr-data:has(.job-action-wrap.open),
body table.dataTable > tbody > tr.child span.dtr-data:has(.service-inline-status.open){
  overflow:visible !important;
  position:relative;
  z-index:100;
}

/* Worker detail schedule */
.worker-current-job{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.worker-current-job-main{min-width:0;flex:1}
.worker-current-job h3{margin:10px 0 0;color:#172033;font-size:18px;font-weight:650}
.worker-job-meta{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:8px;align-items:center}
.worker-job-meta>svg{grid-row:1/3;width:15px!important;height:15px!important;color:#7652ee}
.worker-job-meta span{color:#8995a7;font-size:10px}
.worker-job-meta strong{min-width:0;overflow:hidden;color:#344056;font-size:12px;font-weight:550;text-overflow:ellipsis;white-space:nowrap}
.worker-job-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}
.worker-job-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 13px;font-size:12px}
.worker-job-actions .btn svg{width:14px!important;height:14px!important}
.worker-schedule-list{background:#f8fafc}
.worker-schedule-list .schedule-job-card:last-child{margin-bottom:0}
.worker-schedule-title{display:inline-block;color:#020617;text-decoration:none}
.worker-schedule-title:hover{color:#6d28d9}
.worker-schedule-panel{overflow:hidden;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 9px 26px rgba(15,23,42,.045)}
.worker-schedule-panel-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid #e8edf3;background:#fbfcfe}
.worker-schedule-panel-head h2{margin:0;color:#172033;font-size:15px;font-weight:700}
.worker-schedule-panel-head p{margin:3px 0 0;color:#8591a3;font-size:11px}
.worker-schedule-create-btn{flex:0 0 auto}
.worker-schedule-head-icon{display:flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;color:#fff;background:var(--gradient);box-shadow:0 7px 16px rgba(109,40,217,.18)}
.worker-schedule-head-icon svg{width:15px!important;height:15px!important}
.worker-calendar-pane{padding:22px;border-right:1px solid #e8edf3;background:#fff}
.worker-calendar-pane .schedule-month-head{margin-bottom:20px}
.worker-appointments-pane{min-height:330px;padding:22px;background:#f8fafc}
.worker-appointments-pane .schedule-date-title{margin-top:0;color:#475569}
.worker-appointments-pane .schedule-empty{min-height:230px;border:1px dashed #d9e0ea;background:#fff;box-shadow:none}
.completed-job-extra{
  max-height:0;
  padding-top:0;
  padding-bottom:0;
  border-bottom-color:transparent;
  opacity:0;
  overflow:hidden;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
  transition:max-height .5s ease, padding .4s ease, opacity .35s ease, transform .45s ease, visibility 0s linear .5s, border-color .3s ease;
}
.completed-job-extra.is-visible{
  max-height:90px;
  padding-top:13px;
  padding-bottom:13px;
  border-bottom-color:#edf1f5;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
  transition:max-height .5s ease, padding .4s ease, opacity .4s ease .08s, transform .45s ease, visibility 0s linear 0s, border-color .3s ease;
}
.completed-jobs-footer{display:flex;justify-content:center;padding:12px 18px 16px;border-top:0}
.completed-jobs-more{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 12px;border:1px solid #ded8fa;border-radius:8px;color:#6843d5;background:#f8f6ff;font-size:11px;font-weight:650;transition:all .18s ease}
.completed-jobs-more:hover{border-color:#7652ee;color:#fff;background:#7652ee;box-shadow:0 7px 16px rgba(109,40,217,.16)}
.completed-jobs-more svg{width:13px!important;height:13px!important}
.listing-load-more-wrap{
  display:flex;
  justify-content:center;
  min-height:48px;
  padding:14px 0 2px;
}
.listing-load-more-wrap:empty{display:none;min-height:0;padding:0}
.listing-load-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:34px;
  padding:7px 14px;
  border:1px solid #ded8fa;
  border-radius:8px;
  color:#6843d5;
  background:#f8f6ff;
  font-size:12px;
  font-weight:650;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.listing-load-more:hover:not(:disabled){
  border-color:#7652ee;
  color:#fff;
  background:#7652ee;
  box-shadow:0 8px 18px rgba(109,40,217,.18);
  transform:translateY(-1px);
}
.listing-load-more:disabled{cursor:wait;opacity:.72}
.listing-load-more svg{width:14px!important;height:14px!important;transition:transform .2s ease}
.listing-load-more:hover:not(:disabled) svg{transform:translateY(2px)}
.listing-load-more.is-loading svg{animation:spin .8s linear infinite}
.listing-card-enter{
  opacity:0;
  transform:translateY(14px);
}
.listing-card-enter.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:opacity .42s ease,transform .42s ease;
}
@media (max-width:767.98px){
  .worker-current-job{align-items:stretch;flex-direction:column}
  .worker-job-actions{justify-content:flex-end}
  .worker-job-actions .btn{min-width:112px}
}
@media (max-width:991.98px){
  .worker-calendar-pane{border-right:0;border-bottom:1px solid #e8edf3}
  .worker-appointments-pane{min-height:260px}
  .worker-appointments-pane .schedule-empty{min-height:160px}
}
@media (max-width:419.98px){
  .worker-schedule-panel-head{align-items:flex-start;flex-wrap:wrap}
  .worker-schedule-panel-head .worker-schedule-create-btn{margin-left:46px}
  .worker-job-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .worker-job-actions .btn{min-width:0;padding-left:8px;padding-right:8px}
}

/* Static reminders design */
.reminders-static-page{min-height:calc(100vh - 110px);background:#f6f7fb;padding-top:26px;padding-bottom:36px}
.reminders-static-shell{width:100%;max-width:1380px;margin:0 auto}
.reminders-static-title{margin:0;color:#111827;font-size:25px;font-weight:750;line-height:1.2}
.reminders-static-subtitle{margin:5px 0 0;color:#7b8798;font-size:12.5px}
.reminders-new-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 15px;border:0;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap}
.reminders-new-btn svg{width:14px!important;height:14px!important}
.reminders-stat-card{display:flex;align-items:center;gap:14px;height:100%;min-height:94px;padding:17px 18px;border:1px solid #dfe5ee;border-radius:10px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.025);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.reminders-stat-card:hover{border-color:#d1c7fb;box-shadow:0 12px 28px rgba(91,63,211,.08);transform:translateY(-1px)}
.reminders-stat-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 43px;width:43px;height:43px;border-radius:10px}
.reminders-stat-icon svg{width:18px!important;height:18px!important}
.reminders-stat-icon.is-total{color:#7553e8;background:#f0edff}
.reminders-stat-icon.is-due{color:#d88b17;background:#fff6dc}
.reminders-stat-icon.is-completed{color:#0a9f72;background:#e3f9ef}
.reminders-stat-icon.is-overdue{color:#dc4058;background:#ffeaee}
.reminders-stat-card strong,.reminders-stat-card span{display:block}
.reminders-stat-card strong{color:#111827;font-size:23px;font-weight:750;line-height:1}
.reminders-stat-card span{margin-top:7px;color:#7b8798;font-size:11.5px}
.reminders-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reminders-filter-label{margin-right:2px;color:#6f7b8d;font-size:12px;font-weight:600}
.reminders-filter-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:5px 12px;border:1px solid #e1e6ee;border-radius:999px;background:#fff;color:#273449;font-size:11.5px;font-weight:650;transition:all .16s ease}
.reminders-filter-pill span{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f0f2f6;color:#768195;font-size:10px}
.reminders-filter-pill:hover{border-color:#cfc4fb;color:#6843d5;background:#faf9ff}
.reminders-filter-pill.active{border-color:transparent;color:#fff;background:var(--gradient);box-shadow:0 7px 18px rgba(109,40,217,.2)}
.reminders-filter-pill.active span{color:#6843d5;background:#fff}
.reminders-table-card{overflow:hidden;border:1px solid #dfe5ee;border-radius:11px;background:#fff;box-shadow:0 6px 22px rgba(15,23,42,.025)}
.reminders-static-table{width:100%;table-layout:fixed}
.reminders-static-table thead th{height:46px;padding:12px 14px;border-bottom:1px solid #dfe5ee;background:#fbfcfe;color:#657389;font-size:11px;font-weight:650;vertical-align:middle}
.reminders-static-table tbody td{height:64px;padding:10px 14px;border-color:#e7ebf1;color:#657389;font-size:11.5px;vertical-align:middle}
.reminders-static-table tbody tr:last-child td{border-bottom:0}
.reminders-static-table tbody tr{transition:background-color .16s ease}
.reminders-static-table tbody tr:hover{background:#fbfaff}
.reminders-static-table th:nth-child(1){width:4%}
.reminders-static-table th:nth-child(2){width:10%}
.reminders-static-table th:nth-child(3){width:18%}
.reminders-static-table th:nth-child(4){width:17%}
.reminders-static-table th:nth-child(5){width:9%}
.reminders-static-table th:nth-child(6){width:13%}
.reminders-static-table th:nth-child(7){width:14%}
.reminders-static-table th:nth-child(8){width:7%}
.reminders-static-table th:nth-child(9){width:8%}
.reminders-static-table .reminders-control-col{padding-left:8px;padding-right:8px}
.reminders-date{display:inline-flex;align-items:center;gap:7px;color:#66758a;white-space:nowrap}
.reminders-date b{font-weight:500;color:#8a95a5}
.reminders-task{min-width:0}
.reminders-task strong,.reminders-task span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reminders-task strong{color:#172033;font-size:12px;font-weight:700}
.reminders-task span{margin-top:3px;color:#8a95a5;font-size:10.5px}
.reminders-client-detail span{overflow:visible;white-space:normal;word-break:break-word}
.reminders-amount{color:#172033;font-size:12px;font-weight:750;white-space:nowrap}
.reminders-last-sent{display:block;color:#6f7b8d;font-size:10.5px;line-height:1.4;white-space:normal}
.reminders-client{display:block;overflow:hidden;color:#657389;text-overflow:ellipsis;white-space:nowrap}
.reminders-category,.reminders-status{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:4px 9px;border-radius:999px;white-space:nowrap;font-size:10.5px;font-weight:650}
.reminders-category{color:#637086;background:#f1f4f8}
.reminders-status.pending{color:#6843d5;background:#f1edff;border:1px solid #ddd4ff}
.reminders-status.completed{color:#07865f;background:#e8faf2;border:1px solid #bcebd8}
.reminders-status.overdue{color:#cf2f49;background:#fff0f3;border:1px solid #ffcbd4}
.reminders-priority{font-size:10.5px;font-weight:650}
.reminders-priority.low{color:#657389}
.reminders-priority.medium{color:#cc7a0b}
.reminders-priority.high{color:#dc354f}
.reminders-sms-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:62px;height:29px;padding:5px 10px;border:1px solid #e3dcff;border-radius:8px;color:#6843d5;background:#f2efff;font-size:10.5px;font-weight:700;transition:all .16s ease}
.reminders-sms-btn:hover{border-color:transparent;color:#fff;background:var(--gradient);box-shadow:0 6px 14px rgba(109,40,217,.18)}
.reminders-sms-btn svg,.reminders-no-action svg{width:12px!important;height:12px!important}
.reminders-no-action{display:inline-flex;align-items:center;gap:4px;color:#a1a9b5;font-size:10px;white-space:nowrap}
.reminder-log-status{display:grid;justify-items:start;gap:5px}
.reminder-log-status small{display:block;max-width:145px;overflow:hidden;color:#8b96a6;font-size:9.5px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.reminder-create-modal{max-width:520px;margin:0 auto}
.reminder-create-modal .modal-header p{margin:5px 0 0;color:#7b8798;font-size:12px}
.reminder-modal-recipient{display:flex;align-items:center;gap:7px;min-height:34px;margin-top:10px;padding:8px 10px;border:1px solid #e2e7ee;border-radius:8px;color:#657389;background:#fff;font-size:11.5px;overflow-wrap:anywhere}
.reminder-modal-recipient svg{width:13px!important;height:13px!important;flex:0 0 13px;color:#7652ee}
.reminder-create-modal .modal-footer{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px 20px}
.reminder-create-modal .modal-footer .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:128px;min-height:38px;padding:8px 13px;font-size:12px}
.reminder-create-modal .modal-footer .btn svg{width:14px!important;height:14px!important}
.reminders-empty-state{display:flex;min-height:210px;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#8a95a5;text-align:center}
.reminders-empty-state svg{width:28px!important;height:28px!important;color:#58c99d}
.reminders-empty-state strong{color:#273449;font-size:14px}
.reminders-empty-state span{font-size:11.5px}
.reminders-filter-empty{padding:28px;color:#7b8798;font-size:12px;text-align:center}

@media (min-width:1921px){
  .reminders-static-shell{max-width:1680px}
  .reminders-static-table tbody td{height:72px}
}
@media (max-width:991.98px){
  .reminders-static-page{padding-top:20px}
}
@media (max-width:767.98px){
  .reminders-static-page{padding:18px 0 28px}
  .reminders-static-title{font-size:22px}
  .reminders-new-btn{min-height:35px;padding:7px 11px;font-size:11.5px}
  .reminders-stat-card{min-height:84px;padding:13px}
  .reminders-stat-icon{flex-basis:37px;width:37px;height:37px}
  .reminders-stat-card strong{font-size:20px}
  .reminders-filter-bar{gap:6px}
  .reminders-filter-label{flex:0 0 100%}
  .reminders-filter-pill{padding:4px 9px;font-size:10.5px}
  .reminders-table-card{overflow:visible;border:0;background:transparent;box-shadow:none}
  .reminders-static-table,.reminders-static-table tbody,.reminders-static-table tr,.reminders-static-table td{display:block;width:100%}
  .reminders-static-table{table-layout:auto}
  .reminders-static-table thead{display:none}
  .reminders-static-table tbody{display:grid;gap:12px}
  .reminders-static-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:15px;border:1px solid #dfe5ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.035)}
  .reminders-static-table tbody td{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;min-width:0;height:auto;padding:0;border:0;text-align:left!important}
  .reminders-static-table tbody td:before{content:attr(data-label);color:#8994a5;font-size:10px;font-weight:650}
  .reminders-static-table tbody td:nth-child(2){grid-column:1/-1;grid-row:1;display:block;padding-bottom:10px;border-bottom:1px solid #edf0f4}
  .reminders-static-table tbody td:nth-child(2):before{display:none}
  .reminders-task strong{font-size:13px}
  .reminders-static-table tbody td:last-child{justify-items:start}
  .reminder-log-status small{max-width:none}
}
@media (max-width:575.98px){
  .reminders-static-page .row.g-3{--bs-gutter-x:10px;--bs-gutter-y:10px}
  .reminders-stat-card{gap:9px;padding:11px}
  .reminders-stat-icon{flex-basis:34px;width:34px;height:34px}
  .reminders-stat-icon svg{width:15px!important;height:15px!important}
  .reminders-stat-card strong{font-size:18px}
  .reminders-stat-card span{margin-top:4px;font-size:10px}
  .reminders-static-table tbody tr{grid-template-columns:1fr}
  .reminders-static-table tbody td:nth-child(2){grid-column:auto}
}

@media (max-width:767.98px){
  .reminders-static-table.dataTable{display:table;width:100%!important;table-layout:auto}
  .reminders-static-table.dataTable thead{display:table-header-group}
  .reminders-static-table.dataTable tbody{display:table-row-group}
  .reminders-static-table.dataTable tbody tr{display:table-row;padding:0;border:0;border-radius:0;background:#fff;box-shadow:none}
  .reminders-static-table.dataTable tbody td{display:table-cell;width:auto;height:58px;padding:9px 10px;border-bottom:1px solid #e7ebf1;vertical-align:middle}
  .reminders-static-table.dataTable tbody td:before{display:none}
  .reminders-static-table.dataTable tbody td:nth-child(2){display:table-cell;padding:9px 10px;border-bottom:1px solid #e7ebf1}
  .reminders-static-table.dataTable tbody td:last-child{justify-items:normal}
  .reminders-static-table.dataTable th.reminders-primary-column,
  .reminders-static-table.dataTable td.reminders-primary-column{display:table-cell!important;min-width:0!important;width:auto!important}
  .reminders-static-table.dataTable th:nth-child(1),
  .reminders-static-table.dataTable td:nth-child(1){width:38px!important;min-width:38px!important;max-width:38px!important}
  .reminders-static-table.dataTable th:nth-child(3),
  .reminders-static-table.dataTable td:nth-child(3){width:44%!important}
  .reminders-static-table.dataTable th:nth-child(4),
  .reminders-static-table.dataTable td:nth-child(4){width:auto!important}
  .reminders-static-table.dataTable .reminders-task strong,
  .reminders-static-table.dataTable .reminders-task span{white-space:normal;overflow-wrap:anywhere}
  .reminders-table-card .datatable-page-size{padding:12px 12px 8px}
  .reminders-table-card .jobs-datatable-footer{padding:12px}
}
/* Roles and permissions */
.role-summary-card {
  min-height: 92px;
  padding: 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
}

.role-summary-icon,
.role-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #7048f5;
  background: #f1edff;
  border-radius: 8px;
  font-weight: 700;
}

.role-summary-icon svg,
.role-edit-btn svg {
  width: 18px;
  height: 18px;
}

.role-summary-card strong,
.role-summary-card div > span {
  display: block;
}

.role-summary-card strong {
  color: #111827;
  font-size: 22px;
  line-height: 1.1;
}

.role-summary-card div > span {
  margin-top: 5px;
  color: #7b879d;
  font-size: 13px;
}

.role-search-wrap {
  position: relative;
  max-width: 520px;
}

.role-search-wrap > svg {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 14px;
  width: 17px;
  height: 17px;
  color: #8b98ad;
  transform: translateY(-50%);
  pointer-events: none;
}

.role-search-wrap .form-control {
  min-height: 44px;
  padding-left: 42px;
  border-color: #dfe4ec;
  border-radius: 8px;
}

.role-permission-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.role-permission-card:hover {
  border-color: #c9bbff;
  box-shadow: 0 8px 24px rgba(69, 46, 148, .08);
}

.role-permission-header {
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fafbfe;
  border-bottom: 1px solid #e7eaf0;
}

.role-title-wrap {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.role-title-wrap h5 {
  margin: 0 0 3px;
  color: #171d2b;
  font-size: 15px;
  font-weight: 600;
}

.role-title-wrap span:not(.role-avatar) {
  color: #8490a5;
  font-size: 12px;
}

.role-edit-btn {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #657189;
  background: #fff;
  border: 1px solid #dbe1ea;
  border-radius: 7px;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}

.role-edit-btn:hover {
  color: #fff;
  background: linear-gradient(135deg, #5b5cf0, #7c35ef);
  border-color: transparent;
}

.role-permission-list {
  padding: 18px 20px 20px;
}

.permission-toggle-item {
  min-height: 64px;
  padding: 12px 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  background: #fff;
  border: 1px solid #e3e7ee;
  border-radius: 8px;
  transition: border-color .2s ease, background .2s ease;
}

.permission-toggle-item:hover {
  background: #fbfaff;
  border-color: #cfc3ff;
}

.permission-toggle-item.is-saving {
  opacity: .65;
  pointer-events: none;
}

.permission-copy {
  min-width: 0;
}

.permission-copy strong,
.permission-copy small {
  display: block;
}

.permission-copy strong {
  overflow-wrap: anywhere;
  color: #252c3b;
  font-size: 13px;
  font-weight: 600;
}

.permission-copy small {
  margin-top: 3px;
  color: #8995a8;
  font-size: 11px;
}

.permission-toggle-item .form-check-input {
  width: 38px;
  height: 20px;
  margin: 0;
  cursor: pointer;
  border-color: #cbd3df;
  box-shadow: none;
}

.permission-toggle-item .form-check-input:checked {
  background-color: #7048f5;
  border-color: #7048f5;
}

.permission-toggle-item .form-check-input:focus {
  border-color: #8b6af7;
  box-shadow: 0 0 0 3px rgba(112, 72, 245, .13);
}

.role-empty-state {
  padding: 28px;
  color: #8490a5;
  text-align: center;
  background: #fff;
  border: 1px dashed #d6dce6;
  border-radius: 8px;
}

.role-back-btn{height:34px;display:inline-flex;align-items:center;gap:7px;border-radius:8px;font-size:13px;font-weight:600}
.role-back-btn svg{width:15px;height:15px}
.role-form-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:12px 14px;color:#9f1239;background:#fff7f8;border:1px solid #fecdd3;border-radius:8px}
.role-form-alert svg{width:18px;height:18px;flex:0 0 18px;color:#e11d48;margin-top:1px}
.role-form-alert strong,.role-form-alert span{display:block;font-size:13px}
.role-form-alert strong{font-weight:700}
.role-form-alert span{margin-top:2px;color:#be123c}
.role-details-card{min-height:174px}
.role-details-body{padding:20px}
.role-details-body .form-label{margin-bottom:8px;color:#263044;font-size:13px;font-weight:600}
.role-details-body .taxonomy-form-control{height:42px}
.role-name-section-body{padding:18px 20px 20px}
.role-name-section-body .form-label{margin-bottom:7px;color:#111827;font-size:14px;font-weight:500}
.role-enterprise-input{min-height:33px;max-width:520px;padding:6px 12px;border:1px solid #dfe4ea;border-radius:8px;background:#f6f7f8;color:#27354b;font-size:14px;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.role-enterprise-input::placeholder{color:#6b7280;opacity:1}
.role-enterprise-input:focus{border-color:#6366f1;background:#f6f7f8;box-shadow:0 0 0 1px rgba(99,102,241,.35)}
.role-create-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #e3e7ee}
.role-create-actions .btn{height:38px;display:inline-flex;align-items:center;gap:7px;border-radius:8px;font-size:13px;font-weight:700}
.role-create-actions .btn svg{width:15px;height:15px}

@media (max-width: 575.98px) {
  .job-card-meta-grid{
    grid-template-columns:1fr;
    gap:7px;
  }
  .job-card-schedule{
    justify-items:start;
  }
  .job-card-schedule span{
    justify-content:flex-start;
  }
  .job-card-schedule .job-location{
    text-align:left;
  }
  .job-time-select .job-time-slot-menu{
    min-width:100% !important;
  }
  .role-permission-header,
  .role-permission-list {
    padding-left: 14px;
    padding-right: 14px;
  }
  .role-name-section-body{padding-left:14px;padding-right:14px}

  .role-permissions-page .btn-gradient {
    width: auto;
  }
  .role-create-actions{margin-top:18px;padding-top:16px}
  .role-create-actions .btn{flex:1;justify-content:center}
}

/* Company listing and detail */
.company-toolbar .workers-search {
  width: min(100%, 680px);
}

.company-list-card .worker-contact {
  min-width: 0;
  overflow-wrap: anywhere;
}

.company-modal-dialog {
  width: min(760px, calc(100vw - 24px));
  max-width: 760px;
}

.company-modal-content {
  overflow: hidden;
  background: #f7f8fb;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(23, 29, 43, .22);
}

.company-modal-content .modal-header,
.company-modal-content .modal-footer {
  padding: 18px 22px;
  background: #f7f8fb;
}

.company-modal-content .modal-body {
  padding: 10px 22px 22px;
  max-height: calc(100vh - 190px);
  overflow-y: auto;
}

.company-modal-content .modal-title {
  color: #171d2b;
  font-size: 18px;
  font-weight: 600;
}

.company-modal-content .modal-subtitle {
  margin-top: 3px;
  color: #8490a5;
  font-size: 12px;
}

.company-modal-content .form-label {
  margin-bottom: 6px;
  color: #273044;
  font-size: 13px;
  font-weight: 500;
}

.company-form-control {
  min-height: 42px;
  color: #273044;
  background: #f9fafc;
  border: 1px solid #d8dee8;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 28, 45, .03);
}

.company-form-control:focus {
  background: #fff;
  border-color: #7251f3;
  box-shadow: 0 0 0 3px rgba(112, 72, 245, .1);
}

.company-modal-content .iti {
  width: 100%;
  display: block;
}

.company-password-wrap {
  position: relative;
}

.company-password-wrap .company-form-control {
  padding-right: 42px;
}

.company-password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #7b879d;
  background: transparent;
  border: 0;
  transform: translateY(-50%);
}

.company-password-toggle:hover {
  color: #7048f5;
}

.company-password-toggle svg {
  width: 16px;
  height: 16px;
}

.company-logo-dropzone {
  min-height: 128px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: #fbfcfe;
  border: 1px dashed #c9d1dd;
  border-radius: 8px;
  transition: border-color .2s ease, background .2s ease;
}

.company-logo-dropzone:hover,
.company-logo-dropzone.is-dragging {
  background: #f5f2ff;
  border-color: #7048f5;
}

.company-logo-dropzone img {
  display: none;
  max-width: 150px;
  max-height: 90px;
  object-fit: contain;
}

.company-logo-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  color: #768399;
  text-align: center;
}

.company-logo-placeholder svg {
  width: 22px;
  height: 22px;
  color: #7048f5;
}

.company-logo-placeholder strong {
  color: #3a4457;
  font-size: 13px;
}

.company-logo-placeholder small,
.company-field-error {
  font-size: 11px;
}

.company-modal-content .modal-footer .btn {
  min-width: 126px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.company-modal-content .modal-footer .btn svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 575.98px) {
  .company-modal-content .modal-header,
  .company-modal-content .modal-footer {
    padding: 15px;
  }

  .company-modal-content .modal-body {
    padding: 8px 15px 18px;
  }

  .company-modal-content .modal-footer .btn {
    min-width: 112px;
    width: auto;
  }
}

.company-profile-band {
  padding: 22px;
  display: flex;
  align-items: center;
  gap: 18px;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
}

.company-detail-avatar {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(135deg, #5b5cf0, #7c35ef);
  border-radius: 8px;
  font-size: 24px;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(104, 65, 239, .18);
}

.company-profile-copy {
  min-width: 0;
}

.company-status-control {
  flex: 0 0 120px;
  display: flex;
  justify-content: flex-end;
}

.company-status-action .job-action-toggle {
  min-width: 120px;
}

.company-status-action .job-action-menu {
  min-width: 142px;
}

.company-status-action .job-action-menu form {
  margin: 0;
}

.company-profile-copy h3 {
  margin: 0;
  color: #121827;
  font-size: 21px;
  font-weight: 600;
}

.company-profile-copy span:not(.worker-status) {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #68758c;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.company-profile-copy svg,
.company-stat-card svg {
  width: 17px;
  height: 17px;
}

.company-stat-card {
  min-height: 112px;
  padding: 17px;
  display: grid;
  grid-template-columns: 32px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.company-stat-card:hover {
  border-color: #c9bbff;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(69, 46, 148, .07);
}

.company-stat-card > svg {
  grid-row: 1 / 3;
  padding: 7px;
  width: 32px;
  height: 32px;
  color: #7048f5;
  background: #f1edff;
  border-radius: 7px;
}

.company-stat-card span {
  color: #7b879d;
  font-size: 12px;
}

.company-stat-card strong {
  color: #111827;
  font-size: 22px;
  line-height: 1.1;
}

.company-table-section {
  overflow: visible;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
}

.company-section-head {
  padding: 18px 20px;
  border-bottom: 1px solid #e5e9f0;
}

.company-section-head h5 {
  margin: 0 0 3px;
  color: #171d2b;
  font-size: 15px;
  font-weight: 600;
}

.company-section-head p {
  margin: 0;
  color: #8490a5;
  font-size: 12px;
}

.company-table-wrap {
  overflow: visible;
}

.company-detail-table {
  margin: 0 !important;
}

.company-detail-table thead th {
  padding: 13px 16px !important;
  color: #627089;
  background: #fbfcfe;
  border-bottom: 1px solid #dfe4ec !important;
  font-size: 12px;
  font-weight: 500;
}

.company-detail-table tbody td {
  padding: 13px 16px !important;
  vertical-align: middle;
  color: #536078;
  border-bottom: 1px solid #e8ebf1;
  font-size: 13px;
}

.company-person-link {
  color: #161d2c;
  font-weight: 600;
}

.company-person-link:hover {
  color: #7048f5;
}

.company-table-section .dataTables_wrapper .row {
  margin: 0;
  padding: 12px 16px;
}

.company-table-section .dataTables_wrapper .row:has(table) {
  padding: 0;
}

@media (max-width: 767.98px) {
  .company-profile-band {
    align-items: flex-start;
    padding: 16px;
  }

  .company-detail-avatar {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
    font-size: 19px;
  }

  .company-profile-copy h3 {
    font-size: 18px;
  }

  .company-status-control {
    flex-basis: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }

  .company-detail-page .workers-page-head > div:last-child {
    width: auto;
  }
}

/* Categories are managed only from the Admin Categories and Skills pages. */
.cat-pill,
.schedule-job-category {
  display: none !important;
}
/* Admin categories table */
.category-table-card {
  overflow: visible;
  background: #fff;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  box-shadow: none;
}

.category-table-responsive,
.category-table-card .dataTables_wrapper {
  overflow: visible;
}

.category-main-table {
  margin: 0 !important;
  table-layout: auto !important;
}

.category-main-table thead th {
  padding: 14px 18px !important;
  color: #60708a;
  background: #fbfcfe;
  border-bottom: 1px solid #dfe4ec !important;
  font-size: 13px;
  font-weight: 500;
}

.category-main-table tbody td {
  padding: 14px 18px !important;
  vertical-align: middle;
  color: #536078;
  border-bottom: 1px solid #e7ebf1;
  font-size: 13px;
}

.category-main-table .category-name-cell {
  display: table-cell !important;
  width: auto !important;
  min-width: 180px;
  color: #151c2b;
  font-weight: 600;
  visibility: visible !important;
}

.category-main-table .category-actions-cell {
  width: 190px;
  min-width: 190px;
  white-space: nowrap;
}

.category-main-table tbody tr:hover td {
  background: #fcfbff;
}

.category-table-card .datatable-page-size {
  border-bottom: 1px solid #e8ebf1;
}

.taxonomy-action-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #66738a;
  background: #fff;
  border: 1px solid #dce2eb;
  border-radius: 7px;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.taxonomy-action-btn:hover {
  color: #fff;
  background: linear-gradient(135deg, #5b5cf0, #7c35ef);
  border-color: transparent;
  transform: translateY(-1px);
}

.taxonomy-action-btn.taxonomy-delete-btn:hover {
  color: #fff;
  background: #dc3545;
  border-color: #dc3545;
}

.taxonomy-action-btn svg {
  width: 15px;
  height: 15px;
}

.taxonomy-modal-dialog {
  width: min(620px, calc(100vw - 24px));
  max-width: 620px;
}

.taxonomy-modal-content {
  min-height: 390px;
  overflow: visible;
  background: #f7f8fb;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(23, 29, 43, .22);
}

.taxonomy-modal-content .modal-header,
.taxonomy-modal-content .modal-footer {
  padding: 18px 20px;
  background: #f7f8fb;
}

.taxonomy-modal-content .modal-body {
  min-height: 220px;
  padding: 22px 20px 28px;
}

.taxonomy-modal-content .modal-title {
  color: #171d2b;
  font-size: 18px;
  font-weight: 600;
}

.taxonomy-modal-content .modal-subtitle {
  margin-top: 3px;
  color: #8490a5;
  font-size: 12px;
}

.taxonomy-modal-content .form-label {
  margin-bottom: 6px;
  color: #273044;
  font-size: 13px;
  font-weight: 500;
}

.taxonomy-form-control {
  min-height: 42px;
  color: #273044;
  background: #f9fafc;
  border: 1px solid #d8dee8;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 28, 45, .03);
}

.taxonomy-form-control:focus {
  background: #fff;
  border-color: #7251f3;
  box-shadow: 0 0 0 3px rgba(112, 72, 245, .1);
}

.taxonomy-modal-content .select2-container--default .select2-selection--single {
  height: 42px;
  background: #f9fafc;
  border: 1px solid #d8dee8;
  border-radius: 8px;
}

.taxonomy-modal-content .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-left: 12px;
  line-height: 40px;
  color: #273044;
}

.taxonomy-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 40px;
  right: 8px;
}

.taxonomy-modal-content .select2-container--default.select2-container--open .select2-selection--single,
.taxonomy-modal-content .select2-container--default.select2-container--focus .select2-selection--single {
  background: #fff;
  border-color: #7251f3;
  box-shadow: 0 0 0 3px rgba(112, 72, 245, .1);
}

.taxonomy-modal-content .select2-dropdown {
  overflow: hidden;
  margin-top: 5px;
  background: #fff;
  border: 1px solid #d8dee8;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(23, 29, 43, .14);
  z-index: 1065;
}

.taxonomy-modal-content .select2-search--dropdown {
  padding: 9px;
  background: #fff;
}

.taxonomy-modal-content .select2-search--dropdown .select2-search__field {
  width: 100%;
  height: 36px;
  padding: 6px 10px;
  color: #273044;
  background: #f9fafc;
  border: 1px solid #d8dee8;
  border-radius: 7px;
  outline: none;
}

.taxonomy-modal-content .select2-search--dropdown .select2-search__field:focus {
  background: #fff;
  border-color: #7251f3;
  box-shadow: 0 0 0 3px rgba(112, 72, 245, .1);
}

.taxonomy-modal-content .select2-results__options {
  max-height: 190px !important;
  padding: 5px;
}

.taxonomy-modal-content .select2-results__option {
  margin: 2px 0;
  padding: 9px 10px;
  color: #30394b;
  border-radius: 6px;
  font-size: 13px;
}

.taxonomy-modal-content .select2-results__option--highlighted[aria-selected] {
  color: #fff;
  background: linear-gradient(135deg, #5b5cf0, #7c35ef);
}

.taxonomy-modal-content .select2-results__option[aria-selected="true"] {
  color: #5d3bd8;
  background: #f1edff;
}

.taxonomy-modal-content .modal-footer .btn {
  min-width: 122px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.taxonomy-modal-content .modal-footer .btn svg {
  width: 15px;
  height: 15px;
}

.skill-category-badge {
  display: inline-flex;
  padding: 4px 9px;
  color: #6045d8;
  background: #f1edff;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
}

@media (max-width: 575.98px) {
  .category-main-table thead th,
  .category-main-table tbody td {
    padding: 12px 10px !important;
  }

  .category-main-table .category-name-cell {
    min-width: 110px;
  }

  .category-main-table .category-actions-cell {
    width: 128px;
    min-width: 128px;
  }

  .category-main-table .btn {
    padding: 5px 7px;
    font-size: 11px;
  }

  .taxonomy-modal-content .modal-header,
  .taxonomy-modal-content .modal-footer {
    padding: 15px;
  }

  .taxonomy-modal-content .modal-body {
    padding: 8px 15px 18px;
  }

  .taxonomy-modal-content {
    min-height: 360px;
  }
}
.job-form-section {
  background: #fff;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  padding: 24px;
}
.job-form-section-title { display: flex; align-items: center; gap: 9px; margin-bottom: 20px; font-size: 16px; font-weight: 600; color: #172033; }
.job-form-section-title svg { color: #713df2; }
.job-product-section {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e3e8f0;
}
.job-invoice-item {
  padding: 14px 0;
  border-bottom: 1px solid #e8ecf2;
}
.job-invoice-item:first-child { padding-top: 0; }
.job-item-line-total {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #dfe4ea;
  border-radius: 8px;
  background: #f8fafc;
  color: #111827;
  font-weight: 600;
}
.job-add-line-item {
  margin-top: 16px;
}
.job-form-page .job-time-range .job-arrival-toggle {
  margin-left: 0;
}
.job-form-page .job-time-range .job-arrival-panel,
.job-form-page .job-time-range .job-arrival-summary {
  width: 100%;
  margin-left: 0;
}
.job-line-remove { border: 0; background: transparent; color: #dc3545; padding: 10px; }
.job-line-remove svg { width: 18px; height: 18px; }
.job-items-total { display: flex; justify-content: space-between; padding-top: 16px; margin-top: 8px; color: #475569; }
.job-items-total strong { color: #111827; }
.job-form-actions .btn { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; }
@media (max-width: 767.98px) { .job-form-section { padding: 16px; } }

.review-page-shell {
  padding: 24px;
}

.review-context-card,
.review-form-card {
  background: #fff;
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .06);
}

.review-context-card {
  padding: 28px;
  overflow: hidden;
  position: relative;
}

.review-context-card::after {
  content: "";
  position: absolute;
  inset: auto -60px -90px auto;
  width: 210px;
  height: 210px;
  background: radial-gradient(circle, rgba(113, 61, 242, .16), transparent 68%);
  pointer-events: none;
}

.review-context-icon,
.review-submitted-icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  color: #713df2;
  background: #f1edff;
  border-radius: 12px;
}

.review-context-icon svg,
.review-submitted-icon svg {
  width: 18px;
  height: 18px;
}

.review-context-card h1,
.review-form-heading h2,
.review-submitted-state h2 {
  margin: 0;
  color: #0f172a;
  font-weight: 700;
}

.review-context-card h1 {
  margin-top: 8px;
  margin-bottom: 10px;
  font-size: 28px;
}

.review-context-card p,
.review-form-heading p,
.review-submitted-state p {
  color: #64748b;
  line-height: 1.55;
}

.review-context-list {
  display: grid;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.review-context-list div {
  padding: 14px 16px;
  background: #f8fafc;
  border: 1px solid #e5eaf1;
  border-radius: 10px;
}

.review-context-list span {
  display: block;
  margin-bottom: 4px;
  color: #8490a5;
  font-size: 12px;
  font-weight: 600;
}

.review-context-list strong {
  display: block;
  color: #1e293b;
  font-size: 14px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.review-form-card {
  padding: 28px;
}

.review-form-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 26px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e6ebf2;
}

.review-stars {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.review-star-btn {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: #9aa7bb;
  background: #f8fafc;
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  transition: .2s ease;
}

.review-star-btn:hover,
.review-star-btn.active {
  color: #fff;
  background: linear-gradient(135deg, #5b5cf0, #7c35ef);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(113, 61, 242, .22);
  transform: translateY(-1px);
}

.review-star-btn svg,
.review-stars.is-readonly svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.review-stars.is-readonly {
  color: #cbd5e1;
}

.review-stars.is-readonly .active {
  color: #713df2;
}

.review-textarea {
  resize: vertical;
  min-height: 150px;
}

.review-action-btn {
  min-width: 150px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.review-action-btn svg {
  width: 15px;
  height: 15px;
}

.review-submitted-state {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.review-existing-text {
  width: 100%;
  padding: 16px;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e5eaf1;
  border-radius: 10px;
  line-height: 1.55;
}

@media (max-width: 767.98px) {
  .review-page-shell {
    padding: 14px;
  }

  .review-context-card,
  .review-form-card {
    padding: 20px;
  }

  .review-context-card h1 {
    font-size: 23px;
  }

  .review-star-btn {
    width: 40px;
    height: 40px;
  }

  .review-action-btn {
    width: auto;
  }
}

/* Shared Select2 field design: match the standard Create Job text inputs. */
.select2-container--default .select2-selection--single {
  height: 33px !important;
  min-height: 33px !important;
  display: flex !important;
  align-items: center;
  background: #f6f7f8 !important;
  border: 1px solid #dfe4ea !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 34px 0 12px !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  line-height: 31px !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #6b7280 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 31px !important;
  right: 8px !important;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  background: #f6f7f8 !important;
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 1px rgba(99, 102, 241, .35) !important;
}
.select2-container--default .select2-selection--multiple {
  min-height: 33px !important;
  padding: 2px 7px !important;
  background: #f6f7f8 !important;
  border: 1px solid #dfe4ea !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06) !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 1px rgba(99, 102, 241, .35) !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  margin-top: 3px !important;
  padding: 2px 7px !important;
  color: #5130b5 !important;
  font-size: 12px !important;
  background: #eee9ff !important;
  border: 0 !important;
  border-radius: 6px !important;
}
.select2-container--default .select2-dropdown {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe4ea !important;
  border-radius: 10px !important;
  box-shadow: 0 14px 36px rgba(15, 23, 42, .16) !important;
}
.select2-container--default .select2-search--dropdown {
  padding: 8px !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  min-height: 33px;
  margin: 0 !important;
  padding: 6px 12px !important;
  color: #1f2937;
  font-size: 14px;
  background: #f6f7f8;
  border: 1px solid #dfe4ea !important;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
  outline: 0;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 1px rgba(99, 102, 241, .35);
}
.select2-container--default .select2-results__option {
  padding: 8px 10px !important;
  color: #1f2937;
  font-size: 13.5px !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  color: #fff !important;
  background: linear-gradient(90deg, #5f5df4, #7c3aed) !important;
}
.select2-container--default .select2-results__option--selected {
  color: #5130b5;
  background: #eee9ff !important;
}

.job-invoice-summary {
  width: min(100%, 360px);
  padding: 14px 16px;
  background: #f8fafc;
  border: 1px solid #dfe4ea;
  border-radius: 10px;
}
.job-invoice-summary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 0;
  color: #475569;
  font-size: 14px;
}
.job-invoice-summary strong {
  color: #111827;
  font-weight: 700;
}
.job-invoice-summary .job-invoice-summary-total {
  margin-top: 5px;
  padding-top: 12px;
  color: #2563eb;
  border-top: 1px solid #dfe4ea;
  font-size: 15px;
  font-weight: 700;
}
.job-invoice-summary .job-invoice-summary-total strong { color: #2563eb; }
@media (max-width: 575.98px) {
  .job-invoice-summary { width: 100%; }
}
/* Expired trial access lock */
.subscription-lock-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(3px);
  pointer-events: auto;
}

.app.subscription-locked {
  pointer-events: none;
  user-select: none;
}

.app.subscription-locked .subscription-lock-overlay,
.app.subscription-locked .subscription-lock-overlay * {
  pointer-events: auto;
  user-select: auto;
}

.subscription-scheduled-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 24px 0;
  padding: 13px 16px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fffaf2;
  color: #9a4b13;
}

.subscription-scheduled-alert > svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
}

.subscription-scheduled-alert div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.subscription-scheduled-alert strong {
  color: #7c3e11;
  font-size: 13px;
}

.subscription-scheduled-alert span {
  color: #9a6241;
  font-size: 12px;
}

.subscription-scheduled-alert a {
  margin-left: auto;
  color: #6d42ec;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.enterprise-request-modal {
  border: 0;
  border-radius: 8px;
}

.enterprise-request-modal .modal-header,
.enterprise-request-modal .modal-footer {
  padding: 20px 24px;
}

.enterprise-request-modal .modal-header p {
  color: #74829a;
  font-size: 13px;
}

.enterprise-request-modal .modal-body {
  padding: 8px 24px 24px;
}

.enterprise-contact-summary {
  display: grid;
  gap: 3px;
  padding: 13px 15px;
  margin-bottom: 18px;
  border: 1px solid #e2e7f0;
  border-radius: 7px;
  background: #f7f8fc;
}

.enterprise-contact-summary strong { color: #17243a; font-size: 14px; }
.enterprise-contact-summary span { color: #71809a; font-size: 13px; }

.admin-subscriptions-toolbar { margin-bottom: 20px; }
.admin-subscriptions-page .company-detail-table td small { display: block; margin-top: 3px; color: #7b8aa2; font-size: 12px; }
.subscription-admin-plan { color: #643cf0; font-weight: 700; }
.enterprise-request-message { min-width: 220px; max-width: 370px; color: #52627a; }
.enterprise-request-status { min-width: 112px; border-radius: 7px; border-color: #dbe3f0; color: #33425a; }
.enterprise-request-status-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 76px; padding: 6px 11px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.enterprise-request-status-badge.is-pending { background: #f5f3ff; color: #6d28d9; }
.enterprise-request-status-badge.is-closed { background: #ecfdf5; color: #059669; }
.enterprise-request-actions .job-action-menu { min-width: 116px; }

.enterprise-contact-page { min-height: 100vh; }
.enterprise-contact-shell { width: min(100% - 32px, 760px); margin: 0 auto; padding: 42px 0 56px; }
.enterprise-contact-shell .pricing-brand { display: inline-flex; margin-bottom: 28px; }
.enterprise-contact-card { padding: 34px; border: 1px solid #dfe6f1; border-top: 4px solid #6b43ef; border-radius: 8px; background: #fff; box-shadow: 0 18px 46px rgba(31, 42, 73, .08); }
.enterprise-contact-card h1 { margin: 8px 0 10px; color: #17243a; font-size: 28px; font-weight: 700; }
.enterprise-contact-card > p { margin-bottom: 26px; color: #6e7d96; font-size: 14px; line-height: 1.65; }
.enterprise-contact-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 8px; background: #f0ebff; color: #6b43ef; }
.enterprise-contact-icon svg { width: 20px; height: 20px; }
.enterprise-success-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 20px;
  padding: 13px 14px;
  border: 1px solid rgba(16, 185, 129, .22);
  border-radius: 10px;
  background: linear-gradient(135deg, #ecfdf5 0%, #f8fafc 100%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}
.enterprise-success-icon { width: 34px; height: 34px; min-width: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: #10b981; color: #fff; box-shadow: 0 8px 18px rgba(16, 185, 129, .24); }
.enterprise-success-icon svg { width: 17px; height: 17px; }
.enterprise-success-content { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; color: #0f172a; }
.enterprise-success-content strong { font-size: 13.5px; font-weight: 800; }
.enterprise-success-content span { color: #64748b; font-size: 12.5px; line-height: 1.45; }
.enterprise-success-close { width: 28px; height: 28px; min-width: 28px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; color: #64748b; transition: background-color .18s ease, color .18s ease; }
.enterprise-success-close:hover { background: #d1fae5; color: #047857; }
.enterprise-success-close svg { width: 15px; height: 15px; }
.enterprise-contact-card .form-label { margin-bottom: 7px; color: #111827; font-size: 14px; font-weight: 500; }
.enterprise-contact-card .form-control,
.enterprise-contact-card .form-select {
  min-height: 33px;
  padding: 6px 12px;
  border: 1px solid #dfe4ea;
  border-radius: 10px;
  background-color: #f6f7f8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
  color: #1f2937;
  font-size: 14px;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.enterprise-contact-card .form-select {
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23708098' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7' d='m3 6 5 5 5-5'/%3E%3C/svg%3E");
  background-position: right 15px center;
  background-size: 12px;
}
.enterprise-contact-card textarea.form-control { min-height: 70px; resize: vertical; }
.enterprise-contact-card .form-control::placeholder { color: #6b7280; opacity: 1; }
.enterprise-contact-card .form-control:focus,
.enterprise-contact-card .form-select:focus {
  border-color: #6366f1;
  background-color: #f6f7f8;
  box-shadow: 0 0 0 1px rgba(99, 102, 241, .35);
}
.enterprise-contact-card .form-control.is-invalid,
.enterprise-contact-card .form-select.is-invalid {
  border-color: #ef4444;
  background-image: none;
  box-shadow: none;
}
.enterprise-contact-card .invalid-feedback { margin-top: 6px; color: #dc2626; font-size: 12px; }
.enterprise-contact-card .enterprise-team-select { position: relative; border: 1px solid #dfe4ea; }
.enterprise-contact-card .enterprise-team-select:focus { outline: 0; border-color: #6366f1; box-shadow: 0 0 0 1px rgba(99, 102, 241, .35); }
.enterprise-contact-card .enterprise-team-select .filter-dropdown { z-index: 20; }
.enterprise-contact-card .enterprise-contact-submit { min-height: 44px; padding: 10px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; }
.enterprise-contact-submit { margin-top: 24px; }
@media (max-width: 575.98px) { .enterprise-contact-shell { width: min(100% - 24px, 760px); padding-top: 24px; } .enterprise-contact-card { padding: 24px 18px; } .enterprise-contact-card h1 { font-size: 24px; } }

@media (max-width: 575.98px) {
  .subscription-scheduled-alert {
    align-items: flex-start;
    margin: 12px 14px 0;
  }

  .subscription-scheduled-alert a {
    margin-left: 0;
  }
}

.subscription-lock-card {
  position: relative;
  width: min(440px, 100%);
  padding: 34px;
  text-align: center;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25);
}

.subscription-lock-logout-form {
  position: absolute;
  top: 14px;
  right: 14px;
}

.subscription-lock-logout {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #475569;
  background: #ffffff;
  border: 1px solid #dbe3ef;
  border-radius: 50%;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.subscription-lock-logout:hover {
  color: #ffffff;
  background: var(--gradient);
  border-color: transparent;
}

.subscription-lock-logout svg {
  width: 16px;
  height: 16px;
}

.subscription-lock-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #6d3df5;
  background: #f3efff;
  border-radius: 10px;
}

.subscription-lock-icon svg {
  width: 21px;
  height: 21px;
}

.subscription-lock-card h2 {
  margin: 0 0 8px;
  color: #172033;
  font-size: 1.25rem;
  font-weight: 700;
}

.subscription-lock-card p {
  margin: 0 0 22px;
  color: #64748b;
  font-size: 0.9rem;
}

.subscription-lock-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.subscription-lock-action svg {
  width: 16px;
  height: 16px;
}
