/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
:root, :host {
  --radius: var(--radius);
}
@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 0 0% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 3.9%;
    --primary: 0 0% 9%;
    --primary-foreground: 0 0% 98%;
    --secondary: 0 0% 96.1%;
    --secondary-foreground: 0 0% 9%;
    --muted: 0 0% 96.1%;
    --muted-foreground: 0 0% 45.1%;
    --accent: 0 0% 96.1%;
    --accent-foreground: 0 0% 9%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 89.8%;
    --input: 0 0% 89.8%;
    --ring: 0 0% 3.9%;
    --radius: 0.5rem;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
  }
  .dark {
    --background: 0 0% 3.9%;
    --foreground: 0 0% 98%;
    --card: 0 0% 8.5%;
    --card-foreground: 0 0% 98%;
    --popover: 0 0% 10%;
    --popover-foreground: 0 0% 98%;
    --primary: 0 0% 98%;
    --primary-foreground: 0 0% 9%;
    --secondary: 0 0% 13%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 12.5%;
    --muted-foreground: 0 0% 65%;
    --accent: 0 0% 14.5%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 18.5%;
    --input: 0 0% 18.5%;
    --ring: 0 0% 83.1%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 280 65% 60%;
    --chart-5: 340 75% 55%;
    color-scheme: dark;
  }
  * {
    border-color: hsl(var(--border));
  }
  body {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: ui-sans-serif, system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
  }
  input[type="password"]::-ms-reveal, input[type="password"]::-ms-clear {
    display: none !important;
  }
  input::-webkit-credentials-auto-fill-button {
    visibility: hidden;
    pointer-events: none;
  }
}
input, textarea, select {
  color: inherit !important;
}
html.dark input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]), html.dark textarea, html.dark select {
  background-color: hsl(var(--card) / 0.7) !important;
  border-color: hsl(var(--border)) !important;
}
html.dark input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]):focus, html.dark textarea:focus, html.dark select:focus {
  background-color: hsl(var(--card)) !important;
  border-color: hsl(var(--ring)) !important;
}
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active, textarea:-webkit-autofill, select:-webkit-autofill {
  -webkit-text-fill-color: hsl(var(--foreground)) !important;
  -webkit-box-shadow: 0 0 0px 1000px hsl(var(--card)) inset !important;
  caret-color: hsl(var(--foreground));
}
.glass-navbar {
  background-color: hsl(var(--card) / 0.65) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
}
html.dark .glass-navbar {
  background-color: hsl(var(--card) / 0.70) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
}
.glass-popover {
  background-color: hsl(var(--popover)) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.dark .glass-popover {
  background-color: hsl(var(--popover)) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.no-transitions, .no-transitions * {
  transition: none !important;
}
body {
  transition: background-color 0.3s ease, color 0.3s ease;
}
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes toast-progress {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}
.animate-fade-in {
  animation: fade-in 0.6s ease-out forwards;
}
.animate-pulse-slow {
  animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background-color: hsl(var(--border));
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background-color: hsl(var(--muted-foreground));
}
* {
  scrollbar-width: thin;
  scrollbar-color: hsl(var(--border)) transparent;
}
table.htmx-request tbody.htmx-indicator {
  display: table-row-group !important;
}
table.htmx-request tbody:not(.htmx-indicator) {
  display: none !important;
}
tbody.htmx-indicator {
  display: none;
}
.htmx-request .indicator-grid {
  display: grid !important;
}
.htmx-request .indicator-hide, .htmx-request.indicator-hide {
  display: none !important;
}
.indicator-grid {
  display: none;
}
.badge-base {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  padding: 0.25rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.15s ease-in-out;
  border: 1px solid transparent;
}
.badge-success {
  background-color: rgb(34, 197, 94);
  color: #fff;
  border-color: transparent;
}
html.dark .badge-success {
  background-color: rgb(34, 197, 94);
  color: #fff;
}
.badge-warning {
  background-color: rgb(202, 178, 10);
  color: #fff;
  border-color: transparent;
}
html.dark .badge-warning {
  background-color: rgb(234, 179, 8);
  color: #fff;
}
.badge-destructive {
  background-color: hsl(var(--destructive));
  color: hsl(var(--destructive-foreground));
  border-color: transparent;
}
html.dark .badge-destructive {
  background-color: rgba(239, 68, 68, 0.2);
  color: #ff6b6b;
  border: 1px solid rgba(239, 68, 68, 0.35);
}
html.dark .text-destructive, html.dark .text-rose-500, html.dark .text-red-500, html.dark .text-rose-600, html.dark .text-red-600 {
  color: #ff6b6b !important;
}
html.dark .bg-rose-500\/10, html.dark .bg-red-500\/10, html.dark .bg-destructive\/10 {
  background-color: rgba(255, 107, 107, 0.18) !important;
}
.badge-muted {
  background-color: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  border-color: hsl(var(--border));
}
.badge-primary {
  background-color: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}
.badge-outline {
  background-color: transparent;
  color: hsl(var(--foreground));
  border-color: hsl(var(--border));
}
@keyframes skeleton-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
.skeleton-shimmer {
  background: linear-gradient(90deg, hsl(var(--muted) / 0.6) 25%, hsl(var(--accent) / 0.8) 50%, hsl(var(--muted) / 0.6) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.8s infinite linear;
  border-radius: var(--radius);
}
@keyframes slide-in-right {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes slide-out-right {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100%);
  }
}
.animate-sheet-in {
  animation: slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@media print {
  body>*:not(#pdf-print-iframe):not(#bottle-label-print-area) {
    display: none !important;
  }
  #pdf-print-iframe {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 1 !important;
  }
  #bottle-label-print-area {
    display: flex !important;
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    align-items: center !important;
    justify-content: center !important;
    background: white !important;
    z-index: 999999 !important;
  }
}
.animate-sheet-out {
  animation: slide-out-right 0.2s cubic-bezier(0.7, 0, 0.84, 0) forwards;
}
.shadcn-focus-ring {
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.shadcn-focus-ring:focus-visible {
  outline: none;
  border-color: hsl(var(--ring));
  box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));
}
input[type="range"].shadcn-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 0.5rem;
  background: hsl(var(--muted)) !important;
  border-radius: 9999px;
  outline: none;
  border: 1px solid hsl(var(--border) / 0.8) !important;
  cursor: pointer;
}
input[type="range"].shadcn-slider::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  background: hsl(var(--muted)) !important;
  border-radius: 9999px;
  border: 1px solid hsl(var(--border) / 0.8) !important;
}
input[type="range"].shadcn-slider::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  background: hsl(var(--muted)) !important;
  border-radius: 9999px;
  border: 1px solid hsl(var(--border) / 0.8) !important;
}
input[type="range"].shadcn-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  height: 1.25rem;
  width: 1.25rem;
  border-radius: 9999px;
  background: #ffffff !important;
  border: 2px solid hsl(var(--primary)) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  margin-top: -0.375rem;
  cursor: pointer;
  transition: transform 0.15s ease;
}
input[type="range"].shadcn-slider::-moz-range-thumb {
  height: 1.25rem;
  width: 1.25rem;
  border-radius: 9999px;
  background: #ffffff !important;
  border: 2px solid hsl(var(--primary)) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: transform 0.15s ease;
}
input[type="range"].shadcn-slider::-webkit-slider-thumb:hover {
  transform: scale(1.15);
}
input[type="range"].shadcn-slider::-moz-range-thumb:hover {
  transform: scale(1.15);
}
