/* Laercio Consultoria - camada global de botoes liquid glass.
   Preserva a intencao visual de cada botao: verde continua verde, perigo continua vermelho,
   mas todos ganham vidro, brilho interno e hover mais executivo. */

:root {
  --lc-btn-glass-line: rgba(15, 118, 78, .16);
  --lc-btn-glass-line-strong: rgba(21, 128, 61, .34);
  --lc-btn-glass-ink: #102033;
  --lc-btn-glass-muted: #475569;
  --lc-btn-glass-shadow: 0 12px 28px -22px rgba(6, 78, 59, .42);
  --lc-btn-glass-inset: inset 0 1px 0 rgba(255,255,255,.72), inset 0 -1px 0 rgba(21,128,61,.08);
}

:where(
  button:not(.nav-item):not(.gfl-beta-collapse):not(.gfl-beta-user-btn):not(.gfl-beta-company-row):not(.gfl-beta-company-picker-close):not([data-window-action]),
  a.button,
  a.btn,
  .button,
  .btn,
  .top-tab,
  .folder-chip,
  .portal-card,
  .dp-shortcut,
  .install-button,
  .segmented button,
  .chart-card-actions button,
  .ms-toolbar button,
  .command-menu a,
  .command-menu button
) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: var(--lc-btn-glass-line) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.68), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.70), rgba(255,255,255,.36) 52%, rgba(236,253,245,.28)),
    rgba(255,255,255,.42) !important;
  color: var(--lc-btn-glass-ink) !important;
  box-shadow: var(--lc-btn-glass-shadow), var(--lc-btn-glass-inset) !important;
  backdrop-filter: blur(14px) saturate(1.36);
  -webkit-backdrop-filter: blur(14px) saturate(1.36);
  text-shadow: none;
  transition:
    transform .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease,
    color .18s ease,
    filter .18s ease !important;
}

:where(
  button:not(.nav-item):not(.gfl-beta-collapse):not(.gfl-beta-user-btn):not(.gfl-beta-company-row):not(.gfl-beta-company-picker-close):not([data-window-action]),
  a.button,
  a.btn,
  .button,
  .btn,
  .top-tab,
  .folder-chip,
  .portal-card,
  .dp-shortcut,
  .install-button,
  .segmented button,
  .chart-card-actions button,
  .ms-toolbar button,
  .command-menu a,
  .command-menu button
)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background:
    linear-gradient(118deg, transparent 0 22%, rgba(255,255,255,.36) 27%, rgba(255,255,255,.06) 34%, transparent 44% 100%),
    radial-gradient(circle at 88% 0%, rgba(34,197,94,.12), transparent 38%);
  background-size: 190% 190%, 100% 100%;
  opacity: .52;
  animation: lcButtonGlassSheen 8s ease-in-out infinite;
}

:where(
  button:not(.nav-item):not(.gfl-beta-collapse):not(.gfl-beta-user-btn):not(.gfl-beta-company-row):not(.gfl-beta-company-picker-close):not([data-window-action]),
  a.button,
  a.btn,
  .button,
  .btn,
  .top-tab,
  .folder-chip,
  .portal-card,
  .dp-shortcut,
  .install-button,
  .segmented button,
  .chart-card-actions button,
  .ms-toolbar button,
  .command-menu a,
  .command-menu button
):hover:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(-1px) !important;
  border-color: var(--lc-btn-glass-line-strong) !important;
  filter: brightness(1.015);
  box-shadow:
    0 16px 34px -24px rgba(6,78,59,.52),
    0 0 0 3px rgba(34,197,94,.075),
    var(--lc-btn-glass-inset) !important;
}

:where(
  button:not(.nav-item):not(.gfl-beta-collapse):not(.gfl-beta-user-btn):not(.gfl-beta-company-row):not(.gfl-beta-company-picker-close):not([data-window-action]),
  a.button,
  a.btn,
  .button,
  .btn,
  .top-tab,
  .folder-chip,
  .portal-card,
  .dp-shortcut,
  .install-button,
  .segmented button,
  .chart-card-actions button,
  .ms-toolbar button,
  .command-menu a,
  .command-menu button
):active {
  transform: translateY(0) scale(.992) !important;
}

:where(button:disabled, .button[aria-disabled="true"], .btn[aria-disabled="true"]) {
  opacity: .56 !important;
  cursor: not-allowed !important;
  transform: none !important;
  filter: grayscale(.08);
}

:where(
  .primary,
  button.primary,
  a.button.primary,
  .button.primary,
  .btn.primary,
  .btn-primary,
  .success,
  button.success,
  a.button.success,
  .button.success,
  .btn.success,
  .btn-success,
  .button-success,
  .action-primary,
  .install-button,
  .excel,
  .btn-excel,
  .btn-export,
  .btn-save,
  button.green,
  a.button.green,
  .button.green,
  .btn.green,
  button[data-action*="excel" i],
  button[data-action*="export" i],
  button[data-action*="salvar" i],
  button[data-action*="confirmar" i]
) {
  border-color: rgba(134,239,172,.34) !important;
  color: #f8fffb !important;
  background:
    radial-gradient(circle at 22% 0%, rgba(255,255,255,.36), transparent 42%),
    linear-gradient(145deg, rgba(34,197,94,.88), rgba(15,143,69,.78) 45%, rgba(5,95,53,.90)),
    rgba(15,143,69,.78) !important;
  box-shadow:
    0 18px 38px -26px rgba(21,128,61,.72),
    0 0 0 1px rgba(255,255,255,.11) inset,
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -1px 0 rgba(4,47,46,.22) !important;
  text-shadow: 0 1px 1px rgba(3,42,28,.34);
}

:where(
  .primary,
  button.primary,
  a.button.primary,
  .button.primary,
  .btn.primary,
  .btn-primary,
  .success,
  button.success,
  a.button.success,
  .button.success,
  .btn.success,
  .btn-success,
  .button-success,
  .action-primary,
  .install-button,
  .excel,
  .btn-excel,
  .btn-export,
  .btn-save,
  button.green,
  a.button.green,
  .button.green,
  .btn.green,
  button[data-action*="excel" i],
  button[data-action*="export" i],
  button[data-action*="salvar" i],
  button[data-action*="confirmar" i]
):hover:not(:disabled) {
  box-shadow:
    0 20px 42px -24px rgba(21,128,61,.82),
    0 0 0 4px rgba(34,197,94,.12),
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(4,47,46,.22) !important;
}

:where(.ghost, button.ghost, a.button.ghost, .button.ghost, .btn.ghost):not(.danger):not(.danger-link) {
  color: #123524 !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.82), transparent 44%),
    linear-gradient(145deg, rgba(255,255,255,.72), rgba(248,250,252,.42)) !important;
}

:where(.danger, button.danger, .button.danger, .btn-danger, .button-danger, .ghost.danger, .danger-link, button[data-action*="excluir" i], button[data-action*="delete" i], button[data-action*="remover" i]) {
  border-color: rgba(248,113,113,.32) !important;
  color: #991b1b !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.70), transparent 42%),
    linear-gradient(145deg, rgba(254,242,242,.82), rgba(254,202,202,.42)) !important;
  box-shadow:
    0 16px 34px -26px rgba(185,28,28,.38),
    inset 0 1px 0 rgba(255,255,255,.64),
    inset 0 -1px 0 rgba(185,28,28,.10) !important;
}

:where(.danger, button.danger, .button.danger, .btn-danger, .button-danger, .ghost.danger, .danger-link, button[data-action*="excluir" i], button[data-action*="delete" i], button[data-action*="remover" i]):hover:not(:disabled) {
  color: #fff !important;
  border-color: rgba(248,113,113,.46) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.30), transparent 42%),
    linear-gradient(145deg, rgba(248,113,113,.88), rgba(185,28,28,.82)) !important;
}

:where(.blue, button.blue, .button.blue, .btn.blue) {
  border-color: rgba(96,165,250,.34) !important;
  color: #eff6ff !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,.34), transparent 42%),
    linear-gradient(145deg, rgba(59,130,246,.88), rgba(29,78,216,.82)) !important;
}

:where(.warn, button.warn, .button.warn, .btn.warn, .amber, button.amber) {
  border-color: rgba(251,191,36,.34) !important;
  color: #78350f !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,.74), transparent 42%),
    linear-gradient(145deg, rgba(255,251,235,.82), rgba(253,230,138,.48)) !important;
}

:where(.top-tab.active, .folder-chip.active, .segmented button.active) {
  color: #052e16 !important;
  border-color: rgba(21,128,61,.40) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.78), transparent 42%),
    linear-gradient(145deg, rgba(220,252,231,.88), rgba(187,247,208,.48)) !important;
  box-shadow:
    0 15px 30px -24px rgba(21,128,61,.58),
    0 0 0 4px rgba(34,197,94,.08),
    var(--lc-btn-glass-inset) !important;
}

:where(.icon-btn, button.icon-btn) {
  border-radius: 12px !important;
  padding: 0 !important;
}

.chat-head :where(button.icon-btn, .icon-btn) {
  color: #fff !important;
  border-color: rgba(255,255,255,.18) !important;
  background:
    radial-gradient(circle at 28% 0%, rgba(255,255,255,.28), transparent 42%),
    rgba(255,255,255,.12) !important;
}

@keyframes lcButtonGlassSheen {
  0%, 100% { background-position: 0% 18%, 0 0; opacity: .42; }
  50% { background-position: 100% 78%, 0 0; opacity: .72; }
}

@media (prefers-reduced-motion: reduce) {
  :where(button, a.button, a.btn, .button, .btn, .top-tab, .folder-chip, .portal-card, .dp-shortcut, .install-button)::after {
    animation: none !important;
  }
}

/* A tabela de Notas Fiscais precisa ficar extremamente leve: ela pode ter
   centenas/milhares de linhas, entao os botoes internos voltam ao visual antigo. */
#view-notas .notes-table-wrap :where(button, a.button, a.btn, .button, .btn) {
  isolation: auto !important;
  overflow: visible !important;
  border-color: #dbe5ee !important;
  background: #fff !important;
  color: #33485f !important;
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  transition: background .12s ease, border-color .12s ease, color .12s ease !important;
}

#view-notas .notes-table-wrap :where(button, a.button, a.btn, .button, .btn)::after {
  display: none !important;
  animation: none !important;
}

#view-notas .notes-table-wrap :where(button, a.button, a.btn, .button, .btn):hover:not(:disabled) {
  transform: none !important;
  border-color: #b9c6d4 !important;
  background: #f8fafc !important;
  box-shadow: none !important;
}

#view-notas .notes-table-wrap :where(.icon-btn, button.icon-btn) {
  width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 !important;
  border-radius: 8px !important;
}
