:root {
  --orange: #E8763C;
  --orange-2: #F2924F;
  --ember-soft: rgba(232, 118, 60, .16);
  --ember-line: rgba(232, 118, 60, .35);
  --black: #0A0908;
  --ink: #F3EDE4;
  --ink-soft: #E4DDD1;
  --muted: #9C9186;
  --line: rgba(243, 237, 228, .10);
  --line-strong: rgba(243, 237, 228, .20);
  --soft: #262019;
  --white: #F3EDE4;
  --surface: #1F1B17;
  --surface-2: #262019;
  --page-bg-1: #17140F;
  --page-bg-2: #121010;
  --radius: 12px;
  --radius-sm: 9px;
  --shadow-card: 0 10px 28px rgba(0, 0, 0, .34);
  --shadow-card-hover: 0 18px 40px rgba(0, 0, 0, .46);
  --font-display: "Sora", system-ui, "Segoe UI", Arial, sans-serif;
  --font-body: "Sora", system-ui, "Segoe UI", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;
  --success: #8FBE96;
  --success-bg: rgba(143, 190, 150, .15);
  --danger: #E2685C;
  --danger-bg: rgba(226, 104, 92, .15);
  --warning: #E8A23C;
  --warning-bg: rgba(232, 162, 60, .15);
}

* { box-sizing: border-box; }
svg { width: 18px; height: 18px; flex-shrink: 0; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: linear-gradient(180deg, var(--page-bg-1) 0%, var(--page-bg-2) 100%) fixed;
  font-family: var(--font-body);
}

.login-body {
  display: grid;
  place-items: center;
  padding: 20px;
  background:
    radial-gradient(circle at 80% 15%, rgba(232,118,60,.20), transparent 26%),
    linear-gradient(145deg, #0e0c0a 0%, #17140f 100%);
}

.login-shell {
  width: min(100%, 420px);
}

.login-card {
  padding: 28px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 24px 70px rgba(0,0,0,.45);
}

.login-brand {
  margin-bottom: 18px;
  color: var(--ink);
  font-family: var(--font-display);
}

.login-brand > div { display: flex; flex-direction: column; gap: 2px; }
.login-brand strong { font-size: 16px; font-weight: 700; color: var(--ink); }
.login-brand span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.brand-mark-wrap.lg { width: 40px; height: 40px; }
.brand-mark-wrap.lg .brand-glow { inset: -13px; }

/* ==== Navegação principal (barra superior) ==== */
.topnav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 28px;
  height: 64px;
  padding: 0 28px;
  background: rgba(21, 19, 17, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}

.brand-mark-wrap {
  position: relative;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--orange);
  flex-shrink: 0;
}

.brand-glow {
  position: absolute;
  inset: -9px;
  border-radius: 999px;
  background: radial-gradient(circle, var(--ember-line), rgba(232,118,60,0) 70%);
  filter: blur(4px);
  animation: softGlow 3.6s ease-in-out infinite;
}

.brand-mark {
  position: relative;
  z-index: 1;
  width: 26px;
  height: 26px;
}
.brand-mark-wrap.lg .brand-mark { width: 40px; height: 40px; }

.brand-word {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--ink);
  white-space: nowrap;
}

.topnav nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
  flex-grow: 1;
  min-width: 0;
}

.topnav nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 13px;
  border-radius: 7px;
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
  white-space: nowrap;
  transition: color .16s ease, background-color .16s ease;
}
.topnav nav a svg { width: 15px; height: 15px; }
.topnav nav a:hover { color: var(--ink); background: rgba(243,237,228,.06); }
.topnav nav a.active { color: var(--ink); background: rgba(232,118,60,.12); }
.topnav nav a .badge { margin-left: 2px; }

.topnav-user {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
.topnav-user .status-pill { background: var(--surface-2); color: var(--ink-soft); }
.topnav-user > a {
  color: var(--muted);
  text-decoration: none;
  font-size: 12.5px;
  font-weight: 650;
  transition: color .16s ease;
}
.topnav-user > a:hover { color: var(--ink); }

.main {
  padding: 28px 32px 48px;
  max-width: 1360px;
  margin: 0 auto;
}

.page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

.eyebrow {
  color: var(--orange);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
h1, h2 { margin: 0; letter-spacing: -.2px; font-family: var(--font-display); color: var(--ink); }
h1 { font-size: 27px; font-weight: 700; }
h2 { font-size: 17px; font-weight: 700; }

.status-pill, .tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--ember-soft);
  color: var(--orange-2);
  font-weight: 700;
  font-size: 12px;
}
.status-pill span {
  width: 8px;
  height: 8px;
  border-radius: 99px;
  background: var(--success);
}
.ia-control {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ia-control.off .status-pill {
  background: var(--danger-bg);
  color: var(--danger);
}
.ia-control.off .status-pill span {
  background: var(--danger);
}
.ia-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  border: 0;
  border-radius: 8px;
  padding: 8px 12px;
  color: #101010;
  font-weight: 800;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.ia-button.start { background: var(--success); }
.ia-button.stop { background: var(--danger); color: #fff; }

.assistant-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 18px;
  border-radius: 10px;
  color: #fff;
}
.assistant-switch.active { background: #1E3A28; }
.assistant-switch.paused { background: #3A1E1E; }
.assistant-switch span, .assistant-switch strong {
  display: block;
}
.assistant-switch span {
  color: rgba(255,255,255,.72);
  font-weight: 700;
  font-size: 13px;
}
.assistant-switch strong {
  margin-top: 4px;
  font-size: 20px;
}
.assistant-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.danger { background: var(--danger); }
.small-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: 6px;
  color: #fff;
  cursor: pointer;
  font-weight: 750;
  min-height: 30px;
  padding: 6px 9px;
  text-decoration: none;
}
.edit-button { background: var(--surface-2); margin-right: 6px; }

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

.metric, .panel, .delivery {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.metric:hover, .panel:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--ember-line);
}

.metric {
  min-height: 124px;
  padding: 18px;
  display: grid;
  align-content: space-between;
}
.metric span, label, small { color: var(--muted); }
.metric strong { font-size: 32px; color: var(--ink); }
.metric strong {
  font-family: var(--font-mono);
  font-weight: 600;
}
.metric::before {
  content: "";
  display: block;
  width: 34px;
  height: 4px;
  border-radius: 99px;
  background: var(--orange);
  margin-bottom: 2px;
}

.panel { padding: 18px; margin-bottom: 16px; }
.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.panel-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.panel-toggle {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 12px;
}
.panel.is-collapsed { padding-bottom: 18px; }
.panel.is-collapsed .panel-head { margin-bottom: 0; }

.split {
  display: grid;
  grid-template-columns: minmax(320px, 420px) 1fr;
  gap: 16px;
  align-items: start;
}

.form-panel, .filters { display: grid; gap: 12px; }
.order-form { display: block; }
.grid-2, .grid-3, .filters {
  display: grid;
  gap: 10px;
}
.grid-2 { grid-template-columns: 1fr 1fr; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.filters { grid-template-columns: repeat(6, minmax(120px, 1fr)); align-items: end; }
.report-filters { grid-template-columns: repeat(6, minmax(130px, 1fr)); }

label {
  display: grid;
  gap: 6px;
  font-size: 13px;
  font-weight: 650;
  color: var(--muted);
}

input, textarea, select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--surface-2);
  font: inherit;
  transition: border-color .18s ease, box-shadow .18s ease;
}
input:focus, textarea:focus, select:focus {
  outline: 0;
  border-color: var(--orange);
  box-shadow: 0 0 0 4px var(--ember-soft);
}
textarea { min-height: 86px; resize: vertical; }
.big-textarea { min-height: 420px; font-family: var(--font-mono); }

.quick-register {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--ember-line);
  border-radius: 8px;
  background: var(--ember-soft);
}

.quick-register legend {
  padding: 0 5px;
  color: var(--orange-2);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.quick-register label {
  gap: 6px;
  margin: 0;
}

.quick-register input {
  min-height: 56px;
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  background: var(--surface);
}

.primary, .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  position: relative;
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease;
}
.primary { background: var(--orange); color: #17140F; }
.button { background: var(--surface-2); color: var(--ink); border-color: var(--line-strong); }
.primary:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(232,118,60,.32); }
.button:hover { transform: translateY(-1px); border-color: var(--line-strong); background: #2c2419; }
.primary:active, .button:active { transform: translateY(0); box-shadow: none; }
.light-action {
  background: transparent;
  color: var(--ink-soft);
  border-color: var(--line-strong);
}
.light-action:hover { background: rgba(243,237,228,.06); }

.dashboard-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 148px;
  padding: 24px;
  margin-bottom: 16px;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 24%, rgba(232,118,60,.22), transparent 28%),
    var(--surface);
  border: 1px solid var(--line);
  color: var(--ink);
}
.dashboard-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.05) 45%, transparent 58%);
  transform: translateX(-100%);
  animation: heroSheen 5s ease-in-out infinite;
}
.dashboard-hero > * { position: relative; z-index: 1; }
.dashboard-hero h2 {
  margin-top: 8px;
  font-size: 30px;
  color: var(--ink);
  font-weight: 700;
}
.dashboard-hero p {
  margin: 8px 0 0;
  color: var(--muted);
  font-weight: 650;
}
.dashboard-hero .eyebrow { color: var(--orange-2); }
.dashboard-main-panel {
  border-radius: 14px;
  padding: 24px;
}
.dashboard-main-panel .panel-head h2 {
  font-size: 20px;
}
.dashboard-main-panel .table-wrap {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.dashboard-main-panel table {
  margin: 0;
}
.dashboard-main-panel th {
  background: var(--black);
  color: var(--ink-soft);
}
.dashboard-main-panel td {
  font-size: 15px;
}
.premium-metrics .premium-card {
  position: relative;
  overflow: hidden;
  background: var(--surface);
}
.premium-card::after {
  content: "";
  position: absolute;
  inset: auto 18px 0 18px;
  height: 4px;
  border-radius: 99px 99px 0 0;
  background: var(--orange);
}
.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(310px, .8fr);
  gap: 16px;
  align-items: stretch;
}
.sales-panel, .ranking-panel {
  background: var(--surface);
  border-color: var(--line);
  color: var(--ink);
}
.sales-panel h2, .ranking-panel h2 { color: var(--ink); }
.sales-panel .helper-text, .ranking-panel .helper-text { color: var(--muted); }
.premium-chart {
  height: 310px;
  border-color: var(--line);
  background: var(--black);
}
.premium-chart .bar {
  background: linear-gradient(180deg, var(--orange-2), #7c3f1c);
  box-shadow: 0 0 20px rgba(232,118,60,.22);
  animation: barRise .42s ease both;
  transition: transform .18s ease, filter .18s ease;
}
.premium-chart .bar:hover {
  transform: scaleY(1.05);
  filter: brightness(1.18);
}
.premium-chart .bar span {
  color: var(--ink);
  font-weight: 700;
}
.bar small {
  position: absolute;
  left: 50%;
  top: calc(100% + 7px);
  transform: translateX(-50%) rotate(-35deg);
  color: var(--muted);
  font-size: 10px;
  white-space: nowrap;
}
.product-stack {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 18px;
}
.product-stack div {
  padding: 14px;
  border-radius: 8px;
  background: var(--surface-2);
  border: 1px solid var(--line);
}
.product-stack span, .ranking-row span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.product-stack strong {
  display: block;
  margin-top: 8px;
  font-size: 26px;
  color: var(--ink);
}
.compact-head { margin-top: 8px; }
.ranking-list {
  display: grid;
  gap: 8px;
}
.ranking-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border-radius: 8px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.ranking-row:hover {
  transform: translateX(4px);
  border-color: var(--ember-line);
  background: #2c2419;
}
.ranking-row strong {
  color: var(--ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.action-pop { animation: softPulse 2.4s ease-in-out infinite; }

.simple-report-cover {
  background: var(--surface);
  color: var(--ink);
}
.simple-report-cover h2 { color: var(--ink); }
.simple-report-cover p {
  margin: 8px 0 0;
  color: var(--muted);
  font-weight: 650;
}
.report-metrics {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.employee-split {
  grid-template-columns: minmax(320px, 520px) minmax(280px, 1fr);
}

.check-line {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 38px;
}

.check-line input {
  width: auto;
  min-height: auto;
}

.row-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.row-actions form {
  margin: 0;
}

.calendar-filters {
  grid-template-columns: minmax(150px, 180px) minmax(240px, 1fr) minmax(150px, 180px);
}

.calendar-panel {
  overflow: hidden;
}

.calendar-head {
  align-items: flex-start;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}
.legend-dot.pendente { background: var(--warning); }
.legend-dot.pedido { background: var(--success); }
.legend-dot.sem { background: var(--danger); }
.legend-dot.vazio { background: var(--line-strong); }

.calendar-alert-panel {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) 1fr;
  gap: 14px;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid var(--warning);
  border-radius: 8px;
  background: var(--warning-bg);
}

.calendar-alert-panel strong,
.calendar-alert-panel span {
  display: block;
}

.calendar-alert-panel strong {
  color: var(--warning);
  font-size: 16px;
}

.calendar-alert-panel span {
  margin-top: 4px;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 700;
}

.calendar-alert-list {
  display: grid;
  gap: 6px;
}

.calendar-alert-list div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  min-height: 30px;
  padding: 6px 8px;
  border-radius: 6px;
  background: var(--surface);
}

.calendar-alert-list a,
.calendar-register-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 8px;
  border-radius: 6px;
  background: var(--black);
  color: var(--ink);
  text-decoration: none;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.client-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.calendar-weekday {
  min-height: 38px;
  display: grid;
  place-items: center;
  background: var(--black);
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.calendar-day {
  min-height: 142px;
  padding: 10px;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.calendar-day.fora {
  background: var(--black);
  color: var(--muted);
}

.calendar-day.pedido {
  background: rgba(143,190,150,.08);
  border-top: 4px solid var(--success);
}

.calendar-day.pendente {
  background: var(--warning-bg);
  border-top: 4px solid var(--warning);
}

.calendar-day.duplicado {
  box-shadow: inset 0 0 0 3px var(--warning);
}

.calendar-day.duplicado .calendar-day-top::after {
  content: "Conferir";
  min-height: 22px;
  padding: 4px 7px;
  border-radius: 6px;
  background: var(--warning);
  color: #17140F;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.calendar-day.sem {
  background: var(--danger-bg);
  border-top: 4px solid var(--danger);
}

.calendar-day-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.calendar-day-top strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
}

.calendar-day-top a {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--black);
  color: var(--ink);
}

.calendar-notes {
  display: grid;
  gap: 5px;
}

.calendar-notes span,
.calendar-notes em {
  display: block;
  min-height: 24px;
  padding: 5px 7px;
  border-radius: 6px;
  background: rgba(243,237,228,.06);
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pending-list span {
  background: var(--warning-bg);
  color: var(--warning);
}

.calendar-actions {
  margin-top: auto;
  display: grid;
  gap: 5px;
}

.calendar-actions button {
  min-height: 34px;
  border: 0;
  border-radius: 6px;
  background: var(--danger);
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

@keyframes barRise {
  from { transform: scaleY(.45); transform-origin: bottom; opacity: .5; }
  to { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
}
@keyframes softPulse {
  0%, 100% { box-shadow: 0 0 0 rgba(232,118,60,0); }
  50% { box-shadow: 0 0 0 5px rgba(232,118,60,.16); }
}
@keyframes heroSheen {
  0%, 58% { transform: translateX(-100%); }
  76%, 100% { transform: translateX(100%); }
}
@keyframes softGlow {
  0%, 100% { opacity: .5; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.1); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pulseRing {
  0%, 100% { box-shadow: 0 0 0 0 var(--ember-line); }
  50% { box-shadow: 0 0 0 5px rgba(232,118,60,0); }
}

.edit-preview-table th:nth-child(1) { width: 180px; }
.edit-preview-table th:nth-child(2) { width: 120px; }
.preview-input {
  min-height: 36px;
  padding: 7px 9px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 650;
}
.qty-input {
  max-width: 90px;
  text-align: center;
}

.table-wrap { overflow: auto; }
table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}
th, td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
th {
  background: var(--black);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .3px;
  text-transform: uppercase;
}
td strong, td small { display: block; }
tbody tr:nth-child(even) td { background: rgba(243,237,228,.02); }
tbody tr:hover td { background: rgba(232,118,60,.05); }

.kitchen-total {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.kitchen-total div {
  background: var(--surface);
  color: var(--ink);
  min-height: 118px;
  border-radius: 10px;
  padding: 18px;
  display: grid;
  align-content: space-between;
  border: 1px solid var(--line);
}
.kitchen-total span { color: var(--muted); font-weight: 650; }
.kitchen-total strong { font-size: 32px; font-family: var(--font-mono); }
.kitchen-total div:first-child { background: var(--orange); color: #17140F; border-color: transparent; }
.kitchen-total div:first-child span { color: rgba(23,20,15,.7); }

.delivery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.quick-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.report-cover h2 {
  font-size: 24px;
  margin-top: 6px;
}
.report-cover p {
  color: var(--muted);
  font-weight: 650;
}
.report-text {
  margin: 0;
  white-space: pre-wrap;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink-soft);
}
.delivery { padding: 16px; display: grid; gap: 10px; }
.delivery div, .delivery form {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}
.delivery p { margin: 0; }

.chart {
  display: flex;
  align-items: end;
  gap: 8px;
  height: 260px;
  padding: 16px 8px 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}
.bar {
  flex: 1;
  min-width: 22px;
  background: var(--orange);
  border-radius: 6px 6px 0 0;
  position: relative;
}
.bar span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  font-size: 11px;
  color: var(--muted);
}

.setting-row {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.ok { color: var(--success); }
.warn { color: var(--warning); }
.env-box {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.env-box p { width: 100%; margin: 0; color: var(--muted); }
code {
  background: var(--black);
  color: var(--ink-soft);
  border-radius: 8px;
  padding: 8px 10px;
  font-family: var(--font-mono);
}

.onboarding {
  display: grid;
  grid-template-columns: minmax(300px, 430px) minmax(420px, 1fr);
  gap: 16px;
  align-items: start;
}
.intro-panel {
  display: grid;
  gap: 18px;
}
.intro-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.steps {
  display: grid;
  gap: 10px;
}
.steps div {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.steps strong {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--orange);
  color: #17140F;
}
.whatsapp-box {
  display: grid;
  gap: 6px;
  padding: 14px;
  border-radius: 8px;
  background: var(--black);
  color: var(--ink);
}
.whatsapp-box small, .whatsapp-box span { color: var(--muted); }
.success {
  padding: 12px;
  border-radius: 8px;
  background: var(--success-bg);
  color: var(--success);
  font-weight: 700;
}
.webhook-panel {
  max-width: 820px;
}
.webhook-ok {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.webhook-ok svg {
  width: 42px;
  height: 42px;
  padding: 9px;
  border-radius: 8px;
  background: var(--success-bg);
  color: var(--success);
}
.webhook-ok p, .helper-text {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.5;
}
.whatsapp-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.qr-panel {
  display: grid;
  gap: 16px;
  justify-items: start;
}
.qr-img {
  width: min(320px, 100%);
  aspect-ratio: 1;
  border: 10px solid var(--surface);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.warning-box {
  padding: 12px;
  border-radius: 8px;
  background: var(--ember-soft);
  color: var(--orange-2);
  font-weight: 700;
}
.labels-sheet {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.meal-label {
  min-height: 150px;
  padding: 10px;
  border: 2px solid var(--ink);
  border-radius: 8px;
  background: #fff;
  color: #111;
  display: grid;
  gap: 4px;
  align-content: start;
  break-inside: avoid;
}
.meal-label header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 2px solid #111;
  padding-bottom: 5px;
}
.meal-label header strong {
  font-size: 15px;
  text-transform: uppercase;
}
.meal-label header span {
  font-weight: 700;
  color: #C2571F;
}
.label-unit {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}
.label-name {
  font-size: 28px;
  font-weight: 700;
  color: #111;
  line-height: 1;
}
.label-type {
  font-size: 15px;
  font-weight: 650;
}
.label-count {
  font-size: 12px;
  font-weight: 700;
}
.label-obs {
  padding: 5px;
  border-radius: 6px;
  background: #fff2e6;
  color: #9a3412;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
.import-preview {
  display: grid;
  gap: 12px;
  max-height: 720px;
  overflow: auto;
}
.duplicate-list {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}
.preview-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--surface);
}
.preview-card header, .preview-totals {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.preview-card header strong {
  font-size: 18px;
  text-transform: uppercase;
}
.preview-card header span, .preview-totals span {
  font-weight: 700;
  color: var(--orange-2);
}
.preview-card ul {
  margin: 10px 0 0;
  padding-left: 18px;
}
.preview-card li {
  margin-bottom: 6px;
}
.preview-card li span, .preview-card li small {
  display: block;
  color: var(--muted);
}

.task-panel {
  margin-bottom: 16px;
}

.auto-refresh {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--success-bg);
  color: var(--success);
  font-size: 12px;
  font-weight: 700;
}

.task-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.task-summary div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
}

.task-summary strong,
.task-summary span {
  display: block;
}

.task-summary strong {
  font-size: 24px;
  color: var(--ink);
  line-height: 1;
  font-family: var(--font-mono);
}

.task-summary span {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.task-list,
.late-tasks {
  display: grid;
  gap: 8px;
}

.late-tasks {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.late-tasks:empty {
  display: none;
}

.late-tasks h3 {
  margin: 0 0 4px;
  font-size: 15px;
  color: var(--ink);
}

.task-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
  color: var(--ink);
  transition: background-color .16s ease, border-color .16s ease;
}
.task-row:hover { background: #2a2318; border-color: var(--line-strong); }

.task-row a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 1 1 auto;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.task-row form {
  flex: 0 0 auto;
  margin: 0;
}

.task-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 650;
}

.task-row strong {
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 12px;
}

.task-row.pendente strong {
  background: var(--ember-soft);
  color: var(--orange-2);
  animation: pulseRing 2.6s ease-in-out infinite;
}

.task-row.ok strong {
  background: var(--success-bg);
  color: var(--success);
}

.no-consumption-button {
  background: var(--surface-2);
  color: var(--ink);
  border: 1px solid var(--line-strong);
}

.check-panel {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
}

.check-panel legend {
  padding: 0 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 650;
  color: var(--ink-soft);
}

.check-row input {
  width: 18px;
  height: 18px;
}

/* ==== entrada suave (aplicada via classes utilitárias nos templates) ==== */
.fade-up { opacity: 0; animation: fadeUp 420ms cubic-bezier(0.16,1,0.3,1) forwards; }
.metrics > *:nth-child(1), .metric:nth-of-type(1) { animation-delay: 0ms; }
.metrics > *:nth-child(2) { animation-delay: 60ms; }
.metrics > *:nth-child(3) { animation-delay: 120ms; }
.metrics > *:nth-child(4) { animation-delay: 180ms; }

@media (max-width: 980px) {
  .main { padding: 20px 16px 40px; }
  .metrics, .kitchen-total, .delivery-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-hero { align-items: flex-start; flex-direction: column; }
  .split, .onboarding { grid-template-columns: 1fr; }
  .filters { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
  .page-head, .panel-head { align-items: flex-start; flex-direction: column; }
  .assistant-switch { align-items: flex-start; flex-direction: column; }
  .assistant-actions, .ia-control { justify-content: flex-start; }
  .metrics, .kitchen-total, .delivery-grid, .grid-2, .grid-3, .filters, .product-stack, .task-summary, .quick-register { grid-template-columns: 1fr; }
  .task-row { align-items: flex-start; flex-direction: column; }
  .task-row a { width: 100%; }
  .task-row span { white-space: normal; }
}

@media print {
  .topnav, .page-head, .button, .primary, form, .no-print { display: none !important; }
  .main { margin: 0; padding: 0; max-width: none; }
  .panel { border: 0; box-shadow: none; }
  body { background: #fff; color: #111; }
  @page { size: A4; margin: 8mm 6mm; }
  .labels-sheet {
    display: grid;
    grid-template-columns: repeat(6, 31mm);
    grid-auto-rows: 17mm;
    gap: 0;
    align-items: start;
  }
  .meal-label {
    width: 31mm;
    height: 17mm;
    min-height: 17mm;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0.9mm;
    overflow: hidden;
    page-break-inside: avoid;
    font-family: Arial, sans-serif;
  }
  .meal-label header {
    border-bottom: 0;
    padding-bottom: 0;
    line-height: 1;
  }
  .meal-label header strong {
    font-size: 7.8pt;
    max-width: 22mm;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .meal-label header span { font-size: 6.5pt; color: #000; }
  .label-unit { font-size: 6.2pt; font-weight: 900; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .label-name { font-size: 9.2pt; line-height: 1.05; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .label-count { font-size: 5.9pt; line-height: 1; font-weight: 900; white-space: nowrap; overflow: hidden; }
  .label-type { font-size: 5.6pt; line-height: 1; font-weight: 900; }
  .label-obs {
    padding: 0;
    background: transparent;
    color: #000;
    font-size: 5.3pt;
    line-height: 1.05;
    max-height: 6mm;
    overflow: hidden;
  }
}
.terminal-shell{min-height:calc(100vh - 110px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;background:var(--page-bg-2);padding:24px}.terminal-brand{display:flex;align-items:center;gap:12px;font-size:22px;color:var(--ink);font-family:var(--font-display)}.terminal-clock{font-size:clamp(64px,10vw,132px);font-weight:700;letter-spacing:4px;line-height:1;color:var(--ink);font-family:var(--font-mono)}.terminal-date{font-size:clamp(18px,2vw,28px);color:var(--muted);text-transform:capitalize}.terminal-card{width:min(560px,100%);padding:28px 34px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 60px rgba(0,0,0,.45)}.terminal-card h2{font-size:26px;margin:8px;color:var(--ink)}.terminal-card form{display:flex;flex-direction:column;gap:16px}.terminal-card input{font-size:42px;letter-spacing:18px;text-align:center;border:2px solid var(--line-strong);border-radius:10px;padding:10px 10px 10px 28px;background:var(--surface-2);color:var(--ink)}.terminal-button{background:var(--orange);color:#17140F;border:0;border-radius:9px;padding:16px;font-weight:700;font-size:18px;cursor:pointer;font-family:var(--font-display)}.terminal-actions{display:flex;gap:18px}.terminal-actions button,.terminal-actions a{background:transparent;border:0;color:var(--muted);text-decoration:none;padding:8px;cursor:pointer}.feedback{margin-top:16px;border-radius:10px;padding:18px;display:grid;gap:5px;font-size:20px;opacity:1;transition:opacity .6s ease}.feedback:empty{display:none}.feedback.fading{opacity:0}.feedback strong{font-size:23px}.feedback.success{background:var(--success-bg);color:var(--success)}.feedback.error{background:var(--danger-bg);color:var(--danger)}.feedback.alert{background:var(--danger-bg);color:var(--danger);border:3px solid var(--danger);animation:alertPulse 1s ease-in-out infinite}.feedback small{font-size:15px}.terminal-shell:fullscreen{padding:5vh 8vw;justify-content:center;background:var(--page-bg-2)}
@keyframes alertPulse{0%,100%{box-shadow:0 0 0 0 rgba(226,104,92,.45)}50%{box-shadow:0 0 0 14px rgba(226,104,92,0)}}

/* ==== Ponto: selos de status, sub-menu e abas ==== */
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#17140F;background:var(--muted)}
.badge.status-ok{background:var(--success);color:#0E2013}
.badge.status-atraso{background:var(--warning);color:#17140F}
.badge.status-ausente{background:var(--danger);color:#fff}
.badge.status-intervalo{background:#4F8FD6;color:#fff}
.badge.status-revisao{background:#A387E0;color:#17140F}
.badge.status-folga{background:var(--line-strong);color:var(--ink)}
.badge.status-neutro{background:var(--surface-2);color:var(--ink-soft)}
.row-pendente{background:var(--warning-bg)}
.ponto-subnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ponto-subnav a{padding:8px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);text-decoration:none;font-weight:650;font-size:13px;transition:background-color .16s ease, color .16s ease, border-color .16s ease}
.ponto-subnav a:hover{background:var(--surface-2);color:var(--ink)}
.ponto-subnav a.active{background:var(--orange);border-color:var(--orange);color:#17140F}
.ponto-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ponto-tabs button{padding:8px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-weight:650;font-size:13px;cursor:pointer;transition:background-color .16s ease, color .16s ease}
.ponto-tabs button:hover{background:var(--surface-2);color:var(--ink)}
.ponto-tabs button.active{background:var(--ink);border-color:var(--ink);color:#17140F}
.ponto-tab-panel[hidden]{display:none}

/* ==== Anotações: bloco de notas ==== */
.notepad-panel{display:flex;flex-direction:column;min-height:calc(100vh - 210px)}
.notepad-area{
  flex:1;
  width:100%;
  min-height:440px;
  margin-top:14px;
  padding:16px 22px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  background:
    repeating-linear-gradient(to bottom, transparent, transparent 31px, var(--line) 32px),
    var(--surface-2);
  background-attachment:local;
  line-height:32px;
  font-size:16px;
  font-family:var(--font-body);
  color:var(--ink);
  resize:vertical;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.notepad-area:focus{outline:0;border-color:var(--orange);box-shadow:0 0 0 4px var(--ember-soft)}
.notepad-area::placeholder{color:var(--muted)}

/* ==== v3: polimento geral (scrollbar, seleção, foco) ==== */
::selection { background: var(--ember-line); color: var(--ink); }
* { scrollbar-width: thin; scrollbar-color: rgba(243,237,228,.22) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(243,237,228,.18); border-radius: 99px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(243,237,228,.30); background-clip: padding-box; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* ==== navegação mobile em barra inferior (estilo app) ==== */
@media (max-width: 640px) {
  html { scroll-behavior: smooth; }
  .main { padding-bottom: 92px; }
  .topnav { padding: 0 16px; height: 56px; gap: 16px; }
  .topnav nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 30;
    display: flex;
    gap: 2px;
    background: var(--black);
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -10px 28px rgba(0,0,0,.4);
    overflow-x: auto;
    scrollbar-width: none;
    border-top: 1px solid var(--line);
  }
  .topnav nav::-webkit-scrollbar { display: none; }
  .topnav nav a {
    flex: 1 0 auto;
    min-width: 62px;
    min-height: 52px;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 7px 8px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 650;
    text-align: center;
    white-space: nowrap;
  }
  .topnav nav a svg { width: 20px; height: 20px; }
  .topnav-user .status-pill span:first-child { display: none; }
}

/* 2026-09-24 -- Compras do Dia: bolinha vermelha no menu enquanto a lista de hoje nao esta pronta */
.badge-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 4px;
  border-radius: 50%;
  background: var(--danger);
  box-shadow: 0 0 0 3px var(--danger-bg);
  vertical-align: middle;
}

/* ------------------------------------------------------------------
   2026-09-24 -- Menu principal reorganizado em grupos.
   Sempre a vista: Inicio, Tarefas, Registrar, Compras do Dia, Relatorios.
   Grupos (<details>): Equipe e Mais. No celular: barra no rodape com
   Inicio/Tarefas/Registrar/Compras + "Menu", que abre uma folha com o resto.
   ------------------------------------------------------------------ */
.topnav nav.nav-principal { flex-wrap: nowrap; gap: 2px; }
.topnav nav.nav-principal > a svg { display: none; }
.nav-so-celular { display: none !important; }

.nav-grupo { position: relative; }
.nav-grupo > summary,
.nav-menu-celular > summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 13px;
  border-radius: 7px;
  color: var(--muted);
  font-weight: 600;
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: color .16s ease, background-color .16s ease;
}
.nav-grupo > summary::-webkit-details-marker,
.nav-menu-celular > summary::-webkit-details-marker { display: none; }
.nav-grupo > summary:hover { color: var(--ink); background: rgba(243,237,228,.06); }
.nav-grupo > summary.active,
.nav-grupo[open] > summary { color: var(--ink); background: rgba(232,118,60,.12); }
.nav-grupo > summary:focus-visible,
.nav-menu-celular > summary:focus-visible { outline: 2px solid var(--orange-2); outline-offset: 2px; }
.nav-seta { font-size: 10px; opacity: .7; transition: transform .16s ease; }
.nav-grupo[open] .nav-seta { transform: rotate(180deg); }

.nav-grupo-painel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 40;
  min-width: 210px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  box-shadow: 0 18px 40px rgba(0,0,0,.5);
  animation: navGrupoAbre .14s ease-out;
}
@keyframes navGrupoAbre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.topnav nav .nav-grupo-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  min-height: 0;
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--ink-soft);
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
}
.topnav nav .nav-grupo-item svg { display: inline-block; width: 16px; height: 16px; color: var(--muted); }
.topnav nav .nav-grupo-item:hover { background: rgba(243,237,228,.06); color: var(--ink); }
.topnav nav .nav-grupo-item.active { background: rgba(232,118,60,.14); color: var(--ink); }
.topnav nav .nav-grupo-item.active svg { color: var(--orange-2); }

@media (max-width: 640px) {
  /* backdrop-filter criaria um "container" para position:fixed e prenderia a barra do rodape no topo */
  .topnav { backdrop-filter: none; background: rgba(21, 19, 17, .98); }
  .nav-so-desktop { display: none !important; }
  .nav-so-celular { display: block !important; }
  .topnav nav.nav-principal { overflow: visible; justify-content: space-around; }
  .topnav nav.nav-principal > a svg { display: inline-block; }
  .topnav nav.nav-principal > a,
  .nav-menu-celular > summary {
    flex: 1 1 0;
    min-width: 0;
    min-height: 52px;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 7px 4px;
    border-radius: 10px;
    font-size: 10.5px;
    font-weight: 650;
  }
  .topnav nav.nav-principal > a > span { display: inline-flex; align-items: center; gap: 2px; }
  .nav-menu-celular { flex: 1 1 0; display: flex !important; }
  .nav-menu-celular > summary { display: flex; width: 100%; align-items: center; }
  .nav-menu-celular > summary svg { width: 20px; height: 20px; }
  .nav-menu-celular > summary.active,
  .nav-menu-celular[open] > summary { color: var(--ink); background: rgba(232,118,60,.12); }
  .topnav nav .badge { padding: 1px 6px; font-size: 10px; }
  .nav-folha {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: calc(80px + env(safe-area-inset-bottom, 0px));
    z-index: 40;
    max-height: 70vh;
    overflow-y: auto;
    padding: 10px;
    background: var(--surface);
    border: 1px solid var(--line-strong);
    border-radius: 16px;
    box-shadow: 0 -18px 48px rgba(0,0,0,.55);
    animation: navGrupoAbre .14s ease-out;
  }
  .nav-folha-titulo {
    margin: 10px 8px 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--muted);
  }
  .nav-folha-titulo:first-child { margin-top: 2px; }
  .topnav nav .nav-folha .nav-grupo-item { padding: 12px; font-size: 15px; }
  .topnav nav .nav-folha .nav-grupo-item svg { width: 18px; height: 18px; }
}

/* ------------------------------------------------------------------
   2026-09-24 -- Lote visual 1
   ------------------------------------------------------------------ */
/* Botoes pequenos (Dispensar, Excluir, Redefinir...): o estilo antigo nao tinha fundo e o
   navegador pintava de branco, com texto branco em cima. Agora seguem o tema escuro. */
.small-button {
  background: var(--surface-2);
  color: var(--ink);
  border: 1px solid var(--line-strong);
  font-size: 12.5px;
  font-family: var(--font-body);
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.small-button:hover { background: #2c2419; border-color: var(--ember-line); }
.small-button.danger { background: var(--danger-bg); color: #F0A097; border-color: rgba(226,104,92,.40); }
.small-button.danger:hover { background: rgba(226,104,92,.26); color: #fff; }
.small-button.no-consumption-button { background: var(--warning-bg); color: var(--warning); border-color: rgba(232,162,60,.40); }

/* Links soltos dentro do conteudo (sem classe de botao) ficavam azul-escuro no fundo escuro */
.main a:not([class]), .helper-text a, .panel p a:not([class]) {
  color: var(--orange-2);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(242,146,79,.45);
}
.main a:not([class]):hover { color: #FFB27A; text-decoration-color: currentColor; }

/* Formularios com <fieldset> (ex.: Empresas) estouravam a largura no celular: por padrao o
   fieldset tem largura minima = conteudo mais largo (um <select> com opcao comprida). */
fieldset { min-width: 0; }
.form-panel select, .form-panel input, .form-panel textarea, fieldset select, fieldset input, fieldset textarea { max-width: 100%; min-width: 0; }
.split > * { min-width: 0; }

/* 2026-09-24 -- Tabelas viram cartoes no celular (rotulos preenchidos por app.js) */
@media (max-width: 640px) {
  .table-wrap:has(> table.tabela-cartoes) { overflow: visible; }
  table.tabela-cartoes { min-width: 0 !important; width: 100%; border-collapse: separate; }
  table.tabela-cartoes thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }
  table.tabela-cartoes, table.tabela-cartoes tbody { display: block; }
  table.tabela-cartoes tbody tr {
    display: block;
    margin: 0 0 10px;
    padding: 6px 14px;
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 12px;
  }
  table.tabela-cartoes tbody tr:last-child { margin-bottom: 0; }
  table.tabela-cartoes tbody td, table.tabela-cartoes tbody th {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
    text-align: right;
    background: transparent;
    font-size: 14px;
    overflow-wrap: anywhere;
  }
  table.tabela-cartoes tbody tr > :last-child { border-bottom: 0; }
  table.tabela-cartoes tbody td::before, table.tabela-cartoes tbody th::before {
    content: attr(data-rotulo);
    flex: 0 0 auto;
    max-width: 45%;
    text-align: left;
    color: var(--muted);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
    padding-top: 2px;
  }
  table.tabela-cartoes tbody td.celula-sem-rotulo { justify-content: flex-start; text-align: left; flex-wrap: wrap; }
  table.tabela-cartoes tbody td.celula-sem-rotulo::before { content: none; }
  table.tabela-cartoes tbody td > form, table.tabela-cartoes tbody td > .actions { display: inline-flex; gap: 6px; flex-wrap: wrap; }
  table.tabela-cartoes tbody tr.linha-aviso { background: transparent; border-style: dashed; text-align: center; }
  table.tabela-cartoes tbody tr.linha-aviso td { display: block; text-align: center; color: var(--muted); border: 0; }
  table.tabela-cartoes tbody tr.linha-aviso td::before { content: none; }
}

/* 2026-09-24 -- cartoes compactos: 1a coluna vira o titulo do cartao, o resto em 2 colunas */
@media (max-width: 640px) {
  table.tabela-cartoes tbody tr:not(.linha-aviso) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    padding: 10px 14px 8px;
  }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > td,
  table.tabela-cartoes tbody tr:not(.linha-aviso) > th {
    display: block;
    text-align: left;
    border-bottom: 0;
    padding: 5px 0;
    min-width: 0;
  }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > td::before,
  table.tabela-cartoes tbody tr:not(.linha-aviso) > th::before {
    display: block;
    max-width: none;
    margin-bottom: 1px;
    font-size: 10.5px;
    padding-top: 0;
  }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > :first-child {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    padding: 2px 0 8px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--line);
  }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > :first-child::before { display: inline; }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > .celula-larga,
  table.tabela-cartoes tbody tr:not(.linha-aviso) > .celula-sem-rotulo { grid-column: 1 / -1; }
  table.tabela-cartoes tbody tr:not(.linha-aviso) > .celula-sem-rotulo { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 8px; }
}
.mostrar-mais-cartoes { display: none; }
@media (max-width: 640px) {
  table.cartoes-recolhidos tbody tr.cartao-extra { display: none !important; }
  .mostrar-mais-cartoes { display: flex; width: 100%; justify-content: center; margin-top: 12px; }
}
@media (max-width: 640px) {
  table.tabela-cartoes td .button, table.tabela-cartoes td button, table.tabela-cartoes td .primary { white-space: normal; max-width: 100%; text-align: center; }
  table.tabela-cartoes td form { max-width: 100%; }
}

/* Relatorios: 4 filtros + 3 botoes numa linha so' no computador (o PDF caia sozinho embaixo) */
@media (min-width: 981px) {
  .filters.report-filters { grid-template-columns: repeat(4, minmax(130px, 1fr)) repeat(3, auto); }
  .filters.report-filters > .primary, .filters.report-filters > .button { min-width: 110px; }
}
