/* Only utilities — Preflight disabled in tailwind.config.js to prevent conflicts with Chakra UI */
.sr-only {
  position:             absolute;
  width:             1px;
  height:             1px;
  padding:             0;
  margin:             -1px;
  overflow:             hidden;
  clip:             rect(0, 0, 0, 0);
  white-space:             nowrap;
  border-width:             0;
}
.visible {
  visibility:             visible;
}
.fixed {
  position:             fixed;
}
.absolute {
  position:             absolute;
}
.relative {
  position:             relative;
}
.-right-1\.5 {
  right:             -0.375rem;
}
.-top-1\.5 {
  top:             -0.375rem;
}
.left-3 {
  left:             0.75rem;
}
.top-1\/2 {
  top:             50%;
}
.col-span-2 {
  grid-column:             span 2 / span 2;
}
.mx-4 {
  margin-left:             1rem;
  margin-right:             1rem;
}
.my-2 {
  margin-top:             0.5rem;
  margin-bottom:             0.5rem;
}
.mb-1 {
  margin-bottom:             0.25rem;
}
.mb-2 {
  margin-bottom:             0.5rem;
}
.mb-4 {
  margin-bottom:             1rem;
}
.mr-1 {
  margin-right:             0.25rem;
}
.mr-2 {
  margin-right:             0.5rem;
}
.mt-1 {
  margin-top:             0.25rem;
}
.mt-2 {
  margin-top:             0.5rem;
}
.block {
  display:             block;
}
.inline-block {
  display:             inline-block;
}
.flex {
  display:             flex;
}
.table {
  display:             table;
}
.grid {
  display:             grid;
}
.contents {
  display:             contents;
}
.hidden {
  display:             none;
}
.h-10 {
  height:             2.5rem;
}
.h-12 {
  height:             3rem;
}
.h-3 {
  height:             0.75rem;
}
.h-4 {
  height:             1rem;
}
.h-5 {
  height:             1.25rem;
}
.h-6 {
  height:             1.5rem;
}
.h-8 {
  height:             2rem;
}
.h-9 {
  height:             2.25rem;
}
.h-\[18px\] {
  height:             18px;
}
.h-\[92dvh\] {
  height:             92dvh;
}
.h-auto {
  height:             auto;
}
.max-h-60 {
  max-height:             15rem;
}
.max-h-\[90vh\] {
  max-height:             90vh;
}
.max-h-\[92dvh\] {
  max-height:             92dvh;
}
.w-10 {
  width:             2.5rem;
}
.w-20 {
  width:             5rem;
}
.w-24 {
  width:             6rem;
}
.w-28 {
  width:             7rem;
}
.w-3 {
  width:             0.75rem;
}
.w-36 {
  width:             9rem;
}
.w-4 {
  width:             1rem;
}
.w-5 {
  width:             1.25rem;
}
.w-6 {
  width:             1.5rem;
}
.w-8 {
  width:             2rem;
}
.w-full {
  width:             100%;
}
.min-w-0 {
  min-width:             0px;
}
.min-w-\[140px\] {
  min-width:             140px;
}
.min-w-\[18px\] {
  min-width:             18px;
}
.max-w-2xl {
  max-width:             42rem;
}
.max-w-3xl {
  max-width:             48rem;
}
.max-w-\[200px\] {
  max-width:             200px;
}
.max-w-lg {
  max-width:             32rem;
}
.max-w-sm {
  max-width:             24rem;
}
.max-w-xl {
  max-width:             36rem;
}
.flex-1 {
  flex:             1 1 0%;
}
.flex-shrink-0 {
  flex-shrink:             0;
}
.-translate-y-1\/2 {
  --tw-translate-y:             -50%;
  transform:             translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform:             translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-pointer {
  cursor:             pointer;
}
.select-none {
  -webkit-user-select:             none;
     -moz-user-select:             none;
          user-select:             none;
}
.grid-cols-2 {
  grid-template-columns:             repeat(2, minmax(0, 1fr));
}
.flex-col {
  flex-direction:             column;
}
.items-center {
  align-items:             center;
}
.justify-center {
  justify-content:             center;
}
.justify-between {
  justify-content:             space-between;
}
.gap-0 {
  gap:             0px;
}
.gap-1 {
  gap:             0.25rem;
}
.gap-2 {
  gap:             0.5rem;
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse:             0;
  margin-top:             calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom:             calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse:             0;
  margin-top:             calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom:             calc(1rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
  overflow:             hidden;
}
.overflow-y-auto {
  overflow-y:             auto;
}
.truncate {
  overflow:             hidden;
  text-overflow:             ellipsis;
  white-space:             nowrap;
}
.whitespace-nowrap {
  white-space:             nowrap;
}
.rounded {
  border-radius:             0.25rem;
}
.rounded-full {
  border-radius:             9999px;
}
.rounded-lg {
  border-radius:             var(--radius);
}
.border {
  border-width:             1px;
}
.border-b {
  border-bottom-width:             1px;
}
.border-blue-300 {
  --tw-border-opacity:             1;
  border-color:             rgb(147 197 253 / var(--tw-border-opacity, 1));
}
.border-gray-200 {
  --tw-border-opacity:             1;
  border-color:             rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-green-200 {
  --tw-border-opacity:             1;
  border-color:             rgb(187 247 208 / var(--tw-border-opacity, 1));
}
.border-green-300 {
  --tw-border-opacity:             1;
  border-color:             rgb(134 239 172 / var(--tw-border-opacity, 1));
}
.border-green-400 {
  --tw-border-opacity:             1;
  border-color:             rgb(74 222 128 / var(--tw-border-opacity, 1));
}
.border-orange-300 {
  --tw-border-opacity:             1;
  border-color:             rgb(253 186 116 / var(--tw-border-opacity, 1));
}
.border-primary {
  border-color:             hsl(var(--primary));
}
.border-red-300 {
  --tw-border-opacity:             1;
  border-color:             rgb(252 165 165 / var(--tw-border-opacity, 1));
}
.border-red-500 {
  --tw-border-opacity:             1;
  border-color:             rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.border-yellow-300 {
  --tw-border-opacity:             1;
  border-color:             rgb(253 224 71 / var(--tw-border-opacity, 1));
}
.bg-blue-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-gray-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-green-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.bg-green-50 {
  --tw-bg-opacity:             1;
  background-color:             rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.bg-orange-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
.bg-orange-50 {
  --tw-bg-opacity:             1;
  background-color:             rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
.bg-primary {
  background-color:             hsl(var(--primary));
}
.bg-purple-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-50 {
  --tw-bg-opacity:             1;
  background-color:             rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity:             1;
  background-color:             rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-red-600 {
  --tw-bg-opacity:             1;
  background-color:             rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.bg-white {
  --tw-bg-opacity:             1;
  background-color:             rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-yellow-100 {
  --tw-bg-opacity:             1;
  background-color:             rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.p-0 {
  padding:             0px;
}
.p-3 {
  padding:             0.75rem;
}
.p-4 {
  padding:             1rem;
}
.px-0 {
  padding-left:             0px;
  padding-right:             0px;
}
.px-0\.5 {
  padding-left:             0.125rem;
  padding-right:             0.125rem;
}
.px-2 {
  padding-left:             0.5rem;
  padding-right:             0.5rem;
}
.px-3 {
  padding-left:             0.75rem;
  padding-right:             0.75rem;
}
.py-0\.5 {
  padding-top:             0.125rem;
  padding-bottom:             0.125rem;
}
.py-1 {
  padding-top:             0.25rem;
  padding-bottom:             0.25rem;
}
.py-1\.5 {
  padding-top:             0.375rem;
  padding-bottom:             0.375rem;
}
.py-10 {
  padding-top:             2.5rem;
  padding-bottom:             2.5rem;
}
.py-4 {
  padding-top:             1rem;
  padding-bottom:             1rem;
}
.pb-2 {
  padding-bottom:             0.5rem;
}
.pl-9 {
  padding-left:             2.25rem;
}
.pt-0 {
  padding-top:             0px;
}
.pt-6 {
  padding-top:             1.5rem;
}
.text-center {
  text-align:             center;
}
.text-right {
  text-align:             right;
}
.font-mono {
  font-family:             ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.text-\[10px\] {
  font-size:             10px;
}
.text-base {
  font-size:             1rem;
  line-height:             1.5rem;
}
.text-sm {
  font-size:             0.875rem;
  line-height:             1.25rem;
}
.text-xl {
  font-size:             1.25rem;
  line-height:             1.75rem;
}
.text-xs {
  font-size:             0.75rem;
  line-height:             1rem;
}
.font-bold {
  font-weight:             700;
}
.font-medium {
  font-weight:             500;
}
.font-semibold {
  font-weight:             600;
}
.uppercase {
  text-transform:             uppercase;
}
.capitalize {
  text-transform:             capitalize;
}
.text-blue-600 {
  --tw-text-opacity:             1;
  color:             rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-blue-700 {
  --tw-text-opacity:             1;
  color:             rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.text-blue-800 {
  --tw-text-opacity:             1;
  color:             rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.text-gray-300 {
  --tw-text-opacity:             1;
  color:             rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.text-gray-400 {
  --tw-text-opacity:             1;
  color:             rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity:             1;
  color:             rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity:             1;
  color:             rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-700 {
  --tw-text-opacity:             1;
  color:             rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-green-500 {
  --tw-text-opacity:             1;
  color:             rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity:             1;
  color:             rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700 {
  --tw-text-opacity:             1;
  color:             rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-green-800 {
  --tw-text-opacity:             1;
  color:             rgb(22 101 52 / var(--tw-text-opacity, 1));
}
.text-muted-foreground {
  color:             hsl(var(--muted-foreground));
}
.text-orange-500 {
  --tw-text-opacity:             1;
  color:             rgb(249 115 22 / var(--tw-text-opacity, 1));
}
.text-orange-600 {
  --tw-text-opacity:             1;
  color:             rgb(234 88 12 / var(--tw-text-opacity, 1));
}
.text-orange-700 {
  --tw-text-opacity:             1;
  color:             rgb(194 65 12 / var(--tw-text-opacity, 1));
}
.text-orange-800 {
  --tw-text-opacity:             1;
  color:             rgb(154 52 18 / var(--tw-text-opacity, 1));
}
.text-primary {
  color:             hsl(var(--primary));
}
.text-purple-600 {
  --tw-text-opacity:             1;
  color:             rgb(147 51 234 / var(--tw-text-opacity, 1));
}
.text-purple-700 {
  --tw-text-opacity:             1;
  color:             rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity:             1;
  color:             rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity:             1;
  color:             rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity:             1;
  color:             rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-700 {
  --tw-text-opacity:             1;
  color:             rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-red-800 {
  --tw-text-opacity:             1;
  color:             rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity:             1;
  color:             rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-yellow-800 {
  --tw-text-opacity:             1;
  color:             rgb(133 77 14 / var(--tw-text-opacity, 1));
}
.accent-primary {
  accent-color:             hsl(var(--primary));
}
.opacity-20 {
  opacity:             0.2;
}
.opacity-30 {
  opacity:             0.3;
}
.shadow {
  --tw-shadow:             0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored:             0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow:             var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow:             0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored:             0 1px 2px 0 var(--tw-shadow-color);
  box-shadow:             var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline {
  outline-style:             solid;
}
.blur {
  --tw-blur:             blur(8px);
  filter:             var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter:             var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
  transition-property:             color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function:             cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:             150ms;
}
.transition-all {
  transition-property:             all;
  transition-timing-function:             cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:             150ms;
}
.transition-colors {
  transition-property:             color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function:             cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:             150ms;
}
.transition-transform {
  transition-property:             transform;
  transition-timing-function:             cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:             150ms;
}
@keyframes enter {
  from {
    opacity:             var(--tw-enter-opacity, 1);
    transform:             translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit {
  to {
    opacity:             var(--tw-exit-opacity, 1);
    transform:             translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}

/* ── Green primary theme ───────────────────────────────────────────────── */
:root {
  --primary:             142.1 76.2% 36.3%;   /* #16A34A */
  --primary-foreground:  0 0% 100%;
  --secondary:           140 60% 96%;
  --secondary-foreground:142 60% 25%;
  --muted:               220 14.3% 95.9%;
  --muted-foreground:    220 8.9% 46.1%;
  --accent:              140 60% 96%;
  --accent-foreground:   142 60% 25%;
  --destructive:         0 84.2% 60.2%;
  --destructive-foreground: 210 40% 98%;
  --border:              220 13% 91%;
  --input:               220 13% 91%;
  --ring:                142.1 76.2% 36.3%;
  --radius:              0.625rem;
  --background:          0 0% 100%;
  --foreground:          222.2 84% 4.9%;

  /* App design tokens */
  --app-bg:              #F6F8FA;
  --app-primary:         #16A34A;
  --app-primary-light:   #22C55E;
}

@media print {
  .no-print   { display: none !important; }
  .print-only { display: block !important; }
}

/* Sidebar nav hover */
.sidebar-nav-item:hover {
  background-color: #f0fdf4 !important;
  color: #15803d !important;
}

/* Hide scrollbar */
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }

/* Quick-action tap animation */
.quick-action-item {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.quick-action-item:active { transform: scale(0.94); }
.hover\:border-gray-300:hover {
  --tw-border-opacity:             1;
  border-color:             rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.hover\:bg-gray-100:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-200:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:bg-green-50:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-50:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-700:hover {
  --tw-bg-opacity:             1;
  background-color:             rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
.hover\:text-gray-600:hover {
  --tw-text-opacity:             1;
  color:             rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.hover\:text-red-500:hover {
  --tw-text-opacity:             1;
  color:             rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.hover\:text-red-600:hover {
  --tw-text-opacity:             1;
  color:             rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.hover\:text-red-700:hover {
  --tw-text-opacity:             1;
  color:             rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.focus\:border-green-400:focus {
  --tw-border-opacity:             1;
  border-color:             rgb(74 222 128 / var(--tw-border-opacity, 1));
}
.focus\:border-red-500:focus {
  --tw-border-opacity:             1;
  border-color:             rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline:             2px solid transparent;
  outline-offset:             2px;
}
.active\:scale-95:active {
  --tw-scale-x:             .95;
  --tw-scale-y:             .95;
  transform:             translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.disabled\:opacity-40:disabled {
  opacity:             0.4;
}
@media (min-width: 640px) {
  .sm\:col-span-1 {
    grid-column:             span 1 / span 1;
  }
  .sm\:mx-auto {
    margin-left:             auto;
    margin-right:             auto;
  }
  .sm\:max-w-md {
    max-width:             28rem;
  }
  .sm\:grid-cols-5 {
    grid-template-columns:             repeat(5, minmax(0, 1fr));
  }
  .sm\:text-sm {
    font-size:             0.875rem;
    line-height:             1.25rem;
  }
}
