/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Sheet lateral (estilo shadcn) — slide da direita. Ver sheet_controller.js. */
.sheet-panel { transition: transform .25s ease; transform: translateX(100%); }
.sheet-shown .sheet-panel { transform: translateX(0); }

/* Cards do Kanban deslizando de baixo para cima ao abrir a lista. */
@keyframes card-slide-in {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
.card-slide-in { animation: card-slide-in .35s cubic-bezier(.22, 1, .36, 1) both; }

/* Card sendo arrastado: efeito de zoom (levantar). */
.kanban-dragging {
  transform: scale(1.08) rotate(3deg);
  opacity: .95;
  position: relative;
  z-index: 20;
  box-shadow: 0 16px 34px -8px rgba(15, 23, 42, .45);
  cursor: grabbing;
}

/* Card caindo na nova etapa ao soltar (com leve quique). */
@keyframes card-drop {
  0%   { transform: translateY(-16px) scale(1.05); opacity: .55; }
  60%  { transform: translateY(3px) scale(.98); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}
.card-drop { animation: card-drop .3s cubic-bezier(.2, .85, .3, 1.2) both; }

/* Sino de notificações "tocando" enquanto houver 1+ não-lidas. Persiste
   (via :has do badge, atualizado em tempo real) e toca periodicamente. */
@keyframes bell-ring {
  0%   { transform: rotate(0); }
  2%   { transform: rotate(16deg); }
  6%   { transform: rotate(-14deg); }
  10%  { transform: rotate(11deg); }
  14%  { transform: rotate(-8deg); }
  18%  { transform: rotate(5deg); }
  22%  { transform: rotate(-3deg); }
  26%, 100% { transform: rotate(0); }
}
.notif-bell:has([data-unread]) .bell-icon {
  transform-origin: top center;
  animation: bell-ring 2.2s ease-in-out infinite;
}

/* Fundo sutil de checklist nas etapas do Kanban (bem fraquinho). */
.kanban-column { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%27150%27%20viewBox%3D%270%200%20150%20150%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%2394a3b8%27%20stroke-opacity%3D%270.14%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20transform%3D%27rotate%28-12%2075%2075%29%27%3E%3Crect%20x%3D%2760%27%20y%3D%2758%27%20width%3D%2730%27%20height%3D%2738%27%20rx%3D%273%27%2F%3E%3Crect%20x%3D%2768%27%20y%3D%2753%27%20width%3D%2713%27%20height%3D%278%27%20rx%3D%272%27%2F%3E%3Crect%20x%3D%2765%27%20y%3D%2770%27%20width%3D%276%27%20height%3D%276%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M66.2%2072.7l1.4%201.4%202.8-2.8%27%2F%3E%3Cline%20x1%3D%2774%27%20y1%3D%2773%27%20x2%3D%2784%27%20y2%3D%2773%27%2F%3E%3Crect%20x%3D%2765%27%20y%3D%2780%27%20width%3D%276%27%20height%3D%276%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M66.2%2082.7l1.4%201.4%202.8-2.8%27%2F%3E%3Cline%20x1%3D%2774%27%20y1%3D%2783%27%20x2%3D%2784%27%20y2%3D%2783%27%2F%3E%3Crect%20x%3D%2765%27%20y%3D%2790%27%20width%3D%276%27%20height%3D%276%27%20rx%3D%271%27%2F%3E%3Cline%20x1%3D%2774%27%20y1%3D%2793%27%20x2%3D%2784%27%20y2%3D%2793%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-size: 150px 150px; }

/* Fundo de baloes de conversa no chat da solicitacao (bem fraquinho). */
.chat-bubble-bg { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%27150%27%20viewBox%3D%270%200%20150%20150%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%2394a3b8%27%20stroke-opacity%3D%270.13%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20transform%3D%27rotate%28-10%2075%2075%29%27%3E%3Cpath%20d%3D%27M55%2058%20h40%20a10%2010%200%200%201%2010%2010%20v20%20a10%2010%200%200%201%20-10%2010%20h-26%20l-11%2010%20v-10%20h-3%20a10%2010%200%200%201%20-10%20-10%20v-20%20a10%2010%200%200%201%2010%20-10%20z%27%2F%3E%3Cline%20x1%3D%2763%27%20y1%3D%2772%27%20x2%3D%2795%27%20y2%3D%2772%27%2F%3E%3Cline%20x1%3D%2763%27%20y1%3D%2781%27%20x2%3D%2787%27%20y2%3D%2781%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-size: 150px 150px; }
