/* =============================
   HEADER FIXO
============================= */
.top-header {
  position: relative;
  width: 100%;
  max-width: 1240px;
  min-height: 96px;
  padding: 20px 28px;
  margin: 0 auto 18px;
  background:
    radial-gradient(circle at top left, rgba(255, 193, 7, 0.18), transparent 24%),
    linear-gradient(135deg, #0f2740, #17314b 48%, #21496b 100%);
  color: white;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  z-index: 1100;
  box-shadow: 0 18px 40px rgba(7, 18, 31, 0.28);
  border-radius: 30px;
}

/* Local network mobile polish */
@media (max-width: 900px) {
  body.platform-android {
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 86px);
  }

  body.platform-android .top-header {
    gap: 10px;
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(7, 18, 31, 0.12);
  }

  body.platform-android .top-header__brand h1 {
    font-size: clamp(1.28rem, 5.4vw, 1.62rem);
    letter-spacing: 0;
  }

  body.platform-android .top-header__eyebrow {
    max-width: 100%;
    white-space: normal;
    line-height: 1.25;
  }

  body.platform-android .top-header__badge,
  body.platform-android .top-header__context {
    min-height: 44px;
    border-radius: 12px;
  }

  body.platform-android .app-section,
  body.platform-android form,
  body.platform-android .filtros,
  body.platform-android .admin-tools__card,
  body.platform-android .analytics-card,
  body.platform-android .analytics-kpi,
  body.platform-android .stock-intelligence,
  body.platform-android .maquina-resumo-mensal {
    border-radius: 14px;
    padding: 14px;
  }

  body.platform-android .section-header h2 {
    font-size: clamp(1.22rem, 5.2vw, 1.55rem);
  }

  body.platform-android .section-header p,
  body.platform-android .section-note,
  body.platform-android .page-intro {
    -webkit-line-clamp: 3;
  }

  body.platform-android .android-bottom-nav {
    right: calc(env(safe-area-inset-right, 0px) + 8px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    left: calc(env(safe-area-inset-left, 0px) + 8px);
    max-width: none;
    width: auto;
    min-width: 0;
    justify-content: space-between;
    padding: 6px;
    border-radius: 18px;
  }

  body.platform-android .android-bottom-nav__item {
    min-height: 44px;
    padding: 8px 6px;
    border-radius: 14px;
    font-size: 11px;
  }

  body.platform-android #btn-dark-mode {
    display: none;
  }

  body.platform-android #tabela-movimentacoes,
  body.platform-android #tabela-producao {
    display: block;
    min-width: 0;
    width: 100%;
    background: transparent;
    box-shadow: none;
  }

  body.platform-android #tabela-movimentacoes thead,
  body.platform-android #tabela-producao thead {
    display: none;
  }

  body.platform-android #tabela-movimentacoes tbody,
  body.platform-android #tabela-producao tbody,
  body.platform-android #tabela-movimentacoes tr,
  body.platform-android #tabela-producao tr,
  body.platform-android #tabela-movimentacoes td,
  body.platform-android #tabela-producao td {
    display: block;
    width: 100%;
  }

  body.platform-android #tabela-movimentacoes tr,
  body.platform-android #tabela-producao tr {
    margin-bottom: 12px;
    border-radius: 14px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 18px rgba(17, 37, 56, 0.08);
    overflow: hidden;
  }

  body.platform-android.dark-mode #tabela-movimentacoes tr,
  body.platform-android.dark-mode #tabela-producao tr {
    background: rgba(16, 27, 44, 0.96);
    border-color: rgba(255, 255, 255, 0.08);
  }

  body.platform-android #tabela-movimentacoes td,
  body.platform-android #tabela-producao td {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 11px 13px;
    border-bottom: 1px solid rgba(216, 224, 232, 0.58);
  }

  body.platform-android #tabela-movimentacoes td::before,
  body.platform-android #tabela-producao td::before {
    display: block;
    content: "";
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted-text);
  }

  body.platform-android #tabela-movimentacoes td:nth-child(1)::before { content: "Item"; }
  body.platform-android #tabela-movimentacoes td:nth-child(2)::before { content: "Tipo"; }
  body.platform-android #tabela-movimentacoes td:nth-child(3)::before { content: "Quantidade"; }
  body.platform-android #tabela-movimentacoes td:nth-child(4)::before { content: "Data"; }
  body.platform-android #tabela-movimentacoes td:nth-child(5)::before { content: "Usuario"; }
  body.platform-android #tabela-movimentacoes td:nth-child(6)::before { content: "Compra / NF"; }
  body.platform-android #tabela-movimentacoes td:nth-child(7)::before { content: "Destino"; }

  body.platform-android #tabela-producao td:nth-child(1)::before { content: "Status"; }
  body.platform-android #tabela-producao td:nth-child(2)::before { content: "Componente"; }
  body.platform-android #tabela-producao td:nth-child(3)::before { content: "Quantidade"; }
  body.platform-android #tabela-producao td:nth-child(4)::before { content: "Data"; }
  body.platform-android #tabela-producao td:nth-child(5)::before { content: "Usuario"; }
  body.platform-android #tabela-producao td:nth-child(6)::before { content: "Acoes"; }
}

.top-header__brand {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-left: 0;
}

.top-header__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.92);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.top-header__brand h1 {
  margin: 0;
  font-size: clamp(1.5rem, 2.4vw, 2.35rem);
  letter-spacing: -0.03em;
}

.top-header__brand p {
  margin: 4px 0 0;
  max-width: 760px;
  color: rgba(240, 244, 248, 0.84);
  font-size: 14px;
  line-height: 1.5;
}

.top-header__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.top-header__badge,
.top-header__context {
  min-height: 58px;
  padding: 10px 14px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
}

.top-header__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #f8fbff;
}

.top-header__badge.status-online {
  background: rgba(46, 125, 50, 0.22);
  color: #e8ffe9;
}

.top-header__badge.status-warning {
  background: rgba(245, 179, 0, 0.2);
  color: #fff2bf;
}

.top-header__badge.status-error {
  background: rgba(198, 40, 40, 0.24);
  color: #ffe0e0;
}

.top-header__context {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 150px;
}

.top-header__context-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.68);
}

.top-header__context strong {
  color: #fff;
  font-size: 14px;
}

.top-header__context select {
  min-width: 190px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-weight: 600;
}

.top-header__context select option {
  color: #192534;
}

.top-header__logout {
  width: auto;
  min-width: 142px;
  min-height: 58px;
  padding: 12px 18px;
  border-radius: 18px;
  background: rgba(198, 40, 40, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff5f5;
  box-shadow: none;
}

.top-header__logout:hover {
  background: rgba(198, 40, 40, 0.28);
}

.offline-auth-toast {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 1600;
  max-width: min(420px, calc(100vw - 32px));
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(245, 179, 0, 0.95);
  border: 1px solid rgba(125, 90, 0, 0.18);
  color: #4d3800;
  box-shadow: 0 18px 36px rgba(64, 48, 0, 0.22);
  line-height: 1.55;
}

/* =============================
   RESET E VARIÁVEIS
============================= */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg-color: #eef3f8;
  --bg-accent: #dde6ef;
  --text-color: #192534;
  --muted-text: #5f6d7d;
  --primary-color: #133654;
  --primary-hover: #1f4a70;
  --card-bg: rgba(255, 255, 255, 0.92);
  --card-bg-solid: #ffffff;
  --table-header: #eef3f7;
  --border-color: #d8e0e8;
  --accent-color: #f6b73c;
  --accent-soft: rgba(246, 183, 60, 0.18);
  --status-active: #33a060;
  --status-inactive: #d54c4c;
  --status-online-bg: rgba(46, 125, 50, 0.12);
  --status-online-text: #1c5f32;
  --status-warning-bg: rgba(245, 179, 0, 0.16);
  --status-warning-text: #7d5a00;
  --status-error-bg: rgba(198, 40, 40, 0.14);
  --status-error-text: #9e2020;
  --shadow-soft: 0 18px 38px rgba(17, 37, 56, 0.08);
  --shadow-panel: 0 22px 48px rgba(17, 37, 56, 0.12);
}

body.dark-mode {
  --bg-color: #08121f;
  --bg-accent: #102236;
  --text-color: #e5edf7;
  --muted-text: #9fb1c4;
  --primary-color: #17314b;
  --primary-hover: #265476;
  --card-bg: rgba(16, 27, 44, 0.9);
  --card-bg-solid: #101b2c;
  --table-header: #15253b;
  --border-color: #22354c;
  --accent-color: #f6b73c;
  --accent-soft: rgba(246, 183, 60, 0.12);
  --status-active: #4CAF50;
  --status-inactive: #F44336;
  --status-online-bg: rgba(56, 142, 60, 0.18);
  --status-online-text: #D7FFD9;
  --status-warning-bg: rgba(255, 193, 7, 0.16);
  --status-warning-text: #FFE082;
  --status-error-bg: rgba(244, 67, 54, 0.16);
  --status-error-text: #FFCDD2;
  --shadow-soft: 0 20px 48px rgba(0, 0, 0, 0.28);
  --shadow-panel: 0 24px 58px rgba(0, 0, 0, 0.34);
}

/* =============================
   BASE
============================= */
body {
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  padding: 24px;
  padding-bottom: 96px;
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.14), transparent 28%),
    radial-gradient(circle at top left, rgba(19, 54, 84, 0.06), transparent 24%),
    linear-gradient(180deg, #f6f9fc 0%, var(--bg-color) 55%, var(--bg-accent) 100%);
  color: var(--text-color);
  transition: background 0.3s ease, color 0.3s ease;
}

body.dark-mode {
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.1), transparent 26%),
    radial-gradient(circle at top left, rgba(37, 84, 118, 0.08), transparent 24%),
    linear-gradient(180deg, #08121f 0%, #0c1726 52%, #102236 100%);
}

h1, h2, h3 {
  margin-bottom: 20px;
  letter-spacing: -0.03em;
}

.container {
  max-width: 1240px;
  margin: auto;
  padding: 0;
  transition: box-shadow 0.3s ease, background 0.3s ease;
}

.page-intro {
  margin: 0;
  color: var(--muted-text);
  line-height: 1.6;
}

.workspace-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.95fr);
  gap: 20px;
  margin-bottom: 20px;
}

.workspace-hero__content,
.workspace-hero__aside {
  border-radius: 28px;
  border: 1px solid rgba(19, 54, 84, 0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,250,252,0.9));
  box-shadow: var(--shadow-panel);
}

.workspace-hero__content {
  padding: 32px;
  position: relative;
  overflow: hidden;
}

.workspace-hero__content::after {
  content: "";
  position: absolute;
  inset: auto -40px -70px auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 183, 60, 0.22), transparent 68%);
}

.workspace-hero__eyebrow {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.workspace-hero__content h2 {
  margin-bottom: 14px;
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 1.02;
}

.workspace-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.workspace-hero__action {
  width: auto;
  min-width: 150px;
  padding: 13px 18px;
  border-radius: 14px;
  box-shadow: 0 14px 24px rgba(19, 54, 84, 0.16);
}

.workspace-hero__action--secondary {
  background: linear-gradient(135deg, #21496b, #2b628d);
}

.workspace-hero__action--ghost {
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  box-shadow: none;
}

.workspace-hero__action--ghost:hover {
  background: rgba(19, 54, 84, 0.14);
}

.workspace-hero__aside {
  display: grid;
  gap: 16px;
  padding: 20px;
  background: linear-gradient(180deg, rgba(19,54,84,0.94), rgba(15,39,64,0.98));
}

.workspace-status-card {
  padding: 22px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.workspace-status-card__label {
  display: block;
  margin-bottom: 10px;
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.workspace-status-card strong {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-size: 1.15rem;
}

.workspace-status-card p {
  margin: 0;
  color: rgba(240, 244, 248, 0.82);
  line-height: 1.55;
}

body.dark-mode .workspace-hero__content,
body.dark-mode .overview-card,
body.dark-mode .app-section,
body.dark-mode .filtros,
body.dark-mode form,
body.dark-mode .admin-tools__card,
body.dark-mode .painel-conexao {
  background: linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.92));
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .workspace-hero__action--ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .overview-card--alert {
  background: linear-gradient(180deg, rgba(58,24,24,0.56), rgba(39,14,14,0.48));
}

body.dark-mode .overview-card__label,
body.dark-mode .overview-card p {
  color: #b8c4d6;
}

.overview-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.overview-card {
  grid-column: span 1;
  padding: 22px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
  min-width: 0;
}

.overview-card--primary {
  background: linear-gradient(135deg, rgba(19,54,84,0.98), rgba(33,73,107,0.94));
  color: #fff;
}

.overview-card--alert {
  border-color: rgba(198, 40, 40, 0.16);
  background: linear-gradient(180deg, rgba(255,252,252,0.96), rgba(253,242,242,0.92));
}

.overview-card--wide {
  grid-column: span 2;
}

.overview-card__label {
  display: block;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-text);
}

.overview-card strong {
  display: block;
  margin-bottom: 10px;
  font-size: clamp(1.7rem, 2vw, 2.4rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.overview-card--wide strong {
  font-size: clamp(1.4rem, 1.7vw, 2.2rem);
}

.overview-card p {
  margin: 0;
  color: var(--muted-text);
  line-height: 1.5;
  font-size: 14px;
}

.overview-card--primary .overview-card__label,
.overview-card--primary p {
  color: rgba(255, 255, 255, 0.76);
}

.loss-recovery-dashboard {
  margin-bottom: 28px;
  padding: 24px;
  border: 1px solid rgba(198, 40, 40, 0.12);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(252, 248, 248, 0.94));
  box-shadow: var(--shadow-soft);
}

.loss-recovery-dashboard__header {
  align-items: center;
}

.loss-recovery-dashboard__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.loss-recovery-dashboard > .section-note {
  margin: 4px 0 0;
}

body.dark-mode .loss-recovery-dashboard {
  background: linear-gradient(180deg, rgba(40, 24, 29, 0.74), rgba(22, 20, 27, 0.84));
  border-color: rgba(255, 132, 132, 0.18);
}

@media (max-width: 1100px) {
  .loss-recovery-dashboard__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .loss-recovery-dashboard {
    padding: 18px;
  }

  .loss-recovery-dashboard__header {
    align-items: stretch;
    flex-direction: column;
  }

  .loss-recovery-dashboard__grid {
    grid-template-columns: 1fr;
  }
}

/* =============================
   PAINEL DE CONEXÃO
============================= */
.painel-conexao {
  display: grid;
  grid-template-columns: minmax(260px, 1.2fr) minmax(280px, 1fr);
  gap: 18px;
  margin-bottom: 24px;
  padding: 26px;
  border-radius: 26px;
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.16), transparent 35%),
    linear-gradient(135deg, rgba(19, 54, 84, 0.06), rgba(44, 95, 140, 0.02));
  border: 1px solid rgba(19, 54, 84, 0.1);
  box-shadow: var(--shadow-soft);
}

.painel-conexao__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(27, 58, 87, 0.08);
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.painel-conexao__texto,
.painel-conexao__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.painel-conexao__texto h2,
.painel-conexao__form label {
  margin-bottom: 0;
}

.painel-conexao__status,
.painel-conexao__detail,
.painel-conexao__user {
  margin: 0;
  line-height: 1.5;
}

.painel-conexao__status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--status-warning-bg);
  color: var(--status-warning-text);
  font-weight: 700;
}

.painel-conexao__status.status-online {
  background: var(--status-online-bg);
  color: var(--status-online-text);
}

.painel-conexao__status.status-warning {
  background: var(--status-warning-bg);
  color: var(--status-warning-text);
}

.painel-conexao__status.status-error {
  background: var(--status-error-bg);
  color: var(--status-error-text);
}

.painel-conexao__detail {
  color: var(--text-color);
  opacity: 0.9;
}

.painel-conexao__helper,
.painel-conexao__security {
  margin: 0;
  line-height: 1.6;
  font-size: 14px;
  opacity: 0.92;
}

.painel-conexao__security {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(27, 58, 87, 0.06);
  border: 1px solid rgba(27, 58, 87, 0.08);
}

.painel-conexao__user {
  min-height: 22px;
  font-size: 14px;
  font-weight: 600;
}

.painel-conexao__acoes {
  display: grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap: 10px;
}

body.auth-required .menu-lateral,
body.auth-required .btn-hamburger {
  display: none;
}

body.auth-required .content-wrapper {
  margin-top: 0;
  min-height: calc(100vh - 120px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px 16px;
}

body.auth-required .container {
  width: min(720px, 100%);
}

body.auth-required .workspace-hero,
body.auth-required .overview-grid {
  display: none;
}

body.auth-required .painel-conexao {
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 0;
  padding: 32px;
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.2), transparent 32%),
    linear-gradient(160deg, rgba(19, 54, 84, 0.12), rgba(44, 95, 140, 0.04));
}

body.auth-required .painel-conexao__texto,
body.auth-required .painel-conexao__form {
  gap: 10px;
}

body.auth-required .painel-conexao h2 {
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  line-height: 1.2;
}

/* =============================
   MENU LATERAL
============================= */
.menu-lateral {
  position: sticky;
  top: 12px;
  max-width: 1240px;
  margin: 0 auto 20px;
  background:
    linear-gradient(180deg, rgba(15,39,64,0.96), rgba(19,54,84,0.96));
  color: #fff;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: visible;
  scrollbar-width: thin;
  transition: box-shadow 0.3s ease, background 0.3s ease;
  z-index: 1050;
  border-radius: 24px;
  box-shadow: 0 22px 42px rgba(10, 20, 34, 0.28);
}

.menu-lateral.active {
  box-shadow: 0 22px 42px rgba(10, 20, 34, 0.28);
}

.menu-lateral__grupo {
  display: flex;
  flex: 0 0 auto;
  position: relative;
  align-items: center;
  gap: 10px;
}

.menu-lateral__toggle,
.menu-lateral a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 46px;
  padding: 12px 18px;
  color: white;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid transparent;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  white-space: nowrap;
  transition: background 0.3s, border-color 0.3s, transform 0.2s, color 0.2s;
}

.menu-lateral__toggle {
  cursor: pointer;
  gap: 10px;
}

.menu-lateral__toggle-icon {
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 0.2s ease;
}

.menu-lateral__grupo.is-open .menu-lateral__toggle-icon {
  transform: rotate(225deg) translateY(-1px);
}

.menu-lateral__submenu {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 220px;
  padding: 12px;
  background: linear-gradient(180deg, rgba(11, 29, 48, 0.98), rgba(16, 43, 68, 0.98));
  border: 1px solid rgba(255, 202, 40, 0.2);
  border-radius: 20px;
  box-shadow: 0 18px 34px rgba(5, 13, 22, 0.28);
  z-index: 20;
}

.menu-lateral__submenu .menu-lateral__link,
.menu-lateral__submenu a {
  justify-content: flex-start;
  width: 100%;
}

.menu-lateral__submenu[hidden] {
  display: none;
}

.menu-lateral__grupo.is-open .menu-lateral__toggle,
.menu-lateral__toggle.active {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 202, 40, 0.58);
  color: #fff7db;
}

.menu-lateral__toggle:hover,
.menu-lateral__toggle:focus,
.menu-lateral a:hover,
.menu-lateral a:focus {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 202, 40, 0.45);
  transform: translateY(-1px);
}

.menu-lateral a.active {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 202, 40, 0.58);
  color: #fff7db;
}

.menu-lateral::-webkit-scrollbar {
  height: 8px;
}

.menu-lateral::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.18);
  border-radius: 999px;
}

/* =============================
   BOTÃO HAMBÚRGUER
============================= */
.btn-hamburger {
  display: none;
  position: sticky;
  top: 12px;
  z-index: 1180;
  width: 58px;
  height: 58px;
  margin: 0 0 14px auto;
  padding: 0;
  border-radius: 18px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: linear-gradient(135deg, rgba(15,39,64,0.96), rgba(33,73,107,0.96));
  box-shadow: 0 18px 28px rgba(7, 18, 31, 0.22);
}

.btn-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: #fff;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.btn-hamburger:hover {
  background-color: var(--primary-hover);
  transform: scale(1.05);
}

body.mobile-menu-open .btn-hamburger span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

body.mobile-menu-open .btn-hamburger span:nth-child(2) {
  opacity: 0;
}

body.mobile-menu-open .btn-hamburger span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 1120;
  background: rgba(8, 18, 31, 0.42);
  backdrop-filter: blur(4px);
}

/* =============================
   CONTEÚDO PRINCIPAL
============================= */
.content-wrapper {
  margin-top: 0;
  transition: margin-left 0.3s ease;
  padding-top: 0;
}
.menu-lateral.active ~ .content-wrapper {
  margin-left: 0;
}

/* =============================
   BOTÃO DE TEMA
============================= */
#btn-dark-mode {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: linear-gradient(135deg, rgba(15,39,64,0.96), rgba(33,73,107,0.96));
  color: white;
  border: none;
  border-radius: 18px;
  width: 56px;
  height: 56px;
  font-size: 1.3rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 18px 28px rgba(7, 18, 31, 0.24);
  transition: transform 0.2s ease, background 0.3s ease;
  z-index: 1200;
}

#btn-dark-mode:hover {
  background: var(--primary-hover);
  transform: scale(1.1);
}

/* =============================
   FORMULÁRIOS E FILTROS
============================= */
form, .filtros, .admin-tools__card, .app-section {
  margin-bottom: 20px;
  background: var(--card-bg);
  padding: 24px;
  border-radius: 26px;
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
  transition: background 0.3s, color 0.3s, border 0.3s;
  backdrop-filter: blur(12px);
}

.app-section {
  display: block;
}

.section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.section-header__eyebrow {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.section-header h2 {
  margin-bottom: 10px;
  font-size: clamp(1.45rem, 2vw, 2rem);
}

.section-header p {
  margin: 0;
  max-width: 760px;
  line-height: 1.65;
  color: var(--muted-text);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  align-items: end;
}

.field-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.field-group--wide {
  grid-column: span 2;
}

.field-group--full {
  grid-column: 1 / -1;
}

.field-group--action {
  grid-column: span 2;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.field-group--action button {
  width: auto;
  min-width: 180px;
}

input, button, select, textarea {
  margin: 0;
  padding: 13px 14px;
  width: 100%;
  border-radius: 14px;
  border: 1px solid var(--border-color);
  font-size: 15px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--text-color);
  transition: background 0.3s, color 0.3s, border 0.3s, box-shadow 0.3s, transform 0.2s;
}

body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea {
  background: rgba(6, 16, 28, 0.72);
  border-color: rgba(255, 255, 255, 0.08);
}

textarea {
  min-height: 180px;
  resize: vertical;
  font-family: inherit;
}

label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--muted-text);
}

input:focus, select:focus, textarea:focus {
  border-color: var(--primary-color);
  outline: none;
  box-shadow: 0 0 0 4px rgba(19, 54, 84, 0.08);
  transform: translateY(-1px);
}

button {
  background: linear-gradient(135deg, var(--primary-color), var(--primary-hover));
  color: white;
  cursor: pointer;
  transition: 0.3s;
  border: none;
  font-weight: 600;
  box-shadow: 0 14px 22px rgba(19, 54, 84, 0.14);
}

button:hover {
  background-color: var(--primary-hover);
  transform: translateY(-2px);
}

button[hidden] {
  display: none !important;
}

.btn-secondary {
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  border: 1px solid rgba(19, 54, 84, 0.14);
  box-shadow: none;
}

.btn-secondary:hover {
  background: rgba(19, 54, 84, 0.14);
}

.form-details {
  border: 1px dashed rgba(19, 54, 84, 0.18);
  border-radius: 20px;
  background: rgba(19, 54, 84, 0.03);
  padding: 14px 16px 16px;
}

.form-details summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--primary-color);
  list-style: none;
}

.form-details summary::-webkit-details-marker {
  display: none;
}

.form-details summary::after {
  content: "Expandir";
  float: right;
  color: var(--muted-text);
  font-weight: 600;
}

.form-details[open] summary::after {
  content: "Ocultar";
}

.form-grid--advanced {
  margin-top: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.acoes-rodape {
  margin-top: 20px;
}

.acoes-rodape--pdf {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(220px, max-content);
  gap: 14px;
  align-items: end;
}

.acoes-rodape--pdf .field-group {
  margin: 0;
}

.section-note {
  margin: -2px 0 18px;
  line-height: 1.6;
  color: var(--muted-text);
}

.prototype-disclaimer {
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(246, 183, 60, 0.12);
  border: 1px solid rgba(246, 183, 60, 0.18);
}

.admin-tools {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.admin-tools__card h3 {
  margin-bottom: 8px;
}

.admin-tools__card p {
  margin-bottom: 12px;
  line-height: 1.6;
  color: var(--muted-text);
}

.stock-intelligence {
  margin-bottom: 20px;
  padding: 22px;
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
}

.stock-intelligence__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.stock-intelligence__eyebrow {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.stock-intelligence__header h3 {
  margin: 0 0 8px;
  font-size: 1.35rem;
}

.stock-intelligence__header p {
  margin: 0;
  line-height: 1.6;
  color: var(--muted-text);
}

.stock-intelligence__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.stock-mini-card {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(19, 54, 84, 0.04);
  border: 1px solid rgba(19, 54, 84, 0.08);
}

.stock-mini-card__label {
  display: inline-flex;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-text);
}

.stock-mini-card strong {
  display: block;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--primary-color);
}

.stock-intelligence__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.stock-fact {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(19, 54, 84, 0.08);
}

.stock-fact__label {
  display: inline-flex;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-text);
}

.stock-fact__value {
  margin: 0;
  line-height: 1.6;
  color: var(--text-color);
  white-space: pre-wrap;
  word-break: break-word;
}

.table-item {
  display: grid;
  gap: 6px;
}

.table-item__name {
  color: var(--text-color);
  font-size: 0.98rem;
}

.table-item__meta {
  color: var(--muted-text);
  font-size: 0.78rem;
  line-height: 1.5;
}

.linha-estoque-selecionada {
  box-shadow: inset 3px 0 0 rgba(246, 183, 60, 0.9);
}

.linha-ficha-estoque td {
  padding: 0 !important;
  border-right: none;
  background: transparent !important;
}

.stock-intelligence--inline {
  margin: 0;
  border-radius: 0 0 24px 24px;
  border-top: none;
  box-shadow: inset 0 1px 0 rgba(19, 54, 84, 0.05);
}

.page-insights {
  margin: 18px 0;
}

.page-insights__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.page-insights__card {
  display: grid;
  gap: 10px;
  padding: 18px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
}

.page-insights__card--danger {
  background:
    radial-gradient(circle at top right, rgba(214, 76, 76, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
}

.page-insights__card--warning {
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.14), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
}

.page-insights__card--success {
  background:
    radial-gradient(circle at top right, rgba(76, 175, 80, 0.12), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
}

.page-insights__tag {
  display: inline-flex;
  width: fit-content;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.page-insights__title {
  color: var(--text-color);
  font-size: 1rem;
  line-height: 1.5;
}

.page-insights__detail,
.page-insights__action,
.page-insights__empty {
  margin: 0;
  line-height: 1.6;
}

.page-insights__detail,
.page-insights__empty {
  color: var(--muted-text);
}

.page-insights__action {
  color: var(--text-color);
  font-weight: 600;
}

.analytics-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

.analytics-kpi {
  padding: 22px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
}

.analytics-kpi--alert {
  background:
    radial-gradient(circle at top right, rgba(214, 76, 76, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9));
}

.analytics-kpi__label {
  display: inline-flex;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-text);
}

.analytics-kpi strong {
  display: block;
  margin-bottom: 10px;
  font-size: clamp(1.7rem, 2.5vw, 2.4rem);
  line-height: 1.05;
  color: var(--primary-color);
}

.analytics-kpi p {
  margin: 0;
  line-height: 1.6;
  color: var(--muted-text);
}

.analytics-executive-note {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(19, 54, 84, 0.06);
  border: 1px solid rgba(19, 54, 84, 0.08);
  color: var(--text-color);
  font-size: 15px;
}

.analytics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.analytics-grid--executive {
  align-items: start;
}

.analytics-card {
  padding: 22px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,250,252,0.88));
  border: 1px solid rgba(19, 54, 84, 0.08);
  box-shadow: var(--shadow-soft);
}

.analytics-card--span-2 {
  grid-column: span 2;
}

.analytics-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.analytics-card__header h3 {
  margin: 0;
  font-size: 1.05rem;
}

.analytics-card__tag {
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.analytics-collapsible__toggle {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 16px;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.analytics-collapsible__toggle .analytics-card__header {
  margin-bottom: 0;
}

.analytics-collapsible__summary {
  margin: 0;
  color: var(--muted-text);
  line-height: 1.55;
}

.analytics-collapsible__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 1.1rem;
  font-weight: 700;
  grid-row: 1 / span 2;
}

.analytics-collapsible__panel {
  margin-top: 18px;
}

.analytics-collapsible__panel[hidden] {
  display: none;
}

.analytics-chart {
  display: grid;
  gap: 12px;
  min-height: 200px;
}

.analytics-chart__empty {
  padding: 18px;
  border-radius: 16px;
  background: rgba(19, 54, 84, 0.04);
  color: var(--muted-text);
  line-height: 1.6;
}

.analytics-chart__empty--compact {
  min-height: auto;
  margin: 0;
  padding: 14px 16px;
}

.analytics-bar {
  display: grid;
  gap: 8px;
}

.analytics-bar__caption {
  margin-top: -2px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--muted-text);
}

.analytics-bar__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.analytics-bar__rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
}

.analytics-bar__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.analytics-bar__value {
  font-size: 13px;
  color: var(--primary-color);
}

.analytics-bar__track {
  height: 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  overflow: hidden;
}

.analytics-bar__fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #21496b, #4c84ad);
}

.analytics-stack {
  display: grid;
  gap: 12px;
}

.analytics-economia-grupo {
  display: grid;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(19, 54, 84, 0.08);
  background: rgba(19, 54, 84, 0.04);
}

.analytics-economia-grupo__top,
.analytics-economia-item__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.analytics-economia-grupo__title,
.analytics-economia-item__name {
  font-size: 1rem;
}

.analytics-economia-grupo__badge,
.analytics-economia-item__value {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.analytics-economia-grupo__description,
.analytics-economia-item__detail,
.analytics-economia-item__action {
  margin: 0;
  line-height: 1.6;
}

.analytics-economia-grupo__description,
.analytics-economia-item__detail {
  color: var(--muted-text);
}

.analytics-economia-itens {
  display: grid;
  gap: 10px;
}

.analytics-economia-item {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(19, 54, 84, 0.06);
}

.analytics-economia-item__action {
  color: var(--text-color);
  font-weight: 600;
}

.analytics-alert {
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(19, 54, 84, 0.08);
  background: rgba(19, 54, 84, 0.04);
}

.analytics-alert--critico {
  background: rgba(198, 40, 40, 0.08);
  border-color: rgba(198, 40, 40, 0.16);
}

.analytics-alert--atencao {
  background: rgba(246, 183, 60, 0.12);
  border-color: rgba(246, 183, 60, 0.16);
}

.analytics-alert--estavel {
  background: rgba(46, 125, 50, 0.08);
  border-color: rgba(46, 125, 50, 0.14);
}

.analytics-alert__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.analytics-alert__title {
  font-size: 1rem;
}

.analytics-alert__status {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.analytics-alert__detail,
.analytics-alert__action {
  margin: 0;
  line-height: 1.6;
}

.analytics-alert__detail {
  color: var(--text-color);
}

.analytics-alert__action {
  margin-top: 6px;
  color: var(--muted-text);
  font-size: 13px;
}

.analytics-chart--trend {
  min-height: auto;
}

.analytics-trend {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(19, 54, 84, 0.04);
}

.analytics-trend__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.analytics-trend__header span {
  color: var(--muted-text);
  font-size: 13px;
}

.analytics-trend__bars {
  display: grid;
  gap: 8px;
}

.analytics-trend__bar {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.analytics-trend__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted-text);
}

.analytics-trend__track {
  height: 9px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  overflow: hidden;
}

.analytics-trend__fill {
  height: 100%;
  border-radius: inherit;
}

.analytics-trend__fill--entrada {
  background: linear-gradient(90deg, #2e7d32, #5dbb63);
}

.analytics-trend__fill--saida {
  background: linear-gradient(90deg, #0f5b8d, #4c84ad);
}

.analytics-trend__fill--compra {
  background: linear-gradient(90deg, #b9770e, #f6b73c);
}

.analytics-trend__value {
  font-size: 13px;
  color: var(--primary-color);
}

body.dark-mode .page-intro,
body.dark-mode .section-note,
body.dark-mode .admin-tools__card p,
body.dark-mode .section-header p,
body.dark-mode label {
  color: #b8c4d6;
}

body.dark-mode .prototype-disclaimer {
  background: rgba(246, 183, 60, 0.12);
  border-color: rgba(246, 183, 60, 0.24);
}

body.dark-mode .offline-auth-toast {
  background: rgba(245, 179, 0, 0.95);
  border-color: rgba(255, 224, 130, 0.2);
  color: #3b2a00;
}

body.dark-mode .analytics-kpi {
  background: linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .analytics-kpi--alert {
  background:
    radial-gradient(circle at top right, rgba(198, 40, 40, 0.16), transparent 36%),
    linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
}

body.dark-mode .analytics-kpi__label,
body.dark-mode .analytics-kpi p,
body.dark-mode .analytics-bar__caption,
body.dark-mode .analytics-trend__header span,
body.dark-mode .analytics-trend__label,
body.dark-mode .analytics-alert__action {
  color: #b8c4d6;
}

body.dark-mode .analytics-kpi strong {
  color: #edf4fb;
}

body.dark-mode .page-insights__card {
  background: linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .page-insights__card--danger {
  background:
    radial-gradient(circle at top right, rgba(198, 40, 40, 0.16), transparent 36%),
    linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
}

body.dark-mode .page-insights__card--warning {
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.16), transparent 36%),
    linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
}

body.dark-mode .page-insights__card--success {
  background:
    radial-gradient(circle at top right, rgba(76, 175, 80, 0.16), transparent 36%),
    linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
}

body.dark-mode .page-insights__tag {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .page-insights__title,
body.dark-mode .page-insights__action {
  color: #edf4fb;
}

body.dark-mode .page-insights__detail,
body.dark-mode .page-insights__empty {
  color: #b8c4d6;
}

body.dark-mode .analytics-card {
  background: linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.9));
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .analytics-card__tag,
body.dark-mode .analytics-bar__rank,
body.dark-mode .analytics-chart__empty,
body.dark-mode .analytics-bar__track {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .analytics-collapsible__summary {
  color: #b8c4d6;
}

body.dark-mode .analytics-collapsible__icon {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .analytics-economia-grupo,
body.dark-mode .analytics-economia-item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .analytics-economia-grupo__badge,
body.dark-mode .analytics-economia-item__value {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .analytics-economia-grupo__description,
body.dark-mode .analytics-economia-item__detail {
  color: #b8c4d6;
}

body.dark-mode .analytics-economia-item__action {
  color: #edf4fb;
}

body.dark-mode .analytics-bar__value {
  color: #dfe9f4;
}

body.dark-mode .stock-intelligence {
  background:
    radial-gradient(circle at top right, rgba(246, 183, 60, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(16,27,44,0.94), rgba(12,23,38,0.92));
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .stock-mini-card,
body.dark-mode .stock-fact {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .stock-intelligence__header p,
body.dark-mode .stock-mini-card__label,
body.dark-mode .stock-fact__label {
  color: #adc0d6;
}

body.dark-mode .stock-mini-card strong,
body.dark-mode .stock-fact__value {
  color: #f3f7fb;
}

body.dark-mode .maquina-resumo-mensal {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .maquina-resumo-mensal__header p,
body.dark-mode .maquina-resumo-mensal__lista li.maquina-resumo-mensal__empty {
  color: #adc0d6;
}

body.dark-mode .maquina-resumo-mensal__header h3,
body.dark-mode .maquina-resumo-mensal__lista li {
  color: #f3f7fb;
}

body.dark-mode .maquina-resumo-mensal__grupo,
body.dark-mode .maquina-resumo-mensal__item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .maquina-resumo-mensal__badge {
  background: rgba(255, 255, 255, 0.08);
  color: #dfe9f4;
}

body.dark-mode .maquina-resumo-mensal__item-total {
  color: #dfe9f4;
}

body.dark-mode .analytics-alert,
body.dark-mode .analytics-trend {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .analytics-alert--critico {
  background: rgba(198, 40, 40, 0.14);
}

body.dark-mode .analytics-alert--atencao {
  background: rgba(246, 183, 60, 0.12);
}

body.dark-mode .analytics-alert__status {
  background: rgba(255, 255, 255, 0.08);
  color: #edf4fb;
}

body.dark-mode .analytics-alert__detail,
body.dark-mode .analytics-trend__value {
  color: #edf4fb;
}

.filtros {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.filtros--single {
  grid-template-columns: 1fr;
}

.filtros--analytics {
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
}

.conferencia-acoes {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  align-items: stretch;
}

.conferencia-acoes button {
  width: 100%;
}

.maquina-resumo-mensal {
  margin-top: 18px;
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(19, 54, 84, 0.04);
  border: 1px solid rgba(19, 54, 84, 0.08);
}

.maquina-resumo-mensal__header {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
}

.maquina-resumo-mensal__header h3 {
  margin: 0;
  color: var(--primary-color);
  font-size: 1rem;
}

.maquina-resumo-mensal__header p {
  margin: 0;
  color: var(--muted-text);
  line-height: 1.5;
}

.maquina-resumo-mensal__lista {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}

.maquina-resumo-mensal__lista li {
  color: var(--text-color);
  line-height: 1.5;
}

.maquina-resumo-mensal__grupo {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(19, 54, 84, 0.08);
  overflow: hidden;
}

.maquina-resumo-mensal__accordion {
  display: grid;
}

.maquina-resumo-mensal__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}

.maquina-resumo-mensal__summary::-webkit-details-marker {
  display: none;
}

.maquina-resumo-mensal__badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.maquina-resumo-mensal__itens {
  display: grid;
  gap: 10px;
  padding: 0 16px 16px;
}

.maquina-resumo-mensal__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(19, 54, 84, 0.04);
  border: 1px solid rgba(19, 54, 84, 0.06);
}

.maquina-resumo-mensal__item-total {
  color: var(--primary-color);
  white-space: nowrap;
}

.maquina-resumo-mensal__lista li.maquina-resumo-mensal__empty {
  list-style: none;
  color: var(--muted-text);
}

.conferencia-lista-header {
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
}

#conferencia-lista-container[hidden] {
  display: none !important;
}

.resumo-impressao {
  margin-bottom: 12px;
  font-size: 14px;
  color: var(--text-color);
}

@media print {
  @page {
    margin: 10mm;
  }

  body.print-relatorio-itens .btn-hamburger,
  body.print-relatorio-itens .menu-lateral,
  body.print-relatorio-itens .top-header,
  body.print-relatorio-itens #btn-dark-mode,
  body.print-relatorio-itens section:not(#relatorio-itens),
  body.print-relatorio-itens #relatorio-itens .filtros {
    display: none !important;
  }

  body.print-relatorio-itens .content-wrapper,
  body.print-relatorio-itens .container,
  body.print-relatorio-itens #relatorio-itens {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  body.print-relatorio-itens #relatorio-itens table {
    margin-top: 8px;
  }

  .print-only-section {
    display: none;
  }

  body.print-movimentacoes-dia .btn-hamburger,
  body.print-movimentacoes-dia .menu-lateral,
  body.print-movimentacoes-dia .top-header,
  body.print-movimentacoes-dia #btn-dark-mode {
    display: none !important;
  }

  body.print-movimentacoes-dia .content-wrapper,
  body.print-movimentacoes-dia .container,
  body.print-movimentacoes-dia #print-movimentacoes-dia {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  body.print-movimentacoes-dia .content-wrapper > .container > *:not(#print-movimentacoes-dia) {
    display: none !important;
  }

  body.print-movimentacoes-dia #print-movimentacoes-dia {
    display: block !important;
  }

  body.print-movimentacoes-dia #print-movimentacoes-dia table {
    margin-top: 0 !important;
    width: 100% !important;
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 11px;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  body.print-movimentacoes-dia #print-movimentacoes-dia th,
  body.print-movimentacoes-dia #print-movimentacoes-dia td {
    padding: 8px 10px;
    font-size: 11px;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    vertical-align: top;
  }

  body.print-movimentacoes-dia #print-movimentacoes-dia th {
    position: static;
    font-size: 10px;
    letter-spacing: 0.04em;
  }

  body.print-movimentacoes-dia #tabela-movimentacoes-pdf th:nth-child(1),
  body.print-movimentacoes-dia #tabela-movimentacoes-pdf td:nth-child(1) {
    width: 40%;
  }

  body.print-movimentacoes-dia #tabela-movimentacoes-pdf th:nth-child(2),
  body.print-movimentacoes-dia #tabela-movimentacoes-pdf td:nth-child(2) {
    width: 11%;
  }

  body.print-movimentacoes-dia #tabela-movimentacoes-pdf th:nth-child(3),
  body.print-movimentacoes-dia #tabela-movimentacoes-pdf td:nth-child(3) {
    width: 21%;
  }

  body.print-movimentacoes-dia #tabela-movimentacoes-pdf th:nth-child(4),
  body.print-movimentacoes-dia #tabela-movimentacoes-pdf td:nth-child(4) {
    width: 15%;
  }

  body.print-movimentacoes-dia #tabela-movimentacoes-pdf th:nth-child(5),
  body.print-movimentacoes-dia #tabela-movimentacoes-pdf td:nth-child(5) {
    width: 13%;
  }
}

.print-only-section {
  display: none;
}

/* =============================
   TABELA
============================= */
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-top: 18px;
  font-size: 14px;
  border-radius: 20px;
  background: var(--card-bg-solid);
  color: var(--text-color);
  box-shadow: inset 0 0 0 1px rgba(19, 54, 84, 0.04);
}

th, td {
  padding: 14px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border-color);
  border-right: 1px solid rgba(216, 224, 232, 0.56);
  line-height: 1.4;
  min-height: 40px;
  vertical-align: middle;
}

th:last-child, td:last-child {
  border-right: none;
}

th {
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: var(--table-header);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  border-bottom: 2px solid var(--border-color);
}

thead th:first-child { border-top-left-radius: 10px; }
thead th:last-child { border-top-right-radius: 10px; }
tbody tr:last-child td:first-child { border-bottom-left-radius: 10px; }
tbody tr:last-child td:last-child { border-bottom-right-radius: 10px; }

tbody tr:nth-child(even) {
  background-color: rgba(15, 39, 64, 0.02);
}

tbody tr:hover {
  background-color: rgba(19,54,84,0.06);
  transition: background 0.2s ease;
}

.table-wrapper {
  overflow: auto;
  border-radius: 20px;
}

td button,
.modal-buttons button,
.painel-conexao__acoes button,
.workspace-hero__actions button {
  width: auto;
}

td button {
  min-width: 86px;
  margin-right: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 13px;
  box-shadow: none;
}

.btn-inline-action {
  background: rgba(19, 54, 84, 0.08);
  color: var(--primary-color);
  border: 1px solid rgba(19, 54, 84, 0.1);
}

.btn-inline-action:hover {
  background: rgba(19, 54, 84, 0.14);
}

.btn-inline-action--excluir,
.btn-inline-action--dar-baixa {
  background: rgba(198, 40, 40, 0.1);
  color: #a52525;
  border-color: rgba(198, 40, 40, 0.16);
}

.btn-inline-action--entrada {
  background: rgba(46, 125, 50, 0.12);
  color: #1c5f32;
  border-color: rgba(46, 125, 50, 0.18);
}

.btn-inline-action--marcar-baixa {
  background: rgba(245, 179, 0, 0.14);
  color: #7d5a00;
  border-color: rgba(245, 179, 0, 0.18);
}

.btn-inline-action--marcar-baixa.is-checked {
  background: rgba(46, 125, 50, 0.14);
  color: #1c5f32;
  border-color: rgba(46, 125, 50, 0.34);
}

.btn-inline-action--marcar-baixa.is-checked::before {
  content: '✓ ';
  font-weight: 700;
}

.btn-inline-action--ficha {
  background: rgba(19, 54, 84, 0.1);
  color: var(--primary-color);
  border-color: rgba(19, 54, 84, 0.14);
}

.btn-inline-action--saida {
  background: rgba(245, 179, 0, 0.16);
  color: #7d5a00;
  border-color: rgba(245, 179, 0, 0.2);
}

.btn-inline-action--editar {
  background: rgba(33, 98, 141, 0.1);
  color: #1f4a70;
  border-color: rgba(33, 98, 141, 0.14);
}

body.dark-mode .btn-inline-action {
  background: rgba(255, 255, 255, 0.06);
  color: #dbe8f5;
  border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .btn-inline-action--marcar-baixa {
  background: rgba(255, 193, 7, 0.18);
  color: #ffe082;
  border-color: rgba(255, 224, 130, 0.2);
}

body.dark-mode .btn-inline-action--marcar-baixa.is-checked {
  background: rgba(45, 151, 101, 0.28);
  color: #dff8ea;
  border-color: rgba(95, 211, 155, 0.48);
}

body.dark-mode .table-item__name {
  color: #f3f7fb;
}

body.dark-mode .table-item__meta {
  color: #adc0d6;
}

#tabela-relatorio-itens tbody tr.relatorio-itens-titulo td {
  font-weight: 700;
  text-transform: uppercase;
  background-color: rgba(0,0,0,0.04);
}

#tabela-relatorio-itens tbody tr.relatorio-itens-titulo td:last-child {
  color: transparent;
}

#tabela-relatorio-itens tbody tr.relatorio-itens-separador td {
  padding: 8px 10px;
  border-bottom: none;
  border-right: none;
  background: transparent;
}

#tabela-relatorio-itens th:nth-child(2),
#tabela-relatorio-itens td:nth-child(2) {
  width: 110px;
  text-align: center;
}

#tabela-relatorio-itens th:nth-child(3),
#tabela-relatorio-itens td:nth-child(3) {
  width: 70px;
  text-align: center;
}

#tabela-relatorio-itens td.ok-conferencia {
  font-family: "Courier New", Courier, monospace;
  letter-spacing: 1px;
}

.btn-conferencia-ok {
  width: 42px;
  min-width: 42px;
  height: 42px;
  padding: 0 10px;
  border-radius: 12px;
  border: 1px solid rgba(19, 54, 84, 0.18);
  background: rgba(19, 54, 84, 0.04);
  color: rgba(19, 54, 84, 0.76);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  touch-action: manipulation;
  box-shadow: none;
}

.btn-conferencia-ok.is-checked {
  background: rgba(46, 125, 50, 0.14);
  border-color: rgba(46, 125, 50, 0.45);
  color: #2e7d32;
}

body.dark-mode .btn-conferencia-ok {
  background: rgba(114, 142, 179, 0.22);
  border-color: rgba(170, 203, 240, 0.52);
  color: rgba(232, 242, 252, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

body.dark-mode .btn-conferencia-ok.is-checked {
  background: rgba(45, 151, 101, 0.28);
  border-color: rgba(95, 211, 155, 0.55);
  color: #dff8ea;
}

.input-conferencia-qtd {
  max-width: 120px;
  text-align: center;
}

#tabela-relatorio-itens td strong {
  display: block;
  margin-bottom: 4px;
}

#tabela-relatorio-itens td div {
  color: var(--muted-text);
  font-size: 12px;
}

#tabela-relatorio-itens th:nth-child(4),
#tabela-relatorio-itens td:nth-child(4) {
  width: 140px;
  text-align: center;
}

.linha-estoque-critico {
  background-color: rgba(198, 40, 40, 0.12) !important;
}

.linha-estoque-atencao {
  background-color: rgba(245, 179, 0, 0.16) !important;
}

.linha-estoque-ok {
  background-color: rgba(46, 125, 50, 0.10) !important;
}

.tag-estoque {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid transparent;
}

.tag-critico {
  background: rgba(198, 40, 40, 0.2);
  color: #8b0000;
  border-color: rgba(198, 40, 40, 0.45);
}

.tag-atencao {
  background: rgba(245, 179, 0, 0.22);
  color: #7a5b00;
  border-color: rgba(245, 179, 0, 0.48);
}

.tag-ok {
  background: rgba(46, 125, 50, 0.18);
  color: #1b5e20;
  border-color: rgba(46, 125, 50, 0.4);
}

th.status-col, td.status-cell {
  text-align: center;
}

/* =============================
   STATUS VISUAL
============================= */
.status-cell {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px; /* espaço entre bolinhas, caso tenha mais de uma */
  min-width: 40px; /* garante espaço mínimo */
}

.status {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  cursor: default;
  display: inline-block;
  transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.status-ativo {
  background-color: var(--status-active) !important;
  box-shadow: 0 0 8px rgba(76, 175, 80, 0.6);
}

.status-inativo {
  background-color: var(--status-inactive) !important;
  box-shadow: 0 0 6px rgba(244, 67, 54, 0.6);
}

.status:hover {
  transform: scale(1.4);
}

body.dark-mode .status-ativo {
  box-shadow: 0 0 10px rgba(76, 175, 80, 0.8);
}

body.dark-mode .status-inativo {
  box-shadow: 0 0 8px rgba(255, 82, 82, 0.7);
}

/* =============================
   LINHA SEPARADORA
============================= */
.linha-separadora {
  text-align: center;
  background-color: var(--table-header);
  color: var(--text-color);
  border: none !important;
  border-top: 2px solid var(--border-color);
  border-bottom: 2px solid var(--border-color);
  padding: 8px;
  font-weight: 600;
  letter-spacing: 1px;
  position: relative;
}

.linha-separadora::before {
  content: "⚙️ ";
  font-size: 1.1em;
}

/* =============================
   PAGINAÇÃO
============================= */
.paginacao-container {
  display: flex;
  justify-content: center; /* ou space-evenly */
  align-items: center;
  margin-top: 20px;
  padding: 0 10px;
  font-size: 0.9rem;
}

.btn-paginacao {
  padding: 5px 6px;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  color: var(--text-color);
  cursor: pointer;
  font-weight: 600;
  transition: 0.2s;
  font-size: 0.85rem;
}

.btn-primeira-pagina,
.btn-ultima-pagina {
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 6px;
  border: 1px dashed var(--border-color);
  background: transparent;
  color: var(--text-color);
  cursor: pointer;
  font-weight: 600;
  transition: 0.2s;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-primeira-pagina:hover:not(:disabled),
.btn-ultima-pagina:hover:not(:disabled) {
  background: var(--primary-color);
  color: white;
  transform: scale(1.05);
}

.btn-primeira-pagina:disabled,
.btn-ultima-pagina:disabled {
  opacity: 0.5;
  cursor: default;
}

.btn-paginacao:hover:not(:disabled) {
  background: var(--primary-color);
  color: white;
  transform: scale(1.05);
}

.btn-paginacao:disabled {
  opacity: 0.5;
  cursor: default;
}

.pagina-atual {
  font-weight: 600;
  color: var(--text-color);
  font-size: 0.85rem;
}

/* =============================
   ESTILOS GERAIS - RELATÓRIO DE EQUIPAMENTOS
============================= */
.equipamento {
  background: #edf2f7;
  padding: 15px;
  margin-top: 15px;
  border-radius: 8px;
}

.warning {
  color: #d69e2e;
  font-weight: bold;
}

/* =============================
   MODAIS
============================= */
.modal,
.modal-container {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.5);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.modal-content {
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(244,246,248,0.98));
  padding: 20px;
  border-radius: 16px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(27, 58, 87, 0.08);
  width: 90%;
  max-width: 700px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  animation: slideUp 0.3s ease forwards;
}

.modal-content--dialog {
  max-width: 460px;
}

.dialog-message {
  margin-bottom: 12px;
  white-space: pre-wrap;
  line-height: 1.5;
}

.dialog-fields {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dialog-fields label {
  font-weight: 600;
}

.modal-content h2 {
  margin-top: 0;
  font-size: 1.4rem;
  color: var(--primary-color);
  letter-spacing: 0.3px;
}

.close {
  float: right;
  font-size: 20px;
  cursor: pointer;
}

body.dark-mode .modal-content {
  background: linear-gradient(180deg, rgba(30,42,56,0.98), rgba(15,26,43,0.98));
  border-color: rgba(255,255,255,0.08);
}

body.dark-mode .modal-content h2,
body.dark-mode .dialog-message,
body.dark-mode .dialog-fields label {
  color: var(--text-color);
}

.modal-buttons {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 15px;
  flex-wrap: wrap;
}

.modal-buttons button {
  padding: 10px 16px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  min-width: 110px;
}

.modal-buttons button:first-child {
  background-color: #2e7d32;
  color: white;
}

.modal-buttons button:first-child:hover {
  background-color: #27682a;
  box-shadow: 0 8px 18px rgba(46,125,50,0.22);
}

.modal-buttons button:last-child {
  background-color: #c62828;
  color: white;
}

.modal-buttons button:last-child:hover {
  background-color: #aa2222;
  box-shadow: 0 8px 18px rgba(198,40,40,0.2);
}

/* =============================
   LOADING
============================= */
.app-loading {
  position: fixed;
  inset: 0;
  background: rgba(10, 18, 30, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9998;
  padding: 20px;
}

.app-loading__card {
  width: min(420px, 100%);
  padding: 20px;
  border-radius: 16px;
  background: var(--card-bg);
  color: var(--text-color);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.24);
}

.app-loading__card strong {
  display: block;
  margin-bottom: 8px;
  font-size: 1.1rem;
}

.app-loading__card p {
  margin: 0;
  line-height: 1.5;
}

.app-intro {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background:
    radial-gradient(circle at 18% 18%, rgba(84, 217, 209, 0.18), transparent 24%),
    radial-gradient(circle at 82% 20%, rgba(246, 183, 60, 0.18), transparent 22%),
    linear-gradient(145deg, #04101b 0%, #0a1d2f 38%, #12314d 100%);
  overflow: hidden;
  transition: opacity 0.55s ease, visibility 0.55s ease;
}

.app-intro[hidden] {
  display: none !important;
}

.app-intro.is-hiding {
  opacity: 0;
  visibility: hidden;
}

.app-intro__glow {
  position: absolute;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  filter: blur(22px);
  opacity: 0.72;
}

.app-intro__glow--left {
  left: -70px;
  bottom: 6%;
  background: radial-gradient(circle, rgba(84, 217, 209, 0.58), transparent 66%);
  animation: introFloat 5.2s ease-in-out infinite;
}

.app-intro__glow--right {
  top: 6%;
  right: -80px;
  background: radial-gradient(circle, rgba(246, 183, 60, 0.42), transparent 68%);
  animation: introFloat 5.8s ease-in-out infinite reverse;
}

.app-intro__mesh {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: radial-gradient(circle at center, rgba(0,0,0,0.88), transparent 76%);
  opacity: 0.45;
}

.app-intro__card {
  position: relative;
  width: min(500px, 100%);
  padding: 38px 30px 30px;
  border-radius: 34px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.05)),
    radial-gradient(circle at top, rgba(84, 217, 209, 0.08), transparent 56%);
  box-shadow:
    0 30px 90px rgba(0, 0, 0, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(18px);
  text-align: center;
  color: #f7fbff;
  animation: introCardIn 0.85s ease forwards;
}

.app-intro__eyebrow {
  display: inline-flex;
  margin-bottom: 22px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.84);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.app-intro__logo {
  position: relative;
  width: 128px;
  height: 128px;
  margin: 0 auto 22px;
  display: grid;
  place-items: center;
}

.app-intro__logo-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4), rgba(255,255,255,0.04) 34%, rgba(255,255,255,0.02) 60%, rgba(255,255,255,0.12) 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.14),
    0 20px 45px rgba(0, 0, 0, 0.28);
}

.app-intro__logo-mark {
  position: relative;
  z-index: 1;
  font-size: 4.8rem;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.12em;
  color: #ffffff;
  text-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
  transform: translateY(-4px);
}

.app-intro__logo-swoosh {
  position: absolute;
  bottom: 22px;
  left: 23px;
  width: 82px;
  height: 28px;
  border-bottom: 8px solid #54d9d1;
  border-radius: 0 0 60px 60px;
  filter: drop-shadow(0 6px 14px rgba(84, 217, 209, 0.25));
}

.app-intro__brand {
  display: block;
  position: relative;
  overflow: hidden;
  font-size: clamp(3rem, 11vw, 4.8rem);
  font-weight: 300;
  letter-spacing: -0.07em;
  line-height: 0.95;
  color: #ffffff;
  text-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

.app-intro__brand span {
  position: relative;
  display: inline-block;
}

.app-intro__brand span::after {
  content: "";
  position: absolute;
  top: -8%;
  bottom: -8%;
  width: 34%;
  left: -40%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.72), transparent);
  transform: skewX(-22deg);
  animation: introShine 2.6s ease-out 0.35s both;
}

.app-intro__subtitle {
  margin: 16px 0 10px;
  color: rgba(221, 241, 247, 0.88);
  font-size: 0.98rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.app-intro__helper {
  margin: 20px 0 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* =============================
   ANIMAÇÕES
============================= */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from { transform: translateY(40px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes introCardIn {
  from {
    opacity: 0;
    transform: translateY(22px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes introFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

@keyframes introShine {
  0% { left: -40%; opacity: 0; }
  20% { opacity: 1; }
  100% { left: 120%; opacity: 0; }
}

/* =============================
   RESPONSIVIDADE
============================= */
@media (max-width: 768px) {
  .top-header {
    padding: 18px;
  }

  .top-header__meta {
    justify-content: flex-start;
  }

  .workspace-hero {
    grid-template-columns: 1fr;
  }

  .overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-lateral {
    top: 10px;
    padding: 10px;
    margin-bottom: 16px;
  }
  .modal-content { max-width: 90%; }
  .painel-conexao {
    grid-template-columns: 1fr;
  }

  .admin-tools {
    grid-template-columns: 1fr;
  }

  .form-grid,
  .filtros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .field-group--wide {
    grid-column: span 2;
  }

  .overview-card,
  .overview-card--wide {
    grid-column: span 1;
  }

  .analytics-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-insights__grid {
    grid-template-columns: 1fr;
  }

  .analytics-grid {
    grid-template-columns: 1fr;
  }

  .analytics-card--span-2 {
    grid-column: span 1;
  }
}

@media (max-width: 900px) {
  body.mobile-menu-open {
    overflow: hidden;
  }

  .btn-hamburger {
    display: inline-flex;
  }

  .menu-lateral {
    position: fixed;
    top: 84px;
    right: 12px;
    left: 12px;
    z-index: 1140;
    max-width: none;
    max-height: calc(100vh - 110px);
    margin: 0;
    padding: 16px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    overflow-y: auto;
    overflow-x: hidden;
    border-radius: 28px;
    transform: translateY(-16px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  .menu-lateral__grupo,
  .menu-lateral__submenu {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .menu-lateral__grupo {
    gap: 8px;
  }

  .menu-lateral__submenu {
    position: static;
    min-width: 0;
    padding-left: 12px;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .menu-lateral__toggle,
  .menu-lateral a {
    justify-content: flex-start;
    min-height: 52px;
    padding: 14px 16px;
  }

  .menu-lateral.menu-lateral--open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
}

@media (max-width: 600px) {
  body {
    padding: 12px;
    padding-bottom: 104px;
  }

  .top-header__brand {
    padding-left: 0;
  }

  .top-header {
    min-height: auto;
    padding: 18px 16px;
    border-radius: 24px;
    margin-bottom: 16px;
    flex-direction: column;
    align-items: flex-start;
  }

  .top-header__context,
  .top-header__badge,
  .top-header__logout {
    min-width: unset;
    width: 100%;
  }

  .offline-auth-toast {
    top: auto;
    right: 12px;
    left: 12px;
    bottom: 96px;
    max-width: none;
  }

  .content-wrapper {
    margin-top: 0;
    padding-top: 0;
  }

  body.auth-required .content-wrapper {
    margin-top: 0;
    min-height: auto;
  }

  .overview-grid {
    grid-template-columns: 1fr;
  }

  .workspace-hero__content,
  .workspace-hero__aside,
  .painel-conexao,
  form,
  .app-section,
  .filtros,
  .admin-tools__card {
    padding: 18px;
    border-radius: 22px;
  }

  .workspace-hero__actions,
  .painel-conexao__acoes,
  .field-group--action,
  .modal-buttons {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .workspace-hero__actions button,
  .painel-conexao__acoes button,
  .field-group--action button,
  .modal-buttons button,
  .acoes-rodape button {
    width: 100%;
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 14px;
  }

  .section-header p,
  .page-intro,
  .section-note,
  .conferencia-lista-header {
    font-size: 14px;
  }

  .analytics-kpi-grid,
  .form-grid,
  .filtros {
    grid-template-columns: 1fr;
  }

  .acoes-rodape--pdf {
    grid-template-columns: 1fr;
  }

  .field-group--wide {
    grid-column: span 1;
  }

  .filtros--analytics {
    grid-template-columns: 1fr;
  }

  .conferencia-acoes {
    grid-template-columns: 1fr;
  }

  .analytics-trend__bar {
    grid-template-columns: 72px minmax(0, 1fr) auto;
  }

  #btn-dark-mode {
    width: 48px;
    height: 48px;
    font-size: 1.3rem;
    bottom: 15px;
    right: 15px;
  }

  .modal-content h2 {
    font-size: 1.2rem;
  }

  .modal-buttons button {
    font-size: 13px;
    padding: 6px 12px;
  }

  .painel-conexao__acoes {
    grid-template-columns: 1fr;
  }

  .app-intro__card {
    padding: 28px 22px;
    border-radius: 24px;
  }

  .app-intro__logo {
    width: 108px;
    height: 108px;
    margin-bottom: 20px;
  }

  .app-intro__logo-mark {
    font-size: 4.1rem;
  }

  .app-intro__logo-swoosh {
    left: 19px;
    width: 70px;
    height: 24px;
  }

  .app-intro__subtitle {
    letter-spacing: 0.12em;
    font-size: 0.9rem;
  }

  .table-wrapper,
  #conferencia-lista-container {
    overflow: visible;
  }

  #tabela-estoque,
  #tabela-movimentacoes,
  #tabela-producao,
  #tabela-relatorio-itens {
    background: transparent;
    box-shadow: none;
    margin-top: 12px;
  }

  #tabela-estoque thead,
  #tabela-movimentacoes thead,
  #tabela-producao thead,
  #tabela-relatorio-itens thead {
    display: none;
  }

  #tabela-estoque tbody,
  #tabela-movimentacoes tbody,
  #tabela-producao tbody,
  #tabela-relatorio-itens tbody,
  #tabela-estoque tr,
  #tabela-movimentacoes tr,
  #tabela-producao tr,
  #tabela-relatorio-itens tr,
  #tabela-estoque td,
  #tabela-movimentacoes td,
  #tabela-producao td,
  #tabela-relatorio-itens td {
    display: block;
    width: 100%;
  }

  #tabela-estoque tr,
  #tabela-movimentacoes tr,
  #tabela-producao tr,
  #tabela-relatorio-itens tr {
    margin-bottom: 14px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    border-radius: 18px;
    background: var(--card-bg-solid);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
  }

  #tabela-estoque td,
  #tabela-movimentacoes td,
  #tabela-producao td,
  #tabela-relatorio-itens td {
    display: grid;
    grid-template-columns: minmax(108px, 42%) minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: unset;
    padding: 12px 14px;
    border-right: none;
  }

  #tabela-estoque td::before,
  #tabela-movimentacoes td::before,
  #tabela-producao td::before,
  #tabela-relatorio-itens td::before {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted-text);
    content: "";
  }

  #tabela-estoque td:nth-child(1)::before { content: "Nome"; }
  #tabela-estoque td:nth-child(2)::before { content: "Quantidade"; }
  #tabela-estoque td:nth-child(3)::before { content: "Valor unitário"; }
  #tabela-estoque td:nth-child(4)::before { content: "Total"; }
  #tabela-estoque td:nth-child(5)::before { content: "Data"; }
  #tabela-estoque td:nth-child(6)::before { content: "Ações"; }

  #tabela-movimentacoes td:nth-child(1)::before { content: "Item"; }
  #tabela-movimentacoes td:nth-child(2)::before { content: "Tipo"; }
  #tabela-movimentacoes td:nth-child(3)::before { content: "Quantidade"; }
  #tabela-movimentacoes td:nth-child(4)::before { content: "Data"; }
  #tabela-movimentacoes td:nth-child(5)::before { content: "Usuário"; }
  #tabela-movimentacoes td:nth-child(6)::before { content: "Compra / NF"; }
  #tabela-movimentacoes td:nth-child(7)::before { content: "Destino"; }

  #tabela-producao td:nth-child(1)::before { content: "Status"; }
  #tabela-producao td:nth-child(2)::before { content: "Componente"; }
  #tabela-producao td:nth-child(3)::before { content: "Quantidade"; }
  #tabela-producao td:nth-child(4)::before { content: "Data"; }
  #tabela-producao td:nth-child(5)::before { content: "Usuário"; }
  #tabela-producao td:nth-child(6)::before { content: "Ações"; }

  #tabela-relatorio-itens td:nth-child(1)::before { content: "Item"; }
  #tabela-relatorio-itens td:nth-child(2)::before { content: "Quantidade"; }
  #tabela-relatorio-itens td:nth-child(3)::before { content: "OK"; }
  #tabela-relatorio-itens td:nth-child(4)::before { content: "Qtd. divergente"; }

  #tabela-estoque td:last-child,
  #tabela-movimentacoes td:last-child,
  #tabela-producao td:last-child,
  #tabela-relatorio-itens td:last-child {
    border-bottom: none;
  }

  #tabela-estoque td button,
  #tabela-producao td button {
    width: 100%;
    margin-right: 0;
    margin-bottom: 8px;
  }

  #tabela-estoque td button:last-child,
  #tabela-producao td button:last-child {
    margin-bottom: 0;
  }

  .btn-conferencia-ok {
    margin-left: auto;
  }

  .input-conferencia-qtd {
    max-width: none;
  }

  .stock-intelligence--inline {
    margin: 6px 0 0;
    padding: 16px;
    border-radius: 18px;
  }
}

@media (max-width: 480px) {
  body { padding: 10px; padding-bottom: 104px; }
  .menu-lateral {
    top: 8px;
    margin-bottom: 14px;
    border-radius: 20px;
  }
  .container { padding: 0; }
  input, button, select { font-size: 14px; padding: 10px 12px; }
  table { font-size: 12px; }
  .workspace-hero__content,
  .workspace-hero__aside,
  .painel-conexao,
  .app-section,
  .filtros,
  .admin-tools__card {
    padding: 18px;
    border-radius: 20px;
  }
}

/* =============================
   ANDROID NATIVE UX
============================= */
body.platform-android {
  -webkit-tap-highlight-color: transparent;
}

body.platform-android button:hover,
body.platform-android .btn-hamburger:hover,
body.platform-android .menu-lateral a:hover,
body.platform-android .btn-paginacao:hover:not(:disabled),
body.platform-android .btn-primeira-pagina:hover:not(:disabled),
body.platform-android .btn-ultima-pagina:hover:not(:disabled) {
  transform: none;
}

@media (max-width: 900px) {
  body.platform-android {
    padding:
      calc(env(safe-area-inset-top, 0px) + 10px)
      calc(env(safe-area-inset-right, 0px) + 12px)
      calc(env(safe-area-inset-bottom, 0px) + 108px)
      calc(env(safe-area-inset-left, 0px) + 12px);
    background:
      radial-gradient(circle at top right, rgba(246, 183, 60, 0.18), transparent 30%),
      radial-gradient(circle at top left, rgba(19, 54, 84, 0.1), transparent 26%),
      linear-gradient(180deg, #f7fafc 0%, #edf3f8 44%, #e1ebf3 100%);
  }

  body.platform-android.dark-mode {
    background:
      radial-gradient(circle at top right, rgba(246, 183, 60, 0.12), transparent 30%),
      radial-gradient(circle at top left, rgba(37, 84, 118, 0.12), transparent 28%),
      linear-gradient(180deg, #08121f 0%, #0d1929 48%, #13263b 100%);
  }

  body.platform-android .content-wrapper,
  body.platform-android.auth-required .content-wrapper {
    margin-top: 0;
    padding-top: 0;
  }

  body.platform-android .workspace-hero,
  body.platform-android .overview-grid {
    display: none;
  }

  body.platform-android .top-header {
    position: sticky;
    top: calc(env(safe-area-inset-top, 0px) + 6px);
    max-width: none;
    margin: 0 0 14px;
    padding: 16px 16px 14px;
    gap: 12px;
    border-radius: 26px;
    box-shadow: 0 14px 28px rgba(7, 18, 31, 0.16);
    backdrop-filter: blur(18px);
  }

  body.platform-android .top-header__brand {
    gap: 8px;
  }

  body.platform-android .top-header__brand h1 {
    font-size: clamp(1.55rem, 6vw, 2rem);
    line-height: 1.04;
  }

  body.platform-android .top-header__brand p {
    display: none;
  }

  body.platform-android .top-header__eyebrow {
    padding: 6px 10px;
    font-size: 10px;
    letter-spacing: 0.14em;
  }

  body.platform-android .top-header__meta {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.platform-android .top-header__meta .top-header__context:last-of-type {
    display: none;
  }

  body.platform-android .top-header__badge,
  body.platform-android .top-header__context,
  body.platform-android .top-header__logout {
    min-height: 52px;
    padding: 12px 14px;
    border-radius: 16px;
  }

  body.platform-android .top-header__badge,
  body.platform-android .top-header__logout {
    grid-column: 1 / -1;
    min-width: 0;
  }

  body.platform-android .top-header__context strong {
    font-size: 13px;
    line-height: 1.35;
  }

  body.platform-android .top-header__context {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  body.platform-android .btn-hamburger {
    display: none !important;
  }

  body.platform-android .mobile-menu-overlay {
    background: rgba(8, 18, 31, 0.58);
    backdrop-filter: blur(10px);
  }

  body.platform-android .menu-lateral {
    top: auto;
    right: calc(env(safe-area-inset-right, 0px) + 10px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
    left: calc(env(safe-area-inset-left, 0px) + 10px);
    max-height: min(72vh, 620px);
    padding: 18px;
    gap: 12px;
    border-radius: 30px;
    box-shadow: 0 24px 50px rgba(6, 16, 28, 0.34);
    transform: translateY(26px) scale(0.98);
    transform-origin: bottom center;
  }

  body.platform-android .menu-lateral.menu-lateral--open {
    transform: translateY(0) scale(1);
  }

  body.platform-android .menu-lateral a {
    min-height: 56px;
    padding: 14px 16px;
    border-radius: 18px;
    font-size: 15px;
    letter-spacing: 0.01em;
  }

  body.platform-android .android-bottom-nav {
    position: fixed;
    right: calc(env(safe-area-inset-right, 0px) + 12px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
    left: auto;
    z-index: 1160;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 132px;
    max-width: calc(100vw - 24px);
    padding: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(19, 54, 84, 0.08);
    box-shadow: 0 18px 34px rgba(7, 18, 31, 0.16);
    backdrop-filter: blur(18px);
  }

  body.platform-android.dark-mode .android-bottom-nav {
    background: rgba(10, 18, 31, 0.9);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.34);
  }

  body.platform-android .android-bottom-nav__item {
    min-height: 50px;
    width: 100%;
    padding: 12px 18px;
    border-radius: 999px;
    background: transparent;
    color: var(--muted-text);
    box-shadow: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  body.platform-android #btn-dark-mode {
    left: calc(env(safe-area-inset-left, 0px) + 12px);
    right: auto;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
    width: 50px;
    height: 50px;
    border-radius: 16px;
    z-index: 1158;
  }

  body.platform-android .android-bottom-nav__item.active {
    background: rgba(19, 54, 84, 0.1);
    color: var(--primary-color);
  }

  body.platform-android.dark-mode .android-bottom-nav__item {
    color: #adc0d6;
  }

  body.platform-android.dark-mode .android-bottom-nav__item.active {
    background: rgba(255, 255, 255, 0.08);
    color: #f5f8fc;
  }

  body.platform-android .android-bottom-nav__item[hidden] {
    display: none;
  }

  body.platform-android .workspace-hero {
    gap: 12px;
    margin-bottom: 16px;
  }

  body.platform-android .workspace-hero__content {
    padding: 22px 18px 18px;
    border-radius: 22px;
  }

  body.platform-android .workspace-hero__content::after {
    inset: auto -24px -48px auto;
    width: 168px;
    height: 168px;
    opacity: 0.9;
  }

  body.platform-android .workspace-hero__content h2 {
    margin-bottom: 10px;
    font-size: clamp(1.9rem, 7.4vw, 2.45rem);
    line-height: 1;
  }

  body.platform-android .workspace-hero__eyebrow {
    margin-bottom: 10px;
    padding: 7px 11px;
    font-size: 11px;
  }

  body.platform-android .workspace-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 16px;
  }

  body.platform-android .workspace-hero__actions button {
    min-width: 0;
    min-height: 50px;
    width: 100%;
    border-radius: 16px;
  }

  body.platform-android .workspace-hero__aside {
    display: none;
  }

  body.platform-android .workspace-status-card {
    padding: 18px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(19, 54, 84, 0.95), rgba(13, 32, 51, 0.98));
    box-shadow: 0 16px 28px rgba(9, 22, 35, 0.18);
  }

  body.platform-android .overview-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 18px;
  }

  body.platform-android .overview-card,
  body.platform-android .overview-card--wide {
    grid-column: span 1;
    min-height: 0;
    padding: 16px 17px;
    border-radius: 18px;
  }

  body.platform-android .overview-card__label {
    margin-bottom: 10px;
    font-size: 11px;
  }

  body.platform-android .overview-card strong {
    margin-bottom: 8px;
    font-size: clamp(1.45rem, 6vw, 2rem);
  }

  body.platform-android .overview-card p {
    display: none;
  }

  body.platform-android .painel-conexao,
  body.platform-android form,
  body.platform-android .app-section,
  body.platform-android .filtros,
  body.platform-android .admin-tools__card,
  body.platform-android .stock-intelligence,
  body.platform-android .analytics-kpi,
  body.platform-android .analytics-card,
  body.platform-android .maquina-resumo-mensal {
    margin-bottom: 12px;
    padding: 16px;
    border-radius: 20px;
    box-shadow: 0 12px 24px rgba(17, 37, 56, 0.08);
  }

  body.platform-android .section-header,
  body.platform-android .stock-intelligence__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
  }

  body.platform-android .section-header__eyebrow,
  body.platform-android .stock-intelligence__eyebrow {
    margin-bottom: 6px;
  }

  body.platform-android .section-header h2 {
    margin-bottom: 8px;
    font-size: clamp(1.4rem, 6vw, 1.8rem);
  }

  body.platform-android .section-header p,
  body.platform-android .section-note,
  body.platform-android .page-intro,
  body.platform-android .stock-intelligence__header p,
  body.platform-android .maquina-resumo-mensal__header p {
    font-size: 14px;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  body.platform-android .analytics-kpi-grid,
  body.platform-android .stock-intelligence__stats,
  body.platform-android .stock-intelligence__grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.platform-android .analytics-grid,
  body.platform-android .admin-tools {
    gap: 14px;
  }

  body.platform-android .stock-mini-card,
  body.platform-android .stock-fact {
    padding: 13px 14px;
    border-radius: 16px;
  }

  body.platform-android .form-grid,
  body.platform-android .filtros,
  body.platform-android .filtros--analytics,
  body.platform-android .painel-conexao,
  body.platform-android .conferencia-acoes,
  body.platform-android .analytics-kpi-grid {
    grid-template-columns: 1fr;
  }

  body.platform-android .field-group--wide,
  body.platform-android .analytics-card--span-2 {
    grid-column: span 1;
  }

  body.platform-android .field-group--action,
  body.platform-android .workspace-hero__actions,
  body.platform-android .painel-conexao__acoes,
  body.platform-android .modal-buttons,
  body.platform-android .acoes-rodape--pdf {
    width: 100%;
  }

  body.platform-android .field-group--action {
    grid-column: 1 / -1;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  body.platform-android .field-group--action button {
    min-width: 0;
    width: 100%;
  }

  body.platform-android input,
  body.platform-android button,
  body.platform-android select,
  body.platform-android textarea {
    min-height: 50px;
    padding: 14px 15px;
    border-radius: 16px;
    font-size: 16px;
  }

  body.platform-android textarea {
    min-height: 132px;
  }

  body.platform-android input:focus,
  body.platform-android select:focus,
  body.platform-android textarea:focus {
    transform: none;
    box-shadow: 0 0 0 3px rgba(19, 54, 84, 0.1);
  }

  body.platform-android label {
    font-size: 12px;
    letter-spacing: 0.08em;
  }

  body.platform-android .table-wrapper,
  body.platform-android #conferencia-lista-container {
    overflow: visible;
    border-radius: 0;
  }

  body.platform-android #tabela-estoque,
  body.platform-android #tabela-movimentacoes,
  body.platform-android #tabela-descarte,
  body.platform-android #tabela-producao,
  body.platform-android #tabela-relatorio-itens{
    margin-top: 10px;
    background: transparent;
    box-shadow: none;
  }

  body.platform-android #tabela-estoque thead,
  body.platform-android #tabela-movimentacoes thead,
  body.platform-android #tabela-descarte thead,
  body.platform-android #tabela-producao thead,
  body.platform-android #tabela-relatorio-itens thead{
    display: none;
  }

  body.platform-android #tabela-estoque tbody,
  body.platform-android #tabela-movimentacoes tbody,
  body.platform-android #tabela-descarte tbody,
  body.platform-android #tabela-producao tbody,
  body.platform-android #tabela-relatorio-itens tbody,
  body.platform-android #tabela-estoque tr,
  body.platform-android #tabela-movimentacoes tr,
  body.platform-android #tabela-descarte tr,
  body.platform-android #tabela-producao tr,
  body.platform-android #tabela-relatorio-itens tr,
  body.platform-android #tabela-estoque td,
  body.platform-android #tabela-movimentacoes td,
  body.platform-android #tabela-descarte td,
  body.platform-android #tabela-producao td,
  body.platform-android #tabela-relatorio-itens td{
    display: block;
    width: 100%;
  }

  body.platform-android #tabela-estoque tr,
  body.platform-android #tabela-movimentacoes tr,
  body.platform-android #tabela-descarte tr,
  body.platform-android #tabela-producao tr,
  body.platform-android #tabela-relatorio-itens tr{
    margin-bottom: 16px;
    border-radius: 20px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 249, 252, 0.92));
    box-shadow: 0 10px 18px rgba(17, 37, 56, 0.08);
    overflow: hidden;
  }

  body.platform-android.dark-mode #tabela-estoque tr,
  body.platform-android.dark-mode #tabela-movimentacoes tr,
  body.platform-android.dark-mode #tabela-descarte tr,
  body.platform-android.dark-mode #tabela-producao tr,
  body.platform-android.dark-mode #tabela-relatorio-itens tr{
    background: linear-gradient(180deg, rgba(16, 27, 44, 0.96), rgba(12, 23, 38, 0.94));
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.24);
  }

  body.platform-android #tabela-estoque td,
  body.platform-android #tabela-movimentacoes td,
  body.platform-android #tabela-descarte td,
  body.platform-android #tabela-producao td,
  body.platform-android #tabela-relatorio-itens td{
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: start;
    min-height: 0;
    padding: 12px 14px;
    border-right: none;
    border-bottom: 1px solid rgba(216, 224, 232, 0.58);
    word-break: break-word;
  }

  body.platform-android.dark-mode #tabela-estoque td,
  body.platform-android.dark-mode #tabela-movimentacoes td,
  body.platform-android.dark-mode #tabela-descarte td,
  body.platform-android.dark-mode #tabela-producao td,
  body.platform-android.dark-mode #tabela-relatorio-itens td{
    border-bottom-color: rgba(255, 255, 255, 0.08);
  }

  body.platform-android #tabela-estoque td::before,
  body.platform-android #tabela-movimentacoes td::before,
  body.platform-android #tabela-descarte td::before,
  body.platform-android #tabela-producao td::before,
  body.platform-android #tabela-relatorio-itens td::before{
    content: "";
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--muted-text);
  }

  body.platform-android #tabela-estoque td:nth-child(1)::before { content: "Nome"; }
  body.platform-android #tabela-estoque td:nth-child(2)::before { content: "Quantidade"; }
  body.platform-android #tabela-estoque td:nth-child(3)::before { content: "Valor"; }
  body.platform-android #tabela-estoque td:nth-child(4)::before { content: "Total"; }
  body.platform-android #tabela-estoque td:nth-child(5)::before { content: "Data"; }
  body.platform-android #tabela-estoque td:nth-child(6)::before { content: "Acoes"; }

  body.platform-android #tabela-movimentacoes td:nth-child(1)::before { content: "Item"; }
  body.platform-android #tabela-movimentacoes td:nth-child(2)::before { content: "Tipo"; }
  body.platform-android #tabela-movimentacoes td:nth-child(3)::before { content: "Quantidade"; }
  body.platform-android #tabela-movimentacoes td:nth-child(4)::before { content: "Data"; }
  body.platform-android #tabela-movimentacoes td:nth-child(5)::before { content: "Usuario"; }
  body.platform-android #tabela-movimentacoes td:nth-child(6)::before { content: "Compra / NF"; }
  body.platform-android #tabela-movimentacoes td:nth-child(7)::before { content: "Destino"; }

  body.platform-android #tabela-descarte td:nth-child(1)::before { content: "Item"; }
  body.platform-android #tabela-descarte td:nth-child(2)::before { content: "Quantidade"; }
  body.platform-android #tabela-descarte td:nth-child(3)::before { content: "Data"; }
  body.platform-android #tabela-descarte td:nth-child(4)::before { content: "Responsavel"; }
  body.platform-android #tabela-descarte td:nth-child(5)::before { content: "Motivo"; }
  body.platform-android #tabela-descarte td:nth-child(6)::before { content: "Acoes"; }

  body.platform-android #tabela-producao td:nth-child(1)::before { content: "Status"; }
  body.platform-android #tabela-producao td:nth-child(2)::before { content: "Componente"; }
  body.platform-android #tabela-producao td:nth-child(3)::before { content: "Quantidade"; }
  body.platform-android #tabela-producao td:nth-child(4)::before { content: "Data"; }
  body.platform-android #tabela-producao td:nth-child(5)::before { content: "Usuario"; }
  body.platform-android #tabela-producao td:nth-child(6)::before { content: "Acoes"; }

  body.platform-android #tabela-relatorio-itens td:nth-child(1)::before { content: "Item"; }
  body.platform-android #tabela-relatorio-itens td:nth-child(2)::before { content: "Quantidade"; }
  body.platform-android #tabela-relatorio-itens td:nth-child(3)::before { content: "OK"; }
  body.platform-android #tabela-relatorio-itens td:nth-child(4)::before { content: "Qtd. divergente"; }

  body.platform-android #tabela-estoque td:last-child,
  body.platform-android #tabela-descarte td:last-child,
  body.platform-android #tabela-producao td:last-child{
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: stretch;
  }

  body.platform-android #tabela-estoque td:last-child::before,
  body.platform-android #tabela-descarte td:last-child::before,
  body.platform-android #tabela-producao td:last-child::before{
    margin-bottom: 1px;
  }

  body.platform-android #tabela-estoque td button,
  body.platform-android #tabela-descarte td button,
  body.platform-android #tabela-producao td button{
    flex: none;
    width: 100%;
    min-width: 100%;
    min-height: 46px;
    margin: 0;
    border-radius: 14px;
  }

  body.platform-android .resumo-estoque {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0 4px;
  }

  body.platform-android .resumo-estoque .mobile-inline-summary {
    grid-column: 1 / -1;
    margin: 0;
  }

  body.platform-android .mobile-inline-summary,
  body.platform-android #resumo-descarte,
  body.platform-android #conferencia-resumo,
  body.platform-android #conferencia-ultimo-envio,
  body.platform-android #analytics-resumo {
    margin: 10px 0 14px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(19, 54, 84, 0.08);
    color: var(--text-color);
    line-height: 1.55;
    box-shadow: 0 8px 18px rgba(17, 37, 56, 0.06);
  }

  body.platform-android.dark-mode .mobile-inline-summary,
  body.platform-android.dark-mode #resumo-descarte,
  body.platform-android.dark-mode #conferencia-resumo,
  body.platform-android.dark-mode #conferencia-ultimo-envio,
  body.platform-android.dark-mode #analytics-resumo {
    background: rgba(14, 24, 39, 0.9);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 16px 28px rgba(0, 0, 0, 0.2);
  }

  body.platform-android td.android-data-cell {
    padding: 10px 14px 0;
    gap: 10px;
    border-bottom: none;
    background: transparent;
  }

  body.platform-android td.android-data-cell::before,
  body.platform-android td.table-empty-state::before,
  body.platform-android tr.linha-agrupadora-producao td::before {
    display: none;
  }

  body.platform-android td.android-data-cell:last-child {
    padding-bottom: 16px;
  }

  body.platform-android td.android-data-cell--actions {
    gap: 10px;
    align-items: stretch;
  }

  body.platform-android td.android-data-cell--toggle {
    align-items: flex-start;
  }

  body.platform-android td.android-data-cell--status {
    align-items: flex-start;
  }

  body.platform-android .android-cell-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted-text);
  }

  body.platform-android .android-record-card,
  body.platform-android .android-info-card {
    display: grid;
    gap: 8px;
    width: 100%;
    padding: 14px 15px;
    border-radius: 18px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
  }

  body.platform-android.dark-mode .android-record-card,
  body.platform-android.dark-mode .android-info-card {
    background: rgba(19, 31, 49, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
  }

  body.platform-android .android-record-card__title {
    font-size: 1rem;
    line-height: 1.35;
    color: var(--text-color);
  }

  body.platform-android .android-record-card__subtitle,
  body.platform-android .android-info-card__detail,
  body.platform-android .android-inline-feedback,
  body.platform-android .android-input-hint {
    color: var(--muted-text);
    font-size: 0.82rem;
    line-height: 1.5;
  }

  body.platform-android .android-info-card__value {
    display: block;
    font-size: 1.08rem;
    line-height: 1.2;
    color: var(--primary-color);
  }

  body.platform-android .android-info-card--danger .android-info-card__value {
    color: #b84040;
  }

  body.platform-android .android-info-card--warning .android-info-card__value {
    color: #a96310;
  }

  body.platform-android .android-info-card--success .android-info-card__value {
    color: #0b6b5b;
  }

  body.platform-android .android-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  body.platform-android .android-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(19, 54, 84, 0.08);
    color: var(--primary-color);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
  }

  body.platform-android .android-chip--neutral {
    background: rgba(19, 54, 84, 0.08);
  }

  body.platform-android .android-chip--info,
  body.platform-android .android-info-card--info {
    background: rgba(29, 111, 196, 0.08);
    border-color: rgba(29, 111, 196, 0.12);
  }

  body.platform-android .android-chip--success,
  body.platform-android .android-info-card--success {
    background: rgba(21, 124, 98, 0.1);
    border-color: rgba(21, 124, 98, 0.14);
  }

  body.platform-android .android-chip--warning,
  body.platform-android .android-info-card--warning {
    background: rgba(196, 120, 29, 0.12);
    border-color: rgba(196, 120, 29, 0.14);
  }

  body.platform-android .android-chip--danger,
  body.platform-android .android-info-card--danger {
    background: rgba(184, 64, 64, 0.1);
    border-color: rgba(184, 64, 64, 0.14);
  }

  body.platform-android.dark-mode .android-chip {
    background: rgba(255, 255, 255, 0.08);
    color: #dbe8f4;
  }

  body.platform-android.dark-mode .android-chip--info,
  body.platform-android.dark-mode .android-info-card--info {
    background: rgba(71, 132, 199, 0.18);
    border-color: rgba(91, 150, 214, 0.24);
  }

  body.platform-android.dark-mode .android-chip--success,
  body.platform-android.dark-mode .android-info-card--success {
    background: rgba(20, 130, 110, 0.2);
    border-color: rgba(28, 161, 136, 0.24);
  }

  body.platform-android.dark-mode .android-chip--warning,
  body.platform-android.dark-mode .android-info-card--warning {
    background: rgba(196, 137, 43, 0.22);
    border-color: rgba(220, 160, 61, 0.24);
  }

  body.platform-android.dark-mode .android-chip--danger,
  body.platform-android.dark-mode .android-info-card--danger {
    background: rgba(177, 67, 67, 0.24);
    border-color: rgba(211, 95, 95, 0.26);
  }

  body.platform-android .android-inline-feedback--strong {
    font-weight: 700;
    color: var(--text-color);
  }

  body.platform-android .android-summary-card {
    min-height: 100%;
  }

  body.platform-android td.table-empty-state {
    padding: 18px 16px !important;
    border-bottom: none;
    color: var(--muted-text);
    line-height: 1.6;
  }

  body.platform-android td.android-accordion-cell {
    display: block;
    width: 100%;
    padding: 0 !important;
    gap: 0;
    border-bottom: none;
    background: transparent;
  }

  body.platform-android td.android-accordion-cell::before {
    display: none;
  }

  body.platform-android .android-accordion {
    width: 100%;
  }

  body.platform-android .android-accordion__trigger {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 78px;
    padding: 16px 16px;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--text-color);
  }

  body.platform-android .android-accordion.is-open .android-accordion__trigger {
    padding-bottom: 12px;
  }

  body.platform-android .android-accordion__content {
    min-width: 0;
    display: grid;
    gap: 4px;
    text-align: left;
  }

  body.platform-android .android-accordion__title {
    display: block;
    font-size: 1rem;
    line-height: 1.25;
    text-align: left;
    word-break: break-word;
    color: var(--text-color);
  }

  body.platform-android .android-accordion__subtitle {
    display: block;
    font-size: 0.82rem;
    line-height: 1.38;
    color: var(--text-color);
    text-align: left;
    word-break: break-word;
    opacity: 0.76;
  }

  body.platform-android .android-accordion__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 999px;
    background: rgba(19, 54, 84, 0.08);
    color: var(--primary-color);
    font-size: 1.25rem;
    line-height: 1;
  }

  body.platform-android.dark-mode .android-accordion__icon {
    background: rgba(255, 255, 255, 0.08);
    color: #f5f8fc;
  }

  body.platform-android .android-accordion__panel {
    display: grid;
    gap: 12px;
    padding: 0 16px 16px;
  }

  body.platform-android .android-accordion__ficha {
    margin-top: 2px;
    border-radius: 18px;
    box-shadow: none;
    border: 1px solid rgba(19, 54, 84, 0.08);
  }

  body.platform-android.dark-mode .android-accordion__ficha {
    border-color: rgba(255, 255, 255, 0.08);
  }

  body.platform-android .android-accordion__meta {
    margin: 0;
    color: var(--muted-text);
    line-height: 1.5;
  }

  body.platform-android .android-accordion__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.platform-android .android-accordion__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.platform-android .android-accordion__actions button {
    width: 100%;
    min-height: 46px;
    margin: 0;
    border-radius: 14px;
  }

  body.platform-android td.android-data-cell--toggle .btn-conferencia-ok {
    width: 72px;
    height: 58px;
    min-height: 58px;
    border-radius: 18px;
  }

  body.platform-android td.android-data-cell--input .input-conferencia-qtd {
    width: 100%;
    min-height: 50px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.85);
  }

  body.platform-android.dark-mode td.android-data-cell--input .input-conferencia-qtd {
    background: rgba(10, 18, 30, 0.92);
  }

  body.platform-android #tabela-producao tr.linha-agrupadora-producao {
    margin: 18px 0 10px;
    background: transparent;
    border: none;
    box-shadow: none;
  }

  body.platform-android #tabela-producao tr.linha-agrupadora-producao td {
    padding: 0;
    border: none;
    background: transparent;
  }

  body.platform-android #tabela-producao .linha-separadora {
    padding: 12px 14px;
    border-radius: 999px;
    border: 1px solid rgba(19, 54, 84, 0.08) !important;
    background: rgba(255, 255, 255, 0.7);
    box-shadow: none;
    text-align: left;
    letter-spacing: 0.08em;
  }

  body.platform-android.dark-mode #tabela-producao .linha-separadora {
    background: rgba(14, 24, 39, 0.88);
    border-color: rgba(255, 255, 255, 0.08) !important;
  }

  body.platform-android #relatorio-indicadores .analytics-kpi {
    padding: 18px;
    border-radius: 20px;
  }

  body.platform-android #relatorio-indicadores .analytics-kpi p {
    font-size: 0.84rem;
  }

  body.platform-android #relatorio-indicadores .analytics-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  body.platform-android #relatorio-indicadores .analytics-chart {
    min-height: 160px;
  }

  body.platform-android #tabela-producao td.status-cell{
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
  }

  body.platform-android #tabela-estoque td:last-child,
  body.platform-android #tabela-movimentacoes td:last-child,
  body.platform-android #tabela-descarte td:last-child,
  body.platform-android #tabela-producao td:last-child,
  body.platform-android #tabela-relatorio-itens td:last-child{
    border-bottom: none;
  }

  body.platform-android .paginacao-container {
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding: 0;
    justify-content: flex-start;
  }

  body.platform-android .btn-paginacao,
  body.platform-android .btn-primeira-pagina,
  body.platform-android .btn-ultima-pagina {
    min-width: 42px;
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 12px;
  }

  body.platform-android .modal-container {
    padding:
      calc(env(safe-area-inset-top, 0px) + 10px)
      calc(env(safe-area-inset-right, 0px) + 12px)
      calc(env(safe-area-inset-bottom, 0px) + 12px)
      calc(env(safe-area-inset-left, 0px) + 12px);
    align-items: flex-end;
  }

  body.platform-android .modal-content,
  body.platform-android .modal-content--dialog {
    width: 100%;
    max-width: none;
    max-height: 88vh;
    padding: 18px;
    border-radius: 26px 26px 18px 18px;
  }
}

@media (max-width: 420px) {
  body.platform-android .resumo-estoque {
    grid-template-columns: 1fr;
  }

  body.platform-android .android-accordion__grid,
  body.platform-android .android-accordion__actions {
    grid-template-columns: 1fr;
  }

  body.platform-android .android-bottom-nav {
    right: calc(env(safe-area-inset-right, 0px) + 10px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    min-width: 120px;
    padding: 7px;
  }

  body.platform-android #btn-dark-mode {
    left: calc(env(safe-area-inset-left, 0px) + 10px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    width: 46px;
    height: 46px;
  }

  body.platform-android #tabela-estoque td button,
  body.platform-android #tabela-descarte td button,
  body.platform-android #tabela-producao td button{
    flex-basis: 100%;
    min-width: 100%;
  }

  body.platform-android #relatorio .table-wrapper,
  body.platform-android #relatorio-movimentacoes,
  body.platform-android #relatorio-maquina {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.platform-android #tabela-movimentacoes,
  body.platform-android #tabela-producao,
  body.platform-android #tabela-movimentacoes tbody,
  body.platform-android #tabela-producao tbody {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.platform-android #tabela-movimentacoes thead,
  body.platform-android #tabela-producao thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  body.platform-android #tabela-movimentacoes td,
  body.platform-android #tabela-producao td {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible td:not(:first-child) {
    display: none;
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible {
    display: block;
    margin-bottom: 16px;
    border-radius: 20px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 249, 252, 0.92));
    box-shadow: 0 10px 18px rgba(17, 37, 56, 0.08);
    overflow: hidden;
  }

  body.platform-android.dark-mode #tabela-estoque tr.android-estoque-collapsible {
    background: linear-gradient(180deg, rgba(16, 27, 44, 0.96), rgba(12, 23, 38, 0.94));
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.24);
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible td {
    width: 100%;
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible td:first-child {
    display: block;
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible.is-expanded td:not(:first-child) {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
    min-height: 0;
    padding: 12px 14px;
    border-top: 1px solid rgba(216, 224, 232, 0.58);
    border-bottom: none;
    word-break: break-word;
  }

  body.platform-android.dark-mode #tabela-estoque tr.android-estoque-collapsible.is-expanded td:not(:first-child) {
    border-top-color: rgba(255, 255, 255, 0.08);
  }

  body.platform-android #tabela-estoque tr.android-estoque-collapsible.is-expanded td:last-child {
    align-items: stretch;
    gap: 8px;
  }

  body.platform-android #tabela-estoque .table-item--toggle {
    position: relative;
    padding-right: 34px;
    cursor: pointer;
  }

  body.platform-android #tabela-estoque td.android-estoque-collapsible__header {
    cursor: pointer;
  }

  body.platform-android #tabela-estoque .table-item--toggle::after {
    content: '+';
    position: absolute;
    top: 2px;
    right: 0;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--primary-color);
  }

  body.platform-android #tabela-estoque .table-item--toggle.is-expanded::after {
    content: '−';
  }

  body.platform-android.dark-mode #tabela-estoque .table-item--toggle::after {
    color: #f5f8fc;
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible td:not(:first-child),
  body.platform-android #tabela-producao tr.android-maquina-collapsible td:not(:nth-child(2)) {
    display: none;
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible,
  body.platform-android #tabela-producao tr.android-maquina-collapsible {
    display: block;
    margin-bottom: 16px;
    border-radius: 20px;
    border: 1px solid rgba(19, 54, 84, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 249, 252, 0.92));
    box-shadow: 0 10px 18px rgba(17, 37, 56, 0.08);
    overflow: hidden;
  }

  body.platform-android.dark-mode #tabela-movimentacoes tr.android-mov-collapsible,
  body.platform-android.dark-mode #tabela-producao tr.android-maquina-collapsible {
    background: linear-gradient(180deg, rgba(16, 27, 44, 0.96), rgba(12, 23, 38, 0.94));
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.24);
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible td,
  body.platform-android #tabela-producao tr.android-maquina-collapsible td {
    width: 100%;
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible td:first-child,
  body.platform-android #tabela-producao tr.android-maquina-collapsible td:nth-child(2) {
    display: block;
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible.is-expanded td:not(:first-child),
  body.platform-android #tabela-producao tr.android-maquina-collapsible.is-expanded td:not(:nth-child(2)) {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
    min-height: 0;
    padding: 12px 14px;
    border-top: 1px solid rgba(216, 224, 232, 0.58);
    border-bottom: none;
    word-break: break-word;
  }

  body.platform-android.dark-mode #tabela-movimentacoes tr.android-mov-collapsible.is-expanded td:not(:first-child),
  body.platform-android.dark-mode #tabela-producao tr.android-maquina-collapsible.is-expanded td:not(:nth-child(2)) {
    border-top-color: rgba(255, 255, 255, 0.08);
  }

  body.platform-android #tabela-movimentacoes tr.android-mov-collapsible.is-expanded td:last-child,
  body.platform-android #tabela-producao tr.android-maquina-collapsible.is-expanded td:last-child {
    align-items: stretch;
    gap: 8px;
  }

  body.platform-android #tabela-movimentacoes td.android-mov-collapsible__header,
  body.platform-android #tabela-producao td.android-maquina-collapsible__header {
    cursor: pointer;
  }

  body.platform-android #tabela-producao .android-maquina-title-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
  }

  body.platform-android #tabela-producao .android-maquina-title-text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  body.platform-android #tabela-producao .android-maquina-status-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    border-radius: 50%;
  }

  body.platform-android #tabela-movimentacoes td button,
  body.platform-android #tabela-producao tr.android-maquina-collapsible td button {
    flex-basis: auto;
    width: 100%;
    min-width: 0;
    margin: 0;
  }
}

/* Acesso e recuperação de alterações locais. */
.almox-auth-panel { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: 24px; overflow: auto; background: #0d182bf2; }
.almox-auth-panel[hidden], .sync-recovery[hidden], .sync-other-pending[hidden] { display: none; }
.almox-auth-card { width: min(100%, 440px); display: grid; gap: 12px; padding: 28px; border-radius: 16px; background: #fff; color: #142039; box-shadow: 0 16px 64px #0005; }
.almox-auth-card input { box-sizing: border-box; width: 100%; padding: 12px; color: #142039; background: #fff; border: 1px solid #8a98ab; border-radius: 6px; }
#almox-auth-error { color: #a51c1c; }
/* Recovery stays in the page flow, clear of mobile navigation. */
.sync-recovery {
  padding: 14px 18px; margin: 0 0 16px; min-width: 0;
  background: #fff8df; color: #3a2a05; border: 1px solid #b88522;
  border-radius: 12px; overflow-wrap: anywhere;
}
.sync-recovery p { margin: 6px 0; }
.sync-recovery summary { cursor: pointer; padding: 8px 0; font-weight: 600; }
.sync-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 8px; }
.sync-actions button { flex: 1 1 180px; min-width: 0; white-space: normal; }
.action-feedback { padding: 12px 16px; border-left: 4px solid var(--primary-color); background: var(--card-bg-solid); color: var(--text-color); border-radius: 8px; }
.field-error { color: #a21c1c; font-size: 14px; font-weight: 600; line-height: 1.5; }
[aria-invalid="true"] { border: 2px solid #a21c1c; }
body.dark-mode .field-error { color: #ffb4ab; }
body.dark-mode [aria-invalid="true"] { border-color: #ffb4ab; }
body.dark-mode .sync-recovery { background: #302712; color: #ffe9ad; border-color: #b88522; }
:where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #236bc0; outline-offset: 3px;
}
body.dark-mode :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: #8dc6ff; }
.field-group[hidden], .action-feedback[hidden]{ display: none; }
.dialog-message { white-space: pre-line; }
@media (min-width: 901px) {
  .workspace-hero { gap: 16px; margin-bottom: 18px; }
  .workspace-hero__content { padding: 20px 24px; }
  .workspace-hero__content h2 { font-size: 1.6rem; }
  .workspace-hero__content::after { display: none; }
  .workspace-status-card { padding: 12px 16px; }
  .overview-card { padding: 14px 18px; }
}
@media (max-width: 600px) {
  .sync-actions { flex-direction: column; }
  .sync-actions button { flex: none; width: 100%; }
  .sync-recovery { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .modal-content { animation: none; }
}
@media print { .sync-recovery, .almox-auth-panel, .action-feedback { display: none !important; } }
