/**
 * Design tokens — Identidade visual VIP (preto + amarelo).
 * Compatível com Tailwind CSS v3 (preset) e v4 (@theme inline).
 *
 * Uso com Tailwind v3: importe tailwind.preset.js no tailwind.config.js
 * Uso com Tailwind v4: @import este arquivo no seu CSS principal
 */

/* Identidade VIP: preto + amarelo */
:root {
  --background: 0 0% 100%;
  --foreground: 0 0% 7%;
  --card: 0 0% 100%;
  --card-foreground: 0 0% 7%;
  --popover: 0 0% 100%;
  --popover-foreground: 0 0% 7%;
  --primary: 48 100% 50%;
  --primary-foreground: 0 0% 7%;
  --secondary: 0 0% 96%;
  --secondary-foreground: 0 0% 7%;
  --muted: 0 0% 96%;
  --muted-foreground: 0 0% 40%;
  --accent: 48 100% 95%;
  --accent-foreground: 0 0% 7%;
  --destructive: 0 72% 51%;
  --destructive-foreground: 0 0% 100%;
  --success: 142 71% 35%;
  --success-foreground: 0 0% 100%;
  --warning: 38 92% 50%;
  --warning-foreground: 0 0% 7%;
  --info: 210 10% 25%;
  --info-foreground: 0 0% 100%;
  --border: 0 0% 90%;
  --input: 0 0% 90%;
  --ring: 48 100% 45%;
  --radius: 0.5rem;
  --chart-1: 48 100% 50%;
  --chart-2: 0 0% 15%;
  --chart-3: 45 90% 40%;
  --chart-4: 0 0% 45%;
  --chart-5: 42 100% 60%;
}

.dark {
  --background: 0 0% 6%;
  --foreground: 0 0% 98%;
  --card: 0 0% 9%;
  --card-foreground: 0 0% 98%;
  --popover: 0 0% 9%;
  --popover-foreground: 0 0% 98%;
  --primary: 48 100% 50%;
  --primary-foreground: 0 0% 7%;
  --secondary: 0 0% 14%;
  --secondary-foreground: 0 0% 98%;
  --muted: 0 0% 14%;
  --muted-foreground: 0 0% 65%;
  --accent: 48 80% 18%;
  --accent-foreground: 48 100% 70%;
  --destructive: 0 72% 51%;
  --destructive-foreground: 0 0% 100%;
  --success: 142 71% 40%;
  --success-foreground: 0 0% 100%;
  --warning: 38 92% 50%;
  --warning-foreground: 0 0% 7%;
  --info: 0 0% 70%;
  --info-foreground: 0 0% 7%;
  --border: 0 0% 18%;
  --input: 0 0% 18%;
  --ring: 48 100% 50%;
  --chart-1: 48 100% 50%;
  --chart-2: 0 0% 80%;
  --chart-3: 45 90% 45%;
  --chart-4: 0 0% 55%;
  --chart-5: 42 100% 60%;
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground;
  }

  /* Tailwind utilities (fixed/grid/flex) override UA display:none on closed dialogs */
  dialog:not([open]) {
    display: none;
  }
}

@keyframes shadcn-toast-in {
  from {
    opacity: 0;
    transform: translateY(0.75rem) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes shadcn-toast-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(0.5rem) scale(0.98);
  }
}

[data-slot="toast-viewport"] {
  position: fixed;
  z-index: 100;
  display: flex;
  max-height: 100vh;
  width: 100%;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem;
  pointer-events: none;
}

@media (min-width: 640px) {
  [data-slot="toast-viewport"] {
    bottom: 0;
    right: 0;
    top: auto;
    width: 420px;
  }
}

[data-slot="toast"] {
  pointer-events: auto;
  position: relative;
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 0.75rem;
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid hsl(var(--border));
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  padding: 1rem;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  animation: shadcn-toast-in 180ms ease-out;
}

[data-slot="toast"][data-state="closed"] {
  animation: shadcn-toast-out 160ms ease-in forwards;
}

[data-slot="toast"][data-variant="success"] {
  border-color: hsl(var(--success) / 0.4);
  background: hsl(var(--success));
  color: hsl(var(--success-foreground));
}

[data-slot="toast"][data-variant="destructive"] {
  border-color: hsl(var(--destructive) / 0.4);
  background: hsl(var(--destructive));
  color: hsl(var(--destructive-foreground));
}

[data-slot="toast"][data-variant="warning"] {
  border-color: hsl(var(--warning) / 0.4);
  background: hsl(var(--warning));
  color: hsl(var(--warning-foreground));
}

[data-slot="toast"][data-variant="info"] {
  border-color: hsl(var(--info) / 0.4);
  background: hsl(var(--info));
  color: hsl(var(--info-foreground));
}

[data-slot="toast-title"] {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
}

[data-slot="toast-description"] {
  font-size: 0.875rem;
  opacity: 0.9;
  line-height: 1.4;
}

[data-slot="toast-close"] {
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  display: inline-flex;
  height: 1.5rem;
  width: 1.5rem;
  align-items: center;
  justify-content: center;
  border-radius: calc(var(--radius) - 2px);
  opacity: 0.7;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
}

[data-slot="toast-close"]:hover {
  opacity: 1;
  background: rgb(0 0 0 / 0.08);
}

/* Tooltip */
[data-slot="tooltip"] {
  position: relative;
  display: inline-flex;
}

[data-slot="tooltip-content"] {
  position: absolute;
  z-index: 50;
  left: 50%;
  bottom: calc(100% + 0.375rem);
  transform: translateX(-50%);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 120ms ease, visibility 120ms ease;
  white-space: nowrap;
}

[data-slot="tooltip"][data-state="open"] [data-slot="tooltip-content"],
[data-slot="tooltip"]:hover [data-slot="tooltip-content"],
[data-slot="tooltip"]:focus-within [data-slot="tooltip-content"] {
  opacity: 1;
  visibility: visible;
}

/* Sheet */
[data-slot="sheet-content"] {
  margin: 0;
  max-height: 100vh;
  max-width: 100vw;
}

@keyframes shadcn-sheet-in-right {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

@keyframes shadcn-sheet-in-left {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

@keyframes shadcn-sheet-in-top {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

@keyframes shadcn-sheet-in-bottom {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

[data-slot="sheet-content"][data-side="right"] {
  animation: shadcn-sheet-in-right 200ms ease-out;
}

[data-slot="sheet-content"][data-side="left"] {
  animation: shadcn-sheet-in-left 200ms ease-out;
}

[data-slot="sheet-content"][data-side="top"] {
  animation: shadcn-sheet-in-top 200ms ease-out;
}

[data-slot="sheet-content"][data-side="bottom"] {
  animation: shadcn-sheet-in-bottom 200ms ease-out;
}

/* Select custom */
[data-slot="select-content"][hidden] {
  display: none;
}

[data-slot="select-item"][data-state="unchecked"] [data-select-indicator],
[data-slot="select-item"]:not([data-state="checked"]) [data-select-indicator] {
  display: none;
}

[data-slot="select"][data-state="open"] [data-slot="select-trigger"] {
  outline: 2px solid transparent;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));
}

/* Popover / collapsible */
[data-slot="popover-content"][hidden],
[data-slot="collapsible-content"][hidden] {
  display: none;
}

/* Hover card / date picker */
[data-slot="hover-card-content"][hidden],
[data-date-picker-content][hidden] {
  display: none;
}

/* Slider */
.shadcn-slider-input {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 0.5rem;
  border-radius: 9999px;
  background: linear-gradient(
    to right,
    hsl(var(--primary)) 0%,
    hsl(var(--primary)) var(--slider-progress, 50%),
    hsl(var(--secondary)) var(--slider-progress, 50%),
    hsl(var(--secondary)) 100%
  );
  outline: none;
  cursor: pointer;
}

.shadcn-slider-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 9999px;
  background: hsl(var(--background));
  border: 2px solid hsl(var(--primary));
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.1);
  cursor: pointer;
}

.shadcn-slider-input::-moz-range-thumb {
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 9999px;
  background: hsl(var(--background));
  border: 2px solid hsl(var(--primary));
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.1);
  cursor: pointer;
}

.shadcn-slider-input:focus-visible {
  box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));
}

[data-slot="form-field"][data-invalid="true"] [data-slot="form-label"] {
  color: hsl(var(--destructive));
}

/* Accordion */
[data-slot="accordion-content"][data-state="closed"] {
  display: none;
}

[data-slot="accordion-trigger"] [data-slot="accordion-chevron"] {
  transition: transform 200ms ease;
}

[data-slot="accordion-item"][data-state="open"] [data-slot="accordion-chevron"] {
  transform: rotate(180deg);
}

/* Badges suaves — o componente usa classes Tailwind, sem data-variant */
[data-slot="badge"].bg-success,
[data-slot="badge"].bg-success:hover {
  border-color: hsl(var(--success) / 0.2) !important;
  background-color: hsl(var(--success) / 0.14) !important;
  color: hsl(142 42% 30%) !important;
}

[data-slot="badge"].bg-warning,
[data-slot="badge"].bg-warning:hover {
  border-color: hsl(var(--warning) / 0.25) !important;
  background-color: hsl(var(--warning) / 0.16) !important;
  color: hsl(32 55% 32%) !important;
}

[data-slot="badge"].bg-destructive,
[data-slot="badge"].bg-destructive:hover {
  border-color: hsl(var(--destructive) / 0.2) !important;
  background-color: hsl(var(--destructive) / 0.12) !important;
  color: hsl(0 55% 40%) !important;
}

[data-slot="badge"].bg-secondary,
[data-slot="badge"].bg-secondary:hover {
  border-color: hsl(var(--border)) !important;
  background-color: hsl(var(--muted)) !important;
  color: hsl(var(--muted-foreground)) !important;
}

.dark [data-slot="badge"].bg-success,
.dark [data-slot="badge"].bg-success:hover {
  border-color: hsl(var(--success) / 0.28) !important;
  background-color: hsl(var(--success) / 0.18) !important;
  color: hsl(142 40% 68%) !important;
}

.dark [data-slot="badge"].bg-warning,
.dark [data-slot="badge"].bg-warning:hover {
  border-color: hsl(var(--warning) / 0.28) !important;
  background-color: hsl(var(--warning) / 0.18) !important;
  color: hsl(40 70% 70%) !important;
}

.dark [data-slot="badge"].bg-destructive,
.dark [data-slot="badge"].bg-destructive:hover {
  border-color: hsl(var(--destructive) / 0.28) !important;
  background-color: hsl(var(--destructive) / 0.18) !important;
  color: hsl(0 70% 72%) !important;
}
