@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Nunito+Sans:wght@400;600;700;800&display=swap");/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-space-x-reverse: 0;
      --tw-border-style: solid;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-duration: initial;
      --tw-ease: initial;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-red-500: oklch(63.7% .237 25.331);
    --color-red-600: oklch(57.7% .245 27.325);
    --color-red-700: oklch(50.5% .213 27.518);
    --color-emerald-500: oklch(69.6% .17 162.48);
    --color-gray-50: oklch(98.5% .002 247.839);
    --color-gray-500: oklch(55.1% .027 264.364);
    --color-gray-600: oklch(44.6% .03 256.802);
    --color-gray-700: oklch(37.3% .034 259.733);
    --color-gray-900: oklch(21% .034 264.665);
    --color-white: #fff;
    --spacing: .25rem;
    --container-md: 28rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --leading-tight: 1.25;
    --radius-md: .375rem;
    --radius-lg: .5rem;
    --ease-out: cubic-bezier(0, 0, .2, 1);
    --animate-spin: spin 1s linear infinite;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-brand-green: #2e7d6b;
    --color-brand-gray-bg: #f5f1eb;
    --color-brand-gray-dark: #3b4a54;
    --color-brand-gray-text: #667781;
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer components;

@layer utilities {
  .visible {
    visibility: visible;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }

  .left-0 {
    left: calc(var(--spacing) * 0);
  }

  .z-50 {
    z-index: 50;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .mx-auto {
    margin-inline: auto;
  }

  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }

  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }

  .mb-0\.5 {
    margin-bottom: calc(var(--spacing) * .5);
  }

  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }

  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }

  .block {
    display: block;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .h-4 {
    height: calc(var(--spacing) * 4);
  }

  .h-9 {
    height: calc(var(--spacing) * 9);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-12 {
    height: calc(var(--spacing) * 12);
  }

  .h-16 {
    height: calc(var(--spacing) * 16);
  }

  .min-h-screen {
    min-height: 100vh;
  }

  .w-4 {
    width: calc(var(--spacing) * 4);
  }

  .w-9 {
    width: calc(var(--spacing) * 9);
  }

  .w-10 {
    width: calc(var(--spacing) * 10);
  }

  .w-12 {
    width: calc(var(--spacing) * 12);
  }

  .w-16 {
    width: calc(var(--spacing) * 16);
  }

  .w-64 {
    width: calc(var(--spacing) * 64);
  }

  .w-full {
    width: 100%;
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }

  .flex-1 {
    flex: 1;
  }

  .flex-shrink-0 {
    flex-shrink: 0;
  }

  .rotate-180 {
    rotate: 180deg;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .animate-spin {
    animation: var(--animate-spin);
  }

  .resize {
    resize: both;
  }

  .items-center {
    align-items: center;
  }

  .justify-center {
    justify-content: center;
  }

  :where(.space-y-2 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-x-2 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
  }

  :where(.space-x-2\.5 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-x-reverse)));
  }

  :where(.space-x-3 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));
  }

  .truncate {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius-lg);
  }

  .rounded-md {
    border-radius: var(--radius-md);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-4 {
    border-style: var(--tw-border-style);
    border-width: 4px;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-b-4 {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 4px;
  }

  .border-brand-green {
    border-color: var(--color-brand-green);
  }

  .border-emerald-500 {
    border-color: var(--color-emerald-500);
  }

  .border-t-transparent {
    border-top-color: #0000;
  }

  .bg-brand-gray-bg {
    background-color: var(--color-brand-gray-bg);
  }

  .bg-brand-gray-text {
    background-color: var(--color-brand-gray-text);
  }

  .bg-gray-50 {
    background-color: var(--color-gray-50);
  }

  .bg-gray-600 {
    background-color: var(--color-gray-600);
  }

  .bg-red-600 {
    background-color: var(--color-red-600);
  }

  .p-2 {
    padding: calc(var(--spacing) * 2);
  }

  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }

  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }

  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }

  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }

  .text-center {
    text-align: center;
  }

  .text-left {
    text-align: left;
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .text-6xl {
    font-size: var(--text-6xl);
    line-height: var(--tw-leading, var(--text-6xl--line-height));
  }

  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }

  .leading-tight {
    --tw-leading: var(--leading-tight);
    line-height: var(--leading-tight);
  }

  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }

  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }

  .text-brand-gray-dark {
    color: var(--color-brand-gray-dark);
  }

  .text-brand-gray-text {
    color: var(--color-brand-gray-text);
  }

  .text-gray-500 {
    color: var(--color-gray-500);
  }

  .text-gray-600 {
    color: var(--color-gray-600);
  }

  .text-gray-900 {
    color: var(--color-gray-900);
  }

  .text-red-500 {
    color: var(--color-red-500);
  }

  .text-white {
    color: var(--color-white);
  }

  .italic {
    font-style: italic;
  }

  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-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, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .duration-150 {
    --tw-duration: .15s;
    transition-duration: .15s;
  }

  .duration-200 {
    --tw-duration: .2s;
    transition-duration: .2s;
  }

  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }

  @media (hover: hover) {
    .hover\:bg-brand-gray-dark:hover {
      background-color: var(--color-brand-gray-dark);
    }

    .hover\:bg-gray-700:hover {
      background-color: var(--color-gray-700);
    }

    .hover\:bg-red-700:hover {
      background-color: var(--color-red-700);
    }
  }

  @media (min-width: 48rem) {
    .md\:block {
      display: block;
    }
  }
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  overflow: hidden;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}

#root {
  height: 100vh;
  overflow: hidden;
}

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: none;
}

::-webkit-scrollbar-thumb {
  background: #0003;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #0000004d;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideIn {
  from {
    transform: translateX(-100%);
  }

  to {
    transform: translateX(0);
  }
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.hidden {
  display: none !important;
}

.fade-in {
  animation: .3s fadeIn;
}

.slide-in {
  animation: .3s slideIn;
}

.pulse {
  animation: 2s infinite pulse;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-space-x-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-leading {
  syntax: "*";
  inherits: false
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}


/**
 * Global styles entry — imports only.
 * Split by area: base/theme/shell, chat, modals, chrome, then feature pages.
 */
/* Variáveis globais, temas, reset, app e container */
:root {
  /* Brand — jade / esmeralda profundo (menos saturado, menos “neon” que #10b981) */
  --brand-green: #2e7d6b;
  --brand-gray-bg: #f5f1eb;
  --brand-gray-dark: #3b4a54;
  --brand-gray-text: #667781;
  /* Accent green (gradientes: profundo → base → mix teal-acinzentado) */
  --whatsapp-green: #2e7d6b;
  --whatsapp-green-dark: #256b5b;
  --whatsapp-green-darker: #1d5649;
  --whatsapp-green-deep: #163d35;
  --whatsapp-green-mix: #3d6f68;
  --optin-color: #358a78;

  /* Background Colors */
  --background-light: #efeced;
  --background-dark: #0b141a;
  --png-background-light: #c3d1b9;
  --png-background-dark: #101312;
  --png-background: var(--png-background-light);
  --sidebar-bg-light: #efeced;
  --sidebar-bg-dark: #2a2f32;
  --chat-bg-light: #3d3125;
  --chat-bg-dark: #0b141a;

  /* Text Colors */
  --text-light: #1a1a1a;
  --text-dark: #e9edef;
  --text-muted: #4a5568;
  --text-contact-name-light: #111b21;
  --text-contact-name-dark: #e9edef;
  --text-contact-secondary-light: #4a5568;
  --text-contact-secondary-dark: #d1d7db;

  /* Border Colors */
  --border-light: #e9edef;
  --border-dark: #3b4a54;

  /* Message Bubbles - WhatsApp Exact Colors */
  --message-sent: #d9fdd3;
  --message-received: #ffffff;
  --message-sent-dark: #005c4b;
  --message-received-dark: #202c33;

  /* Message Sources - Different colors for different sources */
  --message-airton: #d9fdd3;
  --message-airton-dark: #005c4b;
  --message-operator: #e1f5fe;
  --message-operator-dark: #259ee4;
  --message-system: #e3f2fd;
  --message-system-dark: #1565c0;
  --message-moengage: #fff3e0;
  --message-moengage-dark: #392664;
  --message-simulated-approved: #e8f5e9;
  --message-simulated-approved-dark: #2e7d32;
  --message-simulated-reject: #ffebee;
  --message-simulated-reject-dark: #c62828;
  --message-simulated-pending: #f3e5f5;
  --message-simulated-pending-dark: #7b1fa2;

  /* Status Colors */
  --urgent-color: #ff6b6b;
  --admin-color: #ffd700;
  --frozen-color: #6c757d;
  --online-color: #3d9a72;

  /* Primary Colors */
  --primary-color: #2e7d6b;
  --primary-dark: #256b5b;
  --secondary-color: #3d6f68;

  /* Shadows */
  --shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  --shadow-dark: 0 2px 10px rgba(0, 0, 0, 0.3);

  /* WhatsApp Specific */
  --whatsapp-header-bg: #ffffff;
  --whatsapp-input-bg: #ffffff;
  --whatsapp-avatar-bg: #2e7d6b;

  /* Custom Background Support */
  --custom-bg-image: url("/back.png");
  --custom-bg-size: cover;
  --custom-bg-position: center;
  --custom-bg-repeat: no-repeat;
}
/* Tema escuro */
.dark-theme {
  --background: #0b141a;
  --sidebar-bg: #161717;
  --text: #e9edef;
  --border: #3b4a54;
  --message-sent: #005c4b;
  --message-received: #202c33;
  --shadow: var(--shadow-dark);
  --whatsapp-header-bg: #161717;
  --whatsapp-input-bg: #161717;
  --png-background: var(--png-background-dark);
}
/* Tema claro */
.light-theme {
  --background: var(--background-light);
  --sidebar-bg: var(--sidebar-bg-light);
  --text: var(--text-light);
  --border: var(--border-light);
  --shadow: var(--shadow);
  --png-background: var(--png-background-light);
  --whatsapp-header-bg: #efeced;
  --whatsapp-input-bg: #efeced;
}
/* Reset básico */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family:
    "Segoe UI", "Helvetica Neue", Helvetica, "Lucida Grande", Arial, Ubuntu,
    Cantarell, "Fira Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--png-background) !important;
  color: var(--text);
  overflow: hidden;
  font-size: 14px;
  line-height: 1.4;
  position: relative;
}
/* Imagem de fundo com opacidade e filtros aplicados apenas nela */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/back.png") !important;
  background-size: auto 100% !important;
  background-position: center !important;
  background-repeat: repeat-x !important;
  background-attachment: fixed !important;
  opacity: 0.1;
  filter: hue-rotate(0deg) saturate(1) brightness(1) contrast(0);
  z-index: -1;
  pointer-events: none;
}
.dark-theme body::before {
  filter: hue-rotate(180deg) saturate(0.8) brightness(0.7) contrast(5);
}
.light-theme body::before {
  filter: grayscale(0.8) brightness(1.1) contrast(0.9) sepia(0.1);
}
/* App principal */
.app {
  height: 100vh;
  width: 100%;
  max-width: 100vw;
  display: flex;
  flex-direction: column;
  background-color: var(--png-background) !important;
  color: var(--text);
  transition: all 0.3s ease;
  position: relative;
  z-index: 1;
  overflow: hidden;
  box-sizing: border-box;
}
.app::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/back.png") !important;
  background-size: auto 100% !important;
  background-position: center !important;
  background-repeat: repeat-x !important;
  background-attachment: fixed !important;
  opacity: 0.1;
  z-index: 0;
  pointer-events: none;
}
/* Container principal */
.container {
  display: flex;
  height: 100vh;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
  background-color: var(--png-background) !important;
  box-sizing: border-box;
  position: relative;
}
.container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/back.png") !important;
  background-size: auto 100% !important;
  background-position: center !important;
  background-repeat: repeat-x !important;
  background-attachment: fixed !important;
  opacity: 0.05;
  z-index: 0;
  pointer-events: none;
}
/* Botão global de alternar tema (fora da sidebar de contatos) */
.theme-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  background: var(--message-sent);
  color: var(--text);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-toggle:hover {
  transform: scale(1.05);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  background: var(--message-sent);
  opacity: 0.9;
}
.theme-toggle {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  display: flex !important;
}
.app .theme-toggle:not(.sidebar-header .theme-toggle):not(.nav-sidebar .theme-toggle) {
  z-index: 99999 !important;
  position: fixed !important;
  top: 16px !important;
  right: 20px !important;
}
/* Barra de módulos: apenas ícones + tooltips */
.nav-sidebar {
  width: 56px;
  flex-shrink: 0;
  background-color: var(--sidebar-bg);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: visible;
  position: relative;
  z-index: 20;
}
.nav-sidebar-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;
}
.nav-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 8px 0;
  flex: 1;
}
.nav-sidebar-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 8px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, transform 0.15s;
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  position: relative;
}
.nav-sidebar-item svg {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  stroke-width: 1.85;
}
.nav-sidebar-item:hover {
  background-color: var(--border);
}
.nav-sidebar-item.active {
  background-color: var(--message-sent);
  color: #fff;
}
.light-theme .nav-sidebar-item.active {
  background-color: var(--primary-color);
  color: #fff;
}
/* Tooltip ao passar o mouse / foco (acessibilidade) */
.nav-sidebar-item[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%) translateX(-4px);
  padding: 7px 11px;
  background: var(--whatsapp-header-bg);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease,
    transform 0.15s ease;
  z-index: 10050;
  box-shadow: var(--shadow);
}
.nav-sidebar-item[data-tooltip]::before {
  content: "";
  position: absolute;
  left: calc(100% + 3px);
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  background: var(--whatsapp-header-bg);
  border-left: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  rotate: 45deg;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease;
  z-index: 10049;
}
.nav-sidebar-item[data-tooltip]:hover::after,
.nav-sidebar-item[data-tooltip]:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
.nav-sidebar-item[data-tooltip]:hover::before,
.nav-sidebar-item[data-tooltip]:focus-visible::before {
  opacity: 1;
  visibility: visible;
}
.nav-sidebar-footer {
  margin-top: auto;
  padding: 8px 8px 10px;
  border-top: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
}
.nav-sidebar .theme-toggle {
  position: relative !important;
  top: 0 !important;
  right: 0 !important;
  align-self: center;
  width: 36px;
  height: 36px;
}
/* Painel lateral de contatos (Mensagens) + animação de recolher */
:root {
  --contacts-panel-width: 500px;
}
.feature-panel-shell {
  flex-shrink: 0;
  width: var(--contacts-panel-width);
  max-width: 100%;
  overflow: hidden;
  transition:
    width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.28s ease,
    border-color 0.25s ease;
  border-right: 1px solid var(--border);
  box-sizing: border-box;
  opacity: 1;
  align-self: stretch;
  z-index: 2;
}
.feature-panel-shell.feature-panel-shell--collapsed {
  width: 0;
  min-width: 0;
  border-right-color: transparent;
  opacity: 0;
  pointer-events: none;
}
.feature-panel-shell-inner {
  width: var(--contacts-panel-width);
  height: 100%;
  min-height: 100vh;
  max-width: 100%;
  flex-shrink: 0;
}
/* Quando o theme-toggle está na sidebar, não usar position fixed */
.sidebar-header .theme-toggle {
  position: relative !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 1;
  width: 28px;
  height: 28px;
  font-size: 12px;
}
/* Sidebar de contatos (largura vem do invólucro .feature-panel-shell-inner) */
.sidebar {
  width: 100%;
  max-width: var(--contacts-panel-width);
  background-color: var(--sidebar-bg);
  border-right: none;
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
  padding: 8px 0;
  position: relative;
  z-index: 1;
}
.sidebar-header {
  padding: 20px 20px 16px 20px;
  background-color: var(--sidebar-bg);
  margin-bottom: 4px;
}
.sidebar-header-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.sidebar-header-title h2 {
  margin: 0;
  flex-shrink: 0;
}
.sidebar-header-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  position: relative;
}
.sidebar-header .theme-toggle {
  width: 28px;
  height: 28px;
  font-size: 12px;
  position: relative;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}
.sidebar-header h2 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
  font-weight: 500;
}
/* Botão do filtro de datas */
.date-filter-btn {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: var(--background);
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: background 0.2s, color 0.2s;
  position: relative;
}
.date-filter-btn:hover {
  background: var(--border);
}
.date-filter-btn.active {
  background: var(--message-sent);
  color: var(--text);
}
.light-theme .date-filter-btn.active {
  color: white;
}
.date-filter-dot {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--urgent-color);
}
.date-filter-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 6px;
  padding: 12px;
  background: var(--sidebar-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow);
  z-index: 100;
  min-width: 200px;
}
.date-filter-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
}
.date-filter-fields label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: var(--text);
}
.date-filter-fields label span {
  font-weight: 500;
  color: var(--text);
  opacity: 0.9;
}
.date-filter-fields input[type="date"] {
  padding: 6px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--background);
  color: var(--text);
  font-size: 13px;
}
.date-filter-buttons {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.date-filter-action {
  padding: 6px 12px;
  border: none;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
}
.date-filter-action.today {
  background: var(--background);
  color: var(--text);
}
.date-filter-action.today:hover {
  background: var(--border);
}
.date-filter-action.apply {
  background: var(--message-sent);
  color: var(--text);
}
.light-theme .date-filter-action.apply {
  color: white;
}
.date-filter-action.apply:hover {
  filter: brightness(1.05);
}
/* Tabs de contatos */
.contact-tabs {
  display: flex;
  margin-bottom: 15px;
  background-color: var(--background);
  border-radius: 25px;
  padding: 4px;
}
.tab-button {
  flex: 1;
  padding: 10px 15px;
  border: none;
  background: var(--sidebar-bg);
  color: var(--text);
  cursor: pointer;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
}
.tab-button.active {
  background-color: var(--message-sent);
  color: var(--text);
}
.light-theme .tab-button.active {
  background-color: var(--primary-color);
  color: white;
  font-weight: 600;
}
.dark-theme .tab-button.active {
  background-color: var(--message-sent);
  color: var(--text);
}
.tab-button.urgent-tab.active {
  background-color: var(--urgent-color);
  color: white;
}
.tab-icon {
  font-size: 16px;
}
.tab-counter {
  background-color: var(--sidebar-bg);
  color: var(--text);
  padding: 2px 6px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
}
.tab-button:not(.active) .tab-counter {
  background-color: var(--border);
  color: var(--text);
}
/* Filtros */
.contact-filters {
  margin-top: 8px;
  margin-bottom: 12px;
}
.search-container {
  position: relative;
  margin-bottom: 10px;
}
.search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text);
  opacity: 0.5;
  font-size: 14px;
  z-index: 10;
  pointer-events: none;
}
.light-theme .search-icon {
  color: #4a5568;
  opacity: 0.8;
}
.contact-search {
  width: 100%;
  padding: 12px 15px 12px 40px;
  border: 1px solid var(--border);
  border-radius: 25px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
}
.contact-search:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--whatsapp-green) 20%, transparent);
}
.chip-container {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: space-between;
}
.chip {
  padding: 6px 8px;
  border: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  color: var(--text);
  border-radius: 20px;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  flex: 1 1 calc(50% - 6px);
  min-width: 140px;
  text-align: center;
}
.chip-count {
  opacity: 0.8;
  font-weight: 600;
}
.contacts-error {
  margin-top: 8px;
  font-size: 12px;
  color: var(--urgent-color);
  opacity: 0.9;
}
.chip:hover {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.chip.active {
  background-color: var(--message-sent);
  color: var(--text);
  border-color: var(--message-sent);
}
.light-theme .chip.active {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
  font-weight: 600;
}
.dark-theme .chip.active {
  background-color: var(--message-sent);
  color: var(--text);
  border-color: var(--message-sent);
}
/* Lista de contatos */
.contact-content {
  flex: 1;
  overflow-y: auto;
  padding: 0;
}
.contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.contact-list-wrapper {
  position: relative;
}
.contacts-refresh-overlay {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.06);
  backdrop-filter: blur(2px);
  pointer-events: all;
}
.dark-theme .contacts-refresh-overlay {
  background: rgba(255, 255, 255, 0.06);
}
.contacts-refresh-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--background);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 12px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}
.contacts-refresh-spinner {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--border);
  border-top-color: var(--primary-color);
  animation: spin 0.9s linear infinite;
}
.contacts-refresh-text {
  font-weight: 600;
  opacity: 0.85;
}
.contact-list-wrapper.is-loading .contact-list {
  pointer-events: none;
  opacity: 0.6;
}
.contact-item {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  margin: 0 8px;
  border-radius: 8px;
}
.contact-item:hover {
  background-color: var(--background);
}
.contact-item.selected {
  background-color: var(--background);
  color: var(--text);
  opacity: 0.8;
}
.light-theme .contact-item.selected {
  background-color: #d9fdd3;
  color: #1a1a1a;
  opacity: 1;
}
/* Hover mais claro para tema escuro */
.dark-theme .contact-item:hover {
  background-color: #2a2f32;
}
.dark-theme .contact-item.selected {
  background-color: #2a2f32;
  opacity: 0.9;
}
.contact-item.urgent {
  border-left: 4px solid var(--urgent-color);
}
.contact-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--sidebar-bg);
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  font-size: 14px;
  margin-right: 12px;
  position: relative;
  flex-shrink: 0;
  border: 1px solid var(--border);
}
/* Background mais claro para tema escuro */
.dark-theme .contact-avatar {
  background-color: #3b4a54;
  border: 1px solid #5a6b7a;
}
.contact-avatar i {
  font-size: 16px;
  color: var(--text);
  opacity: 0.8;
}
/* Cor do ícone para tema claro */
.light-theme .contact-avatar {
  background-color: var(--sidebar-bg);
  color: var(--text);
  border: 1px solid var(--border);
}
.light-theme .contact-avatar i {
  color: #4a5568;
  opacity: 1;
}
.contact-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.online-indicator {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 12px;
  height: 12px;
  background-color: var(--online-color);
  border: 2px solid var(--background);
  border-radius: 50%;
}
.contact-info {
  flex: 1;
  min-width: 0;
}
.contact-name-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}
.contact-name {
  font-size: 14px;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-contact-name-light);
}
.dark-theme .contact-name {
  color: var(--text-contact-name-dark);
}
.contact-time {
  font-size: 12px;
  color: var(--text-contact-secondary-light);
  flex-shrink: 0;
  margin-left: 10px;
  font-weight: 500;
}
.dark-theme .contact-time {
  color: var(--text-contact-secondary-dark);
}
.contact-details {
  margin-bottom: 8px;
}
.contact-phone {
  font-size: 12px;
  color: var(--text-contact-secondary-light);
  margin: 0 0 4px 0;
  font-weight: 500;
}
.dark-theme .contact-phone {
  color: var(--text-contact-secondary-dark);
}
.contact-best-name {
  font-size: 12px;
  color: var(--text-contact-secondary-light);
  margin: 0 0 4px 0;
  font-weight: 500;
  font-style: italic;
}
.dark-theme .contact-best-name {
  color: var(--text-contact-secondary-dark);
}
.contact-last-message {
  font-size: 12px;
  color: var(--text-contact-secondary-light);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dark-theme .contact-last-message {
  color: var(--text-contact-secondary-dark);
}
.contact-last-message-prefix {
  font-weight: 600;
  opacity: 0.92;
}
.contact-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.badge.admin {
  background-color: var(--admin-color);
  color: #000;
}
.light-theme .badge.admin {
  background-color: #ffd700;
  color: #1a1a1a;
  font-weight: 600;
  box-shadow: 0 2px 4px rgba(255, 215, 0, 0.3);
}
.dark-theme .badge.admin {
  background-color: var(--admin-color);
  color: #000;
}
.badge.frozen {
  background-color: var(--frozen-color);
  color: white;
}
.badge.optin {
  background-color: var(--optin-color, #358a78);
  color: white;
}
.badge.blacklist {
  background-color: var(--blacklist-color, #6b7280);
  color: white;
}
.badge.urgent {
  background-color: var(--urgent-color);
  color: white;
}
.badge.hit {
  background-color: #f97316;
  color: white;
}
.badge.closest {
  background-color: #3b82f6;
  color: white;
}
.badge.opa {
  background-color: #a855f7;
  color: white;
}
.contact-item-actions {
  position: relative;
  margin-left: 10px;
  margin-top: 2px;
  display: flex;
  align-items: center;
  align-self: flex-start;
  flex-shrink: 0;
}
.contact-ownership-btn {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.contact-ownership-btn:hover:not(:disabled) {
  background: var(--background);
}
.contact-ownership-btn.is-unassigned {
  border-color: color-mix(in srgb, var(--whatsapp-green) 55%, transparent);
  color: var(--primary-color);
}
.contact-ownership-btn.has-owner {
  border-color: #f59e0b;
  color: #f59e0b;
}
.contact-ownership-btn.is-mine {
  border-color: color-mix(in srgb, var(--whatsapp-green) 60%, transparent);
  color: var(--primary-color);
  background: color-mix(in srgb, var(--whatsapp-green) 14%, transparent);
}
.contact-ownership-btn.is-mine:hover:not(:disabled) {
  background: color-mix(in srgb, var(--whatsapp-green) 24%, transparent);
}
.contact-ownership-btn:disabled {
  opacity: 0.75;
  cursor: default;
}
.contact-ownership-btn .spinning {
  animation: spin 0.9s linear infinite;
}
.unread-badge {
  position: absolute;
  top: auto;
  bottom: 12px;
  right: 14px;
  background-color: var(--primary-color);
  color: white;
  border-radius: 50%;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
}
.no-contacts {
  padding: 40px 20px;
  text-align: center;
  color: var(--text);
  opacity: 0.7;
}
.light-theme .no-contacts {
  color: #4a5568;
  opacity: 1;
}
.loading-contacts {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  color: var(--text);
  opacity: 0.7;
}
.light-theme .loading-contacts {
  color: #4a5568;
  opacity: 1;
}
.loading-contacts .loading-spinner {
  font-size: 24px;
  margin-bottom: 10px;
  animation: spin 1s linear infinite;
}
.contact-item-skeleton {
  pointer-events: none;
}
.skeleton-box {
  background: var(--border);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  opacity: 0.5;
  animation: pulse 1.2s infinite;
}
.skeleton-line {
  height: 10px;
  background: var(--border);
  border-radius: 6px;
  opacity: 0.5;
  animation: pulse 1.2s infinite;
}
.skeleton-line.name {
  width: 55%;
}
.skeleton-line.time {
  width: 20%;
  height: 8px;
}
.skeleton-line.phone {
  width: 40%;
}
.skeleton-line.message {
  width: 70%;
}
@media (max-width: 768px) {
  .feature-panel-shell:not(.feature-panel-shell--collapsed) {
    width: 100%;
    height: 200px;
    border-right: none;
    border-bottom: 1px solid var(--border);
    opacity: 1;
    pointer-events: auto;
  }

  .feature-panel-shell-inner {
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .feature-panel-shell-inner .sidebar {
    width: 100%;
    height: 200px;
    min-height: 200px;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
}
@media (max-width: 480px) {
  .feature-panel-shell:not(.feature-panel-shell--collapsed) {
    height: 150px;
  }

  .feature-panel-shell-inner .sidebar {
    height: 150px;
    min-height: 150px;
  }
}
/* Auto-split from App.css — Chat: layout, header, empty states, loading */
/* Conteúdo principal */
.main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  background-color: transparent;
  box-sizing: border-box;
  position: relative;
  z-index: 1; /* Fica acima do PNG com opacidade */
}
/* Janela de chat */
.chat-window {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
  max-width: 100%;
  background-color: transparent;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
}
.no-contact-selected {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: var(--text);
  opacity: 0.7;
}
.no-contact-icon {
  font-size: 64px;
  margin-bottom: 20px;
}
.no-contact-selected h2 {
  margin-bottom: 10px;
  font-size: 24px;
}
.no-contact-selected p {
  font-size: 16px;
}
/* Header do chat - WhatsApp Style */
.chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background-color: var(--whatsapp-header-bg);
  min-height: 59px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
  position: relative;
  z-index: 12;
  overflow: visible;
}
.chat-header-main {
  display: flex;
  align-items: center;
  flex: 1;
}
.chat-header .contact-avatar {
  margin-right: 15px;
}
.chat-header .contact-info {
  flex: 1;
}
.chat-header .contact-name {
  font-size: 18px;
  margin-bottom: 4px;
}
.chat-header .contact-phone {
  font-size: 14px;
  color: var(--text-contact-secondary-light);
  margin: 0;
}
.chat-header .contact-owner-status {
  font-size: 12px;
  margin: 4px 0 0;
  font-weight: 600;
  color: var(--text-contact-secondary-light);
}
.chat-header .contact-owner-status.mine {
  color: var(--primary-color);
}
.chat-header .contact-owner-status.assigned {
  color: #f59e0b;
}
.dark-theme .chat-header .contact-phone {
  color: var(--text-contact-secondary-dark);
}
.dark-theme .chat-header .contact-owner-status {
  color: var(--text-contact-secondary-dark);
}
.contact-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  margin-top: 4px;
}
.status-dot {
  width: 8px;
  height: 8px;
  background-color: var(--online-color);
  border-radius: 50%;
}
.chat-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-right: 60px; /* Espaço para o botão de tema */
  position: relative;
  z-index: 13;
}
.chat-more-actions {
  position: relative;
}
.chat-more-actions-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  padding: 8px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--sidebar-bg);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
  z-index: 1200;
  pointer-events: auto;
}
.chat-more-action-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  text-align: left;
  padding: 8px 10px;
  cursor: pointer;
}
.chat-more-action-item:hover:not(:disabled) {
  background: var(--background);
}
.chat-more-action-item.active {
  color: var(--primary-color);
}
.chat-more-action-item.danger {
  color: #ef4444;
}
.chat-more-action-item:disabled {
  opacity: 0.6;
  cursor: default;
}
.action-button {
  width: 36px;
  height: 36px;
  border: none;
  background-color: transparent;
  color: var(--text);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all 0.2s ease;
}
.action-button:hover {
  background-color: var(--background);
}
.action-button.active {
  background-color: var(--message-sent);
  color: var(--text);
}
.light-theme .action-button.active {
  background-color: var(--primary-color);
  color: white;
}
.dark-theme .action-button.active {
  background-color: var(--message-sent);
  color: var(--text);
}
.ownership-action:disabled {
  opacity: 0.85;
}
/* Botão de menu de ações - menor */
.chat-more-actions > .action-button {
  width: 32px;
  height: 32px;
  font-size: 12px;
}
/* Área de mensagens - Transparente para mostrar background personalizado */
.chat-messages {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px;
  position: relative;
  min-height: 0;
}
/* .dark-theme .chat-messages {
  background-color: transparent;
} */
.no-messages {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: var(--text);
  opacity: 0.7;
}
.no-messages-icon {
  font-size: 48px;
  margin-bottom: 15px;
}
.no-messages p {
  margin-bottom: 5px;
}
.loading-messages {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: var(--text);
  opacity: 0.7;
}
.loading-messages .loading-spinner {
  font-size: 24px;
  margin-bottom: 10px;
  animation: spin 1s linear infinite;
}
/* Auto-split from App.css — Chat: message bubbles and status */
/* Mensagens */
.message {
  display: flex;
  margin-bottom: 8px;
  animation: messageSlide 0.3s ease;
}
@keyframes messageSlide {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.message.sent {
  justify-content: flex-end;
  margin-left: auto;
  margin-right: 0;
  margin-bottom: 8px;
}
.message.received {
  justify-content: flex-start;
  margin-left: 0;
  margin-right: auto;
  margin-bottom: 8px;
}
.message.pending {
  opacity: 0.7;
}
.message-content {
  max-width: 60%;
  position: relative;
  white-space: pre-wrap;
}
.message.sent .message-content {
  background-color: var(--message-sent);
  color: var(--text);
  border-radius: 7.5px;
  padding: 6px 7px 8px 9px;
  box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
  border: none;
  position: relative;
  margin-right: 8px;
}
.message.received .message-content {
  background-color: var(--message-received);
  color: var(--text);
  border-radius: 7.5px;
  padding: 6px 7px 8px 9px;
  box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
  border: none;
  position: relative;
  margin-left: 8px;
}
/* Mensagens do operador no lado direito com cor especial */
.message.sent-operator .message-content {
  background-color: var(--message-operator) !important;
}
.dark-theme .message.sent-operator .message-content {
  background-color: var(--message-operator-dark) !important;
}
.message.sent-operator .message-content::after {
  border-left-color: var(--message-operator) !important;
}
.dark-theme .message.sent-operator .message-content::after {
  border-left-color: var(--message-operator-dark) !important;
}
/* WhatsApp message tail - positioned at top external corner */
.message.sent .message-content::after {
  content: "";
  position: absolute;
  top: 0;
  right: -8px;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  border-left-color: var(--message-sent);
  border-top: none;
}
.message.received .message-content::after {
  content: "";
  position: absolute;
  top: 0;
  left: -8px;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  border-right-color: var(--message-received);
  border-top: none;
}
/* Estilos específicos para diferentes sources do lado direito */
.message.sent-airton .message-content {
  background-color: var(--message-airton);
}
.dark-theme .message.sent-airton .message-content {
  background-color: var(--message-airton-dark);
}
.message.sent-airton .message-content::after {
  border-left-color: var(--message-airton);
}
.dark-theme .message.sent-airton .message-content::after {
  border-left-color: var(--message-airton-dark);
}
.message.sent-system .message-content {
  background-color: var(--message-system);
}
.dark-theme .message.sent-system .message-content {
  background-color: var(--message-system-dark);
}
.message.sent-system .message-content::after {
  border-left-color: var(--message-system);
}
.dark-theme .message.sent-system .message-content::after {
  border-left-color: var(--message-system-dark);
}
.message.sent-moengage .message-content {
  background-color: var(--message-moengage);
}
.dark-theme .message.sent-moengage .message-content {
  background-color: var(--message-moengage-dark);
}
.message.sent-moengage .message-content::after {
  border-left-color: var(--message-moengage);
}
.dark-theme .message.sent-moengage .message-content::after {
  border-left-color: var(--message-moengage-dark);
}
.message.sent-simulated-approved .message-content {
  background-color: var(--message-simulated-approved);
}
.dark-theme .message.sent-simulated-approved .message-content {
  background-color: var(--message-simulated-approved-dark);
}
.message.sent-simulated-approved .message-content::after {
  border-left-color: var(--message-simulated-approved);
}
.dark-theme .message.sent-simulated-approved .message-content::after {
  border-left-color: var(--message-simulated-approved-dark);
}
.message.sent-simulated-reject .message-content {
  background-color: var(--message-simulated-reject);
}
.dark-theme .message.sent-simulated-reject .message-content {
  background-color: var(--message-simulated-reject-dark);
}
.message.sent-simulated-reject .message-content::after {
  border-left-color: var(--message-simulated-reject);
}
.dark-theme .message.sent-simulated-reject .message-content::after {
  border-left-color: var(--message-simulated-reject-dark);
}
.message.sent-simulated-pending .message-content {
  background-color: var(--message-simulated-pending);
}
.dark-theme .message.sent-simulated-pending .message-content {
  background-color: var(--message-simulated-pending-dark);
}
.message.sent-simulated-pending .message-content::after {
  border-left-color: var(--message-simulated-pending);
}
.dark-theme .message.sent-simulated-pending .message-content::after {
  border-left-color: var(--message-simulated-pending-dark);
}
.message-text {
  font-size: 14px;
  line-height: 1.4;
  word-wrap: break-word;
}
.message-text strong {
  font-weight: 600;
}
.message-text em {
  font-style: italic;
}
.message-text del {
  text-decoration: line-through;
}
.message-text blockquote {
  border-left: 3px solid var(--primary-color);
  padding-left: 10px;
  margin: 8px 0;
  font-style: italic;
  opacity: 0.8;
}
.message-time {
  font-size: 11px;
  opacity: 0.7;
  margin-top: 4px;
  text-align: right;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.light-theme .message-time {
  color: #4a5568;
  opacity: 1;
}
.message.received .message-time {
  text-align: left;
}
.message-source {
  font-size: 9px;
  opacity: 0.6;
  font-weight: 400;
  text-transform: lowercase;
  letter-spacing: 0.3px;
}
.light-theme .message-source {
  opacity: 0.5;
}
.dark-theme .message-source {
  opacity: 0.5;
}
.message-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  opacity: 0.7;
  margin-top: 4px;
}
/* Auto-split from App.css — Chat: composer / message input */
/* Input de mensagem - WhatsApp Style */
.chat-input {
  padding: 8px 16px;
  background-color: var(--whatsapp-input-bg);
  border-top: 1px solid var(--border);
  box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.1);
}
.message-composer {
  display: flex;
  gap: 15px;
  margin-bottom: 10px;
}
/* Emoji (fora) + cápsula do texto + enviar redondo na mesma linha */
.message-composer.wa-composer-row {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
}
.wa-composer-emoji-wrap {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  align-self: center;
}
.composer-main {
  flex: 1;
  position: relative;
  background-color: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
/* Composer estilo WhatsApp Web (barra única em formato de cápsula) */
.composer-main.wa-composer {
  background: transparent;
  box-shadow: none;
  padding: 0;
}
.wa-composer-bar {
  flex: 1;
  min-width: 0;
  align-self: center;
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 6px 12px;
  border-radius: 24px;
  box-sizing: border-box;
  border: 1px solid transparent;
}
.dark-theme .wa-composer-bar {
  background-color: #2a3942;
  border-color: transparent;
}
.light-theme .wa-composer-bar {
  background-color: #fff;
  border-color: var(--border);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}
.wa-composer-emoji-btn {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--text);
  opacity: 0.85;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  transition: background-color 0.15s ease, opacity 0.15s ease;
}
.wa-composer-send-btn {
  flex-shrink: 0;
  align-self: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--primary-color);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  transition:
    background-color 0.2s ease,
    transform 0.15s ease,
    opacity 0.2s ease;
}
.wa-composer-send-btn:hover:not(:disabled) {
  filter: brightness(1.06);
  transform: scale(1.03);
}
.wa-composer-send-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
}
.light-theme .wa-composer-send-btn {
  background-color: var(--secondary-color);
  color: #fff;
}
.dark-theme .wa-composer-send-btn {
  background-color: var(--primary-color);
  color: #fff;
}
.wa-composer-emoji-btn:hover:not(:disabled) {
  background-color: rgba(0, 0, 0, 0.08);
  opacity: 1;
}
.dark-theme .wa-composer-emoji-btn:hover:not(:disabled) {
  background-color: rgba(255, 255, 255, 0.08);
}
.wa-composer-emoji-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.message-textarea.wa-composer-textarea {
  width: 100%;
  min-height: 40px;
  max-height: 168px;
  padding: 8px 4px;
  border-radius: 0;
  line-height: 1.35;
  overflow-y: auto;
}
.light-theme .message-textarea.wa-composer-textarea::placeholder {
  color: #8696a0;
}
.dark-theme .message-textarea.wa-composer-textarea::placeholder {
  color: #8696a0;
}
/* Formatação + preview flutuantes ao selecionar texto */
.selection-floating-stack {
  --selection-toolbar-bg: #ffffff;
  --selection-toolbar-border: #d9e0e4;
  --selection-toolbar-text: #111b21;
  --selection-toolbar-hover: #eef2f4;
  --selection-preview-bg: #f8fbf9;
  --selection-preview-border: #d9e0e4;
  --selection-preview-label: #5b6c75;
  --selection-bubble-bg: #d9fdd3;
  --selection-bubble-text: #111b21;
  --selection-quote-border: rgba(17, 27, 33, 0.24);
  position: fixed;
  z-index: 2147483647;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transform: translate(-50%, calc(-100% - 8px));
  max-width: min(300px, calc(100vw - 24px));
  pointer-events: auto;
}
.selection-floating-stack--dark {
  --selection-toolbar-bg: #182329;
  --selection-toolbar-border: #39505d;
  --selection-toolbar-text: #e9edef;
  --selection-toolbar-hover: #273642;
  --selection-preview-bg: #0f171d;
  --selection-preview-border: #2f4350;
  --selection-preview-label: #9fb2bc;
  --selection-bubble-bg: #005c4b;
  --selection-bubble-text: #e9edef;
  --selection-quote-border: rgba(233, 237, 239, 0.28);
}
.selection-format-toolbar {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px 6px;
  border-radius: 8px;
  background-color: var(--selection-toolbar-bg);
  border: 1px solid var(--selection-toolbar-border);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.24);
}
.selection-whatsapp-preview {
  width: 100%;
  padding: 8px 10px 10px;
  border-radius: 10px;
  background-color: var(--selection-preview-bg);
  border: 1px solid var(--selection-preview-border);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
}
.selection-whatsapp-preview-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--selection-preview-label);
  opacity: 1;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.selection-whatsapp-preview-bubble {
  background-color: var(--selection-bubble-bg);
  color: var(--selection-bubble-text);
  padding: 10px 14px;
  border-radius: 18px 18px 4px 18px;
  font-size: 14px;
  line-height: 1.45;
  word-break: break-word;
}
.selection-whatsapp-preview-bubble strong {
  font-weight: 600;
}
.selection-whatsapp-preview-bubble em {
  font-style: italic;
}
.selection-whatsapp-preview-bubble del {
  text-decoration: line-through;
}
.selection-whatsapp-preview-bubble blockquote {
  margin: 0.35em 0 0 0;
  padding-left: 0.6em;
  border-left: 3px solid var(--selection-quote-border);
}
.selection-format-btn {
  width: 32px;
  height: 32px;
  border: none;
  background-color: transparent;
  color: var(--selection-toolbar-text);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.selection-format-btn:hover {
  background-color: var(--selection-toolbar-hover);
  color: var(--selection-toolbar-text);
}
button.emoji {
  border: none;
  background: transparent;
  padding: 8px;
  margin: 0;
  font: inherit;
  line-height: 1;
}
.message-textarea {
  width: 100%;
  min-height: 36px;
  max-height: 100px;
  padding: 8px 16px;
  border: none;
  border-radius: 21px;
  background-color: transparent;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  resize: none;
  outline: none;
  transition: all 0.2s ease;
}
.message-textarea:focus {
  outline: none;
}
.message-textarea:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.message-textarea.sending {
  opacity: 0.6;
  background-color: var(--sidebar-bg);
  border-color: var(--border);
  cursor: not-allowed;
}
/* Cápsula do WhatsApp: o fundo já vem da .wa-composer-bar — evita retângulo cinza no envio */
.message-textarea.wa-composer-textarea.sending {
  background-color: transparent;
  border-color: transparent;
}
/* Painel de emojis */
.emoji-panel {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 15px;
  box-shadow: var(--shadow);
  z-index: 100;
  max-height: 200px;
  overflow-y: auto;
}
/* Emoji picker no composer: precisa vir depois de .emoji-panel para não herdar max-height: 200px */
.emoji-panel.wa-emoji-panel {
  --wa-emoji-picker-w: min(350px, calc(100vw - 64px));
  left: 4px;
  right: auto;
  width: fit-content;
  max-width: calc(100vw - 48px);
  max-height: min(520px, 68vh);
  padding: 8px;
  overflow: hidden;
  box-sizing: border-box;
}
.emoji-panel.wa-emoji-panel .EmojiPickerReact {
  width: var(--wa-emoji-picker-w);
  max-width: 100%;
  box-sizing: border-box;
  max-height: min(504px, calc(68vh - 16px));
}
.emoji-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 8px;
}
.emoji {
  font-size: 20px;
  cursor: pointer;
  padding: 8px;
  border-radius: 6px;
  text-align: center;
  transition: all 0.2s ease;
}
.emoji:hover {
  background-color: var(--primary-color);
  transform: scale(1.2);
}
/* Preview de mensagem */
.message-preview {
  width: 300px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.preview-header {
  padding: 10px 15px;
  background-color: var(--sidebar-bg);
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}
.preview-content {
  padding: 15px;
  min-height: 100px;
}
.preview-message {
  background-color: var(--message-sent);
  padding: 12px 16px;
  border-radius: 18px 18px 4px 18px;
  font-size: 14px;
  line-height: 1.4;
}
.preview-placeholder {
  color: var(--text);
  opacity: 0.5;
  font-style: italic;
}
/* Botões de ação */
.button-group {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.action-btn {
  padding: 10px 20px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
}
.action-btn.primary {
  background-color: var(--primary-color);
  color: white;
  border-radius: 21px;
  padding: 8px 16px;
  font-weight: 600;
}
.light-theme .action-btn.primary {
  background-color: var(--secondary-color);
  color: white;
}
.dark-theme .action-btn.primary {
  background-color: var(--primary-color);
  color: white;
}
.action-btn.primary:hover:not(:disabled) {
  opacity: 0.9;
  transform: translateY(-1px);
}
.light-theme .action-btn.primary:hover:not(:disabled) {
  background-color: var(--whatsapp-green-darker);
}
.dark-theme .action-btn.primary:hover:not(:disabled) {
  background-color: var(--whatsapp-green-dark);
}
.action-btn.secondary {
  background-color: transparent;
  color: var(--text);
  border: 2px solid var(--border);
  border-radius: 21px;
  padding: 8px 16px;
  font-weight: 600;
}
.light-theme .action-btn.secondary {
  border-color: #8b9dc3;
  border-width: 2px;
  color: #1a1a1a;
}
.dark-theme .action-btn.secondary {
  border-color: var(--border);
  color: var(--text);
}
.action-btn.secondary:hover:not(:disabled) {
  background-color: var(--sidebar-bg);
}
.light-theme .action-btn.secondary:hover:not(:disabled) {
  background-color: #f0f0f0;
}
.action-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.fa-spinner.fa-spin {
  animation: spin 1s linear infinite;
}
/* Auto-split from App.css — Approval panel */
/* Painel de aprovação */
.approval-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  backdrop-filter: blur(8px);
  pointer-events: auto;
}
.approval-modal {
  background: var(--background);
  border-radius: 16px;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.4);
  width: 90%;
  max-width: 520px;
  max-height: 85vh;
  overflow: hidden;
  animation: slideIn 0.3s ease-out;
  border: 1px solid var(--border);
}
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(-50px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.approval-header {
  padding: 12px;
  background: var(--sidebar-bg);
  color: var(--text);
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.approval-header h3 {
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0;
  color: var(--text);
}
.close-btn {
  background-color: var(--urgent-color);
  color: white;
  font-size: 1.1rem;
  cursor: pointer;
  border: none;
  border-radius: 8px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.close-btn:hover {
  background-color: rgba(255, 255, 255, 0.2);
}
.approval-status {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  background-color: var(--background);
  border-bottom: 1px solid var(--border);
}
.status-indicator {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background-color: #ffa500;
  animation: pulse 2s infinite;
}
.status-indicator.pending {
  background-color: #ffa500;
}
.status-text {
  font-size: 15px;
  color: #495057;
  font-weight: 500;
}
@keyframes pulse {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
  100% {
    opacity: 1;
  }
}
.approval-content {
  padding: 12px;
}
.pending-response h4 {
  margin-bottom: 20px;
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;
}
.response-preview {
  background-color: var(--sidebar-bg);
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 24px;
  border: 1px solid var(--border);
  min-height: 120px;
  max-height: 200px;
  overflow-y: auto;
}
.response-content {
  margin: 0;
  color: var(--text);
  line-height: 1.6;
  font-size: 15px;
}
.response-content strong {
  font-weight: 600;
}
.response-content em {
  font-style: italic;
}
.response-content del {
  text-decoration: line-through;
}
.response-content blockquote {
  border-left: 4px solid #67a22d;
  padding-left: 16px;
  margin: 8px 0;
  font-style: italic;
  background: rgba(103, 162, 45, 0.1);
  padding: 8px 16px;
  border-radius: 0 4px 4px 0;
}
.response-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.approve-btn {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  position: relative;
  z-index: 1;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  font-size: 14px;
}
.light-theme .approve-btn {
  background-color: var(--secondary-color);
  color: white;
}
.dark-theme .approve-btn {
  background-color: var(--primary-color);
  color: white;
}
.approve-btn:hover:not(:disabled) {
  opacity: 0.9;
  transform: translateY(-1px);
}
.light-theme .approve-btn:hover:not(:disabled) {
  background-color: var(--whatsapp-green-darker);
}
.dark-theme .approve-btn:hover:not(:disabled) {
  background-color: var(--whatsapp-green-dark);
}
.reject-btn {
  background-color: var(--urgent-color);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  font-size: 14px;
}
.reject-btn:hover:not(:disabled) {
  background-color: #e55a5a;
}
.edit-btn {
  background-color: var(--sidebar-bg);
  color: var(--text);
  border: 2px solid var(--border);
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  font-size: 14px;
}
.light-theme .edit-btn {
  border-color: #8b9dc3;
  border-width: 2px;
  color: #1a1a1a;
  background-color: #f8f9fa;
}
.dark-theme .edit-btn {
  border-color: var(--border);
  color: var(--text);
}
.edit-btn:hover:not(:disabled) {
  background-color: var(--background);
  transform: translateY(-1px);
}
.light-theme .edit-btn:hover:not(:disabled) {
  background-color: #e9ecef;
}
.audio-btn {
  background-color: var(--frozen-color);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.audio-btn:hover:not(:disabled) {
  background-color: #5a6268;
}
.audio-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.back-btn {
  background-color: var(--sidebar-bg);
  color: var(--text);
  border: 2px solid var(--border);
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.light-theme .back-btn {
  border-color: #8b9dc3;
  border-width: 2px;
  color: #1a1a1a;
  background-color: #f8f9fa;
}
.dark-theme .back-btn {
  border-color: var(--border);
  color: var(--text);
}
.back-btn:hover {
  background-color: var(--background);
  transform: translateY(-1px);
}
.light-theme .back-btn:hover {
  background-color: #e9ecef;
}
.response-editor h4 {
  margin-bottom: 16px;
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;
}
.edit-textarea {
  width: 100%;
  min-height: 200px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  outline: none;
  margin-bottom: 20px;
  line-height: 1.6;
}
.editor-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.save-btn {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  font-size: 14px;
}
.light-theme .save-btn {
  background-color: var(--secondary-color);
  color: white;
}
.dark-theme .save-btn {
  background-color: var(--primary-color);
  color: white;
}
.save-btn:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}
.light-theme .save-btn:hover {
  background-color: var(--whatsapp-green-darker);
}
.dark-theme .save-btn:hover {
  background-color: var(--whatsapp-green-dark);
}
.cancel-btn {
  background-color: var(--sidebar-bg);
  color: var(--text);
  border: 2px solid var(--border);
  padding: 12px 24px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
}
.light-theme .cancel-btn {
  border-color: #8b9dc3;
  border-width: 2px;
  color: #1a1a1a;
  background-color: #f8f9fa;
}
.dark-theme .cancel-btn {
  border-color: var(--border);
  color: var(--text);
}
.cancel-btn:hover {
  background-color: var(--background);
}
.light-theme .cancel-btn:hover {
  background-color: #e9ecef;
}
/* Auto-split from App.css — Generic modals (memory, confirmation, etc.) */
/* Modais */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  overflow-x: hidden;
  overflow-y: hidden;
}
.modal {
  background-color: var(--background);
  border-radius: 12px;
  box-shadow: var(--shadow);
  max-width: 500px;
  width: 90%;
  max-height: 80vh;
  overflow-y: auto;
}
.modal-content {
  padding: 20px;
}
.modal-title {
  margin-bottom: 15px;
  color: var(--text);
  font-size: 18px;
  font-weight: 600;
}
.modal-message {
  margin-bottom: 20px;
  color: var(--text);
  line-height: 1.4;
}
.modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--border-color);
}
/* Estilos específicos para o modal de memória */
.memory-modal .modal-content {
  max-width: 800px;
  height: auto;
  min-height: 80vh;
  max-height: none;
  overflow-y: hidden;
  overflow-x: hidden;
  background: var(--background);
  border-radius: 12px;
  box-shadow: var(--shadow-dark);
}
.memory-modal .modal-header {
  background: var(--sidebar-bg);
  color: var(--text);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 30px;
  border-bottom: 1px solid var(--border);
}
.memory-modal .close-btn {
  background: var(--urgent-color);
  color: white;
  border: 2px solid var(--urgent-color);
  font-size: 1.2rem;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-weight: 600;
  margin-right: 20px;
}
.memory-modal .close-btn:hover {
  background: #e55a5a;
  border-color: #e55a5a;
  transform: scale(1.05);
}
.memory-modal .modal-header h2 {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--text);
}
.memory-info {
  margin: 10px 12px;
  max-width: 100%;
  padding: 0;
  display: flex;
  justify-content: center;
}
.memory-stats {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: stretch;
  max-width: 100%;
  overflow: hidden;
  width: 100%;
}
.stat-item {
  background: var(--sidebar-bg);
  padding: 16px;
  border-radius: 8px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.stat-label {
  font-size: 0.85rem;
  color: var(--text);
  opacity: 0.7;
  font-weight: 500;
  margin-bottom: 0;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: inline;
  margin-right: 8px;
}
.light-theme .stat-label {
  color: #4a5568;
  opacity: 1;
}
.stat-value {
  font-size: 1.1rem;
  color: var(--text);
  font-weight: 600;
  font-family: "Monaco", "Menlo", monospace;
  display: inline;
  word-break: break-all;
  line-height: 1.2;
}
.memory-content {
  margin: 0 12px 10px;
}
.memory-messages {
  max-height: none;
  height: auto;
  overflow-y: hidden;
  overflow-x: hidden;
  background-color: var(--background);
  border-radius: 8px;
  padding: 10px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.memory-message {
  margin-bottom: 16px;
  padding: 16px;
  border-radius: 12px;
  background: var(--sidebar-bg);
  border: 1px solid var(--border);
  transition: all 0.2s ease;
}
.memory-message:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-dark);
}
.memory-message.assistant {
  border-left: 4px solid var(--primary-color);
  background: var(--sidebar-bg);
}
.dark-theme .memory-message.assistant {
  background: color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
}
.light-theme .memory-message.assistant {
  background: color-mix(in srgb, var(--whatsapp-green) 5%, transparent);
}
.memory-message.user {
  border-left: 4px solid var(--secondary-color);
  background: var(--sidebar-bg);
}
.dark-theme .memory-message.user {
  background: color-mix(in srgb, var(--whatsapp-green-mix) 10%, transparent);
}
.light-theme .memory-message.user {
  background: color-mix(in srgb, var(--whatsapp-green-mix) 5%, transparent);
}
.memory-message-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.memory-message-role {
  font-weight: 600;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.memory-message.assistant .memory-message-role {
  color: var(--primary-color);
}
.memory-message.user .memory-message-role {
  color: var(--secondary-color);
}
.memory-message-time {
  font-size: 0.8rem;
  color: var(--text);
  opacity: 0.7;
  background: var(--background);
  padding: 4px 8px;
  border-radius: 4px;
  font-weight: 500;
}
.light-theme .memory-message-time {
  color: #4a5568;
  opacity: 1;
}
.memory-message-content {
  line-height: 1.6;
  color: var(--text);
  font-size: 0.95rem;
}
.memory-add-message {
  background: var(--background);
  padding: 24px;
  border-radius: 8px;
  margin: 0 24px 20px;
  border: 2px dashed var(--border);
}
.memory-add-message h4 {
  margin: 0 0 20px 0;
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}
.add-message-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.role-selector {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.role-selector label {
  font-weight: 500;
  color: var(--text);
  font-size: 0.9rem;
}
.role-selector select {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 0.95rem;
  transition: border-color 0.2s ease;
}
.role-selector select:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px
    color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
}
.add-message-form textarea {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  resize: vertical;
  min-height: 100px;
  font-size: 0.95rem;
  font-family: inherit;
  transition: border-color 0.2s ease;
}
.add-message-form textarea:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--whatsapp-green) 5%);
}
.add-message-btn {
  background: var(--primary-color);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.95rem;
  transition: all 0.2s ease;
  box-shadow: var(--shadow);
}
.light-theme .add-message-btn {
  background: var(--secondary-color);
  color: white;
}
.dark-theme .add-message-btn {
  background: var(--primary-color);
  color: white;
}
.add-message-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--shadow-dark);
}
.light-theme .add-message-btn:hover:not(:disabled) {
  background: var(--whatsapp-green-darker);
}
.dark-theme .add-message-btn:hover:not(:disabled) {
  background: var(--whatsapp-green-dark);
}
.add-message-btn:disabled {
  background: var(--frozen-color);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
  opacity: 0.6;
}
.loading-memory {
  text-align: center;
  padding: 60px 20px;
  color: var(--text);
  opacity: 0.7;
}
.light-theme .loading-memory {
  color: #4a5568;
}
.loading-spinner {
  font-size: 2.5rem;
  margin-bottom: 16px;
  display: block;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.confirm-btn {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
}
.confirm-btn:hover {
  background-color: var(--primary-dark);
}
/* Modal de confirmação */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
  backdrop-filter: blur(4px);
}
.confirm-modal {
  background-color: var(--background);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  max-width: 400px;
  width: 100%;
  overflow: hidden;
  animation: modalSlideIn 0.3s ease-out;
}
@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.confirm-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px 16px 24px;
  border-bottom: 1px solid var(--border);
}
.confirm-icon {
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--background);
  border-radius: 50%;
  border: 2px solid var(--border);
}
.confirm-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  margin: 0;
}
.confirm-body {
  padding: 20px 24px;
}
.confirm-message {
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
  opacity: 0.8;
}
.confirm-actions {
  display: flex;
  gap: 12px;
  padding: 16px 24px 24px 24px;
  justify-content: flex-end;
}
.confirm-cancel,
.confirm-ok {
  padding: 10px 20px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 80px;
}
.confirm-cancel {
  background-color: var(--border);
  color: var(--text);
}
.confirm-cancel:hover {
  background-color: var(--text);
  color: var(--background);
}
.confirm-ok {
  background-color: var(--primary-color);
  color: white;
}
.confirm-ok:hover {
  background-color: var(--whatsapp-green-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px
    color-mix(in srgb, var(--whatsapp-green) 30%, transparent);
}
/* Modal de memória */
.memory-modal {
  max-width: 800px;
  overflow-x: hidden;
  overflow-y: hidden;
  max-height: 100vh;
}
.memory-modal-content {
  padding: 0;
  height: auto;
  overflow-y: hidden;
  overflow-x: hidden;
  max-width: 800px;
}
.memory-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid var(--border);
  background-color: var(--sidebar-bg);
}
.memory-header h2 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
}
.memory-stats {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.stat-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.stat-label {
  font-size: 12px;
  color: var(--text);
  opacity: 0.7;
  font-weight: 600;
}
.stat-value {
  font-size: 14px;
  color: var(--text);
  font-weight: 600;
}
.memory-content {
  padding: 10px;
  max-height: none;
  height: auto;
  overflow-y: visible;
  overflow-x: hidden;
}
.memory-messages {
  display: flex;
  flex-direction: column;
  gap: 15px;
  height: 40vh;
  overflow-y: auto;
}
.memory-message {
  padding: 15px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--sidebar-bg);
}
.memory-message.assistant {
  border-left: 4px solid var(--primary-color);
}
.memory-message.user {
  border-left: 4px solid var(--secondary-color);
}
.message-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.message-role {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}
.message-time {
  font-size: 11px;
  color: var(--text);
  opacity: 0.7;
}
.memory-add-message {
  padding: 10px;
  border-top: 1px solid var(--border);
  background-color: var(--background);
}
.memory-add-message h4 {
  margin-bottom: 15px;
  color: var(--text);
  font-size: 16px;
}
.add-message-form {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.role-selector {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.role-selector label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.role-selector select {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
}
.memory-textarea {
  width: 100%;
  min-height: 80px;
  padding: 12px 15px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  outline: none;
}
.add-message-btn {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  align-self: flex-start;
}
.add-message-btn:hover:not(:disabled) {
  background-color: var(--primary-dark);
}
.add-message-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.memory-actions {
  padding: 20px;
  border-top: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  display: flex;
  justify-content: flex-end;
}
.loading-memory {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px;
  color: var(--text);
  opacity: 0.7;
}
.loading-spinner {
  font-size: 24px;
  margin-bottom: 10px;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slideOutRight {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}
.no-memory {
  text-align: center;
  color: var(--text);
  opacity: 0.7;
  padding: 40px;
}
/* Auto-split from App.css — Responsive rules for chat / composer */
/* Responsividade */
@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }

  .main-content {
    flex: 1;
    min-height: 0;
    height: auto;
  }

  .message-composer:not(.wa-composer-row) {
    flex-direction: column;
  }

  .message-composer.wa-composer-row {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
  }

  .message-preview {
    width: 100%;
    margin-top: 15px;
  }

  .button-group {
    flex-direction: column;
  }

  .response-actions {
    flex-direction: column;
  }

  .memory-stats {
    flex-direction: column;
    gap: 10px;
  }
}
/* Auto-split from App.css — Auth / app header */
/* ===== HEADER DE AUTENTICAÇÃO ===== */
.app-header {
  background: var(--whatsapp-header-bg);
  border-bottom: 1px solid var(--border-light);
  padding: 0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  max-width: 100%;
}
.header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.app-title {
  font-size: 20px;
  font-weight: 600;
  color: var(--brand-gray-dark);
  margin: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.app-subtitle {
  font-size: 14px;
  color: var(--brand-gray-text);
  margin: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
/* Ajustar container principal para incluir header */
.app {
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.container {
  flex: 1;
  display: flex;
  height: calc(100vh - 60px); /* Altura total menos header */
}
/* Dark theme para header */
.dark-theme .app-header {
  background: var(--sidebar-bg-dark);
  border-bottom-color: var(--border-dark);
}
.dark-theme .app-title {
  color: var(--text-dark);
}
.dark-theme .app-subtitle {
  color: var(--text-muted);
}
/* Responsividade do header */
@media (max-width: 768px) {
  .header-content {
    padding: 10px 15px;
  }

  .app-title {
    font-size: 18px;
  }

  .app-subtitle {
    font-size: 12px;
  }

  .header-right {
    gap: 12px;
  }
}
@media (max-width: 480px) {
  .header-content {
    padding: 8px 12px;
  }

  .app-title {
    font-size: 16px;
  }

  .app-subtitle {
    display: none; /* Ocultar subtítulo em telas muito pequenas */
  }

  .header-right {
    gap: 8px;
  }
}
@media (max-width: 480px) {
  .main-content {
    flex: 1;
    min-height: 0;
    height: auto;
  }

  .contact-item {
    padding: 14px 15px;
  }

  .contact-avatar {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .chat-header {
    padding: 10px 15px;
  }

  .chat-messages {
    padding: 15px;
  }

  .chat-input {
    padding: 15px;
  }

  .message-content {
    max-width: 85%;
    white-space: pre-wrap;
  }
}
/* Auto-split from App.css — Contact info side panel (prices, weather, etc.) */
/* Contact Info Panel */
.contact-info-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 350px;
  height: 100%;
  background-color: var(--sidebar-bg);
  border-left: 1px solid var(--border);
  z-index: 100;
  box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.contact-info-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  background-color: var(--whatsapp-header-bg);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  gap: 10px;
}
.contact-info-header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  flex: 1;
  text-align: center;
}
.close-panel-btn.back-btn {
  order: -1;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.send-prices-carousel-btn {
  padding: 8px 14px;
  background-color: var(--whatsapp-green);
  border: none;
  border-radius: 6px;
  color: white;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.send-prices-carousel-btn:hover:not(:disabled) {
  background-color: var(--primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--whatsapp-green) 5%);
}
.send-prices-carousel-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}
.send-prices-carousel-btn .fa-spinner {
  animation: spin 1s linear infinite;
}
.refresh-prices-btn {
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 18px;
  cursor: pointer;
  padding: 8px;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.refresh-prices-btn:hover:not(:disabled) {
  background-color: var(--background);
  color: var(--whatsapp-green);
}
.refresh-prices-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.refresh-prices-btn .spinning {
  animation: spin 1s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.close-panel-btn {
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 20px;
  cursor: pointer;
  padding: 8px;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  flex-shrink: 0;
}
.close-panel-btn:hover {
  background-color: var(--background);
}
.contact-info-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}
.prices-modal-content {
  padding: 0;
  color: var(--text);
}
.prices-header {
  padding: 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
.prices-summary h3 {
  margin: 0 0 8px 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
}
.prices-count {
  margin: 0 0 8px 0;
  font-size: 14px;
  color: var(--text-muted);
}
.prices-total-info {
  font-size: 12px;
  opacity: 0.7;
}
.prices-last-updated {
  margin: 0;
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.prices-last-updated i {
  font-size: 11px;
}
.prices-errors-section {
  margin: 0 20px 20px 20px;
  padding: 16px;
  background-color: var(--background);
  border: 1px solid #ff9800;
  border-radius: 8px;
  border-left: 4px solid #ff9800;
}
.prices-errors-title {
  margin: 0 0 12px 0;
  font-size: 14px;
  font-weight: 600;
  color: #ff9800;
  display: flex;
  align-items: center;
  gap: 8px;
}
.prices-errors-title i {
  font-size: 16px;
}
.prices-errors-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.price-error-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background-color: rgba(255, 152, 0, 0.1);
  border-radius: 6px;
  font-size: 13px;
}
.price-error-item i {
  color: #ff9800;
  font-size: 14px;
}
.error-trading {
  font-weight: 600;
  color: var(--text);
  min-width: 80px;
}
.error-message {
  color: var(--text-muted);
  flex: 1;
}
.no-valid-prices {
  padding: 60px 20px;
  text-align: center;
  color: var(--text-muted);
}
.no-valid-prices i {
  font-size: 48px;
  margin-bottom: 16px;
  opacity: 0.5;
  color: #ff9800;
}
.no-valid-prices p {
  margin: 0;
  font-size: 16px;
}
.prices-list {
  padding: 0 20px 20px 20px;
}
.price-group {
  margin-bottom: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--sidebar-bg);
  transition: all 0.2s ease;
}
.price-group:hover {
  border-color: var(--whatsapp-green);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.price-group-header {
  width: 100%;
  padding: 16px 20px;
  background-color: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background-color 0.2s ease;
  text-align: left;
}
.price-group-header:hover {
  background-color: var(--background);
}
.price-group-title {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}
.price-group-title i {
  font-size: 12px;
  color: var(--text-muted);
  transition: transform 0.2s ease;
}
.price-group-label {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.price-group-count {
  font-size: 14px;
  color: var(--text-muted);
  font-weight: normal;
}
.price-group-content {
  padding: 0 20px 16px 20px;
  border-top: 1px solid var(--border);
  background-color: var(--background);
}
.price-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.price-item:last-child {
  border-bottom: none;
}
.price-item-select-row {
  margin-bottom: 10px;
}
.price-item-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text);
  user-select: none;
}
.price-item-checkbox-label:has(.price-item-checkbox:disabled) {
  cursor: not-allowed;
  opacity: 0.6;
}
.price-item-checkbox {
  width: 20px;
  height: 20px;
  accent-color: var(--whatsapp-green);
  cursor: pointer;
}
.price-item-checkbox:disabled {
  cursor: not-allowed;
}
.price-item-checkbox-tick {
  display: inline-block;
  min-width: 20px;
  font-weight: bold;
  color: var(--whatsapp-green);
}
.price-item-header {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.price-trading,
.price-warehouse,
.price-freight {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text);
}
.price-trading i,
.price-warehouse i,
.price-freight i {
  color: var(--whatsapp-green);
  font-size: 12px;
}
.price-freight {
  background-color: color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
  padding: 4px 8px;
  border-radius: 4px;
  font-weight: 600;
}
.price-values {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 12px;
}
.price-value {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.price-label {
  font-size: 12px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.price-amount {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
}
.price-brl {
  color: var(--whatsapp-green);
}
.price-usd {
  color: #007bff;
}
.price-item-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.price-details-toggle {
  flex: 1;
  min-width: 120px;
  padding: 8px 12px;
  background-color: transparent;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.price-details-toggle:hover {
  background-color: var(--background);
  border-color: var(--whatsapp-green);
}
.price-details-toggle i {
  font-size: 11px;
  transition: transform 0.2s ease;
}
.price-send-btn {
  flex: 1;
  min-width: 140px;
  padding: 10px 16px;
  background-color: var(--whatsapp-green);
  border: none;
  border-radius: 6px;
  color: white;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.price-send-btn:hover:not(:disabled) {
  background-color: var(--primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px
    color-mix(in srgb, var(--whatsapp-green) 5%, transparent);
}
.price-send-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.price-send-btn i {
  font-size: 12px;
}
.price-send-btn .fa-spinner {
  animation: spin 1s linear infinite;
}
.price-additional-info {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 8px;
  animation: slideDown 0.2s ease;
}
@keyframes slideDown {
  from {
    opacity: 0;
    max-height: 0;
  }
  to {
    opacity: 1;
    max-height: 500px;
  }
}
.price-extra-field {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  padding: 6px 0;
}
.price-extra-field i {
  color: var(--whatsapp-green);
  font-size: 12px;
  width: 16px;
  text-align: center;
}
.price-extra-label {
  color: var(--text-muted);
  font-weight: 500;
  min-width: 100px;
}
.price-extra-value {
  color: var(--text);
  font-weight: 600;
  flex: 1;
  text-align: right;
}
.no-prices {
  padding: 60px 20px;
  text-align: center;
  color: var(--text-muted);
}
.no-prices i {
  font-size: 48px;
  margin-bottom: 16px;
  opacity: 0.5;
}
.no-prices p {
  margin: 0;
  font-size: 16px;
}
/* Tema claro para preços */
.light-theme .price-group {
  background-color: #ffffff;
  border-color: #e0e0e0;
}
.light-theme .price-group:hover {
  border-color: var(--primary-color);
  box-shadow: 0 2px 8px
    color-mix(in srgb, var(--whatsapp-green) 15%, transparent);
}
.light-theme .price-group-header:hover {
  background-color: #f5f5f5;
}
.light-theme .price-group-content {
  background-color: #fafafa;
}
.light-theme .price-item {
  border-bottom-color: #e0e0e0;
}
.light-theme .price-additional-info {
  border-top-color: #e0e0e0;
}
.contact-info-avatar-section {
  text-align: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.contact-info-avatar-large {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background-color: var(--background);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px;
  border: 3px solid var(--border);
  overflow: hidden;
}
.contact-info-avatar-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-info-avatar-large i {
  font-size: 48px;
  color: var(--text);
  opacity: 0.7;
}
.contact-info-name {
  margin: 0 0 8px 0;
  font-size: 24px;
  font-weight: 600;
  color: var(--text);
}
.contact-info-phone {
  margin: 0;
  font-size: 14px;
  color: var(--text);
  opacity: 0.7;
}
.contact-info-badges-section {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.info-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
}
.info-badge.online {
  background-color: var(--online-color);
  color: white;
}
.info-badge.admin {
  background-color: var(--admin-color);
  color: #000;
}
.light-theme .info-badge.admin {
  background-color: #ffd700;
  color: #1a1a1a;
  font-weight: 600;
  box-shadow: 0 2px 4px rgba(255, 215, 0, 0.3);
}
.info-badge.frozen {
  background-color: var(--frozen-color);
  color: white;
}
.info-badge.optin {
  background-color: var(--optin-color, #358a78);
  color: white;
}
.info-badge.blacklist {
  background-color: var(--blacklist-color, #6b7280);
  color: white;
}
.info-badge.urgent {
  background-color: var(--urgent-color);
  color: white;
}
.contact-info-details {
  margin-bottom: 20px;
}
.info-item {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.info-item:last-child {
  border-bottom: none;
}
.info-item-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.info-item-value {
  font-size: 14px;
  color: var(--text);
  font-weight: 500;
}
.info-item-value-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.info-item-value-wrap .info-item-value {
  flex: 1;
  min-width: 0;
}
.info-item-edit-btn {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  opacity: 0.5;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition:
    opacity 0.15s ease,
    background-color 0.15s ease;
}
.info-item-edit-btn:hover {
  opacity: 0.9;
  background-color: var(--background);
}
.info-item-best-name-edit {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.info-item-best-name-input {
  width: 100%;
  padding: 8px 12px;
  font-size: 14px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--background);
  color: var(--text);
}
.info-item-best-name-input:focus {
  outline: none;
  border-color: var(--primary-color);
}
.info-item-best-name-actions {
  display: flex;
  gap: 8px;
}
.info-item-best-name-btn {
  padding: 6px 12px;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  border: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  color: var(--text);
}
.info-item-best-name-btn.save {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.info-item-best-name-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.contact-info-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.contact-info-actions .action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 20px;
  border: 2px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.light-theme .contact-info-actions .action-btn {
  border-color: #8b9dc3;
  color: #1a1a1a;
  background-color: #f8f9fa;
}
.contact-info-actions .action-btn:hover {
  background-color: var(--background);
}
.light-theme .contact-info-actions .action-btn:hover {
  background-color: #e9ecef;
}
.contact-info-actions .action-btn.active {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.light-theme .contact-info-actions .action-btn.active {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.loading-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
}
.loading-info .loading-spinner {
  font-size: 32px;
  margin-bottom: 15px;
  animation: spin 1s linear infinite;
}
.chat-window:not(.panel-open) .chat-window-content {
  margin-right: 0 !important;
  width: 100%;
}
.chat-window-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  transition: margin-right 0.3s ease;
  overflow: hidden;
}
.chat-window.panel-open .chat-window-content {
  margin-right: 350px;
}
/* Modais de Preço */
.price-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  animation: fadeIn 0.2s ease;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.price-modal {
  background-color: var(--sidebar-bg);
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  width: 90%;
  max-width: 500px;
  max-height: 90vh;
  overflow-y: auto;
  animation: slideUp 0.3s ease;
  border: 1px solid var(--border);
}
@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.price-modal-expired {
  max-width: 450px;
}
.price-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}
.price-modal-header h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
}
.price-modal-close {
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 20px;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
}
.price-modal-close:hover {
  background-color: var(--background);
}
.price-modal-content {
  padding: 24px;
}
.price-modal-question {
  font-size: 16px;
  color: var(--text);
  margin: 0 0 20px 0;
  line-height: 1.5;
}
.price-modal-preview {
  background-color: var(--background);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 20px;
  border: 1px solid var(--border);
}
.price-preview-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.price-preview-item:last-child {
  border-bottom: none;
}
.price-preview-label {
  font-size: 14px;
  color: var(--text-muted);
  font-weight: 500;
}
.price-preview-value {
  font-size: 14px;
  color: var(--text);
  font-weight: 600;
  text-align: right;
}
.price-preview-value.price-highlight {
  color: var(--whatsapp-green);
  font-size: 16px;
}
.price-modal-timer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  background-color: color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
  border-radius: 8px;
  border: 1px solid var(--whatsapp-green);
  margin-top: 16px;
}
.price-modal-timer i {
  color: var(--whatsapp-green);
  font-size: 18px;
}
.price-modal-timer span {
  font-size: 14px;
  color: var(--text);
}
.price-modal-timer .timer-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--whatsapp-green);
  font-family: "Courier New", monospace;
}
.price-expired-icon {
  text-align: center;
  margin-bottom: 20px;
}
.price-expired-icon i {
  font-size: 64px;
  color: #ff9800;
}
.price-modal-message {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  text-align: center;
  margin: 0 0 12px 0;
}
.price-modal-submessage {
  font-size: 14px;
  color: var(--text-muted);
  text-align: center;
  margin: 0;
  line-height: 1.5;
}
.price-modal-actions {
  display: flex;
  gap: 12px;
  padding: 20px 24px;
  border-top: 1px solid var(--border);
}
.price-modal-btn {
  flex: 1;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.price-modal-btn-primary {
  background-color: var(--whatsapp-green);
  color: white;
}
.price-modal-btn-primary:hover:not(:disabled) {
  background-color: var(--primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px
    color-mix(in srgb, var(--whatsapp-green) 30%, transparent);
}
.price-modal-btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.price-modal-btn-secondary {
  background-color: transparent;
  color: var(--text);
  border: 1px solid var(--border);
}
.price-modal-btn-secondary:hover {
  background-color: var(--background);
  border-color: var(--whatsapp-green);
}
/* Tema claro para modais */
.light-theme .price-modal {
  background-color: #ffffff;
  border-color: #e0e0e0;
}
.light-theme .price-modal-preview {
  background-color: #f5f5f5;
  border-color: #e0e0e0;
}
.light-theme .price-modal-timer {
  background-color: color-mix(in srgb, var(--whatsapp-green) 15%, transparent);
}
/* Modal de Clima */
.weather-modal-content {
  padding: 0;
  color: var(--text);
}
.weather-search-section {
  padding: 20px;
  border-bottom: 1px solid var(--border);
  background-color: var(--whatsapp-header-bg);
}
.weather-search-container {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}
.weather-search-icon {
  position: absolute;
  left: 12px;
  color: var(--text-muted);
  font-size: 14px;
  pointer-events: none;
}
.weather-search-input {
  flex: 1;
  padding: 10px 12px 10px 36px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
  transition: all 0.2s ease;
}
.weather-search-input:focus {
  outline: none;
  border-color: var(--whatsapp-green);
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
}
.weather-search-btn,
.weather-clear-btn {
  padding: 10px 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--whatsapp-green);
  color: white;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.weather-search-btn:hover {
  background-color: var(--primary-dark);
  transform: translateY(-1px);
}
.weather-clear-btn {
  background-color: transparent;
  color: var(--text);
  padding: 10px 12px;
}
.weather-clear-btn:hover {
  background-color: var(--background);
  color: var(--text);
}
.weather-header {
  padding: 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
.weather-summary h3 {
  margin: 0 0 8px 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
}
.weather-last-updated {
  margin: 0;
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.weather-last-updated i {
  font-size: 11px;
}
.weather-data {
  padding: 0 20px 20px 20px;
}
.weather-item {
  padding: 16px;
  margin-bottom: 12px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: all 0.2s ease;
}
.weather-item:hover {
  border-color: var(--whatsapp-green);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.weather-item-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.weather-item-label i {
  color: var(--whatsapp-green);
  font-size: 12px;
}
.weather-item-value {
  font-size: 15px;
  color: var(--text);
  font-weight: 500;
  word-break: break-word;
}
.no-weather {
  padding: 60px 20px;
  text-align: center;
  color: var(--text-muted);
}
.no-weather i {
  font-size: 48px;
  margin-bottom: 16px;
  opacity: 0.5;
}
.no-weather p {
  margin: 0;
  font-size: 16px;
}
/* Tema claro para clima */
.light-theme .weather-search-input {
  background-color: #ffffff;
  border-color: #e0e0e0;
}
.light-theme .weather-item {
  background-color: #fafafa;
  border-color: #e0e0e0;
}
.light-theme .weather-item:hover {
  border-color: var(--primary-color);
  box-shadow: 0 2px 8px
    color-mix(in srgb, var(--whatsapp-green) 15%, transparent);
}
.weather-city-section {
  padding: 0 20px 16px 20px;
}
.weather-city {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.weather-city i {
  color: var(--whatsapp-green);
  font-size: 20px;
}
.weather-message-section {
  padding: 0 20px 20px 20px;
}
.weather-message {
  padding: 20px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
  white-space: pre-wrap;
  word-wrap: break-word;
  min-height: 100px;
}
.weather-actions {
  display: flex;
  gap: 12px;
  padding: 0 20px 20px 20px;
}
.weather-action-btn {
  flex: 1;
  padding: 12px 20px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.weather-edit-btn {
  background-color: transparent;
  color: var(--text);
  border: 2px solid var(--border);
}
.weather-edit-btn:hover {
  background-color: var(--background);
  border-color: var(--whatsapp-green);
  color: var(--whatsapp-green);
}
.weather-send-btn {
  background-color: var(--whatsapp-green);
  color: white;
}
.weather-send-btn:hover:not(:disabled) {
  background-color: var(--primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px
    color-mix(in srgb, var(--whatsapp-green) 30%, transparent);
}
.weather-send-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.weather-edit-section {
  margin-bottom: 16px;
}
.weather-edit-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.weather-edit-textarea {
  width: 100%;
  min-height: 200px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  line-height: 1.5;
  resize: vertical;
  transition: border-color 0.2s ease;
}
.weather-edit-textarea:focus {
  outline: none;
  border-color: var(--whatsapp-green);
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--whatsapp-green) 10%, transparent);
}
.light-theme .weather-city {
  background-color: #fafafa;
  border-color: #e0e0e0;
}
.light-theme .weather-message {
  background-color: #fafafa;
  border-color: #e0e0e0;
}
.light-theme .weather-edit-textarea {
  background-color: #ffffff;
  border-color: #e0e0e0;
}
/* Auto-split from App.css — Sidebar nav tabs (Contatos | Query) */
/* ===== Sidebar nav tabs (Contatos | Query) ===== */
.sidebar-nav-tabs {
  display: flex;
  padding: 12px 16px;
  gap: 8px;
  background-color: var(--sidebar-bg);
  border-bottom: 1px solid var(--border);
}
.sidebar-nav-tab {
  flex: 1;
  padding: 10px 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.sidebar-nav-tab:hover {
  background-color: var(--border);
}
.sidebar-nav-tab.active {
  background-color: var(--message-sent);
  color: var(--text);
  border-color: var(--message-sent);
}
.light-theme .sidebar-nav-tab.active {
  background-color: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.sidebar-query-placeholder {
  padding: 20px 16px;
  color: var(--text);
  opacity: 0.8;
  font-size: 14px;
}
/* Auto-split from App.css — Query builder page */
/* ===== Query builder page ===== */
.query-builder-page {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background-color: var(--whatsapp-header-bg);
}
.query-page-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.query-page-title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
}
.query-page-section {
  padding: 16px 20px;
  flex-shrink: 0;
}
.query-page-builder-section {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}
.query-text-block {
  padding: 16px 20px;
  background-color: var(--sidebar-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.query-text-content {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--text);
}
.query-builder {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.query-empty {
  padding: 24px;
  text-align: center;
  background-color: var(--background);
  border: 2px dashed var(--border);
  border-radius: 8px;
}
.query-empty-text {
  margin: 0 0 16px 0;
  color: var(--text);
  opacity: 0.8;
  font-size: 14px;
}
.query-add-main-btn {
  margin: 0 auto;
}
.query-clauses-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.query-builder-actions {
  padding-top: 8px;
}
.query-add-dropdown {
  position: relative;
  display: inline-block;
}
.query-add-btn,
.query-add-main-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.query-add-overlay {
  position: fixed;
  inset: 0;
  z-index: 10;
}
.query-add-menu {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 6px;
  padding: 8px 0;
  min-width: 200px;
  background-color: var(--sidebar-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow);
  z-index: 20;
}
.query-add-menu-root {
  min-width: 220px;
}
.query-add-menu-item {
  display: block;
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: none;
  color: var(--text);
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.2s;
}
.query-add-menu-item:hover {
  background-color: var(--background);
}
.query-clause-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.query-clause-nested {
  margin-left: 0;
}
.query-clause-card {
  padding: 12px 16px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.query-criteria-editor {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.query-criteria-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
}
.query-criteria-select {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 13px;
  min-width: 100px;
}
.query-criteria-input {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 13px;
  width: 80px;
}
.query-criteria-unit {
  min-width: 90px;
}
.query-remove-btn {
  margin-left: auto;
  padding: 6px 10px;
  border: none;
  border-radius: 6px;
  background-color: transparent;
  color: var(--text);
  opacity: 0.7;
  cursor: pointer;
  transition: opacity 0.2s, background-color 0.2s;
}
.query-remove-btn:hover {
  opacity: 1;
  background-color: var(--border);
}
.query-connector {
  display: flex;
  gap: 6px;
  padding: 4px 0;
}
.query-group-row .query-clause-card {
  margin-left: 0;
}
.query-group-card {
  padding: 16px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  border-left: 4px solid var(--primary-color);
}
.query-group-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.query-group-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.query-group-logic {
  display: flex;
  gap: 6px;
}
.query-group-clauses {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}
.query-group-actions {
  padding-top: 8px;
}
.query-page-footer {
  padding: 16px 20px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
/* Auto-split from App.css — Template creator page */
/* ===== Template creator page ===== */
.template-creator-page {
  padding-bottom: 32px;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
}
.template-creator-layout {
  display: flex;
  flex: 1;
  min-height: 0;
  gap: 0;
}
.template-creator-form {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
}
.template-creator-preview-column {
  width: 320px;
  flex-shrink: 0;
  border-left: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  overflow-y: auto;
  position: sticky;
  top: 0;
  align-self: flex-start;
  max-height: 100vh;
}
.template-preview-section {
  padding: 16px;
}
.template-creator-page .query-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.template-creator-actions {
  display: flex;
  gap: 10px;
}
.template-section-title {
  margin: 0 0 12px 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.template-form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-start;
}
.template-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
}
.template-field label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}
.template-field input[type="text"],
.template-field input[type="number"],
.template-field select,
.template-field textarea {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
}
.template-field-wide {
  min-width: 100%;
}
.template-field-checkbox {
  flex-direction: row;
  align-items: center;
}
.template-field-checkbox label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.template-field-error {
  font-size: 12px;
  color: var(--urgent-color, #c62828);
}
.template-field input.input-error {
  border-color: var(--urgent-color, #c62828);
}
.template-media-upload {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  min-height: 56px;
}
.template-media-upload.uploading {
  opacity: 0.82;
}
.template-media-upload.success {
  border-color: #2e7d32;
}
.template-media-upload.error {
  border-color: var(--urgent-color, #c62828);
}
.template-media-upload-icon {
  color: var(--text-muted);
  flex-shrink: 0;
}
.template-media-upload-info {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}
.template-media-upload-info strong,
.template-media-upload-info span,
.template-media-id {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.template-media-upload-info strong {
  font-size: 13px;
  color: var(--text);
}
.template-media-upload-info span,
.template-media-id {
  font-size: 12px;
  color: var(--text-muted);
}
.template-media-file-input {
  display: none;
}
.template-media-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.template-char-count {
  font-size: 12px;
  color: var(--text-muted);
}
.template-examples {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.template-examples > label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}
.template-example-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.template-example-row span {
  min-width: 60px;
  font-size: 13px;
  color: var(--text-muted);
}
.template-example-row input {
  flex: 1;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 13px;
}
.template-buttons-section {
  margin-bottom: 24px;
}
.template-button-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.template-button-row select {
  min-width: 140px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 13px;
}
.template-button-row input {
  flex: 1;
  min-width: 120px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 13px;
}
.template-submit-success {
  padding: 12px 16px;
  background-color: rgba(46, 125, 50, 0.15);
  border: 1px solid #2e7d32;
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
}
.template-submit-error {
  padding: 12px 16px;
  background-color: rgba(198, 40, 40, 0.1);
  border: 1px solid #c62828;
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
}
.template-preview-block {
  padding: 16px;
}
.template-preview-header {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 8px;
  color: var(--text);
}
.template-preview-body {
  margin: 0 0 8px 0;
  white-space: pre-wrap;
  word-break: break-word;
}
.template-preview-footer {
  margin: 0 0 10px 0;
  font-size: 13px;
  color: var(--text-muted);
}
.template-preview-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.template-preview-btn {
  padding: 6px 12px;
  background-color: var(--primary-color);
  color: #fff;
  border-radius: 6px;
  font-size: 13px;
}
@media (max-width: 720px) {
  .template-media-upload {
    align-items: stretch;
    flex-direction: column;
  }

  .template-media-action {
    justify-content: center;
  }
}
/* Auto-split from App.css — Campaigns / conversions page */
/* ===== Campaigns / Conversões page ===== */
.campaigns-page {
  overflow-y: auto;
}
.campaigns-filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
}
.campaigns-date-filter,
.campaigns-category-filter,
.campaigns-search {
  display: flex;
  align-items: center;
  gap: 8px;
}
.campaigns-filter-icon,
.campaigns-search-icon {
  color: var(--text-muted);
  flex-shrink: 0;
}
.campaigns-filter-label {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.campaigns-input,
.campaigns-select {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
}
.campaigns-input:focus,
.campaigns-select:focus {
  outline: none;
  border-color: var(--whatsapp-green);
}
.campaigns-search-input {
  min-width: 220px;
}
.campaigns-select {
  min-width: 160px;
  cursor: pointer;
}
.campaigns-error {
  padding: 12px 16px;
  background-color: rgba(220, 53, 69, 0.15);
  border: 1px solid rgba(220, 53, 69, 0.4);
  border-radius: 8px;
  color: var(--text);
}
.campaigns-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}
.campaigns-kpi-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.campaigns-kpi-icon {
  flex-shrink: 0;
}
.campaigns-kpi-icon.sent {
  color: var(--whatsapp-green);
}
.campaigns-kpi-icon.failed {
  color: #dc3545;
}
.campaigns-kpi-icon.conversions {
  color: var(--whatsapp-green-dark);
}
.campaigns-kpi-value {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: var(--text);
}
.campaigns-kpi-label {
  font-size: 13px;
  color: var(--text-muted);
}
.campaigns-table-wrapper {
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--sidebar-bg);
}
.campaigns-loading {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-muted);
}
.campaigns-spinner {
  width: 32px;
  height: 32px;
  margin: 0 auto 12px;
  border: 3px solid var(--border);
  border-top-color: var(--whatsapp-green);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.campaigns-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.campaigns-table th,
.campaigns-table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.campaigns-table th {
  background-color: var(--background);
  font-weight: 600;
  color: var(--text);
}
.campaigns-table tbody tr:last-child td {
  border-bottom: none;
}
.campaigns-table-row-clickable {
  cursor: pointer;
  transition: background-color 0.15s;
}
.campaigns-table-row-clickable:hover {
  background-color: var(--background);
}
.campaigns-table-empty {
  text-align: center;
  padding: 24px;
  color: var(--text-muted);
}
.campaigns-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  background-color: var(--background);
}
.campaigns-pagination-info {
  font-size: 13px;
  color: var(--text-muted);
}
.campaigns-pagination-buttons {
  display: flex;
  gap: 8px;
}
.campaigns-pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s;
}
.campaigns-pagination-btn:hover:not(:disabled) {
  background-color: var(--background);
  border-color: var(--whatsapp-green);
}
.campaigns-pagination-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.campaigns-chart-section {
  flex-shrink: 0;
}
.campaigns-chart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}
.campaigns-chart-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.campaigns-export-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s;
}
.campaigns-export-btn:hover:not(:disabled) {
  border-color: var(--whatsapp-green);
  background-color: color-mix(in srgb, var(--whatsapp-green) 8%, transparent);
}
.campaigns-export-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.campaigns-chart-container {
  min-height: 400px;
  padding: 16px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.campaigns-chart-empty {
  margin: 0;
  padding: 40px 20px;
  text-align: center;
  color: var(--text-muted);
}
.campaigns-chart-grid {
  stroke: var(--border);
}
.campaigns-chart-label-inside {
  fill: #fff;
  font-size: 14px;
  font-weight: 600;
}
.campaigns-chart-label-total {
  fill: var(--text);
  font-size: 14px;
  font-weight: 600;
}
/* Modal texto enviado */
.campaigns-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.campaigns-modal {
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  background-color: var(--sidebar-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-dark);
}
.campaigns-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}
.campaigns-modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.campaigns-modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  transition: background-color 0.2s;
}
.campaigns-modal-close:hover {
  background-color: var(--background);
}
.campaigns-modal-meta {
  margin: 0;
  padding: 12px 20px;
  font-size: 13px;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border);
}
.campaigns-modal-body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.campaigns-modal-subtitle {
  margin: 0 0 8px 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.campaigns-modal-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text);
  white-space: pre-wrap;
  word-break: break-word;
}
/* Engagement tracking (operações) */
.engagement-page {
  overflow-y: auto;
}
.engagement-filters {
  padding-bottom: 12px;
}
.engagement-filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
}
.engagement-filter-block {
  display: flex;
  align-items: center;
  gap: 8px;
}
.engagement-template-search {
  min-width: 280px;
}
.engagement-filter-grow {
  min-width: 220px;
}
.engagement-filter-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  color: var(--text-muted);
}
.engagement-filter-icon {
  color: var(--text-muted);
  flex-shrink: 0;
}
.engagement-input,
.engagement-select {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  font-size: 14px;
  min-width: 140px;
}
.engagement-input:focus,
.engagement-select:focus {
  outline: none;
  border-color: var(--whatsapp-green);
}
.engagement-select {
  cursor: pointer;
}
.engagement-apply-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  height: 38px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--background);
  color: var(--text);
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
}
.engagement-apply-btn:hover:not(:disabled) {
  border-color: var(--whatsapp-green);
  background-color: rgba(37, 211, 102, 0.08);
}
.engagement-apply-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.engagement-error {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background-color: rgba(220, 53, 69, 0.15);
  border: 1px solid rgba(220, 53, 69, 0.45);
  border-radius: 8px;
  color: var(--text);
}
.engagement-table-section {
  padding-top: 8px;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.engagement-table-wrapper {
  height: 100%;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: auto;
  background-color: var(--sidebar-bg);
}
.engagement-loading {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-muted);
}
.engagement-loading.compact {
  padding: 20px 12px;
}
.engagement-spinner {
  width: 30px;
  height: 30px;
  margin: 0 auto 12px;
  border: 3px solid var(--border);
  border-top-color: var(--whatsapp-green);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.engagement-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.engagement-table th,
.engagement-table td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.engagement-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background-color: var(--background);
  color: var(--text);
  font-weight: 600;
}
.engagement-table tbody tr:last-child td {
  border-bottom: none;
}
.engagement-table-empty {
  text-align: center;
  padding: 24px;
  color: var(--text-muted);
}
.engagement-template-link {
  border: none;
  background: transparent;
  padding: 0;
  color: var(--whatsapp-green-dark);
  cursor: pointer;
  font-weight: 600;
  text-align: left;
}
.engagement-template-link:hover {
  text-decoration: underline;
}
.engagement-table-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  padding: 0 8px;
  color: var(--text);
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease;
}
.engagement-table-action:hover,
.engagement-table-action:focus-visible {
  border-color: color-mix(in srgb, var(--whatsapp-green) 72%, var(--border));
  background-color: color-mix(in srgb, var(--whatsapp-green) 8%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--whatsapp-green) 14%, transparent);
  color: var(--text);
  outline: none;
}
.engagement-modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
}
.engagement-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.engagement-modal {
  position: relative;
  width: min(1100px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  background-color: var(--whatsapp-header-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-dark);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.engagement-preview-modal {
  width: min(900px, calc(100vw - 32px));
}
.engagement-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  background-color: var(--background);
}
.engagement-modal-header h2 {
  margin: 0;
  font-size: 20px;
  color: var(--text);
}
.engagement-modal-header p {
  margin-top: 6px;
  color: var(--text-muted);
  font-size: 13px;
}
.engagement-modal-close {
  border: 1px solid var(--border);
  background: var(--sidebar-bg);
  color: var(--text);
  border-radius: 6px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.engagement-modal-close:hover {
  border-color: var(--whatsapp-green);
}
.engagement-modal-body {
  min-height: 0;
  padding: 16px 18px;
  overflow: auto;
}
.engagement-drill-modal-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 14px;
  padding: 14px 18px 16px;
  overflow: hidden;
}
.engagement-drill-table-shell {
  position: relative;
  isolation: isolate;
  min-height: 0;
  max-height: min(58vh, 620px);
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--text) 8%, transparent),
    0 12px 28px color-mix(in srgb, #000000 16%, transparent);
}
.engagement-drill-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 860px;
}
.engagement-drill-table th,
.engagement-drill-table td {
  padding: 10px 12px;
}
.engagement-drill-table th {
  top: 0;
  z-index: 5;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--background) 96%, var(--whatsapp-green) 4%),
      var(--background)
    );
  box-shadow:
    0 1px 0 var(--border),
    0 12px 18px -16px color-mix(in srgb, #000000 55%, transparent);
  background-clip: padding-box;
}
.engagement-drill-table tbody td {
  background-color: var(--sidebar-bg);
}
.engagement-drill-table tbody tr:hover td {
  background-color: color-mix(in srgb, var(--whatsapp-green) 7%, var(--sidebar-bg));
}
.engagement-drill-table th:first-child {
  border-top-left-radius: 7px;
}
.engagement-drill-table th:last-child {
  border-top-right-radius: 7px;
}
.engagement-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.engagement-pagination span {
  color: var(--text-muted);
  font-size: 13px;
}
.engagement-pagination-buttons {
  display: flex;
  gap: 8px;
}
.engagement-page-btn {
  width: 34px;
  height: 34px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.engagement-page-btn:hover:not(:disabled) {
  border-color: var(--whatsapp-green);
}
.engagement-page-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.engagement-preview-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.engagement-preview-meta p {
  margin: 0;
  color: var(--text);
}
.engagement-preview-message {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--sidebar-bg);
  color: var(--text);
  white-space: pre-wrap;
  line-height: 1.45;
}
.engagement-preview-totals {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}
.engagement-kpi-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  background-color: var(--sidebar-bg);
}
.engagement-kpi-label {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.engagement-kpi-card strong {
  color: var(--text);
  font-size: 18px;
}
@media (max-width: 1024px) {
  .engagement-filter-grow,
  .engagement-template-search {
    min-width: 200px;
  }
}
@media (max-width: 768px) {
  .engagement-table {
    min-width: 760px;
  }

  .engagement-modal {
    width: calc(100vw - 20px);
    max-height: calc(100vh - 20px);
  }
}
/* Auto-split from App.css — Templates list + tabs + media upload + status badges */
/* ===== Templates page (list + create tabs) ===== */
.templates-page {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.templates-tabs {
  display: flex;
  gap: 0;
  padding: 0 20px;
  border-bottom: 1px solid var(--border);
  background-color: var(--background);
  flex-shrink: 0;
}
.templates-tab {
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  margin-bottom: -1px;
  transition: color 0.15s, border-color 0.15s;
}
.templates-tab:hover {
  color: var(--text);
}
.templates-tab.active {
  color: var(--whatsapp-green);
  border-bottom-color: var(--whatsapp-green);
}
.templates-tab-panel {
  flex: 1;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.templates-tab-panel[hidden] {
  display: none;
}
.templates-list-page {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.media-upload-page {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.media-upload-section {
  padding-top: 8px;
}
.media-dropzone {
  border: 2px dashed var(--border);
  border-radius: 14px;
  background-color: color-mix(in srgb, var(--background) 84%, #ffffff 16%);
  min-height: 300px;
  padding: 36px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}
.media-dropzone:hover {
  border-color: var(--whatsapp-green);
}
.media-dropzone.dragging {
  border-color: var(--whatsapp-green);
  background-color: color-mix(in srgb, var(--background) 72%, var(--primary-color) 28%);
  transform: scale(1.005);
}
.media-dropzone.uploading {
  cursor: wait;
  opacity: 0.88;
}
.media-dropzone-icon {
  color: var(--whatsapp-green);
  margin-bottom: 12px;
}
.media-dropzone-title {
  margin: 0 0 8px 0;
  color: var(--text);
  font-size: 22px;
}
.media-dropzone-description {
  margin: 0 0 18px 0;
  color: var(--text-muted);
  max-width: 540px;
  line-height: 1.5;
}
.media-upload-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: none;
  border-radius: 8px;
  background-color: var(--whatsapp-green);
  color: #07140d;
  font-size: 14px;
  font-weight: 600;
  padding: 11px 18px;
  cursor: pointer;
  transition: filter 0.2s ease, transform 0.2s ease;
}
.media-upload-button:hover:not(:disabled) {
  filter: brightness(1.05);
  transform: translateY(-1px);
}
.media-upload-button:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}
.media-dropzone-types {
  margin: 14px 0 0 0;
  color: var(--text-muted);
  font-size: 13px;
}
.media-file-input {
  display: none;
}
.media-upload-result-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 0;
}
.media-upload-file-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--text-muted);
  font-size: 14px;
}
.media-upload-file-info strong {
  color: var(--text);
  font-weight: 600;
}
.media-upload-result-card {
  background: color-mix(in srgb, var(--background) 88%, var(--primary-color) 12%);
  border: 1px solid color-mix(in srgb, var(--whatsapp-green) 44%, var(--border) 56%);
  border-radius: 10px;
  padding: 14px 16px;
}
.media-upload-result-label {
  margin: 0 0 6px 0;
  color: var(--text-muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.media-upload-result-id {
  color: var(--text);
  font-size: 14px;
  word-break: break-all;
}
.media-upload-result-meta {
  margin: 10px 0 0 0;
  color: var(--text-muted);
  font-size: 13px;
}
/* Status badges for template list */
.template-status-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
}
.template-status-approved {
  background-color: color-mix(in srgb, var(--whatsapp-green) 20%, transparent);
  color: var(--whatsapp-green-dark, #1e7e34);
}
.template-status-pending {
  background-color: rgba(245, 158, 11, 0.25);
  color: #b45309;
}
.template-status-rejected {
  background-color: rgba(220, 53, 69, 0.2);
  color: #dc3545;
}
/* Auto-split from App.css — Flows builder pages */
/* ===== Flows page ===== */
.flows-page {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background-color: var(--whatsapp-header-bg);
}
.flows-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.flows-tab {
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 500;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--text);
  opacity: 0.8;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s, opacity 0.2s;
}
.flows-tab:hover {
  color: var(--text);
  opacity: 1;
}
.flows-tab.active {
  color: var(--whatsapp-green);
  border-bottom-color: var(--whatsapp-green);
  opacity: 1;
}
.flows-tab-panel {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.flows-tab-panel[hidden] {
  display: none;
}
.flows-editor-panel {
  min-height: 0;
}
.flow-builder-loading {
  align-items: center;
  justify-content: center;
  color: var(--text);
}
.flow-list-loading {
  margin: 0;
  color: var(--text);
  opacity: 0.8;
}
/* Flow list */
.flow-list {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.flow-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.flow-list-title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
}
.flow-list-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}
.flow-list-empty {
  text-align: center;
  padding: 48px 24px;
  background-color: var(--background);
  border: 2px dashed var(--border);
  border-radius: 8px;
}
.flow-list-empty p {
  margin: 0 0 8px 0;
  color: var(--text);
}
.flow-list-empty-hint {
  font-size: 13px;
  opacity: 0.8;
  margin-bottom: 20px !important;
}
.flow-list-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.flow-list-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.flow-list-card-name {
  margin: 0 0 4px 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.flow-list-card-meta {
  font-size: 13px;
  color: var(--text);
  opacity: 0.7;
}
/* Flow builder */
.flow-builder-page {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.flow-builder-sidebar {
  width: 220px;
  flex-shrink: 0;
  border-right: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  padding: 16px;
  overflow-y: auto;
}
.flow-canvas-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  position: relative;
}
.flow-builder-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  background-color: var(--whatsapp-header-bg);
  flex-shrink: 0;
}
.flow-name-input {
  font-size: 16px;
  font-weight: 600;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 6px 10px;
  background: transparent;
  color: var(--text);
  min-width: 200px;
}
.flow-name-input:focus {
  outline: none;
  border-color: var(--primary-color);
}
.flow-builder-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.flow-react-flow {
  flex: 1;
  min-height: 0;
  background-color: var(--background);
}
.flow-react-flow .react-flow__background {
  background-color: var(--background);
}
.flow-react-flow .react-flow__controls {
  box-shadow: var(--shadow);
  border-radius: 8px;
  overflow: hidden;
}
.flow-react-flow .react-flow__controls button {
  background-color: var(--sidebar-bg);
  color: var(--text);
  border-color: var(--border);
}
.flow-react-flow .react-flow__controls button:hover {
  background-color: var(--background);
}
.flow-react-flow .react-flow__minimap {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
/* Flow palette */
.flow-palette {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.flow-palette-title {
  margin: 0 0 4px 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  opacity: 0.9;
}
.flow-palette-hint {
  margin: 0 0 12px 0;
  font-size: 11px;
  color: var(--text);
  opacity: 0.7;
}
.flow-palette-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.flow-palette-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  cursor: grab;
  transition: background-color 0.2s, border-color 0.2s;
}
.flow-palette-item:hover {
  background-color: var(--sidebar-bg);
  border-color: var(--primary-color);
}
.flow-palette-item:active {
  cursor: grabbing;
}
.flow-palette-item i {
  width: 18px;
  text-align: center;
  opacity: 0.9;
}
/* Flow nodes */
.flow-node {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  min-width: 180px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--sidebar-bg);
  box-shadow: var(--shadow);
}
.flow-node-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  flex-shrink: 0;
}
.flow-node-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.flow-node-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.flow-node-summary {
  font-size: 12px;
  color: var(--text);
  opacity: 0.8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.flow-node-trigger .flow-node-icon {
  background-color: rgba(245, 158, 11, 0.2);
  color: #f59e0b;
}
.flow-node-audience .flow-node-icon {
  background-color: rgba(59, 130, 246, 0.2);
  color: #3b82f6;
}
.flow-node-condition .flow-node-icon {
  background-color: rgba(139, 92, 246, 0.2);
  color: #8b5cf6;
}
.flow-node-action .flow-node-icon {
  background-color: color-mix(in srgb, var(--whatsapp-green) 20%, transparent);
  color: var(--whatsapp-green);
}
.flow-node-wait .flow-node-icon {
  background-color: rgba(107, 114, 128, 0.2);
  color: #6b7280;
}
.flow-node-end .flow-node-icon {
  background-color: rgba(239, 68, 68, 0.2);
  color: #ef4444;
}
.flow-handle {
  width: 10px;
  height: 10px;
  background-color: var(--primary-color);
  border: 2px solid var(--sidebar-bg);
}
.flow-handle-yes {
  right: -5px;
}
.flow-handle-no {
  right: -5px;
}
/* Flow settings modal */
.flow-settings-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.flow-settings-backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
}
.flow-settings-modal {
  position: relative;
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background-color: var(--sidebar-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-dark);
}
.flow-settings-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.flow-settings-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.flow-settings-close {
  padding: 8px;
  border: none;
  background: none;
  color: var(--text);
  opacity: 0.7;
  cursor: pointer;
  border-radius: 6px;
  transition: opacity 0.2s, background-color 0.2s;
}
.flow-settings-close:hover {
  opacity: 1;
  background-color: var(--background);
}
.flow-settings-body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.flow-settings-field {
  margin-bottom: 16px;
}
.flow-settings-field:last-child {
  margin-bottom: 0;
}
.flow-settings-field > label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}
.flow-settings-input,
.flow-settings-select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 14px;
}
.flow-settings-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--text);
  cursor: pointer;
}
.flow-settings-hint {
  margin: 8px 0 0 0;
  font-size: 12px;
  opacity: 0.8;
  color: var(--text);
}
.flow-settings-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 20px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
/* Flow node config panel (ao clicar no bloco) */
.flow-node-config-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}
.flow-node-config-overlay .flow-node-config-backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
  pointer-events: auto;
}
.flow-node-config-panel {
  position: relative;
  width: 360px;
  max-width: 100%;
  max-height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background-color: var(--sidebar-bg);
  border-left: 1px solid var(--border);
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
  pointer-events: auto;
}
.flow-node-config-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.flow-node-config-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.flow-node-config-body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.flow-node-config-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.flow-node-config-form .flow-settings-field {
  margin-bottom: 16px;
}
.flow-node-config-form .flow-settings-footer {
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.flow-node-config-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.flow-node-config-wait-row {
  display: flex;
  gap: 10px;
  align-items: center;
}
.flow-node-config-wait-row .flow-settings-input {
  width: 80px;
}
.flow-node-config-wait-row .flow-settings-select {
  flex: 1;
}
/* Kanban operacional de eventos das conversas */
.events-page {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background-color: var(--whatsapp-header-bg);
  color: var(--text);
}
/* ===== Header ===== */
.events-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  background-color: var(--whatsapp-header-bg);
  flex-shrink: 0;
}
.events-header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.events-header-title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
}
.events-header-subtitle {
  margin: 4px 0 0 0;
  font-size: 13px;
  opacity: 0.75;
  max-width: 720px;
}
.events-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.events-header-operator {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text);
}
.events-header-operator-chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
}
.events-header-reseed {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
  transition: background-color 0.15s;
}
.events-header-reseed:hover:not(:disabled) {
  background-color: var(--sidebar-bg);
}
.events-header-reseed:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.events-header-reseed .is-spinning {
  animation: events-spin 0.9s linear infinite;
}
@keyframes events-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
/* ===== Estados (loading / erro / vazio) ===== */
.events-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 100%;
  min-height: 200px;
  padding: 32px;
  text-align: center;
  color: var(--text-secondary, var(--text));
  font-size: 14px;
}
.events-state-error {
  color: #ef4444;
}
.events-state-error button {
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--background);
  color: var(--text);
  cursor: pointer;
  font-size: 13px;
}
.events-state-error button:hover {
  background-color: var(--sidebar-bg);
}
.events-header-counts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.events-header-count {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
}
.events-header-count-value {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
}
.events-header-count-total {
  font-size: 12px;
  font-weight: 400;
  opacity: 0.6;
}
.events-header-count-label {
  font-size: 12px;
  opacity: 0.8;
}
.events-count-new {
  border-color: rgba(59, 130, 246, 0.35);
}
.events-count-watching {
  border-color: rgba(139, 92, 246, 0.35);
}
.events-count-handling {
  border-color: color-mix(in srgb, var(--whatsapp-green) 40%, transparent);
}
.events-count-waiting {
  border-color: rgba(245, 158, 11, 0.4);
}
.events-count-done {
  border-color: rgba(107, 114, 128, 0.35);
}
/* ===== Filtros ===== */
.events-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.events-filters-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.events-filters-label {
  font-size: 12px;
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.events-filters-segmented,
.events-filters-types {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}
.events-filters-chip {
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background-color: var(--background);
  color: var(--text);
  font-size: 12.5px;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.events-filters-chip:hover {
  background-color: var(--sidebar-bg);
}
.events-filters-chip.active {
  background-color: var(--primary-color);
  color: #fff;
  border-color: var(--primary-color);
}
.events-filters-chip.toggle.active {
  background-color: var(--whatsapp-green-dark);
  border-color: var(--whatsapp-green-dark);
  color: #fff;
}
.events-filters-group-search {
  margin-left: auto;
}
.events-filters-search {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
}
.events-filters-search input {
  border: none;
  outline: none;
  background: transparent;
  color: var(--text);
  font-size: 13px;
  min-width: 200px;
}
.events-filters-date {
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
  color-scheme: light dark;
}
.events-filters-date:focus {
  outline: 2px solid var(--primary-color);
  outline-offset: 1px;
}
.events-filters-operator-select {
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
}
.events-filters-operator-select:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
/* ===== Board / Colunas ===== */
.events-board-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 16px;
}
.events-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(280px, 1fr));
  gap: 12px;
  min-height: 100%;
}
@media (max-width: 1280px) {
  .events-board {
    grid-template-columns: repeat(5, 300px);
  }
}
.events-column {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background-color: var(--background);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}
.events-column.is-drag-over {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-color) 25%, transparent);
}
.events-column-header {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  background-color: var(--sidebar-bg);
}
.events-column-title-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.events-column-title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
}
.events-column-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background-color: var(--background);
  border: 1px solid var(--border);
  font-size: 12px;
  font-weight: 600;
}
.events-column-description {
  margin: 4px 0 0 0;
  font-size: 11.5px;
  opacity: 0.7;
}
.events-column-cards {
  flex: 1;
  overflow-y: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.events-column-empty {
  font-size: 12.5px;
  opacity: 0.6;
  text-align: center;
  padding: 20px 8px;
  border: 1px dashed var(--border);
  border-radius: 8px;
}
/* Barras de topo por coluna */
.events-column-novos .events-column-header {
  box-shadow: inset 0 3px 0 0 #3b82f6;
}
.events-column-viu_preco .events-column-header {
  box-shadow: inset 0 3px 0 0 #0ea5e9;
}
.events-column-proximo_de_fechar .events-column-header {
  box-shadow: inset 0 3px 0 0 #f59e0b;
}
.events-column-fechou_negocio .events-column-header {
  box-shadow: inset 0 3px 0 0 var(--whatsapp-green);
}
.events-column-finalizados .events-column-header {
  box-shadow: inset 0 3px 0 0 #6b7280;
}
/* ===== Card ===== */
.events-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  background-color: var(--whatsapp-header-bg);
  border: 1px solid var(--border);
  border-left-width: 3px;
  border-radius: 8px;
  cursor: grab;
  transition: border-color 0.15s, background-color 0.15s, transform 0.15s,
    box-shadow 0.15s;
  position: relative;
}
.events-card:hover {
  border-color: var(--primary-color);
  box-shadow: var(--shadow);
}
.events-card.is-dragging {
  opacity: 0.55;
  transform: rotate(1.5deg) scale(0.99);
  cursor: grabbing;
}
.events-card:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 1px;
}
.events-card.sev-low {
  border-left-color: #94a3b8;
}
.events-card.sev-medium {
  border-left-color: #f59e0b;
}
.events-card.sev-high {
  border-left-color: #ef4444;
}
.events-card.is-mine {
  background-color: color-mix(in srgb, var(--primary-color) 8%, var(--whatsapp-header-bg));
}
.events-card.is-unassigned {
  border-top: 1px dashed var(--border);
}
.events-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.events-card-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  position: relative;
}
.events-card-assignee {
  position: relative;
}
.events-card-assignee-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background-color: var(--background);
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s;
}
.events-card-assignee-btn:hover {
  border-color: var(--primary-color);
  transform: translateY(-1px);
}
.events-card-assignee-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}
.events-card-assignee-btn.unassigned .events-card-assignee-avatar {
  background-color: color-mix(in srgb, var(--border) 70%, var(--background));
  color: var(--text);
}
.events-card-conversation-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  opacity: 0.78;
}
.events-card-conversation-btn:hover {
  opacity: 1;
  border-color: var(--border);
  background-color: var(--background);
}
.events-card-assignee-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 220px;
  max-height: 280px;
  overflow: auto;
  z-index: 40;
  border: 1px solid var(--border);
  border-radius: 10px;
  background-color: var(--whatsapp-header-bg);
  box-shadow: var(--shadow-dark);
  padding: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.events-card-assignee-item {
  border: none;
  background: transparent;
  color: var(--text);
  text-align: left;
  font-size: 12.5px;
  border-radius: 6px;
  padding: 8px 10px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.events-card-assignee-item:hover {
  background-color: var(--background);
}
.events-card-assignee-divider {
  height: 1px;
  background-color: var(--border);
  margin: 3px 0;
}
.events-card-producer {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.events-card-producer-name {
  font-weight: 600;
  font-size: 13.5px;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.events-card-producer-phone {
  font-size: 11.5px;
  opacity: 0.7;
}
.events-card-event {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.events-card-event-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 500;
  background-color: rgba(107, 114, 128, 0.18);
  color: #374151;
}
.events-card-event-chip.event-fam-fechou {
  background-color: color-mix(in srgb, var(--whatsapp-green) 20%, transparent);
  color: var(--whatsapp-green-dark);
}
.events-card-event-chip.event-fam-quente {
  background-color: rgba(239, 68, 68, 0.18);
  color: #b91c1c;
}
.events-card-event-chip.event-fam-preco {
  background-color: rgba(14, 165, 233, 0.18);
  color: #0369a1;
}
.events-card-event-chip.event-fam-mercado {
  background-color: rgba(139, 92, 246, 0.18);
  color: #6d28d9;
}
.events-card-event-chip.event-fam-onboarding {
  background-color: rgba(59, 130, 246, 0.15);
  color: #2563eb;
}
.events-card-event-chip.event-fam-clima {
  background-color: rgba(148, 163, 184, 0.22);
  color: #475569;
}
.events-card-event-chip.event-fam-outro {
  background-color: rgba(107, 114, 128, 0.18);
  color: #374151;
}
.dark-theme .events-card-event-chip.event-fam-fechou {
  color: #bbf7d0;
}
.dark-theme .events-card-event-chip.event-fam-quente {
  color: #fecaca;
}
.dark-theme .events-card-event-chip.event-fam-preco {
  color: #bae6fd;
}
.dark-theme .events-card-event-chip.event-fam-mercado {
  color: #ddd6fe;
}
.dark-theme .events-card-event-chip.event-fam-onboarding {
  color: #dbeafe;
}
.dark-theme .events-card-event-chip.event-fam-clima {
  color: #e2e8f0;
}
.dark-theme .events-card-event-chip.event-fam-outro {
  color: #e5e7eb;
}
.events-card-interactions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 11.5px;
  opacity: 0.75;
}
.events-card-event-time {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
  opacity: 0.75;
}
.events-card-status-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.events-card-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.events-card-status-badge.status-frozen {
  background-color: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.45);
  color: #b45309;
}
.events-card-status-badge.status-optin {
  background-color: color-mix(in srgb, var(--whatsapp-green) 15%, transparent);
  border-color: color-mix(in srgb, var(--whatsapp-green) 45%, transparent);
  color: #047857;
}
.events-card-status-badge.status-admin {
  background-color: rgba(59, 130, 246, 0.15);
  border-color: rgba(59, 130, 246, 0.45);
  color: #1d4ed8;
}
.events-card-status-badge.status-blacklist {
  background-color: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.45);
  color: #b91c1c;
}
.events-card-last-message {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  font-size: 12.5px;
  color: var(--text);
  opacity: 0.85;
}
.events-card-last-message span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
}
.events-card-last-message svg {
  margin-top: 2px;
  flex-shrink: 0;
  opacity: 0.7;
}
.events-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--border);
  font-size: 11.5px;
}
.events-card-owner {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
  color: var(--text);
}
.events-card-owner.unassigned {
  opacity: 0.75;
  font-style: italic;
  font-weight: 400;
}
.events-card-owner.mine {
  color: var(--whatsapp-green-dark);
}
.dark-theme .events-card-owner.mine {
  color: #5eead4;
}
.events-owner-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  margin-right: 2px;
}
.events-card-interaction {
  opacity: 0.75;
}
.events-card-reason {
  margin-top: 2px;
  padding: 4px 8px;
  border-radius: 6px;
  background-color: var(--background);
  border: 1px dashed var(--border);
  font-size: 11.5px;
  opacity: 0.85;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* ===== Menu do card ===== */
.events-card-menu-root {
  position: relative;
}
.events-card-menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text);
  opacity: 0.7;
  cursor: pointer;
  transition: background-color 0.15s, opacity 0.15s, border-color 0.15s;
}
.events-card-menu-trigger:hover {
  opacity: 1;
  background-color: var(--background);
  border-color: var(--border);
}
.events-card-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 200px;
  padding: 4px;
  background-color: var(--whatsapp-header-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-dark);
  z-index: 20;
}
.events-card-menu-portal {
  z-index: 1300;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.events-card-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border: none;
  background: transparent;
  color: var(--text);
  font-size: 13px;
  text-align: left;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
}
.events-card-menu-item:hover,
.events-card-menu-item.active {
  background-color: var(--background);
}
.events-card-menu-item.has-submenu .events-card-menu-chevron {
  margin-left: auto;
  opacity: 0.7;
}
.events-card-submenu {
  position: absolute;
  left: calc(100% + 4px);
  top: 0;
  min-width: 180px;
  padding: 4px;
  background-color: var(--whatsapp-header-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-dark);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.events-card-submenu-portal {
  z-index: 1310;
}
/* ===== Drawer ===== */
.events-drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  justify-content: flex-end;
}
.events-drawer-backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.35);
}
.events-drawer {
  position: relative;
  width: min(480px, 100%);
  height: 100%;
  background-color: var(--whatsapp-header-bg);
  border-left: 1px solid var(--border);
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: eventsDrawerIn 0.2s ease-out;
}
@keyframes eventsDrawerIn {
  from {
    transform: translateX(20px);
    opacity: 0.2;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.events-drawer-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}
.events-drawer-header-title h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
}
.events-drawer-header-phone {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  opacity: 0.75;
  margin-top: 2px;
}
.events-drawer-close {
  border: none;
  background: transparent;
  color: var(--text);
  opacity: 0.7;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
}
.events-drawer-close:hover {
  opacity: 1;
  background-color: var(--background);
}
.events-drawer-summary {
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.events-drawer-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12.5px;
}
.events-drawer-summary-label {
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 11px;
}
.events-drawer-counts {
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.events-drawer-counts-title {
  margin: 0;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
}
.events-drawer-counts-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.events-drawer-counts-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
}
.events-drawer-counts-value {
  opacity: 0.75;
  font-variant-numeric: tabular-nums;
}
.events-drawer-actions {
  display: flex;
  gap: 8px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
}
.events-drawer-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s;
}
.events-drawer-btn:hover {
  border-color: var(--primary-color);
}
.events-drawer-btn.primary {
  background-color: var(--primary-color);
  color: #fff;
  border-color: var(--primary-color);
}
.events-drawer-btn.primary:hover {
  background-color: var(--whatsapp-green-dark);
  border-color: var(--whatsapp-green-dark);
}
.events-drawer-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px 20px 20px;
}
.events-drawer-messages-title {
  margin: 0 0 10px 0;
  font-size: 13px;
  font-weight: 600;
  opacity: 0.85;
}
.events-drawer-muted {
  font-size: 13px;
  opacity: 0.7;
}
.events-drawer-error {
  padding: 10px 12px;
  border: 1px dashed var(--border);
  border-radius: 8px;
  font-size: 12.5px;
  opacity: 0.85;
}
.events-drawer-fallback {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.events-drawer-fallback p {
  margin: 4px 0 0 0;
  font-size: 13px;
}
.events-drawer-message-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.events-drawer-message {
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
}
.events-drawer-message-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  opacity: 0.7;
  margin-bottom: 4px;
}
.events-drawer-message-source {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.events-drawer-message-content {
  margin: 0;
  font-size: 13px;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.events-drawer-message.source-user {
  border-left: 3px solid #3b82f6;
}
.events-drawer-message.source-airton,
.events-drawer-message.source-simulated_approved {
  border-left: 3px solid var(--whatsapp-green);
}
.events-drawer-message.source-operator {
  border-left: 3px solid #f59e0b;
}
.events-drawer-message.source-system {
  border-left: 3px solid #6b7280;
}
/* ===== Badge de override manual no card ===== */
.events-card-override-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background-color: rgba(245, 158, 11, 0.12);
  color: #b45309;
  border: 1px solid rgba(245, 158, 11, 0.4);
}
:root[data-theme="dark"] .events-card-override-badge,
.dark .events-card-override-badge {
  background-color: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  border-color: rgba(245, 158, 11, 0.35);
}
/* ===== Toast (feedback de mutações) ===== */
.events-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1200;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  max-width: 360px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
  border: 1px solid transparent;
  animation: events-toast-in 0.2s ease-out;
}
@keyframes events-toast-in {
  from {
    transform: translateY(8px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.events-toast-info {
  background-color: var(--background);
  color: var(--text);
  border-color: var(--border);
}
.events-toast-warning {
  background-color: #fef3c7;
  color: #92400e;
  border-color: #fbbf24;
}
:root[data-theme="dark"] .events-toast-warning,
.dark .events-toast-warning {
  background-color: rgba(245, 158, 11, 0.15);
  color: #fde68a;
  border-color: rgba(245, 158, 11, 0.45);
}
.events-toast-error {
  background-color: #fee2e2;
  color: #991b1b;
  border-color: #f87171;
}
:root[data-theme="dark"] .events-toast-error,
.dark .events-toast-error {
  background-color: rgba(239, 68, 68, 0.15);
  color: #fecaca;
  border-color: rgba(239, 68, 68, 0.45);
}
/* ===== Overlay de chat (Eventos → Ver conversa) ===== */
.events-chat-overlay {
  position: fixed;
  inset: 0;
  z-index: 1250;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  /* Faixa ao redor: o Kanban continua visível nas bordas */
  padding: clamp(10px, 2.5vmin, 18px);
  animation: events-chat-overlay-in 0.22s ease-out;
  cursor: pointer;
}
@keyframes events-chat-overlay-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.events-chat-overlay-panel {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  background-color: var(--whatsapp-header-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.04);
  cursor: auto;
}
.events-chat-overlay-chrome {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--border);
  background-color: var(--whatsapp-header-bg);
}
.events-chat-overlay-context {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  opacity: 0.65;
}
.events-chat-overlay-close {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: var(--background);
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s;
}
.events-chat-overlay-close:hover {
  border-color: var(--primary-color);
  background-color: var(--whatsapp-header-bg);
}
.events-chat-overlay-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}
.events-chat-overlay-body .chat-window {
  height: 100%;
  max-height: 100%;
  min-height: 0;
}
/* Premium polish layer: visual upgrade only (no functional/structural changes) */
:root {
  --premium-radius-xs: 8px;
  --premium-radius-sm: 10px;
  --premium-radius-md: 14px;
  --premium-radius-lg: 18px;
  --premium-radius-pill: 999px;

  --premium-shadow-soft: 0 8px 24px rgba(13, 23, 32, 0.11);
  --premium-shadow-mid: 0 14px 36px rgba(13, 23, 32, 0.16);
  --premium-shadow-strong: 0 24px 56px rgba(13, 23, 32, 0.11);

  --premium-ring: 0 0 0 2px
    color-mix(in srgb, var(--whatsapp-green) 20%, transparent);
  --premium-transition:
    background-color 0.24s ease, border-color 0.24s ease, color 0.24s ease,
    box-shadow 0.24s ease, transform 0.2s ease, opacity 0.2s ease;

  --ui-font: "Manrope", "Nunito Sans", "Segoe UI", "Helvetica Neue", sans-serif;
}
.light-theme {
  --premium-panel-bg: rgba(235, 240, 237, 0.95);
  --premium-panel-bg-strong: rgba(231, 236, 233, 0.98);
  --premium-panel-alt: rgba(224, 231, 227, 0.96);
  --premium-border: rgba(17, 27, 33, 0.2);
  --premium-border-strong: rgba(17, 27, 33, 0.3);
  --premium-hover: rgba(17, 27, 33);
  --premium-muted-text: #455762;
  --premium-accent-soft: color-mix(in srgb, var(--whatsapp-green), transparent);
}
.dark-theme {
  --premium-panel-bg: rgba(20, 27, 30, 0.9);
  --premium-panel-bg-strong: rgba(20, 27, 30, 0.9);
  --premium-panel-alt: rgba(31, 42, 47, 0.88);
  --premium-border: rgba(233, 237, 239, 0.12);
  --premium-border-strong: rgba(233, 237, 239, 0.22);
  --premium-hover: rgba(233, 237, 239, 0.08);
  --premium-muted-text: #9cb1bd;
  --premium-accent-soft: color-mix(in srgb, var(--whatsapp-green));
}
body {
  font-family: var(--ui-font);
}
.app {
  isolation: isolate;
}
.app::before {
  opacity: 0.08;
  filter: saturate(0.95) contrast(1.02);
}
.app.light-theme::before {
  opacity: 0.09;
  filter: grayscale(0.16) brightness(0.86) contrast(1.08);
}
.app.dark-theme::before {
  opacity: 0.14;
  filter: grayscale(0.28) brightness(0.6) contrast(1.2);
}
.app::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.light-theme.app::after {
  background:
    radial-gradient(
      circle at 14% 10%,
      color-mix(in srgb, var(--whatsapp-green) 5%, transparent),
      transparent 44%
    ),
    radial-gradient(
      circle at 84% 86%,
      color-mix(in srgb, var(--whatsapp-green-mix) 4%, transparent),
      transparent 48%
    ),
    linear-gradient(180deg, rgba(12, 21, 18, 0.14), rgba(12, 21, 18, 0.08));
}
.dark-theme.app::after {
  background:
    radial-gradient(
      circle at 16% 8%,
      color-mix(in srgb, var(--whatsapp-green) 7%, transparent),
      transparent 48%
    ),
    radial-gradient(
      circle at 86% 86%,
      color-mix(in srgb, var(--whatsapp-green-mix) 6%, transparent),
      transparent 54%
    ),
    linear-gradient(135deg, rgba(255, 255, 255, 0.03), transparent 52%);
}
.container,
.nav-sidebar,
.feature-panel-shell,
.main-content,
.chat-window,
.sidebar,
.chat-window-content {
  position: relative;
  z-index: 1;
}
.container::before {
  opacity: 0.035;
}
.nav-sidebar,
.sidebar,
.chat-header,
.chat-input,
.sidebar-nav-tabs,
.query-page-header,
.query-page-footer,
.templates-tabs,
.flows-tabs,
.flow-list-header,
.flow-builder-header,
.template-creator-preview-column,
.contact-info-header,
.date-filter-dropdown,
.query-add-menu,
.modal,
.confirm-modal,
.approval-modal,
.price-modal,
.memory-modal .modal-content,
.campaigns-table-wrapper,
.campaigns-chart-container,
.flow-builder-sidebar {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-color: var(--premium-border);
}
.light-theme .nav-sidebar,
.light-theme .sidebar,
.light-theme .chat-header,
.light-theme .chat-input,
.light-theme .sidebar-nav-tabs,
.light-theme .query-page-header,
.light-theme .query-page-footer,
.light-theme .templates-tabs,
.light-theme .flows-tabs,
.light-theme .flow-list-header,
.light-theme .flow-builder-header,
.light-theme .template-creator-preview-column,
.light-theme .contact-info-header,
.light-theme .date-filter-dropdown,
.light-theme .query-add-menu,
.light-theme .modal,
.light-theme .confirm-modal,
.light-theme .approval-modal,
.light-theme .price-modal,
.light-theme .memory-modal .modal-content,
.light-theme .campaigns-table-wrapper,
.light-theme .campaigns-chart-container,
.light-theme .flow-builder-sidebar {
  background-color: var(--premium-panel-bg);
}
.dark-theme .nav-sidebar,
.dark-theme .sidebar,
.dark-theme .chat-header,
.dark-theme .chat-input,
.dark-theme .sidebar-nav-tabs,
.dark-theme .query-page-header,
.dark-theme .query-page-footer,
.dark-theme .templates-tabs,
.dark-theme .flows-tabs,
.dark-theme .flow-list-header,
.dark-theme .flow-builder-header,
.dark-theme .template-creator-preview-column,
.dark-theme .contact-info-header,
.dark-theme .date-filter-dropdown,
.dark-theme .query-add-menu,
.dark-theme .modal,
.dark-theme .confirm-modal,
.dark-theme .approval-modal,
.dark-theme .price-modal,
.dark-theme .memory-modal .modal-content,
.dark-theme .campaigns-table-wrapper,
.dark-theme .campaigns-chart-container,
.dark-theme .flow-builder-sidebar {
  background-color: var(--premium-panel-bg);
}
button,
input,
textarea,
select,
.nav-sidebar-item,
.action-button,
.contact-item,
.chip,
.date-filter-btn,
.date-filter-action,
.theme-toggle,
.sidebar-nav-tab,
.wa-composer-send-btn,
.wa-composer-emoji-btn,
.price-details-toggle,
.price-send-btn,
.weather-action-btn,
.campaigns-pagination-btn,
.query-remove-btn,
.query-add-menu-item,
.template-button-row input,
.template-button-row select,
.flow-list-card,
.templates-tab,
.flows-tab,
.tab-button,
.media-upload-button,
.approve-btn,
.reject-btn,
.edit-btn,
.audio-btn,
.action-btn {
  transition: var(--premium-transition);
}
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.query-add-menu-item:focus-visible,
.nav-sidebar-item:focus-visible,
.contact-item:focus-visible {
  outline: none;
  box-shadow: var(--premium-ring);
  border-color: var(--primary-color) !important;
}
/* Composer: evita o retângulo no textarea e destaca apenas a cápsula */
.message-textarea.wa-composer-textarea:focus-visible {
  box-shadow: none !important;
  border-color: transparent !important;
}
.nav-sidebar {
  border-right: 1px solid var(--premium-border);
  z-index: 30;
  box-shadow:
    inset -1px 0 0 var(--premium-border),
    8px 0 22px rgba(0, 0, 0, 0.08);
}
.nav-sidebar-nav {
  gap: 6px;
  padding-top: 14px;
}
.nav-sidebar-item {
  border-radius: var(--premium-radius-md);
  border: 1px solid transparent;
  min-height: 46px;
}
.nav-sidebar-item .nav-sidebar-icon {
  width: 20px !important;
  height: 20px !important;
  stroke-width: 2.15 !important;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}
.nav-sidebar-item:not(.active) .nav-sidebar-icon {
  opacity: 0.92;
}
.nav-sidebar-item:not(.active):hover {
  background-color: transparent;
  border-color: var(--premium-border-strong);
  transform: translateY(-1px);
}
.nav-sidebar-item:hover .nav-sidebar-icon {
  transform: scale(1.05);
  opacity: 1;
}
.nav-sidebar-item.active {
  color: rgba(255, 255, 255, 0.96);
  border: 1px solid
    color-mix(in srgb, var(--whatsapp-green) 40%, var(--premium-border-strong));
  background-color: transparent;
  background-image: linear-gradient(
    152deg,
    color-mix(in srgb, var(--whatsapp-green-deep) 42%, var(--premium-panel-alt))
      0%,
    color-mix(in srgb, var(--whatsapp-green) 46%, var(--premium-panel-alt)) 46%,
    color-mix(in srgb, var(--whatsapp-green-mix) 38%, var(--premium-panel-alt))
      100%
  );
  box-shadow:
    0 3px 16px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 color-mix(in srgb, white 14%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.nav-sidebar-item[data-tooltip]::after {
  color: var(--text);
  border-color: var(--premium-border);
  background-color: var(--premium-panel-bg-strong);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--premium-shadow-mid);
}
.nav-sidebar-item[data-tooltip]::before {
  border-left: 1px solid var(--premium-border);
  border-bottom: 1px solid var(--premium-border);
  background-color: var(--premium-panel-bg-strong);
  z-index: 10051;
}
.nav-sidebar-item[data-tooltip]:hover::after,
.nav-sidebar-item[data-tooltip]:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
.nav-sidebar .theme-toggle {
  border: 1px solid var(--premium-border);
  background: var(--premium-panel-alt);
  box-shadow: var(--premium-shadow-soft);
}
.nav-sidebar .theme-toggle:hover {
  transform: translateY(-1px) scale(1.05);
  border-color: var(--premium-border-strong);
}
.sidebar {
  border-right: 1px solid var(--premium-border);
  box-shadow: 8px 0 24px rgba(0, 0, 0, 0.08);
}
.sidebar-header {
  margin: 2px 10px 10px;
  padding: 16px 16px 14px;
  border: 1px solid var(--premium-border);
  border-radius: var(--premium-radius-lg);
  box-shadow: var(--premium-shadow-soft);
  background: var(--premium-panel-bg-strong);
}
.dark-theme .sidebar-header {
  background: rgba(20, 27, 30, 0.92);
}
.sidebar-header-title {
  margin-bottom: 14px;
}
.sidebar-header-title h2 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 25px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--text);
}
.contacts-title-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--primary-color);
  filter: none;
}
.sidebar-header-actions {
  gap: 8px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.dark-theme .sidebar-header-actions {
  box-shadow: none;
}
.date-filter-btn {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 50%;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text);
  box-shadow: none;
}
.date-filter-btn:hover {
  background-color: var(--premium-hover);
  border-color: var(--premium-border);
  transform: translateY(-1px);
}
.date-filter-icon {
  width: 16px;
  height: 16px;
  stroke-width: 2.1;
  color: currentColor;
}
.date-filter-icon-light,
.date-filter-icon-dark {
  display: none;
}
.light-theme .date-filter-icon-light {
  display: block;
}
.dark-theme .date-filter-icon-dark {
  display: block;
}
.date-filter-btn.active {
  background-color: var(--premium-accent-soft);
  border-color: color-mix(in srgb, var(--whatsapp-green) 35%, transparent);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.light-theme .date-filter-btn:not(.active) {
  color: #111b21;
}
.dark-theme .date-filter-btn:not(.active) {
  color: #e9edef;
}
.light-theme .date-filter-btn.active {
  color: #111b21 !important;
}
.dark-theme .date-filter-btn.active {
  color: #ffffff !important;
}
/* Ícones desse grupo de ações seguem preto no light e branco no dark */
.light-theme .sidebar-header-actions .date-filter-btn,
.light-theme .sidebar-header-actions .theme-toggle {
  color: #111b21 !important;
}
.dark-theme .sidebar-header-actions .date-filter-btn,
.dark-theme .sidebar-header-actions .theme-toggle {
  color: #ffffff !important;
}
.light-theme .nav-sidebar .theme-toggle {
  color: #111b21;
}
.dark-theme .nav-sidebar .theme-toggle {
  color: #e9edef;
}
.date-filter-dot {
  top: 5px;
  right: 5px;
  width: 8px;
  height: 8px;
  border: 2px solid rgba(17, 27, 33, 0.38);
}
.dark-theme .date-filter-dot {
  border-color: rgba(233, 237, 239, 0.28);
}
.date-filter-dropdown {
  margin-top: 8px;
  padding: 14px;
  border-radius: var(--premium-radius-md);
  min-width: 236px;
}
.date-filter-fields label span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.date-filter-action {
  border: 1px solid transparent;
  border-radius: var(--premium-radius-sm);
  font-weight: 700;
}
.date-filter-action.today {
  border-color: var(--premium-border);
}
.sidebar-header h2,
.chat-header .contact-name,
.query-page-title,
.flow-list-title,
.campaigns-chart-title,
.contact-info-name,
.templates-tab,
.flows-tab {
  letter-spacing: 0.01em;
}
.contact-tabs {
  background-color: var(--premium-panel-alt);
  border: 1px solid var(--premium-border);
  border-radius: var(--premium-radius-pill);
}
.tab-button {
  border-radius: var(--premium-radius-pill);
}
.tab-button.active,
.light-theme .tab-button.active,
.dark-theme .tab-button.active {
  color: rgba(255, 255, 255, 0.97);
  border: 1px solid
    color-mix(in srgb, var(--whatsapp-green) 44%, var(--premium-border));
  background-color: transparent;
  background-image: linear-gradient(
    152deg,
    color-mix(in srgb, var(--whatsapp-green-deep) 38%, var(--premium-panel-alt))
      0%,
    color-mix(in srgb, var(--whatsapp-green) 42%, var(--premium-panel-alt)) 48%,
    color-mix(in srgb, var(--whatsapp-green-mix) 36%, var(--premium-panel-alt))
      100%
  );
  box-shadow:
    0 4px 14px rgba(0, 0, 0, 0.14),
    inset 0 1px 0 color-mix(in srgb, white 12%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.contact-search,
.campaigns-input,
.campaigns-select,
.query-criteria-select,
.query-criteria-input,
.template-field input[type="text"],
.template-field input[type="number"],
.template-field select,
.template-field textarea,
.template-example-row input,
.template-button-row select,
.template-button-row input,
.weather-search-input,
.weather-edit-textarea,
.info-item-best-name-input,
.edit-textarea,
.date-filter-fields input[type="date"],
.flow-name-input {
  border-radius: var(--premium-radius-sm);
  border-color: var(--premium-border);
}
.search-container {
  margin-bottom: 12px;
}
.search-icon {
  width: 16px;
  height: 16px;
  left: 14px;
  color: var(--premium-muted-text);
  opacity: 0.8;
  transition: var(--premium-transition);
}
.search-container:focus-within .search-icon {
  color: var(--primary-color);
  opacity: 1;
}
.contact-search {
  height: 46px;
  padding: 11px 14px 11px 42px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 500;
}
.contact-search:focus {
  border-color: color-mix(in srgb, var(--whatsapp-green) 58%, transparent);
  box-shadow: var(--premium-ring);
}
.light-theme .contact-search,
.light-theme .campaigns-input,
.light-theme .campaigns-select,
.light-theme .query-criteria-select,
.light-theme .query-criteria-input,
.light-theme .template-field input[type="text"],
.light-theme .template-field input[type="number"],
.light-theme .template-field select,
.light-theme .template-field textarea,
.light-theme .template-example-row input,
.light-theme .template-button-row select,
.light-theme .template-button-row input,
.light-theme .weather-search-input,
.light-theme .weather-edit-textarea,
.light-theme .info-item-best-name-input,
.light-theme .edit-textarea,
.light-theme .date-filter-fields input[type="date"],
.light-theme .flow-name-input {
  background-color: var(--premium-panel-alt);
}
.dark-theme .contact-search,
.dark-theme .campaigns-input,
.dark-theme .campaigns-select,
.dark-theme .query-criteria-select,
.dark-theme .query-criteria-input,
.dark-theme .template-field input[type="text"],
.dark-theme .template-field input[type="number"],
.dark-theme .template-field select,
.dark-theme .template-field textarea,
.dark-theme .template-example-row input,
.dark-theme .template-button-row select,
.dark-theme .template-button-row input,
.dark-theme .weather-search-input,
.dark-theme .weather-edit-textarea,
.dark-theme .info-item-best-name-input,
.dark-theme .edit-textarea,
.dark-theme .date-filter-fields input[type="date"],
.dark-theme .flow-name-input {
  background-color: var(--premium-panel-alt);
}
.contact-search::placeholder,
.weather-search-input::placeholder,
.message-textarea::placeholder,
.campaigns-input::placeholder,
.query-criteria-input::placeholder {
  color: var(--premium-muted-text);
}
/* Date inputs: ícone/calendário adaptável por tema */
.app input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
}
.light-theme .app input[type="date"] {
  color-scheme: light;
}
.dark-theme .app input[type="date"] {
  color-scheme: dark;
}
.app input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.9;
  transition:
    filter 0.2s ease,
    opacity 0.2s ease;
}
.light-theme .app input[type="date"]::-webkit-calendar-picker-indicator {
  filter: brightness(0) saturate(100%);
}
.dark-theme .app input[type="date"]::-webkit-calendar-picker-indicator {
  filter: brightness(0) saturate(100%) invert(1);
}
.app input[type="date"]:hover::-webkit-calendar-picker-indicator,
.app input[type="date"]:focus::-webkit-calendar-picker-indicator {
  opacity: 1;
}
.chip {
  min-width: 0;
  height: 38px;
  padding: 8px 12px;
  border-radius: var(--premium-radius-pill);
  border-color: var(--premium-border);
  background-color: var(--premium-panel-alt);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.chip:hover {
  transform: translateY(-1px);
}
.chip:hover:not(.active) {
  background-color: color-mix(
    in srgb,
    var(--whatsapp-green) 11%,
    var(--premium-panel-alt)
  );
  background-image: none;
  color: var(--text);
  border-color: color-mix(
    in srgb,
    var(--whatsapp-green) 24%,
    var(--premium-border)
  );
}
.chip.active,
.light-theme .chip.active,
.dark-theme .chip.active {
  color: rgba(255, 255, 255, 0.97);
  border: 1px solid
    color-mix(in srgb, var(--whatsapp-green) 48%, var(--premium-border));
  background-color: transparent;
  background-image: linear-gradient(
    152deg,
    color-mix(in srgb, var(--whatsapp-green-deep) 40%, var(--premium-panel-alt))
      0%,
    color-mix(in srgb, var(--whatsapp-green) 44%, var(--premium-panel-alt)) 46%,
    color-mix(in srgb, var(--whatsapp-green-mix) 36%, var(--premium-panel-alt))
      100%
  );
  box-shadow:
    0 2px 14px rgba(0, 0, 0, 0.16),
    inset 0 1px 0 color-mix(in srgb, white 13%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.chip-count {
  opacity: 0.9;
  font-weight: 700;
}
.chip-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.chip-container .chip:last-child {
  grid-column: 1 / -1;
}
.contact-content {
  padding-bottom: 8px;
}
.contact-list {
  padding: 4px 0 10px;
}
.contact-item {
  margin: 4px 10px;
  padding: 12px 14px;
  border: 1px solid var(--premium-border);
  border-radius: var(--premium-radius-md);
  overflow: hidden;
}
.light-theme .contact-item {
  background: rgba(228, 234, 230, 0.92);
  border-color: rgba(32, 44, 51, 0.17);
}
.dark-theme .contact-item {
  background: rgba(12, 21, 24, 0.22);
}
.contact-item:hover {
  transform: translateY(-1px);
}
.contact-item.selected {
  border-color: color-mix(in srgb, var(--whatsapp-green) 38%, transparent);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.light-theme .contact-item.selected {
  background:
    linear-gradient(
      130deg,
      color-mix(in srgb, var(--whatsapp-green) 26%, transparent),
      color-mix(in srgb, var(--whatsapp-green-mix) 18%, transparent)
    ),
    rgba(219, 230, 222, 0.96);
}
.dark-theme .contact-item.selected {
  background:
    linear-gradient(
      130deg,
      color-mix(in srgb, var(--whatsapp-green) 22%, transparent),
      color-mix(in srgb, var(--whatsapp-green-mix) 15%, transparent)
    ),
    rgba(12, 21, 24, 0.28);
}
.contact-avatar {
  width: 44px;
  height: 44px;
  margin-right: 14px;
  border-color: var(--premium-border-strong);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 8px 16px rgba(17, 27, 33, 0.16);
}
.contact-avatar-icon {
  width: 18px;
  height: 18px;
  stroke-width: 2.2;
  color: inherit;
}
.contact-name {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.005em;
}
.contact-time {
  font-size: 13px;
  font-weight: 600;
}
.contact-best-name {
  font-size: 11px;
  opacity: 0.82;
}
.contact-last-message {
  font-size: 13px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.contact-last-message-prefix {
  color: var(--primary-color);
}
.badge {
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 3px 8px;
  font-size: 10px;
  letter-spacing: 0.01em;
}
.dark-theme .badge {
  border-color: rgba(255, 255, 255, 0.08);
}
.badge.optin {
  background-color: transparent;
  background-image: linear-gradient(
    135deg,
    color-mix(in srgb, var(--optin-color) 82%, var(--whatsapp-green-mix)) 0%,
    color-mix(in srgb, var(--whatsapp-green-darker) 18%, var(--optin-color))
      100%
  );
  color: rgba(255, 255, 255, 0.98);
  border-color: color-mix(in srgb, var(--optin-color) 38%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 10%, transparent);
}
.badge,
.info-badge,
.template-status-badge {
  border-radius: var(--premium-radius-pill);
}
.unread-badge {
  min-width: 22px;
  height: 22px;
  border: 2px solid var(--sidebar-bg);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  font-size: 11px;
  font-weight: 700;
}
.sidebar-nav-tabs {
  padding: 12px 16px 10px;
}
.sidebar-nav-tab {
  border-radius: var(--premium-radius-sm);
  border-color: var(--premium-border);
  background-color: var(--premium-panel-alt);
}
.sidebar-nav-tab:hover {
  transform: translateY(-1px);
  border-color: var(--premium-border-strong);
  background-color: var(--premium-hover);
}
.sidebar-nav-tab.active,
.light-theme .sidebar-nav-tab.active,
.dark-theme .sidebar-nav-tab.active {
  color: rgba(255, 255, 255, 0.97);
  border: 1px solid
    color-mix(in srgb, var(--whatsapp-green) 44%, var(--premium-border));
  background-color: transparent;
  background-image: linear-gradient(
    152deg,
    color-mix(in srgb, var(--whatsapp-green-deep) 38%, var(--premium-panel-alt))
      0%,
    color-mix(in srgb, var(--whatsapp-green) 42%, var(--premium-panel-alt)) 48%,
    color-mix(in srgb, var(--whatsapp-green-mix) 36%, var(--premium-panel-alt))
      100%
  );
  box-shadow:
    0 3px 12px rgba(0, 0, 0, 0.12),
    inset 0 1px 0 color-mix(in srgb, white 11%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.chat-header {
  border-bottom: 1px solid var(--premium-border);
  box-shadow: 0 7px 16px rgba(0, 0, 0, 0.12);
}
.dark-theme .chat-header {
  box-shadow: 0 9px 20px rgba(0, 0, 0, 0.28);
}
.chat-header-actions {
  margin-right: 56px;
}
.chat-more-actions-panel {
  border-color: var(--premium-border);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.2);
}
.chat-more-action-item:hover:not(:disabled) {
  background-color: var(--premium-hover);
}
.action-button {
  border: 1px solid transparent;
}
.action-button:hover {
  background-color: var(--premium-hover);
  border-color: var(--premium-border);
  transform: translateY(-1px);
}
.action-button.active {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}
.chat-messages {
  padding: 18px 20px 16px;
}
.light-theme .chat-messages {
  background-color: rgba(189, 203, 183, 0.34);
  backdrop-filter: blur(1.2px);
  -webkit-backdrop-filter: blur(1.2px);
}
.message {
  margin-bottom: 10px;
}
.message-content {
  max-width: min(70%, 760px);
}
.message.sent .message-content,
.message.received .message-content {
  border-radius: 11px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 8px 10px 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.light-theme .message.sent .message-content,
.light-theme .message.received .message-content {
  border-color: rgba(32, 44, 51, 0.22);
  box-shadow: 0 3px 10px rgba(22, 34, 41, 0.14);
}
.dark-theme .message.sent .message-content,
.dark-theme .message.received .message-content {
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.24);
}
.light-theme .message.sent .message-content {
  background-color: #d9f1d9;
}
.dark-theme .message.sent .message-content {
  background-color: rgba(0, 92, 75);
}
.light-theme .message.received .message-content {
  background-color: #f1f5f2;
}
.dark-theme .message.received .message-content {
  background-color: rgba(32, 44, 51);
}
.light-theme .message.sent .message-content::after {
  border-left-color: #d9f1d9;
}
.dark-theme .message.sent .message-content::after {
  border-left-color: rgba(0, 92, 75);
}
.light-theme .message.received .message-content::after {
  border-right-color: #f1f5f2;
}
.dark-theme .message.received .message-content::after {
  border-right-color: rgba(32, 44, 51, 0.38);
}
.message-text {
  font-family: "Nunito Sans", "Manrope", "Segoe UI", sans-serif;
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.01em;
  text-rendering: optimizeLegibility;
}
.light-theme .message-text {
  color: #17252d;
}
.message-time {
  margin-top: 6px;
  gap: 6px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.light-theme .message-time {
  color: #41535e;
}
.message-source {
  display: inline;
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent !important;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
  color: var(--premium-muted-text) !important;
  opacity: 1;
}
/* Source-specific polish */
.message.sent-airton .message-content {
  border: 1px solid
    color-mix(in srgb, var(--whatsapp-green-mix) 18%, transparent);
  box-shadow: 0 2px 8px
    color-mix(in srgb, var(--whatsapp-green-mix) 10%, transparent);
}
.light-theme .message.sent-airton .message-content {
  color: var(--text);
}
.dark-theme .message.sent-airton .message-content {
  border-color: color-mix(in srgb, var(--whatsapp-green) 22%, transparent);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--whatsapp-green-mix));
}
.light-theme .message.sent-airton .message-content {
  background-color: #d5efd5;
  border-color: color-mix(in srgb, var(--whatsapp-green-mix));
}
.dark-theme .message.sent-airton .message-content {
  background-color: rgba(0, 92, 75, 0.34);
}
.light-theme .message.sent-airton .message-content::after {
  border-left-color: #d5efd5;
}
.dark-theme .message.sent-airton .message-content::after {
  border-left-color: rgba(0, 92, 75, 0.34);
}
.message.sent-operator .message-content {
  border: 1px solid rgba(37, 158, 228, 0.2);
  box-shadow: 0 2px 8px rgba(37, 158, 228, 0.12);
}
.light-theme .message.sent-operator .message-content {
  color: var(--text);
}
.dark-theme .message.sent-operator .message-content {
  border-color: rgba(137, 208, 248, 0.24);
  box-shadow: 0 3px 10px rgba(37, 158, 228, 0.24);
}
.light-theme .message.sent-operator .message-content {
  background-color: #dbe9f3 !important;
  border-color: rgba(37, 158, 228, 0.3);
}
.dark-theme .message.sent-operator .message-content {
  background-color: rgba(37, 158, 228, 0.28) !important;
}
.light-theme .message.sent-operator .message-content::after {
  border-left-color: #dbe9f3 !important;
}
.dark-theme .message.sent-operator .message-content::after {
  border-left-color: rgba(37, 158, 228, 0.28) !important;
}
.message.received .message-content {
  border: 1px solid rgba(59, 74, 84, 0.12);
  box-shadow: 0 2px 8px rgba(59, 74, 84, 0.08);
}
.light-theme .message.received .message-content {
  border-color: rgba(59, 74, 84, 0.2);
}
.dark-theme .message.received .message-content {
  border-color: rgba(233, 237, 239, 0.13);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.24);
}
.dark-theme .message-source {
  color: var(--premium-muted-text) !important;
}
.message.sent-airton .message-text blockquote {
  border-left-color: color-mix(
    in srgb,
    var(--whatsapp-green-mix) 70%,
    transparent
  );
}
.message.sent-operator .message-text blockquote {
  border-left-color: rgba(37, 158, 228, 0.72);
}
.chat-input {
  border-top: 1px solid var(--premium-border);
  padding: 10px 14px;
  box-shadow: 0 -9px 18px rgba(0, 0, 0, 0.1);
}
.dark-theme .chat-input {
  box-shadow: 0 -11px 22px rgba(0, 0, 0, 0.28);
}
.wa-composer-bar {
  border: 1px solid var(--premium-border);
  border-radius: var(--premium-radius-pill);
}
.wa-composer-bar:focus-within {
  border-color: var(--premium-border);
  box-shadow: none;
}
.light-theme .wa-composer-bar {
  background-color: rgba(255, 255, 255, 0.92);
}
.dark-theme .wa-composer-bar {
  background-color: rgba(41, 57, 66, 0.9);
}
.wa-composer-send-btn,
.approve-btn,
.media-upload-button,
.action-btn.primary,
.send-prices-carousel-btn,
.price-send-btn,
.weather-send-btn,
.save-btn,
.confirm-ok {
  border: 1px solid color-mix(in srgb, var(--whatsapp-green) 28%, transparent);
  background-color: transparent;
  background-image: linear-gradient(
    145deg,
    color-mix(in srgb, var(--whatsapp-green-darker), var(--whatsapp-green)) 0%,
    var(--whatsapp-green) 44%,
    color-mix(in srgb, var(--whatsapp-green-mix) 58%, var(--whatsapp-green))
      100%
  );
  color: #fff;
  box-shadow:
    0 4px 14px rgba(0, 0, 0, 0.17),
    inset 0 1px 0 color-mix(in srgb, white 13%, transparent);
}
/* Clique no enviar não deve roubar foco nem mostrar o anel cinza do premium-ring */
.wa-composer-send-btn:focus:not(:focus-visible) {
  outline: none;
  box-shadow: 0 10px 22px rgba(18, 140, 126, 0.34);
}
.wa-composer-send-btn:hover:not(:disabled),
.approve-btn:hover:not(:disabled),
.media-upload-button:hover:not(:disabled),
.action-btn.primary:hover:not(:disabled),
.send-prices-carousel-btn:hover:not(:disabled),
.price-send-btn:hover:not(:disabled),
.weather-send-btn:hover:not(:disabled),
.save-btn:hover:not(:disabled),
.confirm-ok:hover:not(:disabled) {
  transform: translateY(-1px) scale(1.02);
  filter: none;
}
/* Evita fundo sólido do message-input.css sobrepor o gradiente (light/dark) */
.light-theme .action-btn.primary,
.dark-theme .action-btn.primary {
  background-color: transparent;
}
.light-theme .action-btn.primary:hover:not(:disabled),
.dark-theme .action-btn.primary:hover:not(:disabled) {
  background-color: transparent;
  background-image: linear-gradient(
    145deg,
    color-mix(in srgb, var(--whatsapp-green-darker) 32%, var(--whatsapp-green))
      0%,
    var(--whatsapp-green-dark) 46%,
    color-mix(in srgb, var(--whatsapp-green-mix) 55%, var(--whatsapp-green))
      100%
  );
}
.wa-composer-emoji-btn:hover:not(:disabled) {
  background-color: var(--premium-hover);
}
.templates-tab,
.flows-tab {
  border-bottom-width: 3px;
  position: relative;
}
.templates-tab.active,
.flows-tab.active {
  color: var(--whatsapp-green);
  border-bottom-color: var(--whatsapp-green);
}
.templates-tab.active::after,
.flows-tab.active::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  width: 36px;
  height: 3px;
  border-radius: 999px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    var(--whatsapp-green),
    var(--whatsapp-green-mix)
  );
}
.query-text-block,
.query-clause-card,
.query-group-card,
.campaigns-kpi-card,
.flow-list-card,
.flow-list-empty,
.media-dropzone,
.media-upload-result-card,
.template-preview-block,
.response-preview,
.selection-whatsapp-preview,
.price-group,
.weather-item,
.weather-city,
.weather-message,
.info-item,
.contact-info-actions .action-btn,
.message-preview,
.prices-errors-section,
.campaigns-table-wrapper,
.campaigns-chart-container,
.stat-item,
.memory-message,
.memory-messages {
  border-radius: var(--premium-radius-md);
  border-color: var(--premium-border);
  box-shadow: var(--premium-shadow-soft);
}
.dark-theme .query-text-block,
.dark-theme .query-clause-card,
.dark-theme .query-group-card,
.dark-theme .campaigns-kpi-card,
.dark-theme .flow-list-card,
.dark-theme .flow-list-empty,
.dark-theme .media-dropzone,
.dark-theme .media-upload-result-card,
.dark-theme .template-preview-block,
.dark-theme .response-preview,
.dark-theme .selection-whatsapp-preview,
.dark-theme .price-group,
.dark-theme .weather-item,
.dark-theme .weather-city,
.dark-theme .weather-message,
.dark-theme .info-item,
.dark-theme .contact-info-actions .action-btn,
.dark-theme .message-preview,
.dark-theme .prices-errors-section,
.dark-theme .campaigns-table-wrapper,
.dark-theme .campaigns-chart-container,
.dark-theme .stat-item,
.dark-theme .memory-message,
.dark-theme .memory-messages {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}
.query-add-menu,
.date-filter-dropdown,
.selection-format-toolbar,
.emoji-panel,
.weather-search-section,
.prices-header,
.weather-header,
.flow-react-flow .react-flow__controls,
.flow-react-flow .react-flow__minimap,
.campaigns-pagination,
.campaigns-export-btn,
.tab-button,
.templates-tab,
.flows-tab,
.query-add-main-btn,
.query-add-btn,
.close-panel-btn,
.refresh-prices-btn,
.query-remove-btn,
.campaigns-pagination-btn,
.campaigns-select,
.campaigns-input {
  border-radius: var(--premium-radius-sm);
  border-color: var(--premium-border);
}
.media-dropzone {
  border-style: dashed;
}
.media-dropzone:hover,
.flow-list-card:hover,
.price-group:hover,
.weather-item:hover,
.campaigns-table-row-clickable:hover,
.query-add-menu-item:hover,
.query-remove-btn:hover,
.campaigns-export-btn:hover:not(:disabled) {
  transform: translateY(-1px);
}
.contact-info-panel {
  border-left: 1px solid var(--premium-border);
  box-shadow: -14px 0 30px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.contact-info-header {
  position: sticky;
  top: 0;
  z-index: 5;
}
.modal-overlay,
.approval-overlay,
.price-modal-overlay,
.campaigns-modal-overlay {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.modal,
.confirm-modal,
.approval-modal,
.price-modal,
.memory-modal .modal-content,
.campaigns-modal {
  border: 1px solid var(--premium-border);
  box-shadow: var(--premium-shadow-strong);
}
.modal-title,
.approval-header h3,
.memory-modal .modal-header h2 {
  letter-spacing: 0.01em;
}
.app ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.light-theme .app ::-webkit-scrollbar-thumb {
  background: rgba(76, 94, 104, 0.34);
  border-radius: var(--premium-radius-pill);
}
.dark-theme .app ::-webkit-scrollbar-thumb {
  background: rgba(233, 237, 239, 0.2);
  border-radius: var(--premium-radius-pill);
}
.app ::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--whatsapp-green) 52%, transparent);
}
@media (max-width: 1024px) {
  .message-content {
    max-width: 80%;
  }
}
@media (max-width: 768px) {
  .chat-header-actions {
    margin-right: 48px;
  }

  .message-content {
    max-width: 86%;
  }

  .contact-item:hover,
  .flow-list-card:hover,
  .price-group:hover,
  .weather-item:hover,
  .campaigns-table-row-clickable:hover,
  .query-add-menu-item:hover,
  .campaigns-export-btn:hover:not(:disabled) {
    transform: none;
  }

  .chat-input {
    padding: 8px 10px;
  }

  .nav-sidebar,
  .sidebar,
  .contact-info-panel {
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
  }
}
/* this gets exported as style.css and can be used for the default theming */
/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */
.react-flow {
  direction: ltr;

  --xy-edge-stroke-default: #b1b1b7;
  --xy-edge-stroke-width-default: 1;
  --xy-edge-stroke-selected-default: #555;

  --xy-connectionline-stroke-default: #b1b1b7;
  --xy-connectionline-stroke-width-default: 1;

  --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);

  --xy-minimap-background-color-default: #fff;
  --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);
  --xy-minimap-mask-stroke-color-default: transparent;
  --xy-minimap-mask-stroke-width-default: 1;
  --xy-minimap-node-background-color-default: #e2e2e2;
  --xy-minimap-node-stroke-color-default: transparent;
  --xy-minimap-node-stroke-width-default: 2;

  --xy-background-color-default: transparent;
  --xy-background-pattern-dots-color-default: #91919a;
  --xy-background-pattern-lines-color-default: #eee;
  --xy-background-pattern-cross-color-default: #e2e2e2;
  background-color: var(--xy-background-color, var(--xy-background-color-default));
  --xy-node-color-default: inherit;
  --xy-node-border-default: 1px solid #1a192b;
  --xy-node-background-color-default: #fff;
  --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
  --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;
  --xy-node-border-radius-default: 3px;

  --xy-handle-background-color-default: #1a192b;
  --xy-handle-border-color-default: #fff;

  --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);
  --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);

  --xy-controls-button-background-color-default: #fefefe;
  --xy-controls-button-background-color-hover-default: #f4f4f4;
  --xy-controls-button-color-default: inherit;
  --xy-controls-button-color-hover-default: inherit;
  --xy-controls-button-border-color-default: #eee;
  --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);

  --xy-edge-label-background-color-default: #ffffff;
  --xy-edge-label-color-default: inherit;
  --xy-resize-background-color-default: #3367d9;
}
.react-flow.dark {
  --xy-edge-stroke-default: #3e3e3e;
  --xy-edge-stroke-width-default: 1;
  --xy-edge-stroke-selected-default: #727272;

  --xy-connectionline-stroke-default: #b1b1b7;
  --xy-connectionline-stroke-width-default: 1;

  --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);

  --xy-minimap-background-color-default: #141414;
  --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);
  --xy-minimap-mask-stroke-color-default: transparent;
  --xy-minimap-mask-stroke-width-default: 1;
  --xy-minimap-node-background-color-default: #2b2b2b;
  --xy-minimap-node-stroke-color-default: transparent;
  --xy-minimap-node-stroke-width-default: 2;

  --xy-background-color-default: #141414;
  --xy-background-pattern-dots-color-default: #777;
  --xy-background-pattern-lines-color-default: #777;
  --xy-background-pattern-cross-color-default: #777;
  --xy-node-color-default: #f8f8f8;
  --xy-node-border-default: 1px solid #3c3c3c;
  --xy-node-background-color-default: #1e1e1e;
  --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
  --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;

  --xy-handle-background-color-default: #bebebe;
  --xy-handle-border-color-default: #1e1e1e;

  --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);
  --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);

  --xy-controls-button-background-color-default: #2b2b2b;
  --xy-controls-button-background-color-hover-default: #3e3e3e;
  --xy-controls-button-color-default: #f8f8f8;
  --xy-controls-button-color-hover-default: #fff;
  --xy-controls-button-border-color-default: #5b5b5b;
  --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);

  --xy-edge-label-background-color-default: #141414;
  --xy-edge-label-color-default: #f8f8f8;
}
.react-flow__background {
  background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));
  pointer-events: none;
  z-index: -1;
}
.react-flow__container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.react-flow__pane {
  z-index: 1;
}
.react-flow__pane.draggable {
    cursor: grab;
  }
.react-flow__pane.dragging {
    cursor: grabbing;
  }
.react-flow__pane.selection {
    cursor: pointer;
  }
.react-flow__viewport {
  transform-origin: 0 0;
  z-index: 2;
  pointer-events: none;
}
.react-flow__renderer {
  z-index: 4;
}
.react-flow__selection {
  z-index: 6;
}
.react-flow__nodesselection-rect:focus,
.react-flow__nodesselection-rect:focus-visible {
  outline: none;
}
.react-flow__edge-path {
  stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
  stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
  fill: none;
}
.react-flow__connection-path {
  stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
  stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
  fill: none;
}
.react-flow .react-flow__edges {
  position: absolute;
}
.react-flow .react-flow__edges svg {
    overflow: visible;
    position: absolute;
    pointer-events: none;
  }
.react-flow__edge {
  pointer-events: visibleStroke;
}
.react-flow__edge.selectable {
    cursor: pointer;
  }
.react-flow__edge.animated path {
    stroke-dasharray: 5;
    animation: dashdraw 0.5s linear infinite;
  }
.react-flow__edge.animated path.react-flow__edge-interaction {
    stroke-dasharray: none;
    animation: none;
  }
.react-flow__edge.inactive {
    pointer-events: none;
  }
.react-flow__edge.selected,
  .react-flow__edge:focus,
  .react-flow__edge:focus-visible {
    outline: none;
  }
.react-flow__edge.selected .react-flow__edge-path,
  .react-flow__edge.selectable:focus .react-flow__edge-path,
  .react-flow__edge.selectable:focus-visible .react-flow__edge-path {
    stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
  }
.react-flow__edge-textwrapper {
    pointer-events: all;
  }
.react-flow__edge .react-flow__edge-text {
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
/* Arrowhead marker styles - use CSS custom properties as default */
.react-flow__arrowhead polyline {
  stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
}
.react-flow__arrowhead polyline.arrowclosed {
  fill: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
}
.react-flow__connection {
  pointer-events: none;
}
.react-flow__connection .animated {
    stroke-dasharray: 5;
    animation: dashdraw 0.5s linear infinite;
  }
svg.react-flow__connectionline {
  z-index: 1001;
  overflow: visible;
  position: absolute;
}
.react-flow__nodes {
  pointer-events: none;
  transform-origin: 0 0;
}
.react-flow__node {
  position: absolute;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: all;
  transform-origin: 0 0;
  box-sizing: border-box;
  cursor: default;
}
.react-flow__node.selectable {
    cursor: pointer;
  }
.react-flow__node.draggable {
    cursor: grab;
    pointer-events: all;
  }
.react-flow__node.draggable.dragging {
      cursor: grabbing;
    }
.react-flow__nodesselection {
  z-index: 3;
  transform-origin: left top;
  pointer-events: none;
}
.react-flow__nodesselection-rect {
    position: absolute;
    pointer-events: all;
    cursor: grab;
  }
.react-flow__handle {
  position: absolute;
  pointer-events: none;
  min-width: 5px;
  min-height: 5px;
  width: 6px;
  height: 6px;
  background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
  border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
  border-radius: 100%;
}
.react-flow__handle.connectingfrom {
    pointer-events: all;
  }
.react-flow__handle.connectionindicator {
    pointer-events: all;
    cursor: crosshair;
  }
.react-flow__handle-bottom {
    top: auto;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
  }
.react-flow__handle-top {
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
  }
.react-flow__handle-left {
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
  }
.react-flow__handle-right {
    top: 50%;
    right: 0;
    transform: translate(50%, -50%);
  }
.react-flow__edgeupdater {
  cursor: move;
  pointer-events: all;
}
.react-flow__pane.selection .react-flow__panel {
  pointer-events: none;
}
.react-flow__panel {
  position: absolute;
  z-index: 5;
  margin: 15px;
}
.react-flow__panel.top {
    top: 0;
  }
.react-flow__panel.bottom {
    bottom: 0;
  }
.react-flow__panel.top.center, .react-flow__panel.bottom.center {
      left: 50%;
      transform: translateX(-15px) translateX(-50%);
    }
.react-flow__panel.left {
    left: 0;
  }
.react-flow__panel.right {
    right: 0;
  }
.react-flow__panel.left.center, .react-flow__panel.right.center {
      top: 50%;
      transform: translateY(-15px) translateY(-50%);
    }
.react-flow__attribution {
  font-size: 10px;
  background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
  padding: 2px 3px;
  margin: 0;
}
.react-flow__attribution a {
    text-decoration: none;
    color: #999;
  }
@keyframes dashdraw {
  from {
    stroke-dashoffset: 10;
  }
}
.react-flow__edgelabel-renderer {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  left: 0;
  top: 0;
}
.react-flow__viewport-portal {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.react-flow__minimap {
  background: var(
    --xy-minimap-background-color-props,
    var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))
  );
}
.react-flow__minimap-svg {
    display: block;
  }
.react-flow__minimap-mask {
    fill: var(
      --xy-minimap-mask-background-color-props,
      var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))
    );
    stroke: var(
      --xy-minimap-mask-stroke-color-props,
      var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))
    );
    stroke-width: var(
      --xy-minimap-mask-stroke-width-props,
      var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))
    );
  }
.react-flow__minimap-node {
    fill: var(
      --xy-minimap-node-background-color-props,
      var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))
    );
    stroke: var(
      --xy-minimap-node-stroke-color-props,
      var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))
    );
    stroke-width: var(
      --xy-minimap-node-stroke-width-props,
      var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))
    );
  }
.react-flow__background-pattern.dots {
    fill: var(
      --xy-background-pattern-color-props,
      var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))
    );
  }
.react-flow__background-pattern.lines {
    stroke: var(
      --xy-background-pattern-color-props,
      var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))
    );
  }
.react-flow__background-pattern.cross {
    stroke: var(
      --xy-background-pattern-color-props,
      var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))
    );
  }
.react-flow__controls {
  display: flex;
  flex-direction: column;
  box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
}
.react-flow__controls.horizontal {
    flex-direction: row;
  }
.react-flow__controls-button {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 26px;
    width: 26px;
    padding: 4px;
    border: none;
    background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));
    border-bottom: 1px solid
      var(
        --xy-controls-button-border-color-props,
        var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
      );
    color: var(
      --xy-controls-button-color-props,
      var(--xy-controls-button-color, var(--xy-controls-button-color-default))
    );
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
.react-flow__controls-button svg {
      width: 100%;
      max-width: 12px;
      max-height: 12px;
      fill: currentColor;
    }
.react-flow__edge.updating .react-flow__edge-path {
      stroke: #777;
    }
.react-flow__edge-text {
    font-size: 10px;
  }
.react-flow__node.selectable:focus,
  .react-flow__node.selectable:focus-visible {
    outline: none;
  }
.react-flow__node-input,
.react-flow__node-default,
.react-flow__node-output,
.react-flow__node-group {
  padding: 10px;
  border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
  width: 150px;
  font-size: 12px;
  color: var(--xy-node-color, var(--xy-node-color-default));
  text-align: center;
  border: var(--xy-node-border, var(--xy-node-border-default));
  background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
}
.react-flow__node-input.selectable:hover, .react-flow__node-default.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {
      box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
    }
.react-flow__node-input.selectable.selected,
    .react-flow__node-input.selectable:focus,
    .react-flow__node-input.selectable:focus-visible,
    .react-flow__node-default.selectable.selected,
    .react-flow__node-default.selectable:focus,
    .react-flow__node-default.selectable:focus-visible,
    .react-flow__node-output.selectable.selected,
    .react-flow__node-output.selectable:focus,
    .react-flow__node-output.selectable:focus-visible,
    .react-flow__node-group.selectable.selected,
    .react-flow__node-group.selectable:focus,
    .react-flow__node-group.selectable:focus-visible {
      box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
    }
.react-flow__node-group {
  background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));
}
.react-flow__nodesselection-rect,
.react-flow__selection {
  background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
  border: var(--xy-selection-border, var(--xy-selection-border-default));
}
.react-flow__nodesselection-rect:focus,
  .react-flow__nodesselection-rect:focus-visible,
  .react-flow__selection:focus,
  .react-flow__selection:focus-visible {
    outline: none;
  }
.react-flow__controls-button:hover {
      background: var(
        --xy-controls-button-background-color-hover-props,
        var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))
      );
      color: var(
        --xy-controls-button-color-hover-props,
        var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))
      );
    }
.react-flow__controls-button:disabled {
      pointer-events: none;
    }
.react-flow__controls-button:disabled svg {
        fill-opacity: 0.4;
      }
.react-flow__controls-button:last-child {
    border-bottom: none;
  }
.react-flow__controls.horizontal .react-flow__controls-button {
    border-bottom: none;
    border-right: 1px solid
      var(
        --xy-controls-button-border-color-props,
        var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
      );
  }
.react-flow__controls.horizontal .react-flow__controls-button:last-child {
    border-right: none;
  }
.react-flow__resize-control {
  position: absolute;
}
.react-flow__resize-control.left,
.react-flow__resize-control.right {
  cursor: ew-resize;
}
.react-flow__resize-control.top,
.react-flow__resize-control.bottom {
  cursor: ns-resize;
}
.react-flow__resize-control.top.left,
.react-flow__resize-control.bottom.right {
  cursor: nwse-resize;
}
.react-flow__resize-control.bottom.left,
.react-flow__resize-control.top.right {
  cursor: nesw-resize;
}
/* handle styles */
.react-flow__resize-control.handle {
  width: 5px;
  height: 5px;
  border: 1px solid #fff;
  border-radius: 1px;
  background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
  translate: -50% -50%;
}
.react-flow__resize-control.handle.left {
  left: 0;
  top: 50%;
}
.react-flow__resize-control.handle.right {
  left: 100%;
  top: 50%;
}
.react-flow__resize-control.handle.top {
  left: 50%;
  top: 0;
}
.react-flow__resize-control.handle.bottom {
  left: 50%;
  top: 100%;
}
.react-flow__resize-control.handle.top.left {
  left: 0;
}
.react-flow__resize-control.handle.bottom.left {
  left: 0;
}
.react-flow__resize-control.handle.top.right {
  left: 100%;
}
.react-flow__resize-control.handle.bottom.right {
  left: 100%;
}
/* line styles */
.react-flow__resize-control.line {
  border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
  border-width: 0;
  border-style: solid;
}
.react-flow__resize-control.line.left,
.react-flow__resize-control.line.right {
  width: 1px;
  transform: translate(-50%, 0);
  top: 0;
  height: 100%;
}
.react-flow__resize-control.line.left {
  left: 0;
  border-left-width: 1px;
}
.react-flow__resize-control.line.right {
  left: 100%;
  border-right-width: 1px;
}
.react-flow__resize-control.line.top,
.react-flow__resize-control.line.bottom {
  height: 1px;
  transform: translate(0, -50%);
  left: 0;
  width: 100%;
}
.react-flow__resize-control.line.top {
  top: 0;
  border-top-width: 1px;
}
.react-flow__resize-control.line.bottom {
  border-bottom-width: 1px;
  top: 100%;
}
.react-flow__edge-textbg {
  fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
}
.react-flow__edge-text {
  fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
}
