/* Theme variables */
:root{
  --primary-blue:#2B6CB0; 
  --accent-orange:#ED8936; 
  --light-blue:#EBF8FF; 
  --dark-blue:#1A365D; 
  --muted:#718096; 
  --success:#38A169; 
  --danger:#E53E3E; 
  --warning:#D69E2E;
  /* Lateral menu / sidebar gradient (shared with Photo Gallery banner) */
  --sidebar-gradient-start:#3e6e9a;
  --sidebar-gradient-end:#27314b;
  /* Safe area insets */
  --safe-top: env(safe-area-inset-top);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --safe-right: env(safe-area-inset-right);
}

html,body{height:100%;}
body{background:#f7f9fb;}
.rounded-ui{border-radius:12px;}
.btn, .form-control, .card{border-radius:12px;}

/* Subtle home icon link for dashboard header */
.subtle-home-link{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px;
  border-radius:999px;
  color:#64748b; /* muted */
  text-decoration:none;
  border:1px solid rgba(100,116,139,0.25);
  background:rgba(255,255,255,0.8);
}
.subtle-home-link:hover{
  color:#1A365D;
  border-color:rgba(26,54,93,0.35);
  background:#ffffff;
  box-shadow:0 2px 6px rgba(16,24,40,0.08);
}
.subtle-home-link i{ font-size:16px; }

.sidebar{
  min-height:100vh;
  background: linear-gradient(180deg, var(--sidebar-gradient-start) 0%, var(--sidebar-gradient-end) 100%);
  color:#fff;
}
.sidebar .nav-link{color:#e7eef6;border-radius:10px;}
.sidebar .nav-link.active, .sidebar .nav-link:hover{
  background: rgba(255,255,255,0.12);
  color:#fff;
}

.navbar-brand{font-weight:600;}

.brand-bg{background-color:var(--primary-blue)!important;color:#fff;}
/* brand-text keeps contextual color; no forced styles needed */
.accent{color:var(--accent-orange)!important;}

.toast-container{position:fixed; bottom:1rem; right:1rem; z-index:1080;}

.card.card-stat{
  border:1px solid rgba(43,108,176,0.10); 
  box-shadow:0 4px 18px rgba(0,0,0,0.08);
  background-color: rgba(43,108,176,0.06) !important;
  background-image: linear-gradient(180deg, rgba(43,108,176,0.08) 0%, var(--light-blue) 100%) !important;
  --bs-card-bg: transparent;
}
.card-stat .icon{font-size:24px;}

/* Dashboard calendar */
.calendar-placeholder{ display:none; }
.vc{ border-radius:12px; border:1px solid #e6eef5; background:#fff; }
.vc-header{ display:flex; align-items:center; justify-content:space-between; padding:.5rem .75rem; border-bottom:1px solid #f0f4f8; }
.vc-title{ font-weight:600; font-size:1rem; }
.vc-grid{ display:grid; grid-template-columns: repeat(7, 1fr); gap:1px; background:#e6eef5; }
.vc-cell{ min-height:88px; background:#fff; padding:.5rem; position:relative; }
.vc-cell.is-out{ background:#fafbfc; color:#b7b7b7; }
.vc-cell.is-today{ outline:2px solid var(--accent-orange); outline-offset:-2px; }
.vc-daynum{ font-size:.85rem; color:#50607a; }
/* Calendar day badges (replaces subtle dots) */
.vc-badges{ position:absolute; left:.5rem; right:.5rem; bottom:.4rem; display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.vc-badge{ display:inline-flex; align-items:center; gap:4px; padding:2px 5px; border-radius:999px; font-size:10.5px; line-height:1; border:1px solid rgba(26,54,93,0.12); background:#eff6ff; color:#1A365D; box-shadow:0 1px 0 rgba(16,24,40,.04); }
.vc-badge i{ font-size:11px; }
.vc-count{ font-size:10.5px; color:#6b7280; margin-left:2px; }

/* Legend for calendar badges */
.vc-legend{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:.6rem .75rem; border-top:1px solid #f0f4f8; font-size:11px; }
.vc-legend-label{ font-size:11px; color:#64748b; margin-right:4px; }

/* Calendar events */
.vc-event{ display:flex; align-items:center; gap:6px; margin:2px 0; padding:2px 6px; border-radius:4px; font-size:12px; line-height:1.2; background:var(--light-blue); color:#1A365D; border:1px solid rgba(26,54,93,0.15); }
.vc-event .vc-dot{ width:6px; height:6px; border-radius:50%; background:var(--primary-blue); display:inline-block; }
.vc-event .vc-text{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* State variants */
.vc-event.state-completed{ background:#E6FFFA; color:#234E52; border-color:#B2F5EA; }
.vc-event.state-completed .vc-dot{ background:#2C7A7B; }
.vc-event.state-pending{ background:#FFF5F5; color:#742A2A; border-color:#FED7D7; }
.vc-event.state-pending .vc-dot{ background:#E53E3E; }
.vc-event.state-in-progress{ background:#FFFAF0; color:#744210; border-color:#FBD38D; }
.vc-event.state-in-progress .vc-dot{ background:#D69E2E; }

/* Compact spacing for many events */
.vc-cell .vc-event{ max-width:100%; }

/* Color-coded states for calendar day badges */
.vc-badge.state-completed{ background:#E6FFFA; color:#234E52; border-color:#B2F5EA; }
.vc-badge.state-pending{ background:#FFF5F5; color:#742A2A; border-color:#FED7D7; }
.vc-badge.state-in-progress{ background:#FFFAF0; color:#744210; border-color:#FBD38D; }
.vc-badge.state-scheduled{ background:#E0F2FE; color:#1E3A8A; border-color:#BAE6FD; }
.vc-badge.state-canceled{ background:#F8FAFC; color:#6B7280; border-color:#CBD5E1; }
.vc-badge.state-other{ background:#EEF2FF; color:#3730A3; border-color:#C7D2FE; }

/* Sidebar org name: wrap up to 2 lines (readable, no single-line cut-off) */
.sidebar .brand-header{
  gap:.5rem;
  align-items:flex-start;
}
.sidebar .brand-header img,
.sidebar .brand-header > i.bi{
  flex-shrink:0;
  margin-top:.15rem;
}
.sidebar .brand-header .brand-name{
  flex:1 1 auto;
  min-width:0;
  white-space:normal;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.25;
  overflow-wrap:break-word;
  word-break:break-word;
}

/* Constrain brand text in Bootstrap navbars on all pages */
.navbar .navbar-brand{ min-width:0; max-width:70%; display:inline-flex; align-items:center; gap:.5rem; }
.navbar .navbar-brand .fw-bold,
.navbar .navbar-brand .brand-name,
.navbar .navbar-brand .brand-text{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:inline-block; }
@media (min-width: 992px){
  .navbar .navbar-brand{ max-width:50%; }
}

/* Allow long brand text in constrained contexts to wrap rather than overflow */
.brand-text{ overflow-wrap:anywhere; word-break:break-word; }

/* Inline info icon alignment for stat-card labels */
.card-stat .small .bi-info-circle{ font-size: .9rem; opacity:.8; }
.card-stat .small .bi-info-circle:hover{ opacity:1; }

/* Safe area support for modern mobile devices (iOS/Android with display cutouts) */
@supports (padding: max(0px)){
  /* Ensure fixed sidebar content doesn’t collide with notches/gestures */
  .sidebar{
    padding-top: max(1rem, var(--safe-top));
    padding-bottom: max(1rem, var(--safe-bottom));
    padding-left: max(1rem, var(--safe-left));
  }
  /* Avoid status bar overlap for fixed/sticky navbars */
  .navbar.fixed-top, .navbar.sticky-top{
    padding-top: max(0px, var(--safe-top));
  }
  /* Avoid overlap with bottom gesture areas */
  .fixed-bottom, .navbar.fixed-bottom{
    padding-bottom: max(0px, var(--safe-bottom));
  }
  /* Add safe horizontal padding to containers on small screens */
  @media (max-width: 991.98px){
    .container, .container-fluid{
      padding-left: max(0.75rem, var(--safe-left));
      padding-right: max(0.75rem, var(--safe-right));
    }
  }
}

/* Improve media element responsiveness as a baseline */
img, video{ max-width:100%; height:auto; }
/* Prevent iOS from auto-resizing text unexpectedly */
html{ -webkit-text-size-adjust: 100%; }


/* Remove dimmed overlay effect while keeping backdrop behavior */
.modal-backdrop.show { opacity: 0; }

/* Sidebar toggle: smooth chevron animation, alignment, and feedback */
.sidebar-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-bottom:.75rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.30);
  color:#e7eef6;
  background: rgba(255,255,255,0.08);
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.sidebar-toggle:hover{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.50);
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.sidebar-toggle:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(43,108,176,0.35); /* primary-blue focus ring */
}
.sidebar-toggle[aria-disabled="true"]{
  opacity:.6;
  cursor:not-allowed;
}
/* Sidebar toggle button base styles for alignment and sizing */
.sidebar-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid #dee2e6;
  border-radius:.375rem; /* Bootstrap default */
  background-color:#fff;
  color:#6c757d;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.sidebar-toggle:hover,
.sidebar-toggle:focus{
  background-color:#f8f9fa;
  border-color:#ced4da;
  color:#343a40;
  outline:0;
  box-shadow:0 0 0 .1rem rgba(13,110,253,.15);
}
/* Disabled/animation guard state */
.sidebar-toggle[aria-disabled="true"]{
  opacity:.6;
  pointer-events:none;
  cursor:not-allowed;
}
.sidebar-toggle .bi{
  font-size:16px;
  line-height:1;
  vertical-align:middle;
  transition: transform .25s ease, color .2s ease, opacity .2s ease;
  transform-origin:50% 50%;
}
/* Animate chevron to point right when collapsed (aria-expanded=false) */
.sidebar-toggle[aria-expanded="false"] .bi.bi-chevron-left{
  transform: rotate(180deg);
}
/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce){
  .sidebar-toggle .bi{ transition:none; }
}

/* Sidebar collapsed state */
.app-shell {
  display: flex;
  min-height: 100vh;
  transition: all 0.3s ease;
}

.sidebar {
  width: 260px;
  transition: width 0.3s ease, transform 0.3s ease;
  overflow-x: hidden;
  z-index: 100;
  display: flex;
  flex-direction: column;
}

.sidebar-collapsed .sidebar {
  width: 70px;
}

.sidebar-collapsed .nav-text,
.sidebar-collapsed .brand-name,
.sidebar-collapsed .brand-header img,
.sidebar-collapsed .small {
  display: none;
}

.sidebar-collapsed .brand-header i.bi-buildings {
  margin-right: 0 !important;
}

main {
  flex: 1;
  width: calc(100% - 260px);
  transition: width 0.3s ease;
}

.sidebar-collapsed main {
  width: calc(100% - 70px);
}

/* Nav list inside sidebar: grows to fill space and scrolls when content overflows */
.sidebar .sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
  .sidebar {
    position: fixed;
    left: -260px;
    top: 0;
    bottom: 0;
    z-index: 1030;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  
  main {
    width: 100%;
  }
  
  .sidebar-mobile-open .sidebar {
    left: 0;
    transform: translateX(0);
  }
  
  .sidebar-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1020;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  .sidebar-backdrop.show {
    opacity: 1;
    visibility: visible;
  }
  
  /* Responsive card headers and controls */
  .card-header {
    padding: 0.75rem;
  }
  
  .card-header .input-group {
    max-width: 100%;
    margin-right: 0;
  }
}

/* Responsive table improvements */
@media (max-width: 767.98px) {
  .table-responsive {
    border: 0;
    overflow-x: auto;
  }
  
  /* Ensure action buttons stay in a single row */
  .btn-group-sm > .btn, .btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* Calendar base styles (existing) */
.vc-cell.is-today{ outline:2px solid var(--accent-orange); outline-offset:-2px; }
.vc-daynum{ font-size:.85rem; color:#50607a; }
/* Calendar day badges (replaces subtle dots) */
.vc-badges{ position:absolute; left:.5rem; right:.5rem; bottom:.4rem; display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.vc-badge{ display:inline-flex; align-items:center; gap:4px; padding:2px 5px; border-radius:999px; font-size:10.5px; line-height:1; border:1px solid rgba(26,54,93,0.12); background:#eff6ff; color:#1A365D; box-shadow:0 1px 0 rgba(16,24,40,.04); }
.vc-badge i{ font-size:11px; }
.vc-count{ font-size:10.5px; color:#6b7280; margin-left:2px; }

/* Legend for calendar badges */
.vc-legend{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:.6rem .75rem; border-top:1px solid #f0f4f8; font-size:11px; }
.vc-legend-label{ font-size:11px; color:#64748b; margin-right:4px; }

/* Calendar events */
.vc-event{ display:flex; align-items:center; gap:6px; margin:2px 0; padding:2px 6px; border-radius:4px; font-size:12px; line-height:1.2; background:var(--light-blue); color:#1A365D; border:1px solid rgba(26,54,93,0.15); }
.vc-event .vc-dot{ width:6px; height:6px; border-radius:50%; background:var(--primary-blue); display:inline-block; }
.vc-event .vc-text{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* State variants */
.vc-event.state-completed{ background:#E6FFFA; color:#234E52; border-color:#B2F5EA; }
.vc-event.state-completed .vc-dot{ background:#2C7A7B; }
.vc-event.state-pending{ background:#FFF5F5; color:#742A2A; border-color:#FED7D7; }
.vc-event.state-pending .vc-dot{ background:#E53E3E; }
.vc-event.state-in-progress{ background:#FFFAF0; color:#744210; border-color:#FBD38D; }
.vc-event.state-in-progress .vc-dot{ background:#D69E2E; }

/* Compact spacing for many events */
.vc-cell .vc-event{ max-width:100%; }

/* Color-coded states for calendar day badges */
.vc-badge.state-completed{ background:#E6FFFA; color:#234E52; border-color:#B2F5EA; }
.vc-badge.state-pending{ background:#FFF5F5; color:#742A2A; border-color:#FED7D7; }
.vc-badge.state-in-progress{ background:#FFFAF0; color:#744210; border-color:#FBD38D; }
.vc-badge.state-scheduled{ background:#E0F2FE; color:#1E3A8A; border-color:#BAE6FD; }
.vc-badge.state-canceled{ background:#F8FAFC; color:#6B7280; border-color:#CBD5E1; }
.vc-badge.state-other{ background:#EEF2FF; color:#3730A3; border-color:#C7D2FE; }

/* Sidebar org name: wrap up to 2 lines (readable, no single-line cut-off) */
.sidebar .brand-header{
  gap:.5rem;
  align-items:flex-start;
}
.sidebar .brand-header img,
.sidebar .brand-header > i.bi{
  flex-shrink:0;
  margin-top:.15rem;
}
.sidebar .brand-header .brand-name{
  flex:1 1 auto;
  min-width:0;
  white-space:normal;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.25;
  overflow-wrap:break-word;
  word-break:break-word;
}

/* Constrain brand text in Bootstrap navbars on all pages */
.navbar .navbar-brand{ min-width:0; max-width:70%; display:inline-flex; align-items:center; gap:.5rem; }
.navbar .navbar-brand .fw-bold,
.navbar .navbar-brand .brand-name,
.navbar .navbar-brand .brand-text{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:inline-block; }
@media (min-width: 992px){
  .navbar .navbar-brand{ max-width:50%; }
}

/* Allow long brand text in constrained contexts to wrap rather than overflow */
.brand-text{ overflow-wrap:anywhere; word-break:break-word; }

/* Inline info icon alignment for stat-card labels */
.card-stat .small .bi-info-circle{ font-size: .9rem; opacity:.8; }
.card-stat .small .bi-info-circle:hover{ opacity:1; }

/* Safe area support for modern mobile devices (iOS/Android with display cutouts) */
@supports (padding: max(0px)){
  /* Ensure fixed sidebar content doesn’t collide with notches/gestures */
  .sidebar{
    padding-top: max(1rem, var(--safe-top));
    padding-bottom: max(1rem, var(--safe-bottom));
    padding-left: max(1rem, var(--safe-left));
  }
  /* Avoid status bar overlap for fixed/sticky navbars */
  .navbar.fixed-top, .navbar.sticky-top{
    padding-top: max(0px, var(--safe-top));
  }
  /* Avoid overlap with bottom gesture areas */
  .fixed-bottom, .navbar.fixed-bottom{
    padding-bottom: max(0px, var(--safe-bottom));
  }
  /* Add safe horizontal padding to containers on small screens */
  @media (max-width: 991.98px){
    .container, .container-fluid{
      padding-left: max(0.75rem, var(--safe-left));
      padding-right: max(0.75rem, var(--safe-right));
    }
  }
}

/* Improve media element responsiveness as a baseline */
img, video{ max-width:100%; height:auto; }
/* Prevent iOS from auto-resizing text unexpectedly */
html{ -webkit-text-size-adjust: 100%; }


/* Remove dimmed overlay effect while keeping backdrop behavior */
.modal-backdrop.show { opacity: 0; }

/* Sidebar toggle: smooth chevron animation, alignment, and feedback */
.sidebar-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-bottom:.75rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.30);
  color:#e7eef6;
  background: rgba(255,255,255,0.08);
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.sidebar-toggle:hover{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.50);
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.sidebar-toggle:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(43,108,176,0.35); /* primary-blue focus ring */
}
.sidebar-toggle[aria-disabled="true"]{
  opacity:.6;
  cursor:not-allowed;
}
/* Sidebar toggle button base styles for alignment and sizing */
.sidebar-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid #dee2e6;
  border-radius:.375rem; /* Bootstrap default */
  background-color:#fff;
  color:#6c757d;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.sidebar-toggle:hover,
.sidebar-toggle:focus{
  background-color:#f8f9fa;
  border-color:#ced4da;
  color:#343a40;
  outline:0;
  box-shadow:0 0 0 .1rem rgba(13,110,253,.15);
}
/* Disabled/animation guard state */
.sidebar-toggle[aria-disabled="true"]{
  opacity:.6;
  pointer-events:none;
  cursor:not-allowed;
}
.sidebar-toggle .bi{
  font-size:16px;
  line-height:1;
  vertical-align:middle;
  transition: transform .25s ease, color .2s ease, opacity .2s ease;
  transform-origin:50% 50%;
}
/* Animate chevron to point right when collapsed (aria-expanded=false) */
.sidebar-toggle[aria-expanded="false"] .bi.bi-chevron-left{
  transform: rotate(180deg);
}
/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce){
  .sidebar-toggle .bi{ transition:none; }
}

/* Sidebar collapsed state */
.app-shell {
  display: flex;
  min-height: 100vh;
  transition: all 0.3s ease;
}

.sidebar {
  width: 260px;
  transition: width 0.3s ease, transform 0.3s ease;
  overflow-x: hidden;
  z-index: 100;
  display: flex;
  flex-direction: column;
}

.sidebar-collapsed .sidebar {
  width: 70px;
}

.sidebar-collapsed .nav-text,
.sidebar-collapsed .brand-name,
.sidebar-collapsed .brand-header img,
.sidebar-collapsed .small {
  display: none;
}

.sidebar-collapsed .brand-header i.bi-buildings {
  margin-right: 0 !important;
}

main {
  flex: 1;
  width: calc(100% - 260px);
  transition: width 0.3s ease;
}

.sidebar-collapsed main {
  width: calc(100% - 70px);
}

/* Nav list inside sidebar: grows to fill space and scrolls when content overflows */
.sidebar .sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
  .sidebar {
    position: fixed;
    left: -260px;
    top: 0;
    bottom: 0;
    z-index: 1030;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  
  main {
    width: 100%;
  }
  
  .sidebar-mobile-open .sidebar {
    left: 0;
    transform: translateX(0);
  }
  
  .sidebar-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1020;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  .sidebar-backdrop.show {
    opacity: 1;
    visibility: visible;
  }
  
  /* Responsive card headers and controls */
  .card-header {
    padding: 0.75rem;
  }
  
  .card-header .input-group {
    max-width: 100%;
    margin-right: 0;
  }
}

/* Responsive table improvements */
@media (max-width: 767.98px) {
  .table-responsive {
    border: 0;
    overflow-x: auto;
  }
  
  /* Ensure action buttons stay in a single row */
  .btn-group-sm > .btn, .btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* New: Selected day styling — default selection is today */
.vc-cell.is-selected {
  box-shadow: inset 0 0 0 2px #3b82f6;
  background: #eff6ff;
}

/* Ensure day number remains readable when selected */
.vc-cell.is-selected .vc-daynum {
  color: #0f172a; /* slate-900 */
  font-weight: 600;
}

/* Coexistence: when a cell is both today and selected, make it slightly more prominent */
.vc-cell.is-today.is-selected {
  box-shadow: inset 0 0 0 2px #1d4ed8, 0 0 0 2px #f97316; /* inner blue ring plus outer orange outline */
}

/* Priority indicator styles */
.priority-container {
  display: flex;
  align-items: center;
  gap: 8px;
}

.priority-indicator {
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  border: 1px solid rgba(0, 0, 0, 0.1);
  min-width: 60px;
  text-align: center;
  transition: all 0.2s ease;
}

.priority-indicator:empty {
  display: none;
}

/* Responsive priority container */
@media (max-width: 768px) {
  .priority-container {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }
  
  .priority-indicator {
    min-width: auto;
    font-size: 10px;
  }
}

/* Dashboard filter panel: smooth open/close and responsive layout */
#dashboard-filters{ transition: opacity .25s ease, transform .25s ease; will-change: opacity, transform; }
#dashboard-filters[hidden]{ display:none !important; }
#dashboard-filters.open{ opacity:1; transform: translateY(0); }
#dashboard-filters:not(.open){ opacity:0; transform: translateY(-6px); }

/* Active filter chips container */
#dashboard-active-filters{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:.875rem; }
#dashboard-active-filters .badge{ border-radius:999px; border:1px solid rgba(26,54,93,0.12); box-shadow:0 1px 0 rgba(16,24,40,.04); }

/* Range buttons look like segmented controls */
#dashboard-filters [data-range].btn{ border-radius:999px; }
#dashboard-filters [data-range].btn.active{ box-shadow: inset 0 0 0 2px rgba(43,108,176,0.35); }

@media (max-width: 767.98px){
  #dashboard-filters{ margin-top:.5rem; }
}

.wo-thumbs{ margin-top:.25rem; }
.wo-thumb{ position:relative; }
.wo-thumb-img{ width:100%; height:80px; object-fit:cover; border-radius:.375rem; }
.wo-thumb-badge{ position:absolute; top:4px; left:4px; z-index:2; }
