/* /ai-workspace.css */
/* Philippe: widgets independentes, controles de vidro e geometria compartilhada. */
:root {
  --ws-ink:#292720; --ws-secondary:#56534e; --ws-material:rgba(255,255,255,.88);
  --ws-control:rgba(255,255,255,.88); --ws-soft:rgba(87,80,69,.075);
  --ws-shadow:0 12px 38px rgba(40,28,12,.13),0 2px 8px rgba(40,28,12,.07);
  --ws-accent:#28643b; --ws-radius:26px; --ws-top:94px;
}
body.dark { --ws-ink:#f6f4f0; --ws-secondary:#d2cdc5; --ws-material:rgba(35,34,33,.93); --ws-control:rgba(52,49,47,.90); --ws-soft:rgba(255,255,255,.09); --ws-shadow:0 14px 42px rgba(0,0,0,.28); --ws-accent:#a6e3ad; }
body.ai-workspace-on { padding-top:0; }
body.ai-workspace-on main,body.ai-workspace-on .top { transform:none!important; }
body.ai-workspace-on .top { top:10px; }
body.ai-workspace-on::after { opacity:.3;filter:blur(22px);animation:none; }
body.ai-workspace-on .aiframe { display:none!important; }
/* 1.26.0: o desfoque só entra quando há cards. Ativar (só o ícone) e falar (o campo) deixam a tela nítida. */
body.ai-workspace-on:has(#aiz.ws-root:not(.ws-empty):not(.hidden)) main { filter:blur(7px) saturate(.8); }
body.ai-workspace-on:has(#aiz.ws-root.ws-empty) main { filter:none; }
/* 1.27.0: janela sob o Cérebro (diagnóstico, calibração) também desfoca o fundo, mesmo sem cards. */
body.ai-workspace-on:has(dialog.hd-under-brain[open]) main { filter:blur(7px) saturate(.8); }
body.ai-workspace-on .top .right { max-width:100%; }
#aiz.ws-root { position:fixed;inset:var(--ws-top) 24px calc(18px + var(--ws-viewport-inset,0px));width:auto;max-width:none;max-height:none;margin:0;padding:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;z-index:1260;overflow:visible;animation:none;color:var(--ws-ink);pointer-events:none; }
#aiz.ws-root.hidden { display:none!important; }
#aiz.ws-root > * { min-width:0;min-height:0; }
#aiz.ws-root.ws-empty { grid-template-rows:auto;align-content:start;top:calc(var(--ws-top) + 12px); }
#aiz.ws-root .ws-board { display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;pointer-events:none; }
#aiz.ws-root.ws-empty .ws-board { display:none; }
.ws-toolbar { display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:40px;pointer-events:auto; }
.ws-topic { display:flex;align-items:center;gap:9px;min-width:0;padding:8px 15px;background:var(--ws-control);border-radius:24px;box-shadow:var(--ws-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);font-size:var(--f-subhead,0.9375rem); }
.ws-topic strong { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw; }
.ws-topic i { width:7px;height:7px;background:var(--ws-accent);border-radius:50%;flex:none; }
.ws-toolbar-actions,.ws-pager { display:flex;align-items:center;gap:6px;flex:none; }
.ws-pager span { min-width:45px;text-align:center;font-size:calc(0.8125rem * var(--dt));color:var(--ws-secondary); }
.ws-grid { display:grid;grid-template-columns:repeat(var(--ws-cols,2),minmax(0,1fr));grid-template-rows:repeat(var(--ws-rows,1),minmax(0,1fr));gap:16px;min-height:0;align-items:stretch;pointer-events:none; }
.ws-widget { display:flex;flex-direction:column;min-width:0;min-height:0;max-height:100%;margin:0;padding:20px;border:0!important;border-radius:var(--ws-radius);background:var(--ws-material);color:var(--ws-ink);box-shadow:var(--ws-shadow)!important;backdrop-filter:blur(30px) saturate(135%);-webkit-backdrop-filter:blur(30px) saturate(135%);overflow:hidden;pointer-events:auto;isolation:isolate; }
.ws-widget[aria-current=true] .ws-widget-title::before { content:'';display:inline-block;width:7px;height:7px;margin-right:8px;vertical-align:middle;border-radius:50%;background:var(--ws-accent); }
.ws-widget-header { display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;flex:none; }
.ws-widget-heading { min-width:0;flex:1; }
.ws-eyebrow { font-size:max(0.6875rem, calc(0.6875rem * var(--dt)));line-height:1.4;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--ws-secondary);margin-bottom:4px; }
.ws-widget-title { font-size:clamp(1.125rem,1.5vw,1.5rem);font-weight:750;line-height:1.2;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere; }
.ws-widget-tools { display:flex;gap:3px;flex:none; }
.ws-widget-body { min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(110,105,99,.28) transparent; }
.ws-widget-body:focus-visible { outline:2px solid var(--ws-accent);outline-offset:-3px;border-radius:12px; }
.ws-widget p { margin:0 0 12px;line-height:1.5;font-size:var(--f-body,1.0625rem);overflow-wrap:anywhere; }
.ws-widget .ws-notice { font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary);margin:12px 0 0;line-height:1.45; }
.ws-widget-footer { margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:none; }
.ws-btn { appearance:none;border:0!important;outline:none;box-shadow:var(--ws-shadow);background:var(--ws-control);color:var(--ws-ink);border-radius:24px;padding:9px 14px;min-height:36px;font-family:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;line-height:1.2;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);white-space:normal; }
@media (hover:hover){.ws-btn:hover{ filter:brightness(.97); }}
.ws-btn:active { transform:scale(.97); }
.ws-btn:disabled { opacity:.45;cursor:default; }
.ws-btn.ws-icon { width:34px;height:34px;min-height:34px;padding:8px;flex:none;box-shadow:none;background:var(--ws-soft); }
.ws-btn svg { width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none; }
.ws-btn.ws-primary { background:#28643b;color:white; }
body.dark .ws-btn.ws-primary { background:#a6e3ad;color:#17391f; }
.ws-btn:focus-visible,.ws-controls button:focus-visible,.ws-widget select:focus-visible,.ws-widget input:focus-visible { outline:2px solid var(--ws-accent)!important;outline-offset:3px; }
.ws-controls { display:grid;justify-items:center;gap:12px;min-width:0;pointer-events:none; }
.ws-controls > * { pointer-events:auto; }
#aiz.ws-root .aisug { width:100%;display:flex;justify-content:center;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:2px 0;max-height:none;min-height:0;overflow:visible!important; }
#aiz.ws-root .aisug .pill { display:inline-flex;align-items:center;gap:8px;max-width:100%;min-width:0;min-height:38px;margin:0;padding:8px 14px;border:0!important;box-shadow:var(--ws-shadow)!important;border-radius:26px;color:var(--ws-ink);background:var(--ws-control);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);font-size:var(--f-subhead,0.9375rem);line-height:1.2;white-space:normal;text-align:left;overflow-wrap:anywhere; }
#aiz.ws-root .aisug .pill .si { display:grid;place-items:center;width:24px;height:24px;min-width:24px;border-radius:8px;background:var(--ws-soft);color:var(--ws-accent); }
#aiz.ws-root .aisug .pill svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8; }
.ws-composer { display:flex;align-items:center;gap:10px;width:min(720px,100%);pointer-events:auto;min-width:0; }
.ws-composer .ws-input { display:flex;align-items:center;gap:10px;flex:1;min-width:0;min-height:54px;padding:6px 8px 6px 14px;border:0!important;outline:none!important;border-radius:32px;background:var(--ws-control)!important;box-shadow:var(--ws-shadow)!important;backdrop-filter:blur(32px) saturate(145%);-webkit-backdrop-filter:blur(32px) saturate(145%); }
.ws-composer .ws-input::before,.ws-composer .ws-input::after { content:none!important;display:none!important; }
.ws-composer .ws-input:focus-within { box-shadow:0 12px 40px rgba(60,35,15,.19)!important; }
.ws-composer #aiinput { font-family:inherit;font-size:var(--f-body,1.0625rem);color:var(--ws-ink)!important;background:transparent!important;box-shadow:none!important;border:0!important;outline:none!important;min-width:0;min-height:32px;width:100%;flex:1;padding:0; }
.ws-composer #aiinput::placeholder { color:var(--ws-secondary)!important;opacity:1; }
.ws-composer .aiorb2 { flex:none;width:26px;height:26px; }
.ws-composer .ws-close { background:var(--ws-control);width:36px;height:36px; }
/* A busca participa do fluxo para nunca encobrir controles quando a barra quebra. */
.ws-filters { display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 12px; }
.ws-filters button,.ws-filters select,.ws-filters input { font-family:inherit;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));line-height:1.3;padding:7px 10px;border:0;border-radius:16px;min-height:32px;max-width:100%;background:var(--ws-soft);color:var(--ws-ink); }
.ws-filters button { cursor:pointer; }
.ws-filters button[aria-pressed=true] { background:var(--ws-accent);color:#fff; }
body.dark .ws-filters button[aria-pressed=true] { color:#17391f; }
.ws-filter-detail { display:flex;flex-wrap:wrap;gap:8px;width:100%;padding-top:5px; }
.ws-filter-detail label { display:flex;align-items:center;gap:5px;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary); }
.ws-comparison-controls { display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;padding:8px 0 0; }
/* Aproveita a linha de filtros quando os dois periodos cabem lado a lado. */
.ws-widget:has(.ws-comparison-pair) .ws-comparison-controls { width:auto;padding-top:0; }
.ws-comparison-controls > label { display:flex;align-items:center;gap:6px;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary); }
.ws-presentation { display:flex;gap:4px;flex-wrap:wrap; }
.ws-comparison-context { margin:0 0 14px;font-size:calc(0.8125rem * var(--dt));font-weight:650;line-height:1.5; }
.ws-comparison-context > span { font-weight:400;color:var(--ws-secondary); }
.ws-comparison-context p { margin:8px 0;font-size:calc(0.8125rem * var(--dt)); }
.ws-comparison-pair { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;align-items:start;padding:3px; }
.ws-comparison-card { display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:center;min-width:0;padding:16px;border-radius:20px;background:var(--ws-control);box-shadow:0 3px 14px rgba(30,25,16,.08); }
.ws-comparison-card > :not(h3):not(.ws-comparison-date) { grid-column:1/-1; }
.ws-comparison-card h3 { font-size:calc(1.0625rem * var(--dt));line-height:1.3;margin:0; }
.ws-comparison-date { color:var(--ws-secondary);font-size:calc(0.8125rem * var(--dt));margin:0; }
.ws-comparison-card .ws-metrics { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:8px; }
.ws-comparison-card .ws-metric strong { font-size:calc(1.5rem * var(--dt)); }
.ws-comparison-card .ws-chart { height:190px;margin:8px 0; }
.ws-comparison-card .ws-chart-legend { margin:4px 0; }
.ws-comparison-card .ws-chart-legend button { min-height:44px; }
.ws-comparison-card .ws-chart-readout { margin:2px 0; }
.ws-comparison-card > .ws-notice { margin-top:6px; }
/* O indicador principal compartilha o cabecalho, preservando legenda e leitura do grafico. */
.ws-comparison-card:has(> .ws-metrics > .ws-metric:only-child) > h3 { grid-column:1;grid-row:1; }
.ws-comparison-card:has(> .ws-metrics > .ws-metric:only-child) > .ws-comparison-date { grid-column:1;grid-row:2; }
.ws-comparison-card:has(> .ws-metrics > .ws-metric:only-child) > .ws-metrics { grid-column:2;grid-row:1/3;grid-template-columns:minmax(0,1fr);margin:0;text-align:right; }
.ws-comparison-card:has(> .ws-metrics > .ws-metric:only-child) > .ws-notice { grid-row:3; }
.ws-secondary-metrics { margin:12px 0; }
.ws-secondary-metrics > summary { cursor:pointer;min-height:36px;line-height:1.4;font-size:calc(0.8125rem * var(--dt));font-weight:600; }
.ws-secondary-metrics > summary:focus-visible { outline:2px solid var(--ws-accent);outline-offset:3px; }
.ws-secondary-metrics[open] > summary { margin-bottom:10px; }
.ws-widget:has(.ws-comparison-pair) { max-width:none; }
.ws-grid:has(.ws-comparison-pair):has(> .ws-widget:only-child) { max-width:1300px; }
.ws-report-items details { padding:10px 0;border-bottom:1px solid var(--ws-soft); }
.ws-report-items summary { cursor:pointer;min-height:36px;line-height:1.4;font-size:calc(0.875rem * var(--dt));overflow-wrap:anywhere; }
.ws-report-items summary:focus-visible { outline:2px solid var(--ws-accent);outline-offset:3px; }
.ws-fixed-unit { font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary); }
@media(max-width:760px) { .ws-comparison-pair { grid-template-columns:minmax(0,1fr);gap:12px; }.ws-comparison-card { padding:14px; }.ws-presentation button { min-height:40px; } }
.ws-metrics { display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:14px 18px;margin-bottom:16px; }
.ws-metric { min-width:0; }
.ws-metric span { display:block;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary);line-height:1.35; }
.ws-metric strong { display:block;font-size:clamp(1.4375rem,2.15vw,2.125rem);line-height:1.2;font-weight:750;letter-spacing:-.04em;margin:3px 0;overflow-wrap:anywhere; }
.ws-metric small { font-size:max(0.6875rem, calc(0.6875rem * var(--dt)));color:var(--ws-secondary); }
.ws-chart { position:relative;min-height:180px;height:220px;margin:12px 0; }
.ws-chart canvas { width:100%!important;height:100%!important; }
.ws-chart-readout { font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--ws-secondary);min-height:18px;margin:5px 0; }
.ws-chart-legend { display:flex;gap:10px;flex-wrap:wrap;margin:8px 0; }
.ws-chart-legend button { background:var(--ws-soft);border:0;border-radius:16px;padding:6px 9px;color:var(--ws-ink);font:inherit;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));cursor:pointer; }
.ws-chart-legend i { display:inline-block;height:7px;width:7px;margin-right:6px;background:var(--series);border-radius:50%; }
.ws-table-wrap { max-width:100%;overflow:auto; }
.ws-table { width:100%;border-collapse:collapse;text-align:left;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));line-height:1.4; }
.ws-table th { color:var(--ws-secondary);font-weight:600; }
.ws-table td,.ws-table th { padding:9px 8px 9px 0;border:0;vertical-align:top; }
.ws-table tbody tr:nth-child(2n) { background:var(--ws-soft); }
.ws-orders { display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:start; }
.ws-order { min-width:0;cursor:pointer;border-radius:18px;padding:0; }
.ws-order .e { border:0!important;box-shadow:none!important;background:var(--ws-soft)!important;backdrop-filter:none!important;margin:0;width:auto;min-width:0;max-width:100%; }
.ws-order .e .waitcover,.ws-order .e .waitlbl { display:none!important; }
.ws-order .e .chk { display:none!important; }
.ws-order:focus-visible { outline:2px solid var(--ws-accent);outline-offset:2px; }
.ws-order-items { margin:9px 2px 0;font-size:calc(0.8125rem * var(--dt));font-weight:600;line-height:1.4; }
.ws-order-column { display:flex;flex-direction:column;gap:10px; }
.ws-order-column h3 { font-size:calc(0.875rem * var(--dt));margin:0; }
.ws-recipe { display:grid;grid-template-columns:1fr;gap:12px; }
.ws-recipe-head { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.ws-recipe-size { font-size:calc(0.8125rem * var(--dt));color:var(--ws-secondary); }
.ws-ingredients { display:grid;grid-template-columns:1fr;gap:2px; }
.ws-ingredient { display:flex;justify-content:space-between;gap:16px;padding:9px 10px;border-radius:10px;font-size:calc(0.875rem * var(--dt));line-height:1.35; }
.ws-ingredient:nth-child(2n) { background:var(--ws-soft); }
.ws-ingredient b { white-space:nowrap; }
.ws-ingredient em { font-size:max(0.6875rem, calc(0.6875rem * var(--dt)));display:block;color:var(--ws-secondary);font-style:normal; }
.ws-rich > .pmini,.ws-rich > .psteps,.ws-rich > .pexpand { background:transparent!important;border:0!important;box-shadow:none!important;max-height:none!important;width:auto!important;margin:0!important;padding:0!important; }
.ws-rich .psteps ol { margin:0;padding-left:22px; }
.ws-rich .psteps li { padding:5px 0;font-size:calc(0.875rem * var(--dt));line-height:1.4; }
.ws-rich .pcard,.ws-rich .prich-chart,.ws-rich .rc { background:transparent!important;border:0!important;box-shadow:none!important;max-height:none!important;width:auto!important; }
.ws-rich .pacts { display:flex;flex-wrap:wrap;gap:8px; }
.ws-rich .btn { border:0!important;border-radius:20px; }
.ws-widget .ws-empty-state { padding:20px 4px;color:var(--ws-secondary);font-size:calc(0.9375rem * var(--dt));line-height:1.5; }
.ws-widget .ws-source { margin-top:12px;font-size:max(0.6875rem, calc(0.6875rem * var(--dt)));color:var(--ws-secondary); }
.ws-loading { display:flex;align-items:center;gap:8px;color:var(--ws-secondary); }
.ws-loading i { width:6px;height:6px;border-radius:50%;background:currentColor;animation:ws-pulse 1s ease-in-out infinite alternate; }
.ws-loading i:nth-child(2) { animation-delay:.2s; } .ws-loading i:nth-child(3) { animation-delay:.4s; }
@keyframes ws-pulse { to {opacity:.25;} }
/* A resposta curta acompanha a busca, sem ocupar a area dos pedidos. */
#aiz.ws-root.ws-message-mode { grid-template-rows:minmax(0,1fr) auto;align-content:stretch; }
#aiz.ws-root.ws-message-mode .ws-board { align-self:center; }
#aiz.ws-root.ws-message-mode .ws-board { height:auto;max-height:min(52dvh,480px); }
#aiz.ws-root.ws-message-mode .ws-widget-body { flex:0 1 auto; }
#aiz.ws-root.ws-inline-mode .ws-board { height:auto;max-height:none;display:block; }
#aiz.ws-root.ws-inline-mode .ws-toolbar { display:none; }
#aiz.ws-root.ws-inline-mode .ws-grid { display:block;width:min(820px,100%);margin:auto; }
.ws-bubble { display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;min-height:48px;margin:auto;padding:9px 12px 9px 18px;border:0;border-radius:24px;background:var(--ws-material);color:var(--ws-ink);box-shadow:var(--ws-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);pointer-events:auto; }
.ws-bubble-copy { min-width:0; }
.ws-bubble-copy p { margin:0;font-size:var(--f-body,1.0625rem);line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.ws-bubble-actions { display:flex;align-items:center;gap:8px;flex:none; }
.ws-bubble-actions:empty { display:none; }
.ws-bubble .ws-widget-footer { margin:0; }
.ws-bubble .ws-btn { min-height:36px;box-shadow:none;background:var(--ws-soft);font-size:calc(0.875rem * var(--dt)); }
#aiz.ws-root.ws-support-mode .ws-grid { align-items:start; }
#aiz.ws-root.ws-support-mode .ws-widget { height:auto; }
#aiz.ws-root.ws-support-mode.ws-single-result .ws-toolbar { display:none; }
#aiz.ws-root.ws-support-mode.ws-single-result .ws-board { grid-template-rows:minmax(0,1fr);gap:0; }
.ws-voice-label { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.ws-mic-icon { display:grid;place-items:center; }
@media (max-width:760px) {
  #aiz.ws-root { left:12px;right:12px;bottom:calc(12px + var(--ws-viewport-inset,0px));gap:10px; }
  .ws-grid { gap:10px; }
  .ws-widget { padding:16px;border-radius:22px; }
  .ws-toolbar { gap:5px;flex-wrap:wrap; }
  .ws-topic { padding:7px 11px;flex:1; }
  .ws-topic strong { max-width:54vw;font-size:calc(0.8125rem * var(--dt)); }
  .ws-toolbar-actions { margin-left:auto; }
  .ws-toolbar-actions .ws-clear-label { display:none; }
  #aiz.ws-root .aisug { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
  #aiz.ws-root .aisug .pill { min-height:40px;padding:7px 10px;font-size:max(0.6875rem, calc(0.75rem * var(--dt))); }
  .ws-composer .ws-input { min-height:48px;padding-left:10px; }
  .ws-composer #aiinput { font-size:calc(0.875rem * var(--dt)); }
  .ws-widget-title { font-size:calc(1.25rem * var(--dt)); }
  .ws-metrics { gap:10px;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ws-metric strong { font-size:calc(1.625rem * var(--dt)); }
  .ws-btn { min-height:40px; }
  .ws-orders { grid-template-columns:1fr; }
  .ws-bubble { gap:8px;padding:9px 10px 9px 13px;border-radius:20px;flex-wrap:wrap; }
  .ws-bubble-copy { flex:1 1 180px; }
  .ws-bubble-copy p { font-size:calc(0.9375rem * var(--dt)); }
  .ws-bubble-actions { margin-left:auto;max-width:100%;flex-wrap:wrap; }
  .ws-bubble .ws-btn { min-height:40px; }
}
@media (pointer:coarse) { .ws-btn,.ws-filters button,.ws-filters select,.ws-filters input { min-height:44px; }.ws-btn.ws-icon { min-width:44px;min-height:44px; } }
@media (max-width:460px) {
}
@media (prefers-reduced-motion:reduce) { .ws-root *,.ws-composer * { animation:none!important;transition:none!important; } }
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  :root { --ws-material:#fff;--ws-control:#fff;--ws-secondary:#35332e; }
  body.dark { --ws-material:#242424;--ws-control:#323232;--ws-secondary:#eee; }
  .ws-widget,.ws-btn,.ws-topic,.ws-input,#aiz.ws-root .pill { backdrop-filter:none!important;-webkit-backdrop-filter:none!important; }
}
/* O compositor permanece no centro; a animacao antiga escalava a translacao. */
#ws-composer-home { width:min(720px,100%); }
#ws-composer-home .ws-composer { width:100%; }
.ws-grid:has(> .ws-widget:only-child) { grid-template-columns:minmax(0,1fr);width:100%;max-width:900px;justify-self:center; }
.ws-filters button { display:inline-flex;align-items:center;justify-content:center;gap:5px; }
.ws-filters svg { width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8; }
@media (min-width:980px) { .ws-ingredients { grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px; } }
.ws-order-detail { max-width:none;margin:auto; }
.ws-order-detail .e { border:0!important;box-shadow:none!important;background:var(--ws-soft)!important; }
.ws-detail-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px; }
.ws-metrics { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); }
.ws-metric strong { font-size:clamp(1.4375rem,2vw,1.875rem);white-space:nowrap;overflow-wrap:normal; }

@media (pointer:coarse) { .ws-composer .ws-close { width:44px;height:44px;min-width:44px;min-height:44px; } }

/* Mesma folga acima e abaixo das sugestoes no KDS. */
/* Fichas usam sua altura natural e distribuem ingredientes pela largura. */
#aiz.ws-root.ws-recipe-mode{max-height:none;grid-template-rows:auto;gap:0}
#aiz.ws-root.ws-recipe-mode .ws-board{height:auto;max-height:none;grid-template-rows:auto auto}
#aiz.ws-root.ws-recipe-mode .ws-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;max-width:1100px}
#aiz.ws-root.ws-recipe-mode .ws-widget{height:auto;max-height:none;overflow:visible}
#aiz.ws-root.ws-recipe-mode .ws-widget-body{flex:none;overflow:visible;max-height:none}
#aiz.ws-root.ws-recipe-mode.ws-single-result .ws-toolbar{display:none}
#aiz.ws-root.ws-recipe-mode.ws-single-result .ws-board{gap:0}
#aiz.ws-root.ws-recipe-mode .ws-ingredients{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:4px 12px}
#aiz.ws-root.ws-recipe-mode .ws-ingredient{font-size:var(--f-subhead,0.9375rem);line-height:1.35;padding:6px 8px;gap:12px}
#aiz.ws-root.ws-recipe-mode .ws-ingredient em{font-size:max(0.6875rem, calc(0.75rem * var(--dt)))}
#aiz.ws-root.ws-rich-mode{top:var(--ws-rich-top,var(--ws-top));bottom:calc(18px + var(--ws-viewport-inset,0px));max-height:none;grid-template-rows:minmax(0,1fr) auto;align-content:stretch}
#aiz.ws-root.ws-rich-mode .ws-board{align-self:center;justify-self:center;width:min(1000px,100%);height:auto;max-height:100%;grid-template-rows:auto minmax(0,1fr)}
#aiz.ws-root.ws-rich-mode .ws-grid{grid-template-rows:minmax(0,1fr);max-height:100%}
#aiz.ws-root.ws-rich-mode .ws-widget{height:auto;max-height:100%}
#aiz.ws-root.ws-rich-mode .ws-widget-body{flex:0 1 auto}
#aiz.ws-root.ws-rich-mode.ws-single-result .ws-toolbar{display:none}
#aiz.ws-root.ws-rich-mode.ws-single-result .ws-board{grid-template-rows:minmax(0,1fr);gap:0}
.ws-recipe-photo{display:block;width:min(200px,100%);height:140px;object-fit:cover;border-radius:16px;margin:0 auto}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): a coluna dos filhos vinha de `.ws-recipe:has(.ws-recipe-photo)>:not(...)`. Um
   `:has()` seguido de um seletor sem classe custava o estilo da tela inteira a cada mexida no sistema todo
   (docs/DESEMPENHO-2026-10-03.md). Agora a receita com foto guarda a coluna numa variável e os filhos leem dela; sem foto
   vale `auto`, que é o valor de sempre. O resultado na tela é o mesmo. */
.ws-recipe:has(.ws-recipe-photo){grid-template-columns:minmax(140px,200px) minmax(0,1fr);column-gap:20px;align-items:start;--ws-recipe-coluna:2}
.ws-recipe:has(.ws-recipe-photo)>.ws-recipe-photo{grid-column:1;grid-row:1/span 3}
.ws-recipe.ws-recipe>:not(.ws-recipe-photo){grid-column:var(--ws-recipe-coluna,auto)}
@media(max-width:760px){
 .ws-recipe:has(.ws-recipe-photo){grid-template-columns:88px minmax(0,1fr);gap:8px 12px;--ws-recipe-coluna:1/-1}
 .ws-recipe:has(.ws-recipe-photo)>.ws-recipe-photo{grid-column:1;grid-row:1;width:88px;height:66px;border-radius:12px}
 .ws-recipe:has(.ws-recipe-photo)>.ws-recipe-head{grid-column:2;grid-row:1;min-height:66px;flex-wrap:wrap;gap:6px}
 .ws-recipe-head .ws-filters{margin-bottom:0}
}
#aiz.ws-root.ws-recipe-mode .ws-recipe-head{flex-wrap:wrap;gap:8px}
#aiz.ws-root.ws-recipe-mode .ws-recipe-head .ws-filters{margin:0}
#aiz.ws-root.ws-recipe-mode .ws-recipe-head button{min-height:44px}
.ws-recipe-paging{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:calc(0.8125rem * var(--dt));text-align:center}
.ws-recipe-paging button{min-height:44px;padding:8px;flex:none}.ws-recipe-paging svg{width:16px}
/* Consultas de pedidos ocupam apenas o espaco do conteudo. */
#aiz.ws-root.ws-order-mode:not(.ws-rich-mode) .ws-board{align-self:center;width:100%;height:auto;max-height:100%;grid-template-rows:auto minmax(0,1fr)}
#aiz.ws-root.ws-order-mode:not(.ws-rich-mode) .ws-grid{grid-template-rows:minmax(0,1fr);max-height:100%}
#aiz.ws-root.ws-order-mode .ws-widget-body{flex:0 1 auto}
#aiz.ws-root.ws-order-mode.ws-single-result:not(.ws-rich-mode) .ws-board{width:min(720px,100%);justify-self:center}
.ws-order-detail{color:var(--ws-ink);min-width:0}
.ws-order-detail .oh{padding:0 0 12px;gap:12px;flex-wrap:wrap}
.ws-order-detail .orow{padding:8px 0;gap:10px;flex-wrap:wrap}
.ws-order-detail .ocols{padding:12px 0;gap:20px}
.ws-order-detail .oinfo{padding:12px 0;font-size:var(--f-subhead,0.9375rem);overflow-wrap:anywhere}
.ws-order-detail .oinfo>div{padding:3px 0}
.ws-order-detail .oacts{padding:12px 0 0;gap:8px;justify-content:flex-start;flex-wrap:wrap}
.ws-order-detail .oacts .btn{white-space:normal;min-height:40px}
.ws-order-detail .ws-detail-focus{background:var(--ws-soft);border-radius:16px;box-shadow:inset 3px 0 var(--ws-accent);padding:12px}
@media(max-width:760px){.ws-order-detail .ocols{grid-template-columns:minmax(0,1fr)}.ws-order-detail .oh .n{font-size:calc(1.625rem * var(--dt))}.ws-order-detail .oacts .btn{flex:1 1 135px}}

.ws-order-detail .ws-detail-columns{grid-template-columns:1.1fr 1fr .85fr;align-items:start;gap:18px;margin-top:8px;padding:4px 0}
.ws-order-detail .ws-detail-columns .oinfo{border:0;margin:0;padding:0}
.ws-order-detail .ws-detail-timeline .tli{padding-bottom:12px;font-size:calc(0.8125rem * var(--dt))}
.ws-order-detail .ws-detail-timeline .tlh{font-size:calc(0.875rem * var(--dt));margin-bottom:8px}
.ws-order-actions .oacts{display:flex;width:100%;gap:8px;flex-wrap:wrap;margin:0;padding:0;justify-content:flex-start}
.ws-order-actions .btn{min-height:40px;white-space:normal}
.ws-widget:has(.ws-order-detail) .ws-widget-title{display:none}
@media(max-width:980px){.ws-order-detail .ws-detail-columns{grid-template-columns:1fr 1fr}.ws-order-detail .ws-detail-timeline{grid-column:1/-1}.ws-order-detail .ws-detail-timeline .tl{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:580px){.ws-order-detail .ws-detail-columns{grid-template-columns:minmax(0,1fr)}.ws-order-detail .ws-detail-timeline .tl{grid-template-columns:minmax(0,1fr)}.ws-order-actions .btn{flex:1 1 135px}}

/* /on-demand.css */
.hub-on-demand{color:var(--label,var(--text,#211f1c));background:var(--surface2,#f7f4ef);border:1px solid var(--sep,rgba(90,70,50,.2));border-radius:24px;padding:0;width:min(820px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 24px 80px rgba(0,0,0,.3)}
.hub-on-demand[open]{display:flex;flex-direction:column}.hub-on-demand::backdrop{background:rgba(15,10,5,.45);backdrop-filter:blur(6px)}
.hub-on-demand header,.hub-on-demand footer{flex:none;padding:18px 22px;background:var(--surface,#fff);border-bottom:1px solid var(--sep,rgba(90,70,50,.15))}.hub-on-demand header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.hub-on-demand header h2{font-size:calc(1.625rem * var(--dt));margin:4px 0 0;font-weight:750}.hub-on-demand header p{margin:6px 0 0}.hub-on-demand .od-eyebrow{font-size:calc(0.8125rem * var(--dt));color:var(--sub,#64594e)}
.hub-on-demand .od-body{overflow:auto;overscroll-behavior:contain;padding:18px 22px;min-height:0}.hub-on-demand footer{border-top:1px solid var(--sep,rgba(90,70,50,.15));border-bottom:0}.hub-on-demand footer>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.hub-on-demand footer p:empty{display:none}.hub-on-demand section{margin:16px 0;padding-top:12px;border-top:1px solid var(--sep,rgba(90,70,50,.15))}.hub-on-demand h3{font-size:calc(1.125rem * var(--dt));margin:0 0 10px}
.hub-on-demand label{display:flex;flex-direction:column;gap:6px;font-size:calc(0.875rem * var(--dt));min-width:0}.hub-on-demand input,.hub-on-demand select{font:inherit;color:inherit;background:var(--surface,#fff);border:1px solid var(--sep,#b7afa6);border-radius:12px;min-height:44px;padding:10px;box-sizing:border-box;width:100%;min-width:0}.hub-on-demand .od-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hub-on-demand .od-item{display:grid;grid-template-columns:2fr .8fr 1fr 1fr;gap:10px;margin:12px 0}.hub-on-demand .od-hint{font-size:calc(0.875rem * var(--dt));color:var(--sub,#64594e);line-height:1.45}.hub-on-demand .od-warning{font-size:calc(0.9375rem * var(--dt));background:rgba(230,166,35,.15);padding:12px;border-radius:12px;line-height:1.4}.hub-on-demand .od-price strong{display:block;font-size:calc(2.375rem * var(--dt));margin:10px 0}.hub-on-demand .od-price{border:0;background:var(--surface,#fff);border-radius:18px;padding:18px}.hub-on-demand .od-delivery{border:1px solid var(--sep,#b7afa6);border-radius:16px;padding:14px;margin:10px 0}.hub-on-demand .od-delivery>div:first-child{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.hub-on-demand .od-delivery small{display:block;margin-bottom:10px}.hub-on-demand .od-delivery .btn{margin:6px 8px 0 0}.hub-on-demand .od-cancel-form{display:grid;gap:10px;margin-top:14px}.hub-on-demand .btn{min-height:44px;white-space:normal}.hub-on-demand button:focus-visible,.hub-on-demand input:focus-visible,.hub-on-demand select:focus-visible,.hub-on-demand a:focus-visible{outline:3px solid var(--blue,#007aff);outline-offset:2px}
@media(max-width:600px){.hub-on-demand header,.hub-on-demand footer,.hub-on-demand .od-body{padding:14px}.hub-on-demand header h2{font-size:calc(1.4375rem * var(--dt))}.hub-on-demand .od-item{grid-template-columns:1fr 1fr}.hub-on-demand .od-item label:first-child{grid-column:1/-1}.hub-on-demand .od-fields{grid-template-columns:1fr}.hub-on-demand footer>div{display:grid;grid-template-columns:1fr 1fr}.hub-on-demand footer .primary{grid-column:1/-1}}

.hub-on-demand header .icon{color:var(--label,var(--text));background:var(--fill,rgba(90,70,50,.08));width:44px;height:44px;flex:none;border-radius:50%;border:0;font-size:calc(1.5625rem * var(--dt))}.hub-on-demand .od-item>[data-od-remove-item]{grid-column:1/-1;justify-self:start}

.hub-on-demand .od-origin{display:grid;gap:6px;background:var(--surface,#fff);padding:14px 16px;border-radius:16px}.hub-on-demand .od-origin b{font-size:calc(1.125rem * var(--dt))}.hub-on-demand .od-origin span{font-size:calc(0.875rem * var(--dt));color:var(--sub,#64594e)}
/* 1.50.0: troca de endereço e código de coleta na ficha da entrega */
.hub-on-demand .od-address-change,.hub-on-demand .od-pickup{margin:10px 0;padding:10px 12px;border-radius:12px;background:rgba(58,42,30,.06)}
.hub-on-demand .od-address-change.od-warning,.hub-on-demand .od-pickup.od-warning{background:color-mix(in srgb,var(--sys-red,#E0342E) 10%,transparent);border-left:4px solid var(--sys-red,#E0342E)}
.hub-on-demand .od-address-change p,.hub-on-demand .od-pickup p{margin:4px 0;font-size:calc(0.875rem * var(--dt))}
.hub-on-demand .od-address-actions,.hub-on-demand .od-pickup-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.hub-on-demand .od-pickup-form input{flex:1 1 140px;min-width:0;font-size:calc(1.25rem * var(--dt));letter-spacing:.12em;text-align:center;font-variant-numeric:tabular-nums}
.hub-on-demand .od-hint.od-ok{color:var(--pronto,#22B14C);font-weight:600}

/* 1.68.0: provedores do sob demanda (99Food aguardando API) */
.hub-on-demand .od-provedores{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.hub-on-demand .od-prov{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:999px;font-size:calc(0.8125rem * var(--dt));font-weight:600}
.hub-on-demand .od-prov.on{background:var(--label,#211f1c);color:var(--surface,#fff)}
.hub-on-demand .od-prov.off{background:var(--fill,rgba(90,70,50,.08));color:var(--sub,#64594e);font-weight:500}

/* 1.73.5: código de coleta do pedido (delivery.pickupCode) na ficha da entrega */
.hub-on-demand .od-pickup-code{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:10px 0 0;font-size:calc(.875rem * var(--dt))}
.hub-on-demand .od-pickup-code b{font-size:calc(1.375rem * var(--dt));letter-spacing:.12em;font-variant-numeric:tabular-nums}
.hub-on-demand .od-pickup-code small{flex:1 0 100%;color:var(--sub,#64594e);font-size:calc(.8125rem * var(--dt))}

/* /ifood-gestao.css */
/* 1.67.0: Loja no iFood (web/ifood-gestao.js). Mesma linguagem visual do Sob Demanda (on-demand.css). */
/* 1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas): conteúdo primeiro (B4, B6 e B7). A moldura da janela (o nome e
   o Fechar em cima, a faixa de cartões, a barra de baixo) é a da casa: web/hub-janela.css. Saíram daqui o cabeçalho com o
   seletor de loja, a fileira de abas, o corpo que rolava e o rodapé das últimas chamadas. Aqui fica só o miolo dos cartões. */
.hub-ifood-gestao .ifg-rolagem{overflow-x:auto}
.hub-ifood-gestao .hj-faixa.hcar-pc>.ifg-largo{flex-basis:min(100%,calc(var(--hcar-w,24rem) * 1.5))}
.hub-ifood-gestao .ifg-pausas,.hub-ifood-gestao .ifg-avals{list-style:none;margin:0;padding:0}
.hub-ifood-gestao .ifg-pausas li,.hub-ifood-gestao .ifg-avals li{padding:.625rem 0;border-bottom:1px solid var(--sep,rgba(90,70,50,.15))}
.hub-ifood-gestao .ifg-pausas p,.hub-ifood-gestao .ifg-avals p{margin:0 0 .375rem}
.hub-ifood-gestao .ifg-sub{margin-top:1rem}
.hub-ifood-gestao h3{margin:0 0 10px;font-size:calc(1.125rem * var(--dt))}
.hub-ifood-gestao h4{margin:0 0 8px;font-size:calc(1.0625rem * var(--dt))}
.hub-ifood-gestao h5{margin:0 0 8px;font-size:calc(0.9375rem * var(--dt))}
.hub-ifood-gestao small,.hub-ifood-gestao .ifg-dica{color:var(--sub,#64594e);font-size:calc(0.8125rem * var(--dt))}
.hub-ifood-gestao code{font-size:.86em;background:var(--fill,rgba(90,70,50,.08));padding:1px 5px;border-radius:6px;word-break:break-all}
.hub-ifood-gestao .ifg-titulo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.hub-ifood-gestao .ifg-titulo h3{margin:0}
.hub-ifood-gestao label{display:flex;flex-direction:column;gap:5px;font-size:calc(0.875rem * var(--dt));min-width:0}
.hub-ifood-gestao input,.hub-ifood-gestao select,.hub-ifood-gestao textarea{font:inherit;color:inherit;background:var(--surface,#fff);border:1px solid var(--sep,#b7afa6);border-radius:12px;min-height:44px;padding:9px 10px;box-sizing:border-box;width:100%;min-width:0}
.hub-ifood-gestao input[type=checkbox]{width:22px;height:22px;min-height:0}
.hub-ifood-gestao input[type=time]{width:auto}
.hub-ifood-gestao .ifg-check{flex-direction:row;align-items:center;gap:8px}
.hub-ifood-gestao .ifg-linha{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:8px 0}
.hub-ifood-gestao .ifg-linha label{flex:1 1 200px}.hub-ifood-gestao .ifg-linha label.larga{flex:3 1 320px}
.hub-ifood-gestao .ifg-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:10px;align-items:end;margin:8px 0}
.hub-ifood-gestao .ifg-acoes,.hub-ifood-gestao .ifg-acoes-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.hub-ifood-gestao .btn{min-height:44px;white-space:normal}
.hub-ifood-gestao .ifg-aviso{padding:10px 14px;border-radius:12px;margin:10px 0;font-size:calc(0.9375rem * var(--dt));line-height:1.4}
.hub-ifood-gestao .ifg-info{background:rgba(0,122,255,.09)}
.hub-ifood-gestao .ifg-ok{background:rgba(34,177,76,.13)}
.hub-ifood-gestao .ifg-erro{background:color-mix(in srgb,var(--sys-red,#E0342E) 13%,transparent);border-left:4px solid var(--sys-red,#E0342E)}
.hub-ifood-gestao .ifg-loja-atual{margin:0 0 .625rem;font-size:calc(0.875rem * var(--dt));color:var(--sub,#64594e)}
.hub-ifood-gestao .ifg-tabela{width:100%;border-collapse:collapse;font-size:calc(0.875rem * var(--dt))}
.hub-ifood-gestao .ifg-tabela th,.hub-ifood-gestao .ifg-tabela td{text-align:left;padding:8px;border-bottom:1px solid var(--sep,rgba(90,70,50,.15));vertical-align:top}
.hub-ifood-gestao .ifg-tabela tr.sel td{background:rgba(0,122,255,.07)}
.hub-ifood-gestao .ifg-dl{display:grid;grid-template-columns:minmax(140px,max-content) 1fr;gap:6px 16px;margin:0;font-size:calc(0.875rem * var(--dt))}
.hub-ifood-gestao .ifg-dl dt{color:var(--sub,#64594e)}.hub-ifood-gestao .ifg-dl dd{margin:0;word-break:break-word}
.hub-ifood-gestao .ifg-status{border-radius:14px;padding:10px 14px;margin:8px 0;border-left:5px solid var(--sep,#b7afa6);background:var(--surface2,#f7f4ef)}
.hub-ifood-gestao .ifg-status.ok{border-left-color:var(--pronto,#22B14C)}.hub-ifood-gestao .ifg-status.atencao{border-left-color:#e6a623}.hub-ifood-gestao .ifg-status.falha{border-left-color:var(--sys-red,#E0342E)}
.hub-ifood-gestao .ifg-status p{margin:3px 0}.hub-ifood-gestao .ifg-status ul{margin:6px 0 0 18px;padding:0;font-size:calc(0.875rem * var(--dt))}
.hub-ifood-gestao .ifg-semana{display:grid;gap:8px}
.hub-ifood-gestao .ifg-dia{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--sep,rgba(90,70,50,.12))}
.hub-ifood-gestao .ifg-dia>div{display:flex;flex-wrap:wrap;gap:8px}
.hub-ifood-gestao .ifg-turno{display:inline-flex;align-items:center;gap:6px;background:var(--surface2,#f7f4ef);padding:4px 6px;border-radius:12px}
.hub-ifood-gestao .ifg-fechado{color:var(--sub,#64594e);font-style:italic}
.hub-ifood-gestao .ifg-lista{margin:0;padding-left:18px;line-height:1.6}
.hub-ifood-gestao .ifg-item{display:grid;grid-template-columns:4rem 1fr;gap:.75rem;padding:10px 0;border-bottom:1px dashed var(--sep,rgba(90,70,50,.18))}
.hub-ifood-gestao .ifg-item p{margin:2px 0}
.hub-ifood-gestao .ifg-mini{width:4rem;height:4rem;object-fit:cover;border-radius:12px;background:var(--fill,rgba(90,70,50,.08));display:flex;align-items:center;justify-content:center;font-size:var(--f-caption1);color:var(--sub,#64594e)}
.hub-ifood-gestao .ifg-comp .ifg-mini{width:48px;height:48px}
.hub-ifood-gestao .ifg-grupo{margin:10px 0 0;padding:8px 12px;border-radius:12px;background:var(--surface2,#f7f4ef)}
.hub-ifood-gestao .ifg-comp{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0}
.hub-ifood-gestao .ifg-comp>span{flex:1 1 240px}
.hub-ifood-gestao .ifg-comp>span.ifg-mini{flex:none}
.hub-ifood-gestao .ifg-selo{display:inline-block;font-size:var(--f-caption1);font-weight:650;padding:2px 8px;border-radius:999px}
.hub-ifood-gestao .ifg-selo.ok{background:rgba(34,177,76,.16);color:#16702f}.hub-ifood-gestao .ifg-selo.pausado{background:rgba(224,52,46,.14);color:#a3231e}
.hub-ifood-gestao .ifg-editor{margin:10px 0;padding:12px;border:2px solid var(--blue,#007aff);border-radius:14px;background:var(--surface,#fff)}
.hub-ifood-gestao .ifg-comp-novo{border-top:1px solid var(--sep,rgba(90,70,50,.15));margin-top:8px;padding-top:6px}
.hub-ifood-gestao .ifg-foto input{padding:7px}
.hub-ifood-gestao .ifg-foto small.ok{color:#16702f}
.hub-ifood-gestao .ifg-ultimas{list-style:none;margin:0;padding:0;font-size:calc(0.8125rem * var(--dt));font-variant-numeric:tabular-nums}
.hub-ifood-gestao .ifg-ultimas li{padding:2px 0}.hub-ifood-gestao .ifg-ultimas li.ok span{color:#16702f}.hub-ifood-gestao .ifg-ultimas li.falha span{color:#a3231e}
.hub-ifood-gestao .ifg-chamada{border:1px solid var(--sep,rgba(90,70,50,.18));border-radius:12px;padding:8px 12px;margin:6px 0;font-size:calc(0.875rem * var(--dt))}
.hub-ifood-gestao .ifg-chamada summary{cursor:pointer;list-style:revert}.hub-ifood-gestao .ifg-chamada.ok summary span{color:#16702f}.hub-ifood-gestao .ifg-chamada.falha summary span{color:#a3231e}
.hub-ifood-gestao pre{white-space:pre-wrap;word-break:break-all;background:var(--surface2,#f7f4ef);padding:8px;border-radius:10px;font-size:var(--f-caption1);max-height:320px;overflow:auto}
.hub-ifood-gestao .ifg-resposta{margin-top:12px}
.hub-ifood-gestao button:focus-visible,.hub-ifood-gestao input:focus-visible,.hub-ifood-gestao select:focus-visible,.hub-ifood-gestao textarea:focus-visible,.hub-ifood-gestao a:focus-visible{outline:3px solid var(--blue,#007aff);outline-offset:2px}
@media(max-width:700px){.hub-ifood-gestao .ifg-dia{grid-template-columns:1fr}.hub-ifood-gestao .ifg-dl{grid-template-columns:1fr}}

/* /ifood-analytics.css */
/* 1.73.0: iFood Analytics (web/ifood-analytics.js). Mesma linguagem visual da Loja no iFood (ifood-gestao.css). */
/* 1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas): conteúdo primeiro (B4, B6 e B7). A moldura da janela (o nome e
   o Fechar em cima, a faixa de cartões, a barra de baixo) é a da casa: web/hub-janela.css. Saíram daqui o cabeçalho de
   três linhas, a faixa de filtros, a fileira de abas e o corpo que rolava. Aqui fica só o miolo dos cartões. */
.hub-ifood-analytics .ifa-id{font-variant-numeric:tabular-nums}
.hub-ifood-analytics .hj-cartao .ifa-id{margin:0 0 .625rem;font-size:calc(0.875rem * var(--dt,1))}
.hub-ifood-analytics .ifa-bloco+.ifa-bloco{margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--sep,rgba(90,70,50,.14))}
.hub-ifood-analytics .ifa-consultar{width:100%;margin:0 0 .5rem}
.hub-ifood-analytics .ifa-datas{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.hub-ifood-analytics label{display:flex;flex-direction:column;gap:5px;font-size:calc(0.875rem * var(--dt,1));min-width:0}
.hub-ifood-analytics input,.hub-ifood-analytics select,.hub-ifood-analytics textarea{font:inherit;color:inherit;background:var(--surface,#fff);border:1px solid var(--sep,#b7afa6);border-radius:12px;min-height:44px;padding:9px 10px;box-sizing:border-box;width:100%;min-width:0}
.hub-ifood-analytics textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(0.8125rem * var(--dt,1))}
.hub-ifood-analytics input[type=checkbox]{width:22px;height:22px;min-height:0}
.hub-ifood-analytics .btn{min-height:44px;white-space:normal}
.hub-ifood-analytics small,.hub-ifood-analytics .ifa-dica{color:var(--sub,#64594e);font-size:calc(0.8125rem * var(--dt,1));font-weight:400}
.hub-ifood-analytics code{font-size:.86em;background:var(--fill,rgba(90,70,50,.08));padding:1px 5px;border-radius:6px;overflow-wrap:anywhere}
.hub-ifood-analytics .ifa-aviso{padding:10px 14px;border-radius:12px;margin:10px 0;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.hub-ifood-analytics .ifa-info{background:rgba(0,122,255,.09)}
.hub-ifood-analytics .ifa-ok{background:rgba(34,177,76,.13)}
.hub-ifood-analytics .ifa-erro{background:color-mix(in srgb,var(--sys-red,#E0342E) 13%,transparent);border-left:4px solid var(--sys-red,#E0342E)}
.hub-ifood-analytics .ifa-erro-txt{color:var(--ink-red,#B42318)}
.hub-ifood-analytics .ifa-periodo p{margin:6px 0;font-size:calc(0.9375rem * var(--dt,1))}
.hub-ifood-analytics .ifa-selo{display:inline-block;font-size:var(--f-caption1);font-weight:650;padding:2px 8px;border-radius:999px;background:var(--fill,rgba(90,70,50,.1))}
.hub-ifood-analytics .ifa-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.625rem;margin:.75rem 0 0}
.hub-ifood-analytics .ifa-kpi{border:1px solid var(--sep,rgba(90,70,50,.18));border-radius:.875rem;padding:.75rem .875rem;display:flex;flex-direction:column;gap:.25rem;min-width:0}
.hub-ifood-analytics .ifa-kpi>span{font-size:calc(0.875rem * var(--dt,1));color:var(--sub,#64594e)}

.hub-ifood-analytics .ifa-kpi>b{font-size:calc(1.5rem * var(--dt,1));font-weight:750;font-variant-numeric:tabular-nums;line-height:1.15;overflow-wrap:anywhere}
.hub-ifood-analytics .ifa-kpis-menor .ifa-kpi>b{font-size:calc(1.1875rem * var(--dt,1))}
.hub-ifood-analytics .ifa-kpi small{line-height:1.35}
/* o cartão largo (uma tabela de várias colunas) pede mais largura na faixa do computador */
.hub-ifood-analytics .hj-faixa.hcar-pc>.ifa-largo{flex-basis:min(100%,calc(var(--hcar-w,24rem) * 1.5))}
.hub-ifood-analytics h3{margin:0 0 10px;font-size:calc(1.0625rem * var(--dt,1))}
.hub-ifood-analytics .ifa-titulo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.hub-ifood-analytics .ifa-titulo h3{margin:0}
.hub-ifood-analytics .ifa-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* barras de uma cor: 4 px de canto na ponta do dado, trilho recessivo */
.hub-ifood-analytics .ifa-barras{width:100%;border-collapse:separate;border-spacing:0 2px;font-size:calc(0.875rem * var(--dt,1));table-layout:fixed}
.hub-ifood-analytics .ifa-barras th{text-align:left;font-weight:500;width:38%;padding:5px 8px 5px 0;overflow-wrap:break-word;hyphens:auto}
.hub-ifood-analytics .ifa-barras td{padding:5px 0 5px 8px}
.hub-ifood-analytics .ifa-barras .ifa-num{width:54px;text-align:right;font-variant-numeric:tabular-nums}
.hub-ifood-analytics .ifa-trilho{width:auto}
.hub-ifood-analytics .ifa-barras-valor .ifa-num{width:104px}
.hub-ifood-analytics .ifa-trilho i{display:block;height:14px;background:var(--blue,#2F7CF6);border-radius:0 4px 4px 0;min-width:2px}
.hub-ifood-analytics .ifa-barras tr:hover th,.hub-ifood-analytics .ifa-barras tr:hover td{background:var(--fill,rgba(90,70,50,.06))}
/* colunas por dia */
.hub-ifood-analytics .ifa-colunas{display:flex;align-items:flex-end;gap:2px;height:min(15rem,38dvh);padding:2.25rem 0 0;margin-bottom:1.625rem;border-bottom:1px solid var(--sep,rgba(90,70,50,.2))}
.hub-ifood-analytics .ifa-col{position:relative;flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;outline:none}
.hub-ifood-analytics .ifa-col i{display:block;width:70%;min-width:3px;max-width:44px;background:var(--blue,#2F7CF6);border-radius:4px 4px 0 0}
.hub-ifood-analytics .ifa-col em{position:absolute;bottom:-22px;font-style:normal;font-size:var(--f-caption2);color:var(--sub,#64594e);white-space:nowrap}
.hub-ifood-analytics .ifa-col .ifa-dado{position:absolute;top:-26px;left:50%;transform:translateX(-50%);display:none;background:var(--label,#211f1c);color:var(--surface,#fff);font-size:var(--f-caption1);padding:4px 8px;border-radius:8px;white-space:nowrap;z-index:2;text-align:center;line-height:1.3}
.hub-ifood-analytics .ifa-col:hover .ifa-dado,.hub-ifood-analytics .ifa-col:focus .ifa-dado{display:block}
.hub-ifood-analytics .ifa-col:hover i,.hub-ifood-analytics .ifa-col:focus i{filter:brightness(.85)}
.hub-ifood-analytics .ifa-tabela{width:100%;border-collapse:collapse;font-size:calc(0.875rem * var(--dt,1))}
.hub-ifood-analytics .ifa-tabela th,.hub-ifood-analytics .ifa-tabela td{text-align:left;padding:8px;border-bottom:1px solid var(--sep,rgba(90,70,50,.15));vertical-align:top}
.hub-ifood-analytics .ifa-tabela .ifa-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.hub-ifood-analytics .ifa-rolagem{overflow-x:auto}
.hub-ifood-analytics .ifa-leituras{margin:0;padding-left:18px;line-height:1.5;font-size:calc(0.9375rem * var(--dt,1))}
.hub-ifood-analytics .ifa-leituras li{margin:4px 0}
.hub-ifood-analytics .ifa-leituras li.alerta b{color:var(--ink-red,#B42318)}
.hub-ifood-analytics .ifa-leituras li.atencao b{color:var(--ink-orange,#9a6200)}
.hub-ifood-analytics .ifa-fonte{font-size:calc(0.8125rem * var(--dt,1));color:var(--sub,#64594e);margin:14px 0 0}
.hub-ifood-analytics .ifa-campos{display:flex;flex-wrap:wrap;gap:8px 16px}
.hub-ifood-analytics .ifa-check{flex-direction:row;align-items:center;gap:8px}
.hub-ifood-analytics .ifa-linha{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:10px}
.hub-ifood-analytics .ifa-linha label{flex:0 1 240px}
.hub-ifood-analytics .ifa-acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.hub-ifood-analytics .ifa-dl{display:grid;grid-template-columns:minmax(160px,max-content) 1fr;gap:6px 16px;margin:0;font-size:calc(0.875rem * var(--dt,1))}
.hub-ifood-analytics .ifa-dl dt{color:var(--sub,#64594e)}.hub-ifood-analytics .ifa-dl dd{margin:0;overflow-wrap:anywhere}
.hub-ifood-analytics .ifa-chamada{border:1px solid var(--sep,rgba(90,70,50,.18));border-radius:12px;padding:8px 12px;margin:6px 0;font-size:calc(0.875rem * var(--dt,1))}
.hub-ifood-analytics .ifa-chamada summary{cursor:pointer;list-style:revert}
.hub-ifood-analytics .ifa-chamada.ok summary span{color:var(--ink-green,#1E7B34)}.hub-ifood-analytics .ifa-chamada.falha summary span{color:var(--ink-red,#B42318)}
.hub-ifood-analytics pre{white-space:pre-wrap;word-break:break-all;background:var(--surface2,#f7f4ef);padding:8px;border-radius:10px;font-size:var(--f-caption1);max-height:320px;overflow:auto}
.hub-ifood-analytics button:focus-visible,.hub-ifood-analytics input:focus-visible,.hub-ifood-analytics select:focus-visible,.hub-ifood-analytics textarea:focus-visible,.hub-ifood-analytics summary:focus-visible,.hub-ifood-analytics .ifa-col:focus-visible{outline:3px solid var(--blue,#007aff);outline-offset:2px}
@media (forced-colors:active){.hub-ifood-analytics .ifa-trilho i,.hub-ifood-analytics .ifa-col i{background:CanvasText}}
@media(max-width:700px){.hub-ifood-analytics .ifa-dl{grid-template-columns:1fr}.hub-ifood-analytics .ifa-barras th{width:42%}.hub-ifood-analytics .hj-sub .ifa-id{display:none}.hub-ifood-analytics .ifa-kpi>b{font-size:calc(1.3125rem * var(--dt,1))}}
/* cartão do Dashboard */
.ifa-cartao .dt .btn{margin-left:auto;min-height:36px;font-size:calc(0.8125rem * var(--dt,1))}
.ifa-cartao .dt{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}

/* /cancelar-parte.css */
/* 1.68.0: Cancelar parte do pedido (web/cancelar-parte.js). Mesma linguagem visual do Sob Demanda (on-demand.css). */
.hub-cancelar-parte{color:var(--label,var(--text,#211f1c));background:var(--surface2,#f7f4ef);border:1px solid var(--sep,rgba(90,70,50,.2));border-radius:24px;padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 24px 80px rgba(0,0,0,.3)}
.hub-cancelar-parte[open]{display:flex;flex-direction:column}
.hub-cancelar-parte::backdrop{background:rgba(15,10,5,.45);backdrop-filter:blur(6px)}
.hub-cancelar-parte header,.hub-cancelar-parte footer{flex:none;display:flex;gap:12px;align-items:center;padding:16px 20px;background:var(--surface,#fff)}
.hub-cancelar-parte header{justify-content:space-between;border-bottom:1px solid var(--sep,rgba(90,70,50,.15))}
.hub-cancelar-parte footer{justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--sep,rgba(90,70,50,.15))}
.hub-cancelar-parte h2{margin:2px 0 0;font-size:calc(1.375rem * var(--dt));font-weight:750}
.hub-cancelar-parte .cp-sobre{margin:0;font-size:calc(0.8125rem * var(--dt));color:var(--sub,#64594e)}
.hub-cancelar-parte header .icon{color:var(--label,var(--text));background:var(--fill,rgba(90,70,50,.08));width:44px;height:44px;flex:none;border-radius:50%;border:0;font-size:calc(1.5625rem * var(--dt));cursor:pointer}
.hub-cancelar-parte .cp-corpo{flex:1;overflow:auto;overscroll-behavior:contain;padding:14px 20px;min-height:0}
.hub-cancelar-parte .cp-dica{margin:0 0 10px;font-size:calc(0.875rem * var(--dt));color:var(--sub,#64594e);line-height:1.4}
.hub-cancelar-parte .cp-aviso{margin:0;padding:12px 14px;border-radius:14px;background:var(--surface,#fff);font-size:calc(0.9375rem * var(--dt));line-height:1.45}
.hub-cancelar-parte .cp-lista{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hub-cancelar-parte .cp-linha{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--surface,#fff)}
.hub-cancelar-parte .cp-linha.cp-feita{opacity:.6}
.hub-cancelar-parte .cp-nome{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:calc(0.9375rem * var(--dt))}
.hub-cancelar-parte .cp-nome span{font-size:calc(0.8125rem * var(--dt));color:var(--sub,#64594e)}
.hub-cancelar-parte .cp-nome .cp-ja{color:var(--ink-red,#B42318)} /* 1.72.0: a cor do sistema é para preenchimento; texto usa a tinta */
.hub-cancelar-parte .cp-qtd{display:inline-flex;align-items:center;gap:6px}
.hub-cancelar-parte .cp-qtd button{width:44px;height:44px;border-radius:50%;border:0;background:var(--fill,rgba(90,70,50,.08));color:inherit;font-size:calc(1.375rem * var(--dt));cursor:pointer}
.hub-cancelar-parte .cp-qtd button:disabled{opacity:.35;cursor:default}
.hub-cancelar-parte .cp-qtd output{min-width:2ch;text-align:center;font-size:calc(1.125rem * var(--dt));font-weight:700;font-variant-numeric:tabular-nums}
.hub-cancelar-parte .cp-pausa{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:calc(0.875rem * var(--dt))}
.hub-cancelar-parte .cp-pausa input{width:22px;height:22px}
.hub-cancelar-parte .cp-motivo{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:calc(0.875rem * var(--dt))}
.hub-cancelar-parte .cp-motivo input{font:inherit;color:inherit;background:var(--surface,#fff);border:1px solid var(--sep,#b7afa6);border-radius:12px;min-height:44px;padding:9px 10px;box-sizing:border-box;width:100%}
.hub-cancelar-parte .cp-resultado{margin-top:12px;padding:12px 14px;border-radius:14px;font-size:calc(0.9375rem * var(--dt));line-height:1.45}
.hub-cancelar-parte .cp-resultado.ok{background:rgba(34,177,76,.13)}
.hub-cancelar-parte .cp-resultado.erro{background:color-mix(in srgb,var(--sys-red,#E0342E) 13%,transparent);border-left:4px solid var(--sys-red,#E0342E)}
.hub-cancelar-parte .cp-resultado ul{margin:6px 0 0 18px;padding:0;font-size:var(--f-caption1)}
.hub-cancelar-parte .btn{min-height:44px}
.hub-cancelar-parte button:focus-visible,.hub-cancelar-parte input:focus-visible{outline:3px solid var(--blue,#007aff);outline-offset:2px}
@media(max-width:600px){.hub-cancelar-parte header,.hub-cancelar-parte footer,.hub-cancelar-parte .cp-corpo{padding:12px}.hub-cancelar-parte .cp-linha{grid-template-columns:1fr}}

/* /philippe-orb.css */
/* Identidade original do Philippe. O arquivo PNG permanece intacto e local. */
.philippe-brain{position:relative;display:inline-block;flex:none;width:40px;height:44px;isolation:isolate;pointer-events:none;transform-origin:50% 50%}
.philippe-brain img,.top .brand .philippe-brain img{display:block;width:100%;height:100%;object-fit:contain;opacity:1;transform:none;filter:none;animation:none;transition:none}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): a corrente (um SVG animado, com filtro de brilho) ficava com opacidade zero mas
   VISÍVEL para o navegador, que seguia animando e pintando a imagem a cada quadro: no Dashboard e no Financeiro parados
   eram 100 recálculos de estilo e 50 pinturas por segundo sem nada mudar na tela. Com visibility:hidden a animação do
   SVG para; ela só volta quando o Cérebro está ligado (body.ai-on), que é quando a corrente aparece. */
.philippe-brain::after{content:"";position:absolute;inset:0;background:url('/assets/philippe-brain-current.svg') center/contain no-repeat;opacity:0;visibility:hidden;pointer-events:none}
body.ai-on .philippe-brain img,body.ai-on .top .brand .philippe-brain img{filter:drop-shadow(0 0 2px rgba(255,207,83,.9)) drop-shadow(0 0 5px rgba(205,119,24,.42))}
#aibtn>.philippe-brain{display:none;position:absolute;left:50%;top:50%;margin:-22px 0 0 -20px}
body.ai-on #aibtn>.philippe-brain{display:block}
body.ai-on .top .brand .philippe-brain img{opacity:1;transform:none;animation:none}
.ws-composer .ws-brain{display:none;width:30px;height:34px;margin-left:2px}
body.ai-kds .ws-composer .ws-brain{display:inline-block}
body.ai-on .philippe-brain{animation:philippe-brain-breathe 3.6s ease-in-out infinite}
body.ai-on .philippe-brain::after{visibility:visible;animation:philippe-brain-energy 3.6s ease-in-out infinite}
@keyframes philippe-brain-breathe{0%,100%{transform:scale(.98)}50%{transform:scale(1.025)}}
/* A corrente percorre os sulcos no SVG local; o PNG original nao se altera. */
@keyframes philippe-brain-energy{0%,100%{opacity:.7}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.philippe-brain,.philippe-brain::after,body.ai-on .philippe-brain,body.ai-on .philippe-brain::after{animation:none!important;transform:none}.philippe-brain::after{background-image:none;opacity:0}}

/* /ai-menu.css */
/* O item e o retorno da acao precedem os controles de consulta. */
.ai-menu{display:flex;flex-direction:column;gap:12px;min-height:0;color:var(--ws-ink,#292720)}
.ai-menu-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ai-menu-filters label{display:flex;flex-direction:column;gap:4px;font-size:calc(0.8125rem * var(--dt));font-weight:600;min-width:0}
.ai-menu-filters select{min-width:0;width:100%;min-height:44px;border:0;border-radius:10px;padding:8px;color:inherit;background:var(--ws-soft,rgba(118,118,128,.10));font:inherit}
.ai-menu-summary,.ai-menu-source,.ai-menu-composition{margin:0;line-height:1.4}
.ai-menu .ai-menu-summary{font-size:calc(0.875rem * var(--dt));font-weight:550;margin:0}
.ai-menu-batch{display:flex;flex-wrap:wrap;gap:8px}
.ai-menu button{min-height:44px;border:0;border-radius:12px;padding:8px 12px;background:var(--ws-soft,rgba(118,118,128,.10));color:inherit;font:inherit;font-weight:600;cursor:pointer}
.ai-menu button:disabled{opacity:.65;cursor:wait}
.ai-menu-list{display:flex;flex-direction:column;gap:10px;overflow:auto;overscroll-behavior:contain;min-height:0;max-height:420px}
.ai-menu-item{border:0;border-radius:16px;padding:14px;background:var(--ws-soft,rgba(87,80,69,.075))}
.ai-menu-item h4{font-size:calc(1.125rem * var(--dt));line-height:1.25;margin:0;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}
.ai-menu-item-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.ai-menu-unit{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.ai-menu-unit>div{min-width:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ai-menu-unit strong{font-size:calc(0.875rem * var(--dt))}
.ai-menu-state{font-size:calc(0.8125rem * var(--dt));font-weight:650;border-radius:8px;padding:4px 7px;background:#fff}
.ai-menu-state.is-paused{color:#963900}.ai-menu-state.is-active{color:#157035}
.ai-menu-unit small{display:block;flex-basis:100%;font-size:calc(0.8125rem * var(--dt));line-height:1.4;overflow-wrap:anywhere}
.ai-menu-source,.ai-menu-composition{font-size:calc(0.8125rem * var(--dt))!important;color:var(--ws-secondary,#56534e)}
.ai-menu button:focus-visible,.ai-menu select:focus-visible,.ai-menu summary:focus-visible{outline:3px solid #007aff;outline-offset:2px}
.ai-menu-filterbox{flex-shrink:0}.ai-menu-filterbox summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:calc(0.875rem * var(--dt));font-weight:600;color:var(--ws-secondary,#56534e)}
.ai-menu-filterbox summary:before{content:'›';margin-right:8px;font-size:calc(1.25rem * var(--dt))}.ai-menu-filterbox[open] summary:before{transform:rotate(90deg)}
.ai-menu-fixed-unit{display:flex;flex-direction:column;gap:4px;font-size:calc(0.8125rem * var(--dt))}.ai-menu-fixed-unit strong{font-size:calc(0.9375rem * var(--dt));min-height:44px;display:flex;align-items:center}
.ai-menu-history{font-size:max(0.6875rem, calc(0.75rem * var(--dt)))!important;line-height:1.4;margin:4px 0!important;color:var(--ws-secondary,#56534e)}
.ai-menu-operation{display:flex;align-items:center;gap:12px;color:var(--ws-accent,#28643b);padding:4px 0}
.ai-menu-operation>svg,.ai-menu-spinner{box-sizing:border-box;width:30px;height:30px;flex:none}.ai-menu-operation>svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ai-menu-operation>div{display:flex;flex-direction:column;gap:4px}.ai-menu-operation strong{font-size:calc(1.125rem * var(--dt));line-height:1.3;font-weight:700}.ai-menu-operation span:not(.ai-menu-spinner){font-size:calc(0.8125rem * var(--dt));color:var(--ws-secondary,#56534e)}
.ai-menu-operation.is-error{color:#ad2730}.ai-menu-spinner{border-radius:50%;border:3px solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;animation:menu-progress .85s linear infinite}
.ai-menu.has-operation .ai-menu-list{order:initial;max-height:none;flex-shrink:0;overflow:visible}
.ai-menu.has-operation .ai-menu-item.is-target{padding:14px 16px;border-radius:18px}.ai-menu.has-operation .ai-menu-item h4{font-size:clamp(1.375rem,2vw,1.75rem)}
.ai-menu.is-single.has-operation .ai-menu-item{background:none;padding:4px 0}.ai-menu.is-single.has-operation .ai-menu-item h4{font-size:clamp(1.625rem,2.4vw,2.125rem)}
.ai-menu.has-operation .ai-menu-filterbox{padding-top:4px}.ai-menu-progress{font-size:calc(0.8125rem * var(--dt));font-weight:650;color:var(--ws-secondary,#56534e)}
.ai-menu.is-compact{gap:8px}.ai-menu.is-compact .ai-menu-list{max-height:none;overflow:visible;flex-shrink:0}.ai-menu.is-compact .ai-menu-item{padding:10px}.ai-menu.is-compact .ai-menu-unit{padding:4px 0}
.ws-widget:has(.ai-menu.has-operation){align-self:start}.ws-widget:has(.ai-menu.has-operation) .ws-widget-body{flex:0 1 auto}
body.dark .ai-menu-state{background:#363638}body.dark .ai-menu-state.is-paused{color:#ffb46c}body.dark .ai-menu-state.is-active{color:#77df92}body.dark .ai-menu-operation.is-error{color:#ffb3b4}
@keyframes menu-progress{to{transform:rotate(360deg)}}
@media(max-width:460px){.ai-menu-filters{gap:6px}.ai-menu-unit{gap:8px}.ai-menu-item{padding:10px}.ai-menu button{font-size:calc(0.875rem * var(--dt))}.ai-menu-batch button{flex:1}.ai-menu-unit button{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.ai-menu-spinner{animation:none}}

/* /store-status.css */
/* Controles funcionais de situação e etapas. Conteúdo dos pedidos permanece opaco. */
#unitlabel{gap:7px;min-height:44px;cursor:pointer;max-width:100%}
.ss-header-state{font-size:var(--f-caption2);color:var(--label2);font-weight:500}
#unitlabel .ss-led-open{background:var(--green)}
#unitlabel .ss-led-paused,#unitlabel .ss-led-restricted{background:var(--red)}
#unitlabel .ss-led-mixed,#unitlabel .ss-led-pending{background:var(--orange)}
#unitlabel .ss-led-unknown,#unitlabel .ss-led-not_configured{background:var(--label3)}
.store-status-popover{position:fixed;z-index:1400;top:72px;left:16px;width:min(430px,calc(100vw - 32px));max-height:calc(100dvh - 90px);overflow:auto;border:0;border-radius:24px;padding:20px;box-shadow:var(--shadow);color:var(--label)}
.ss-pop-head,.ss-unit-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ss-pop-head h2{margin:0;font-size:var(--f-title3)}
.ss-pop-head button{width:44px;height:44px;flex-shrink:0}
.ss-source{font-size:var(--f-caption1);line-height:1.45;color:var(--label2);margin:8px 0 16px}
.ss-unit{padding:14px 0;border-top:1px solid var(--separator)}
.ss-unit-head{flex-wrap:wrap;gap:6px}
.ss-unit h3{font-size:var(--f-headline);margin:0}
.ss-badge{font-size:var(--f-caption1);font-weight:600;display:inline-flex;gap:6px;align-items:center}
.ss-badge i{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--label3)}
.ss-open i{background:var(--green)}.ss-paused i,.ss-restricted i{background:var(--red)}.ss-mixed i,.ss-pending i{background:var(--orange)}
.ss-detail,.ss-feedback,.ss-error,.ss-empty{font-size:var(--f-subhead);line-height:1.45;margin:8px 0 0}
.ss-detail{color:var(--label2)}.ss-error{color:var(--red)}
.ss-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ss-actions:empty{display:none}
.ss-actions .btn{min-height:44px;white-space:normal}
.ss-actions button:disabled{opacity:.6;cursor:wait}
.store-status-card button:focus-visible,#kstate-control button:focus-visible,#unitlabel:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
#kstate-control{position:relative;display:flex;align-items:center;flex-shrink:0;min-width:0}
#kstate-trigger{border:0;border-radius:14px;min-height:44px;padding:9px 12px;display:inline-flex;align-items:center;gap:8px;color:var(--label);font:inherit;font-size:var(--f-subhead);cursor:pointer;white-space:nowrap}
#kstate-trigger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#kstate-trigger b{font-size:var(--f-caption1);color:var(--label2)}
#kstate-control #ktabs{display:none}
#kstate-control.expanded #ktabs{position:absolute;display:flex;left:100%;top:0;margin-left:6px;z-index:60;max-width:calc(100vw - 210px);overflow-x:auto;box-shadow:var(--shadow);border:0;min-height:44px}
#kstate-control #ktabs button{min-width:44px;min-height:44px;flex-shrink:0}
#kstate-control #ktabs button.on{display:none}
@media(max-width:700px){.ss-header-state{display:none}.store-status-popover{top:66px}#kstate-trigger{gap:6px;padding:8px 10px}#kstate-control.expanded #ktabs{max-width:calc(100vw - 180px)}}
@media(prefers-reduced-motion:reduce){.store-status-popover,#kstate-control *{animation:none!important;transition:none!important}}

body.view-kds #curview{display:none}

/* 1.62.0: vidro grosso do sistema (tokens em index.html, bloco apple-vidro-1620); o escuro vem do token */
.store-status-popover.glass{background:var(--vidro-grosso,rgba(252,250,247,.8));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%))}
.store-status-popover .ss-source{color:var(--label);opacity:.82}

/* A unidade ocupa o cabecalho. As plataformas aparecem dentro do controle. */
/* 1.70.0 (auditoria, 29/09/2026): a "respiração" da bolinha verde animava box-shadow sem parar. Box-shadow não anda na placa
   de vídeo: eram 60 recálculos de estilo e pinturas por segundo em toda tela onde a bolinha aparece (celular e monitor de
   toque das lojas), com a tela parada, medido pelo tools/auditoria/desempenho.py. O mesmo halo agora é um ::after que só
   muda a opacidade, que o navegador anima fora da thread da tela. Mesmo desenho, mesmo ritmo. */
#unitlabel .ss-led-open{position:relative}
#unitlabel .ss-led-open::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:color-mix(in srgb,var(--green) 13%,transparent);opacity:0;pointer-events:none;animation:store-open-breathe 2.6s ease-in-out infinite}
@keyframes store-open-breathe{50%{opacity:1}}
.ss-unit[hidden]{display:none!important}
.ss-unit-switch{display:flex;gap:4px;padding:4px;margin-top:14px;background:var(--fill4);border-radius:16px}
.ss-unit-switch button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:0;min-height:44px;padding:8px;border:0;border-radius:12px;background:none;color:inherit;font:inherit;font-size:var(--f-subhead);font-weight:600;cursor:pointer}
.ss-unit-switch button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px rgba(40,25,12,.14)}
body.dark .ss-unit-switch button[aria-pressed=true]{background:var(--sys-gray4)}
.ss-platforms{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.ss-platform{padding:14px;border-radius:16px;background:var(--fill)}
.ss-platform-line{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:var(--f-headline);font-weight:650}
.ss-platform-line>span{min-width:0;overflow-wrap:anywhere}.ss-platform-line b{font-weight:500}
.ss-platform-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--label3);display:inline-block}
.ss-dot-open{background:var(--green)}.ss-dot-paused,.ss-dot-restricted{background:var(--red)}.ss-dot-pending,.ss-dot-mixed{background:var(--orange)}
.ss-platform-detail{margin-top:7px}.ss-platform-detail small{font-size:var(--f-caption1);line-height:1.45;color:var(--label2)}
.ss-platform .ss-actions .btn{width:100%;justify-content:center}
.ss-unit-switch button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
@media(prefers-reduced-motion:reduce){#unitlabel .ss-led-open,#unitlabel .ss-led-open::after{animation:none}}
/* 1.63.3: 99Food sempre online, uma linha por loja da 99Food (web/store-status.js vigiaBody) */
.ss-vigia{margin-top:8px}
.ss-vigia-lista{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ss-vigia-loja{display:flex;gap:8px;align-items:flex-start;font-size:var(--f-footnote,calc(0.8125rem * var(--dt,1)))}
.ss-vigia-loja .ss-platform-dot{margin-top:5px}
.ss-vigia-loja small{display:block;color:var(--label2);font-size:var(--f-caption1,calc(0.75rem * var(--dt,1)))}
/* 1.74.0: a escolha de como contar cada loja do iFood (automático, sempre, nunca) respira abaixo do texto da loja */
.ss-vigia-loja .ss-reasons{margin-top:8px}
/* 1.68.1: pausar e reabrir a unidade pelo card da situação (web/store-status.js, unitActions) */
.ss-unit-actions{margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--sep,rgba(90,70,50,.15))} /* 1.74.0: a confirmação do fechar geral (e, na tela sem servidor, a da pausa antiga) */
.ss-unit-actions .ss-pause-q{margin:0 0 8px}
.ss-reasons{display:flex;flex-wrap:wrap;gap:6px}
.ss-reasons button{min-height:44px;padding:6px 12px;border-radius:999px;border:1px solid var(--sep,rgba(90,70,50,.25));background:var(--surface,#fff);color:inherit;font:inherit;font-size:var(--f-subhead);cursor:pointer}
.ss-reasons button[aria-checked=true]{background:var(--label,#211f1c);color:var(--surface,#fff);border-color:transparent;font-weight:600}
.ss-reasons button:focus-visible,.ss-unit-actions .btn:focus-visible{outline:3px solid var(--blue,#007aff);outline-offset:2px}
/* 1.74.0 (Philippe, 05/10/2026, quinta rodada, L1 a L4): A PEÇA DOS CANAIS (web/store-status.js, canaisHTML), a mesma na
   Situação das lojas e na tela de Integrações. Uma lista agrupada por unidade, no desenho das listas do iPhone: a linha
   geral (a loja e Fechar loja ou Abrir loja, botão cheio) e uma linha por canal (iFood, 99Food, Site próprio) com a
   situação à esquerda e a ação em texto à direita. Conteúdo, então sólido (nada de vidro); linhas de 44 px, que são o
   próprio alvo do toque (as duas unidades cabem juntas num cartão de celular); a cor diz a ação (tinta vermelha fecha, tinta azul abre) e o texto diz o estado; o rótulo quebra em duas linhas
   quando o texto está em 130% ou a tela tem 320 px, sem rolagem lateral. */
.ssc{display:grid;gap:10px;margin:14px 0 2px;min-width:0;--ssc-fecha:var(--ink-red,var(--red));--ssc-abre:var(--ink-blue,var(--blue))}
/* no escuro a tinta vermelha do sistema fica em 4,3:1 sobre o grupo (3,7:1 no botão cheio): mais clara, passa de 4,5:1 */
body.dark .ssc{--ssc-fecha:color-mix(in srgb,var(--sys-red,#ff453a) 45%,var(--label,#fff))}
.ssc-unidade{min-width:0;padding:0 14px;border-radius:16px;background:var(--fill)}
.ssc-linha{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;min-width:0}
.ssc-linha+.ssc-linha{border-top:1px solid var(--separator)}
.ssc-geral{min-height:52px}
.ssc-nome{display:grid;gap:1px;min-width:0;padding:4px 0}
.ssc-nome b{font-size:var(--f-subhead);font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.ssc-geral .ssc-nome b{font-size:var(--f-headline);font-weight:700}
.ssc-nome small{display:flex;align-items:center;gap:6px;font-size:var(--f-caption1);line-height:1.3;color:var(--label2)}
.ssc-nome small.ssc-motivo{display:block;overflow-wrap:anywhere}
.ssc-nome small.ss-error,.ssc-resumo.ss-error{color:var(--ssc-fecha)}
.ssc-p-aberto{background:var(--green)}.ssc-p-fechado,.ssc-p-falha{background:var(--red)}.ssc-p-parte,.ssc-p-fechando,.ssc-p-abrindo{background:var(--orange)}
.ssc-botao{flex:none;max-width:62%;min-height:44px;margin:0;padding:6px 0 6px 10px;border:0;background:none;color:var(--ssc-abre);font:inherit;font-size:var(--f-subhead);font-weight:600;line-height:1.2;text-align:right;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .12s ease-out}
.ssc-botao.ssc-fechar{color:var(--ssc-fecha)}
.ssc-botao:active:not(:disabled),.ssc-geral-botao:active:not(:disabled){opacity:.55}
.ssc-botao:disabled,.ssc .ssc-geral-botao:disabled{opacity:.5;cursor:default}
.ssc .ssc-geral-botao{flex:none;min-height:44px;padding:8px 16px;border:0;border-radius:999px;box-shadow:none;font-size:var(--f-subhead);font-weight:600;white-space:nowrap}
.ssc .ssc-geral-botao.danger,body.dark .ssc .ssc-geral-botao.danger{background:color-mix(in srgb,var(--sys-red,#ff3b30) 15%,transparent);color:var(--ssc-fecha)}
.ssc .ssc-geral-botao.primary,body.dark .ssc .ssc-geral-botao.primary{background:var(--on-blue,#0062B8);color:#fff}
/* 1.74.0 (segunda fase, L6): com parte da loja fechada a linha geral tem os dois botões (Fechar loja e Abrir loja). Onde não
   cabem ao lado do nome (320 px, texto em 130%) descem juntos para a linha de baixo, inteiros, com os mesmos 44 px. */
.ssc-geral-dois{flex-wrap:wrap;row-gap:0}
.ssc-geral-acoes{display:flex;flex:none;gap:8px;margin-left:auto;padding:4px 0}
.ssc .ssc-geral-acoes .ssc-geral-botao{padding:8px 12px}
.ssc-geral-dois .ssc-nome{padding:8px 0 4px}
.ssc-resumo{margin:0;padding:10px 0 12px;border-top:1px solid var(--separator);font-size:var(--f-caption1);line-height:1.4;color:var(--label2)}
.ssc-confirma{padding:14px}
.ssc-confirma .ss-unit-actions{margin:0;padding:0;border:0}
.ssc-confirma .ss-pause-q{margin:0 0 10px;color:var(--label)}
.ssc-confirma .btn.danger,body.dark .ssc-confirma .btn.danger{color:var(--ssc-fecha)}
.ssc-botao:focus-visible,.ssc-geral-botao:focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:2px;border-radius:8px}
/* 1.74.0 (segunda fase, L3): a peça dentro de um cartão das Configurações (o cartão Lojas da seção Integrações e o da Saúde
   das integrações): o cartão já dá o respiro em volta */
.ssc-em-cartao{min-width:0}
.ssc-em-cartao .ssc{margin:0}
/* 1.74.0 (segunda fase, L3): O DESENHO COMPACTO, para celular baixo (320 x 568, 360 x 640, 375 x 667). A lista de quatro
   linhas por unidade pede 384 px. No cartão das Configurações dessas telas há de 291 a 397 px livres: em 320 x 568 a segunda
   unidade ficava atrás do "Ver tudo", e em 375 x 667 bastava um aviso a mais para ela ir para lá. Na Situação das lojas, em
   320 x 568, cabia aberta e deixava de caber depois de um fechar geral (o resultado e os avisos somam 88 px por unidade).
   Aqui cada unidade vira a linha geral (o nome, a situação e o botão geral) e, embaixo, os três canais lado a lado, cada um
   com o nome, a situação e o seu botão. O botão continua com 44 px de altura e a largura da coluna; o rótulo é o mesmo
   ("Fechar só o iFood"), em duas linhas. As duas unidades e os 8 botões ficam à vista, sem cortar e sem rolar. O aviso
   "Só no Hub" fica curto (o resto da frase não cabe numa coluna de 70 px) e, com parte fechada, o nome e a situação da
   unidade vão numa linha só, com os dois botões gerais embaixo, dividindo a largura. É o mesmo desenho na Situação das
   lojas e nos cartões: no mesmo aparelho a peça é sempre igual. */
@media (max-height:700px) and (max-width:760px){
  .settings-car>.settings-panel[data-cfg-lojas]{padding:16px}
  [data-cfg-lojas]>.settings-note{display:none}
  .ssc{gap:8px}
  .ssc-unidade:not(.ssc-confirma){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 12px}
  .ssc-geral,.ssc-resumo{grid-column:1/-1}
  .ssc-geral{min-height:44px;padding:2px 0}
  .ssc-geral-dois{padding:0}
  .ssc-geral-dois .ssc-nome{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:8px 0 0}
  .ssc-geral-acoes{flex:1 1 100%;padding:4px 0 6px}
  .ssc-geral-acoes .ssc-geral-botao{flex:1}
  .ssc-linha:not(.ssc-geral){flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:6px 0 0 8px}
  .ssc-geral+.ssc-linha{padding-left:0}
  .ssc-linha:not(.ssc-geral)+.ssc-linha:not(.ssc-geral){border-left:1px solid var(--separator)}
  .ssc-linha:not(.ssc-geral) .ssc-nome{padding:0}
  .ssc-botao{max-width:none;margin-top:auto;padding:4px 4px 4px 0;font-size:var(--f-caption1);text-align:left}
  .ssc-longo{display:none}
}
/* 1.74.0 (segunda fase, L6): a faixa da Cozinha e da Expedição com parte dos canais fechada (platBanner, em web/index.html): a
   frase curta e o botão na mesma linha, para o aviso ocupar pouco no celular */
.banner.ss-faixa-canal{flex-wrap:nowrap}
.banner.ss-faixa-canal>span{flex:1 1 auto;min-width:0}
.banner.ss-faixa-canal>.btn{flex:none}
@media(prefers-reduced-motion:reduce){.ssc-botao,.ssc-geral-botao{transition:none}}
@media(forced-colors:active){.ssc-unidade{border:1px solid CanvasText}.ssc-botao{color:LinkText}}

/* /acoes-cliente.css */
/* 1.61.7: faixa vermelha fixa e card de resposta das ações do cliente (web/acoes-cliente.js). */
#acao-faixa{position:fixed;top:0;left:0;right:0;z-index:1250;min-height:48px;display:flex;align-items:center;gap:10px;padding:6px 12px;background:#D92D20;color:#fff;box-shadow:0 4px 18px rgba(120,20,10,.35);font-size:calc(0.875rem * var(--dt,1))}
#acao-faixa[hidden]{display:none}
#acao-faixa .af-icone{flex:none;width:26px;height:26px;border-radius:50%;background:#fff;color:#D92D20;font-weight:800;display:grid;place-items:center}
#acao-faixa .af-textos{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#acao-faixa .af-item{all:unset;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
#acao-faixa .af-item span{opacity:.9} #acao-faixa .af-item em{font-style:normal;font-weight:700;margin-left:4px;font-variant-numeric:tabular-nums}
#acao-faixa .af-mais{font-weight:700;opacity:.9}
#acao-faixa .af-responder{flex:none;border:0;border-radius:999px;background:#fff;color:#B42318;font-weight:700;padding:9px 16px;font-size:inherit;cursor:pointer}
body.tem-acao-cliente{padding-top:56px}
body.tem-acao-cliente .top{top:58px}
html.app-nativo #acao-faixa{top:var(--topo-app);left:10px;right:10px;border-radius:16px}
html.app-nativo body.tem-acao-cliente{padding-top:calc(var(--topo-app) + 60px)!important}
html.app-nativo body.tem-acao-cliente:has(#view-exp.on) main{top:calc(var(--topo-app) + 60px)}

#acao-card-fundo{position:fixed;inset:0;z-index:1400;background:rgba(20,15,10,.45);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}
#acao-card-fundo[hidden]{display:none}
/* 1.62.1: o card é uma coluna: topo e prazo fixos, corpo que rola por dentro e rodapé fixo com os botões. Antes o card
   inteiro rolava e, no iPhone, os botões (no fim) ficavam atrás da barra de abas nativa. */
#acao-card{width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--page,#fff);color:var(--text,#3A2A1E);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35);border-top:6px solid #D92D20;box-sizing:border-box}
#acao-card>.ac-topo,#acao-card>.ac-prazo{flex:none}
/* no app: 1.72.0 (auditoria de design 1720) as peças nativas somem com o card aberto (web/folha.js esconde a barra para
   toda folha registrada), então o card é a folha de baixo, como no navegador do celular: começa abaixo da barra de status
   (--folha-topo, web/folha.css) e os botões do rodapé ficam acima do indicador de início */
html.app-nativo #acao-card-fundo{align-items:flex-end;padding:var(--folha-topo,calc(env(safe-area-inset-top) + 10px)) 0 0}
html.app-nativo #acao-card{width:100%;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
/* no app a faixa vermelha fica logo abaixo dos botões do topo, exatamente onde o card começa: com o card aberto ela sai de cena */
html.app-nativo body:has(#acao-card-fundo:not([hidden])) #acao-faixa{visibility:hidden}
html.app-ios body.tem-acao-cliente:has(#acao-card-fundo:not([hidden])) .toasts{top:calc(var(--topo-app) + 4px)}
/* os avisos (senha errada, escolha uma resposta) aparecem por cima do véu do card, não atrás dele */
body.acao-card-aberto .toasts{z-index:1450!important}
body.dark #acao-card{background:#2C2622;color:#F4ECE4}
#acao-card .ac-topo{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 6px}
#acao-card .ac-topo>div{flex:1;min-width:0} #acao-card h2{margin:0;font-size:calc(1.1875rem * var(--dt,1))}
#acao-card .ac-x{border:0;background:transparent;font-size:calc(1.75rem * var(--dt,1));line-height:1;color:var(--sub,#8A7666);cursor:pointer;padding:0 4px}
#acao-card .ac-sub{color:var(--sub,#8A7666);margin:2px 0 0;font-size:calc(0.8125rem * var(--dt,1))}
#acao-card .ac-prazo{margin:6px 18px 0;padding:10px 12px;border-radius:12px;background:rgba(217,45,32,.1);color:var(--ink-red,#B42318);font-size:calc(0.875rem * var(--dt,1))}
#acao-card .ac-prazo b{font-variant-numeric:tabular-nums}
#acao-card .ac-corpo{padding:10px 18px 18px;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;position:relative}
#acao-card .ac-msg{font-size:calc(1rem * var(--dt,1));margin:4px 0 10px}
#acao-card .ac-fotos .foto-mini{width:116px;height:130px}
#acao-card .ac-laudo{border:1px solid var(--hair,rgba(58,42,30,.12));border-radius:12px;padding:10px 12px;margin:8px 0;font-size:calc(0.875rem * var(--dt,1))}
#acao-card .ac-laudo p{margin:6px 0 0}
#acao-card .ac-fatos{font-size:calc(0.8125rem * var(--dt,1));color:var(--sub,#8A7666)}
#acao-card .ac-alerta{background:rgba(245,144,27,.14);border-radius:10px;padding:8px 10px;font-size:calc(0.8125rem * var(--dt,1))}
#acao-card .ac-h3{font-size:calc(0.9375rem * var(--dt,1));margin:14px 0 8px}
#acao-card .ac-presets{display:flex;flex-direction:column;gap:8px}
#acao-card .ac-preset{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--hair,rgba(58,42,30,.14));border-radius:12px;padding:10px 12px;cursor:pointer;font-size:calc(0.875rem * var(--dt,1));line-height:1.35}
#acao-card .ac-preset:has(input:checked){border-color:#D92D20;background:rgba(217,45,32,.06)}
#acao-card .ac-preset.cerebro b{color:var(--ink-red,#B42318)}
#acao-card .ac-preset input{margin-top:3px;flex:none}
#acao-card .ac-preset span{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
#acao-card .ac-preset textarea,#acao-card #ac-pin,#acao-card #ac-valor{width:100%;box-sizing:border-box;border:1px solid var(--hair,rgba(58,42,30,.2));border-radius:10px;padding:10px;font:inherit;background:transparent;color:inherit}
#acao-card .ac-acoes{flex:none;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin:0;padding:12px 18px 16px;border-top:1px solid var(--hair,rgba(58,42,30,.12));background:inherit;border-radius:0 0 20px 20px}
#acao-card .ac-acoes .btn{min-height:44px}
html.app-nativo #acao-card .ac-acoes{padding:12px 14px 14px}
html.app-nativo #acao-card .ac-acoes .btn{flex:1 1 auto}
#acao-card .ac-acoes .btn.is-loading{opacity:.75}
#acao-card .ac-carregando{padding:30px 18px;text-align:center;color:var(--sub,#8A7666)}
body.acao-card-aberto{overflow:hidden}

/* ---------- 1.62.1: miniaturas das fotos do cliente (card de ação, ficha do pedido) ---------- */
.fotos-cliente{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:8px 0 10px;-webkit-overflow-scrolling:touch}
.fotos-cliente .foto-mini{flex:none;position:relative;display:block;width:104px;height:104px;padding:0;margin:0;border:0;border-radius:12px;overflow:hidden;cursor:zoom-in;background:var(--fill,rgba(58,42,30,.08));box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.14));font:inherit;color:inherit;transition:transform var(--dur-rapida,.12s),opacity var(--dur-rapida,.12s);-webkit-tap-highlight-color:transparent}
.fotos-cliente .foto-mini img{display:block;width:100%;height:100%;object-fit:cover;border:0;border-radius:0;background:transparent}
.fotos-cliente .foto-mini:active{transform:scale(.96);opacity:.8}
.fotos-cliente .foto-mini:focus-visible{outline:3px solid var(--foco-cor,#1861A0);outline-offset:2px}
.fotos-cliente .foto-mini.carregando::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:2px solid rgba(120,110,100,.25);border-top-color:var(--sub,#8A7666);animation:hf-gira .8s linear infinite}
.fotos-cliente .foto-mini.falhou::after{content:"Foto indisponível. Toque para tentar de novo.";position:absolute;inset:0;display:grid;place-items:center;padding:8px;text-align:center;font-size:var(--f-caption1,0.75rem);line-height:1.25;color:var(--sub,#8A7666)}

/* ---------- 1.62.1: VISUALIZADOR DE FOTOS (window.HubFotos) ----------
   Vidro escuro em tela cheia, por cima de tudo (a ficha, o card de ação e, no app, os botões nativos, que somem enquanto
   ele está aberto). A foto aparece inteira; a barra de cima tem o contador e o X de 44 px. */
.hub-fotos{position:fixed;inset:0;z-index:2400;color:#fff;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:contain}
.hub-fotos[hidden]{display:none}
.hub-fotos .hf-fundo{position:absolute;inset:0;background:rgba(14,10,8,.82);-webkit-backdrop-filter:blur(30px) saturate(140%);backdrop-filter:blur(30px) saturate(140%);opacity:0;transition:opacity .22s var(--curva-padrao,ease)}
.hub-fotos.aberto .hf-fundo{opacity:1}
.hub-fotos .hf-palco{position:absolute;inset:0;opacity:0;transform:scale(.94);transition:transform .3s var(--curva-mola,cubic-bezier(.2,1.25,.35,1)),opacity .2s linear}
.hub-fotos.aberto .hf-palco{opacity:1;transform:none}
.hub-fotos.saindo .hf-palco{transition:transform .26s var(--curva-padrao,ease),opacity .2s linear}
.hub-fotos.arrastando .hf-palco,.hub-fotos.arrastando .hf-fundo{transition:none}
.hub-fotos .hf-trilho{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.hub-fotos .hf-trilho::-webkit-scrollbar{display:none}
.hub-fotos .hf-trilho.ampliando{overflow:hidden}
.hub-fotos .hf-foto{flex:0 0 100%;width:100%;height:100%;margin:0;position:relative;scroll-snap-align:center;scroll-snap-stop:always;overflow:hidden}
.hub-fotos .hf-zoom{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:calc(var(--app-status,0px) + 60px) 10px calc(env(safe-area-inset-bottom) + 64px)}
.hub-fotos .hf-zoom img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;-webkit-user-drag:none}
.hub-fotos .hf-zoom img:not([src]){visibility:hidden}
.hub-fotos .hf-foto.ampliada{overflow:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.hub-fotos .hf-foto.ampliada .hf-zoom{width:max-content;height:max-content;min-width:100%;min-height:100%;padding:0}
.hub-fotos .hf-foto.ampliada .hf-zoom img{max-width:none;max-height:none;border-radius:0}
.hub-fotos .hf-girando{display:none;position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:3px solid rgba(255,255,255,.22);border-top-color:#fff;animation:hf-gira .8s linear infinite}
.hub-fotos .hf-foto.carregando .hf-girando{display:block}
.hub-fotos .hf-erro{position:absolute;left:24px;right:24px;top:50%;transform:translateY(-50%);text-align:center;font-size:var(--f-body,1.0625rem);line-height:1.4;color:rgba(255,255,255,.86)}
.hub-fotos .hf-erro[hidden]{display:none}
@keyframes hf-gira{to{transform:rotate(360deg)}}
.hub-fotos .hf-barra{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:center;min-height:44px;padding:calc(var(--app-status,0px) + 8px) 12px 8px;pointer-events:none;opacity:0;transition:opacity .2s linear}
.hub-fotos.aberto .hf-barra{opacity:1}
.hub-fotos.ampliando .hf-barra,.hub-fotos.arrastando .hf-barra,.hub-fotos.ampliando .hf-dica,.hub-fotos.arrastando .hf-dica{opacity:0}
.hub-fotos .hf-contador{padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22);font-weight:600;font-size:var(--f-subhead,0.9375rem);font-variant-numeric:tabular-nums}
.hub-fotos.uma .hf-contador{visibility:hidden}
.hub-fotos .hf-x{position:absolute;right:12px;top:calc(var(--app-status,0px) + 8px);pointer-events:auto;width:44px;height:44px;border-radius:50%;border:0;padding:0;display:grid;place-items:center;color:#fff;cursor:pointer;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 14px rgba(0,0,0,.25);transition:transform var(--dur-rapida,.12s),background-color var(--dur-rapida,.12s)}
.hub-fotos .hf-x svg,.hub-fotos .hf-seta svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hub-fotos .hf-x:active,.hub-fotos .hf-seta:not(:disabled):active{transform:scale(.92);background:rgba(255,255,255,.28)}
.hub-fotos .hf-x:focus-visible,.hub-fotos .hf-seta:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hub-fotos .hf-seta{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;border-radius:50%;border:0;padding:0;display:none;place-items:center;color:#fff;cursor:pointer;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3);transition:transform var(--dur-rapida,.12s),opacity .2s}
.hub-fotos .hf-seta:disabled{opacity:.3;cursor:default}
.hub-fotos .hf-ant{left:16px} .hub-fotos .hf-prox{right:16px}
@media (hover:hover) and (pointer:fine){.hub-fotos:not(.uma) .hf-seta{display:grid}}
.hub-fotos .hf-dica{position:absolute;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);margin:0;text-align:center;font-size:var(--f-footnote,0.8125rem);color:rgba(255,255,255,.72);pointer-events:none;opacity:0;transition:opacity .2s linear}
.hub-fotos.aberto .hf-dica{opacity:1}
.hub-fotos .hf-dica-mouse{display:none}
@media (hover:hover) and (pointer:fine){.hub-fotos .hf-dica-toque{display:none}.hub-fotos .hf-dica-mouse{display:inline}}
html.fotos-abertas,html.fotos-abertas body{overflow:hidden}
@media (prefers-reduced-transparency:reduce){.hub-fotos .hf-fundo{background:#0E0A08;-webkit-backdrop-filter:none;backdrop-filter:none}}
/* 1.68.2: assumir o chamado. Quem assumiu vê a própria tratativa (e pode devolver); os outros veem o comunicado. */
#acao-faixa.so-tratativa{background:#B54708}
#acao-faixa .af-dono{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.22);font-weight:600;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
#acao-card>.ac-tratativa{flex:none}
#acao-card .ac-tratativa{margin:8px 18px 0;padding:10px 12px;border-radius:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:calc(0.875rem * var(--dt,1));line-height:1.35}
#acao-card .ac-tratativa p{margin:0;flex:1 1 220px}
#acao-card .ac-tratativa.meu{background:rgba(18,183,106,.13)}
#acao-card .ac-tratativa.ocupado,#acao-card .ac-tratativa.expirou,#acao-card .ac-tratativa.prazo{background:rgba(245,144,27,.18)}
#acao-card .ac-tratativa.ocupado{display:block}
#acao-card .ac-tratativa.ocupado b{display:block;margin-bottom:2px}
#acao-card .ac-link{border:0;background:transparent;color:var(--ink-red,#B42318);font-weight:600;text-decoration:underline;cursor:pointer;padding:4px 2px;font-size:inherit}
body.dark #acao-card .ac-link{color:#FDA29B}

/* /ai-support.css */
/* Ilustracoes locais, um passo por vez, com botoes junto da pergunta. */
.support-step { display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1.3fr);align-items:center;gap:20px;color:var(--ws-ink); }
.support-art { min-width:0;text-align:center; }
.support-art svg { display:block;width:100%;max-height:200px;overflow:visible; }
.support-art > span { display:block;font-size:max(0.6875rem, calc(0.6875rem * var(--dt)));color:var(--ws-secondary);line-height:1.3;margin-top:3px; }
.support-step-label { font-size:max(0.6875rem, calc(0.75rem * var(--dt)));font-weight:650;color:var(--ws-secondary);margin-bottom:5px; }
.support-copy h3 { font-size:calc(1.3125rem * var(--dt));line-height:1.2;margin:0 0 9px;letter-spacing:-.025em; }
.support-copy p { margin:0 0 10px!important;line-height:1.45;font-size:calc(1rem * var(--dt))!important; }
.support-copy small { display:block;line-height:1.4;color:var(--ws-secondary);margin-bottom:10px; }
.support-question { display:block;font-size:calc(1rem * var(--dt));line-height:1.35;margin:10px 0; }
.support-actions { display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px; }
.support-actions .ws-btn { min-height:44px; }
.support-progress { display:flex;gap:9px;align-items:center;font-size:calc(0.875rem * var(--dt));color:var(--ws-secondary);margin:10px 0; }
.support-progress i { width:17px;height:17px;border:2px solid var(--ws-soft);border-top-color:var(--ws-accent);border-radius:50%;animation:support-spin .9s linear infinite; }
.support-focus { animation:support-focus 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center; }
.is-working .support-receipt { animation:support-paper 1.7s ease-in-out infinite; }
.is-working .support-network-line,.is-working .support-router-leds { animation:support-focus 1.2s ease-in-out infinite; }
.is-done .support-focus { animation:none; }
@keyframes support-spin { to {transform:rotate(360deg)} }
@keyframes support-focus { 50% {opacity:.48} }
@keyframes support-paper { 0% {transform:translate(9px,-25px);opacity:.35} 60%,100% {transform:translate(0,0);opacity:1} }
@media(max-width:640px) { .support-step {grid-template-columns:90px minmax(0,1fr);gap:10px}.support-art svg {max-height:105px}.support-art>span {font-size:max(0.6875rem, calc(0.625rem * var(--dt)))}.support-copy h3 {font-size:calc(1.125rem * var(--dt))}.support-copy p {font-size:calc(0.9375rem * var(--dt))!important}.support-actions {gap:6px}.support-actions .ws-btn {padding:9px 11px;font-size:calc(0.8125rem * var(--dt))} }
@media(prefers-reduced-motion:reduce) { .support-step *, .support-step *::before {animation:none!important;transition:none!important}.support-progress i {border-color:var(--ws-accent);border-style:dotted} }

/* A ajuda ativa ocupa o centro disponivel. Os outros cards continuam no paginador. */
#aiz.ws-root.ws-support-active.ws-support-mode { top:var(--ws-support-top);bottom:calc(18px + var(--ws-viewport-inset,0px));max-height:none;grid-template-rows:minmax(0,1fr) auto;align-content:stretch; }
#aiz.ws-root.ws-support-active.ws-support-mode .ws-board { align-self:center;justify-self:center;width:min(900px,100%);height:auto;max-height:100%;grid-template-rows:auto minmax(0,1fr); }
#aiz.ws-root.ws-support-active.ws-support-mode .ws-grid { grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:100%;max-height:100%; }
#aiz.ws-root.ws-support-active.ws-support-mode .ws-support-widget { width:100%;height:auto;max-height:100%; }
#aiz.ws-root.ws-support-active.ws-support-mode .ws-widget-body { flex:0 1 auto;overflow:auto; }
#aiz.ws-root.ws-support-active.ws-support-mode.ws-single-result .ws-board { grid-template-rows:minmax(0,1fr); }
#aiz.ws-root.ws-support-active.ws-support-mode .support-art svg { max-height:220px; }
#aiz.ws-root.ws-support-active.ws-support-mode .support-copy h3 { font-size:calc(1.375rem * var(--dt)); }
#aiz.ws-root.ws-support-active.ws-support-mode .support-copy p { font-size:calc(1rem * var(--dt))!important; }
@media(max-width:640px) {
  #aiz.ws-root.ws-support-active.ws-support-mode { left:12px;right:12px;bottom:calc(12px + var(--ws-viewport-inset,0px)); }
  #aiz.ws-root.ws-support-active.ws-support-mode .support-step { grid-template-columns:minmax(0,1fr);gap:8px; }
  #aiz.ws-root.ws-support-active.ws-support-mode .support-art svg { height:105px;max-height:105px; }
  #aiz.ws-root.ws-support-active.ws-support-mode .support-copy h3 { font-size:calc(1.25rem * var(--dt)); }
}
@media(max-height:600px) { #aiz.ws-root.ws-support-active.ws-support-mode .support-art { display:none; }#aiz.ws-root.ws-support-active.ws-support-mode .support-step { grid-template-columns:minmax(0,1fr); } }
/* 1.27.0: botões dos cards de suporte sempre legíveis (o desativado continua lido; só a repetição da operação em curso é bloqueada). */
.support-actions .ws-btn{background:rgba(58,42,30,.08);color:#2b2118;font-weight:600}
.support-actions .ws-btn.ws-primary{background:#2f7a45;color:#fff}
.support-actions .ws-btn:disabled{opacity:.75}
body.dark .support-actions .ws-btn{background:rgba(255,255,255,.12);color:#f4efe8}
.support-area .support-led{animation:support-led 1.6s ease-in-out infinite}
.is-working .support-area .support-network-line{animation:support-dash .8s linear infinite}
@keyframes support-led{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes support-dash{to{stroke-dashoffset:-16}}
@media(prefers-reduced-motion:reduce){.support-area .support-led,.is-working .support-area .support-network-line{animation:none}}

/* /login.css */
/* Entrada: marca e conteudo livres; material apenas nos controles de acesso. */
#start{
  --login-bg:var(--page,#F7F5F1);--login-ink:#302b23;--login-sub:#655e54;--login-control:rgba(255,255,255,.78);--login-well:rgba(68,56,38,.065);--login-active:#fff;--login-error:#b32932;--login-focus:#0969c5;--login-field-active:#fff;
  z-index:2000;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;align-items:flex-start;
  padding:max(28px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
  /* 1.74.0 (Philippe, 05/10/2026; N4 e N5 da quinta rodada): a entrada tem o MESMO fundo do resto do Hub, o off-white liso do
     token --page (web/index.html). Saíram as duas manchas (areia em cima, verde embaixo), no claro e no escuro. */
  background:var(--login-bg);
  backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--login-ink);
}
body.dark #start{--login-ink:#f5f1e9;--login-sub:#c3bbb0;--login-control:rgba(62,57,49,.86);--login-well:rgba(255,255,255,.065);--login-active:#625a4c;--login-error:#ffb3b4;--login-focus:#76baff;--login-field-active:#3e3931}
#start .card{box-sizing:border-box;width:100%;max-width:420px;padding:0;margin:auto;text-align:left;border:0!important;border-radius:0;background:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#start .card::before,#start .card::after{display:none}
#start .login-brand{text-align:center;margin-bottom:10px}
#start .llogo{width:auto;max-width:100%;height:56px;margin:0 auto 16px;object-fit:contain}
#start .login-night{display:none}body.dark #start .login-day{display:none}body.dark #start .login-night{display:block}
#start h1{margin:0 0 8px;font-size:1.875rem;line-height:1.15;font-weight:700;letter-spacing:-.035em;color:var(--login-ink)}
#start .login-brand p{margin:0;font-size:.9375rem;line-height:1.45;color:var(--login-sub)}
#start .roles.big{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0}
#start .roles.big .unitbtn{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 20px;gap:16px;align-items:center;justify-content:initial;text-align:left;min-height:92px;padding:20px;border:0!important;border-radius:20px;color:var(--login-ink);background:var(--login-control);box-shadow:0 5px 18px rgba(41,32,17,.065);backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));transition:background-color .16s ease,transform .16s ease}
@media (hover:hover){#start .roles.big .unitbtn:hover{transform:none;background:var(--login-active)}}
#start .roles.big .unitbtn:active{transform:scale(.985)}
#start .roles.big .unitbtn i{display:grid;place-items:center;width:44px;height:44px;margin:0;border-radius:13px;background:var(--login-well);box-shadow:none;color:var(--login-ink)}
#start .unitbtn i svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#start .unitbtn .unitcopy{min-width:0;display:block}
#start .roles.big .unitbtn b{display:block;font-size:1.25rem;font-weight:650;line-height:1.2;letter-spacing:-.02em;color:var(--login-ink)}
#start .roles.big .unitbtn .unitcopy>span{display:block;margin-top:5px;font-size:.875rem;font-weight:400;line-height:1.3;color:var(--login-sub)}
#start .unit-next{width:18px;height:18px;fill:none;stroke:var(--login-sub);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#start .login-management{margin-top:26px}
#start .login-management-title{margin:0 0 10px;text-align:center;font-size:.8125rem;line-height:1.4;font-weight:500;color:var(--login-sub)}
#start .glinks{display:flex;gap:4px;padding:4px;border-radius:15px;background:var(--login-well)}
#start .gestorlink{min-width:0;flex:1;min-height:44px;padding:10px 12px;border:0!important;border-radius:11px;background:transparent;box-shadow:none;color:var(--login-ink);opacity:1;font-size:.9375rem;line-height:1.3;font-weight:600;text-decoration:none;transition:background-color .16s ease,box-shadow .16s ease}
#start .gestorlink.on{background:var(--login-active);color:var(--login-ink);box-shadow:0 2px 7px rgba(35,29,20,.09)}
#start #loginpin{margin-top:20px}
#start #lpinlabel{display:block;margin:0 0 8px;font-size:.9375rem;font-weight:600;line-height:1.4;color:var(--login-ink)}
#start .login-pin-field{position:relative;isolation:isolate;margin-bottom:12px;border-radius:16px}
#start .login-pin-field::before{content:"";position:absolute;inset:-3px;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,rgba(151,102,59,.8),rgba(120,162,135,.72) 38%,rgba(171,83,68,.68) 75%,rgba(151,102,59,.8));filter:blur(8px);opacity:0;transition:opacity .2s ease;pointer-events:none}
#start .login-pin-field:focus-within::before{opacity:.8;animation:login-field-glow 4s ease-in-out infinite}
#start #lpin{box-sizing:border-box;width:100%;min-height:52px;margin:0;padding:13px 16px;border:0;border-radius:inherit;font:inherit;font-size:1.125rem;letter-spacing:.16em;line-height:1.35;text-align:left;background:var(--login-control);color:var(--login-ink);box-shadow:0 3px 12px rgba(43,28,18,.07);caret-color:var(--login-ink)}
#start #lpin:focus{background:var(--login-field-active);box-shadow:0 3px 15px rgba(43,28,18,.12)}
#start #lpin::placeholder{font-size:1rem;letter-spacing:0;color:var(--login-sub);opacity:1}
#start #lpin[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--login-error)}
#start #lenter{min-height:50px;width:100%;padding:12px 18px;border:0;border-radius:13px;background:var(--on-green,#257f37);color:#fff;box-shadow:none;font-size:1rem;line-height:1.4;font-weight:650}
#start .login-feedback{font-size:.9375rem;line-height:1.45;margin:14px 0 0;color:var(--login-sub)}
#start .login-feedback:empty{display:none}#start .login-feedback.error{color:var(--login-error);font-weight:550}
#start .login-feedback.loading{display:flex;align-items:center;justify-content:center;gap:9px}
#start .login-feedback.loading::before{content:"";flex:none;width:15px;height:15px;border:2px solid color-mix(in srgb,var(--login-sub) 25%,transparent);border-top-color:var(--login-sub);border-radius:50%;animation:login-progress .8s linear infinite}
#start .hint{font-size:.8125rem;line-height:1.5;color:var(--login-sub);text-align:center;margin:20px auto 0;max-width:35ch}
#start button:disabled,#start input:disabled{cursor:wait;opacity:.7}#start button:disabled:active{transform:none}
#start button:focus-visible{outline:3px solid var(--login-focus);outline-offset:4px}
#start #lpin:focus-visible{outline:none}
#start:focus{outline:none}
@keyframes login-progress{to{transform:rotate(360deg)}}
@keyframes login-field-glow{0%,100%{opacity:.8}50%{opacity:1}}
@media(max-width:440px){#start{padding-left:20px;padding-right:20px}#start .llogo{height:48px}#start .roles.big .unitbtn{grid-template-columns:40px minmax(0,1fr) 18px;gap:12px;padding:16px;min-height:84px}#start .roles.big .unitbtn i{width:40px;height:40px}}
@media(max-height:700px){#start .llogo{height:48px;margin-bottom:14px}#start .login-management{margin-top:20px}}
@media(prefers-reduced-motion:reduce){#start *,#start *::before{animation:none!important;transition:none!important}#start .roles.big .unitbtn:active{transform:none}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){#start{--login-control:#fff;--login-sub:#484139;--login-well:#e6e1d8}body.dark #start{--login-control:#302d27;--login-sub:#e7e1d8;--login-well:#403a32}#start .unitbtn{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}#start #lpin{box-shadow:inset 0 0 0 2px var(--login-sub)}}
@media(forced-colors:active),(prefers-contrast:more){#start .login-pin-field::before{display:none}#start #lpin:focus-visible{outline:3px solid currentColor;outline-offset:4px}}
#start .unitcopy,#start h1,#start .login-feedback{overflow-wrap:anywhere}
#start .glinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}

/* /contas.css */
/* 1.64.0: ENTRADA COM E-MAIL E SENHA, MINHA CONTA E "ENTRAR COMO..." (web/contas.js).
   Mesma linguagem da entrada (web/login.css: --login-*) e do vidro do Hub (--glass-*, --r-*, --f-*). Alvos de 44 pt,
   botão que encolhe ao apertar, carregando com a frase do que está fazendo, verde quando deu certo, vermelho com o
   motivo quando não deu. Letra sempre pela escala do Hub (--f-* com --dt). */

/* ---------------------------------------------------------------- tela de entrada */
#start .login-contas{margin-top:6px}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): o lugar do formulário de e-mail fica reservado desde a primeira pintura. O
   web/contas.js só desenha o formulário quando a página termina de carregar; até lá o cartão da entrada aparecia curto e,
   quando o formulário chegava, o cartão inteiro pulava (as duas lojas desciam 125 px no celular). Medido no celular: o
   deslocamento de layout da entrada (CLS) cai de 0,126 para 0,012. A altura é a do passo "e-mail" (campo, botão, recado
   e a linha "ou, com a senha antiga"); se o formulário mudar de altura, o teste tests/desempenho-1740.test.js avisa. */
#start .login-contas:empty{min-height:14.6875rem}
#start .conta-form{display:flex;flex-direction:column;gap:12px;margin:0}
#start .conta-campo{display:flex;flex-direction:column;gap:6px;margin:0;font-size:var(--f-subhead,0.9375rem);font-weight:600;line-height:1.35;color:var(--login-ink)}
#start .conta-campo input,#start .conta-senha-caixa{box-sizing:border-box;width:100%;min-height:52px;border-radius:16px;background:var(--login-control);box-shadow:0 3px 12px rgba(43,28,18,.07);color:var(--login-ink)}
#start .conta-campo input{margin:0;padding:12px 16px;border:0;font:inherit;font-weight:500;font-size:var(--f-body,1.0625rem);caret-color:var(--login-ink)}
#start .conta-campo input::placeholder{color:var(--login-sub);opacity:1;font-weight:400}
#start .conta-campo input:focus{background:var(--login-field-active);box-shadow:0 3px 15px rgba(43,28,18,.12);outline:3px solid color-mix(in srgb,var(--login-focus) 55%,transparent);outline-offset:1px}
#start .conta-campo input[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--login-error)}
#start .conta-senha-caixa{display:flex;align-items:center;padding:0 4px 0 0}
#start .conta-senha-caixa input{flex:1;min-width:0;min-height:52px;box-shadow:none;background:transparent}
#start .conta-senha-caixa:focus-within{background:var(--login-field-active);outline:3px solid color-mix(in srgb,var(--login-focus) 55%,transparent);outline-offset:1px}
#start .conta-senha-caixa input:focus{outline:none;box-shadow:none;background:transparent}
.conta-ver{flex:none;min-width:44px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--login-focus,var(--ink-blue,#1E6EF4));font:inherit;font-size:var(--f-footnote,0.8125rem);font-weight:650;cursor:pointer}
.conta-ver:active{transform:scale(.96);opacity:.8}
#start .conta-chip{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 4px 4px 14px;border-radius:14px;background:var(--login-well)}
#start .conta-chip-email{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--f-subhead,0.9375rem);font-weight:600}
#start .conta-texto,.conta-folha .conta-texto{margin:0;font-size:var(--f-subhead,0.9375rem);line-height:var(--lh-subhead,1.25rem);color:var(--login-sub,var(--label2,#6B5A4C))}
#start .conta-texto b{color:var(--login-ink)}
#start .conta-dica,.conta-folha .conta-dica{margin:-4px 0 0;font-size:var(--f-footnote,0.8125rem);line-height:1.4;color:var(--login-sub,var(--label2,#6B5A4C))}
#start .conta-divisor{display:flex;align-items:center;gap:12px;margin:26px 0 14px;font-size:var(--f-footnote,0.8125rem);font-weight:500;line-height:1.4;color:var(--login-sub);text-align:center}
#start .conta-divisor::before,#start .conta-divisor::after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--login-sub) 30%,transparent)}
#start .login-antigo[hidden]{display:none}

/* botões (entrada e folhas) */
.conta-btn{box-sizing:border-box;width:100%;min-height:50px;padding:12px 20px;border:0;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font:inherit;font-size:var(--f-callout,1rem);line-height:1.3;font-weight:650;cursor:pointer;background:var(--login-well,var(--fill2,rgba(90,65,45,.12)));color:var(--login-ink,var(--label,#3A2A1E));transition:transform .12s ease,opacity .12s ease,background-color .2s ease}
.conta-btn.primario{background:var(--on-green,#257f37);color:#fff}
.conta-btn:active:not(:disabled){transform:scale(.97);opacity:.88}
.conta-btn.is-loading{opacity:.85;cursor:progress}
.conta-btn.is-loading::before,.conta-opcao.is-loading::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:conta-gira .7s linear infinite}
.conta-btn.is-ok,.conta-opcao.is-ok{background:var(--sys-green,#34C759)!important;color:#fff!important}
.conta-btn.is-ok::before{content:"✓";font-weight:800}
.conta-btn.is-erro,.conta-opcao.is-erro{background:var(--sys-red,#FF383C)!important;color:#fff!important;animation:conta-treme .32s}
.conta-btn.perigo{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#B42318)}
.conta-link{align-self:center;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--login-focus,var(--ink-blue,#1E6EF4));font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer}
.conta-link:active{opacity:.6}
.conta-link.discreto{color:var(--login-sub,var(--label2,#6B5A4C));font-weight:500;font-size:var(--f-footnote,0.8125rem)}
.conta-recado{margin:0;min-height:0;font-size:var(--f-subhead,0.9375rem);line-height:1.4;font-weight:550}
.conta-recado:empty{display:none}
.conta-recado.erro{color:var(--login-error,var(--ink-red,#B42318))}
.conta-recado.ok{color:var(--ink-green,#1C7A36)}
.conta-recado.info{color:var(--login-sub,var(--label2,#6B5A4C))}
.conta-lista{display:flex;flex-direction:column;gap:10px;margin:0 0 12px}
.conta-opcao{box-sizing:border-box;width:100%;min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:12px;align-items:center;padding:14px 18px;border:0;border-radius:18px;text-align:left;font:inherit;cursor:pointer;background:var(--login-control,var(--glass-bg,rgba(255,255,255,.72)));color:var(--login-ink,var(--label,#3A2A1E));box-shadow:0 5px 18px rgba(41,32,17,.065);transition:transform .14s ease,background-color .16s ease}
.conta-opcao:active{transform:scale(.985)}
.conta-opcao b{display:block;font-size:var(--f-headline,1.0625rem);font-weight:650;line-height:1.25}
.conta-opcao small{display:block;margin-top:3px;font-size:var(--f-footnote,0.8125rem);color:var(--login-sub,var(--label2,#6B5A4C))}
.conta-opcao>span[aria-hidden]{font-size:var(--f-title3,1.25rem);color:var(--login-sub,var(--label3,#8A7666));text-align:right}
.conta-lista.pessoas .conta-opcao{grid-template-columns:44px minmax(0,1fr) 20px}
button:focus-visible.conta-btn,.conta-opcao:focus-visible,.conta-link:focus-visible,.conta-ver:focus-visible,.conta-x:focus-visible,.conta-linha:focus-visible{outline:3px solid var(--login-focus,var(--ink-blue,#1E6EF4));outline-offset:3px}

/* Dentro da entrada, a regra antiga ".start button" (botão azul grande) vale para todo botão: aqui cada botão volta
   ao seu desenho (mesma especificidade com #start, e este arquivo carrega antes; por isso o reforço). */
#start .conta-btn,#start .conta-link,#start .conta-ver,#start .conta-opcao{border:0;box-shadow:none;text-shadow:none;letter-spacing:normal}
#start .conta-btn{width:100%;min-height:50px;padding:12px 20px;border-radius:13px;font-size:var(--f-callout,1rem);font-weight:650;background:var(--login-well);color:var(--login-ink)}
#start .conta-btn.primario{background:var(--on-green,#257f37);color:#fff}
#start .conta-link{width:auto;min-height:44px;padding:0 12px;border-radius:12px;background:transparent;color:var(--login-focus);font-size:var(--f-subhead,0.9375rem);font-weight:600}
#start .conta-link.discreto{color:var(--login-sub);font-weight:500;font-size:var(--f-footnote,0.8125rem);text-decoration:underline;text-underline-offset:3px}
#start .conta-ver{min-height:44px;padding:0 12px;border-radius:12px;background:transparent;color:var(--login-focus);font-size:var(--f-footnote,0.8125rem);font-weight:650}
#start .conta-opcao{min-height:64px;padding:14px 18px;border-radius:18px;background:var(--login-control);color:var(--login-ink);font-size:inherit;font-weight:inherit;box-shadow:0 5px 18px rgba(41,32,17,.065)}
#start .conta-recado{margin:0}

/* ---------------------------------------------------------------- botão da pessoa no topo */
.top .conta-avatar{position:relative}
.top .conta-avatar[hidden]{display:none}
.conta-iniciais{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(145deg,var(--sys-blue,#0088FF),var(--sys-indigo,#6155F5));color:#fff;font-size:var(--f-footnote,0.8125rem);font-weight:750;letter-spacing:.02em}
body.conta-pin .conta-iniciais{background:linear-gradient(145deg,var(--sys-orange,#FF8D28),var(--sys-red,#FF383C))}
/* 1.74.0 (Philippe, 03/10/2026): enquanto o dono não cria o acesso pessoal, o botão da conta leva um ponto laranja (o
   mesmo sinal de "tem coisa aqui" do microfone), e o aviso da primeira visita é um botão: tocar abre a criação do acesso. */
.top .conta-avatar.conta-pede::after{content:"";position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;background:var(--sys-orange,#FF8D28);box-shadow:0 0 0 2px var(--surface,#fff)}
.toasts .toast.conta-aviso-dono{font-family:inherit;text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;min-height:44px;transition:transform .1s ease-out}
.toasts .toast.conta-aviso-dono::after{content:"\203A";flex:none;margin-left:auto;padding-left:4px;font-size:var(--f-title3,1.25rem);line-height:1;color:var(--label2,#6B5A4C)}
.toasts .toast.conta-aviso-dono:active{transform:scale(.98)}
.toasts .toast.conta-aviso-dono:focus-visible{outline:3px solid var(--ink-blue,#1E6EF4);outline-offset:2px}
body.dark .top .conta-avatar.conta-pede::after{box-shadow:0 0 0 2px var(--surface,#22201E)}
/* 1.74.0, segunda rodada: no celular os botões da barra de cima têm 40 px de desenho. O aviso manda tocar no botão da
   pessoa, então a área de toque dele vai a 44 px (2 px invisíveis para cada lado), sem mudar o desenho da barra. */
.top .conta-avatar::before{content:"";position:absolute;inset:-2px;border-radius:50%}

/* ---------------------------------------------------------------- folhas de vidro */
.conta-fundo{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:rgba(20,14,8,.28);animation:conta-aparece .18s ease}
.conta-folha{box-sizing:border-box;width:min(460px,100%);max-height:min(88vh,760px);overflow:auto;overscroll-behavior:contain;border-radius:var(--r-sheet,20px);padding:6px 20px 20px;background:var(--vidro-grosso,var(--glass-bg,rgba(255,255,255,.86)));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);border:1px solid var(--glass-border,rgba(255,255,255,.88));box-shadow:var(--glass-lift-alto,0 18px 46px rgba(40,25,12,.22));color:var(--label,#3A2A1E);animation:conta-entra .28s cubic-bezier(.2,.8,.2,1);--login-ink:var(--label,#3A2A1E);--login-sub:var(--label2,#6B5A4C);--login-control:var(--surface,#fff);--login-field-active:var(--surface,#fff);--login-well:var(--fill,rgba(90,65,45,.08));--login-error:var(--ink-red,#B42318);--login-focus:var(--ink-blue,#1E6EF4)}
.conta-folha-topo{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;min-height:56px;margin:0 -20px 8px;padding:0 12px 0 20px;background:inherit;border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0}
.conta-folha-topo h2{flex:1;margin:0;font-size:var(--f-title3,1.25rem);line-height:var(--lh-title3,1.5625rem);font-weight:700}
.conta-x{flex:none;min-width:44px;min-height:44px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);font-size:var(--f-title2,1.375rem);line-height:1;cursor:pointer}
.conta-x:active{transform:scale(.94)}
.conta-folha-corpo{display:flex;flex-direction:column;gap:12px}
.conta-folha .conta-form{display:flex;flex-direction:column;gap:12px}
.conta-folha .conta-campo{display:flex;flex-direction:column;gap:6px;font-size:var(--f-subhead,0.9375rem);font-weight:600}
.conta-folha .conta-campo input{box-sizing:border-box;width:100%;min-height:48px;padding:12px 16px;border:1px solid var(--sep,rgba(58,42,30,.18));border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:inherit;font:inherit;font-size:var(--f-body,1.0625rem);font-weight:500}
.conta-folha .conta-campo input:focus-visible{outline:3px solid color-mix(in srgb,var(--sys-blue,#0088FF) 45%,transparent);outline-offset:1px}
.conta-folha .conta-pin-campo{letter-spacing:.4em;text-align:center;font-size:var(--f-title2,1.375rem)!important}
.conta-quem{display:flex;align-items:center;gap:14px;padding:4px 0 6px}
.conta-quem b{display:block;font-size:var(--f-headline,1.0625rem)}
.conta-quem small{display:block;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.4}
.conta-avatar-grande,.conta-avatar-medio{flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,var(--sys-blue,#0088FF),var(--sys-indigo,#6155F5));color:#fff;font-weight:750}
.conta-avatar-grande{width:56px;height:56px;font-size:var(--f-title3,1.25rem)}
.conta-avatar-medio{width:44px;height:44px;font-size:var(--f-subhead,0.9375rem)}
.conta-linha{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:10px;width:100%;min-height:60px;padding:10px 14px;border:0;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08));color:inherit;font:inherit;text-align:left;cursor:pointer}
.conta-linha:active{transform:scale(.985)}
.conta-linha b{display:block;font-size:var(--f-body,1.0625rem);font-weight:650}
.conta-linha small{display:block;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.conta-grupo{border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08));padding:0 14px}
.conta-grupo>summary{min-height:52px;display:flex;align-items:center;font-size:var(--f-body,1.0625rem);font-weight:650;cursor:pointer;list-style:none}
.conta-grupo>summary::-webkit-details-marker{display:none}
.conta-grupo>summary::after{content:"›";margin-left:auto;font-size:var(--f-title3,1.25rem);color:var(--label3,#8A7666);transition:transform .18s ease}
.conta-grupo[open]>summary::after{transform:rotate(90deg)}
.conta-grupo[open]{padding-bottom:14px}
.conta-nota{margin:0;padding:10px 12px;border-radius:var(--r-ctl,12px);background:color-mix(in srgb,var(--sys-orange,#FF8D28) 14%,transparent);font-size:var(--f-footnote,0.8125rem);line-height:1.45}
/* 1.72.0 (auditoria de design 1720): no celular, as alturas das folhas do sistema (web/folha.css) */
@media (max-width:640px){.conta-fundo{align-items:flex-end;padding:0}.conta-folha{width:100%;max-height:var(--folha-grande,92vh);min-height:var(--folha-media,50vh);border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0;padding-bottom:var(--folha-base,max(20px,env(safe-area-inset-bottom)))}}
/* 1.72.0 (auditoria de design 1720): no app a barra de abas some com a folha aberta (web/folha.js); a folha encosta embaixo,
   com os botões acima do indicador de início (web/folha.css, --folha-base) */
html.app-nativo .conta-fundo{padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}
body.dark .conta-fundo{background:rgba(0,0,0,.45)}
body.dark .conta-folha .conta-campo input{background:var(--surface2,#2C2A27);border-color:rgba(255,255,255,.12)}
@media (prefers-reduced-transparency:reduce){.conta-folha{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}body.dark .conta-folha{background:var(--surface,#22201E)}}
@media (prefers-reduced-motion:reduce){.conta-fundo,.conta-folha,.conta-btn.is-erro{animation:none}.conta-btn,.conta-opcao,.conta-linha,.toasts .toast.conta-aviso-dono{transition:none}}
@keyframes conta-gira{to{transform:rotate(360deg)}}
@keyframes conta-treme{25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
@keyframes conta-entra{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes conta-aparece{from{opacity:0}to{opacity:1}}

/* ---------------------------------------------------------------- telas que a pessoa não pode abrir */
body.sem-fin #seg [data-view="fin"],body.sem-fin .menudd [data-view="fin"],
body.sem-ges #seg [data-view="ges"],body.sem-ges .menudd [data-view="ges"],
body.sem-kds #seg [data-view="kds"],body.sem-kds .menudd [data-view="kds"],
body.sem-exp #seg [data-view="exp"],body.sem-exp .menudd [data-view="exp"],
body.sem-menu #seg [data-view="menu"],body.sem-menu .menudd [data-view="menu"],
body.sem-rev #seg [data-view="rev"],body.sem-rev .menudd [data-view="rev"],
body.sem-sys #seg [data-view="sys"],body.sem-sys .menudd [data-view="sys"],
body.sem-cfg #seg [data-view="cfg"],body.sem-cfg .menudd [data-view="cfg"],
body.sem-sim #seg [data-view="sim"],body.sem-sim .menudd [data-view="sim"],
body.sem-neg #seg [data-view="neg"],body.sem-neg .menudd [data-view="neg"],
body.sem-cer #seg [data-view="cer"],body.sem-cer .menudd [data-view="cer"]{display:none!important}

/* /usuarios.css */
/* 1.64.0: USUÁRIOS E PERMISSÕES (web/usuarios.js). Folha de vidro grande no computador, tela cheia no celular; lista
   de pessoas, ficha com papel, lojas e chaves liga-desliga por área, convite e o registro de quem fez o quê.
   Tokens do Hub (--glass-*, --r-*, --f-*, --sys-*), alvos de 44 pt, estados de botão visíveis. */
body.usu-aberto{overflow:hidden}
.usu-fundo{position:fixed;inset:0;z-index:2050;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(20,14,8,.26);animation:usu-aparece .18s ease}
.usu-fundo[hidden]{display:none}
.usu-painel{box-sizing:border-box;width:min(760px,100%);height:min(92vh,900px);display:flex;flex-direction:column;border-radius:var(--r-sheet,20px);background:var(--vidro-grosso,var(--glass-bg,rgba(255,255,255,.86)));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);border:1px solid var(--glass-border,rgba(255,255,255,.88));box-shadow:var(--glass-lift-alto,0 18px 46px rgba(40,25,12,.22));color:var(--label,#3A2A1E);overflow:hidden;animation:usu-entra .28s cubic-bezier(.2,.8,.2,1)}
.usu-topo{flex:none;display:grid;grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);align-items:center;gap:8px;min-height:60px;padding:0 12px;border-bottom:1px solid var(--separator,rgba(58,42,30,.12))}
.usu-topo h2{grid-column:2;margin:0;text-align:center;font-size:var(--f-headline,1.0625rem);line-height:1.25;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw}
.usu-voltar{grid-column:1;justify-self:start;min-height:44px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--ink-blue,#1E6EF4);font:inherit;font-size:var(--f-body,1.0625rem);font-weight:600;cursor:pointer}
.usu-voltar[hidden]{display:none}
.usu-x{grid-column:3;justify-self:end;min-width:44px;min-height:44px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);font-size:var(--f-title2,1.375rem);line-height:1;cursor:pointer}
.usu-x:active,.usu-voltar:active{transform:scale(.94);opacity:.8}
.usu-corpo{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:16px 20px 28px;display:flex;flex-direction:column;gap:14px}
.usu-texto{margin:0;font-size:var(--f-subhead,0.9375rem);line-height:var(--lh-subhead,1.25rem);color:var(--label2,#6B5A4C)}
.usu-dica{margin:0;font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.usu-nota{margin:0;padding:10px 12px;border-radius:var(--r-ctl,12px);background:color-mix(in srgb,var(--sys-blue,#0088FF) 10%,transparent);font-size:var(--f-footnote,0.8125rem);line-height:1.45}
.usu-nota.perigo{background:color-mix(in srgb,var(--sys-red,#FF383C) 12%,transparent);color:var(--ink-red,#B42318);font-weight:600}
.usu-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.usu-abas{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--fill,rgba(90,65,45,.08))}
.usu-abas button{flex:1;min-height:40px;border:0;border-radius:11px;background:transparent;color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer}
.usu-abas button[aria-selected=true]{background:var(--surface,#fff);box-shadow:0 2px 7px rgba(35,29,20,.1)}
.usu-barra{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.usu-busca{flex:1 1 220px;display:block}
.usu-busca input,.usu-campo input{box-sizing:border-box;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--sep,rgba(58,42,30,.18));border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:inherit;font:inherit;font-size:var(--f-body,1.0625rem)}
.usu-busca input:focus-visible,.usu-campo input:focus-visible{outline:3px solid color-mix(in srgb,var(--sys-blue,#0088FF) 45%,transparent);outline-offset:1px}
.usu-btn{box-sizing:border-box;min-height:44px;padding:12px 20px;border:0;border-radius:var(--r-ctl,12px);display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:var(--f-callout,1rem);font-weight:650;cursor:pointer;background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E);transition:transform .12s ease,opacity .12s ease,background-color .2s ease}
.usu-btn.primario{background:var(--on-green,#257f37);color:#fff}
.usu-btn.perigo{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#B42318)}
.usu-btn:active:not(:disabled){transform:scale(.97);opacity:.88}
.usu-btn:disabled{opacity:.5;cursor:default}
.usu-btn.is-loading{opacity:.85;cursor:progress}
.usu-btn.is-loading::before,.usu-chave.is-loading::after{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:usu-gira .7s linear infinite}
.usu-btn.is-ok{background:var(--sys-green,#34C759)!important;color:#fff!important}
.usu-btn.is-ok::before{content:"✓";font-weight:800}
.usu-btn.is-erro{background:var(--sys-red,#FF383C)!important;color:#fff!important;animation:usu-treme .32s}
.usu-btn:focus-visible,.usu-pessoa:focus-visible,.usu-chave:focus-visible,.usu-abas button:focus-visible,.usu-papel:focus-within{outline:3px solid var(--ink-blue,#1E6EF4);outline-offset:2px}
.usu-recado{margin:0;font-size:var(--f-subhead,0.9375rem);font-weight:600;line-height:1.4}
.usu-recado:empty{display:none}
.usu-recado.erro{color:var(--ink-red,#B42318)} .usu-recado.ok{color:var(--ink-green,#1C7A36)}
.usu-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.usu-pessoa{box-sizing:border-box;width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 16px;gap:12px;align-items:center;min-height:72px;padding:12px 14px;border:0;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:0 2px 10px rgba(41,32,17,.06);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .12s ease}
.usu-pessoa:active{transform:scale(.99)}
.usu-pessoa.desligada{opacity:.6}
.usu-pessoa-txt{min-width:0;display:flex;flex-direction:column;gap:2px}
.usu-pessoa-txt b{font-size:var(--f-body,1.0625rem);font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usu-pessoa-txt small{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usu-seta{font-size:var(--f-title3,1.25rem);color:var(--label3,#8A7666)}
.usu-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,var(--sys-blue,#0088FF),var(--sys-indigo,#6155F5));color:#fff;font-weight:750;font-size:var(--f-subhead,0.9375rem)}
.usu-avatar.grande{width:56px;height:56px;font-size:var(--f-title3,1.25rem);flex:none}
.usu-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.usu-chips:empty{display:none}
.usu-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border-radius:var(--r-pill,999px);background:var(--fill2,rgba(90,65,45,.12));font-size:var(--f-caption1,0.75rem);font-weight:700}
.usu-chip.azul{background:color-mix(in srgb,var(--sys-blue,#0088FF) 16%,transparent);color:var(--ink-blue,#1E6EF4)}
.usu-chip.laranja{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#9A4A00)}
.usu-chip.verde{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1C7A36)}
.usu-chip.cinza{background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.usu-cartao{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08))}
.usu-cartao-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.usu-cartao-txt b{font-size:var(--f-body,1.0625rem)}
.usu-cartao-txt small{font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C)}
/* chave liga-desliga no desenho do iOS (51 x 31) */
.usu-chave{flex:none;position:relative;width:51px;height:31px;min-height:31px;margin:6px 0;padding:0;border:0;border-radius:16px;background:var(--fill3,rgba(120,120,128,.24));cursor:pointer;transition:background-color .2s ease}
.usu-chave::before{content:"";position:absolute;inset:-7px -2px}
.usu-chave span{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.16);transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.usu-chave[aria-checked=true]{background:var(--sys-green,#34C759)}
.usu-chave[aria-checked=true] span{transform:translateX(20px)}
.usu-chave:active span{width:31px}
.usu-chave[aria-checked=true]:active span{transform:translateX(16px)}
.usu-chave:disabled{opacity:.5;cursor:default}
.usu-chave.is-loading span{opacity:.6}
.usu-chave.is-loading::after{position:absolute;top:7px;left:17px}
.usu-linha-chave{display:flex;align-items:center;gap:12px;min-height:52px;padding:4px 0;border-bottom:1px solid var(--separator,rgba(58,42,30,.1))}
.usu-linha-chave:last-child{border-bottom:0}
.usu-linha-chave>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.usu-linha-chave b{font-size:var(--f-body,1.0625rem);font-weight:600}
.usu-linha-chave small{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.4}
.usu-dif{font-style:normal;color:var(--ink-orange,#A84300);font-weight:900} /* 1.72.0: texto com a tinta laranja (o laranja do sistema como letra não passa 3:1) */
.usu-form{display:flex;flex-direction:column;gap:14px}
.usu-form.linha{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:10px}
.usu-form.linha .usu-campo{flex:1 1 180px}
.usu-form.linha .usu-recado{flex-basis:100%}
.usu-campo{display:flex;flex-direction:column;gap:6px;font-size:var(--f-subhead,0.9375rem);font-weight:600}
.usu-sem-borda{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:14px}
.usu-form fieldset:not(.usu-sem-borda){margin:0;padding:12px 14px;border:0;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08))}
.usu-form legend{float:left;width:100%;margin:0 0 8px;padding:0;font-size:var(--f-headline,1.0625rem);font-weight:700}
.usu-form legend+*{clear:both}
.usu-papeis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.usu-papeis legend{grid-column:1/-1}
.usu-papel{position:relative;display:flex;flex-direction:column;gap:3px;min-height:64px;padding:10px 12px 10px 38px;border-radius:var(--r-ctl,12px);background:var(--surface,#fff);cursor:pointer;transition:transform .12s ease,box-shadow .16s ease}
.usu-papel:active{transform:scale(.98)}
.usu-papel input{position:absolute;left:12px;top:13px;width:18px;height:18px;margin:0;accent-color:var(--sys-blue,#0088FF)}
.usu-papel b{font-size:var(--f-subhead,0.9375rem)}
.usu-papel small{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.35}
.usu-papel.on{box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)}
.usu-grupo h4{margin:12px 0 2px;font-size:var(--f-footnote,0.8125rem);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.usu-mais{border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08));padding:0 14px}
.usu-mais>summary{min-height:48px;display:flex;align-items:center;font-weight:650;cursor:pointer}
.usu-mais .usu-areas{background:transparent;padding:0 0 12px}
.usu-acoes{display:flex;flex-wrap:wrap;gap:10px}
.usu-acoes .usu-btn{flex:1 1 180px}
.usu-acoes.coluna{flex-direction:column}
.usu-acoes.coluna .usu-btn{flex:none;width:100%}
/* Salvar só gruda embaixo quando tem mudança para salvar (no convite, sempre); fundo sólido para o texto de trás não
   aparecer através do botão. */
.usu-acoes.fixo{margin:0}
.usu-acoes.fixo.sujo,form[data-usu-form=convite] .usu-acoes.fixo{position:sticky;bottom:-28px;z-index:1;margin:0 -20px;padding:12px 20px 16px;background:linear-gradient(to top,var(--vidro-solido,var(--surface,#fff)) 72%,transparent)}
.usu-ficha-topo{display:flex;align-items:center;gap:14px}
.usu-ficha-topo b{display:block;font-size:var(--f-body,1.0625rem);word-break:break-all}
.usu-ficha-topo small{display:block;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.45}
.usu-link-caixa{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.usu-link-caixa[hidden]{display:none}
.usu-link-caixa .usu-dica{flex-basis:100%}
.usu-link-caixa input{flex:1 1 240px;min-height:44px;padding:0 12px;border:1px solid var(--sep,rgba(58,42,30,.18));border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:inherit;font:inherit;font-size:var(--f-footnote,0.8125rem)}
.usu-resultado{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:12px 0}
.usu-resultado h3{margin:0;font-size:var(--f-title2,1.375rem)}
.usu-resultado .usu-link-caixa,.usu-resultado .usu-acoes{width:100%}
.usu-ok{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--sys-green,#34C759);color:#fff;font-size:var(--f-title2,1.375rem);font-weight:800}
.usu-historico h3{margin:4px 0 8px;font-size:var(--f-headline,1.0625rem)}
.usu-registro{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.usu-registro li{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--separator,rgba(58,42,30,.1));font-size:var(--f-subhead,0.9375rem);line-height:1.4}
.usu-registro li.negada span{color:var(--ink-red,#B42318)}
.usu-registro time{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);font-variant-numeric:tabular-nums}
.usu-registro small{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.usu-registro .usu-mais-txt{display:block}
.usu-vazio{display:flex;flex-direction:column;gap:12px;align-items:stretch;padding:24px 0}
/* 1.74.0 (revisão G1): no cartão largo do computador o convite virava um botão verde de 1260 px de um lado ao outro;
   o bloco tem largura de leitura e o botão fica do tamanho do polegar e do olho */
.hcar-cartao .usu-vazio{max-width:34rem}
@media (max-width:640px){
  .usu-fundo{padding:0;align-items:stretch}
  .usu-painel{width:100%;height:100%;max-height:none;border-radius:0;padding-top:env(safe-area-inset-top)}
  .usu-topo{grid-template-columns:minmax(44px,auto) minmax(0,1fr) 44px;padding:0 8px}
  .usu-topo h2{max-width:none}
  .usu-corpo{padding:14px 16px calc(24px + env(safe-area-inset-bottom))}
  .usu-acoes.fixo.sujo,form[data-usu-form=convite] .usu-acoes.fixo{margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .usu-registro li{grid-template-columns:1fr;gap:2px}
  .usu-papeis{grid-template-columns:1fr}
}
/* 1.72.0 (auditoria de design 1720): no app as peças nativas somem com a folha aberta (web/folha.js). A folha começa abaixo
   da barra de status (web/folha.css, --folha-topo) e o fim da lista fica acima do indicador de início (--folha-base). */
html.app-nativo .usu-painel{padding-top:0}
html.app-nativo .usu-corpo{padding-bottom:calc(var(--folha-base,env(safe-area-inset-bottom,0px)) + 8px)}
body.dark .usu-fundo{background:rgba(0,0,0,.45)}
body.dark .usu-pessoa,body.dark .usu-papel,body.dark .usu-abas button[aria-selected=true]{background:var(--surface2,#2C2A27)}
body.dark .usu-busca input,body.dark .usu-campo input,body.dark .usu-link-caixa input{background:var(--surface2,#2C2A27);border-color:rgba(255,255,255,.12)}
@media (prefers-reduced-transparency:reduce){.usu-painel{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}body.dark .usu-painel{background:var(--surface,#22201E)}}
@media (prefers-reduced-motion:reduce){.usu-fundo,.usu-painel,.usu-btn.is-erro{animation:none}.usu-chave,.usu-chave span,.usu-btn,.usu-pessoa,.usu-papel{transition:none}}
@keyframes usu-gira{to{transform:rotate(360deg)}}
@keyframes usu-treme{25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
@keyframes usu-entra{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes usu-aparece{from{opacity:0}to{opacity:1}}

/* 1.74.0 (Philippe, 03/10/2026), segunda rodada do carrossel: A FICHA E O CONVITE EM CARTÕES (web/usuarios.js,
   web/hub-carrossel.js). Cada assunto é um cartão da faixa (.usu-car > .usu-cartao-faixa); a faixa ocupa a altura que
   sobra na folha e cada cartão rola por dentro; o botão de salvar e o resumo ficam embaixo, fora da faixa, sempre à
   vista. Sem a peça do carrossel carregada, os cartões ficam um embaixo do outro e a folha rola, como antes. */
.usu-car{display:flex;flex-direction:column;gap:14px;min-width:0}
.usu-form-faixa{flex:1 1 auto;min-height:0}
.usu-corpo:has(.usu-car.hcar){overflow:hidden}
.usu-car.hcar{flex:1 1 0;min-height:11rem}
.usu-cartao-faixa{box-sizing:border-box;min-width:0;margin:0;padding:12px 14px;border:0;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08));display:flex;flex-direction:column;gap:10px}
.usu-car.hcar>.usu-cartao-faixa{min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;overscroll-behavior-y:contain}
.usu-cartao-faixa>*{flex:none}
.usu-cartao-faixa>legend{float:left;width:100%;margin:0;padding:0;font-size:var(--f-headline,1.0625rem);font-weight:700}
.usu-cartao-faixa>legend+*{clear:both}
/* 04/10/2026 (a dupla checagem): o título do cartão do carrossel tem o mesmo tamanho em toda tela (o título 3 da casa) */
.usu-cartao-faixa>h3{margin:0;font-size:var(--f-headline,1.0625rem)}
.hcar-expande>.usu-cartao-faixa.hcar-cartao:not(.hcar-grande)>h3{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25)}
.usu-cartao-faixa .usu-grupo h4{margin:6px 0 2px}
.usu-cartao-faixa:disabled{opacity:.72}
.usu-quem .usu-cartao-txt{flex:none;gap:2px;padding-top:4px}
/* o pé: o resumo do que vai ser gravado e o botão, sempre à vista */
.usu-acoes.fixo.usu-pe,form[data-usu-form=convite] .usu-acoes.fixo.usu-pe{position:static;margin:0;padding:0;background:none;flex-direction:column;flex-wrap:nowrap;gap:8px}
.usu-pe .usu-btn{flex:none;width:100%}
.usu-resumo{margin:0;font-size:var(--f-footnote,0.8125rem);line-height:1.35;color:var(--label2,#6B5A4C);text-align:center}
body.dark .usu-cartao-faixa{background:var(--fill,rgba(255,255,255,.08))}
@media (min-width:641px){
  .usu-pe{align-items:center}
  .usu-pe .usu-btn{width:auto;min-width:16rem}
}

/* 1.74.0 (Philippe, 04/10/2026), conteúdo primeiro: USUÁRIOS E PERMISSÕES NA TELA (web/usuarios.js, st.naTela). Para o
   gestor a folha virou uma seção das Configurações: sem véu, sem o topo da folha e sem rolagem no corpo; os cartões têm o
   desenho dos cartões das outras seções e a altura da faixa. O salvar, o convidar e o voltar moram na barra de baixo. */
.usu-na-tela{min-width:0}
.usu-na-tela .usu-topo{display:none}
.usu-na-tela .usu-tela .usu-corpo{display:block;flex:none;padding:0;overflow:visible}
.usu-na-tela .usu-car.hcar{flex:none;min-height:0}
.usu-na-tela .usu-cartao-faixa,.usu-na-tela .usu-form fieldset.usu-cartao-faixa{padding:1.25rem;border-radius:1.5rem;background:var(--settings-surface,rgba(255,255,255,.74));box-shadow:0 5px 22px rgba(50,35,22,.06)}
body.dark .usu-na-tela .usu-cartao-faixa,body.dark .usu-na-tela .usu-form fieldset.usu-cartao-faixa{background:var(--settings-surface,rgba(49,43,37,.9))}
.usu-na-tela .usu-pe-tela{margin:0}
.usu-na-tela .usu-resumo{text-align:left}

/* 1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas; requisitos B1, B4, B6 e B7): A FOLHA NO MESMO DESENHO DA SEÇÃO.
   Quem cuida de pessoas sem ser gestor abre Usuários numa folha por cima da tela (web/usuarios.js). Ela tinha o voltar e
   o título em cima, as abas, as fichas dos cartões, cartões que rolavam por dentro e o pé com o botão de salvar. Agora é
   uma janela (web/hub-janela.js): em cima só o título e o Fechar; a faixa de cartões na altura que sobra, sem rolar (o
   que não cabe abre no cartão grande); e a barra de baixo dentro da folha. A altura do cartão vem desta coluna.
   O painel deixa de ser vidro (o conteúdo não é camada funcional; vidro fica na barra) e, sem o filtro, o cartão grande
   (position fixed) toma a tela inteira em vez de ficar preso dentro do painel. */
.usu-fundo .usu-painel{position:relative;background:var(--bg,#f5f2ec);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:transparent}
.usu-fundo .usu-topo{grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);min-height:3.5rem;border-bottom:0}
.usu-fundo .usu-corpo{overflow:hidden;gap:0;padding:.125rem 1rem calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + 1.75rem)}
.usu-fundo .usu-form-faixa{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:0}
.usu-fundo .usu-car.hcar{flex:1 1 0;min-height:0}
.usu-fundo .usu-painel .usu-car.hcar.hcar-tela:not(.hcar-agrupa)>.hcar-item{height:auto;max-height:none;align-self:stretch}
.usu-fundo .usu-corpo .hcar-pe{flex:none}
.usu-fundo .usu-cartao-faixa,.usu-fundo .usu-form fieldset.usu-cartao-faixa{padding:1rem}
.usu-fundo .usu-pe-tela{margin:0}
.usu-fundo .usu-resumo{text-align:left}
@media (min-width:761px){.usu-fundo .usu-corpo{padding-bottom:calc(var(--bf-barra,4rem) + 1.5rem)}}

/* /settings.css */
/* As preferências de apresentação são definidas em código. */
#cfgv{max-width:1160px;margin:0 auto;padding-bottom:32px;--settings-muted:#665e54;--settings-surface:rgba(255,255,255,.74);--settings-well:rgba(255,255,255,.82);--settings-ok:#286b35;--settings-error:#aa242d}
#cfgv .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-platforms{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.settings-panel{padding:24px;margin:0 0 18px;border:0;border-radius:24px;background:var(--settings-surface);box-shadow:0 5px 22px rgba(50,35,22,.06);min-width:0}.settings-grid>.settings-panel{margin-bottom:0}.settings-grid{margin-bottom:20px}.settings-panel h2{font-size:calc(1.3125rem * var(--dt));font-weight:650;letter-spacing:-.02em;margin:0 0 20px}.settings-panel h2+.settings-note{margin-top:-8px}
.settings-nav{display:flex;align-items:center;gap:18px;text-align:left;color:var(--text);cursor:pointer;min-height:116px}.settings-nav>span:nth-child(2){flex:1;min-width:0}.settings-nav b{display:block;font-size:calc(1.125rem * var(--dt))}.settings-nav small{display:block;font-size:calc(0.875rem * var(--dt));color:var(--settings-muted);line-height:1.5;margin-top:5px}.settings-symbol{font-size:calc(1.5625rem * var(--dt));width:42px;min-width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:#553c2e;background:rgba(93,65,43,.065)}
.settings-note{color:var(--settings-muted);font-size:calc(0.875rem * var(--dt));line-height:1.55;margin:14px 0}.settings-field{margin:0 0 18px}.settings-field>label{display:block;font-size:calc(0.875rem * var(--dt));font-weight:600;margin-bottom:9px;line-height:1.45}.settings-inputline{display:flex;gap:8px;align-items:center;min-width:0}.settings-inputline input{width:100%;min-width:0;box-sizing:border-box;min-height:48px;padding:12px 14px;background:var(--settings-well);border:0;border-radius:13px;box-shadow:0 2px 9px rgba(44,31,23,.055);font:inherit;font-size:calc(1rem * var(--dt));color:var(--text);text-overflow:ellipsis}.settings-inputline input::placeholder{color:var(--settings-muted);opacity:1;font-size:calc(0.875rem * var(--dt))}.settings-inputline input:focus-visible{outline:2px solid var(--settings-muted);outline-offset:3px;box-shadow:0 0 16px rgba(77,121,83,.13)}.settings-inputline input[aria-invalid=true]{box-shadow:0 0 0 1px var(--settings-error)}.settings-inputline input:disabled{opacity:.7}
.settings-fieldfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;margin-top:4px}.settings-state{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--settings-muted);line-height:1.4;min-width:0;overflow-wrap:anywhere}.settings-state.saved{color:var(--settings-ok)}.settings-state.saved::before{content:'✓ ';}.settings-state.error{color:var(--settings-error)}.settings-state.saving{display:inline-flex;gap:7px;align-items:center}.settings-state.saving::before{content:'';width:12px;height:12px;flex:none;border:2px solid rgba(97,72,46,.16);border-top-color:currentColor;border-radius:50%;animation:settings-save .8s linear infinite}.settings-fieldactions{display:flex;flex-wrap:wrap;justify-content:flex-end}.settings-fieldactions button,.settings-remove,.settings-add{border:0;background:transparent;color:#62503f;min-height:44px;padding:8px;font-size:calc(0.8125rem * var(--dt));cursor:pointer}.settings-remove{flex:none}.settings-add{width:100%;background:rgba(98,76,54,.06);border-radius:12px;font-weight:600;font-size:calc(0.875rem * var(--dt));margin-bottom:14px}.settings-add:disabled{opacity:.45;cursor:default}.settings-unit{display:flex;gap:4px;background:rgba(74,55,39,.055);border-radius:16px;padding:4px;width:fit-content;margin:0 auto 24px}.settings-unit button{border:0;min-height:44px;min-width:156px;padding:10px 20px;font:inherit;font-size:calc(0.9375rem * var(--dt));border-radius:12px;background:transparent;color:var(--text);cursor:pointer}.settings-unit button[aria-pressed=true]{background:var(--settings-well);box-shadow:0 2px 8px rgba(40,25,15,.08);font-weight:600}.settings-credentials summary{min-height:44px;display:list-item;align-content:center;font-size:calc(0.875rem * var(--dt));color:var(--settings-muted);cursor:pointer}.settings-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:10px}.settings-facts p{margin:0 0 15px;font-size:calc(0.875rem * var(--dt));line-height:1.5}.settings-facts b,.settings-facts span{display:block}.settings-facts span{margin-top:5px;color:var(--settings-muted)}
body.dark #cfgv{--settings-muted:#cfc3b7;--settings-surface:rgba(49,43,37,.9);--settings-well:#39332d;--settings-ok:#94d69c;--settings-error:#ffb0b4}body.dark .settings-fieldactions button,body.dark .settings-remove,body.dark .settings-add,body.dark .settings-symbol{color:#ebd5c1}body.dark .settings-symbol{background:#453a30}
@keyframes settings-save{to{transform:rotate(360deg)}}
@media(max-width:1000px){.settings-platforms{grid-template-columns:1fr}.settings-platforms .settings-panel{max-width:none}.settings-facts{grid-template-columns:1fr}}
@media(max-width:600px){.settings-grid{grid-template-columns:1fr}.settings-panel{padding:20px;border-radius:20px}.settings-unit{width:100%;box-sizing:border-box}.settings-unit button{min-width:0;flex:1;padding:10px}.settings-nav{min-height:110px}}
@media(prefers-reduced-motion:reduce){.settings-state.saving::before{animation:none}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){#cfgv{--settings-surface:#fff;--settings-well:#f4f1ed}body.dark #cfgv{--settings-surface:#302b25;--settings-well:#403831}.settings-inputline input:focus-visible{outline:3px solid currentColor}}

/* 1.28.0: modo por plataforma e chave de pedidos simulados */
.settings-mode{margin:6px 0 14px;padding-top:10px;border-top:1px solid rgba(74,55,39,.12)}.settings-mode .settings-unit,.settings-panel>.settings-unit{margin:6px 0 10px}.settings-mode .settings-note b{color:var(--text)}

/* 1.42.0: painel do Widget do iFood. Os passos numerados existem porque quem preenche isto vai e volta
   entre duas telas do iFood, e a ordem importa: sem cadastro nao ha codigo, sem codigo nao ha chat. */
.settings-passos{margin:8px 0 14px;padding-left:20px;display:grid;gap:8px}
.settings-passos li{line-height:1.45}
.settings-passos li b{display:block}
.settings-passos li span{display:block;opacity:.78;font-size:.92em}
.settings-widgetsub{margin:14px 0 6px;font-size:.95em;opacity:.85}
.settings-widgetloja{margin-bottom:6px}
.settings-widgetlojanome{display:block;font-size:.88em;opacity:.7;margin-bottom:2px}
.settings-toggle{padding:8px 14px;border-radius:10px;cursor:pointer;border:1px solid rgba(128,128,128,.35);background:transparent;color:inherit;font:inherit}
.settings-toggle[aria-pressed="true"]{background:#22B14C;border-color:#22B14C;color:#fff}
/* 1.44.0: o seletor de tamanho do texto. Seis opcoes nao cabem numa faixa segmentada de largura fixa,
   e cada botao mostra o proprio tamanho: quem escolhe ve a amostra antes de aplicar. */
.settings-texto{display:flex;flex-wrap:wrap;gap:8px;width:100%;box-sizing:border-box}
.settings-texto button{display:inline-flex;align-items:baseline;gap:8px;flex:1 1 auto;min-width:130px;min-height:var(--tap,44px);justify-content:center}
.settings-texto button span{font-weight:700;line-height:1}

/* 1.47.0: Configurações > Celular e notificações */
.settings-celular-aparelho{display:flex;flex-direction:column;gap:8px}
.settings-celular-niveis,.settings-celular-acoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.settings-celular-niveis .settings-toggle{min-width:0}
.settings-celular-novo{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px}
.settings-celular-novo label{display:flex;flex-direction:column;gap:4px;font-size:calc(0.8125rem * var(--dt));color:var(--label2,#6b6b6b)}
.settings-celular-novo input,.settings-celular-novo select{min-width:160px;min-height:40px;padding:6px 10px;border-radius:10px;border:1px solid var(--sep-opaque,#d8d2cc);background:var(--bg-elev,#fff);color:inherit}
.settings-celular-token{margin:10px 0;padding:10px 12px;border-radius:12px;background:rgba(52,199,89,.12);border:1px solid rgba(52,199,89,.35)}
.settings-celular-token .code{display:block;word-break:break-all;margin:6px 0 8px;user-select:all;-webkit-user-select:all}
.settings-facts i{font-style:normal;opacity:.7}
/* Suporte por computador, sem expor credenciais locais. */
.support-window{width:min(1100px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:28px;border-radius:28px}.support-head{display:flex;align-items:center;gap:12px}.support-head>div{flex:1}.support-head h1{margin:0}.support-head p{margin:8px 0}.support-devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px}.support-devices label{display:grid;gap:6px;margin:12px 0}.support-devices select{width:100%;min-height:42px;border-radius:12px;padding:8px;border:1px solid var(--line, #ddd);font:inherit;background:var(--surface, #fff);color:inherit}.support-devices .acts{display:flex;flex-wrap:wrap;gap:8px}.support-modal{z-index:16000}

.hd-print-review{display:flex;gap:14px;align-items:center;padding:14px;border-bottom:1px solid #ddd}.hd-print-review input{width:22px;height:22px;flex-shrink:0}.hd-print-review span{overflow-wrap:anywhere}
/* 1.60.8: áreas de toque independentes da escala da letra; campos nativos cabem no celular. */
#cfgv .settings-toggle{min-height:44px;min-width:44px}
#cfgv input:not([type=checkbox]):not([type=radio]),#cfgv select{min-height:44px;min-width:0;max-width:100%;box-sizing:border-box}
/* 1.72.0 (auditoria de design 1720): os ícones das linhas são traços no estilo dos SF Symbols (web/settings.js, ICONES_CFG),
   na cor do texto; os títulos das seções no Title 3 da Apple (21 px ficava fora da escala) */
.settings-symbol{font-size:var(--f-title3,1.25rem);color:var(--label,#3A2A1E)}
.settings-symbol svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.settings-panel h2{font-size:var(--f-title3,1.25rem);line-height:var(--lh-title3,1.5625rem);font-weight:700}

/* 1.74.0 (Philippe, 03/10/2026): AS CONFIGURAÇÕES EM CARROSSEL (web/hub-carrossel.js). A tela inicial em grupos: no celular
   cada grupo é uma página do carrossel; no computador cada grupo é uma fileira que rola para o lado. O cartão grande traz
   ícone, nome, uma linha do que resolve e o estado, quando há. Dentro das seções, cada painel é um cartão da faixa. */
.settings-home{margin:0 0 20px}
.settings-grupo{min-width:0;margin:0 0 26px}
.settings-grupo-cab{margin:0 0 12px}
.settings-grupo-cab h2{margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt)));line-height:1.25;font-weight:700;letter-spacing:-.015em}
.settings-grupo-cab p{margin:2px 0 0;color:var(--settings-muted);font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt))));line-height:1.4}
.settings-grupo-itens{display:grid;gap:10px;min-width:0}
.settings-grupo-itens>.settings-panel{margin:0}
.settings-grupo-itens .settings-unit{width:100%;box-sizing:border-box}
.settings-grupo-itens .settings-unit button{min-width:0;flex:1;padding:10px 8px}
.settings-cartao{width:100%;font:inherit;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-rapida,.12s) ease-out}
.settings-cartao:active{transform:scale(var(--apertado-escala,.97))}
.settings-cartao:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}
.settings-cartao-texto{display:block;min-width:0}
.settings-cartao .settings-seta{color:var(--settings-muted);font-size:calc(1.25rem * var(--dt));line-height:1}
.settings-estado{display:inline-block;max-width:100%;margin-top:8px;padding:3px 9px;border-radius:999px;background:rgba(93,65,43,.075);color:var(--label,#3A2A1E);font-style:normal;font-size:var(--f-caption1,max(.6875rem,calc(.75rem * var(--dt))));font-weight:600;line-height:1.35;overflow-wrap:anywhere;box-sizing:border-box}
.settings-estado[hidden]{display:none}
body.dark .settings-estado{background:rgba(255,255,255,.1);color:var(--label,#F3EDE6)}
.settings-cartao.hc-card-alerta .settings-estado{background:rgba(255,141,40,.16);color:var(--ink-orange,#8a4b00)}
body.dark .settings-cartao.hc-card-alerta .settings-estado{color:#FFC98A}
/* celular: a página do grupo rola por dentro; os cartões ficam mais baixos para caberem cinco numa página. O vão entre as
   páginas é maior que a sangria da faixa, para o texto da página vizinha não aparecer cortado na beirada */
.settings-home.hcar-cel{--hcar-vao:2.5rem}
.settings-home.hcar>.settings-grupo{margin:0;padding:2px 2px 12px}
.settings-home.hcar-cel .settings-cartao{min-height:84px;padding:16px;gap:14px}
/* computador (segunda rodada, 03/10/2026): a mesma faixa de grupos do celular, com vários grupos à vista. Cada grupo é uma
   coluna (o nome, a frase e os cartões dele, com os painéis soltos embaixo); a coluna tem a altura que sobra na tela e rola
   por dentro, e a página não rola. A primeira rodada punha uma fileira por grupo e os painéis soltos numa sétima fileira,
   "Ajustes rápidos": dava 1,8 tela em 1366 x 820. */
.settings-home.hcar-pc{--hcar-vao:1.25rem}
.settings-home.hcar-pc .settings-cartao{min-height:88px;padding:14px 16px;gap:14px}
.settings-home.hcar-pc .settings-estado{margin-top:6px}
.settings-home.hcar-pc .settings-cartao b{font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)))}
.settings-home.hcar-pc .settings-cartao small{font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));line-height:1.4;margin-top:2px}
.settings-home.hcar-pc .settings-grupo-itens>.settings-panel{padding:20px}
.settings-home.hcar-pc .settings-grupo-itens>.settings-panel h2{font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));margin:0 0 12px}
.settings-home.hcar-pc .settings-grupo-itens .settings-note{margin:10px 0}
.settings-home.hcar-pc .settings-facts{grid-template-columns:1fr}
/* dentro das seções: cada painel é um cartão da faixa (a margem de baixo era da pilha) */
.settings-car>.settings-panel,.fiscal-car>.settings-panel,.hc.hcar>.settings-panel{margin:0}
.settings-car:not(.hcar)>.settings-panel,.fiscal-car:not(.hcar)>.settings-panel{margin:0 0 18px}
#cfgv .hcar-tela>.settings-panel{scrollbar-width:thin}
/* o cartão da faixa é mais estreito que a página: as listas de fatos ficam numa coluna só */
#cfgv .hcar-pc>.settings-panel .settings-facts{grid-template-columns:1fr}
@media (prefers-reduced-motion:reduce){.settings-cartao{transition:none}}
/* a seção em carrossel: a página não rola, e o respiro do fim da página some. 04/10/2026 (conteúdo primeiro, B1): o cabeçalho
   (título, frase, voltar e "Salvamento automático") saiu de cima dos cartões, e as regras dele saíram junto. */
#cfgv:has(.hcar-tela){padding-bottom:0}

/* 1.74.0 (Philippe, 03/10/2026), SEGUNDA RODADA DO CARROSSEL NAS CONFIGURAÇÕES. "Você pode incluir esse tipo de design em
   todos os outros menus de configuração, onde a gente desce com cards para baixo." Acessos, Computador da loja,
   Contestações, Taxas dos contratos, Tamanho do texto e as Configurações do gerente também viraram faixas de cartões; a
   tela inicial do computador é a mesma faixa de grupos do celular. O que segue é só o que essas telas precisam a mais. */
/* os três cartões da comanda: o bloco que cada módulo monta já vinha com moldura e título próprios (cartão dentro de
   cartão). Na faixa, a moldura e o título são os do cartão da faixa, iguais aos dos outros cartões; os de dentro somem. A
   faixa de um item só que o espaço de trabalho monta dentro do bloco deixa de ser uma caixa de rolagem, para não segurar o
   arrasto da faixa de fora. */
#cfgv .settings-comanda .hvw-workspace .hvw-card,#cfgv .settings-comanda .hc-card{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;margin:0;cursor:default}
#cfgv .settings-comanda .hvw-workspace .hvw-card:hover,#cfgv .settings-comanda .hvw-workspace .hvw-card:active{transform:none;box-shadow:none;border-color:transparent}
#cfgv .settings-comanda .hvw-card-header,#cfgv .settings-comanda [data-print-content]>h3{display:none}
#cfgv .settings-comanda .hvw-grid.hcar{overflow:visible!important;margin:0;padding:0;overscroll-behavior:auto;scroll-snap-type:none}
/* Taxas dos contratos: os campos de cada aplicativo; quando os dois cartões cabem lado a lado (computador), em duas colunas */
.settings-campos{display:grid;grid-template-columns:minmax(0,1fr);gap:0 18px}
#cfgv .hcar-pc.hcar-cabe>.settings-panel .settings-campos{grid-template-columns:repeat(2,minmax(0,1fr))}
/* a recuperação de senha em Acessos (web/senha-recuperacao.js): os campos com o mesmo desenho dos outros campos da tela */
#cfgv .rec-lbl{font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.45;color:var(--text);margin:14px 0 8px}
#cfgv .rec-in{display:block;width:100%;min-width:0;box-sizing:border-box;min-height:48px;padding:12px 14px;border:0;border-radius:13px;background:var(--settings-well);box-shadow:0 2px 9px rgba(44,31,23,.055);font:inherit;font-size:calc(1rem * var(--dt,1));color:var(--text);text-overflow:ellipsis}
#cfgv .rec-in::placeholder{color:var(--settings-muted);opacity:1;font-size:calc(.875rem * var(--dt,1))}
#cfgv .rec-in:focus-visible{outline:2px solid var(--settings-muted);outline-offset:3px}
#cfgv .rec-recado{margin:14px 0 0;color:var(--settings-ok)}
#cfgv .rec-recado.rec-recado-erro{color:var(--settings-error)}
#cfgv .rec-pedido{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:0;border-radius:14px;padding:12px 14px;margin:0 0 10px;background:rgba(255,141,40,.12)}
#cfgv .rec-pedido b{display:block;font-size:calc(.9375rem * var(--dt,1))}
#cfgv .rec-pedido span{font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));color:var(--settings-muted)}
#cfgv .rec-pedido .oacts{margin:0}
#cfgv .settings-panel>.oacts{margin-top:16px}
/* Tamanho do texto no celular estreito (320 px): duas opções por linha, em vez de oito linhas */
@media(max-width:360px){.settings-texto button{min-width:104px;padding-left:8px;padding-right:8px}}
#cfgv .rec-linha{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;gap:0 12px}
/* o plano do contrato é a única lista de escolha entre os campos: o mesmo desenho dos outros campos, e a linha inteira do cartão */
#cfgv .settings-inputline select{width:100%;min-height:48px;padding:12px 14px;border:0;border-radius:13px;background-color:var(--settings-well);box-shadow:0 2px 9px rgba(44,31,23,.055);font:inherit;font-size:calc(1rem * var(--dt,1));color:var(--text);text-overflow:ellipsis}
#cfgv .settings-inputline select:focus-visible{outline:2px solid var(--settings-muted);outline-offset:3px}
.settings-campos>.settings-field:has(select){grid-column:1/-1}
/* dentro dos cartões da faixa os campos e as listas de fatos ficam mais juntos: a linha de estado de cada campo (Salvo,
   Aguardando para salvar) continua com o lugar dela, só mais baixo, e mais cartões cabem na tela sem rolar por dentro */
.settings-car .settings-field{margin-bottom:6px}
.settings-car .settings-fieldfoot{min-height:22px;margin-top:3px}
.settings-car .settings-facts{gap:0 22px}
.settings-car .settings-facts p{margin-bottom:12px}
.settings-car .settings-tecnico+.settings-campos{margin-top:14px}

/* 1.74.0 (Philippe, 04/10/2026): CONTEÚDO PRIMEIRO NAS CONFIGURAÇÕES (Parte B de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md).
   "Os cards no carrossel são KING!" Acima dos cartões não fica nada (B1, B4): o título grande, a frase, o voltar, os
   seletores de loja e as fichas saíram (web/settings.js: o nome da seção vai para a pílula do topo; o resto, para a barra de
   baixo). A faixa usa a largura inteira da tela, como no Dashboard e nos Relatórios. O cartão não rola (B6): mostra o resumo
   e abre o cartão grande. */
#cfgv:has(.hcar-tela){max-width:none;margin-top:0;padding-top:0}
/* o resumo do cartão: os valores de agora, um por linha (o formulário abre no cartão grande) */
.settings-resumo .settings-facts{grid-template-columns:1fr;gap:0}
.settings-resumo .settings-facts p{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:2.75rem;box-sizing:border-box;margin:0;padding:.5rem 0;border-bottom:1px solid rgba(127,127,127,.16)}
.settings-resumo .settings-facts p:last-child{border-bottom:0}
.settings-resumo .settings-facts b{font-weight:500;color:var(--settings-muted);font-size:var(--f-subhead,calc(.9375rem * var(--dt,1)))}
.settings-resumo .settings-facts span{font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere;font-size:var(--f-subhead,calc(.9375rem * var(--dt,1)))}
/* de que loja é o cartão (a escolha da loja mora na barra de baixo) */
.settings-de-loja{margin-left:.375rem;font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));font-weight:600;color:var(--settings-muted);letter-spacing:0;white-space:nowrap}
.settings-acoes{display:flex;flex-wrap:wrap;gap:.5rem}
/* a tela inicial: o GRUPO é o cartão; as seções são mini cartões dentro dele e cabem sem rolar */
.settings-home.hcar>.settings-grupo{margin:0;padding:1.125rem;border-radius:1.5rem;background:var(--settings-surface);box-shadow:0 5px 22px rgba(50,35,22,.06);box-sizing:border-box}
.settings-home .settings-grupo-cab{margin:0 .125rem .75rem}
.settings-home .settings-grupo-itens{gap:.5rem}
.settings-home .settings-cartao,.settings-home.hcar-cel .settings-cartao,.settings-home.hcar-pc .settings-cartao{min-height:3.5rem;margin:0;padding:.5rem .75rem;gap:.75rem;border-radius:1rem;background:var(--settings-well);box-shadow:none}
.settings-home .settings-symbol{width:2.25rem;min-width:2.25rem;height:2.25rem;border-radius:.625rem}
.settings-home .settings-cartao b{font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));line-height:1.25}
.settings-home .settings-cartao small{margin-top:.0625rem;font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));line-height:1.35}
.settings-home .settings-estado,.settings-home.hcar-pc .settings-estado{margin-top:.25rem}
/* no cartão pequeno a linha do estado diz mais que a frase fixa; a frase volta no cartão grande. O :has() fica no próprio
   mini cartão e passa o valor por uma variável (docs/DESEMPENHO-2026-10-03.md: nada de etiqueta solta depois de :has()). */
.settings-home .settings-cartao:has(.settings-estado:not([hidden])){--cfg-frase:none}
.settings-home .settings-cartao .settings-cartao-texto small{display:var(--cfg-frase,block)}
.settings-home .settings-grupo.hcar-grande .settings-cartao{--cfg-frase:block}
.settings-home .settings-grupo-itens>.settings-panel,.settings-home.hcar-pc .settings-grupo-itens>.settings-panel{margin:0;padding:.75rem;border-radius:1rem;background:var(--settings-well);box-shadow:none}
.settings-home .settings-grupo-itens>.settings-panel h2,.settings-home.hcar-pc .settings-grupo-itens>.settings-panel h2{margin:0 0 .5rem;font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));line-height:1.25}
.settings-home .settings-grupo-itens>.settings-panel .settings-unit{margin:0}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): no tema escuro o trilho do segmento, dentro do painel da
   tela inicial, tinha a cor do painel, e o escolhido ("Manual", "Desligado") também: só o negrito dizia qual estava ligado.
   O trilho fica mais fundo e o escolhido volta a aparecer, como nas seções. */
body.dark .settings-home .settings-grupo-itens>.settings-panel .settings-unit{background:rgba(0,0,0,.26)}
.settings-home .settings-grupo-itens>.settings-panel .settings-note{margin:.5rem 0 0}
.settings-home .settings-grupo-itens>.settings-panel .btn{width:100%;box-sizing:border-box}
.settings-home .settings-acoes .btn{flex:1 1 9rem;width:auto}
/* o tamanho do texto: um passo por toque, na própria tela inicial */
.settings-cartao-linha{display:flex;align-items:stretch;gap:.375rem;min-width:0}
.settings-cartao-linha>.settings-cartao{flex:1;min-width:0}
.settings-passo{display:flex;gap:.25rem;flex:none}
.settings-passo button{display:grid;place-items:center;min-width:2.75rem;min-height:2.75rem;padding:0;border:0;border-radius:1rem;background:var(--settings-well);color:var(--label,#3A2A1E);font:inherit;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-rapida,.12s) ease-out}
.settings-passo button:active{transform:scale(var(--apertado-escala,.97))}
.settings-passo button:disabled{opacity:.38;cursor:default}
.settings-passo button:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}
.settings-passo button:first-child span{font-size:.8125rem}
.settings-passo button:last-child span{font-size:1.3125rem}
body.dark .settings-passo button{color:var(--label,#F3EDE6)}
/* as folhas da barra de baixo: a busca e a lista das seções, e o ponto da situação na lista dos cartões */
.cfg-busca{display:block;width:100%;box-sizing:border-box;min-height:2.75rem;margin:0 0 .75rem;padding:.5rem .875rem;border:1px solid rgba(127,127,127,.22);border-radius:.875rem;background:rgba(127,127,127,.08);color:inherit;font:inherit;font-size:calc(1rem * var(--dt,1))}
.cfg-busca:focus-visible{outline:.1875rem solid var(--bf-realce,#2F7CF6);outline-offset:.125rem}
.cfg-secao{display:block;min-width:0}
.cfg-secao b{display:block;font-weight:600}
.cfg-secao small{display:block;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));font-weight:400;line-height:1.35;opacity:.72;overflow-wrap:anywhere}
.cfg-luz{flex:none;width:.5625rem;height:.5625rem;border-radius:50%;background:var(--sys-green,#34c759)}
.cfg-luz[data-hsi-situacao="parado"]{background:var(--sys-red,#ff3b30)}
.cfg-luz[data-hsi-situacao="atencao"]{background:var(--sys-orange,#ff9500)}
.cfg-luz[data-hsi-situacao="desligada"]{background:var(--label3,#A89C92)}
@media (prefers-reduced-motion:reduce){.settings-passo button{transition:none}}
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela */
/* a linha do resumo que leva ao campo: tocar abre o cartão grande com ele em foco */
.settings-resumo [data-cfg-editar]{cursor:pointer}
.settings-resumo [data-cfg-editar]::after{content:"›";flex:none;margin-left:-.5rem;color:var(--settings-muted);font-weight:400}

/* /menu-media.css */
/* Fotos, identificação do produto e código PDV do cardápio. 1.74.0 (04/10/2026): a linha antiga do item
   (.mi.menu-visual-row) saiu; o item é um mini cartão e o desenho dele mora em web/cardapio-cartoes.css. */
#menuv{--settings-muted:#665e54;--settings-well:rgba(255,255,255,.86);--settings-ok:#286b35;--settings-error:#aa242d}
#menuv .mi-photo{width:88px;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:14px}
#menuv .mi-photo-space{width:88px;min-height:12px}
#menuv .mi-main{min-width:0}#menuv .mi-name{overflow-wrap:anywhere}
#menuv .mi-code{min-width:0}#menuv .mi-code .settings-field{margin:0}
#menuv .mi-code .settings-field>label{font-size:calc(0.8125rem * var(--dt));margin-bottom:6px;color:var(--settings-muted)}
#menuv .mi-code .settings-inputline input{min-height:44px;padding:9px 12px;font-size:calc(0.9375rem * var(--dt));border-radius:12px}
#menuv .mi-code .settings-fieldfoot{min-height:18px;flex-wrap:wrap;margin-top:5px}
#menuv .mi-code .settings-fieldactions{margin-left:auto}
#menuv .mi-code-value{display:block;font-size:calc(0.875rem * var(--dt));overflow-wrap:anywhere;color:var(--settings-muted)}
#menuv .mi-code-line{display:flex;align-items:center;gap:8px;min-height:44px}
#menuv .mi-code-line code{font-size:calc(0.9375rem * var(--dt));letter-spacing:.025em;user-select:all;overflow-wrap:anywhere;flex:1}
#menuv .mi-code-line button{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:12px;color:inherit;background:var(--settings-well);cursor:pointer}
#menuv .mi-code-line button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
#menuv .mi-code-caption{display:block;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--settings-muted);min-height:18px}
#menuv .mi-st{justify-self:end;display:flex;flex-direction:column;gap:6px}
.ai-menu-item.has-photo .ai-menu-item-heading{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;align-items:center}
.ai-menu-photo{width:92px;aspect-ratio:4/3;object-fit:cover;border-radius:14px}
.ai-menu-item.has-photo .ai-menu-progress{grid-column:2}
.rc .ph.has-original-photo{background:none;height:auto;max-height:none}
.rc .ph.has-original-photo img{display:block;width:100%;height:auto;max-height:180px;object-fit:contain;border-radius:14px;margin:0 auto}
body.dark #menuv{--settings-muted:#cfc3b7;--settings-well:#39332d;--settings-ok:#94d69c;--settings-error:#ffb0b4}
@media(max-width:600px){.ai-menu-item.has-photo .ai-menu-item-heading{grid-template-columns:72px minmax(0,1fr)}.ai-menu-photo{width:72px}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){#menuv{--settings-well:#f4f1ed}body.dark #menuv{--settings-well:#403831}}

/* /operations.css */
/* Conferência dos itens e autorização acima dos resultados do assistente. */
#pmodal{z-index:2200;isolation:isolate}
/* 1.30.4: a notificação fica ACIMA DE TUDO, sempre. Antes ela era 1000 e sumia atrás da janela de
   cancelamento (2200), do Cérebro (1260), do painel de filtros (1250), do login (2000) e da tela cheia do
   assistente (1400 e 1500). Aviso que a operação não vê é aviso que não existe: senha errada, pedido
   cancelado, ação recusada. O seletor por id vence qualquer regra de classe, inclusive as com !important,
   e o container continua sem capturar clique (pointer-events none), então não atrapalha nenhuma janela. */
#toasts{z-index:2147483000!important;pointer-events:none}
#toasts .toast{pointer-events:auto}
#pmodal #pc{max-height:calc(100dvh - 32px);overflow:auto}
#pc [data-pconfirm][disabled]{opacity:.65;cursor:progress}
#view-exp .e:not(.mini){display:flex;flex-direction:column;align-self:stretch}
#view-exp .e:not(.mini)>.acts{margin-top:auto;padding-top:12px;display:grid;grid-template-columns:88px 96px;justify-content:end;align-items:end;min-height:56px;gap:4px}
#view-exp .e>.acts .lnk{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
#view-exp .e>.acts [data-cancel]{grid-column:1;grid-row:1}
#view-exp .e>.acts [data-print]{grid-column:2;grid-row:1}
#view-exp .e .items.sm .fl{font-size:var(--f-title2,calc(1.375rem * var(--dt)));line-height:1.2;font-weight:700;overflow-wrap:anywhere}
#view-exp .e .items.sm .drink{font-size:calc(1.125rem * var(--dt));line-height:1.25}
#view-exp .e .items.sm .pzh{font-size:calc(0.9375rem * var(--dt))}
#view-exp .e .items.sm .comp,#view-exp .e .items.sm .obs{font-size:calc(1rem * var(--dt));line-height:1.3}
.e.mini .driver-helmet{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
.of-fields input[type=number]{width:100%;min-height:44px;border-radius:10px;padding:8px 10px;border:1px solid var(--sep);background:var(--surface);color:var(--label);font:inherit}
@media(max-width:760px){#view-exp .e .items.sm .fl{font-size:var(--f-title3,calc(1.25rem * var(--dt)))}}
/* O numero configurado e um limite; nunca comprime o card abaixo da conferencia. */
#view-exp .lane.c-pronto:not(.minilane) .col{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(224px,calc((100% - (var(--prontoCols,2) - 1) * 12px) / var(--prontoCols,2)))),1fr))}
@media(min-width:761px){
 #view-exp .lane:not(.minilane){min-width:264px}
 /* Busca em tela larga (cards completos nas faixas laterais): o mínimo da faixa Pronto não pode somar com os das laterais além da tela, senão aparece rolagem lateral. */
 #view-exp .lanes.full{grid-template-columns:minmax(264px,.75fr) minmax(520px,3.4fr) minmax(264px,.75fr) minmax(264px,.75fr)}
 #view-exp .lanes.full.five{grid-template-columns:minmax(264px,.75fr) minmax(500px,3fr) minmax(264px,.75fr) minmax(264px,.75fr) minmax(264px,.75fr)}
}
@media(max-width:760px){#view-exp .lane.c-pronto:not(.minilane) .col{grid-template-columns:minmax(0,1fr)}}
/* Tres destinos de accion; a selecao tem seu proprio prazo de inatividade. */
#selbar{align-items:center;gap:8px 16px;padding:12px 16px}
#selbar #selcount{font-size:calc(0.9375rem * var(--dt));margin-right:auto}
.bulk-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#selbar .bulk-actions>*{font:inherit;min-height:44px;border-radius:12px;margin:0;box-sizing:border-box}
#bulk-target{min-width:142px;padding:8px 32px 8px 12px;background-color:var(--surface);color:var(--label);border:1px solid var(--sep)}
#bulk-selection-note{font-size:calc(0.8125rem * var(--dt));line-height:1.35}
#bulk-selection-note:empty{display:none}
@media(max-width:560px){#selbar{margin:10px 12px 0;padding:12px}#selbar #selcount{flex-basis:100%}.bulk-actions{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:6px;width:100%}#selbar .bulk-actions>*{font-size:calc(0.875rem * var(--dt));padding-left:8px;padding-right:8px;min-width:0}#bulk-target{width:100%}}
/* Filtros em uma grade completa; o rodape nunca depende de rolagem. */
#order-filter-panel{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 24px));max-height:none;overflow:visible;padding:16px 20px;box-sizing:border-box} /* 1.72.0: 20 pt de margem (iPad e computador); no celular e no app é a folha de baixo (web/folha.css) */
#order-filter-panel .of-head{margin:0 0 12px;min-height:44px}
#order-filter-panel .of-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
#order-filter-panel .of-fields label{font-size:calc(0.875rem * var(--dt));line-height:calc(1.125rem * var(--dt));min-width:0;gap:4px;align-content:start}
#order-filter-panel select,#order-filter-panel input[type=number]{min-width:0;width:100%;height:44px;font-size:calc(0.875rem * var(--dt));padding:8px;box-sizing:border-box}
#order-filter-panel .of-count-controls{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:4px}
#order-filter-panel fieldset{margin:10px 0 0;padding:0;border:0;min-width:0}
#order-filter-panel legend{font-size:calc(0.875rem * var(--dt));font-weight:600;padding:0;margin-bottom:4px}
#order-filter-panel fieldset label{margin:0;gap:8px;padding:4px 6px;box-sizing:border-box;font-size:calc(0.875rem * var(--dt));line-height:calc(1.125rem * var(--dt));min-height:44px;overflow-wrap:anywhere}
#order-filter-panel fieldset input{flex-shrink:0;margin:0}
#order-filter-panel .of-platforms{display:flex;gap:16px;flex-wrap:wrap}
#order-filter-panel .of-platforms legend{float:left;align-self:center;margin:0 8px 0 0;padding-top:13px}
#order-filter-panel .of-flavor-section p{font-size:calc(0.8125rem * var(--dt));line-height:calc(1.0625rem * var(--dt));margin:0 0 6px;color:var(--sub)}
#order-filter-panel .of-flavors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;max-height:none;overflow:visible}
#order-filter-panel .of-flavors [hidden],#order-filter-panel .of-pages[hidden]{display:none}
#order-filter-panel .of-pages{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;font-size:calc(0.8125rem * var(--dt))}
#order-filter-panel .of-foot{margin-top:12px;gap:8px}
#order-filter-panel .of-foot .btn,#order-filter-panel .icon{min-height:44px;min-width:44px}
#order-filter-panel .of-foot .btn{flex:1}
@media(max-width:560px){#order-filter-panel{padding:12px}#order-filter-panel .of-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#order-filter-panel .of-flavors{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}#order-filter-panel .of-head{margin-bottom:8px}}

.of-time-hint{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));line-height:1.3;color:var(--sub);font-weight:400}

/* 1.42.0: o quadro do chat do iFood (web/ifood-widget.js). Altura fixa porque o widget e de terceiro e nao
   avisa quanto espaco quer; 460px cabe uma conversa sem o painel virar uma tela inteira. */
.ifw-caixa{margin-top:10px;border-radius:12px;overflow:hidden;background:rgba(128,128,128,.08);min-height:460px}
.ifw-quadro{width:100%;height:460px;border:0;display:block}
.ifw-falta{padding:14px}
.ifw-passos{margin:10px 0 12px;padding-left:20px;display:grid;gap:8px}
.ifw-passos li b{display:block}
.ifw-passos li span{display:block;opacity:.78;font-size:.92em}
.ifw-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#EA1D2C;color:#fff;font-size:max(0.6875rem, calc(0.625rem * var(--dt)));line-height:calc(1rem * var(--dt));text-align:center;font-weight:700}
#ifwbtn{position:relative}

/* /diagnostics.css */
/* Support stays visible while each diagnostic has its own readable card. */
.hub-diagnostic{--hd-ink:#292621;--hd-secondary:#66615a;--hd-glass:rgba(255,253,248,.94);--hd-soft:rgba(80,64,44,.065);--hd-green:#27633a;--hd-focus:#0566c8;box-sizing:border-box;width:min(1040px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:20px;border:0;border-radius:24px;background:var(--hd-glass);color:var(--hd-ink);font:0.9375rem/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:calc(0.9375rem * var(--dt));overflow:auto;box-shadow:0 18px 64px #21190f24;backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2)}
.hub-diagnostic::backdrop{background:rgba(27,24,19,.3);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.hub-diagnostic[open]:has(.hd-body){display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;padding:8px;background:transparent;box-shadow:none;overflow:hidden;backdrop-filter:none;-webkit-backdrop-filter:none}
.hub-diagnostic h2{font-size:calc(1.5rem * var(--dt));letter-spacing:-0.03125rem;line-height:1.2;margin:0}.hub-diagnostic h3{font-size:calc(1.3125rem * var(--dt));line-height:1.25;margin:0;letter-spacing:-0.021875rem}.hub-diagnostic h4{display:flex;align-items:center;gap:8px;font-size:calc(1rem * var(--dt));margin:0 0 10px}.hub-diagnostic p,.hub-diagnostic h3{overflow-wrap:anywhere}.hub-diagnostic p{margin:8px 0}.hub-diagnostic svg{width:24px;height:24px;flex:0 0 24px}
.hub-diagnostic button{box-sizing:border-box;min-height:44px;min-width:44px;font:600 0.875rem/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:calc(0.875rem * var(--dt));color:var(--hd-ink);background:var(--hd-soft);border:0;border-radius:13px;padding:11px 15px;cursor:pointer;touch-action:manipulation}.hub-diagnostic button:disabled{opacity:.5;cursor:default}.hub-diagnostic button:focus-visible,.hub-diagnostic .hd-body:focus-visible{outline:3px solid var(--hd-focus);outline-offset:2px}.hub-diagnostic button:not(:disabled):active{filter:brightness(.94)}
.hd-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.hd-head>[data-close]{font-size:calc(1.5625rem * var(--dt));font-weight:400;line-height:1;padding:8px}.hub-diagnostic .hd-eyebrow{color:var(--hd-secondary);font-size:calc(0.8125rem * var(--dt));font-weight:600;letter-spacing:0.009375rem;margin:0 0 4px}.hub-diagnostic:has(.hd-body)>.hd-head,.hub-diagnostic:has(.hd-body)>.hd-note,.hub-diagnostic:has(.hd-body)>.hd-actions,.hd-unit,.hd-limitations,.hd-loading{background:var(--hd-glass);border:0;border-radius:22px;box-shadow:0 5px 22px #21190f0f;backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2)}
.hub-diagnostic:has(.hd-body)>.hd-head{padding:16px 20px}.hd-note{padding:12px 16px;border-radius:15px;background:var(--hd-soft);overflow-wrap:anywhere}.hub-diagnostic:has(.hd-body)>.hd-note{margin:0;display:flex;align-items:center;gap:10px;min-height:44px;box-sizing:border-box;font-size:calc(0.875rem * var(--dt));padding:11px 18px}.hub-diagnostic:has(.hd-body)>.hd-note:before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--hd-secondary);opacity:.75}.hub-diagnostic[data-busy="true"]>.hd-note:before{width:14px;height:14px;flex-basis:14px;border:2px solid var(--hd-soft);border-top-color:var(--hd-green);background:transparent;animation:hd-checking .85s linear infinite}
.hub-diagnostic .hd-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;min-height:0;max-height:calc(100dvh - 240px);padding:2px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border-radius:22px}.hd-unit{min-width:0;padding:20px;display:flex;flex-direction:column;gap:0}.hd-card-head{display:flex;gap:12px;align-items:center;margin-bottom:4px}.hd-device{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:var(--hd-soft);color:var(--hd-green)}.hd-card-head .hd-dot{margin-left:auto}.hd-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 10px;background:#8e8e93}.hd-dot.good{background:#248a3d}.hd-dot.bad{background:#c54137}.hd-message{font-size:calc(0.9375rem * var(--dt))}.hd-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.hd-metrics>div{background:var(--hd-soft);border-radius:14px;padding:10px}.hd-metrics dt{font-size:calc(0.8125rem * var(--dt));color:var(--hd-secondary);line-height:1.3;min-height:34px}.hd-metrics dd{margin:3px 0 0;font-size:calc(1.6875rem * var(--dt));line-height:1.15;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-0.04375rem}.hd-source{font-size:calc(0.8125rem * var(--dt));color:var(--hd-secondary)}.hd-unit>.hd-recover{width:100%;margin-top:auto;background:var(--hd-green);color:#fff}.hd-unit>.hd-source:last-of-type{margin-bottom:14px}.hd-computer{grid-column:1/-1}.hd-hardware-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}.hd-hardware{min-width:0}.hd-hardware p{font-size:calc(0.875rem * var(--dt))}.hd-hardware button{margin-top:6px}.hd-network{display:grid;gap:3px;margin:9px 0;font-size:calc(0.875rem * var(--dt));overflow-wrap:anywhere}.hd-network span{color:var(--hd-secondary)}.hd-limitations,.hd-loading{grid-column:1/-1;margin:0!important;padding:12px 18px}
.hd-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.hub-diagnostic:has(.hd-body)>.hd-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin:0;padding:10px 12px}.hd-paging{display:flex;gap:8px;margin-right:auto}.hd-actions [data-refresh]{background:var(--hd-green);color:white}.hd-actions [data-page]{flex:0 0 auto}
[data-theme="dark"] .hub-diagnostic,body.dark .hub-diagnostic{--hd-ink:#f5f1e9;--hd-secondary:#ccc6bc;--hd-glass:rgba(38,37,34,.96);--hd-soft:rgba(245,237,222,.09);--hd-green:#477d53;--hd-focus:#80baff}.hub-diagnostic:focus{outline:none}
@media(max-width:700px){.hub-diagnostic h2{font-size:calc(1.375rem * var(--dt))}.hub-diagnostic .hd-body{grid-template-columns:1fr}.hd-hardware-grid{gap:16px}.hd-unit{padding:18px}.hd-actions [data-close]{display:none}}
@media(max-width:480px){.hub-diagnostic{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:18px}.hub-diagnostic[open]:has(.hd-body){padding:4px;gap:8px}.hub-diagnostic:has(.hd-body)>.hd-head{padding:14px 16px}.hub-diagnostic:has(.hd-body)>.hd-note{padding:10px 14px}.hub-diagnostic .hd-body{max-height:calc(100dvh - 310px);gap:8px}.hd-hardware-grid{grid-template-columns:1fr}.hub-diagnostic:has(.hd-body)>.hd-actions{display:grid;grid-template-columns:1fr 1fr;padding:8px;gap:6px}.hd-paging{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;margin:0}.hd-actions>button{min-width:0;padding-inline:9px}.hd-metrics>div{padding:10px 8px}}
@keyframes hd-checking{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hub-diagnostic *{animation:none!important;transition:none!important}}

/* 1.27.0: janela de diagnóstico sob o Cérebro (não modal): abaixo do ícone, acima do sistema, fechável por voz. */
.hub-diagnostic.hd-under-brain{position:fixed;left:50%;transform:translateX(-50%);top:var(--ws-dialog-top,calc(var(--ws-top,10px) + 118px));margin:0;width:min(960px,calc(100vw - 40px));max-height:calc(100dvh - var(--ws-dialog-top,calc(var(--ws-top,10px) + 118px)) - 20px);z-index:1200;box-shadow:0 20px 60px rgba(27,24,19,.28);border-radius:22px}
.hub-diagnostic.hd-under-brain .hd-body{max-height:calc(100dvh - var(--ws-dialog-top,calc(var(--ws-top,10px) + 118px)) - 200px)}
/* 1.27.0: com a resposta transitória do Cérebro visível, a janela desce para não ficar coberta. */
.hub-diagnostic.hd-under-brain{transition:top .25s ease}


/* Conferência é um formulário único, sem cartões soltos sobre o fundo. */
.hub-diagnostic.hub-print-resolution[open]:has(.hd-body){width:min(760px,calc(100vw - 24px));padding:22px;background:var(--hd-glass);box-shadow:0 18px 64px #21190f24;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:12px}
.hub-diagnostic.hub-print-resolution>.hd-head,.hub-diagnostic.hub-print-resolution>.hd-actions{padding:0;background:transparent;box-shadow:none;backdrop-filter:none}
.hub-diagnostic.hub-print-resolution>.hd-body{grid-template-columns:1fr;max-height:40dvh}
.hub-print-resolution [data-status]{padding:12px 14px;border-radius:14px;background:var(--hd-soft)}

/* /toolbars.css */
/* Uma medida para os controles das barras, incluindo o botao de menu. */
:root{--bar-control:44px;--bar-gap:8px;--bar-radius:12px}
header.top{height:auto;min-height:64px;padding:10px 12px;column-gap:12px;row-gap:8px;align-items:center}
header.top .left,header.top .right,header.top .ctxbtns,header.top .kdsbar{align-items:center;gap:var(--bar-gap)}
header.top .icon,header.top .ctxbtns .icon{width:var(--bar-control);height:var(--bar-control);min-width:var(--bar-control);min-height:var(--bar-control);padding:0;flex:none}
header.top #unitlabel,header.top #kstate-trigger,header.top .pstat.inbar .pst{height:var(--bar-control);min-height:var(--bar-control);display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border-radius:var(--bar-radius);line-height:1.2}
header.top #unitlabel{max-width:200px;overflow:hidden;text-overflow:ellipsis}
header.top #aibtn{min-height:var(--bar-control);padding:0 10px;align-items:center;justify-content:center}
header.top .subseg{margin:0;padding-block:0;align-items:center;min-height:var(--bar-control)}
header.top .subseg button{min-height:var(--bar-control);display:inline-flex;align-items:center;justify-content:center}
.tools,.selbar,.dfilters,.drange,.mhead,.ws-toolbar,.ws-toolbar-actions,.ws-pager,.ws-filters{align-items:center;gap:var(--bar-gap)}
.tools .btn,.tools .icon,.tools .search,.selbar .btn,.selbar select,.dfilters button,.dfilters select,.dfilters input,.drange input,.mhead .subseg button,.ws-toolbar button,.ws-filters button,.ws-filters select,.ws-filters input{min-height:var(--bar-control);box-sizing:border-box}
.tools .icon,.ws-toolbar .ws-icon,.ws-widget-tools .ws-icon{width:var(--bar-control);min-width:var(--bar-control);height:var(--bar-control);min-height:var(--bar-control)}
.ws-widget-footer .ws-btn,.ws-detail-actions .ws-btn{min-height:var(--bar-control)}
.dfilters .subseg,.mhead .subseg{display:inline-flex;align-items:center;padding-block:0;min-height:var(--bar-control);flex-wrap:wrap}
.dfilters .subseg button,.mhead .subseg button{display:inline-flex;align-items:center;justify-content:center}
.ws-composer{align-items:center;gap:var(--bar-gap)}
.ws-composer .ws-input{height:var(--bar-control);min-height:var(--bar-control);padding:0 0 0 12px;gap:8px;align-items:center}
.ws-composer .ws-icon,.ws-composer .ws-close{width:var(--bar-control);height:var(--bar-control);min-width:var(--bar-control);min-height:var(--bar-control);padding:10px;flex:none}
.ws-composer #aiinput{min-height:32px;line-height:1.25}
body.ai-workspace-on.ai-kds .top.ws-compact{padding:10px 12px;gap:8px;min-height:112px}
body.ai-workspace-on.ai-kds .top.ws-stacked{row-gap:8px}
@media(max-width:1000px){
 header.top:not(.ws-compact){display:flex;flex-wrap:wrap;gap:8px;min-height:64px}
 header.top:not(.ws-compact) .left{order:1;flex:1 1 auto;min-width:0;overflow:visible}
 header.top:not(.ws-compact) #aibtn{order:2;display:flex;flex:none}
 header.top:not(.ws-compact) .right{order:3;flex:1 1 100%;justify-content:flex-end;flex-wrap:wrap;margin-left:0}
 header.top .right,header.top .ctxbtns{gap:6px}
 body.ai-workspace-on.ai-kds header.top #aibtn{display:none}
 .dfilters,.drange,.tools,.selbar{flex-wrap:wrap}
}
@media(max-width:460px){
 header.top{margin-left:8px;margin-right:8px;width:calc(100% - 16px);padding-inline:10px}
 header.top #unitlabel{max-width:172px;padding-inline:10px}
 header.top .left{gap:6px}
 header.top .curview{max-width:36vw}
 .ws-composer .ws-input{gap:5px;padding-left:8px}
}
@media(prefers-reduced-motion:reduce){header.top,header.top *,.ws-composer *{transition:none!important}}

/* Escuta permanente tem estado visivel e o mesmo alvo dos controles da barra. */
#voice-wake{position:relative}
#voice-wake[data-listening="true"]::after{content:"";position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#168447;box-shadow:0 0 7px #16844770;animation:voice-wake-pulse 2s ease-in-out infinite}
#voice-wake[aria-pressed="false"]{opacity:.55}
@keyframes voice-wake-pulse{50%{box-shadow:0 0 0 4px #16844720}}
@media(prefers-reduced-motion:reduce){#voice-wake[data-listening="true"]::after{animation:none}}

#voice-wake[data-state="blocked"]::after{content:"";position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#b45309}

/* A identidade de homologacao acompanha a tela sem cobrir pedidos ou botoes. */
.environment-title{display:contents}body[data-environment="staging"] .environment-title{display:flex;flex-direction:column;justify-content:center;min-width:0}.environment-label{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));line-height:1.15;font-weight:700;color:var(--text);padding:2px 0;white-space:normal;max-width:116px}.environment-label[hidden]{display:none}body[data-environment="staging"] .environment-label::before{content:"";display:inline-block;width:6px;height:6px;background:var(--orange,#a54b00);border-radius:50%;margin-right:4px;vertical-align:1px}
@media(max-width:480px){.environment-label{max-width:78px;font-size:max(0.6875rem, calc(0.75rem * var(--dt)))}.environment-title{flex-shrink:1}}

/* /workspace-session.css */
/* Colecao de cards: foco detalhado ou grade central, sem laterais. */
#aiz.ws-root.ws-overview-mode,#aiz.ws-root.ws-tile-mode{position:fixed;inset:var(--ws-top,100px) 24px calc(18px + var(--ws-viewport-inset,0px));width:auto;max-width:none;height:auto;max-height:none;display:grid;grid-template-rows:minmax(0,1fr) auto;align-content:stretch;overflow:visible;transform:none;margin:0}
#aiz.ws-root.ws-overview-mode .ws-board,#aiz.ws-root.ws-tile-mode .ws-board{width:100%;max-width:none;height:100%;max-height:100%;min-height:0;margin:auto;display:flex;flex-direction:column;justify-content:center;gap:14px}
#aiz.ws-root .ws-toolbar{flex:none;width:100%;max-width:none;display:flex;flex-wrap:wrap;gap:10px}
#aiz.ws-root.ws-overview-mode .ws-grid,#aiz.ws-root.ws-tile-mode .ws-grid{display:grid;grid-template-columns:repeat(var(--ws-grid-columns,4),minmax(0,1fr));grid-template-rows:repeat(var(--ws-grid-rows,1),minmax(0,1fr));gap:16px;align-items:stretch;align-self:center;width:min(var(--ws-grid-width,100%),100%);max-width:none;margin:auto;min-height:0}
#aiz.ws-root.ws-overview-mode .ws-grid{height:auto;max-height:100%;flex:0 1 auto}
#aiz.ws-root.ws-tile-mode .ws-grid{height:100%;max-height:var(--ws-card-room,650px);flex:1 1 auto}
#aiz.ws-root.ws-overview-mode .ws-mini-card{position:relative;min-height:188px;max-height:280px;height:auto;padding:16px;gap:8px;border-radius:24px;text-align:left;cursor:pointer;overflow:hidden;box-sizing:border-box}
.ws-mini-card .e.mini{width:100%;padding:0;margin:0;border:0!important;background:none!important;box-shadow:none!important;min-height:0;flex:none}
.ws-mini-card .e.mini .mh{justify-content:flex-start}.ws-mini-card .e.mini .mh b{font-size:calc(1.625rem * var(--dt))}
.ws-mini-card .e.mini .order-meta{font-size:calc(1rem * var(--dt));line-height:1.3}.ws-mini-card .e.mini .order-badges{font-size:calc(0.875rem * var(--dt))}
.ws-mini-card .e.mini .ms{background:none;margin:5px 0;padding:0;font-size:calc(0.875rem * var(--dt));line-height:1.3;min-height:0;text-align:left}
.ws-mini-status{color:var(--ws-accent);font-size:calc(0.875rem * var(--dt));font-weight:650;margin:0}
.ws-mini-items{font-size:calc(1rem * var(--dt));line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ws-mini-card h2{font-size:calc(1.3125rem * var(--dt));line-height:1.25;margin:0}.ws-mini-card p{font-size:calc(0.9375rem * var(--dt));line-height:1.3;margin:0}.ws-mini-kind{font-size:calc(0.8125rem * var(--dt));color:var(--ws-secondary)}
.ws-mini-card .ws-metrics{grid-template-columns:1fr 1fr;gap:8px;margin:5px 0}.ws-mini-card .ws-metric{padding:0;background:none}.ws-mini-card .ws-metric strong{font-size:calc(1.5rem * var(--dt))}.ws-mini-card .ws-metric span{font-size:calc(0.875rem * var(--dt))}
.ws-mini-chart{display:flex;align-items:center;gap:8px;font-size:calc(0.875rem * var(--dt));color:var(--ws-secondary)}.ws-mini-chart svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6}
.ws-context-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:100%;pointer-events:auto}.ws-context-controls>.ws-btn{min-height:44px;font-size:calc(0.9375rem * var(--dt));padding:10px 14px}
.ws-selection-count{font-size:calc(0.9375rem * var(--dt));color:var(--ws-secondary)}.ws-selection-indicator{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;background:var(--ws-soft);display:grid;place-items:center;z-index:3;pointer-events:none}.ws-selection-indicator svg{width:18px;height:18px;stroke:transparent;fill:none;stroke-width:2.4}
.ws-selection-mode .ws-widget[aria-checked=true]{box-shadow:0 0 0 3px var(--ws-accent),var(--ws-shadow)!important}.ws-selection-mode .ws-widget[aria-checked=true]>.ws-selection-indicator{background:var(--ws-accent)}.ws-selection-mode .ws-widget[aria-checked=true]>.ws-selection-indicator svg{stroke:white}.ws-selection-mode .ws-widget{cursor:pointer}.ws-selection-mode .ws-widget>*:not(.ws-selection-indicator){pointer-events:none}
#aiz.ws-root.ws-focus-mode:not(.ws-empty):not(.ws-inline-mode):not(.ws-recipe-mode) .ws-board{align-self:center;justify-self:center;width:min(1100px,100%);height:auto;max-height:100%;display:flex;flex-direction:column;gap:14px}
#aiz.ws-root.ws-focus-mode:not(.ws-recipe-mode) .ws-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:100%;max-width:none;max-height:var(--ws-card-room,650px)}
#aiz.ws-root.ws-focus-mode:not(.ws-recipe-mode) .ws-widget{height:auto;max-height:var(--ws-card-room,650px)}
#aiz.ws-root .ws-detail-card{position:relative;min-height:0;padding:16px}
.ws-detail-card .ws-widget-title{font-size:calc(1.4375rem * var(--dt))}.ws-detail-card .ws-widget-header{flex:none;gap:10px;margin-bottom:10px;padding:0}.ws-detail-card .ws-widget-tools{gap:5px}
.ws-detail-card .ws-widget-body{min-height:0;flex:1 1 auto;overflow:hidden}.ws-detail-card .ws-order-detail{margin:0;width:100%;min-height:0}.ws-detail-card .ws-order-detail .oh{gap:8px;margin-bottom:8px}.ws-detail-card .ws-order-detail .oh .n{font-size:calc(1.75rem * var(--dt))}.ws-detail-card .ws-order-detail .oh .n svg{width:22px;height:22px}
.ws-detail-card .ws-order-detail .orow{margin:0 0 10px;gap:7px;font-size:calc(0.9375rem * var(--dt))}.ws-detail-card .ws-order-detail .orow b{font-size:calc(1rem * var(--dt))}.ws-detail-card .ws-order-detail .ocols{gap:14px}.ws-detail-card .ws-order-detail .oinfo{font-size:calc(0.9375rem * var(--dt));line-height:1.35}
.ws-detail-card .ws-detail-items .pn{font-size:calc(1.125rem * var(--dt))}.ws-detail-card .ws-detail-items .fl{font-size:calc(1.125rem * var(--dt));line-height:1.3}.ws-detail-card .ws-detail-items .pi{margin-bottom:10px}.ws-detail-card .ws-detail-items .drv{font-size:calc(0.9375rem * var(--dt));line-height:1.35}
.ws-detail-card .ws-order-actions{flex:none;padding:0;margin-top:10px}.ws-detail-card .ws-order-actions .oacts{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:6px;margin:0}.ws-detail-card .ws-order-actions .btn{min-height:44px;font-size:calc(0.875rem * var(--dt));line-height:1.25;padding:8px 10px;flex:1 1 auto;white-space:normal}
#aiz.ws-root.ws-tile-mode .ws-widget{height:100%;max-height:100%}#aiz.ws-root.ws-tile-mode .ws-detail-columns{grid-template-columns:1fr}.ws-search-empty{display:grid;justify-items:center;text-align:center;padding:24px 12px;gap:12px}.ws-search-empty>svg{width:48px;height:48px;stroke:var(--ws-accent);fill:none;stroke-width:1.4}.ws-search-empty h3,.ws-search-empty p{margin:0}
.ws-content-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;flex:none}.ws-content-pager .ws-icon{width:44px;height:44px;min-height:44px}.ws-content-pager span{font-size:calc(0.875rem * var(--dt));color:var(--ws-secondary);text-align:center}.ws-content-hidden{display:none!important}.ws-content-page{display:flow-root;min-width:0}
#aiz.ws-root .ws-widget-body.ws-paged-body{overflow:hidden!important;flex:1;min-height:0}.ws-paged-body .ws-detail-columns,.ws-paged-body .ws-comparison-pair{grid-template-columns:1fr}.ws-paged-body .ws-chart{max-height:220px}
@media(max-width:599px){#aiz.ws-root.ws-overview-mode,#aiz.ws-root.ws-tile-mode{left:16px;right:16px}.ws-context-controls>.ws-btn{flex:1;font-size:calc(0.875rem * var(--dt))}.ws-context-controls>.ws-btn svg{display:none}.ws-detail-card .ws-order-actions .btn{font-size:calc(0.875rem * var(--dt))}}

/* A regra de pedidos anterior tinha maior especificidade e criava uma linha implicita. */
#aiz.ws-root.ws-order-mode.ws-tile-mode .ws-grid,#aiz.ws-root.ws-order-mode.ws-overview-mode .ws-grid{grid-template-rows:repeat(var(--ws-grid-rows,1),minmax(0,1fr))}
#aiz.ws-root.ws-tile-mode .ws-widget-body{flex:1 1 0%;min-height:0}
.ws-order-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px;flex:none}.ws-order-heading h2{font-size:calc(1.5625rem * var(--dt));line-height:1.2;margin:0}.ws-order-heading p{font-size:calc(0.9375rem * var(--dt));line-height:1.3;margin:4px 0 0}.ws-order-heading .ws-widget-tools{display:flex}.ws-order-heading .ws-icon{width:36px;height:36px;min-height:36px}.ws-order-heading .ws-mini-status{font-size:calc(0.875rem * var(--dt))}

#aiz.ws-root.ws-tile-mode .ws-order-actions .oacts{flex-wrap:nowrap;gap:6px;justify-content:space-between}#aiz.ws-root.ws-tile-mode .ws-order-actions .btn{flex:0 1 44px;width:44px;height:44px;padding:10px;font-size:calc(0.875rem * var(--dt));min-width:40px}#aiz.ws-root.ws-tile-mode .ws-order-actions .btn svg{width:22px;height:22px;display:block;stroke:currentColor;fill:none;stroke-width:1.8}.ws-order-actions svg{vertical-align:middle}

#aiz.ws-root .ws-context-controls{width:auto;margin-left:auto}.ws-order-heading h2{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.ws-order-heading h2 small{font-size:calc(0.875rem * var(--dt));line-height:1.3;color:var(--ws-accent);font-weight:600}.ws-detail-card .ws-detail-items .items{padding:0;gap:8px;border:0}.ws-detail-card .ws-detail-items .pz{padding:0}.ws-detail-card .ws-detail-items .pzh{font-size:calc(0.875rem * var(--dt));line-height:1.3;text-transform:none;letter-spacing:0;margin-bottom:4px}.ws-detail-card .ws-detail-items .obs,.ws-detail-card .ws-detail-items .comp{font-size:calc(0.875rem * var(--dt));line-height:1.3;padding:3px 8px;margin-top:4px}.ws-detail-card .ws-detail-items .drink{font-size:calc(1rem * var(--dt))}.ws-detail-card .ws-detail-items .combo{font-size:calc(0.875rem * var(--dt))}

.ws-order-overview .pzh{display:inline;margin:0 5px 0 0}.ws-order-overview .pz{line-height:1.35}.ws-order-overview .fl{display:inline;padding:0;line-height:1.35;font-size:calc(1.125rem * var(--dt))}.ws-order-overview .fl:before{display:none}.ws-order-overview .fl+.fl:before{display:inline;position:static;content:' · ';background:none}.ws-order-overview .obs{margin:3px 0 0;padding:2px 6px}.ws-order-overview .drink{display:block;padding:2px 0;border:0;background:none;margin:0}.ws-order-overview .drink small{display:none}.ws-order-overview .combo{display:none}.ws-order-overview .ws-delivery-summary,.ws-order-overview .ws-address-summary{font-size:calc(0.9375rem * var(--dt));line-height:1.3;margin:6px 0 0}.ws-order-overview .items{gap:4px}.ws-content-page>.oinfo{border:0;padding:0}.ws-content-page>.ws-detail-timeline{padding:0}.ws-content-page>div{font-size:calc(0.9375rem * var(--dt));line-height:1.35;margin-bottom:6px}

/* Filtros de comparação e fichas técnicas preservados. */
.ws-comparison-context{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0;font-size:calc(0.875rem * var(--dt))}
.ws-filters>.ws-presentation{margin-left:auto}
.ws-comparison-controls{flex-basis:100%}
.ws-widget-body:has(>.ws-comparison-pair)>.ws-filters{margin-bottom:6px}
.ws-widget-body:has(>.ws-comparison-pair)>.ws-comparison-context{margin:4px 0}
.ws-comparison-context>span,.ws-reference-list>button{background:rgba(128,128,128,.1);border-radius:14px;padding:7px 10px}
.ws-comparison-context>small{color:var(--ws-secondary,#5e5b57)}
.ws-reference-list{display:flex;gap:7px;flex-wrap:wrap;width:100%}
.ws-reference-list button{min-height:44px;border:0;color:inherit;font:inherit;font-size:calc(0.8125rem * var(--dt));cursor:pointer}
.ws-reference-list button:focus-visible{outline:2px solid var(--ws-accent,#286e50);outline-offset:2px}
.ws-comparison-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.ws-chart-legend{flex-wrap:wrap}
.ws-recipe-portions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ws-recipe-portions strong{font-size:calc(0.9375rem * var(--dt));background:#27734512;color:var(--ws-ink,#302d28);border-radius:12px;padding:6px 10px}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-grid{display:grid!important;grid-template-columns:repeat(var(--ws-recipe-count,2),minmax(0,1fr))!important;grid-auto-rows:auto;gap:16px;align-items:start;overflow:visible!important}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-board{max-width:1600px;width:100%;height:auto;max-height:none;overflow:visible}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget,#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-body{height:auto;max-height:none;overflow:visible!important;min-height:0}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-body{padding-top:10px}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-header{padding:18px 20px 0}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-title{font-size:calc(1.5rem * var(--dt))}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-recipe-photo{max-height:90px;width:100%;object-fit:cover;float:none}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-recipe-head{display:flex;flex-wrap:wrap;gap:6px}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-ingredients{grid-template-columns:1fr;gap:0}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-ingredient{padding:6px 0;min-height:30px;font-size:calc(1.125rem * var(--dt))}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-notice{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));margin-top:6px}

#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-grid{max-width:none;max-height:none;height:auto}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-recipe{display:block}
#aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-recipe-photo{height:85px;margin-bottom:8px}

/* Fichas completas por pagina: preservar ingredientes e o menu em telas baixas. */
@media(max-height:900px),(max-width:1100px){
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget{padding:12px}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-header{padding:0;margin-bottom:8px}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-widget-body{padding-top:0}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-recipe-photo{height:48px}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-ingredient{font-size:calc(1rem * var(--dt));line-height:1.25;padding:3px 0;min-height:26px}
}
@media(min-width:780px){
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group.ws-recipe-page-single .ws-ingredients{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
}
@media(max-width:520px){
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-board{gap:4px}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-topic{padding:8px 10px}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-topic strong{font-size:calc(0.875rem * var(--dt))}
 #aiz.ws-root.ws-recipe-mode.ws-recipe-group .ws-toolbar-actions{gap:4px}
}
#aiz.ws-root .ws-widget-body.ws-paged-body{overflow:hidden!important;flex:1;min-height:0}
.ws-content-page{display:flow-root;min-width:0}
.ws-content-page>.ws-metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.ws-content-pager .ws-icon{width:44px;height:44px;min-height:44px}
.ws-paged-body .ws-detail-columns,.ws-paged-body .ws-comparison-pair{grid-template-columns:1fr}
.ws-paged-body .ws-chart{max-height:220px}
#aiz.ws-root.ws-session-panel.ws-context-details .ws-history-card{min-height:184px;max-height:204px}
.ws-history-extra{font-weight:600}

/* Um grafico indivisivel conserva seus 190 px sem repetir a moldura vertical de cada fragmento. */
.ws-paged-body .ws-comparison-card:has(>.ws-chart){padding-top:0;padding-bottom:0}
.ws-paged-body .ws-comparison-card>.ws-chart{margin-top:0;margin-bottom:0}

/* Cards centrais desfocam a operacao; retornos curtos do KDS mantem os pedidos nitidos. */

/* ============================================================================
   1.23.0: três níveis de card (mini, médio e total), sem páginas nem rolagem lateral.
   Mini ocupa uma coluna lógica da grade; médio ocupa duas colunas e duas linhas, no lugar;
   total sobe numa camada própria, centralizado sobre a tela desfocada, com tudo.
   ============================================================================ */
#aiz.ws-root.ws-overview-mode .ws-grid,#aiz.ws-root.ws-tile-mode .ws-grid{grid-template-rows:none;grid-auto-rows:auto;grid-auto-flow:row dense;align-items:start;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;padding:2px 4px 6px;pointer-events:auto}
#aiz.ws-root.ws-order-mode.ws-tile-mode .ws-grid,#aiz.ws-root.ws-order-mode.ws-overview-mode .ws-grid{grid-template-rows:none}
#aiz.ws-root.ws-overview-mode .ws-grid{max-height:var(--ws-card-room,650px)}
#aiz.ws-root.ws-tile-mode .ws-grid{grid-auto-rows:auto}
#aiz.ws-root .ws-grid .ws-widget.ws-medium-card{position:relative;height:auto;max-height:calc(3 * 188px + 2 * 16px);padding:16px 16px 16px;align-self:stretch}
#aiz.ws-root .ws-medium-card .ws-widget-body{overflow:hidden;flex:1 1 auto;min-height:0;cursor:zoom-in}
/* Card médio de pedido: o detalhe restante (dados, pagamento, linha do tempo) em duas colunas para caber mais sem rolar. */
#aiz.ws-root .ws-grid .ws-medium-card .ws-order-rest .ws-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
/* A coluna da cozinha no restante conserva o entregador (fase, previsão, veículo): os itens já saíram para o resumo. */
#aiz.ws-root .ws-grid .ws-medium-card .ws-order-rest .ws-detail-items .items{display:none}
#aiz.ws-root .ws-grid .ws-medium-card .ws-order-rest .oinfo{font-size:calc(0.875rem * var(--dt));line-height:1.3}
#aiz.ws-root .ws-grid .ws-medium-card .ws-order-rest .tl{font-size:calc(0.8125rem * var(--dt))}
#aiz.ws-root.ws-overview-mode .ws-grid .ws-widget.ws-mini-card{max-height:none;min-height:188px;height:max-content}
/* Nada dentro do mini card encolhe para caber na linha mínima: a linha da grade cresce com o conteúdo (sabores completos). */
#aiz.ws-root.ws-overview-mode .ws-mini-card>*{flex:none}
#aiz.ws-root.ws-overview-mode .ws-mini-items{-webkit-line-clamp:3}
/* Ações do pedido no card médio: ícones de 44 px, como no modo de tela dividida. */
#aiz.ws-root .ws-medium-card .ws-order-actions{flex:none;margin-top:10px}
#aiz.ws-root .ws-medium-card .ws-order-actions .oacts{display:flex;flex-wrap:nowrap;gap:6px;justify-content:space-between;margin:0}
#aiz.ws-root .ws-medium-card .ws-order-actions .btn{flex:0 1 44px;width:44px;height:44px;min-height:44px;padding:10px;font-size:calc(0.875rem * var(--dt));min-width:40px}
#aiz.ws-root .ws-medium-card .ws-order-actions .btn svg{width:22px;height:22px;display:block;stroke:currentColor;fill:none;stroke-width:1.8}
#aiz.ws-root .ws-medium-card .ws-widget-body button,#aiz.ws-root .ws-medium-card .ws-widget-body canvas,#aiz.ws-root .ws-medium-card .ws-widget-body select,#aiz.ws-root .ws-medium-card .ws-widget-body input{cursor:auto}
#aiz.ws-root .ws-medium-card .ws-chart{height:200px}
#aiz.ws-root .ws-medium-card .ws-comparison-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Degradê e botão "Ver tudo" quando o conteúdo não coube no card médio: nada é cortado em silêncio. */
.ws-widget.ws-overflowing .ws-widget-body{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 72px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 72px),transparent)}
.ws-widget .ws-see-all{position:static;align-self:center;margin:-30px auto 6px;z-index:3;min-height:44px;padding:10px 16px;border-radius:22px;background:var(--ws-control);box-shadow:var(--ws-shadow);font-weight:650}
.ws-widget .ws-see-all svg{width:18px;height:18px;margin-right:6px;stroke:currentColor;fill:none;stroke-width:1.8;vertical-align:-3px}
/* Camada do card total */
.ws-full-layer{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));pointer-events:auto}
.ws-full-backdrop{position:absolute;inset:0;background:rgba(28,20,12,.38);backdrop-filter:blur(16px) saturate(.9);-webkit-backdrop-filter:blur(16px) saturate(.9);cursor:zoom-out}
body.dark .ws-full-backdrop{background:rgba(0,0,0,.5)}
#aiz.ws-root #ws-full .ws-widget.ws-full-card{position:relative;z-index:1;width:min(1180px,calc(100vw - 32px));height:auto;max-height:calc(100vh - 32px - var(--ws-viewport-inset,0px));display:flex;flex-direction:column;padding:22px 26px 22px;border-radius:30px;box-shadow:0 30px 80px rgba(20,12,4,.35),0 4px 14px rgba(20,12,4,.14)!important;animation:ws-full-in .18s ease-out}
@keyframes ws-full-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#aiz.ws-root .ws-full-card{animation:none}}
#aiz.ws-root .ws-full-card .ws-widget-header,#aiz.ws-root .ws-full-card .ws-order-heading{flex:none;margin-bottom:12px}
#aiz.ws-root .ws-full-card .ws-widget-title{font-size:calc(1.625rem * var(--dt))}
#aiz.ws-root .ws-full-card .ws-order-heading h2{font-size:calc(1.875rem * var(--dt))}
#aiz.ws-root #ws-full .ws-full-card .ws-widget-body{flex:1 1 auto;min-height:0;overflow:auto;padding-right:4px;max-height:none}
#aiz.ws-root .ws-full-card .ws-widget-footer{flex:none;margin-top:12px}
#aiz.ws-root .ws-full-card .ws-detail-columns{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px;align-items:start}
#aiz.ws-root .ws-full-card .ws-detail-items .fl{font-size:calc(1.25rem * var(--dt))}
#aiz.ws-root .ws-full-card .ws-chart{height:min(34vh,320px);min-height:220px}
/* Relatório no card total: indicadores no topo e gráficos em duas colunas, para caber tudo numa tela. */
#aiz.ws-root .ws-full-card .ws-widget-body:not(.ws-order-detail):not(:has(.ws-order-detail)):not(:has(.ws-recipe)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;align-content:start}
#aiz.ws-root .ws-full-card .ws-widget-body>*{grid-column:1/-1;min-width:0}
#aiz.ws-root .ws-full-card .ws-widget-body>.ws-chart-block{grid-column:auto}
#aiz.ws-root .ws-full-card .ws-widget-body>.ws-chart-block.ws-single-chart{grid-column:1/-1}
/* Um gráfico só e mais indicadores: gráfico à esquerda, indicadores à direita, tudo à vista. */
#aiz.ws-root .ws-full-card .ws-widget-body:has(>.ws-secondary-metrics)>.ws-chart-block.ws-single-chart{grid-column:auto}
#aiz.ws-root .ws-full-card .ws-widget-body:has(>.ws-chart-block.ws-single-chart)>.ws-secondary-metrics{grid-column:auto;align-self:start}
#aiz.ws-root .ws-full-card .ws-secondary-metrics summary{font-weight:700;margin-bottom:8px}
#aiz.ws-root .ws-full-card .ws-secondary-metrics .ws-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
#aiz.ws-root .ws-full-card .ws-comparison-card .ws-chart{height:min(30vh,280px)}
#aiz.ws-root.ws-focus-mode .ws-grid .ws-widget.ws-medium-card{max-height:var(--ws-card-room,650px)}
#aiz.ws-root .ws-full-card .ws-comparison-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#aiz.ws-root .ws-full-card .ws-comparison-extra{display:block}
#aiz.ws-root .ws-full-card .ws-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
#aiz.ws-root .ws-full-card .ws-metric strong{font-size:calc(1.75rem * var(--dt))}
#aiz.ws-root .ws-full-card .ws-ingredients{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
#aiz.ws-root .ws-full-card .ws-order-actions .oacts{display:flex;flex-wrap:wrap;gap:8px}
#aiz.ws-root .ws-full-card .ws-order-actions .btn{min-height:48px;font-size:calc(1rem * var(--dt));padding:10px 16px}
body.ws-full-open #aiz.ws-root .ws-board,body.ws-full-open #aiz.ws-root .ws-composer-home{filter:blur(6px) saturate(.85);pointer-events:none}
body.ws-full-open #aiz.ws-root #ws-full{filter:none}
@media(max-width:900px){#aiz.ws-root .ws-full-card .ws-detail-columns{grid-template-columns:1fr}#aiz.ws-root .ws-full-card .ws-comparison-pair{grid-template-columns:1fr}#aiz.ws-root .ws-full-card{padding:16px}}
/* Card médio compacto (mais de quatro ampliados): sem barra de filtros, indicadores em duas colunas, um gráfico. */
#aiz.ws-root .ws-medium-compact .ws-widget-title{font-size:calc(1.1875rem * var(--dt))}
#aiz.ws-root .ws-medium-compact .ws-comparison-context{margin:4px 0 8px}
#aiz.ws-root .ws-medium-compact .ws-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-bottom:8px}
#aiz.ws-root .ws-medium-compact .ws-metric strong{font-size:calc(1.375rem * var(--dt))}
#aiz.ws-root .ws-medium-compact .ws-chart{height:160px;min-height:140px;margin:6px 0}
#aiz.ws-root .ws-medium-compact .ws-chart-readout,#aiz.ws-root .ws-medium-compact .ws-source,#aiz.ws-root .ws-medium-compact .ws-secondary-metrics summary{display:none}
#aiz.ws-root .ws-medium-compact .ws-secondary-metrics{display:block}
#aiz.ws-root .ws-medium-compact .ws-widget-footer .ws-btn:not(.ws-see-all){min-height:40px;font-size:calc(0.875rem * var(--dt));padding:8px 12px}
/* 1.23.0: sem páginas dentro do card, o card em foco (um só na tela) rola o corpo em vez de cortar. O médio da grade continua cortado com "Ver tudo". */
#aiz.ws-root .ws-grid .ws-detail-card:not(.ws-medium-card) .ws-widget-body{overflow:auto}
/* 1.23.0: no celular os dois períodos de uma comparação ficam um sobre o outro (lado a lado os números ficavam cortados). */
@media(max-width:760px){#aiz.ws-root .ws-comparison-pair,#aiz.ws-root .ws-medium-card .ws-comparison-pair{grid-template-columns:minmax(0,1fr)}}
/* ===== 1.24.0: performance. Liquid Glass só na camada funcional (campo de fala e chip do assunto).
   Cada card, botão e sugestão tinha o próprio backdrop-filter (dezenas de desfoques por quadro sobre um fundo já desfocado):
   era daí que vinha o lag. Os materiais ficam opacos o bastante para ler; o vidro fica no que flutua. ===== */
#aiz.ws-root .ws-widget,#aiz.ws-root .ws-btn,#aiz.ws-root .aisug .pill,#aiz.ws-root .ws-bubble,#aiz.ws-root .ws-order .e{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#aiz.ws-root .ws-widget{background:rgba(255,253,249,.97)}
body.dark #aiz.ws-root .ws-widget{background:rgba(36,35,33,.97)}
#aiz.ws-root .ws-btn,#aiz.ws-root .aisug .pill{background:rgba(255,253,249,.96)}
body.dark #aiz.ws-root .ws-btn,body.dark #aiz.ws-root .aisug .pill{background:rgba(58,55,52,.96)}
/* 1.27.0: botões legíveis dentro dos cards de suporte e da resposta transitória. A regra acima deixava o botão
   principal branco sobre branco ("apagado"). Principal verde com texto branco; secundário com fundo e borda visíveis. */
#aiz.ws-root .ws-btn{color:#2b2118;font-weight:600;box-shadow:inset 0 0 0 1px rgba(58,42,30,.18)}
#aiz.ws-root .support-actions .ws-btn{background:rgba(58,42,30,.09);min-height:44px;font-size:calc(0.9375rem * var(--dt))}
#aiz.ws-root .ws-btn.ws-primary,#aiz.ws-root .support-actions .ws-btn.ws-primary{background:#2f7a45;color:#fff;box-shadow:none}
#aiz.ws-root .ws-btn:disabled{opacity:.75}
body.dark #aiz.ws-root .ws-btn{color:#f4efe8;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
body.dark #aiz.ws-root .support-actions .ws-btn{background:rgba(255,255,255,.12)}
body.dark #aiz.ws-root .ws-btn.ws-primary,body.dark #aiz.ws-root .support-actions .ws-btn.ws-primary{background:#a6e3ad;color:#17391f}
/* O card total não desfoca de novo o que já está desfocado: só escurece, e a grade atrás some por opacidade (barato). */
.ws-full-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(28,20,12,.46)}
body.dark .ws-full-backdrop{background:rgba(0,0,0,.58)}
#aiz.ws-root:has(#ws-full) #ws-grid,#aiz.ws-root:has(#ws-full) #ws-toolbar{opacity:.35;transition:opacity .18s ease}
/* O fundo desfocado vira uma camada própria do compositor: o desfoque é recalculado só quando a tela de trás muda. */
body.ai-workspace-on main{will-change:filter;contain:paint}
/* O brilho animado da moldura custa um desfoque por quadro; com o Cérebro em tela cheia ele fica parado. */
body.ai-workspace-on::after{animation:none;filter:blur(10px)}
/* ===== 1.24.0: Cérebro em modo herói (fora do KDS). A barra de menu some; só o ícone sobe ao topo, centralizado, com as
   sugestões embaixo. Enquanto o operador fala ou escreve, as sugestões dão lugar ao campo de vidro com a transcrição e o ícone
   pulsa com o volume da voz (--voice-level). A tela inteira fica para os cards. ===== */
body.ws-hero-mode .top{display:none!important}
body.ws-hero-mode #aiz.ws-root{inset:var(--ws-top) 20px calc(14px + var(--ws-viewport-inset,0px));grid-template-rows:auto auto minmax(0,1fr);gap:10px}
body.ws-hero-mode #aiz.ws-root.ws-empty{grid-template-rows:auto auto;align-content:start;top:var(--ws-top)}
body.ws-hero-mode #aiz.ws-root .ws-hero{order:0;display:flex;align-items:center;justify-content:center;position:relative;min-height:92px;pointer-events:none}
body.ws-hero-mode #aiz.ws-root .ws-controls{order:1;gap:0;min-height:0}
/* Ocioso, a linha do campo tem altura zero (o campo fica fora da tela, ainda focável); display:none o tornaria inacessível ao teclado. */
body.ws-hero-mode #aiz.ws-root:not(.ws-speaking) .ws-controls{padding:0;margin:0}
body.ws-hero-mode #aiz.ws-root .ws-board{order:2}
#aiz.ws-root .ws-hero{display:none}
#aiz.ws-root .ws-hero>*{pointer-events:auto}
.ws-hero-brain{appearance:none;border:0;background:transparent;padding:0;width:96px;height:96px;display:grid;place-items:center;position:relative;cursor:pointer;border-radius:50%;-webkit-tap-highlight-color:transparent}
/* 1.25.0: ícone sem contorno. A única sinalização é a animação enquanto capta a fala: o ícone cresce com o volume
   (--voice-level) e um brilho suave, como o orbe da Siri, respira atrás dele. Microfone desligado: ícone apagado. */
.ws-hero-brain{transform:scale(calc(1 + var(--voice-level,0) * .28));transition:transform .06s linear}
.ws-hero-brain .philippe-brain{width:58px;height:64px;position:relative;z-index:1;transition:opacity .25s ease,filter .25s ease}
.ws-hero-brain .philippe-brain img{filter:drop-shadow(0 2px 6px rgba(120,80,20,.28))}
.ws-hero:not(.on) .ws-hero-brain .philippe-brain{opacity:.55;filter:grayscale(.7)}
.ws-hero-glow{position:absolute;inset:-4px;border-radius:50%;opacity:0;pointer-events:none;transform:scale(.85);transition:opacity .3s ease,transform .1s linear;overflow:visible}
.ws-hero-glow::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(255,196,70,.95),rgba(224,52,46,.8),rgba(90,160,255,.75),rgba(120,220,160,.7),rgba(255,196,70,.95));filter:blur(12px);animation:ws-hero-spin 3.6s linear infinite}
.ws-hero.capturing .ws-hero-glow{opacity:calc(.6 + var(--voice-level,0) * .4);transform:scale(calc(1 + var(--voice-level,0) * .8))}
.ws-hero[data-voice-state="error"] .ws-hero-glow{opacity:.7;transform:scale(1)}
.ws-hero[data-voice-state="error"] .ws-hero-glow::before{background:radial-gradient(circle,rgba(224,52,46,.6) 0%,rgba(224,52,46,.2) 55%,transparent 72%);animation:none}
@keyframes ws-hero-spin{to{transform:rotate(360deg)}}
/* 1.26.0: o X do Cérebro é o botão mestre: fica acima de qualquer card (inclusive o card total) e fecha a sessão. O botão de escrever saiu. */
.ws-hero-close{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;right:0;z-index:1500}
.ws-hero-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}
body.ws-hero-mode #aiz.ws-root .ws-hero{z-index:1500}
/* 1.25.0: sem sugestões. Só o ícone; o campo aparece ao falar ou digitar. */
/* Ocioso: o campo fica fora da tela mas continua focável (teclado, leitores de tela e automação); qualquer tecla o traz de volta. */
body.ws-hero-mode #aiz.ws-root #ws-composer-home{width:min(720px,100%)}
body.ws-hero-mode #aiz.ws-root:not(.ws-speaking) #ws-composer-home{position:absolute;left:-9999px;top:0;width:min(720px,100vw);opacity:0;pointer-events:none}
body.ws-hero-mode #aiz.ws-root.ws-speaking #ws-composer-home{position:static;opacity:1;pointer-events:auto}
/* Escrevendo: o campo em cima e as sugestões para o texto digitado logo abaixo. */
body.ws-hero-mode #aiz.ws-root .ws-controls #ws-composer-home{order:0}
body.ws-hero-mode #aiz.ws-root .ws-composer .ws-close{display:none}
/* 1.25.0: campo limpo, como o da Siri: só o texto da transcrição sobre vidro. Sem microfone, sem seta (Enter envia). */
body.ws-hero-mode #aiz.ws-root .ws-composer .ws-input{min-height:56px;padding:0 20px;font-size:calc(1.0625rem * var(--dt));background:rgba(255,253,249,.55)!important;backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);box-shadow:0 10px 30px rgba(58,42,30,.14),inset 0 0 0 1px rgba(255,255,255,.55)}
body.ws-hero-mode #aiz.ws-root .ws-composer .ws-input:focus-within{box-shadow:0 12px 34px rgba(58,42,30,.18),inset 0 0 0 1px rgba(255,255,255,.75)}
body.ws-hero-mode #aiz.ws-root .ws-composer .ws-input::after{display:none}
.ws-composer .ws-voice-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.dark.ws-hero-mode #aiz.ws-root .ws-composer .ws-input{background:rgba(40,38,36,.55)!important}
body.ws-hero-mode #aiz.ws-root .ws-composer .ws-brain{display:none}
body.ws-hero-mode #aiz.ws-root .ws-composer input{font-size:calc(1.0625rem * var(--dt))}
/* Modo herói: a grade usa a largura toda; os cards podem ir até a borda. */
body.ws-hero-mode #aiz.ws-root .ws-grid{max-width:none;width:100%}
@media(max-width:600px){body.ws-hero-mode #aiz.ws-root{inset:var(--ws-top) 12px calc(10px + var(--ws-viewport-inset,0px))}.ws-hero-brain{width:84px;height:84px}.ws-hero-brain .philippe-brain{width:50px;height:56px}body.ws-hero-mode #aiz.ws-root .ws-hero{min-height:84px}}
@media(prefers-reduced-motion:reduce){.ws-hero-glow::before{animation:none}.ws-hero-brain,.ws-hero-brain .philippe-brain,.ws-hero-glow{transition:none}}
/* Modo herói: os cards começam logo abaixo das sugestões (o espaço sobra embaixo, não no meio) e a grade pode usar a altura toda. */
body.ws-hero-mode #aiz.ws-root.ws-overview-mode,body.ws-hero-mode #aiz.ws-root.ws-tile-mode{inset:var(--ws-top) 20px calc(14px + var(--ws-viewport-inset,0px));grid-template-rows:auto auto minmax(0,1fr)}
body.ws-hero-mode #aiz.ws-root.ws-overview-mode .ws-board,body.ws-hero-mode #aiz.ws-root.ws-tile-mode .ws-board{justify-content:flex-start;margin:0;height:100%}
body.ws-hero-mode #aiz.ws-root.ws-focus-mode:not(.ws-empty):not(.ws-inline-mode):not(.ws-recipe-mode):not(.ws-support-mode) .ws-board{align-self:start;width:min(1180px,100%)}
body.ws-hero-mode #aiz.ws-root.ws-overview-mode .ws-grid{max-height:100%}

/* ===== 1.25.0: celular, conteúdo primeiro. Os menus e filtros do Cérebro e os controles internos dos cards começam
   recolhidos; gráficos e informações ocupam a tela. Um toque em "mais" (⋯) abre os controles. ===== */
.ws-filters-more,.ws-toolbar-more{display:none}
@media(max-width:600px){
  .ws-filters-more,.ws-toolbar-more{display:inline-flex}
  #aiz.ws-root .ws-report-filters .ws-filters-more{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;justify-content:center;margin-left:auto}
  #aiz.ws-root .ws-filters .ws-filters-more svg,#aiz.ws-root .ws-toolbar-more svg{width:18px;height:18px;stroke-width:2.8;stroke-linecap:round}
  #aiz.ws-root .ws-report-filters:not(.ws-filters-open)>button:not([aria-pressed="true"]):not(.ws-filters-more){display:none}
  #aiz.ws-root .ws-report-filters:not(.ws-filters-open)>.ws-presentation,#aiz.ws-root .ws-report-filters:not(.ws-filters-open)>.ws-filter-detail,#aiz.ws-root .ws-report-filters:not(.ws-filters-open)>.ws-comparison-controls{display:none}
  #aiz.ws-root .ws-filters{gap:6px}
  /* O paginador (fichas ou cards) é navegação, não menu: continua visível. */
  #aiz.ws-root .ws-toolbar:not(.ws-toolbar-open) .ws-toolbar-actions>*:not(.ws-toolbar-more):not(.ws-pager),#aiz.ws-root .ws-toolbar:not(.ws-toolbar-open) .ws-context-controls{display:none}
  #aiz.ws-root .ws-toolbar{flex-wrap:nowrap;gap:6px;min-height:44px}
  #aiz.ws-root .ws-toolbar.ws-toolbar-open{flex-wrap:wrap}
  #aiz.ws-root .ws-toolbar .ws-topic{min-width:0;flex:1 1 auto}
  #aiz.ws-root .ws-toolbar .ws-topic strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #aiz.ws-root .ws-toolbar-more{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
}

/* 1.25.0: ficha técnica em tela cheia (cozinha) no modo herói. As linhas da grade do #aiz não podem esticar a barra
   e a grade da ficha (a altura medida por fitRecipe é a do conteúdo). */
body.ws-hero-mode #aiz.ws-root.ws-recipe-mode .ws-board{align-self:start;align-content:start;height:auto;max-height:none}
body.ws-hero-mode #aiz.ws-root.ws-recipe-mode{grid-template-rows:auto auto auto;align-content:start;overflow:hidden}

/* 1.25.0: ajuda (suporte) no modo herói: o card fica centrado no espaço abaixo do ícone, em todas as telas. */
body.ws-hero-mode #aiz.ws-root.ws-support-active.ws-support-mode{top:var(--ws-top);grid-template-rows:auto auto minmax(0,1fr);align-content:stretch}
body.ws-hero-mode #aiz.ws-root.ws-support-active.ws-support-mode .ws-board{align-self:center;justify-self:center;width:min(900px,100%)}

/* 1.26.0: par agrupado sobe tremendo (mesma animação dos cards da Expedição e do KDS). */
#aiz.ws-root .ws-widget.ws-shake{animation:shake .5s ease-in-out 6}
@media(prefers-reduced-motion:reduce){#aiz.ws-root .ws-widget.ws-shake{animation:none;outline:3px solid rgba(255,196,70,.9)}}

/* ===== 1.27.0: resposta transitória. Frases do Cérebro (resposta, erro, pergunta de confirmação) não viram card:
   aparecem em vidro abaixo do ícone, com os botões Sim/Não e as ações, e somem sozinhas quando não há botão. ===== */
#aiz.ws-root .ws-reply{width:min(720px,100%);margin:0 auto;padding:14px 22px;border-radius:22px;background:rgba(255,253,249,.72);backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);box-shadow:0 10px 30px rgba(58,42,30,.14),inset 0 0 0 1px rgba(255,255,255,.55);color:#2b2118;font-size:calc(1.0625rem * var(--dt));line-height:1.35;pointer-events:auto;text-align:center}
#aiz.ws-root .ws-reply p{color:#2b2118}
body.dark #aiz.ws-root .ws-reply p{color:#f4efe8}
body.dark #aiz.ws-root .ws-reply{background:rgba(40,38,36,.72);color:#f4efe8}
#aiz.ws-root .ws-reply p{margin:0}
#aiz.ws-root .ws-reply .ws-reply-actions{display:flex;justify-content:center;gap:10px;margin-top:12px;flex-wrap:wrap}
#aiz.ws-root .ws-reply .ws-btn{min-height:44px;padding:0 20px;font-size:calc(1rem * var(--dt))}
#aiz.ws-root .ws-reply[hidden]{display:none}
body.ws-hero-mode #aiz.ws-root:not(.ws-speaking) .ws-controls{padding:0;margin:0}
body.ws-hero-mode #aiz.ws-root .ws-controls:has(.ws-reply:not([hidden])){gap:10px;padding-bottom:6px}

/* /cerebro-learning.css */
.cl-dialog{width:min(1060px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:30px;color:var(--txt,#30291f);background:rgba(255,253,247,.96);box-shadow:0 24px 100px #20180942;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);overflow:auto}
.cl-dialog::backdrop{background:#211c1738;backdrop-filter:blur(12px)}
.cl-shell{padding:28px}.cl-dialog header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cl-dialog h2{font-size:calc(1.625rem * var(--dt));line-height:1.25;margin:4px 0 8px}.cl-dialog h3{font-size:calc(1.0625rem * var(--dt));line-height:1.4;margin:5px 0;overflow-wrap:anywhere}.cl-dialog p{font-size:calc(0.9375rem * var(--dt));line-height:1.55;margin:8px 0}.cl-dialog small{font-size:calc(0.8125rem * var(--dt));line-height:1.5;color:#615a50}.cl-kind{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5f584d}.cl-explanation{max-width:78ch}.cl-dialog button{min-height:44px;min-width:44px;border:0;border-radius:15px;padding:10px 16px;background:#ede9e0;color:inherit;font:inherit;font-size:calc(0.875rem * var(--dt));font-weight:600;cursor:pointer}.cl-dialog button:disabled{opacity:.55;cursor:default}.cl-dialog button:focus-visible,.cl-dialog input:focus-visible,.cl-dialog select:focus-visible{outline:3px solid #1d6b52;outline-offset:3px}.cl-dialog button[aria-pressed=true],.cl-dialog button[type=submit]{background:#265f43;color:#fff}.cl-dialog nav,.cl-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 10px}.cl-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px;border-radius:22px;background:#ffffffb3;margin:12px 0;box-shadow:0 5px 22px #221e1409}.cl-entry>div{min-width:0}.cl-entry>button{flex-shrink:0}.cl-dialog [data-learning-notice]{min-height:24px;color:#365a43}.cl-dialog .cl-error{color:#a32620}.cl-empty{padding:30px 16px;text-align:center}.cl-dialog form{padding:22px;border-radius:24px;background:#f0ede5;margin:20px 0}.cl-dialog form[hidden]{display:none}.cl-dialog label{display:grid;gap:7px;font-size:calc(0.875rem * var(--dt));font-weight:600;margin:15px 0}.cl-dialog input,.cl-dialog select{box-sizing:border-box;width:100%;min-height:46px;padding:11px 14px;border:0;border-radius:14px;background:#fff;color:#30291f;font:inherit;font-size:calc(1rem * var(--dt))}.cl-dialog input[readonly]{background:#e5e0d7}.cl-dialog [data-learning-more]{display:block;margin:20px auto 0}.cl-dialog [hidden]{display:none!important}
body.dark .cl-dialog,[data-theme=dark] .cl-dialog{background:rgba(35,32,28,.97);color:#f7f1e8}body.dark .cl-dialog small,body.dark .cl-kind,[data-theme=dark] .cl-dialog small,[data-theme=dark] .cl-kind{color:#d0c9be}body.dark .cl-entry,[data-theme=dark] .cl-entry{background:#ffffff0d}body.dark .cl-dialog button,body.dark .cl-dialog form,[data-theme=dark] .cl-dialog button,[data-theme=dark] .cl-dialog form{background:#484238;color:#fff}body.dark .cl-dialog button[aria-pressed=true],body.dark .cl-dialog button[type=submit],[data-theme=dark] .cl-dialog button[aria-pressed=true],[data-theme=dark] .cl-dialog button[type=submit]{background:#336e4d}body.dark .cl-dialog [data-learning-notice],[data-theme=dark] .cl-dialog [data-learning-notice]{color:#b3dfbd}body.dark .cl-dialog .cl-error,[data-theme=dark] .cl-dialog .cl-error{color:#ffb7ac}
@media(max-width:600px){.cl-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:24px}.cl-shell{padding:20px}.cl-dialog h2{font-size:calc(1.375rem * var(--dt))}.cl-entry{padding:16px;flex-direction:column;gap:12px}.cl-dialog form{padding:16px}.cl-dialog nav button{flex:1 1 auto}.cl-toolbar button{flex:1 1 auto}}
@media(prefers-reduced-transparency:reduce){.cl-dialog{background:#fffaf1;backdrop-filter:none}.cl-entry{background:#fff}.cl-dialog::backdrop{backdrop-filter:none;background:#28221bc9}}

/* /aprovacoes.css */
/* 1.63.1 (onda B): SUPERFÍCIE DE APROVAÇÃO (web/aprovacoes.js). Cartão de vidro para a mudança preparada pela IA ou por
   um canal sem botão, o aviso "Feito" com Desfazer e a pílula de aprovações esperando. Mesmos tokens de vidro do Hub
   (--glass-bg, --glass-border, --glass-lift-alto, --r-sheet), alvos de 44 pt e estados de botão visíveis. */
#aprov-raiz{position:fixed;right:24px;bottom:24px;z-index:1350;width:min(420px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:stretch;gap:10px;pointer-events:none}
#aprov-raiz[hidden]{display:none}
#aprov-raiz>*{pointer-events:auto}
.aprov-vidro{background:var(--glass-bg,rgba(255,255,255,.72));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);border:1px solid var(--glass-border,rgba(255,255,255,.88));box-shadow:var(--glass-edge,inset 0 1px 0 rgba(255,255,255,.55)),var(--glass-lift-alto,0 18px 46px rgba(40,25,12,.2));color:var(--label,var(--text,#3A2A1E))}
.aprov-card{border-radius:var(--r-sheet,20px);padding:14px 16px 14px}
.aprov-card.entra{animation:aprov-entra .32s cubic-bezier(.2,.8,.2,1)}
.aprov-card.saindo{animation:aprov-sai .22s ease-in forwards}
@keyframes aprov-entra{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes aprov-sai{to{opacity:0;transform:translateY(12px) scale(.98)}}
@media (prefers-reduced-motion:reduce){.aprov-card.entra,.aprov-card.saindo,.aprov-feito.entra{animation:none}}
.aprov-topo{display:flex;align-items:center;gap:8px;min-height:32px}
.aprov-selo{display:inline-flex;align-items:center;gap:6px;font-size:var(--f-footnote,0.8125rem);font-weight:700;color:var(--ink-blue,#1E6EF4);letter-spacing:.01em}
.aprov-selo svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.aprov-conta{margin-left:auto;font-size:var(--f-footnote,0.8125rem);color:var(--label2,var(--sub,#8A7666));font-variant-numeric:tabular-nums}
.aprov-nav{display:inline-flex;gap:2px}
.aprov-nav button,.aprov-x{min-width:44px;min-height:44px;margin:-8px -8px -8px 0;border:0;border-radius:var(--r-pill,999px);background:transparent;color:var(--label2,var(--sub,#8A7666));font-size:calc(1.375rem * var(--dt,1));line-height:1;cursor:pointer;display:grid;place-items:center}
.aprov-nav button{margin:-8px 0;font-size:calc(1.25rem * var(--dt,1))}
.aprov-nav button:disabled{opacity:.3;cursor:default}
.aprov-x:active,.aprov-nav button:active{background:var(--fill,rgba(90,65,45,.08))}
.aprov-titulo{margin:6px 0 2px;font-size:var(--f-headline,1.0625rem);line-height:var(--lh-headline,1.375rem);font-weight:700}
.aprov-quem{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--f-footnote,0.8125rem);color:var(--label2,var(--sub,#8A7666))}
.aprov-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--r-pill,999px);font-weight:700;font-size:var(--f-caption1,0.75rem);background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E)}
.aprov-chip.ia{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 16%,transparent);color:var(--ink-indigo,#4B3FD1)}
.aprov-chip.pessoa{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1C7A36)}
.aprov-de-para{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:8px;margin:12px 0 6px}
.aprov-caixa{border-radius:var(--r-card,16px);padding:10px 12px;background:var(--fill,rgba(90,65,45,.08));min-width:0}
.aprov-caixa small{display:block;font-size:var(--f-caption1,0.75rem);color:var(--label2,var(--sub,#8A7666));font-weight:600}
.aprov-caixa b{display:block;font-size:var(--f-callout,1rem);line-height:1.25;overflow-wrap:anywhere}
.aprov-caixa.depois{background:color-mix(in srgb,var(--sys-blue,#0088FF) 14%,transparent)}
.aprov-caixa.depois b{color:var(--ink-blue,#1E6EF4)}
.aprov-seta{align-self:center;color:var(--label3,#8A7666);font-size:calc(1.25rem * var(--dt,1))}
.aprov-texto{margin:10px 0 4px;font-size:var(--f-subhead,0.9375rem);line-height:var(--lh-subhead,1.25rem)}
.aprov-efeito{margin:4px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--label2,var(--sub,#8A7666))}
.aprov-prazo{margin:10px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--label2,var(--sub,#8A7666));display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.aprov-prazo b{font-variant-numeric:tabular-nums;color:var(--label,#3A2A1E)}
.aprov-barra{flex-basis:100%;height:4px;border-radius:4px;background:var(--fill2,rgba(90,65,45,.12));overflow:hidden}
.aprov-barra i{display:block;height:100%;background:var(--sys-blue,#0088FF);border-radius:4px;transition:width 1s linear}
.aprov-card.acabando .aprov-barra i{background:var(--sys-orange,#FF8D28)}
.aprov-pin{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;font-size:var(--f-footnote,0.8125rem);font-weight:600}
.aprov-pin input{min-height:44px;border-radius:var(--r-ctl,12px);border:1px solid var(--sep,rgba(58,42,30,.2));background:var(--surface,#fff);color:inherit;font:inherit;font-size:calc(1.25rem * var(--dt,1));letter-spacing:.3em;padding:0 12px;text-align:center}
.aprov-pin input:focus-visible{outline:3px solid color-mix(in srgb,var(--sys-blue,#0088FF) 45%,transparent);outline-offset:1px}
.aprov-pin.erro input{border-color:var(--sys-red,#FF383C);animation:aprov-treme .32s}
@keyframes aprov-treme{25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
.aprov-status{min-height:0;margin:8px 0 0;font-size:var(--f-footnote,0.8125rem);font-weight:600}
.aprov-status:empty{display:none}
.aprov-status.erro{color:var(--ink-red,#B42318)} .aprov-status.ok{color:var(--ink-green,#1C7A36)} .aprov-status.info{color:var(--label2,#6B5A4C)}
.aprov-acoes{display:flex;gap:10px;margin-top:14px}
.aprov-acoes .btn{flex:1 1 0;min-height:44px;border-radius:var(--r-ctl,12px);font-weight:700;font-size:var(--f-callout,1rem);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:opacity .12s,transform .12s,background-color .2s}
.aprov-acoes .btn:active:not(:disabled){transform:scale(.97);opacity:.85}
.aprov-acoes .btn:disabled{opacity:.55;cursor:default}
.aprov-acoes .btn[aria-busy="true"]::before,.aprov-feito .aprov-desfazer[aria-busy="true"]::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:aprov-gira .7s linear infinite}
@keyframes aprov-gira{to{transform:rotate(360deg)}}
.aprov-acoes .btn.aprovar.feito{background:var(--sys-green,#34C759);border-color:transparent;color:#fff}
.aprov-acoes .btn.recusar{background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E)}
.aprov-somente{margin:12px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--label2,var(--sub,#8A7666))}
/* aviso "Feito" com Desfazer */
.aprov-feito{display:flex;align-items:center;gap:10px;border-radius:var(--r-pill,999px);padding:6px 6px 6px 14px;min-height:52px}
.aprov-feito.entra{animation:aprov-entra .28s cubic-bezier(.2,.8,.2,1)}
.aprov-feito .ok{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sys-green,#34C759);color:#fff;display:grid;place-items:center;font-weight:800;font-size:calc(0.9375rem * var(--dt,1))}
.aprov-feito .ok.erro{background:var(--sys-red,#FF383C)}
.aprov-feito .txt{flex:1;min-width:0;font-size:var(--f-subhead,0.9375rem);font-weight:600;line-height:1.25}
.aprov-feito .aprov-desfazer{flex:none;min-height:44px;border:0;border-radius:var(--r-pill,999px);padding:0 16px;background:var(--fill2,rgba(90,65,45,.12));color:var(--ink-blue,#1E6EF4);font-weight:700;font-size:var(--f-subhead,0.9375rem);display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.aprov-feito .aprov-desfazer b{font-variant-numeric:tabular-nums;font-weight:600;color:var(--label2,#6B5A4C)}
.aprov-feito .aprov-x{margin:0}
/* pílula "N aprovações esperando" (cartão fechado) */
.aprov-pilula{align-self:flex-end;min-height:44px;border-radius:var(--r-pill,999px);padding:0 16px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--f-subhead,0.9375rem);cursor:pointer;color:var(--ink-blue,#1E6EF4)}
.aprov-pilula .n{min-width:22px;height:22px;border-radius:11px;background:var(--on-blue,#0062BD);color:#fff;display:grid;place-items:center;font-size:var(--f-footnote,0.8125rem);padding:0 6px}
/* telas estreitas: folha de baixo, largura toda */
@media (max-width:640px){#aprov-raiz{left:12px;right:12px;width:auto;bottom:calc(env(safe-area-inset-bottom) + 12px)} .aprov-pilula{align-self:center}}
/* app do celular: acima da barra de abas nativa, fora dos botões do topo */
html.app-nativo #aprov-raiz{left:10px;right:10px;width:auto;bottom:calc(var(--rodape-app,56px) + 10px)}
html.app-nativo .aprov-vidro{-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%)}
/* 1.74.0 (Philippe, 04/10/2026): TELA COM A BARRA DE BAIXO (HubTela põe a .bf-tela dentro da tela ligada). O cartão de
   aprovação (PIN) e o recibo nascem no pé e ficavam por cima da barra, segurando os toques dela (no celular em toda a
   largura; entre 641 e 1100 px, por cima dos últimos itens). Agora nascem ACIMA da barra, em qualquer largura e também
   no app. Na Expedição e na Cozinha (sem barra) nada muda. */
body:has(.view.on .bf-tela) #aprov-raiz{bottom:calc(var(--bf-rodape,env(safe-area-inset-bottom,0px)) + var(--bf-barra,4rem) + 1.25rem)}
body.dark .aprov-pin input{background:var(--surface2,#2C2A27)}
@media (prefers-reduced-transparency:reduce){.aprov-vidro{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* /auditoria.css */
/* 1.63.1 (onda B): tela "Auditoria" na aba Sistema (web/auditoria.js): o registro encadeado das ações (quem, canal,
   ação, antes e depois) e a conferência da corrente. Mesmo cartão de vidro das outras seções do Sistema. */
#auditoria-acoes .aud-cab{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#auditoria-acoes .aud-cab .dt{flex:1 1 auto}
#auditoria-acoes .aud-links{display:flex;flex-wrap:wrap;gap:8px}
#auditoria-acoes .aud-links a,#auditoria-acoes .aud-links .btn{min-height:44px;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
#auditoria-acoes .aud-filtros{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
#auditoria-acoes .aud-filtros select,#auditoria-acoes .aud-filtros input{min-height:44px;border-radius:var(--r-ctl,12px);border:1px solid var(--sep,rgba(58,42,30,.2));background:var(--surface,#fff);color:inherit;font:inherit;font-size:var(--f-subhead,0.9375rem);padding:0 12px}
#auditoria-acoes .aud-filtros input{flex:1 1 200px;min-width:160px}
body.dark #auditoria-acoes .aud-filtros select,body.dark #auditoria-acoes .aud-filtros input{background:var(--surface2,#2C2A27)}
#auditoria-acoes .aud-corrente{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0;padding:10px 12px;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.08));font-size:var(--f-footnote,0.8125rem)}
#auditoria-acoes .aud-corrente.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 14%,transparent);color:var(--ink-green,#1C7A36)}
#auditoria-acoes .aud-corrente.ruim{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#B42318)}
#auditoria-acoes .aud-corrente b{font-weight:700}
#auditoria-acoes .aud-lista{display:flex;flex-direction:column;gap:6px;margin-top:8px}
#auditoria-acoes .aud-linha{display:grid;grid-template-columns:92px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.2fr);gap:4px 12px;align-items:start;padding:10px 12px;border-radius:var(--r-card,16px);background:var(--fill,rgba(90,65,45,.06));font-size:var(--f-footnote,0.8125rem);line-height:1.35}
#auditoria-acoes .aud-quando{color:var(--label2,var(--sub,#8A7666));font-variant-numeric:tabular-nums}
#auditoria-acoes .aud-quando b{display:block;color:var(--label,#3A2A1E);font-weight:600}
#auditoria-acoes .aud-acao b{display:block;font-size:var(--f-subhead,0.9375rem);font-weight:600;color:var(--label,#3A2A1E)}
#auditoria-acoes .aud-acao span{color:var(--label2,var(--sub,#8A7666));overflow-wrap:anywhere}
#auditoria-acoes .aud-quem{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start}
#auditoria-acoes .aud-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-weight:700;font-size:var(--f-caption1,0.75rem);background:var(--fill2,rgba(90,65,45,.12));white-space:nowrap}
#auditoria-acoes .aud-chip.ia{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 16%,transparent);color:var(--ink-indigo,#4B3FD1)}
#auditoria-acoes .aud-chip.pessoa{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1C7A36)}
#auditoria-acoes .aud-chip.ev-aplicada,#auditoria-acoes .aud-chip.ev-aplicada_por_aprovacao,#auditoria-acoes .aud-chip.ev-desfeita,#auditoria-acoes .aud-chip.ev-aplicada_tela_antiga{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1C7A36)}
#auditoria-acoes .aud-chip.ev-preparada{background:color-mix(in srgb,var(--sys-blue,#0088FF) 16%,transparent);color:var(--ink-blue,#1E6EF4)}
#auditoria-acoes .aud-chip.ev-negada,#auditoria-acoes .aud-chip.ev-erro{background:color-mix(in srgb,var(--sys-red,#FF383C) 16%,transparent);color:var(--ink-red,#B42318)}
#auditoria-acoes .aud-chip.ev-recusada,#auditoria-acoes .aud-chip.ev-expirada,#auditoria-acoes .aud-chip.ev-substituida{background:var(--fill2,rgba(90,65,45,.12));color:var(--label2,#6B5A4C)}
#auditoria-acoes .aud-chip.ev-encaminhada{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#A45100)}
#auditoria-acoes .aud-mudou{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;overflow-wrap:anywhere}
#auditoria-acoes .aud-mudou .de{color:var(--label2,var(--sub,#8A7666));text-decoration:line-through;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}
#auditoria-acoes .aud-mudou .para{font-weight:600;color:var(--label,#3A2A1E)}
#auditoria-acoes .aud-vazio,#auditoria-acoes .aud-carregando{padding:18px 6px;color:var(--label2,var(--sub,#8A7666));text-align:center}
#auditoria-acoes .aud-mais{display:flex;justify-content:center;margin-top:8px}
#auditoria-acoes .aud-mais .btn,#auditoria-acoes .aud-cab .btn{min-height:44px}
#auditoria-acoes .btn[aria-busy="true"]{opacity:.7}
@media (max-width:760px){
  #auditoria-acoes .aud-linha{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"acao quando" "quem quem" "mudou mudou"}
  #auditoria-acoes .aud-quando{grid-area:quando;text-align:right} #auditoria-acoes .aud-acao{grid-area:acao} #auditoria-acoes .aud-quem{grid-area:quem} #auditoria-acoes .aud-mudou{grid-area:mudou}
  #auditoria-acoes .aud-filtros select{flex:1 1 140px}
}

/* /suporte.css */
/* 1.63.1 (onda B, B2): tela Suporte (web/suporte.js). Folha de vidro estilo Apple: no computador fica à direita, sobre
   a operação; no celular e no app ocupa a tela entre a barra de status e a borda de baixo (a barra de abas do app
   some enquanto a conversa está aberta). Usa os tokens do Hub (vidro grosso para texto denso, cores do sistema, --dt
   para o tamanho da letra) e respeita Reduzir Transparência, Aumentar Contraste e Reduzir Movimento. */
#suporte-raiz{position:fixed;inset:0;z-index:1300;pointer-events:none}
#suporte-raiz[hidden]{display:none}
/* .sr-only: o global do Hub (index.html, 10.2) */
#suporte-raiz .sup-veu{position:absolute;inset:0;background:var(--vidro-veu,rgba(58,42,30,.22));opacity:0;transition:opacity var(--dur-lenta,.32s) var(--curva-padrao,ease);pointer-events:auto}
#suporte-raiz.aberto .sup-veu{opacity:1}
#suporte-raiz .sup-painel{position:absolute;top:12px;right:12px;bottom:12px;width:min(480px,calc(100vw - 24px));display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;
  background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  border-radius:var(--r-sheet,20px);box-shadow:var(--vidro-brilho),var(--vidro-sombra-alta,0 18px 46px rgba(40,25,12,.2));color:var(--label,#3A2A1E);
  transform:translateX(24px);opacity:0;transition:transform var(--dur-lenta,.32s) var(--curva-padrao,cubic-bezier(.2,.8,.2,1)),opacity var(--dur-media,.2s) ease}
#suporte-raiz.aberto .sup-painel{transform:none;opacity:1}
body.suporte-aberto{overflow:hidden}

/* topo */
.sup-topo{flex:none;display:flex;align-items:flex-start;gap:4px;padding:14px 10px 10px 18px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14))}
.sup-titulos{flex:1;min-width:0}
.sup-topo h2{margin:2px 0 0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em}
.sup-sub{margin:3px 0 0;color:var(--label2,#6B5A4C);font-size:calc(0.8125rem * var(--dt,1));line-height:1.35}
.sup-icone{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--label2,#6B5A4C);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-rapida,.12s),transform var(--dur-rapida,.12s)}
.sup-icone[hidden]{display:none}
.sup-icone svg,.sup-mic svg,.sup-enviar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover){.sup-icone:hover{background:var(--fill,rgba(90,65,45,.08))}}
.sup-icone:active{transform:scale(var(--apertado-escala,.97));background:var(--fill2,rgba(90,65,45,.12))}
.sup-icone:focus-visible,.sup-botao:focus-visible,.sup-chip:focus-visible,.sup-mic:focus-visible,.sup-enviar:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}

/* conversa */
.sup-rolagem{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 14px 6px}
.sup-lista{display:flex;flex-direction:column;gap:10px}
.sup-msg{display:flex;flex-direction:column;max-width:88%;gap:4px}
.sup-pessoa{align-self:flex-end;align-items:flex-end}
.sup-assistente,.sup-humano,.sup-sistema{align-self:flex-start;align-items:flex-start}
.sup-bolha{padding:10px 14px;border-radius:18px;font-size:calc(1rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}
.sup-bolha p{margin:0}
.sup-bolha p+p{margin-top:6px}
.sup-bolha ol{margin:4px 0 0;padding-left:22px}
.sup-bolha li{margin:3px 0}
.sup-pessoa .sup-bolha{background:var(--on-blue,#0062BD);color:#fff;border-bottom-right-radius:6px}
.sup-assistente .sup-bolha{background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));border-bottom-left-radius:6px}
.sup-humano .sup-bolha{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,var(--surface,#fff));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sys-green,#34C759) 40%,transparent);border-bottom-left-radius:6px}
.sup-quem{display:inline-flex;align-items:center;gap:6px;font-size:max(0.6875rem, calc(0.75rem * var(--dt,1)));font-weight:700;color:color-mix(in srgb,var(--sys-green,#34C759) 60%,var(--label,#3A2A1E))}
.sup-quem svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.sup-hora{font-size:max(0.6875rem, calc(0.6875rem * var(--dt,1)));color:var(--label3,#8A7666);padding:0 6px}
.sup-hora.falhou{color:var(--sys-red,#FF383C);font-weight:600}
.sup-pensando .sup-bolha{display:inline-flex;align-items:center;gap:10px;color:var(--label2,#6B5A4C)}
.sup-pontos{display:inline-flex;gap:4px}
.sup-pontos i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.35;animation:sup-ponto 1.2s infinite ease-in-out}
.sup-pontos i:nth-child(2){animation-delay:.15s}.sup-pontos i:nth-child(3){animation-delay:.3s}
@keyframes sup-ponto{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:.9;transform:translateY(-3px)}}

/* vazio, sugestões e histórico */
.sup-vazio{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:28px 12px}
.sup-vazio h3{margin:6px 0 0;font-size:calc(1.25rem * var(--dt,1))}
.sup-vazio p{margin:0;color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1));line-height:1.4;max-width:340px}
.sup-marca{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sys-blue,#0088FF) 14%,transparent);color:var(--sys-blue,#0088FF)}
.sup-marca svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2}
.sup-sugestoes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}
.sup-chip{min-height:44px;padding:0 16px;border-radius:var(--r-pill,999px);border:0;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-weight:600;font-size:calc(0.9375rem * var(--dt,1));cursor:pointer;transition:transform var(--dur-rapida,.12s),background var(--dur-rapida,.12s)}
@media (hover:hover){.sup-chip:hover{background:var(--fill2,rgba(90,65,45,.12))}}
.sup-chip:active{transform:scale(var(--apertado-escala,.97));opacity:var(--apertado-opacidade,.6)}
.sup-chip.mini{min-height:44px;min-width:44px;padding:0 12px;font-size:calc(0.8125rem * var(--dt,1))} /* 1.66.0: alvo de 44 px também no "Resolveu?" */
.sup-nota{display:flex;align-items:center;gap:6px;margin-top:2px;color:var(--label2,#6B5A4C);font-size:calc(0.8125rem * var(--dt,1))}
.sup-roda{width:26px;height:26px;border-radius:50%;border:3px solid var(--fill2,rgba(90,65,45,.12));border-top-color:var(--sys-blue,#0088FF);animation:sup-gira .8s linear infinite}
@keyframes sup-gira{to{transform:rotate(360deg)}}
.sup-historico-topo{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.sup-historico h3{margin:0;font-size:calc(1.0625rem * var(--dt,1))}
.sup-historico ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sup-historico li button{width:100%;min-height:52px;text-align:left;border:0;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));padding:10px 14px;display:flex;flex-direction:column;gap:2px;cursor:pointer}
.sup-historico li button:active{transform:scale(var(--apertado-escala,.97))}
.sup-historico li b{font-size:calc(0.9375rem * var(--dt,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sup-historico li span{font-size:max(0.6875rem, calc(0.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}

/* cartões dentro da conversa */
.sup-cartao{width:min(360px,78vw);box-sizing:border-box;border-radius:var(--r-card,16px);padding:12px 14px;background:var(--vidro-regular,rgba(255,255,255,.66));box-shadow:var(--vidro-brilho),0 1px 2px rgba(40,25,12,.06),0 6px 18px rgba(40,25,12,.10);font-size:calc(0.875rem * var(--dt,1))}
.sup-cartao p{margin:6px 0 0;line-height:1.35}
.sup-cartao-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.sup-cartao-topo b{display:inline-flex;align-items:center;gap:6px;font-size:calc(0.9375rem * var(--dt,1))}
.sup-cartao-topo b svg,.sup-selo svg,.sup-alerta svg,.sup-erro svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sup-selo{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:max(0.6875rem, calc(0.75rem * var(--dt,1)));font-weight:700;padding:3px 9px;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);text-align:right}
.sup-mudanca{border-top:4px solid var(--sys-orange,#FF8D28)}
.sup-mudanca.estado-aplicada{border-top-color:var(--sys-green,#34C759)}
.sup-mudanca.estado-aplicada .sup-selo{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:color-mix(in srgb,var(--sys-green,#34C759) 55%,var(--label,#3A2A1E))}
.sup-mudanca.estado-recusada,.sup-mudanca.estado-expirada,.sup-mudanca.estado-falhou,.sup-mudanca.estado-indisponivel,.sup-mudanca.estado-substituida{border-top-color:var(--sys-gray3,#C7C7CC);opacity:.85}
.sup-depara{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:10px}
.sup-depara div{border-radius:12px;padding:8px 10px;background:var(--fill,rgba(90,65,45,.08));display:flex;flex-direction:column;gap:2px;min-width:0}
.sup-depara div:last-child{background:color-mix(in srgb,var(--sys-blue,#0088FF) 12%,transparent)}
.sup-depara span{font-size:max(0.6875rem, calc(0.6875rem * var(--dt,1)));font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--label2,#6B5A4C)}
.sup-depara b{font-size:calc(1.0625rem * var(--dt,1));overflow-wrap:anywhere}
.sup-depara i{font-style:normal;color:var(--label3,#8A7666)}
.sup-efeito,.sup-rodape{color:var(--label2,#6B5A4C);font-size:calc(0.8125rem * var(--dt,1))}
.sup-alerta{display:flex;gap:6px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent);color:var(--label,#3A2A1E)}
.sup-acoes{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px}
.sup-botao{min-height:44px;padding:0 16px;border-radius:12px;border:0;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-weight:600;font-size:calc(0.9375rem * var(--dt,1));cursor:pointer;transition:transform var(--dur-rapida,.12s),opacity var(--dur-rapida,.12s),background var(--dur-rapida,.12s)}
.sup-botao.primario{background:var(--on-blue,#0062BD);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--on-blue,#0062BD) 30%,transparent)}
.sup-botao:active{transform:scale(var(--apertado-escala,.97));opacity:var(--apertado-opacidade,.6)}
.sup-botao:disabled{opacity:var(--desligado-opacidade,.42);cursor:default;transform:none}
.sup-botao.carregando{position:relative;opacity:.8}
.sup-botao.erro{background:var(--sys-red,#FF383C);color:#fff}
.sup-pin{display:flex;flex-direction:column;gap:4px;flex:1 1 100%;font-size:max(0.6875rem, calc(0.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.sup-pin input{min-height:44px;border-radius:12px;border:1px solid var(--sep,rgba(58,42,30,.2));background:var(--surface,#fff);padding:0 12px;font-size:calc(1.125rem * var(--dt,1));letter-spacing:.3em}
.sup-chamado{border-top:4px solid var(--sys-indigo,#6155F5)}
.sup-chamado.respondido{border-top-color:var(--sys-green,#34C759)}
.sup-selo.prioridade-alta{background:color-mix(in srgb,var(--sys-red,#FF383C) 16%,transparent);color:color-mix(in srgb,var(--sys-red,#FF383C) 70%,var(--label,#3A2A1E))}
.sup-tela{border-top:4px solid var(--sys-blue,#0088FF)}
.sup-aparelho.falhou{border-top:4px solid var(--sys-red,#FF383C)}
.sup-diag ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sup-diag li{display:flex;gap:8px;align-items:flex-start;line-height:1.35}
.sup-ponto{flex:none;width:10px;height:10px;border-radius:50%;margin-top:5px;background:var(--sys-gray,#8E8E93)}
.sup-ponto.verde{background:var(--sys-green,#34C759)}.sup-ponto.vermelho{background:var(--sys-red,#FF383C)}.sup-ponto.amarelo{background:var(--sys-orange,#FF8D28)}

/* erro e aviso */
.sup-erro{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--sys-red,#FF383C) 12%,transparent);color:var(--label,#3A2A1E);font-size:calc(0.875rem * var(--dt,1))}
.sup-erro span{flex:1;min-width:160px}
.sup-aviso{flex:none;margin:0 14px 6px;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent);font-size:calc(0.8125rem * var(--dt,1))}

/* campo de texto */
.sup-compor{flex:none;display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.sup-compor textarea{flex:1;min-height:44px;max-height:132px;resize:none;box-sizing:border-box;border:0;border-radius:22px;padding:11px 16px;background:var(--surface,#fff);box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.18));color:var(--label,#3A2A1E);font:inherit;font-size:calc(1rem * var(--dt,1));line-height:1.35}
.sup-compor textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)}
.sup-mic,.sup-enviar{flex:none;width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;transition:transform var(--dur-rapida,.12s),opacity var(--dur-rapida,.12s),background var(--dur-rapida,.12s)}
.sup-mic{background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E)}
.sup-mic[hidden]{display:none}
.sup-mic.gravando{background:var(--sys-red,#FF383C);color:#fff;animation:sup-pulso 1.4s infinite}
@keyframes sup-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--sys-red,#FF383C) 45%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.sup-enviar{background:var(--on-blue,#0062BD);color:#fff}
.sup-enviar:disabled{opacity:var(--desligado-opacidade,.42);cursor:default}
.sup-mic:active,.sup-enviar:not(:disabled):active{transform:scale(.92)}

/* celular e app: folha em tela cheia, acima da área segura */
@media (max-width:640px){
  #suporte-raiz .sup-painel{top:max(8px,env(safe-area-inset-top));left:0;right:0;bottom:0;width:auto;border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0;transform:translateY(40px)}
  .sup-compor{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .sup-cartao{width:min(360px,80vw)}
}
/* com a conversa aberta as peças nativas (barra de abas e botões do topo) somem (HubNativo.ocultarBarra): a folha começa logo abaixo da barra de status */
html.app-nativo #suporte-raiz .sup-painel{top:calc(var(--app-status,env(safe-area-inset-top)) + 8px);left:0;right:0;bottom:0;width:auto;border-radius:22px 22px 0 0;transform:translateY(40px)}
html.app-nativo #suporte-raiz.aberto .sup-painel{transform:none}
html.app-nativo .sup-compor{padding-bottom:max(12px,env(safe-area-inset-bottom))}

/* Convivência com o cartão global de aprovação (web/aprovacoes.js, #aprov-raiz, canto de baixo à direita): com a
   conversa aberta, no computador ele fica à esquerda da folha (senão cobre o botão Enviar); no celular e no app, logo
   acima do campo de texto. */
@media (min-width:641px){body.suporte-aberto #aprov-raiz{right:calc(min(480px,100vw - 24px) + 28px)}}
@media (max-width:640px){body.suporte-aberto #aprov-raiz{bottom:calc(env(safe-area-inset-bottom) + 84px)}}
html.app-nativo body.suporte-aberto #aprov-raiz{bottom:calc(env(safe-area-inset-bottom) + 84px)}

/* escuro, contraste, transparência, movimento */
body.dark .sup-assistente .sup-bolha,body.dark .sup-historico li button,body.dark .sup-compor textarea,body.dark .sup-pin input{background:var(--surface2,#2C2A27)}
body.dark .sup-cartao{box-shadow:var(--vidro-brilho),0 6px 18px rgba(0,0,0,.4)}
@media (prefers-reduced-transparency:reduce){#suporte-raiz .sup-painel{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--vidro-solido,#FBF8F4)}.sup-cartao{background:var(--surface,#fff)}}
@media (prefers-contrast:more){.sup-assistente .sup-bolha,.sup-cartao{box-shadow:inset 0 0 0 1.5px var(--sep,rgba(42,28,18,.32))}}
@media (prefers-reduced-motion:reduce){#suporte-raiz .sup-painel,#suporte-raiz .sup-veu{transition:none}.sup-pontos i,.sup-roda,.sup-mic.gravando{animation:none}}

/* 1.66.0 (onda H): o Cérebro no lugar do microfone (a mesma esfera animada do Cérebro do sistema, .aiorb2 do index.html) */
#suporte-raiz .sup-cerebro{background:transparent;padding:0;overflow:visible}
#suporte-raiz .sup-cerebro .aiorb2.grande{width:40px;height:40px}
#suporte-raiz .sup-cerebro.gravando{background:transparent;animation:none}
#suporte-raiz .sup-cerebro.gravando .aiorb2.grande{animation-duration:1.2s;box-shadow:0 0 0 2px rgba(255,255,255,.35),0 0 26px 8px rgba(224,52,46,.55)}
#suporte-raiz .sup-marca-cerebro{flex:none;display:grid;place-items:center;width:34px;height:34px;margin-right:2px}
#suporte-raiz .sup-marca-cerebro .aiorb2{width:30px;height:30px}

/* 1.69.1: o ícone do Cérebro é o mesmo do sistema (o cérebro da marca, .philippe-brain do philippe-orb.css), e o Cérebro ouve
   DENTRO da janela do suporte: a fala aparece no campo daqui e nada do Cérebro acende por trás (barra, brilho, desfoque). */
#suporte-raiz .sup-cerebro .sup-cerebro-icone{width:34px;height:38px}
#suporte-raiz .sup-marca-cerebro .philippe-brain{width:28px;height:31px}
#suporte-raiz .sup-cerebro.gravando .sup-cerebro-icone img{animation:sup-cerebro-ouve 1.2s ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(255,207,83,.95)) drop-shadow(0 0 8px rgba(224,52,46,.55))}
@keyframes sup-cerebro-ouve{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
#suporte-raiz.sup-ouvindo #sup-texto{box-shadow:0 0 0 2px var(--sys-red,#FF383C) inset}
body.cerebro-no-suporte #aiz,body.cerebro-no-suporte #aifloat,body.cerebro-no-suporte #aikdsbar,body.cerebro-no-suporte .aiframe,body.cerebro-no-suporte .siriorb{visibility:hidden!important;opacity:0!important}
html:not(.app-nativo) body.cerebro-no-suporte.ai-on{padding-top:var(--topo-reserva)}
/* o modo de conversa do Cérebro (ws-hero-mode) esconde o topo; ouvindo no Suporte, a tela por trás fica como estava */
html:not(.app-nativo) body.cerebro-no-suporte.ws-hero-mode header.top{display:grid!important}
/* e o logo do topo não vira o cérebro aceso: quem mostra que está ouvindo é o microfone do Suporte */
body.cerebro-no-suporte.ai-on #aibtn>.philippe-brain{display:none!important}
body.cerebro-no-suporte.ai-on .top .brand img.lday,body.cerebro-no-suporte.ai-on .top .brand img.lnight{opacity:1;transform:none;animation:none;filter:none}
html:not(.app-nativo) body.cerebro-no-suporte.ai-on header.top>#aibtn{background:var(--topo-vidro,rgba(255,255,255,.62));box-shadow:var(--vidro-brilho),0 1px 2px rgba(40,25,12,.08),0 4px 14px rgba(40,25,12,.12)}
body.cerebro-no-suporte.ai-on main,body.cerebro-no-suporte.ai-on .top{transform:none!important;filter:none!important}
body.cerebro-no-suporte.ai-on::before,body.cerebro-no-suporte.ai-on::after{opacity:0!important;visibility:hidden!important}
@media (prefers-reduced-motion:reduce){#suporte-raiz .sup-cerebro.gravando .sup-cerebro-icone img{animation:none}}

/* /atualizacoes.css */
/* 1.64.0: ATUALIZAÇÕES (web/atualizacoes.js). Painel de vidro do gestor, selo vermelho do iPhone e o cartão "O Hub foi
   atualizado". Tokens do Hub (vidro grosso para texto denso, cores do sistema, --dt para o tamanho da letra), com valor
   reserva em todo var() para o arquivo funcionar mesmo antes do bloco de vidro carregar. Respeita Reduzir Transparência,
   Aumentar Contraste e Reduzir Movimento. */

/* ---------- selo do iPhone: círculo vermelho #FF3B30, número branco, anel da cor do fundo ---------- */
.hub-selo{display:inline-grid;place-items:center;box-sizing:border-box;min-width:calc(20px * var(--dt,1));height:calc(20px * var(--dt,1));padding:0 6px;border-radius:999px;background:#FF3B30;color:#fff;font-weight:700;font-size:max(0.6875rem, calc(0.75rem * var(--dt,1)));line-height:1;font-variant-numeric:tabular-nums;letter-spacing:0;box-shadow:0 0 0 2px var(--page,#F4EFE8);vertical-align:middle;margin-left:6px;animation:atu-selo-entra var(--dur-lenta,.32s) var(--curva-mola,cubic-bezier(.2,.8,.2,1))}
@keyframes atu-selo-entra{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
/* No programa do Windows, com versão nova para ESTE computador: o menu, a aba Configurações e o botão que abre as
   Configurações do programa ganham o selo (a classe vem de web/atualizacoes.js, pelo window.desktop). */
html.hub-atualizacao-nova #menubtn{position:relative}
html.hub-atualizacao-nova #menubtn::after,html.hub-atualizacao-nova #seg button[data-view="cfg"]::after,html.hub-atualizacao-nova #menudd button[data-view="cfg"]::after,html.hub-atualizacao-nova [data-native-config]::after{
  content:"1";display:inline-grid;place-items:center;box-sizing:border-box;min-width:calc(18px * var(--dt,1));height:calc(18px * var(--dt,1));padding:0 5px;border-radius:999px;background:#FF3B30;color:#fff;font-weight:700;font-size:max(0.6875rem, calc(0.6875rem * var(--dt,1)));line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--page,#F4EFE8);margin-left:6px;vertical-align:middle}
html.hub-atualizacao-nova #menubtn::after{position:absolute;top:2px;right:2px;margin:0;pointer-events:none}

/* ---------- painel ---------- */
#atu-raiz{position:fixed;inset:0;z-index:1290;pointer-events:none}
#atu-raiz[hidden]{display:none}
#atu-raiz .atu-veu{position:absolute;inset:0;background:var(--vidro-veu,rgba(58,42,30,.22));opacity:0;transition:opacity var(--dur-lenta,.32s) var(--curva-padrao,ease);pointer-events:auto}
#atu-raiz.aberto .atu-veu{opacity:1}
#atu-raiz .atu-painel{position:absolute;top:12px;right:12px;bottom:12px;width:min(520px,calc(100vw - 24px));display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;
  background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  border-radius:var(--r-sheet,20px);box-shadow:var(--vidro-brilho,inset 0 1px 0 rgba(255,255,255,.5)),var(--vidro-sombra-alta,0 18px 46px rgba(40,25,12,.2));color:var(--label,#3A2A1E);
  transform:translateX(24px);opacity:0;transition:transform var(--dur-lenta,.32s) var(--curva-padrao,cubic-bezier(.2,.8,.2,1)),opacity var(--dur-media,.2s) ease}
#atu-raiz.aberto .atu-painel{transform:none;opacity:1}
body.atualizacoes-aberto{overflow:hidden}
.atu-topo{flex:none;display:flex;align-items:flex-start;gap:4px;padding:14px 10px 10px 16px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14))}
.atu-titulos{flex:1;min-width:0}
.atu-topo h2{margin:2px 0 0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em}
.atu-sub{margin:3px 0 0;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));line-height:1.35}
.atu-icone{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--label2,#6B5A4C);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-rapida,.12s),transform var(--dur-rapida,.12s)}
.atu-icone svg,.atu-botao svg,.atu-pc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover){.atu-icone:hover{background:var(--fill,rgba(90,65,45,.08))}}
.atu-icone:active{transform:scale(var(--apertado-escala,.97));background:var(--fill2,rgba(90,65,45,.12))}
.atu-icone:focus-visible,.atu-botao:focus-visible,.atu-aviso-ok:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.atu-rolagem{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 14px 8px}
.atu-cartao{padding:14px 16px;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));margin-bottom:14px}
.atu-vazio b{display:block;font-size:calc(1rem * var(--dt,1))}
.atu-vazio p{margin:6px 0 0;color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.atu-versao-topo{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.atu-rotulo{display:block;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.atu-versao-topo strong{display:block;font-size:calc(1.75rem * var(--dt,1));font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.atu-data{color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.atu-alerta{margin:10px 0 0;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent);font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.atu-novidades h3,.atu-aviso-cartao h3{margin:12px 0 2px;font-size:calc(1.0625rem * var(--dt,1));font-weight:600}
.atu-resumo{margin:0 0 4px;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.atu-novidades h4,.atu-aviso-novidades h4{margin:12px 0 4px;color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));font-weight:600}
.atu-novidades ul,.atu-aviso-novidades ul{margin:0;padding-left:20px}
.atu-novidades li,.atu-aviso-novidades li{margin:3px 0;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.atu-detalhes{margin-top:6px}
.atu-detalhes summary{display:flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;list-style:none;color:var(--ink-blue,#0066CC);font-weight:600;font-size:calc(0.9375rem * var(--dt,1))}
.atu-detalhes summary::-webkit-details-marker{display:none}
.atu-detalhes summary::after{content:"›";font-size:calc(1.25rem * var(--dt,1));line-height:1;transition:transform var(--dur-rapida,.12s)}
.atu-detalhes[open] summary::after{transform:rotate(90deg)}
.atu-detalhes summary:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px;border-radius:8px}
.atu-unidade{display:flex;align-items:center;gap:8px;margin:18px 4px 8px;font-size:calc(0.9375rem * var(--dt,1));font-weight:600;color:var(--label2,#6B5A4C);text-transform:none}
.atu-unidade-conta{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600;color:var(--ink-red,#B42318)}
.atu-lista{list-style:none;margin:0;padding:0;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));overflow:hidden}
.atu-linha{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.atu-linha:first-child{border-top:0}
.atu-pc{position:relative;flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.atu-pc .hub-selo{position:absolute;top:-6px;right:-8px;margin:0;box-shadow:0 0 0 2px var(--surface,#fff)}
.atu-pc-texto{flex:1;min-width:0}
.atu-pc-nome{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(1rem * var(--dt,1))}
.atu-papel{padding:2px 8px;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
.atu-pc-versao{margin-top:2px;color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));font-variant-numeric:tabular-nums}
.atu-pc-como{margin-top:6px;font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.atu-pc-extra{margin-top:4px;color:var(--label3,#8A7666);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));line-height:1.35}
.atu-pc-status{flex:none;align-self:center}
.atu-chip{display:inline-block;padding:4px 10px;border-radius:999px;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600;white-space:nowrap}
.atu-chip.verde{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1E7B34)}
.atu-chip.vermelho{background:color-mix(in srgb,#FF3B30 14%,transparent);color:var(--ink-red,#B42318)}
.atu-chip.cinza{background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.atu-como-instalar{margin:16px 4px 6px;color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));line-height:1.45}
.atu-carregando{display:flex;align-items:center;gap:10px;padding:24px 8px;color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1))}
.atu-spin{width:16px;height:16px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;display:inline-block;flex:none;animation:atu-gira .7s linear infinite}
@keyframes atu-gira{to{transform:rotate(360deg)}}
.atu-rodape{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px 14px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
@media (min-width:641px){.atu-topo{padding-left:20px}.atu-rodape{padding-left:20px;padding-right:20px}} /* 1.72.0: 20 pt de margem no iPad */
.atu-status{margin:0;flex:1;min-width:0;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));line-height:1.35}
.atu-status[data-tipo=erro]{color:var(--ink-red,#B42318);font-weight:600}
.atu-status[data-tipo=ok]{color:var(--ink-green,#1E7B34)}
/* Botão com estado: apertado encolhe, carregando com a frase, verde ou vermelho no fim. */
.atu-botao{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-weight:600;font-size:calc(0.9375rem * var(--dt,1));cursor:pointer;transition:transform var(--dur-rapida,.12s),background var(--dur-rapida,.12s),color var(--dur-rapida,.12s)}
.atu-botao:active{transform:scale(var(--apertado-escala,.97));background:var(--fill2,rgba(90,65,45,.12))}
.atu-botao[data-estado=carregando]{cursor:progress}
.atu-botao[data-estado=ok]{background:var(--sys-green,#34C759);color:#fff}
.atu-botao[data-estado=erro]{background:var(--sys-red,#FF383C);color:#fff}

/* ---------- cartão depois de reiniciar ---------- */
#atu-aviso{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:16px}
#atu-aviso .atu-aviso-veu{position:absolute;inset:0;background:var(--vidro-veu,rgba(58,42,30,.28));opacity:0;transition:opacity var(--dur-lenta,.32s) ease}
#atu-aviso.aberto .atu-aviso-veu{opacity:1}
.atu-aviso-cartao{position:relative;box-sizing:border-box;width:min(520px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:24px 24px 20px;border-radius:var(--r-sheet,24px);text-align:left;color:var(--label,#3A2A1E);
  background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  box-shadow:var(--vidro-brilho,inset 0 1px 0 rgba(255,255,255,.5)),var(--vidro-sombra-alta,0 18px 46px rgba(40,25,12,.22));transform:scale(.94);opacity:0;transition:transform var(--dur-lenta,.32s) var(--curva-mola,cubic-bezier(.2,.8,.2,1)),opacity var(--dur-media,.2s) ease}
#atu-aviso.aberto .atu-aviso-cartao{transform:none;opacity:1}
.atu-aviso-marca{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin-bottom:10px;background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1E7B34);font-size:calc(1.625rem * var(--dt,1));font-weight:700}
.atu-aviso-cartao h2{margin:0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.2}
.atu-aviso-texto{margin:8px 0 0;font-size:calc(1rem * var(--dt,1));line-height:1.45;color:var(--label,#3A2A1E)}
.atu-aviso-novidades{margin-top:6px}
.atu-aviso-ok{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:20px;border:0;border-radius:14px;background:var(--on-blue,#0062BD);color:#fff;font-weight:600;font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));cursor:pointer;transition:transform var(--dur-rapida,.12s),filter var(--dur-rapida,.12s)}
.atu-aviso-ok:active{transform:scale(var(--apertado-escala,.97));filter:brightness(.9)}

/* ---------- celular: a folha ocupa a tela ---------- */
@media (max-width:640px){#atu-raiz .atu-painel{top:0;right:0;bottom:0;width:100vw;border-radius:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}}
@media (prefers-reduced-motion:reduce){#atu-raiz .atu-painel,.atu-aviso-cartao,.hub-selo,.atu-spin{transition:none;animation:none}}
@media (prefers-reduced-transparency:reduce){#atu-raiz .atu-painel,.atu-aviso-cartao{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--vidro-solido,#FBF8F4)}}
@media (prefers-contrast:more){.atu-lista,.atu-cartao,.atu-aviso-cartao{box-shadow:inset 0 0 0 1.5px var(--label,#3A2A1E)}}
@media (forced-colors:active){.hub-selo,html.hub-atualizacao-nova #menubtn::after{forced-color-adjust:none}}
/* 1.70.0 (auditoria): botão cheio com texto branco no tom --on-blue (o azul do sistema com branco dá 3,5:1) */
.atu-aviso-ok{background:var(--on-blue,#0062B8)}

/* /negociacoes.css */
/* 1.64.1: NEGOCIAÇÕES E CANCELAMENTOS (web/negociacoes.js). Folha de vidro no padrão das telas da 1.64.0 (Atualizações,
   Usuários): tokens do Hub com valor reserva em todo var(), claro e escuro pelos mesmos tokens (body.dark), alvos de 44 px,
   foco visível. Computador largo (a partir de 1100 px): lista e ficha lado a lado. Mais estreito: a ficha desliza por cima
   da lista (a lista guarda a rolagem). iPhone (até 640 px): folha em tela cheia com a área segura. Respeita Reduzir
   Transparência, Aumentar Contraste e Reduzir Movimento. */

/* 1.64.3: A CENTRAL É UMA TELA DO HUB (#view-neg), em tela cheia, e a FICHA DO CASO é uma folha de 95% da altura
   (#neg-folha-raiz) que sobe com a mola do iOS e fecha só puxando para baixo (web/folha.js). A subida e a descida
   animam só transform (a folha) e opacity (o véu); will-change só enquanto anima (.animando) ou arrasta (inline). */
#neg-raiz.neg-tela{box-sizing:border-box;width:100%;padding:14px 18px 28px;color:var(--label,#3A2A1E)}
#neg-raiz .neg-topo{padding:4px 0 12px;border-bottom:0}
#neg-raiz .neg-topo h2{outline:none}
/* os casos: uma coluna no celular, grade que usa a largura toda no computador */
#neg-raiz .neg-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px;align-items:start}
#neg-raiz .neg-lista>.neg-vazio{grid-column:1/-1}
@media (min-width:1100px){
  #neg-raiz .neg-resumo{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr);gap:10px;align-items:stretch}
  #neg-raiz .neg-resumo>.neg-tiles{margin:0}
  #neg-raiz .neg-resumo>.neg-nota{grid-column:1/-1}
  #neg-raiz .neg-tiles.contas{grid-template-columns:repeat(5,minmax(0,1fr))}
  #neg-raiz .neg-filtros{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(260px,360px);gap:10px;align-items:start}
  #neg-raiz .neg-filtros>.neg-datas{grid-column:1/-1}
}
#neg-raiz .neg-abas{position:static;margin:0 0 12px;padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border:0}
@media (min-width:900px){#neg-raiz .neg-abas{max-width:720px}}

/* ---------- a ficha: folha de 95% ---------- */
#neg-folha-raiz{position:fixed;inset:0;z-index:1260}
body.neg-folha-aberta{overflow:hidden}
#neg-folha-raiz[hidden]{display:none}
.neg-folha-veu{position:absolute;inset:0;background:rgba(20,15,10,.46);opacity:0;transition:opacity var(--dur-folha,.38s) ease}
body.dark .neg-folha-veu{background:rgba(0,0,0,.6)}
#neg-folha-raiz.aberta .neg-folha-veu{opacity:var(--veu,1)}
.neg-folha{--folha-topo:max(5dvh, calc(var(--app-status,env(safe-area-inset-top,0px)) + 8px));
  position:absolute;left:0;right:0;bottom:0;margin:0 auto;top:var(--folha-topo);width:min(1180px,100%);box-sizing:border-box;
  display:flex;flex-direction:column;overflow:hidden;border-radius:22px 22px 0 0;
  background:var(--vidro-solido,#FBF8F4);color:var(--label,#3A2A1E);box-shadow:0 -10px 44px rgba(0,0,0,.22);
  transform:translate3d(0,100%,0);transition:transform var(--dur-folha,.38s) var(--curva-folha,cubic-bezier(.32,.72,0,1));
  touch-action:pan-y;-webkit-backface-visibility:hidden;backface-visibility:hidden}
body.dark .neg-folha{background:var(--vidro-solido,#1C1916)}
#neg-folha-raiz.aberta .neg-folha{transform:translate3d(0,0,0)}
#neg-folha-raiz.animando .neg-folha{will-change:transform}
#neg-folha-raiz.animando .neg-folha-veu{will-change:opacity}
#neg-folha-raiz.hub-folha-arrastando .neg-folha-veu{transition:none}
.neg-folha-alca{flex:none;display:flex;justify-content:center;align-items:center;height:22px;cursor:grab;touch-action:none}
.neg-folha-alca span{width:40px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3))}
.neg-folha .neg-ficha-topo{cursor:grab;user-select:none;-webkit-user-select:none;padding-top:2px}
#neg-folha-raiz.hub-folha-arrastando .neg-folha-alca,#neg-folha-raiz.hub-folha-arrastando .neg-ficha-topo{cursor:grabbing}
.neg-folha-conteudo{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.neg-folha .neg-ficha-corpo{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.neg-folha .neg-ficha-rodape{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
/* o botão de fechar que só o leitor de tela anuncia (VoiceOver, TalkBack) e o teclado alcança; ninguém vê */
.neg-so-leitor{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* folha larga: a conversa e o pedido lado a lado */
@media (min-width:1000px){
  .neg-folha .neg-ficha-corpo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:22px;align-content:start}
  .neg-folha .neg-ficha-corpo>.neg-marca,.neg-folha .neg-ficha-corpo>.neg-faixa,.neg-folha .neg-ficha-corpo>.neg-carregando,.neg-folha .neg-ficha-corpo>.neg-vazio{grid-column:1/-1}
}

/* ---------- topo, rolagem, rodapé ---------- */
.neg-topo,.neg-ficha-topo{flex:none;display:flex;align-items:flex-start;gap:4px;padding:14px 8px 10px 18px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14))}
.neg-ficha-topo{padding-left:8px}
.neg-titulos{flex:1;min-width:0}
.neg-topo h2{margin:2px 0 0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.2}
.neg-ficha-topo h3{margin:2px 0 0;font-size:calc(1.1875rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.25;outline:none}
.neg-sub{margin:3px 0 0;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));line-height:1.35}
.neg-icone{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--label2,#6B5A4C);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-rapida,.12s),transform var(--dur-rapida,.12s)}
.neg-icone svg,.neg-voltar svg,.neg-busca-icone svg,.neg-ficha-vazia svg,.neg-chip.icone svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover){.neg-icone:hover,.neg-voltar:hover{background:var(--fill,rgba(90,65,45,.08))}}
.neg-icone:active,.neg-voltar:active,.neg-botao:active,.neg-card-botao:active{transform:scale(var(--apertado-escala,.97))}
.neg-icone.girando svg{animation:neg-gira .8s linear infinite}
.neg-voltar{flex:none;display:inline-flex;align-items:center;gap:2px;min-height:44px;min-width:44px;padding:0 10px 0 4px;border:0;border-radius:var(--r-pill,999px);background:transparent;color:var(--ink-blue,#0066CC);font-weight:600;font-size:calc(1rem * var(--dt,1));cursor:pointer}
#neg-raiz button:focus-visible,#neg-raiz select:focus-visible,#neg-raiz input:focus-visible,#neg-raiz [tabindex]:focus-visible,#neg-folha-raiz button:focus-visible,#neg-folha-raiz [tabindex]:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.neg-rolagem,.neg-ficha-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 14px 16px}
.neg-ficha-rodape{flex:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:10px 14px 14px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.neg-botao{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-weight:600;font-size:max(0.6875rem, calc(0.9375rem * var(--dt,1)));cursor:pointer;transition:transform var(--dur-rapida,.12s),filter var(--dur-rapida,.12s)}
.neg-botao.primario{background:var(--sys-red,#D92D20);color:#fff}
@media (hover:hover){.neg-botao.primario:hover{filter:brightness(.95)}}

/* ---------- avisos, resumo ---------- */
.neg-alerta{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent);font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.neg-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
.neg-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:10px 12px;border:0;border-radius:var(--r-card,14px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));color:var(--label,#3A2A1E);text-align:left;font:inherit;min-width:0}
button.neg-tile{cursor:pointer;transition:transform var(--dur-rapida,.12s)}
button.neg-tile:active{transform:scale(var(--apertado-escala,.97))}
.neg-tile-rotulo{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
.neg-tile strong{font-size:calc(1.5rem * var(--dt,1));font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15;max-width:100%;overflow-wrap:anywhere}
.neg-tiles.dinheiro strong{font-size:calc(1.125rem * var(--dt,1))}
.neg-tile-extra{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label3,#8A7666);line-height:1.3}
.neg-tile.laranja strong{color:var(--ink-orange,#A84300)}
.neg-tile.azul strong{color:var(--ink-blue,#0066CC)}
.neg-tile.vermelho strong{color:var(--ink-red,#B42318)}
.neg-tile.verde strong{color:var(--ink-green,#1E7B34)}
/* 1.64.2: todo cartão é um filtro. Ligado: contorno e fundo na cor do cartão e um ponto no canto. */
.neg-tile{position:relative;--tile-cor:var(--label2,#6B5A4C)}
.neg-tile.laranja{--tile-cor:var(--ink-orange,#A84300)}.neg-tile.azul{--tile-cor:var(--ink-blue,#0066CC)}.neg-tile.vermelho,.neg-tile.contra{--tile-cor:var(--ink-red,#B42318)}
.neg-tile.tag-debito{--tile-cor:var(--ink-red,#B42318)}.neg-tile.tag-credito{--tile-cor:var(--ink-green,#1E7B34)} /* 1.72.0: vermelho e verde fixos davam 2,5 e 3:1 no escuro */.neg-tile.mantida{--tile-cor:var(--ink-green,#1E7B34)}
.neg-tile.on{box-shadow:inset 0 0 0 2.5px var(--tile-cor);background:color-mix(in srgb,var(--tile-cor) 11%,var(--surface,#fff))}
.neg-tile.on::after{content:'';position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:var(--tile-cor)}
.neg-tile:focus-visible{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
.neg-tiles.contas strong{font-size:calc(1.125rem * var(--dt,1));color:var(--tile-cor)}
.neg-tiles.contas .neg-tile-rotulo{padding:1px 8px;border-radius:999px;margin-left:-2px;max-width:calc(100% - 12px)}
/* 1.64.2: o nome da marca numa linha só (antes "Debitado da / loja" quebrava em duas no cartão estreito) */
.neg-tiles.contas{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.neg-tiles.contas .neg-tile-rotulo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
/* 1.72.0 (auditoria de design 1720): "Crédito para a loja" era cortado com reticências (131 px de texto numa caixa de 128) no
   computador. A etiqueta tem 6 px de respiro, o cartão 10, e os dois grupos só ficam lado a lado a partir de 1400 px, com
   mais largura para os cinco cartões de resultado; abaixo disso cada grupo usa a largura toda. */
.neg-tiles.contas .neg-tile{padding-left:10px;padding-right:10px}
.neg-tiles.contas .neg-tile-rotulo{padding:1px 6px;max-width:100%}
@media (min-width:1100px) and (max-width:1399px){#neg-raiz .neg-resumo{grid-template-columns:minmax(0,1fr)}}
@media (min-width:1400px){#neg-raiz .neg-resumo{grid-template-columns:minmax(0,5fr) minmax(0,9fr)}}
.neg-tile.tag-debito .neg-tile-rotulo{background:#B42318;color:#fff}
.neg-tile.tag-credito .neg-tile-rotulo{background:#1E7B34;color:#fff}
.neg-tile.mantida .neg-tile-rotulo{box-shadow:inset 0 0 0 1.5px var(--ink-green,#1E7B34);color:var(--ink-green,#1E7B34)}
.neg-tile.contra .neg-tile-rotulo{background:color-mix(in srgb,var(--sys-red,#FF383C) 10%,transparent);color:var(--ink-red,#B42318)}
.neg-tile.cinza .neg-tile-rotulo{background:var(--fill,rgba(90,65,45,.08))}
.neg-nota{margin:2px 2px 12px;color:var(--label3,#8A7666);font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));line-height:1.4}

/* ---------- filtros ---------- */
.neg-filtros{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.neg-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:2px;border-radius:12px;background:var(--fill,rgba(90,65,45,.08))}
.neg-seg button{min-height:44px;border:0;border-radius:10px;background:transparent;color:var(--label,#3A2A1E);font-weight:600;font-size:calc(0.875rem * var(--dt,1));cursor:pointer;padding:0 4px}
.neg-seg button.on{background:var(--surface,#fff);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.neg-datas,.neg-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.neg-mais{border-radius:12px;background:var(--fill,rgba(90,65,45,.06))}
.neg-mais summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;cursor:pointer;list-style:none;font-weight:600;font-size:calc(0.875rem * var(--dt,1))}
.neg-mais summary::-webkit-details-marker{display:none}
.neg-mais summary::after{content:"›";margin-left:4px;font-size:calc(1.25rem * var(--dt,1));line-height:1;transition:transform var(--dur-rapida,.12s);color:var(--label2,#6B5A4C)}
.neg-mais[open] summary::after{transform:rotate(90deg)}
.neg-mais-ativos{margin-left:auto;color:var(--label2,#6B5A4C);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.neg-mais .neg-selects{padding:0 10px 10px}
@media (min-width:641px){.neg-mais .neg-selects{grid-template-columns:repeat(3,minmax(0,1fr))}.neg-mais .neg-campo select{font-size:calc(0.9375rem * var(--dt,1));padding:0 8px}}
.neg-datas label,.neg-campo{display:flex;flex-direction:column;gap:3px;min-width:0}
.neg-datas span,.neg-campo span{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
.neg-datas input,.neg-campo select,.neg-busca input{box-sizing:border-box;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.2));color:var(--label,#3A2A1E);font:inherit;font-size:max(1rem, calc(0.9375rem * var(--dt,1)))}
.neg-busca{position:relative;display:block}
.neg-busca-icone{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--label3,#8A7666);display:grid;pointer-events:none}
.neg-busca-icone svg{width:18px;height:18px}
.neg-busca input{padding-left:40px}

/* ---------- abas (quatro colunas: cabem no iPhone sem rolar para o lado) ---------- */
.neg-abas{position:sticky;top:-12px;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 -14px 10px;padding:8px 14px;background:var(--vidro-grosso,rgba(252,250,247,.92));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.neg-abas button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:48px;padding:4px 2px;border:0;border-radius:12px;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-weight:600;font-size:calc(0.8125rem * var(--dt,1));line-height:1.2;cursor:pointer}
.neg-abas button span:first-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.neg-abas button.on{background:var(--label,#3A2A1E);color:var(--page,#fff)}
.neg-aba-conta{font-variant-numeric:tabular-nums;font-size:calc(0.9375rem * var(--dt,1));font-weight:700}

/* ---------- cartões ---------- */
.neg-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.neg-card{border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));overflow:hidden}
.neg-card.pendente{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--sys-orange,#FF8D28) 70%,transparent)}
.neg-card.selecionado{box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)}
.neg-card-botao{display:flex;flex-direction:column;gap:5px;width:100%;min-height:44px;padding:12px 14px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:transform var(--dur-rapida,.12s),background var(--dur-rapida,.12s)}
@media (hover:hover){.neg-card-botao:hover{background:var(--fill,rgba(90,65,45,.05))}}
.neg-card-topo{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:calc(0.875rem * var(--dt,1))}
.neg-card-topo time{margin-left:auto;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-variant-numeric:tabular-nums}
.neg-loja{color:var(--label2,#6B5A4C)}
.neg-plat{display:inline-block;padding:2px 8px;border-radius:6px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:700;letter-spacing:.01em}
.neg-plat.ifood{background:#C8102E;color:#fff}
.neg-plat.nine{background:#FFD60A;color:#1C1C1E}
.neg-card-titulo{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:calc(1rem * var(--dt,1));line-height:1.3}
.neg-valor{margin-left:auto;flex:none;font-variant-numeric:tabular-nums;font-size:max(0.6875rem, calc(0.9375rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.neg-valor.perdido{color:var(--ink-red,#B42318)}
.neg-valor.defendido{color:var(--ink-green,#1E7B34)}
.neg-card-msg{color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1));line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.neg-card-cliente{color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.neg-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.neg-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600;line-height:1.3;max-width:100%;overflow-wrap:anywhere}
.neg-chip.icone svg{width:15px;height:15px}
.neg-chip b{font-variant-numeric:tabular-nums}
.neg-chip.laranja{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#A84300)}
.neg-chip.verde{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1E7B34)}
.neg-chip.vermelho{background:color-mix(in srgb,var(--sys-red,#FF383C) 16%,transparent);color:var(--ink-red,#B42318)}
.neg-chip.vermelho-claro{background:color-mix(in srgb,var(--sys-red,#FF383C) 9%,transparent);color:var(--ink-red,#B42318)}
body.dark .neg-chip.vermelho-claro{color:color-mix(in srgb,var(--sys-red,#FF4245) 55%,#fff)} /* 1.72.0: 4,1:1 no escuro */
.neg-chip.azul{background:color-mix(in srgb,var(--sys-blue,#0088FF) 14%,transparent);color:var(--ink-blue,#0066CC)}
.neg-chip.roxo{background:color-mix(in srgb,var(--sys-purple,#B02FC2) 14%,transparent);color:color-mix(in srgb,var(--sys-purple,#B02FC2) 72%,var(--label,#3A2A1E))}
.neg-chip.amarelo{background:color-mix(in srgb,var(--sys-yellow,#FFCC00) 26%,transparent);color:var(--ink-yellow,#6B5200)}
.neg-chip.cinza{background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
/* 1.64.2: as marcas do Philippe são as mais fortes da tela: cheias, com ícone e primeiro. Recusa mantida (nada
   debitado) tem só o contorno verde; contra a loja sem marca, o vermelho claro. */
.neg-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 11px 4px 7px;border-radius:999px;font-size:max(0.6875rem, calc(0.875rem * var(--dt,1)));font-weight:700;line-height:1.25;color:#fff;max-width:100%;overflow-wrap:anywhere}
.neg-tag svg,.neg-marca svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.neg-tag b{font-variant-numeric:tabular-nums;margin-left:3px;padding-left:7px;border-left:1px solid rgba(255,255,255,.5)}
.neg-tag.credito,.neg-marca.credito{background:#1E7B34}
.neg-tag.debito,.neg-marca.debito{background:#B42318}
.neg-chip.mantida{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-green,#1E7B34);color:var(--ink-green,#1E7B34)}
.neg-chip.contra{background:color-mix(in srgb,var(--sys-red,#FF383C) 9%,transparent);color:var(--ink-red,#B42318)}
.neg-card.tag-credito{box-shadow:inset 5px 0 0 #1E7B34,inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
.neg-card.tag-debito{box-shadow:inset 5px 0 0 #B42318,inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
.neg-card.tag-credito.selecionado{box-shadow:inset 5px 0 0 #1E7B34,inset 0 0 0 2px var(--sys-blue,#0088FF)}
.neg-card.tag-debito.selecionado{box-shadow:inset 5px 0 0 #B42318,inset 0 0 0 2px var(--sys-blue,#0088FF)}
.neg-marca{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;padding:12px 14px;border-radius:14px;color:#fff}
.neg-marca svg{width:24px;height:24px;margin-top:1px}
.neg-marca b{display:block;font-size:calc(1.0625rem * var(--dt,1));line-height:1.3;font-variant-numeric:tabular-nums}
.neg-marca p{margin:3px 0 0;font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.neg-card-acoes{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:0 14px 12px}
.neg-vazio{padding:18px 8px;color:var(--label2,#6B5A4C);font-size:max(0.6875rem, calc(0.9375rem * var(--dt,1)));line-height:1.4}
.neg-vazio b{display:block;color:var(--label,#3A2A1E);font-size:max(0.6875rem, calc(1rem * var(--dt,1)))}
.neg-vazio p{margin:4px 0 0}
.neg-vazio.erro b{color:var(--ink-red,#B42318)}
.neg-carregando{display:flex;align-items:center;gap:10px;padding:24px 8px;color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1))}
.neg-spin{width:16px;height:16px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;display:inline-block;flex:none;animation:neg-gira .7s linear infinite}
@keyframes neg-gira{to{transform:rotate(360deg)}}

/* ---------- ficha ---------- */
.neg-ficha-vazia{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px;text-align:center;color:var(--label3,#8A7666);font-size:calc(0.9375rem * var(--dt,1));line-height:1.45}
.neg-ficha-vazia svg{width:40px;height:40px}
.neg-ficha-vazia p{max-width:34ch;margin:0}
.neg-faixa{margin:0 0 14px;padding:10px 12px;border-radius:12px;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.neg-faixa.pendente{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent)}
.neg-faixa.verde{background:color-mix(in srgb,var(--sys-green,#34C759) 14%,transparent)}
.neg-faixa.vermelho{background:color-mix(in srgb,var(--sys-red,#FF383C) 13%,transparent)}
.neg-faixa.cinza{background:var(--fill,rgba(90,65,45,.08))}
.neg-faixa-notas{margin:6px 0 0;padding-left:18px;font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.neg-faixa-notas li{margin:2px 0}
.neg-secao{margin-bottom:18px}
.neg-secao h4{margin:0 0 10px;font-size:calc(0.8125rem * var(--dt,1));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.neg-conversa{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.neg-msg{display:flex}
.neg-msg .neg-bolha{box-sizing:border-box;max-width:min(88%,560px);padding:10px 12px;border-radius:16px;background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));min-width:0}
.neg-msg.cliente .neg-bolha{border-top-left-radius:6px;background:var(--surface,#fff)}
.neg-msg.ia .neg-bolha{border-top-left-radius:6px;background:color-mix(in srgb,var(--sys-purple,#B02FC2) 10%,var(--surface,#fff))}
.neg-msg.loja{justify-content:flex-end}
.neg-msg.loja .neg-bolha{border-top-right-radius:6px;background:color-mix(in srgb,var(--sys-blue,#0088FF) 13%,var(--surface,#fff))}
.neg-msg.plataforma,.neg-msg.cancelamento,.neg-msg.sistema{justify-content:center}
.neg-msg.plataforma .neg-bolha{max-width:min(96%,620px);background:color-mix(in srgb,var(--sys-yellow,#FFCC00) 14%,var(--surface,#fff))}
.neg-msg.cancelamento .neg-bolha{max-width:min(96%,620px);background:color-mix(in srgb,var(--sys-red,#FF383C) 11%,var(--surface,#fff))}
.neg-msg.sistema .neg-bolha{max-width:min(96%,620px);background:transparent;box-shadow:none;border:1px dashed var(--label3,#8A7666)}
.neg-msg-topo{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.neg-msg-lado{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.neg-msg-topo time{margin-left:auto;color:var(--label3,#8A7666);font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-variant-numeric:tabular-nums}
.neg-msg-titulo{display:block;font-size:calc(0.9375rem * var(--dt,1));line-height:1.35}
.neg-msg-quem{display:block;margin-top:2px;color:var(--ink-blue,#0066CC);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600}
.neg-msg-texto,.neg-msg-texto2{margin:6px 0 0;font-size:calc(0.9375rem * var(--dt,1));line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.neg-msg-texto2{color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1))}
.neg-msg-detalhes{margin:8px 0 0;padding-left:18px;color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.neg-msg-detalhes li{margin:2px 0}
/* miniaturas: o botão [data-foto] vem de HubFotos.grade (web/acoes-cliente.js); aqui só o tamanho no balão */
.neg-bolha .fotos-cliente{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.neg-bolha .fotos-cliente .foto-mini{width:84px;height:84px;min-width:44px;min-height:44px}
.neg-dados{margin:0;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14));overflow:hidden}
.neg-linha{display:grid;grid-template-columns:minmax(96px,30%) 1fr;gap:10px;padding:10px 14px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.neg-linha:first-child{border-top:0}
.neg-linha dt{color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));font-weight:600}
.neg-linha dd{margin:0;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4;min-width:0;overflow-wrap:anywhere}
.neg-leve{color:var(--label3,#8A7666)}
.neg-itens{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.neg-itens li{display:flex;flex-direction:column}
.neg-itens li span{color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1))}
.neg-itens .neg-obs{color:var(--ink-orange,#A84300);font-weight:600}
.neg-valores{display:flex;flex-wrap:wrap;gap:4px 14px;font-variant-numeric:tabular-nums}
.neg-total{font-weight:700}
.neg-horarios{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px 12px}
.neg-horarios li{display:flex;flex-direction:column;font-size:calc(0.875rem * var(--dt,1))}
.neg-horarios li span{color:var(--label3,#8A7666);font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
.neg-horarios time{font-variant-numeric:tabular-nums}

/* 1.72.0 (pente fino): rótulo, número e nota de cada cartão na MESMA linha de base dos vizinhos. No celular "Pendentes agora"
   quebra em duas linhas e o 0 dele descia abaixo dos outros; com subgrid as três linhas do cartão são as da fileira */
.neg-tiles>.neg-tile{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:2px;align-content:start;justify-items:start}

/* ---------- selo do item de menu ---------- */
#menudd [data-view="neg"] .neg-selo,#seg [data-view="neg"] .neg-selo{margin-left:6px}
nav.gaveta [data-gvtela="neg"] .neg-selo{margin-left:auto;flex:none}

/* ---------- celular ---------- */
@media (max-width:640px){
  #neg-raiz.neg-tela{padding:10px 12px 20px}
  .neg-tiles{gap:6px}
  .neg-tile{padding:8px 12px}
  .neg-tile strong{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)))} /* 1.72.0: 21 px ficava fora da escala da Apple */
  .neg-tiles.dinheiro strong,.neg-tiles.contas strong{font-size:calc(0.9375rem * var(--dt,1))}
  .neg-linha{grid-template-columns:1fr;gap:2px}
  .neg-msg .neg-bolha{max-width:94%}
  .neg-ficha-rodape .neg-botao{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){.neg-folha,.neg-folha-veu,.neg-spin,.neg-icone.girando svg{transition:none;animation:none}}
@media (prefers-reduced-transparency:reduce){#neg-raiz .neg-painel,.neg-abas{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--vidro-solido,#FBF8F4)}}
@media (prefers-contrast:more){.neg-card,.neg-tile,.neg-dados,.neg-msg .neg-bolha{box-shadow:inset 0 0 0 1.5px var(--label,#3A2A1E)}}
@media (forced-colors:active){.neg-plat,.neg-chip,.neg-tag,.neg-marca,.neg-tile-rotulo{forced-color-adjust:none}.neg-tile.on{outline:3px solid Highlight}}

/* ---------- 1.66.0 (onda G): computador pensado para o clique ----------
   Philippe (28/09/2026): "Essa tela tbm tem que passar por uma revisão de design. Os botões e filtros não estão alinhados
   corretamente." Medido na 1.65.0 a 1440 px: o período tinha 52 px de altura (44 + o respiro de 4 em cima e embaixo), o
   "Loja, plataforma e resultado" 44 px fechado e 116 px aberto, a busca 44 px, e as abas 48 px em outra largura; nada
   começava nem terminava na mesma linha. Agora, a partir de 1100 px:
   - UMA linha de ferramentas: período (controle segmentado) | loja | plataforma | resultado | busca (encostada à direita);
     os filtros ficam à vista (o abre-e-fecha é o jeito do celular), cada um com o nome dentro do próprio controle;
   - todos os controles com a MESMA altura (--neg-ctl: 36 px com mouse, 44 px no toque), o mesmo raio e 10 px entre eles;
   - as abas (Todos, Pendentes, Respondidas, Cancelados) viram um controle segmentado da mesma altura e com o mesmo
     respiro de 4 px da 1.65.0, alinhado à esquerda, logo abaixo;
   - a ficha do caso ganha o X no canto superior direito (web/negociacoes.js; topo-vidro.css esconde no celular). */
#neg-raiz{--neg-ctl:36px;--neg-gap:10px}
html.hub-toque #neg-raiz{--neg-ctl:44px}
@media (min-width:1100px){
  #neg-raiz .neg-filtros.neg-filtros-linha{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--neg-gap);margin:4px 0 12px}
  #neg-raiz .neg-filtros-linha>.neg-seg{flex:none;display:inline-grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(72px,auto);height:calc(var(--neg-ctl) + 2 * var(--seg-respiro,4px));min-height:0;box-sizing:border-box}
  #neg-raiz .neg-filtros-linha>.neg-seg button{min-height:0;height:var(--neg-ctl);padding:0 14px;font-size:var(--f-subhead,0.9375rem)}
  #neg-raiz .neg-filtros-linha>.neg-datas{flex:none;display:flex}
  #neg-raiz .neg-filtros-linha>.neg-datas>*{min-height:calc(var(--neg-ctl) + 2 * var(--seg-respiro,4px))}
  #neg-raiz .neg-selects-linha{display:flex;flex-wrap:nowrap;gap:var(--neg-gap);padding:0;align-items:center}
  #neg-raiz .neg-selects-linha .neg-campo{flex-direction:row;align-items:center;gap:0;height:calc(var(--neg-ctl) + 2 * var(--seg-respiro,4px));box-sizing:border-box;padding:0 4px 0 12px;border-radius:var(--seg-raio,14px);
    background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.2))}
  #neg-raiz .neg-selects-linha .neg-campo>span{flex:none;font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C);white-space:nowrap}
  #neg-raiz .neg-selects-linha .neg-campo select{min-height:0;height:var(--neg-ctl);width:auto;min-width:0;max-width:200px;background:transparent;box-shadow:none;padding:0 6px;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer}
  #neg-raiz .neg-filtros-linha>.neg-busca{flex:1 1 220px;max-width:360px;margin-left:auto}
  #neg-raiz .neg-filtros-linha>.neg-busca input{min-height:0;height:calc(var(--neg-ctl) + 2 * var(--seg-respiro,4px));border-radius:var(--seg-raio,14px);font-size:var(--f-subhead,0.9375rem)}
  #neg-raiz .neg-abas{display:inline-grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(120px,auto);gap:var(--seg-respiro,4px);padding:var(--seg-respiro,4px);margin:0 0 14px;border-radius:var(--seg-raio,14px);
    background:var(--fill,rgba(90,65,45,.08));max-width:none}
  #neg-raiz .neg-abas button{flex-direction:row;gap:8px;min-height:0;height:var(--neg-ctl);padding:0 16px;border-radius:calc(var(--seg-raio,14px) - var(--seg-respiro,4px));background:transparent;font-size:var(--f-subhead,0.9375rem)}
  #neg-raiz .neg-abas button.on{background:var(--surface,#fff);color:var(--label,#3A2A1E);box-shadow:0 1px 3px rgba(0,0,0,.12)}
  body.dark #neg-raiz .neg-abas button.on{background:#3A3531;box-shadow:0 1px 3px rgba(0,0,0,.5)}
  #neg-raiz .neg-aba-conta{font-size:var(--f-footnote,0.8125rem);min-width:22px;padding:1px 7px;border-radius:999px;background:var(--fill,rgba(90,65,45,.1));text-align:center;box-sizing:border-box}
  #neg-raiz .neg-abas button.on .neg-aba-conta{background:color-mix(in srgb,var(--label,#3A2A1E) 12%,transparent)}
  #neg-raiz .neg-topo{align-items:center}
}
/* mouse: hover nos controles da tela e nos cartões de resumo (no toque não há hover) */
html.hub-clique #neg-raiz .neg-seg button:not(.on):hover,html.hub-clique #neg-raiz .neg-abas button:not(.on):hover{background:color-mix(in srgb,var(--surface,#fff) 60%,transparent)}
html.hub-clique #neg-raiz button.neg-tile:hover{box-shadow:inset 0 0 0 1px var(--tile-cor)}
html.hub-clique #neg-raiz .neg-selects-linha .neg-campo:hover{box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.3))}
/* o X da ficha no computador: botão redondo de 32 px no canto superior direito, com hover; o cabeçalho continua puxável */
.neg-ficha-x{flex:none;width:32px;height:32px;margin:0 6px 0 auto;align-self:flex-start;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);cursor:pointer}
.neg-ficha-x svg{width:18px;height:18px}
html.hub-clique .neg-ficha-x:hover{background:var(--fill2,rgba(58,42,30,.16))}
html.hub-toque .neg-ficha-x{width:44px;height:44px}
.neg-folha .neg-ficha-topo{padding-right:12px}
/* no computador a alça não aparece (ela é o sinal de arrastar do toque); o cabeçalho continua puxável com o mouse, como extra */
html:not(.hub-folha-celular) .neg-folha-alca{height:10px}
html:not(.hub-folha-celular) .neg-folha-alca span{display:none}
/* 1.68.2: chamado em tratativa por outra pessoa */
.neg-tratativa{color:#B54708;font-weight:600}
body.dark .neg-tratativa{color:#FDB022}

/* /relatorios.css */
/* 1.65.0: TELA DE RELATÓRIOS (web/relatorios.js). Tokens do Hub com valor reserva em todo var(), claro e escuro pelos
   mesmos tokens (body.dark), alvos de 44 px, foco visível, vidro nas peças de controle e superfície sólida nos cartões
   dos números e dos gráficos (a paleta dos gráficos foi validada contra #FFFFFF e #22201E). Computador largo: lista de
   relatórios à esquerda e o relatório usando a largura toda (resumo, gráficos em duas colunas e depois o item por item; 1.66.0).
   iPhone: escolha do relatório num seletor nativo, área segura, lista vira cartões, gráficos um embaixo do outro. */

#view-rel{padding:0}
.rel{--rel-bom:#006300;--rel-ruim:#B42318;--rel-borda:var(--sep,rgba(58,42,30,.14));display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;padding:0 16px 32px;color:var(--label,#3A2A1E);min-width:0}
body.dark .rel{--rel-bom:#30D158;--rel-ruim:#FF6B6B}
.rel.carregando .rel-main>section{opacity:.55;transition:opacity .2s}
.rel button,.rel select,.rel input{font:inherit;color:inherit}
.rel button:focus-visible,.rel select:focus-visible,.rel input:focus-visible,.rel [tabindex]:focus-visible,.rel summary:focus-visible,.rel-folha button:focus-visible,.rel-folha a:focus-visible,.rel-folha input:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.rel-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- lista dos relatórios ----------
   1.74.0 (Philippe, 04/10/2026, B1): a lista lateral saiu de cima dos cartões; as áreas e os relatórios aparecem na folha
   Relatório da barra de baixo (.rel-cel-nav), no celular e no computador. */
.rel-nav-area{margin-top:10px}
.rel-nav-area h3{margin:0 8px 4px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.rel-nav-item{display:flex;align-items:center;width:100%;min-height:44px;padding:8px 10px;border:0;border-radius:var(--r-ctl,12px);background:transparent;text-align:left;cursor:pointer;font-size:calc(0.90625rem * var(--dt,1));line-height:1.25;transition:background .12s}
@media (hover:hover){.rel-nav-item:hover{background:var(--fill,rgba(90,65,45,.08))}}
.rel-nav-item.on{background:var(--on-blue,#0062B8);color:#fff;font-weight:600} /* 1.72.0: o azul do sistema com letra branca dava 3,5:1 */

/* ---------- o cabeçalho do relatório, dentro do cartão Resumo ---------- */
.rel-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.rel-cabeca{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.rel-titulos{min-width:0}
.rel-area{margin:0;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
.rel-cabeca h1{margin:2px 0 0;font-size:calc(1.25rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.2;outline:none} /* 04/10/2026: é o título do cartão Resumo, não mais um título grande acima dos cartões */
.rel-sub{margin:4px 0 0;font-size:calc(0.875rem * var(--dt,1));font-weight:600}
.rel-vs{font-weight:400;color:var(--label2,#6B5A4C)}
.rel-desc{margin:4px 0 0;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C);max-width:70ch}
.rel-icone{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:var(--glass-bg,rgba(255,255,255,.72));box-shadow:var(--glass-shadow,0 8px 30px rgba(70,45,25,.10));cursor:pointer;color:var(--label2,#6B5A4C)}
.rel-icone svg,.rel-botao svg,.rel-busca svg,.rel-opcao svg,.rel-delta svg,.rel-seta svg,.rel-linha-topo svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.rel-icone.girando svg{animation:rel-gira .8s linear infinite}
@keyframes rel-gira{to{transform:rotate(360deg)}}
.rel-botao{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(90,65,45,.08));font-weight:600;cursor:pointer;font-size:calc(0.9375rem * var(--dt,1))}
.rel-botao.primario{background:var(--on-blue,#0062B8);color:#fff} /* 1.72.0: o azul do sistema com letra branca dava 3,5:1 */
.rel-botao:disabled{opacity:.45;cursor:default}
.rel-botao:active:not(:disabled),.rel-icone:active,.rel-chip:active,.rel-opcao:active{transform:scale(var(--apertado-escala,.97))}
.rel-link{border:0;background:transparent;color:var(--ink-blue,#0066CC);font-weight:600;cursor:pointer;min-height:44px;padding:0 6px}

/* ---------- período e filtros (dentro das folhas da barra de baixo) ---------- */
/* o período é um trilho segmentado do Hub (respiro e raio pela regra única de web/index.html, 1.65.0) */
.rel-periodos{display:inline-flex;flex-wrap:wrap;align-self:flex-start;max-width:100%;background:var(--fill,rgba(90,65,45,.08))}
.rel-chip{min-height:44px;padding:0 14px;border:0;background:transparent;color:var(--label2,#6B5A4C);cursor:pointer;font-weight:600;font-size:calc(0.875rem * var(--dt,1))}
.rel-chip.on{background:var(--surface,#fff);color:var(--label,#3A2A1E);box-shadow:0 1px 3px rgba(70,45,25,.16)}
body.dark .rel-chip.on{background:#3A3531;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.rel-datas,.rel-selects{display:flex;flex-wrap:wrap;gap:10px}
.rel-datas label{display:flex;flex-direction:column;gap:3px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
/* 1.70.2 (Philippe): filtros no padrão dos botões de menu da Apple: mais altos, cantos bem arredondados, fundo de
   preenchimento do sistema sem borda fina, rótulo pequeno em cima e o valor grande embaixo, seta própria. Rótulo e seletor ficam no fluxo
   para crescer juntos com texto ampliado. O label mantém a ativação do controle nativo. */
.rel-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(13.125rem * var(--dt,1))),1fr));gap:10px}
.rel-filtro{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;min-width:0;min-height:60px;border-radius:16px;background:var(--rel-fill);--rel-fill:rgba(118,118,128,.12)}
body.dark .rel-filtro,html.dark .rel-filtro{--rel-fill:rgba(118,118,128,.24)}
.rel-filtro>span{position:static;display:block;padding:9px 44px 0 16px;line-height:1.25;overflow-wrap:anywhere;pointer-events:none;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;letter-spacing:.01em;color:var(--label2,#6B5A4C)}
.rel-filtro::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:2px solid var(--label2,#6B5A4C);border-bottom:2px solid var(--label2,#6B5A4C);transform:rotate(45deg);pointer-events:none}
.rel-filtro select{-webkit-appearance:none;appearance:none;display:block;width:100%;min-height:44px;margin:0;padding:4px 44px 8px 16px;border:0;border-radius:0 0 16px 16px;background:transparent;color:var(--label,#3A2A1E);font:inherit;font-size:calc(1.0625rem * var(--dt,1));font-weight:600;line-height:1.25;text-overflow:ellipsis;cursor:pointer;transition:background-color .2s,box-shadow .2s}
@media (hover:hover){.rel-filtro select:hover{background:rgba(118,118,128,.18)}}
.rel-filtro select:focus{outline:none}
.rel-filtro select:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,255,.28)}
@media (max-width:620px){
  .dfilters[data-report-filters]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(9.375rem * var(--dt,1))),1fr));width:100%;gap:8px}
  .dfilters[data-report-filters] .rel-filtro>span{padding:9px 32px 0 12px;line-height:1.25}
  .dfilters[data-report-filters] .rel-filtro select{min-height:44px;padding:4px 32px 8px 12px}
  .dfilters[data-report-filters] .rel-filtro::after{right:14px}
}
.rel-datas input{min-height:44px;padding:0 12px;border:.5px solid var(--rel-borda);border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:var(--label,#3A2A1E);font-size:calc(0.9375rem * var(--dt,1));min-width:160px;max-width:100%}
.rel-avisos{display:flex;flex-direction:column;gap:6px}
.rel-aviso,.rel-erro{margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 14%,transparent);font-size:calc(0.875rem * var(--dt,1));line-height:1.4}
.rel-erro{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent)}

/* ---------- resumo ---------- */
.rel-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.rel-tile{display:flex;flex-direction:column;gap:4px;padding:14px 14px 12px;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--rel-borda),0 1px 2px rgba(40,25,12,.05);min-width:0}
.rel-tile-rotulo{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C);font-weight:600}
.rel-tile-valor{font-size:calc(1.625rem * var(--dt,1));font-weight:700;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}
.rel-tile-nota{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label3,#8A7666)}
.rel-delta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-delta svg{width:15px;height:15px}
.rel-delta.bom b,.rel-delta.bom svg{color:var(--rel-bom)}
.rel-delta.ruim b,.rel-delta.ruim svg{color:var(--rel-ruim)}
.rel-antes{color:var(--label3,#8A7666)}

/* ---------- item por item ---------- */
.rel-itens{padding:14px;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--rel-borda);min-width:0}
.rel-itens-topo{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.rel-itens h2{margin:0;font-size:calc(1.125rem * var(--dt,1));font-weight:700}
.rel-conta{font-weight:500;color:var(--label2,#6B5A4C);font-size:calc(0.875rem * var(--dt,1));margin-left:6px}
/* 1.70.2 (Philippe): campo de busca do jeito da Apple. Um retângulo de cantos arredondados com o preenchimento do
   sistema, a lupa dentro, as etiquetas DENTRO do campo (como os tokens do campo de busca do iOS), sem contorno duplo:
   ao tocar, o fundo clareia e ganha um halo azul suave. Fica numa linha própria, abaixo do título da lista. */
.rel-busca{--rel-fill:rgba(118,118,128,.12);display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;max-width:760px;box-sizing:border-box;min-height:48px;margin:12px 0 0;padding:8px 12px;border:1px solid transparent;border-radius:14px;background:var(--rel-fill);color:var(--label2,#6B5A4C);cursor:text;transition:background-color .2s,box-shadow .2s,border-color .2s}
body.dark .rel-busca,html.dark .rel-busca{--rel-fill:rgba(118,118,128,.24)}
.rel-busca:focus-within{background:var(--surface,#fff);border-color:rgba(0,122,255,.55);box-shadow:0 0 0 4px rgba(0,122,255,.16)}
.rel-busca-lupa{display:inline-flex;align-items:center;justify-content:center;width:22px;height:34px;flex:none}
.rel-busca-lupa svg{width:19px;height:19px}
.rel-tokens{display:contents}
.rel-busca input{-webkit-appearance:none;appearance:none;flex:1 1 160px;min-width:120px;min-height:34px;margin:0;padding:0 2px;border:0;background:transparent;outline:none;box-shadow:none;font:inherit;font-size:calc(1.0625rem * var(--dt,1));color:var(--label,#3A2A1E)}
.rel-busca input:focus,.rel-busca input:focus-visible{outline:none;box-shadow:none}
.rel-busca input::placeholder{color:var(--label3,#8E8E93);opacity:1}
.rel-busca input::-webkit-search-decoration,.rel-busca input::-webkit-search-results-decoration{-webkit-appearance:none}
.rel-token{display:inline-flex;align-items:center;gap:5px;height:34px;max-width:100%;padding:0 9px 0 12px;border:0;border-radius:17px;background:rgba(0,122,255,.13);color:#0059C9;font:inherit;font-size:calc(0.9375rem * var(--dt,1));font-weight:600;cursor:pointer;flex:none;transition:background-color .15s}
.rel-token span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.rel-token svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;opacity:.8}
@media (hover:hover){.rel-token:hover{background:rgba(0,122,255,.22)}}
body.dark .rel-token,html.dark .rel-token{background:rgba(10,132,255,.24);color:#6CB4FF}
.rel-token:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,255,.4)}
.rel-tag-limpar{display:inline-block;min-height:44px;margin:4px 0 0;padding:0 4px;border:0;background:transparent;color:var(--ink-blue,#1861A0);font:inherit;font-size:calc(0.9375rem * var(--dt,1));font-weight:600;cursor:pointer}
.rel-tag-limpar[hidden]{display:none}
/* o "x" de limpar do campo no jeito do iOS: círculo cinza com o x branco */
.rel-busca input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin:0 2px 0 6px;border-radius:50%;background:#8E8E93 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M6 6l6 6M12 6l-6 6' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/18px 18px no-repeat;cursor:pointer;opacity:.85}
.rel-itens-lista{transition:opacity .15s}
.rel-itens-lista>.rel-mostrando{margin-top:14px}
.rel-itens-lista.buscando{opacity:.55}
@media (pointer:coarse){.rel-token{height:38px;border-radius:19px}.rel-busca{min-height:52px}}
.rel-mostrando{margin:8px 0 0;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-tabela-caixa{margin-top:10px;overflow:auto;max-height:620px;border-radius:12px;box-shadow:inset 0 0 0 .5px var(--rel-borda)}
.rel-tabela{width:100%;border-collapse:separate;border-spacing:0;font-size:calc(0.84375rem * var(--dt,1));font-variant-numeric:tabular-nums}
.rel-tabela th{position:sticky;top:0;z-index:1;background:var(--surface2,#F7F4F1);text-align:left;font-weight:600;color:var(--label2,#6B5A4C);white-space:nowrap;border-bottom:.5px solid var(--rel-borda);padding:0}
.rel-tabela th button{display:flex;align-items:center;gap:4px;width:100%;min-height:44px;padding:0 10px;border:0;background:transparent;cursor:pointer;font-weight:600;text-align:inherit;justify-content:inherit}
.rel-tabela th.rel-num button{justify-content:flex-end}
.rel-tabela th i{font-style:normal;min-width:10px}
.rel-tabela td{height:44px;box-sizing:border-box;padding:9px 10px;border-bottom:.5px solid var(--rel-borda);white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}
.rel-tabela .rel-num{text-align:right}
.rel-tabela tbody tr[data-rel-uid]{cursor:pointer}
@media (hover:hover){.rel-tabela tbody tr[data-rel-uid]:hover td{background:var(--fill,rgba(90,65,45,.08))}}
.rel-tabela tfoot td{position:sticky;bottom:0;background:var(--surface2,#F7F4F1);font-weight:700;border-top:.5px solid var(--rel-borda)}
.rel-seta{color:var(--label3,#8A7666);width:24px}
.rel-cartoes{display:none;list-style:none;margin:10px 0 0;padding:0;gap:8px;flex-direction:column}
.rel-linha{padding:12px;border-radius:12px;background:var(--surface2,#F7F4F1)}
.rel-linha.abre{cursor:pointer}
.rel-linha-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:24px}
.rel-linha dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:8px 0 0}
.rel-linha dt{font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-linha dd{margin:0;font-size:calc(0.875rem * var(--dt,1));font-weight:600;overflow-wrap:anywhere}
.rel-vazio-lista{margin:14px 0 4px;color:var(--label2,#6B5A4C)}
.rel-paginas{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;flex-wrap:wrap}

/* ---------- gráficos ---------- */
.rel-graficos{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px}
.rel-grafico{margin:0;padding:14px;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--rel-borda);min-width:0}
.rel-grafico figcaption{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.rel-grafico figcaption b{font-size:calc(0.9375rem * var(--dt,1))}
.rel-grafico figcaption span{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-legenda{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0 0 8px;padding:0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-legenda li{display:inline-flex;align-items:center;gap:6px}
.rel-legenda i.bloco{width:10px;height:10px;border-radius:3px;display:inline-block}
.rel-legenda i.traco{width:16px;height:2px;border-radius:2px;display:inline-block}
.rel-canvas{position:relative;width:100%}
.rel-sem-grafico{margin:0;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.rel-numeros{margin-top:8px;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.rel-numeros summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ink-blue,#0066CC);font-weight:600}
.rel-numeros-caixa{overflow-x:auto}
.rel-numeros table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}
.rel-numeros th,.rel-numeros td{padding:5px 8px;border-bottom:.5px solid var(--rel-borda);text-align:right;white-space:nowrap}
.rel-numeros th[scope=row],.rel-numeros thead th:first-child{text-align:left}
.rel-fonte{margin:0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label3,#8A7666)}
.rel-vazio,.rel-carregando{padding:28px 16px;text-align:center;color:var(--label2,#6B5A4C);display:flex;flex-direction:column;align-items:center;gap:10px}
.rel-carregando{flex-direction:row;justify-content:center}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): com o catálogo dos relatórios ainda abrindo, ou com erro, o
   aviso era um texto solto sobre o fundo (o cartão de espera só existia depois de o catálogo chegar). É um cartão, com a
   moldura da casa, no lugar dos cartões, como o "Carregando" das telas de área. */
.rel>.rel-vazio,.rel>.rel-carregando{margin:0;border-radius:var(--r-sheet,1.25rem);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06)}
body.dark .rel>.rel-vazio,body.dark .rel>.rel-carregando{background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
.rel-giro{width:18px;height:18px;border-radius:50%;border:2px solid var(--fill3,rgba(90,65,45,.16));border-top-color:var(--sys-blue,#0088FF);animation:rel-gira .8s linear infinite}

/* ---------- folhas (baixar, link, ficha) ---------- */
.rel-folha-fundo{position:fixed;inset:0;z-index:1400;background:var(--vidro-veu,rgba(58,42,30,.22));display:flex;align-items:center;justify-content:center;padding:16px}
.rel-folha{width:min(520px,100%);max-height:calc(100vh - 32px);overflow-y:auto;border-radius:var(--r-sheet,20px);background:var(--glass-bg,rgba(255,255,255,.92));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);box-shadow:0 18px 46px rgba(40,25,12,.24);color:var(--label,#3A2A1E);padding:6px 20px 18px} /* 1.72.0: 20 pt de margem no iPad e no computador */
body.dark .rel-folha{background:rgba(34,32,30,.94)}
.rel-folha-topo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px}
.rel-folha-topo h2{margin:0;font-size:calc(1.25rem * var(--dt,1));font-weight:700}
.rel-folha-topo .rel-icone{box-shadow:none;background:var(--fill,rgba(90,65,45,.08))}
.rel-folha-sub{margin:6px 0 12px;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C);line-height:1.4}
.rel-folha-nota{margin:12px 0 0;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-folha-botoes{display:flex;flex-direction:column;gap:8px}
.rel-opcao{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border:0;border-radius:14px;background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--rel-borda);text-align:left;cursor:pointer;color:inherit;text-decoration:none}
.rel-opcao span{display:flex;flex-direction:column;gap:2px}
.rel-opcao small{color:var(--label2,#6B5A4C);font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
.rel-opcao.ocupado{opacity:.6;pointer-events:none}
.rel-check{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:6px;font-weight:600}
.rel-check input{width:22px;height:22px}
.rel-check-nota{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 14%,transparent);font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))))}
.rel-ficha{width:min(560px,100%)}
.rel-ficha h3{margin:14px 0 6px;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C);text-transform:uppercase;letter-spacing:.04em}
.rel-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}
.rel-dl dt{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.rel-dl dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.rel-lista{margin:0;padding-left:18px}

/* ---------- larguras ---------- */
@media (max-width:759px){
  .rel{padding:0 12px calc(28px + env(safe-area-inset-bottom,0px));gap:10px}
  .rel-desc{display:none}
  /* 1.69.1 (Philippe): no celular os períodos ficavam num trilho que rolava para o lado e escondia "Este mês", "Mês
     passado" e "Datas escolhidas". Agora é uma grade de três colunas, tudo à vista; "Datas escolhidas" ocupa a linha de baixo. */
  .rel-periodos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-self:stretch;width:100%;box-sizing:border-box;overflow:visible}
  .rel-chip{min-width:0;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:calc(0.84375rem * var(--dt,1))}
  .rel-chip[data-rel-periodo="datas"]{grid-column:1/-1}
  .rel-selects{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .rel-filtro select{min-height:44px}
  .rel-datas input{width:100%;min-width:0}
  .rel-datas label{flex:1 1 140px}
  .rel-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .rel-tile{padding:12px}
  .rel-tile-valor{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)))}
  .rel-tabela-caixa{display:none}
  .rel-cartoes{display:flex}
  .rel-busca{max-width:none}
  .rel-graficos{grid-template-columns:minmax(0,1fr)}
  .rel-folha-fundo{align-items:flex-end;padding:0}
  /* 1.72.0 (auditoria de design 1720): as alturas das folhas do sistema (web/folha.css): o diálogo tem o mínimo de uma folha
     média, a ficha é a folha grande de 95%; os botões ficam acima do indicador de início; a alça mostra que arrasta */
  .rel-folha{width:100%;max-height:var(--folha-grande,92vh);min-height:var(--folha-media,50vh);box-sizing:border-box;padding-left:16px;padding-right:16px;border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0;padding-bottom:var(--folha-base,calc(18px + env(safe-area-inset-bottom,0px)))}
  .rel-folha.rel-ficha{height:var(--folha-grande,92vh)}
  .rel-folha::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3));margin:4px auto 0}
}
/* no app, o corpo já tem a área segura de cima e a barra de abas embaixo (web/app-nativo.css); só o botão das lojas no topo pede espaço */
/* 1.70.0 (auditoria): em 375 px (iPhone SE e mini) o chip "Mês passado" virava "Mês passa…" (101 px de texto em 99). Um
   pouco menor só nessa largura, o suficiente para caber sem cortar. */
@media (max-width:389px){.rel-chip{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));letter-spacing:-.01em}}
@media (prefers-reduced-motion:reduce){.rel-icone.girando svg,.rel-giro{animation:none}}
@media (prefers-reduced-transparency:reduce){.rel-folha{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (forced-colors:active){.rel-chip.on,.rel-nav-item.on{outline:2px solid CanvasText}}

/* ---------- impressão e PDF: só o relatório ---------- */
#rel-impressao{display:none}
@media print{
  body.rel-imprimindo > *:not(#rel-impressao){display:none!important}
  body.rel-imprimindo{background:#fff!important}
  body.rel-imprimindo::before{display:none!important}
  #rel-impressao{display:block;color:#000;font:0.6875rem/1.35 system-ui,-apple-system,"Segoe UI",sans-serif}
  #rel-impressao h1{font-size:calc(1.125rem * var(--dt,1));margin:0 0 4px}
  #rel-impressao h2{font-size:calc(0.875rem * var(--dt,1));margin:14px 0 6px}
  #rel-impressao table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
  #rel-impressao th,#rel-impressao td{border-bottom:1px solid #ccc;padding:3px 5px;text-align:left}
  #rel-impressao thead{display:table-header-group}
  #rel-impressao tr{break-inside:avoid}
  #rel-impressao .imp-resumo{width:auto;min-width:50%}
  #rel-impressao .imp-graficos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
  #rel-impressao figure{margin:0;break-inside:avoid}
  #rel-impressao figure img{width:100%}
  #rel-impressao .imp-fonte{color:#555;margin-top:10px}
  #rel-impressao .imp-legenda{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px}
  #rel-impressao .imp-legenda i{display:inline-block;width:0;height:0;border:5px solid;border-radius:2px;margin-right:4px;vertical-align:middle}
}

/* conta pessoal sem a área "Painel e relatórios": a tela some do menu (a mesma regra de web/contas.css para as outras) */
body.sem-rel #seg [data-view="rel"],body.sem-rel .menudd [data-view="rel"]{display:none!important}
/* Produto comercial: detalhe recolhido no cartão móvel, operação preservada. */
.rel-tabela-caixa:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:3px}
.rel-row-details{border-top:.5px solid var(--rel-borda);margin-top:8px}
.rel-row-details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600;color:var(--ink-blue,#0066CC);font-size:calc(.875rem * var(--dt,1))}
.rel-row-details>summary::before{content:"＋";margin-right:8px}
.rel-row-details[open]>summary::before{content:"−"}
.rel-row-details>summary:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px;border-radius:6px}

/* Conferência da Frota: filtros centrais, mesma hierarquia do relatório. */
.rel-fleet-dialog{width:min(34rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:0;border:1px solid var(--hair);border-radius:28px;background:var(--card,#fff);color:var(--text);box-shadow:0 24px 80px #0003;font:inherit}
.rel-fleet-dialog::backdrop{background:#14141466;backdrop-filter:blur(8px)}
.rel-fleet-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);margin:0}
.rel-fleet-dialog .rel-folha-topo,.rel-fleet-actions{padding:22px 24px;flex:none}
.rel-fleet-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:0 24px 8px}
.rel-fleet-body p{font-size:var(--f-subhead,.9375rem);line-height:1.5;color:var(--sub)}
.rel-fleet-hours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.rel-fleet-dialog :is(input,select){min-width:0;width:100%;min-height:44px;border-radius:12px;border:1px solid var(--hair);padding:10px;background:var(--fill,#f3f2f0);color:var(--text);font:inherit;box-sizing:border-box}
.rel-fleet-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--hair)}
.rel-fleet-dialog .rel-fleet-feedback{color:var(--ink-red,#a22320);min-height:1.5em}
.rel-fleet-filter{align-self:end;gap:12px}.rel-fleet-filter span{font-size:var(--f-footnote,.8125rem);color:var(--sub)}
.rel-fleet-dialog :focus-visible{outline:3px solid var(--foco-cor,#007aff);outline-offset:3px}
@media(max-width:380px){.rel-fleet-hours{grid-template-columns:1fr}.rel-fleet-actions,.rel-fleet-dialog .rel-folha-topo{padding:16px}.rel-fleet-body{padding-inline:16px}.rel-fleet-actions .rel-botao{flex:1;white-space:normal}}
@media(prefers-reduced-motion:no-preference){.rel-fleet-dialog[open]{animation:rel-fleet-enter .2s ease-out}@keyframes rel-fleet-enter{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}}

.rel-fleet-field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;align-content:start}.rel-fleet-field>span{font-size:var(--f-subhead,.9375rem);line-height:1.4;font-weight:600;color:var(--text)}

.rel-fleet-explanation details{border:1px solid var(--hair);border-radius:18px;background:var(--card,#fff);padding:0 16px}.rel-fleet-explanation summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;font-weight:600;font-size:var(--f-subhead,.9375rem);line-height:1.4;padding-block:12px}.rel-fleet-explanation details p{font-size:var(--f-footnote,.8125rem);line-height:1.5;color:var(--sub);margin:0 0 14px}.rel-fleet-explanation summary:focus-visible{outline:3px solid var(--foco-cor,#007aff);outline-offset:3px}

/* ---------- 1.74.0: celular, conteúdo primeiro (web/barra-folha.js + carrossel de Resumo, gráficos e Item por item) ---------- */
/* .rel-cel marca a tela montada no celular/app: as partes do relatório viram um carrossel, um cartão por tela. 04/10/2026:
   as fichas do topo saíram (B1): o período e os filtros estão na barra de baixo, e o rótulo do item diz o escolhido. */
.rel.rel-cel{padding-bottom:.25rem}
.rel.rel-cel.rel-cel-rola{padding-bottom:calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + .5rem)}
.rel.rel-cel .rel-main{gap:.625rem}
.rel-carrossel{display:flex;gap:.75rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -.75rem;padding:0 .75rem;scroll-padding:0 .75rem;outline:none;touch-action:pan-x pan-y}
.rel-carrossel::-webkit-scrollbar{display:none}
.rel-carrossel:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:-3px;border-radius:1rem}
.rel-slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;height:var(--rel-cel-altura,60vh);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}
.rel-slide>*{flex:none}
.rel-slide>.rel-grafico{margin:0}
/* 02/10 à noite: o gráfico inteiro na tela (Philippe): a figura ocupa o slide e o canvas fica com o que sobra depois do
   título, da legenda e do "Ver os números"; nada rola por dentro quando cabe */
.rel-slide>.rel-grafico{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.rel-slide>.rel-grafico>*{flex:none}
.rel-slide>.rel-grafico>.rel-canvas{flex:1 1 0;min-height:7rem;height:auto!important}
.rel-slide>.rel-grafico>.rel-numeros{margin-top:.5rem}
/* a faixa do Cérebro sai do fluxo: vira o botão do Cérebro na barra de cima (web/avisos-topo.js), no celular e no computador */
.rel .hr-faixa{display:none}
/* a espiada do carrossel (uma vez por abertura; nunca com "reduzir movimento") */
.rel-carrossel.rel-espiar>.rel-slide{animation:rel-espiada 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes rel-espiada{0%{transform:none}38%{transform:translateX(-2.25rem)}100%{transform:none}}
.rel-slide .rel-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.rel-pontos{display:flex;justify-content:safe center;margin:.25rem 0 0;overflow-x:auto;scrollbar-width:none}
.rel-pontos::-webkit-scrollbar{display:none}
.rel-pontos button{flex:none;min-width:1.75rem;min-height:1.75rem;padding:.5rem .3125rem;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}
/* 04/10/2026 (a dupla checagem): a mesma cor dos pontos do HubCarrossel (web/hub-carrossel.css) */
.rel-pontos i{display:block;width:.375rem;height:.375rem;border-radius:.5rem;background:rgba(58,42,30,.28);transition:width .2s ease-out,background-color .2s ease-out}
body.dark .rel-pontos i{background:rgba(255,255,255,.32)}
.rel-pontos button[aria-current="true"] i{width:1.25rem;background:var(--label,#3A2A1E)}
/* no toque o ponto tem alvo de 44 px (web/interface-1740.css): a fileira avança 8 px sobre o respiro de baixo do cartão
   (os 10 px a mais desfazem o espaço entre as partes da coluna), e fora do cartão sobram 36 px (B4: no máximo 40) */
/* 04/10/2026 (a dupla checagem): em px, como na peça: o ponto é alvo de toque (44 px) e não cresce com o texto do aparelho */
html.hub-toque .rel.rel-cel .rel-pontos{position:relative;z-index:1;margin-top:-18px}
html.hub-toque .rel.rel-cel .rel-pontos button{min-height:44px;height:44px;min-width:44px}
/* a contagem "2 de 5: título" fica só para o leitor de tela: fora do cartão sobram os pontos (B4: no máximo 40 px) */
.rel-contagem{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* dentro das folhas da barra: a lista de relatórios, os períodos em grade e os seletores empilhados */
.rel-cel-nav .rel-nav-area:first-child{margin-top:0}
.rel-cel-nav .rel-nav-item{font-size:calc(1rem * var(--dt,1))}
.rel-cel-periodos .rel-periodos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;background:transparent;padding:0}
.rel-cel-periodos .rel-chip{min-height:2.75rem;padding:0 .5rem;border-radius:1rem;border:1px solid rgba(127,127,127,.18);background:rgba(127,127,127,.08);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:calc(.875rem * var(--dt,1))}
.rel-cel-periodos .rel-chip.on{background:var(--bf-realce-fundo,var(--bf-realce,#0062B8));border-color:var(--bf-realce-fundo,var(--bf-realce,#0062B8));color:#fff;box-shadow:none} /* D17: branco no azul do realce antigo dava 3,9:1 */
.rel-cel-periodos .rel-chip[data-rel-periodo="datas"]{grid-column:1/-1}
.rel-cel-periodos .rel-datas{margin-top:.75rem}
.rel-cel-selects{display:grid;gap:.75rem}
@media (prefers-reduced-motion:reduce){.rel-carrossel{scroll-behavior:auto}.rel-pontos i{transition:none}.rel-carrossel.rel-espiar>.rel-slide{animation:none}}

/* ---------- 1.74.0 (Philippe, 03/10/2026): computador, o relatório numa tela (.rel-pc) ----------
   "Mostrar o gráfico por completo [...] sem precisar de rolar para baixo [...] só rolando para o lado." A tela empilhava
   resumo, gráficos e lista (2,1 telas em 1366x820). Agora as partes ficam numa faixa (.rel-faixa, web/hub-carrossel.js)
   na altura que sobra. 04/10/2026 (B1, B4 e B6): nada fica acima da faixa (o título abre o cartão Resumo; o período, os
   filtros e a lista de relatórios estão na barra de baixo) e nenhum cartão rola por dentro. Vale do tablet para cima; o
   celular continua com .rel-cel. Os seletores abaixo levam .rel-faixa.hcar para vencer web/hub-carrossel.css, que vem
   depois desta folha. */
.rel.rel-pc{padding-bottom:.75rem}
.rel.rel-pc .rel-main{display:block}
.rel.rel-pc .rel-sub,.rel.rel-pc .rel-desc{margin:0;line-height:1.4}
/* a faixa: cada parte tem a altura que sobra da tela; a lista usa a largura toda */
.rel.rel-pc .rel-faixa.hcar>.rel-parte{display:flex;flex-direction:column;gap:.5rem}
.rel.rel-pc .rel-faixa.hcar>.rel-parte>*{flex:none;min-width:0}
.rel.rel-pc .rel-faixa.hcar.hcar-pc>.rel-parte-itens{flex-basis:100%}
.rel.rel-pc .rel-faixa.hcar.hcar-pc>.rel-parte-larga{flex-basis:min(100%,calc(var(--hcar-w,26rem) * 1.5))}
.rel.rel-pc .rel-faixa.hcar.hcar-pc>.rel-parte-cheia{flex-basis:calc(100% - 3.5rem)}
.rel.rel-pc .rel-parte-resumo .rel-tiles{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr))}
/* o gráfico ocupa o cartão: o desenho fica com o que sobra depois do título, da legenda e do "Ver os números", e por isso
   aparece inteiro; --rel-min (web/relatorios.js) é o menor tamanho em que ainda se lê: abaixo disso o cartão rola */
.rel.rel-pc .rel-faixa.hcar>.rel-parte>.rel-grafico{flex:1 0 auto;min-height:100%;box-sizing:border-box;display:flex;flex-direction:column}
.rel.rel-pc .rel-faixa.hcar>.rel-parte:has(>.rel-fonte)>.rel-grafico{min-height:0;flex:1 1 auto}
.rel.rel-pc .rel-parte>.rel-grafico>*{flex:none}
.rel.rel-pc .rel-parte>.rel-grafico>.rel-canvas{flex:1 1 0;min-height:var(--rel-min,10rem);max-height:var(--rel-max,none);height:auto!important}
.rel.rel-pc .rel-parte>.rel-grafico>.rel-numeros{margin-top:.25rem}
/* o Item por item: título e busca numa linha, a contagem, a tabela e as páginas. No cartão pequeno a tabela não rola:
   aparecem as linhas que cabem (o corte é do HubCarrossel) e "Ver tudo" abre o cartão grande, onde ela rola por dentro
   com o cabeçalho e o total presos */
.rel.rel-pc .rel-faixa.hcar>.rel-parte>.rel-itens{flex:none;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.75rem .875rem}
.rel.rel-pc .rel-parte .rel-itens-topo{flex:none}
.rel.rel-pc .rel-parte .rel-busca{flex:1 1 16rem;max-width:36rem;margin:0 0 0 auto;min-height:2.75rem;padding-top:.25rem;padding-bottom:.25rem}
.rel.rel-pc .rel-parte .rel-tag-limpar{margin:0}
.rel.rel-pc .rel-parte .rel-itens-lista{flex:1 1 100%;min-width:0;min-height:0!important}
.rel.rel-pc .rel-parte .rel-itens-lista>.rel-mostrando{margin:0 0 .5rem}
.rel.rel-pc .rel-parte .rel-tabela-caixa{margin:0}
.rel.rel-pc .rel-parte .rel-paginas{margin:.5rem 0 0}
.rel.rel-pc .rel-parte .rel-itens-lista:has(>.rel-vazio-lista) .rel-tabela-caixa{display:none}
/* no cartão pequeno: sem rolagem e sem nada preso; no grande: a tabela rola por dentro, quase na altura da janela */
.rel .hcar-cartao:not(.hcar-grande) .rel-tabela-caixa{overflow:hidden;max-height:none}
.rel .hcar-cartao:not(.hcar-grande) .rel-tabela :is(th,tfoot td){position:static}
.rel .hcar-grande .rel-tabela-caixa{max-height:calc(100dvh - 15rem)}
/* com o ponteiro fino (mouse) a linha da tabela pode ser mais baixa: cabem mais linhas na altura da tela */
html.hub-clique .rel.rel-pc .rel-parte .rel-tabela td{height:2.25rem;padding-top:.375rem;padding-bottom:.375rem}
html.hub-clique .rel.rel-pc .rel-parte .rel-tabela th button{min-height:2.5rem}
html.hub-clique .rel.rel-pc .rel-parte .rel-paginas .rel-botao{min-height:2.5rem}
/* o botão Atualizar da fileira do topo gira enquanto o relatório carrega */
.ht-topo.girando svg{animation:rel-gira .8s linear infinite}
@media (prefers-reduced-motion:reduce){.ht-topo.girando svg{animation:none}}
/* o cartão grande de uma parte do relatório: a chapa tem o respiro e o canto que a parte (um bloco sem moldura) não tem */
.rel .hcar-grande{padding:1rem 1.125rem;border-radius:1.5rem}
/* o Resumo é um cartão como os outros (antes os números ficavam soltos na página, embaixo do título grande): o cabeçalho,
   os avisos, os números e a nota da fonte */
.rel :is(.rel-parte-resumo,.rel-slide-resumo){padding:.875rem;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--rel-borda);box-sizing:border-box}
.rel :is(.rel-parte-resumo,.rel-slide-resumo)>.rel-cab{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}
.rel :is(.rel-parte-resumo,.rel-slide-resumo) .rel-tile{background:var(--surface2,#F7F4F1);box-shadow:none}
.rel :is(.rel-parte-resumo,.rel-slide-resumo)>.rel-fonte{margin:.625rem 0 0}
/* sem dados ainda (carregando, erro, datas por escolher): o cabeçalho abre o bloco de espera */
.rel-main>.rel-cab{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 0 0}
/* no celular o cartão da lista e o do gráfico ocupam a altura do cartão do carrossel (o conteúdo curto não deixa a moldura pela metade) */
.rel-slide-itens>.rel-itens{flex:1 1 auto;box-sizing:border-box}

/* /fiscal.css */
/* 1.70.0 (Philippe, 28/09/2026): cupom fiscal (NFC-e) na tela (web/fiscal.js). O ícone da comandinha nos cards da
   expedição e na ficha, o selo "NFC-e 123", a folha do cupom e Configurações > Fiscal. Tokens do Hub, claro e escuro,
   alvos de 44 px e nada de rolagem lateral em 390 px. */
.fiscal-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fiscal-btn{-webkit-tap-highlight-color:transparent;cursor:pointer;font:inherit}
.fiscal-btn.tem{color:var(--ink-green,#1d7a3a)}
.fiscal-btn.pend{color:var(--ink-orange,#a65300)}
.fiscal-btn:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.fiscal-btn:active{transform:scale(var(--apertado-escala,.96))}
/* card pequeno (faixas laterais): o mesmo tamanho das setas, com área de toque de 44 px */
.fiscal-sm{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--r-inner,9px);background:var(--fill,rgba(120,120,128,.12));color:var(--label2,#6B5A4C)}
.fiscal-sm::after{content:"";position:absolute;inset:-6px}
.e.mini .mf .fiscal-sm{margin-right:auto}
/* card grande da expedição: terceira coluna das ações, ao lado do Reimprimir */
.fiscal-lnk{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0;color:var(--ink-blue,var(--blue))}
#view-exp .e>.acts [data-fiscal]{grid-column:3;grid-row:1}
#view-exp .e:not(.mini)>.acts:has([data-fiscal]){grid-template-columns:minmax(0,88px) minmax(0,96px) 44px}
.fiscal-lnk svg{width:22px;height:22px}
/* ficha do pedido: botão com texto ao lado do fechar */
.fiscal-oh{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:0;border-radius:var(--r-pill,999px);background:var(--fill,rgba(120,120,128,.12));color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);font-weight:600;margin-left:auto}
.oh .fiscal-oh+.x{margin-left:8px!important} /* o topo de vidro (topo-vidro.css) empurra o fechar com margin-left:auto e id; aqui ele fica ao lado do cupom */
.fiscal-oh svg{width:20px;height:20px}
/* celular: o fechar continua no fim da primeira linha e o "Cupom fiscal" desce para a linha de baixo, com o texto */
@media (max-width:560px){.oh .fiscal-oh{order:10;margin-left:0}.oh .fiscal-oh+.x{margin-left:auto!important}}
/* selo no card */
.badge.fiscal-selo{border:0;border-radius:8px;font-weight:600}
.badge.fiscal-selo.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1d7a3a)}
.badge.fiscal-selo.pend{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#a65300)}
.badge.fiscal-selo.canc{background:var(--fill,rgba(120,120,128,.12));color:var(--label2,#6B5A4C);text-decoration:line-through}
.badge.fiscal-selo.erro{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#b3261e)}

/* ------------------------------------------------------------ folha do cupom */
.fiscal-fundo{position:fixed;inset:0;z-index:2150;background:var(--vidro-veu,rgba(58,42,30,.22));display:flex;align-items:center;justify-content:center;padding:16px}
.fiscal-folha{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;border-radius:var(--r-sheet,20px);background:var(--glass-bg,rgba(255,255,255,.94));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);box-shadow:0 18px 46px rgba(40,25,12,.24);color:var(--label,#3A2A1E);padding:8px 16px 18px;box-sizing:border-box}
body.dark .fiscal-folha{background:rgba(34,32,30,.96)}
.fiscal-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-top:6px}
.fiscal-topo h2{margin:6px 0 0;font-size:var(--f-title3,1.25rem);font-weight:700}
.fiscal-sub{margin:4px 0 10px;font-size:var(--f-subhead,0.9375rem);color:var(--label2,#6B5A4C);line-height:1.4}
.fiscal-x{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:var(--fill,rgba(120,120,128,.12));color:var(--label2,#6B5A4C);cursor:pointer}
.fiscal-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fiscal-corpo{display:flex;flex-direction:column;gap:12px;padding-bottom:4px}
.fiscal-carregando,.fiscal-nota{margin:0;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.45}
.fiscal-amb{margin:0;padding:8px 12px;border-radius:var(--r-inner,10px);background:color-mix(in srgb,var(--sys-indigo,#5856D6) 12%,transparent);color:var(--ink-indigo,#3634a3);font-size:var(--f-footnote,0.8125rem);font-weight:600}
.fiscal-cartao{padding:14px;border-radius:var(--r-card,16px);background:var(--fill,rgba(120,120,128,.1))}
.fiscal-cartao b{font-size:var(--f-headline,1.0625rem)}
.fiscal-cartao p{margin:6px 0 0;font-size:var(--f-subhead,0.9375rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.fiscal-cartao ul{margin:8px 0 0;padding-left:18px;font-size:var(--f-subhead,0.9375rem);color:var(--label2,#6B5A4C)}
.fiscal-cartao.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 12%,transparent)}
.fiscal-cartao.pend{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 13%,transparent)}
.fiscal-cartao.info{background:color-mix(in srgb,var(--sys-blue,#0088FF) 10%,transparent)}
.fiscal-num{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.fiscal-num span{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.fiscal-num .fiscal-estado{margin-left:auto;font-weight:700;color:var(--label,#3A2A1E)}
.fiscal-valor{font-variant-numeric:tabular-nums;font-weight:600;color:var(--label,#3A2A1E)!important}
.fiscal-chave{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--f-caption1,0.75rem)!important;letter-spacing:.02em;overflow-wrap:anywhere}
.fiscal-botoes{display:flex;flex-wrap:wrap;gap:8px}
.fiscal-botao{flex:1 1 150px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:0;border-radius:var(--r-ctl,12px);background:var(--fill,rgba(120,120,128,.12));color:var(--ink-blue,#1b5fbf);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer;text-align:center}
.fiscal-botao svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fiscal-botao.primario{background:var(--on-blue,#0062BD);color:#fff}
.fiscal-botao.perigo{background:var(--sys-red,#FF383C);color:#fff;width:100%;margin-top:10px}
.fiscal-botao:disabled{opacity:.55;cursor:progress}
.fiscal-botao:not(:disabled):active{transform:scale(var(--apertado-escala,.97))}
.fiscal-botao:focus-visible,.fiscal-link:focus-visible,.fiscal-x:focus-visible,.fiscal-folha input:focus-visible,.fiscal-folha textarea:focus-visible,.fiscal-cancelar summary:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.fiscal-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--ink-blue,#1b5fbf);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer;text-align:left}
.fiscal-msg{margin:0;padding:10px 12px;border-radius:var(--r-inner,10px);font-size:var(--f-subhead,0.9375rem);line-height:1.4;background:var(--fill,rgba(120,120,128,.12))}
.fiscal-msg.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 15%,transparent);color:var(--ink-green,#1d7a3a)}
.fiscal-msg.erro{background:color-mix(in srgb,var(--sys-red,#FF383C) 13%,transparent);color:var(--ink-red,#b3261e)}
.fiscal-msg.aviso{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 15%,transparent);color:var(--ink-orange,#a65300)}
.fiscal-msg .fiscal-link{min-height:32px;color:inherit;text-decoration:underline}
.fiscal-envio{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--sep,rgba(60,60,67,.18))}
.fiscal-envio h3{margin:10px 0 0;font-size:var(--f-headline,1.0625rem)}
.fiscal-linha{display:flex;flex-direction:column;gap:6px}
.fiscal-rotulo{font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C)}
.fiscal-campo{display:flex;gap:8px;min-width:0}
.fiscal-campo input,.fiscal-url,.fiscal-cancelar textarea{flex:1 1 auto;min-width:0;min-height:44px;box-sizing:border-box;padding:10px 12px;border:0;border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:var(--label,#3A2A1E);font:inherit;font-size:max(1rem,calc(1rem * var(--dt,1)));box-shadow:inset 0 0 0 1px var(--sep,rgba(60,60,67,.18))}
.fiscal-url{display:flex;align-items:center;font-size:var(--f-footnote,0.8125rem);overflow-wrap:anywhere;user-select:all;-webkit-user-select:all}
.fiscal-campo .fiscal-botao{flex:0 0 auto}
.fiscal-cancelar{border-top:1px solid var(--sep,rgba(60,60,67,.18));padding-top:4px}
.fiscal-cancelar summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink-red,#b3261e);font-weight:600;font-size:var(--f-subhead,0.9375rem)}
.fiscal-cancelar textarea{width:100%;display:block;resize:vertical;margin-top:6px}
.fiscal-ficha-linha{margin:0 0 8px;font-size:var(--f-subhead,0.9375rem)}
.rel-fiscal .fiscal-botao{flex:0 1 auto}
/* 1.70.1: bloco do cupom na ficha das Negociações, com o mesmo título das outras seções */
.neg-secao.rel-fiscal h3{margin:0 0 10px;font-size:calc(0.8125rem * var(--dt,1));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.fiscal-escolha{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fiscal-escolha .fiscal-botao{flex:0 1 auto;min-height:44px}
@media (max-width:640px){
  .fiscal-fundo{align-items:flex-end;padding:0}
  /* 1.72.0 (auditoria de design 1720): as alturas das folhas do sistema (web/folha.css) e a alça */
  .fiscal-folha{width:100%;max-height:var(--folha-grande,92dvh);min-height:var(--folha-media,50dvh);box-sizing:border-box;border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0;padding-bottom:var(--folha-base,calc(18px + env(safe-area-inset-bottom,0px)))}
  .fiscal-folha::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3));margin:4px auto 0}
  .fiscal-campo .fiscal-botao{padding:10px 12px}
}
@media (prefers-reduced-motion:reduce){.fiscal-btn:active,.fiscal-botao:not(:disabled):active{transform:none}}
@media (prefers-reduced-transparency:reduce){.fiscal-folha{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* ------------------------------------------------------------ Configurações > Fiscal */
.fiscal-cfg .settings-unit{margin:0 auto 18px}
.fiscal-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.fiscal-grade.quatro{grid-template-columns:repeat(3,minmax(0,1fr))}
.fiscal-campo-cfg.largo{grid-column:1/-1}
.fiscal-campo-cfg select{width:100%;min-width:0;min-height:48px;box-sizing:border-box;padding:12px 14px;background:var(--settings-well,var(--surface,#fff));border:0;border-radius:13px;box-shadow:0 2px 9px rgba(44,31,23,.055);font:inherit;font-size:calc(1rem * var(--dt,1));color:var(--text,var(--label))}
.fiscal-dica{margin:6px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--settings-muted,var(--label2));line-height:1.4}
.fiscal-chave-cfg{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:8px 0;cursor:pointer}
.fiscal-chave-cfg input{position:absolute;opacity:0;width:1px;height:1px}
.fiscal-chave-cfg .fiscal-trilho{flex:none;position:relative;width:51px;height:31px;border-radius:16px;background:var(--fill2,rgba(120,120,128,.24));transition:background .2s}
.fiscal-chave-cfg .fiscal-trilho::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:transform .2s}
.fiscal-chave-cfg input:checked+.fiscal-trilho{background:var(--sys-green,#34C759)}
.fiscal-chave-cfg input:checked+.fiscal-trilho::after{transform:translateX(20px)}
.fiscal-chave-cfg input:focus-visible+.fiscal-trilho{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.fiscal-chave-cfg b{display:block;font-size:calc(0.9375rem * var(--dt,1));font-weight:600}
.fiscal-chave-cfg small{display:block;margin-top:2px;font-size:var(--f-footnote,0.8125rem);color:var(--settings-muted,var(--label2));line-height:1.4}
.fiscal-chips{display:flex;flex-wrap:wrap;gap:8px}
.fiscal-chip{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:var(--r-pill,999px);background:var(--fill,rgba(120,120,128,.12));font-size:var(--f-footnote,0.8125rem);font-weight:600}
.fiscal-chip.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1d7a3a)}
.fiscal-chip.pend{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#a65300)}
.fiscal-chip.prod{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#b3261e)}
.fiscal-chip.homol{background:color-mix(in srgb,var(--sys-indigo,#5856D6) 13%,transparent);color:var(--ink-indigo,#3634a3)}
.fiscal-pend{margin:12px 0 0;padding-left:18px;font-size:calc(0.875rem * var(--dt,1));color:var(--ink-orange,#a65300)}
.fiscal-cfg .acts{margin-top:14px}
.fiscal-cfg .btn{min-height:44px}
.fiscal-h2{margin-top:26px!important}
.fiscal-h3{margin:18px 0 10px;font-size:var(--f-headline,1.0625rem);font-weight:650}
.fiscal-contador b{color:var(--ink-orange,#a65300)}
.fiscal-itens summary,.fiscal-cancelar summary{list-style:none}
.fiscal-itens summary::-webkit-details-marker,.fiscal-cancelar summary::-webkit-details-marker{display:none}
.fiscal-itens summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:calc(0.9375rem * var(--dt,1))}
.fiscal-itens summary::before,.fiscal-cancelar summary::before{content:"\203A";display:inline-block;width:14px;font-size:calc(1.25rem * var(--dt,1));line-height:1;transition:transform .2s}
.fiscal-itens[open]>summary::before,.fiscal-cancelar[open]>summary::before{transform:rotate(90deg)}
.fiscal-rotulo-cfg{display:block;font-size:calc(0.875rem * var(--dt,1));font-weight:600;margin-bottom:9px;line-height:1.45}
.fiscal-arquivo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:48px}
.fiscal-arquivo input{position:absolute;width:1px;height:1px;opacity:0}
.fiscal-arquivo .btn{display:inline-flex;align-items:center;min-height:44px;cursor:pointer}
.fiscal-arquivo input:focus-visible+.btn{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.fiscal-arquivo span{font-size:calc(0.875rem * var(--dt,1));color:var(--settings-muted,var(--label2));overflow-wrap:anywhere;min-width:0}
.fiscal-tabela{display:flex;flex-direction:column;gap:6px}
.fiscal-item{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:0 12px;align-items:end;border-top:1px solid var(--sep,rgba(60,60,67,.14));padding-top:8px}
.fiscal-item>span{align-self:center;font-size:calc(0.875rem * var(--dt,1));font-weight:600;overflow-wrap:anywhere}
.fiscal-item .settings-field{margin-bottom:8px}
.fiscal-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fiscal-lista li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--sep,rgba(60,60,67,.14));font-size:calc(0.875rem * var(--dt,1))}
.fiscal-lista small{display:block;color:var(--settings-muted,var(--label2));margin-top:2px}
@media (max-width:760px){.fiscal-grade,.fiscal-grade.quatro{grid-template-columns:minmax(0,1fr)}.fiscal-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fiscal-item>span{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.fiscal-chave-cfg .fiscal-trilho,.fiscal-chave-cfg .fiscal-trilho::after,.fiscal-itens summary::before,.fiscal-cancelar summary::before{transition:none}}

/* 1.70.2: chave de ligar do WhatsApp da loja (Configurações > Fiscal) */
.fiscal-chave-linha{display:flex;align-items:center;gap:10px;min-height:44px;margin:6px 0;font-weight:600;cursor:pointer}
.fiscal-chave-linha input{width:22px;height:22px;accent-color:var(--sys-blue,#0088FF)}

/* 1.74.0 (Philippe, 03/10/2026): Fiscal em carrossel (web/hub-carrossel.js). Os painéis são cartões da faixa .fiscal-car.
   04/10/2026, conteúdo primeiro (B1, B2, B4): o seletor de loja e o botão de salvar saíram de cima e de baixo da faixa e
   moram na barra de baixo das Configurações (web/settings.js); as regras que os arrumavam em volta da faixa saíram junto. */

/* /hub-coleta.css */
/* 1.74.0 (Philippe, 02/10/2026): Configurações > Coleta externa (web/hub-coleta.js). Tokens do Hub, claro e escuro,
   alvos de 44 px, texto que cresce com --dt e nada de rolagem lateral em 390 px. */
.hc{min-width:0}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): a raiz desta seção usa a classe .hc, que nas telas de área
   (web/hub-comercial.css) tem limite de 1280 px. Quando ela é a faixa de cartões das Configurações o limite cortava o
   terceiro cartão no meio da janela e deixava um terço da tela de 1920 px vazio: a faixa vai até a borda, como as outras. */
#view-cfg .hc.hcar{max-width:none}
.hc code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(.875rem * var(--dt,1));background:var(--settings-well,rgba(120,120,128,.1));padding:2px 6px;border-radius:7px;overflow-wrap:anywhere}
.hc .hc-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.hc .hc-cab h2{margin:0}
.hc .hc-cab+.settings-note{margin-top:0}
.hc .settings-panel h2{margin:0 0 12px;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25)}   /* 04/10/2026: o título do cartão no tamanho das outras seções (era 28 px) */
.hc .settings-panel h2+.settings-note,.hc .settings-panel h2+.hc-estado{margin-top:0}
/* situação */
.hc-estado{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:6px 12px 6px 8px;border-radius:999px;font-weight:600;font-size:calc(.875rem * var(--dt,1));background:var(--settings-well,rgba(120,120,128,.1))}
.hc-estado i{width:10px;height:10px;border-radius:50%;background:var(--settings-muted,#8a7a6c);flex:none}
.hc-estado.hc-on i{background:var(--sys-green,#34c759);box-shadow:0 0 0 4px rgba(52,199,89,.18)}
.hc-estado.hc-off{color:var(--settings-muted,#8a7a6c)}
.hc-ok{margin:0;color:var(--settings-muted,#8a7a6c);font-size:calc(.875rem * var(--dt,1))}
.hc-alertas{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hc-alertas li{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--sys-orange,#ff9500) 14%,transparent);color:var(--ink-orange,#8a4b00);font-size:calc(.875rem * var(--dt,1));line-height:1.45}
.hc-alertas b{display:block;font-weight:650}
.hc-aviso{margin:12px 0 0;padding:10px 14px;border-radius:12px;font-size:calc(.875rem * var(--dt,1));line-height:1.45}
.hc-aviso.ok{background:color-mix(in srgb,var(--sys-green,#34c759) 14%,transparent);color:var(--ink-green,#1d7a3a)}
.hc-aviso.erro{background:color-mix(in srgb,var(--sys-red,#ff3b30) 12%,transparent);color:var(--ink-red,#b3261e)}
/* listas (locais e tokens) */
.hc-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hc-lista>li{padding:14px 16px;border-radius:16px;background:var(--settings-well,rgba(120,120,128,.08));display:grid;gap:8px;min-width:0}
.hc-lista>li.hc-inativo{opacity:.62}
.hc-lista>li.hc-alerta{box-shadow:inset 3px 0 0 var(--sys-orange,#ff9500)}
.hc-l1{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;min-width:0}
.hc-l1 b{font-weight:650;font-size:calc(1rem * var(--dt,1));overflow-wrap:anywhere}
.hc-onde,.hc-freq{color:var(--settings-muted,#8a7a6c);font-size:calc(.875rem * var(--dt,1))}
.hc-freq{margin-left:auto}
.hc-tipo{display:inline-block;padding:3px 9px;border-radius:999px;font-weight:600;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));letter-spacing:.01em;background:rgba(120,120,128,.14);color:var(--label2,#5d4f44)}
.hc-tipo-avaliacoes{background:color-mix(in srgb,var(--sys-yellow,#ffcc00) 28%,transparent);color:#6b4d00}
.hc-tipo-financeiro{background:color-mix(in srgb,var(--sys-green,#34c759) 18%,transparent);color:var(--ink-green,#1d7a3a)}
.hc-tipo-pesquisa{background:color-mix(in srgb,var(--sys-blue,#007aff) 14%,transparent);color:var(--ink-blue,#0a4fae)}
.hc-tipo-ok{background:color-mix(in srgb,var(--sys-green,#34c759) 18%,transparent);color:var(--ink-green,#1d7a3a)}
.hc-tipo-off{background:rgba(120,120,128,.14);color:var(--settings-muted,#8a7a6c)}
.hc-l2{display:grid;gap:2px;min-width:0;font-size:calc(.875rem * var(--dt,1));line-height:1.45}
.hc-l2 a{color:var(--ink-blue,var(--blue,#0a4fae));text-decoration:none;overflow-wrap:anywhere}
.hc-l2 a:hover{text-decoration:underline}
.hc-l2 span{color:var(--label2,#5d4f44)}
.hc-l3{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--settings-muted,#8a7a6c);font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.45}
.hc-l3-alerta{color:var(--ink-orange,#8a4b00);font-weight:600}
.hc-acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px}
.hc-acoes .btn{min-height:44px}
.hc-acoes .btn:last-child{margin-left:auto}
.hc-confirma{color:var(--ink-red,#b3261e);font-size:calc(.875rem * var(--dt,1));flex:1 1 100%}
/* a chave Ativo, no feitio do iOS */
.hc-switch{display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:calc(.875rem * var(--dt,1));font-weight:600}
.hc .hc-switch input[type=checkbox]{appearance:none;-webkit-appearance:none;width:51px;height:31px;min-height:31px;max-height:31px;margin:0;border-radius:16px;background:rgba(120,120,128,.32);position:relative;transition:background .2s;flex:none;cursor:pointer}
.hc-switch input::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.16);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.hc-switch input:checked{background:var(--sys-green,#34c759)}
.hc-switch input:checked::after{transform:translateX(20px)}
.hc-switch input:disabled{opacity:.5}
.hc-switch input:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
/* formulário do local */
.hc-form{margin:0 0 16px;padding:16px;border-radius:16px;background:var(--settings-well,rgba(120,120,128,.08))}
.hc-form h3{margin:0 0 12px;font-size:calc(1.0625rem * var(--dt,1));font-weight:650}
.hc-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hc-campos label{display:grid;gap:6px;min-width:0}
.hc-campos .hc-largo{grid-column:1/-1}
.hc-campos span{font-size:calc(.8125rem * var(--dt,1));font-weight:600;color:var(--label2,#5d4f44)}
.hc-campos input,.hc-campos select{min-height:46px;padding:10px 12px;border:0;border-radius:12px;background:var(--settings-surface,#fff);font:inherit;font-size:calc(1rem * var(--dt,1));color:var(--text);box-shadow:0 1px 4px rgba(44,31,23,.08);min-width:0;width:100%;box-sizing:border-box}
.hc-campos input:focus-visible,.hc-campos select:focus-visible,.hc-gerar input:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.hc-campos input[readonly]{color:var(--settings-muted,#8a7a6c)}
.hc-botoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.hc-botoes .btn,.hc-gerar .btn{min-height:44px}
/* tokens */
.hc-gerar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 14px}
.hc-gerar label{display:grid;gap:6px;flex:1 1 220px;min-width:0}
.hc-gerar span{font-size:calc(.8125rem * var(--dt,1));font-weight:600;color:var(--label2,#5d4f44)}
.hc-gerar input{min-height:46px;padding:10px 12px;border:0;border-radius:12px;background:var(--settings-well,rgba(120,120,128,.08));font:inherit;font-size:calc(1rem * var(--dt,1));color:var(--text);min-width:0;width:100%;box-sizing:border-box}
.hc-token-novo{margin:0 0 14px;padding:14px 16px;border-radius:16px;background:color-mix(in srgb,var(--sys-green,#34c759) 12%,transparent);display:grid;gap:10px}
.hc-token-novo b{font-size:calc(.875rem * var(--dt,1));line-height:1.45;color:var(--ink-green,#1d7a3a)}
.hc-token-novo code{display:block;padding:12px 14px;border-radius:12px;background:var(--settings-surface,#fff);font-size:calc(.9375rem * var(--dt,1));user-select:all;-webkit-user-select:all;line-height:1.5}
.hc-token-novo .hc-botoes{margin-top:0}
/* tabela do que chegou */
.hc-tabela{display:grid;gap:2px;font-size:calc(.875rem * var(--dt,1));min-width:0}
.hc-tr{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2.2fr) repeat(4,minmax(0,1fr));gap:8px;align-items:center;padding:10px 12px;border-radius:10px}
.hc-tr:nth-child(even){background:var(--settings-well,rgba(120,120,128,.06))}
.hc-tr span{min-width:0;overflow-wrap:anywhere;text-align:right;font-variant-numeric:tabular-nums}
.hc-tr span:first-child,.hc-tr .hc-td-local{text-align:left}
.hc-contagens{display:contents}
.hc-th{font-weight:650;color:var(--settings-muted,#8a7a6c);font-size:max(.6875rem, calc(.75rem * var(--dt,1)));text-transform:uppercase;letter-spacing:.04em}
.hc-num-erro{color:var(--ink-red,#b3261e);font-weight:650}
/* recusas */
.hc-recusas{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hc-recusas li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:10px 12px;border-radius:12px;background:var(--settings-well,rgba(120,120,128,.06));font-size:calc(.875rem * var(--dt,1));line-height:1.45}
.hc-rec-quando{color:var(--settings-muted,#8a7a6c);font-variant-numeric:tabular-nums}
.hc-rec-local{overflow-wrap:anywhere;font-weight:600}
.hc-rec-motivo{grid-column:1/-1;color:var(--ink-red,#b3261e)}
/* rotas */
.hc-rotas{margin:0;display:grid;gap:4px 16px;grid-template-columns:minmax(0,1fr)}
.hc-rotas dt{font-weight:600;font-size:calc(.875rem * var(--dt,1));margin-top:10px;color:var(--label2,#5d4f44)}
.hc-rotas dd{margin:0;font-size:calc(.875rem * var(--dt,1));line-height:1.55;overflow-wrap:anywhere}
.hc-rotas dd code{display:inline-block;max-width:100%}
/* cartão da tela inicial com local parado */
.settings-home .settings-panel.hc-card-alerta .settings-symbol{color:var(--ink-orange,#8a4b00)}
@media (max-width:600px){
  .hc-campos{grid-template-columns:minmax(0,1fr)}
  /* no celular a tabela vira lista: dia e local na primeira linha, as contagens com rótulo na segunda */
  .hc-th{display:none}
  .hc-tr{grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:12px}
  .hc-tr span{text-align:left}
  .hc-tr .hc-td-local{font-weight:600}
  .hc-contagens{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));color:var(--settings-muted,#8a7a6c)}
  .hc-contagens span::before{content:attr(data-rotulo) " "}
  .hc-contagens .hc-num-erro{color:var(--ink-red,#b3261e)}
  .hc-freq{margin-left:0}
  .hc-acoes .btn:last-child{margin-left:0}
}
body.dark .hc-switch input::after{background:#f2f2f7}
body.dark .hc-campos input,body.dark .hc-campos select,body.dark .hc-token-novo code{background:rgba(255,255,255,.08);color:var(--text)}
body.dark .hc-tipo-avaliacoes{color:#ffd60a}

/* /integracoes-saude.css */
/* 1.74.0 (Philippe, 03/10/2026): Configurações > Saúde das integrações (web/integracoes-saude.js).
   A tela responde de bate-pronto se as conexões do Hub estão funcionando e mostra um cartão por conexão, em carrossel
   (web/hub-carrossel.js). Padrão Apple do projeto: o cartão é conteúdo e por isso é sólido (vidro só nas peças do
   carrossel, que são dele); a cor da situação entra como preenchimento e o texto usa a tinta (--ink-*); alvos de 44 px;
   texto em rem com --dt; claro e escuro pelos tokens; "reduzir movimento" sem pulso nem transição; nada de rolagem
   lateral em 320 px. Verde = funcionando, laranja = pede atenção, vermelho = parado, cinza = não configurado (que não é
   erro). */
.hsi{min-width:0}
/* a cor de cada situação, uma vez só: ponto e ícone (cor), texto (tinta), fundo do selo e do ícone (fundo) e o halo */
.hsi-s-funcionando{--hsi-cor:var(--sys-green,#34c759);--hsi-tinta:var(--ink-green,#1d7a3a);--hsi-fundo:color-mix(in srgb,var(--sys-green,#34c759) 15%,transparent);--hsi-halo:color-mix(in srgb,var(--sys-green,#34c759) 22%,transparent)}
.hsi-s-atencao{--hsi-cor:var(--sys-orange,#ff9500);--hsi-tinta:var(--ink-orange,#8a4b00);--hsi-fundo:color-mix(in srgb,var(--sys-orange,#ff9500) 17%,transparent);--hsi-halo:color-mix(in srgb,var(--sys-orange,#ff9500) 24%,transparent)}
.hsi-s-parado{--hsi-cor:var(--sys-red,#ff3b30);--hsi-tinta:var(--ink-red,#b3261e);--hsi-fundo:color-mix(in srgb,var(--sys-red,#ff3b30) 13%,transparent);--hsi-halo:color-mix(in srgb,var(--sys-red,#ff3b30) 20%,transparent)}
.hsi-s-desligada{--hsi-cor:var(--sys-gray,#8e8e93);--hsi-tinta:var(--settings-muted,#665e54);--hsi-fundo:rgba(120,120,128,.13);--hsi-halo:rgba(120,120,128,.16)}

/* ---------- o topo: a resposta de bate-pronto ---------- */
/* 1.74.0 (04/10/2026), conteúdo primeiro (B1, B4): a resposta de bate-pronto deixou de ser uma faixa acima dos cartões e é
   o primeiro cartão (Resumo), com a situação de cada conexão numa lista; o Conferir agora mora na barra de baixo */
/* a altura de duas linhas de resposta mais a hora, para a lista de baixo não descer quando a frase é comprida */
.hsi-topo{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.25rem .875rem;margin:0;min-width:0;min-height:calc(4.75rem * var(--dt,1))}
.hsi-lista{list-style:none;margin:0;padding:0;display:grid}
.hsi-lista li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.25rem;border-top:1px solid rgba(127,127,127,.16);font-size:var(--f-subhead,calc(.9375rem * var(--dt,1)));font-weight:600;min-width:0}
.hsi-lista li>span:first-child{min-width:0;overflow-wrap:anywhere}
.hsi-luz{width:.875rem;height:.875rem;margin:0 .1875rem;border-radius:50%;background:var(--hsi-cor);box-shadow:0 0 0 .3125rem var(--hsi-halo)}
.hsi-topo-texto{display:grid;gap:.125rem;min-width:0}
.hsi-veredito{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.2;font-weight:700;letter-spacing:-.012em;color:var(--hsi-tinta);overflow-wrap:anywhere}
.hsi-s-desligada .hsi-veredito{color:var(--label,var(--text,#3A2A1E))}
.hsi-veredito span{font-weight:600;color:var(--settings-muted,#665e54)}
.hsi-quando{font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));line-height:1.35;color:var(--settings-muted,#665e54);font-variant-numeric:tabular-nums}
.hsi .btn{min-height:44px;transition:transform var(--dur-rapida,.12s) ease-out}
/* o botão do passo que resolve é azul cheio no claro e no escuro (a regra do escuro para .btn apagava o azul) */
.hsi .btn.primary,body.dark .hsi .btn.primary{background:var(--on-blue,#0062B8);border-color:transparent;color:#fff}
.hsi .btn.hsi-apertado:not(:disabled){transform:scale(var(--apertado-escala,.97))}

/* ---------- a faixa e os cartões ---------- */
.hsi-faixa{min-width:0}
/* sem a peça do carrossel (não deveria acontecer) os cartões ficam empilhados, nunca somem */
.hsi-faixa:not(.hcar){display:grid;gap:.875rem}
/* no computador todos os cartões desta tela têm a mesma altura (a que sobra na tela, até 36rem) e rolam por dentro: o
   esqueleto e a lista pronta ocupam exatamente o mesmo lugar, e um cartão curto não vira coluna até o pé de uma tela alta */
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela */
.hsi .hsi-cartao{margin:0;display:flex;flex-direction:column;gap:.875rem;padding:1.125rem;min-width:0}
/* o cabeçalho: ícone, nome e selo na primeira linha; o que é a conexão por baixo, na largura toda (nome comprido não
   espreme a explicação) */
.hsi-cab{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icone nome selo" "icone sobre sobre";align-items:center;gap:.125rem .75rem;min-width:0}
.hsi-icone{grid-area:icone;align-self:start;width:2.75rem;height:2.75rem;border-radius:.875rem;display:grid;place-items:center;background:var(--hsi-fundo);color:var(--hsi-tinta)}
.hsi-icone svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hsi .hsi-cartao h2{grid-area:nome;margin:0;font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));line-height:1.25;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere}
.hsi-cab>.hsi-selo,.hsi-cab>.hsi-b-selo{grid-area:selo}
.hsi-sobre{grid-area:sobre;align-self:start;margin:0;font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));line-height:1.4;color:var(--settings-muted,#665e54)}
.hsi-selo{flex:none;display:inline-flex;align-items:center;gap:.375rem;min-height:1.75rem;padding:.125rem .625rem .125rem .5rem;border-radius:999px;background:var(--hsi-fundo);color:var(--hsi-tinta);font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));font-weight:650;line-height:1.2;white-space:nowrap;box-sizing:border-box}
.hsi-selo i{flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--hsi-cor)}
.hsi-selo-p{min-height:1.5rem;font-size:var(--f-caption1,max(.6875rem,calc(.75rem * var(--dt,1))))}
/* cada conexão do cartão: o que significa (a frase mais importante), desde quando, o que fazer e o botão */
.hsi-item{display:grid;gap:.625rem;min-width:0}
.hsi-item+.hsi-item{padding-top:.875rem;border-top:1px solid var(--sep,rgba(74,55,39,.14))}
.hsi-item-cab{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .5rem;min-width:0}
.hsi-item-cab h3{margin:0;font-size:var(--f-subhead,calc(.9375rem * var(--dt,1)));line-height:1.3;font-weight:650;overflow-wrap:anywhere}
.hsi-significa{margin:0;font-size:var(--f-callout,calc(1rem * var(--dt,1)));line-height:1.4;font-weight:600;color:var(--label,var(--text,#3A2A1E))}
.hsi-fatos{margin:0;display:grid;gap:.5rem}
.hsi-fatos>div{display:grid;gap:.0625rem;min-width:0}
.hsi-fatos dt{font-size:var(--f-caption1,max(.6875rem,calc(.75rem * var(--dt,1))));line-height:1.3;font-weight:650;letter-spacing:.02em;color:var(--settings-muted,#665e54)}
.hsi-fatos dd{margin:0;font-size:var(--f-subhead,calc(.9375rem * var(--dt,1)));line-height:1.45;color:var(--label,var(--text,#3A2A1E));overflow-wrap:anywhere}
.hsi-sinal{color:var(--settings-muted,#665e54)}
.hsi-nota{margin:0;padding:.5rem .75rem;border-radius:.75rem;background:var(--settings-well,rgba(120,120,128,.08));font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));line-height:1.45;color:var(--label2,#5d4f44)}
.hsi-acoes{display:flex;flex-wrap:wrap;gap:.5rem}
.hsi-tecnico{margin:0;font-size:var(--f-caption1,max(.6875rem,calc(.75rem * var(--dt,1))));line-height:1.4;color:var(--settings-muted,#665e54);overflow-wrap:anywhere}
.hsi-tecnico span{font-weight:650}
/* erro ao carregar e sem permissão: um cartão só, com a mensagem e o botão */
.hsi-aviso{display:grid;gap:.5rem;justify-items:start}
.hsi-aviso h2,.hsi-aviso .settings-note{margin:0}


/* ---------- carregando: o esqueleto ocupa o lugar exato da tela pronta ---------- */
.hsi-barra{display:inline-block;height:.75em;border-radius:.375em;background:var(--fill,rgba(90,65,45,.08));vertical-align:middle}
.hsi-b30{width:30%}.hsi-b40{width:40%}.hsi-b70{width:70%}.hsi-b90{width:90%}
.hsi-b-selo{width:5.5rem;height:1.75rem;border-radius:999px}
.hsi-b-botao{width:9rem;height:44px;border-radius:.75rem}
.hsi-esq .hsi-icone{background:var(--fill,rgba(90,65,45,.08))}
.hsi-carregando .hsi-barra,.hsi-carregando .hsi-esq .hsi-icone{animation:hsi-pulso 1.2s ease-in-out infinite}
/* as fichas ainda não têm nome: ficam como marcas neutras (nem a escura do cartão atual), sem toque */
.hsi-carregando .hcar-contagem{visibility:hidden}
@keyframes hsi-pulso{50%{opacity:.45}}

/* ---------- o cartão "Saúde das integrações" na tela inicial das Configurações ---------- */
.settings-cartao.hsi-card-alerta .settings-estado{background:rgba(255,141,40,.16);color:var(--ink-orange,#8a4b00)}
.settings-home .settings-panel.hsi-card-alerta .settings-symbol{color:var(--ink-orange,#8a4b00)}
.settings-cartao.hsi-card-alerta.hsi-card-parado .settings-estado{background:color-mix(in srgb,var(--sys-red,#ff3b30) 14%,transparent);color:var(--ink-red,#b3261e)}
.settings-home .settings-panel.hsi-card-alerta.hsi-card-parado .settings-symbol{color:var(--ink-red,#b3261e)}

/* ---------- a tela em volta: com o carrossel a página não rola, então o cabeçalho encolhe ---------- */
@media (max-width:760px){
  .hsi-veredito{font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)))}
  .hsi-contagens{display:none}
  .hsi .hsi-cartao{padding:1rem}
}

@media (prefers-reduced-motion:reduce){
  .hsi .btn{transition:none}
  .hsi .btn.hsi-apertado:not(:disabled){transform:none;opacity:var(--apertado-opacidade,.7)}
  .hsi-carregando .hsi-barra,.hsi-carregando .hsi-esq .hsi-icone{animation:none}
}
@media (prefers-contrast:more){
  .hsi-selo{border:1px solid currentColor}
  .hsi .hsi-cartao{box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)}
}
body.dark .hsi-s-desligada{--hsi-fundo:rgba(255,255,255,.1);--hsi-halo:rgba(255,255,255,.12)}
/* 1.74.0 (Philippe, 05/10/2026, quinta rodada, L3): o cartão Lojas (abrir e fechar loja, geral e por canal). O desenho das
   linhas é o da peça dos canais (web/store-status.css, .ssc); aqui só o encaixe no cartão: ícone neutro (não é uma conexão
   com situação) e a peça sem a margem de cima que ela tem na Situação das lojas. */
.hsi-lojas .hsi-icone{background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.hsi-lojas-peca{min-width:0}
.hsi-lojas-peca .ssc{margin:0}
/* 1.74.0 (segunda fase, L3): em celular baixo (320 x 568, 360 x 640, 375 x 667) a peça usa o desenho compacto
   (web/store-status.css) e o cabeçalho do cartão fica só com o título, como o cartão Lojas da seção Integrações: sem o
   ícone e sem a frase de baixo sobram 25 px de altura, o que falta para as duas unidades caberem com uma delas parte
   fechada e a outra fechada só no Hub */
@media (max-height:700px) and (max-width:760px){
  .hsi .hsi-lojas{gap:.5rem}
  .hsi-lojas .hsi-cab{grid-template-columns:minmax(0,1fr);grid-template-areas:"nome"}
  .hsi-lojas .hsi-icone,.hsi-lojas .hsi-sobre{display:none}
}


/* /equipe.css */
/* 1.69.0: EQUIPE, PONTO E TAREFAS (web/equipe.js, web/ponto.js, web/tarefas.js). Tokens do Hub com valor reserva em
   todo var(), claro e escuro pelos mesmos tokens (body.dark), alvos de 44 px (o PIN e os nomes do ponto são maiores:
   é o computador da expedição, tocado de pé), foco visível e vidro só nas peças de controle (folhas e barra), com os
   cartões sólidos. Nenhuma rolagem lateral: a grade da escala vira "um dia por vez" no celular. */

/* ---------------------------------------------------------------- ponto (sobre a tela toda) */
#ponto-raiz{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}
#ponto-raiz[hidden]{display:none}
body.ponto-aberto{overflow:hidden}
.ponto-fundo,.tarefas-fundo{position:absolute;inset:0;background:rgba(20,12,6,.42);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ponto-folha{position:relative;width:min(760px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-sheet,24px);background:var(--vidro-solido,#FBF7F2);color:var(--label,#3A2A1E);box-shadow:0 24px 70px rgba(0,0,0,.35)}
body.dark .ponto-folha{background:#221D19;color:#F4ECE4}
.ponto-topo,.tarefas-topo{display:flex;align-items:center;gap:12px;padding:14px 18px 10px;border-bottom:1px solid var(--sep,rgba(58,42,30,.12))}
.ponto-topo>div,.tarefas-topo>div{flex:1;min-width:0}
.ponto-topo h2,.tarefas-topo h2{margin:0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em}
.ponto-sub,.tarefas-sub{margin:2px 0 0;font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.ponto-relogio{font-variant-numeric:tabular-nums;font-size:calc(1.375rem * var(--dt,1));font-weight:600;color:var(--label2,#6B5A4C)}
.ponto-x{min-width:44px;min-height:44px;border:0;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:inherit;font-size:calc(1.625rem * var(--dt,1));line-height:1;cursor:pointer}
.ponto-corpo,.tarefas-corpo{overflow-y:auto;padding:16px 18px 20px;-webkit-overflow-scrolling:touch}
.ponto-cam{display:flex;flex-direction:column;align-items:center;gap:12px}
.ponto-video-caixa{position:relative;width:min(560px,100%);aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:#110C08}
.ponto-video-caixa video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}
.ponto-oval{position:absolute;left:50%;top:48%;width:44%;height:70%;transform:translate(-50%,-50%);border-radius:50%;border:3px solid rgba(255,255,255,.85);box-shadow:0 0 0 999px rgba(0,0,0,.28);pointer-events:none}
.ponto-carregando{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;background:rgba(17,12,8,.72);color:#fff;text-align:center;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)))}
.ponto-carregando[hidden]{display:none}
.ponto-msg{margin:0;min-height:1.4em;text-align:center;font-size:calc(1.375rem * var(--dt,1));font-weight:600}
.ponto-grande{margin:0 0 12px;text-align:center;font-size:calc(1.375rem * var(--dt,1));font-weight:600;line-height:1.3}
.ponto-sub2{margin:4px 0 0;text-align:center;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.ponto-aviso{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:rgba(245,144,27,.16);font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));line-height:1.4}
.ponto-acoes{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}
.ponto-btn{min-height:44px;padding:10px 18px;border:0;border-radius:var(--r-ctl,12px);background:var(--fill,rgba(90,65,45,.1));color:inherit;font:inherit;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ponto-btn.primario{background:var(--on-blue,#0062BD);color:#fff}
body.dark .ponto-btn.primario{background:#1E6EF4}
.ponto-btn:active,.ponto-nome:active,.ponto-tecla:active,.tf-btn:active{transform:scale(.97);opacity:var(--apertado-opacidade,.7)}
/* 1.70.0 (auditoria): o link pequeno em azul cheio dava 3,3:1 no fundo claro; texto colorido pequeno usa o tom --ink-blue (4,5:1 ou mais) */
.ponto-link{min-height:44px;border:0;background:transparent;color:var(--ink-blue,#1D5FB8);font:inherit;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));cursor:pointer;text-decoration:underline}
body.dark .ponto-link{color:#6CB4FF}
.ponto-nomes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
/* 1.74.0 (Philippe, 05/10/2026; N4 da quinta rodada): --page virou o off-white do fundo da página. Os botões de nome, o
   campo, o item de tarefa e o cartão de tarefas da Cozinha são SUPERFÍCIES (brancas, por cima da folha e do fundo), e não
   fundo: passam a ler --surface. No escuro nada muda (cada um já tinha a cor própria). */
.ponto-nome{min-height:72px;padding:10px 12px;border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:16px;background:var(--surface,#fff);color:inherit;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
body.dark .ponto-nome{background:#2C2622;border-color:rgba(255,255,255,.12)}
.ponto-nome b{font-size:calc(1.1875rem * var(--dt,1))}
.ponto-nome span{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.ponto-nome:disabled{opacity:var(--desligado-opacidade,.45);cursor:default}
.ponto-confirma,.ponto-feito,.ponto-escolha,.ponto-teclado-caixa{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:8px 0}
.ponto-escolha{align-items:stretch}
.ponto-acao{margin:0;padding:6px 18px;border-radius:999px;font-weight:700;font-size:calc(1.0625rem * var(--dt,1));letter-spacing:.02em;text-transform:uppercase}
.ponto-acao.entrada{background:rgba(18,183,106,.16);color:#067647}
.ponto-acao.saida{background:rgba(47,124,246,.16);color:#1849A9}
body.dark .ponto-acao.entrada{color:#47CD89}
body.dark .ponto-acao.saida{color:#84CAFF}
.ponto-quem{margin:4px 0 0;font-size:calc(2.5rem * var(--dt,1));font-weight:800;letter-spacing:-.02em;line-height:1.1}
.ponto-conta{margin:8px 0 0;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.ponto-check{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#12B76A}
.ponto-feito.saida .ponto-check{background:#2E90FA}
.ponto-check svg{width:52px;height:52px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ponto-teclado{display:grid;grid-template-columns:repeat(3,84px);gap:12px;justify-content:center;margin-top:6px}
.ponto-tecla{height:72px;border:0;border-radius:18px;background:var(--fill,rgba(90,65,45,.1));color:inherit;font:inherit;font-size:calc(1.75rem * var(--dt,1));font-weight:600;cursor:pointer}
.ponto-tecla.ok{background:var(--on-blue,#0062BD);color:#fff;font-size:calc(1.25rem * var(--dt,1))}
.ponto-pontos{display:flex;gap:14px;justify-content:center;margin:4px 0 8px}
.ponto-pontos i{width:16px;height:16px;border-radius:50%;border:2px solid var(--label2,#6B5A4C)}
.ponto-pontos i.on{background:var(--label,#3A2A1E);border-color:var(--label,#3A2A1E)}
body.dark .ponto-pontos i.on{background:#F4ECE4;border-color:#F4ECE4}
.ponto-campo{min-height:48px;padding:10px 14px;border:1px solid var(--sep,rgba(58,42,30,.2));border-radius:12px;background:var(--surface,#fff);color:inherit;font:inherit;font-size:max(1rem,calc(1.1875rem * var(--dt,1)))}
body.dark .ponto-campo{background:#2C2622;border-color:rgba(255,255,255,.16)}
.ponto-aviso-lgpd ul{margin:0 0 10px;padding-left:20px;text-align:left;font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));line-height:1.45}
.ponto-aceite{display:flex;align-items:center;gap:10px;justify-content:center;min-height:44px;font-size:calc(1.0625rem * var(--dt,1));font-weight:600}
.ponto-aceite input{width:24px;height:24px}
.ponto-poses{display:flex;gap:8px;list-style:none;margin:0;padding:0}
.ponto-poses li{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fill,rgba(90,65,45,.1));font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));font-weight:700}
.ponto-poses li.agora{background:var(--on-blue,#0062BD);color:#fff}
.ponto-poses li.feita{background:#12B76A;color:#fff}
.ponto-roda{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;animation:ponto-gira .9s linear infinite;display:inline-block}
.ponto-corpo .ponto-roda,.tarefas-corpo .ponto-roda{border-color:rgba(90,65,45,.2);border-top-color:var(--sys-blue,#0071E3)}
.ponto-roda.grande{width:48px;height:48px}
@keyframes ponto-gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ponto-roda{animation-duration:2.4s}}
.ponto-folha button:focus-visible,.ponto-folha input:focus-visible,.tarefas-folha button:focus-visible,.kds-tarefas button:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
@media (max-width:620px){.ponto-quem{font-size:calc(2rem * var(--dt,1))}.ponto-teclado{grid-template-columns:repeat(3,72px)}.ponto-tecla{height:64px}}

/* ---------------------------------------------------------------- tarefas (folha e KDS parado) */
#tarefas-raiz{position:fixed;inset:0;z-index:1290;display:flex;align-items:flex-end;justify-content:center;padding:16px}
#tarefas-raiz[hidden]{display:none}
@media (min-width:760px){#tarefas-raiz{align-items:center}}
.tarefas-folha{position:relative;width:min(720px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-sheet,24px);background:var(--vidro-solido,#FBF7F2);color:var(--label,#3A2A1E);box-shadow:0 24px 70px rgba(0,0,0,.35)}
body.dark .tarefas-folha{background:#221D19;color:#F4ECE4}
.tf-grupo h3{margin:10px 0 6px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));letter-spacing:.05em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.tf-grupo h3 span{font-weight:400}
.tf-grupo ul,.kds-tarefas ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tf-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.12))}
body.dark .tf-item{background:#2C2622;border-color:rgba(255,255,255,.1)}
.tf-item.atrasada{border-color:#F79009;background:rgba(247,144,9,.12)}
.tf-item.atrasada.critica{border-color:#D92D20;background:rgba(217,45,32,.12)}
.tf-texto{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tf-texto b{font-size:var(--f-body,calc(1.0625rem * var(--dt,1)))}
.tf-texto span,.tf-texto small{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.tf-texto .tf-critica{display:inline-block;padding:1px 8px;border-radius:999px;background:#D92D20;color:#fff;font-style:normal;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:700;vertical-align:middle}
.tf-btn{min-width:96px;min-height:48px;border:0;border-radius:14px;background:#12B76A;color:#fff;font:inherit;font-size:var(--f-body,calc(1.0625rem * var(--dt,1)));font-weight:700;cursor:pointer}
.tf-btn[data-tf-desfazer]{background:var(--fill,rgba(90,65,45,.12));color:inherit}
.tf-ok{font-size:calc(1.375rem * var(--dt,1));color:#12B76A;font-weight:800;padding:0 10px}
.tf-sistema{font-size:var(--f-footnote,max(0.6875rem, calc(0.8125rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.tf-vazio{margin:18px 0;text-align:center;color:var(--label2,#6B5A4C);font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)))}
.tf-livre{margin:0 0 10px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);color:var(--ink-green,#1E7B3A);font-size:var(--f-subhead,calc(0.9375rem * var(--dt,1)));font-weight:600;line-height:1.35}
.tf-escolha .ponto-grande{font-size:calc(1.25rem * var(--dt,1))}
.kds-tarefas{margin:14px 20px 20px;padding:14px 16px;border-radius:20px;background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.12))}
body.dark .kds-tarefas{background:#221D19;border-color:rgba(255,255,255,.1)}
.kds-tarefas h2{margin:0 0 10px;font-size:calc(1.1875rem * var(--dt,1));font-weight:700}
.kds-tarefas .tf-item.grande{padding:16px 18px}
.kds-tarefas .tf-item.grande .tf-texto b{font-size:calc(1.375rem * var(--dt,1))}
.kds-tarefas .tf-item.grande .tf-btn{min-width:130px;min-height:64px;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)))}
.ctxbtns .icon.tarefas-atrasadas{color:#B54708}
.ctxbtns .nb.azul{background:var(--on-blue,#0062BD)}

/* ---------------------------------------------------------------- tela Equipe (1.70.0)
   Pedido do Philippe (28/09/2026, noite): repaginar a tela da Equipe, "principalmente na versão do telefone", sem botão
   escondido, sem zoom preso, sem nada rolando para o lado, com arrastar e soltar e o Cérebro. Guia da Apple:
   - o conteúdo é sólido (cartões com --surface) e o vidro fica só no que controla (as abas grudadas no topo, a fita dos
     dias, a folha de ações);
   - alvos de 44 px no toque; texto pelos estilos do sistema (--f-*, que acompanham a escala de letra do Hub);
   - CAMPOS COM 16 PX OU MAIS SEMPRE: a escala de letra do Hub (Configurações > Aparência > Texto, --dt) deixava os campos
     da Equipe com 14,45 px e o iOS aproximava a página ao tocar num campo, sem voltar (o "zoom preso");
   - touch-action: manipulation na tela e nas folhas (o toque duplo não aproxima; o pinçar continua);
   - nenhuma peça da Equipe usa transform: scale no toque (o "apertado" é só a opacidade);
   - animações curtas, desligadas com "reduzir movimento". */
#view-equ{padding:0;touch-action:manipulation;--eq-topo:var(--topo-reserva,62px);--eq-abas-h:44px}
html.app-nativo #view-equ{--eq-topo:max(0px, calc(var(--topo-app,8px) - 6px))}
@media (max-width:560px){#view-equ{--eq-abas-h:50px}}
.eq{max-width:1280px;margin:0 auto;padding:2px 16px calc(40px + env(safe-area-inset-bottom,0px));box-sizing:border-box;color:var(--label,#3A2A1E);display:flex;flex-direction:column;gap:12px;min-width:0}
.eq *{box-sizing:border-box}
.eq-so-leitor{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.eq-ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.eq-redondo{min-width:44px;height:44px;padding:0 12px;border:0;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;flex:none}
.eq-redondo span{display:none}
.eq-redondo.so-ic{width:44px;padding:0}
.eq-redondo.peq{min-width:36px;width:36px;height:36px}
html.hub-toque .eq-redondo.peq{min-width:44px;width:44px;height:44px}

.eq-badge{position:absolute;top:3px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--sys-red,#E0342E);color:#fff;font-size:var(--f-caption2,0.6875rem);font-weight:700;line-height:1.125rem;text-align:center}

/* Peça ao Cérebro */
.eq-cerebro{display:flex;flex-direction:column;gap:8px;min-width:0}
.eq-cerebro-campo{display:flex;align-items:center;gap:8px;min-height:52px;padding:3px 3px 3px 12px;border-radius:26px;background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.14));transition:border-color var(--dur-rapida,.12s),box-shadow var(--dur-rapida,.12s)}
.eq-cerebro-campo:focus-within{border-color:var(--sys-blue,#0088FF);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue,#0088FF) 22%,transparent)}
.eq-cerebro-campo.ocupado .eq-cerebro-ic{animation:eq-pulso 1.2s ease-in-out infinite}
@keyframes eq-pulso{50%{opacity:.4}}
.eq-cerebro-ic{width:28px;height:28px;flex:none;object-fit:contain}
.eq-cerebro-campo input{flex:1;min-width:0;min-height:44px;border:0;background:transparent;color:inherit;font:inherit;font-size:max(1rem,var(--f-body,1.0625rem))!important;outline:none;padding:0}
.eq-cerebro-campo input::placeholder{color:var(--label3,#8A7666);text-overflow:ellipsis}
.eq-cerebro-ir{width:44px;height:44px;flex:none;border:0;border-radius:999px;background:var(--on-blue,#0062BD);color:#fff;display:grid;place-items:center;cursor:pointer}
.eq-cerebro-ir:disabled{opacity:var(--desligado-opacidade,.42)}
.eq-exemplos{display:flex;flex-wrap:wrap;gap:6px}
.eq-exemplo{min-height:36px;padding:6px 12px;border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:999px;background:var(--surface,#fff);color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-footnote,0.8125rem);text-align:left;cursor:pointer;max-width:100%}
html.hub-toque .eq-exemplo{min-height:44px}
.eq-previa{padding:14px 16px;border-radius:var(--r-card,16px);background:color-mix(in srgb,var(--sys-indigo,#6155F5) 7%,var(--surface,#fff));border:1px solid color-mix(in srgb,var(--sys-indigo,#6155F5) 28%,transparent);display:flex;flex-direction:column;gap:10px;min-width:0}
.eq-previa-topo{display:flex;align-items:flex-start;gap:8px;color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);line-height:1.35}
.eq-previa-topo .eq-ic{color:var(--ink-indigo,#4B3FD0);margin-top:1px}
.eq-previa-topo p{margin:0}
.eq-previa-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:var(--f-subhead,0.9375rem);line-height:1.35}
.eq-previa-lista li{overflow-wrap:anywhere}
.eq-previa-lista .antes{color:var(--label2,#6B5A4C);text-decoration:line-through}
.eq-previa-lista .depois{color:var(--ink-green,#1E7B3A);font-weight:600}
.eq-previa-lista .seta{width:14px;height:14px;vertical-align:-2px;color:var(--label3,#8A7666)}
.eq-previa-lista small{color:var(--label2,#6B5A4C)}
.eq-previa-aviso{margin:0;display:flex;gap:6px;align-items:flex-start;color:var(--ink-orange,#A2560A);font-size:var(--f-footnote,0.8125rem)}
.eq-previa-aviso .eq-ic{width:16px;height:16px;margin-top:1px}
.eq-previa-acoes{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}

/* botões */
.eq-btn{min-height:44px;padding:0 16px;border:0;border-radius:var(--r-ctl,12px);background:var(--fill,rgba(90,65,45,.1));color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.eq-btn .eq-ic{width:18px;height:18px}
.eq-btn.primario{background:var(--on-blue,#0062BD);color:#fff}
.eq-btn.perigo{color:var(--ink-red,#B42318)}
body.dark .eq-btn.perigo{color:color-mix(in srgb,var(--sys-red,#FF4245) 50%,#fff)} /* 1.72.0: a tinta vermelha no preenchimento escuro dava 3,4:1 */
.eq-btn.largo{width:100%}
.eq-btn.peq{min-height:36px;padding:0 12px;font-size:var(--f-footnote,0.8125rem)}
html.hub-toque .eq-btn.peq{min-height:44px}
.eq-btn:disabled{opacity:var(--desligado-opacidade,.42);cursor:default}
.eq-btn:not(:disabled):active,.eq-redondo:active,.eq-exemplo:active,.eq-linha-botao:active,.eq-chip-pessoa:active,.eq-menu-op:active{opacity:var(--apertado-opacidade,.6)}
html.hub-clique .eq-btn:not(:disabled):hover,html.hub-clique .eq-redondo:hover,html.hub-clique .eq-exemplo:hover{background:color-mix(in srgb,var(--fill,rgba(90,65,45,.1)) 100%,var(--label,#3A2A1E) 6%)}
html.hub-clique .eq-btn.primario:not(:disabled):hover{background:color-mix(in srgb,var(--on-blue,#0062BD) 88%,#000)}
.eq button:focus-visible,.eq a:focus-visible,.eq input:focus-visible,.eq select:focus-visible,.eq summary:focus-visible,.eqs button:focus-visible,.eqs input:focus-visible,.eqs select:focus-visible,.eqs textarea:focus-visible,.eqs summary:focus-visible,#eq-desfazer button:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}

.eq-seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--fill,rgba(90,65,45,.08));max-width:100%;min-width:0}
.eq-seg button{min-height:36px;min-width:0;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}
html.hub-toque .eq-seg button{min-height:44px}
.eq-seg button.on{background:var(--surface,#fff);box-shadow:0 1px 3px rgba(0,0,0,.14)}
body.dark .eq-seg button.on{background:var(--surface2,#2C2A27)}
.eq-chave{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:var(--f-subhead,0.9375rem);font-weight:600}
.eq-chave>input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.eq-chave-trilho{position:relative;flex:none;width:51px;height:31px;border-radius:999px;background:var(--fill3,rgba(90,65,45,.2));transition:background-color var(--dur-media,.2s)}
.eq-chave-trilho::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.22);transition:transform var(--dur-media,.2s) var(--curva-padrao,ease)}
.eq-chave>input:checked+.eq-chave-trilho{background:var(--sys-green,#34C759)}
.eq-chave>input:checked+.eq-chave-trilho::after{transform:translateX(20px)}
.eq-chave>input:focus-visible+.eq-chave-trilho{outline:3px solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.eq-chave.largo{display:flex;width:100%;flex-direction:row-reverse;justify-content:space-between;font-weight:500}
.eq-chave.largo>span:last-child{display:flex;flex-direction:column;gap:2px}
.eq-chave small{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);font-weight:400}

/* cartões, listas e selos */
.eq-conteudo{display:flex;flex-direction:column;gap:12px;min-width:0}
.eq-cartao{padding:14px 16px;border-radius:var(--r-card,16px);background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.12));min-width:0}
.eq-cartao-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}
.eq-cartao-cab>div{min-width:0}
.eq-cartao-cab h2{margin:0;font-size:var(--f-title3,1.25rem);font-weight:700;letter-spacing:-.01em}
.eq-leve{margin:2px 0 0;color:var(--label2,#6B5A4C);font-size:var(--f-footnote,0.8125rem);line-height:1.35}
.eq-vazio{margin:8px 0;color:var(--label2,#6B5A4C);font-size:var(--f-subhead,0.9375rem)}
.eq-vazio-grande{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.eq-vazio-grande p{margin:0;font-size:var(--f-body,1.0625rem);color:var(--label2,#6B5A4C)}
.eq-erro{margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-red,#E0342E) 12%,transparent);color:var(--ink-red,#B42318);font-size:var(--f-subhead,0.9375rem)}
.eq-aviso{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent);font-size:var(--f-footnote,0.8125rem)}
.eq-carregando{display:flex;align-items:center;gap:10px;padding:14px 4px;color:var(--label2,#6B5A4C);font-size:var(--f-subhead,0.9375rem)}
.eq-roda{width:18px;height:18px;border-radius:50%;border:2.5px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:var(--sys-blue,#0088FF);animation:ponto-gira .8s linear infinite;flex:none}
.eq-lista{list-style:none;margin:0;padding:0}
.eq-linha{display:flex;align-items:center;gap:12px;min-height:54px;padding:7px 0;border-top:.5px solid var(--sep,rgba(58,42,30,.1));min-width:0}
.eq-lista>.eq-linha:first-child{border-top:0}
.eq-linha-txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px;overflow-wrap:anywhere}
.eq-linha-txt>b{font-size:var(--f-body,1.0625rem);font-weight:600;line-height:1.25}
.eq-linha-txt>span{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.3}
.eq-linha-botao{min-height:44px;padding:4px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;justify-content:center}
.eq-linha-lado{flex:0 1 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;max-width:58%}
.eq-selos{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.eq-linha-lado .eq-redondo.so-ic{background:transparent;color:var(--label2,#6B5A4C)}
html.hub-clique .eq-linha-lado .eq-redondo.so-ic:hover{background:var(--fill,rgba(90,65,45,.08))}
.eq-linha.riscada .eq-linha-txt{opacity:.55;text-decoration:line-through}
.eq-av{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--av,#8E8E93);color:#fff;font-size:calc(0.8125rem * var(--dt,1));font-weight:700;letter-spacing:.02em}
.eq-selo{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-size:var(--f-caption1,0.75rem);font-weight:600;white-space:nowrap}
.eq-selo.verde{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1E7B3A)}
.eq-selo.laranja{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 20%,transparent);color:var(--ink-orange,#A2560A)}
.eq-selo.vermelho{background:color-mix(in srgb,var(--sys-red,#E0342E) 15%,transparent);color:var(--ink-red,#B42318)}
.eq-selo.azul{background:color-mix(in srgb,var(--sys-blue,#0088FF) 15%,transparent);color:var(--ink-blue,#1861A0)}
.eq-selo.indigo{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 16%,transparent);color:var(--ink-indigo,#4B3FD0)}
.eq-grupo{min-width:0}
.eq-grupo h3,.eq-grupo summary h3{display:flex;align-items:center;gap:6px;margin:14px 0 2px;font-size:var(--f-footnote,0.8125rem);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.eq-grupo h3 span{font-weight:500;color:var(--label3,#8A7666)}
.eq-grupo.verde h3{color:var(--ink-green,#1E7B3A)} .eq-grupo.laranja h3{color:var(--ink-orange,#A2560A)} .eq-grupo.vermelho h3{color:var(--ink-red,#B42318)} .eq-grupo.azul h3{color:var(--ink-blue,#1861A0)}
.eq-mais{min-width:0}
.eq-mais>summary{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-height:44px;cursor:pointer;list-style:none;font-size:var(--f-subhead,0.9375rem);font-weight:600;color:var(--ink-blue,#1861A0)}
.eq-mais>summary::-webkit-details-marker{display:none}
.eq-mais>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:auto;transition:transform var(--dur-media,.2s)}
.eq-mais[open]>summary::after{transform:rotate(225deg)}
.eq-mais>summary>span{font-weight:400;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.eq-mais>summary h3{margin:0}
.eq-grupo.eq-mais>summary{color:inherit}

/* aba Agora */
.eq-numeros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 4px}
.eq-numero{min-width:0;padding:10px 8px;border-radius:12px;background:var(--fill,rgba(90,65,45,.06));display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.eq-numero b{font-size:var(--f-title2,1.375rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1;white-space:nowrap}
.eq-numero span{font-size:var(--f-caption1,0.75rem);color:var(--label2,#6B5A4C);line-height:1.2}
.eq-numero.verde b{color:var(--ink-green,#1E7B3A)} .eq-numero.laranja{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 14%,transparent)} .eq-numero.laranja b{color:var(--ink-orange,#A2560A)} .eq-numero.azul{background:color-mix(in srgb,var(--sys-green,#34C759) 14%,transparent)} .eq-numero.azul b{color:var(--ink-green,#1E7B3A)} .eq-numero.indigo b{color:var(--ink-indigo,#4B3FD0)}
.eq-barra-h{display:block;height:8px;margin-top:5px;border-radius:999px;background:var(--fill,rgba(90,65,45,.1));overflow:hidden}
.eq-barra-h i{display:block;height:100%;border-radius:inherit;background:var(--sys-blue,#0088FF)}
.eq-barra-h.acima i{background:var(--sys-red,#E0342E)}
.eq-barra-h.verde{margin:4px 0 6px}.eq-barra-h.verde i{background:var(--sys-green,#34C759)}

/* aba Escala */
.eq-avisos{display:flex;flex-wrap:wrap;gap:6px}
.eq-aviso-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border:0;border-radius:999px;font:inherit;font-size:var(--f-footnote,0.8125rem);font-weight:600;text-align:left;max-width:100%}
button.eq-aviso-chip{cursor:pointer}
html.hub-toque button.eq-aviso-chip{min-height:44px}
.eq-aviso-chip .eq-ic{width:16px;height:16px}
.eq-aviso-chip.laranja{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#A2560A)}
.eq-aviso-chip.vermelho{background:color-mix(in srgb,var(--sys-red,#E0342E) 14%,transparent);color:var(--ink-red,#B42318)}
.eq-aviso-chip.indigo{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 14%,transparent);color:var(--ink-indigo,#4B3FD0)}
.eq-dica{margin:6px 2px 0;color:var(--label3,#8A7666);font-size:var(--f-footnote,0.8125rem)}
/* pessoa no turno (a peça que se arrasta) */
.eq-chip-pessoa{display:flex;align-items:center;gap:6px;width:100%;min-width:0;min-height:36px;padding:4px 6px;border:0;border-radius:10px;background:color-mix(in srgb,var(--sys-blue,#0088FF) 11%,var(--surface,#fff));color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-footnote,0.8125rem);font-weight:600;text-align:left;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.eq-chip-pessoa .eq-av{width:24px;height:24px;font-size:var(--f-caption2,0.6875rem)}
.eq-chip-nome{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.eq-chip-nome,.eq-chip-nome small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eq-chip-nome small{font-size:var(--f-caption2,0.6875rem);font-weight:500;color:var(--label2,#6B5A4C)}
.eq-chip-pessoa.dobra{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 15%,var(--surface,#fff))}
.eq-dobra{flex:none;font-style:normal;font-size:var(--f-caption2,0.6875rem);font-weight:800;color:var(--ink-indigo,#4B3FD0)}
.eq-chip-pessoa.grande{min-height:54px;padding:6px 10px;border-radius:12px;font-size:var(--f-body,1.0625rem)}
.eq-chip-pessoa.grande .eq-av{width:36px;height:36px;font-size:calc(0.8125rem * var(--dt,1))}
.eq-chip-pessoa.grande .eq-chip-nome small{font-size:var(--f-footnote,0.8125rem)}
.eq-mais-ic{flex:none;color:var(--label3,#8A7666);display:grid;place-items:center;width:28px}
.eq-horas{flex:none;font-size:var(--f-caption1,0.75rem);font-weight:700;font-variant-numeric:tabular-nums;color:var(--label2,#6B5A4C)}
.eq-horas.acima{color:var(--ink-red,#B42318)}
[data-arrasta]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
/* computador: lista de pessoas ao lado e a grade da semana (dias em colunas, Dia e Noite em linhas) */
.eq-escala-larga{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start;min-width:0}
.eq-painel{position:sticky;top:calc(var(--eq-topo) + var(--eq-abas-h) + 16px);max-height:calc(100dvh - var(--eq-topo) - var(--eq-abas-h) - 32px);overflow:auto;padding:12px;border-radius:var(--r-card,16px);background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.12))}
.eq-painel header h2{margin:0;font-size:var(--f-headline,1.0625rem);font-weight:700}
.eq-painel-lista{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.eq-painel .eq-chip-pessoa.grande{background:var(--fill,rgba(90,65,45,.06));font-size:var(--f-subhead,0.9375rem);min-height:48px}
.eq-grade-caixa{min-width:0}
.eq-grade{display:grid;grid-template-columns:96px repeat(var(--dias,7),minmax(0,1fr));border:1px solid var(--sep,rgba(58,42,30,.12));border-radius:var(--r-card,16px);background:var(--surface,#fff);overflow:hidden}
.eq-grade-canto{border-bottom:1px solid var(--sep,rgba(58,42,30,.12))}
.eq-grade-dia{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-bottom:1px solid var(--sep,rgba(58,42,30,.12));border-left:1px solid var(--sep,rgba(58,42,30,.08));min-width:0}
.eq-dia-botao{min-height:44px;width:100%;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}
.eq-dia-botao b{font-size:var(--f-subhead,0.9375rem)} .eq-dia-botao span{font-size:var(--f-caption1,0.75rem);color:var(--label2,#6B5A4C)}
html.hub-clique .eq-dia-botao:hover{background:var(--fill,rgba(90,65,45,.06))}
.eq-grade-dia.hoje .eq-dia-botao b,.eq-grade-dia.hoje .eq-dia-botao span{color:var(--ink-blue,#1861A0)}
.eq-grade-dia.passado{opacity:.6}
.eq-mov{font-style:normal;font-size:var(--f-caption2,0.6875rem);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-orange,#A2560A)}
.eq-grade-faixa{display:flex;flex-direction:column;gap:2px;padding:10px 10px;border-top:1px solid var(--sep,rgba(58,42,30,.12));background:var(--surface2,#F7F4F1)}
.eq-grade-faixa b{font-size:var(--f-headline,1.0625rem)} .eq-grade-faixa span{font-size:var(--f-caption1,0.75rem);color:var(--label2,#6B5A4C)}
.eq-celula{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:128px;padding:6px 6px 42px;border-top:1px solid var(--sep,rgba(58,42,30,.12));border-left:1px solid var(--sep,rgba(58,42,30,.08));transition:background-color var(--dur-rapida,.12s)}
.eq-celula.hoje{background:color-mix(in srgb,var(--sys-blue,#0088FF) 5%,transparent)}
.eq-celula.vazia:not(.passado){background:color-mix(in srgb,var(--sys-orange,#FF8D28) 7%,transparent)}
.eq-celula.passado{background:color-mix(in srgb,var(--label,#3A2A1E) 3%,transparent)}
.eq-celula-hora{font-size:var(--f-caption2,0.6875rem);font-weight:700;color:var(--label2,#6B5A4C);text-transform:uppercase;letter-spacing:.03em}
.eq-celula-vazia{display:flex;align-items:center;gap:4px;font-size:var(--f-caption1,0.75rem);font-weight:600;color:var(--ink-orange,#A2560A)}
.eq-celula-vazia .eq-ic{width:14px;height:14px}
.eq-celula-add{position:absolute;left:6px;right:6px;bottom:5px;height:32px;border:1px dashed var(--sep,rgba(58,42,30,.22));border-radius:9px;background:transparent;color:var(--label2,#6B5A4C);display:grid;place-items:center;cursor:pointer;opacity:.55}
.eq-celula-add .eq-ic{width:16px;height:16px}
html.hub-clique .eq-celula:hover .eq-celula-add,.eq-celula-add:focus-visible{opacity:1}
.eq-dia{padding-top:10px}
.eq-faixa{padding:12px 0 14px;border-top:.5px solid var(--sep,rgba(58,42,30,.14));border-radius:4px;transition:background-color var(--dur-rapida,.12s)}
.eq-faixa h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0 0 8px;font-size:var(--f-headline,1.0625rem);font-weight:700}
.eq-faixa h3 span{font-size:var(--f-footnote,0.8125rem);font-weight:500;color:var(--label2,#6B5A4C)}
.eq-faixa-lista{display:flex;flex-direction:column;gap:6px}
.eq-faixa-vazia{display:flex;align-items:flex-start;gap:6px;margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sys-orange,#FF8D28) 12%,transparent);color:var(--ink-orange,#A2560A);font-size:var(--f-subhead,0.9375rem);font-weight:600}
.eq-faixa-vazia .eq-ic{margin-top:1px}
.eq-faixa-add{margin-top:8px;width:100%;background:transparent;border:1.5px dashed var(--sep,rgba(58,42,30,.24));color:var(--ink-blue,#1861A0)}
.eq-faixa.folga .eq-linha-lado{max-width:none;flex-wrap:nowrap}
.eq-faixa.folga .eq-linha{cursor:grab}
/* arrastar: onde pode soltar acende; o item levantado tem sombra */
html.eq-arrastando,html.eq-arrastando *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}
html.eq-arrastando-turno .eq-celula,html.eq-arrastando-pessoa .eq-celula,html.eq-arrastando-turno .eq-faixa,html.eq-arrastando-pessoa .eq-faixa:not(.folga),html.eq-arrastando-modelo .eq-hoje,html.eq-arrastando-modelo .eq-reordena{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--sys-blue,#0088FF) 35%,transparent)}
.eq-alvo{background:color-mix(in srgb,var(--sys-blue,#0088FF) 14%,transparent)!important;box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)!important}
.eq-origem{opacity:.35}
.eq-fantasma{position:fixed!important;left:0!important;top:0!important;z-index:2000;margin:0!important;pointer-events:none;border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.14);opacity:.97;will-change:transform;list-style:none}
li.eq-fantasma{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.14))}
.eq-insercao{height:4px;margin:2px 0;border-radius:2px;background:var(--sys-blue,#0088FF);list-style:none;pointer-events:none}
/* a tarefa arrastada no celular: uma pílula com o nome (o card inteiro tampava a bandeja) */
.eq-fantasma-pilula{display:flex;align-items:center;gap:8px;max-width:min(300px,80vw);min-height:48px;padding:0 16px;background:var(--surface,#fff);color:var(--label,#3A2A1E);border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:999px;font-size:var(--f-subhead,0.9375rem);font-weight:700;white-space:nowrap}
.eq-fantasma-pilula span{overflow:hidden;text-overflow:ellipsis}
.eq-fantasma-pilula .eq-ic{color:var(--ink-blue,#1861A0)}
/* o botão da Equipe não encolhe no toque (o "apertado" geral do Hub é scale(.94)): o retorno é a opacidade */
#view-equ button:not(:disabled):active,#view-equ .pressed,#eq-folha-raiz button:not(:disabled):active,#eq-folha-raiz .pressed{transform:none!important;filter:none!important}
/* no celular a bandeja fica embaixo, perto do polegar, acima da barra do app */
#eq-bandeja{position:fixed;left:16px;right:16px;bottom:max(20px, calc(env(safe-area-inset-bottom,0px) + 12px));z-index:1990;min-height:72px;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px;border:2px dashed var(--sys-blue,#0088FF);background:color-mix(in srgb,var(--sys-blue,#0088FF) 12%,var(--surface,#fff));color:var(--ink-blue,#1861A0);font-size:var(--f-subhead,0.9375rem);font-weight:700;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.18)}
html.app-nativo #eq-bandeja{bottom:calc(var(--rodape-app,64px) + 12px)}
#eq-bandeja.eq-alvo{background:color-mix(in srgb,var(--sys-blue,#0088FF) 26%,var(--surface,#fff))!important}

/* aba Tarefas */
.eq-solta-dica{display:none}
html.eq-arrastando-modelo .eq-hoje .eq-solta-dica{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px 0 0;min-height:56px;border:2px dashed var(--sys-blue,#0088FF);border-radius:12px;color:var(--ink-blue,#1861A0);font-size:var(--f-subhead,0.9375rem);font-weight:600}
.eq-check{width:44px;height:44px;flex:none;margin:-4px -4px -4px -6px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;color:transparent}
.eq-check .eq-ic{width:26px;height:26px;padding:4px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--label3,#A2958A);stroke-width:3}
.eq-item.atrasada .eq-check .eq-ic{box-shadow:inset 0 0 0 2px var(--sys-red,#E0342E)}
.eq-item.agora .eq-check .eq-ic{box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)}
.eq-check.feita .eq-ic,.eq-check.sistema .eq-ic{color:#fff;background:var(--sys-green,#34C759);box-shadow:none}
.eq-check.sistema .eq-ic{background:var(--sys-blue,#0088FF)}
.eq-check:disabled{opacity:.4;cursor:default}
html.hub-clique .eq-check:not(:disabled):not(.feita):hover .eq-ic{color:var(--label3,#A2958A)}
.eq-item.feita .eq-linha-txt>b,.eq-item.feita_atrasada .eq-linha-txt>b{color:var(--label2,#6B5A4C);text-decoration:line-through;text-decoration-thickness:1px}
.eq-modelo .eq-alca{flex:none;width:24px;height:44px;display:grid;place-items:center;color:var(--label3,#A2958A);cursor:grab;margin-left:-4px}
.eq-modelo .eq-linha-botao{flex:1 1 auto}
.eq-modelo.pausada .eq-linha-txt{opacity:.55}
.eq-modelo{cursor:grab}
.eq-reordena{min-height:10px;border-radius:10px;transition:background-color var(--dur-rapida,.12s)}
.eq-hoje{transition:background-color var(--dur-rapida,.12s)}

/* aba Pessoas */
.eq-busca{flex:1 1 220px;min-width:0}
.eq-busca input,.eq-campo input,.eq-campo select,.eq-campo textarea,.eq-pordia input,.eq-marcar input{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:10px 14px;border:1px solid var(--sep,rgba(58,42,30,.2));border-radius:12px;background:var(--surface,#fff);color:var(--label,#3A2A1E);font:inherit;font-size:max(1rem,var(--f-body,1.0625rem))!important;line-height:1.25}
.eq-busca input{border-radius:12px;background:var(--fill,rgba(90,65,45,.08));border-color:transparent}
.eq-pessoas{padding:4px 16px}
.eq-pessoas .eq-linha-lado{flex-wrap:nowrap}
.eq-status{width:30px;height:30px;display:grid;place-items:center;color:var(--label3,#A2958A)}
.eq-status .eq-ic{width:19px;height:19px}
.eq-status.ok{color:var(--ink-green,#1E7B3A)}

/* folhas (formulários e menus): Cancelar e Salvar no topo, sempre à vista; o corpo rola por baixo */
#eq-folha-raiz{position:fixed;inset:0;z-index:1285;touch-action:manipulation}
#eq-folha-raiz[hidden]{display:none}
html.eq-folha-aberta,html.eq-folha-aberta body{overscroll-behavior:none}
.eqs-veu{position:absolute;inset:0;background:rgba(20,15,10,.42);opacity:0;transition:opacity .3s var(--curva-padrao,ease)}
body.dark .eqs-veu{background:rgba(0,0,0,.58)}
#eq-folha-raiz.aberta .eqs-veu{opacity:var(--veu,1)}
#eq-folha-raiz.hub-folha-arrastando .eqs-veu{transition:none}
.eqs{position:absolute;left:0;right:0;bottom:0;margin:0 auto;width:min(720px,100%);max-height:calc(100dvh - max(env(safe-area-inset-top,0px) + 12px, 4dvh));display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;
  border-radius:22px 22px 0 0;background:var(--vidro-solido,#FBF8F4);color:var(--label,#3A2A1E);box-shadow:0 -10px 44px rgba(0,0,0,.22),var(--vidro-brilho,none);-webkit-backface-visibility:hidden;backface-visibility:hidden}
html.app-ios .eqs{max-height:calc(100dvh - var(--app-status,0px) - 10px)}
body.dark .eqs{background:var(--vidro-solido,#1C1916)}
.eqs-alca{flex:none;height:18px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none}
.eqs-alca span{width:40px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3))}
.eqs-topo{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:0 6px 8px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14))}
.eqs-topo h2{margin:0;max-width:min(52vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:var(--f-headline,1.0625rem);font-weight:700;outline:none;cursor:grab}
.eqs-cancelar,.eqs-salvar{min-height:44px;min-width:0;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--ink-blue,#1861A0);font:inherit;font-size:var(--f-body,1.0625rem);cursor:pointer;white-space:nowrap}
.eqs-cancelar{justify-self:start}
.eqs-salvar{justify-self:end;font-weight:700}
.eqs-salvar:disabled{opacity:.4}
.eqs-lugar{justify-self:end;width:44px}
html.hub-clique .eqs-cancelar:hover,html.hub-clique .eqs-salvar:not(:disabled):hover{background:var(--fill,rgba(90,65,45,.08))}
.eqs-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px 16px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}
@media (min-width:641px){.eqs-topo{padding-left:10px;padding-right:10px}.eqs-corpo{padding-left:20px;padding-right:20px}} /* 1.72.0: 20 pt de margem no iPad */
.eqs-corpo>.eq-leve{margin:0}
@media (min-width:760px){
  .eqs{top:0;bottom:0;margin:auto;height:fit-content;max-height:min(88dvh,900px);width:min(660px,calc(100% - 48px));border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.3),var(--vidro-brilho,none)}
  .eqs.menu{width:min(460px,calc(100% - 48px))}
  .eqs-alca{height:10px}
  .eqs-alca span{display:none}
  .eqs-corpo{padding-bottom:20px}
}
@media (prefers-reduced-motion:reduce){.eqs-veu,.eq-chave-trilho,.eq-chave-trilho::after{transition:none}.eq-cerebro-campo.ocupado .eq-cerebro-ic{animation:none}}
/* campos */
.eq-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px 14px;min-width:0}
.eq-campo{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}
.eq-campo.largo{grid-column:1/-1}
.eq-campo[hidden]{display:none}
.eq-campo>span,.eq-campo>legend{padding:0;font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C)}
.eq-campo>span i{font-style:normal;color:var(--ink-red,#B42318)}
.eq-campo small{font-size:var(--f-caption1,0.75rem);color:var(--label2,#6B5A4C);min-height:1em}
.eq-campo textarea{min-height:76px;resize:vertical}
.eq-campo select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
.eq-campo input[type=time],.eq-campo input[type=date]{font-variant-numeric:tabular-nums}
.eq-campo input.valido{border-color:var(--sys-green,#34C759)}
.eq-campo input.invalido{border-color:var(--sys-red,#E0342E)}
.eq-campo input:focus,.eq-campo select:focus,.eq-campo textarea:focus,.eq-busca input:focus{outline:none;border-color:var(--sys-blue,#0088FF);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue,#0088FF) 22%,transparent)}
body.dark .eq-campo input,body.dark .eq-campo select,body.dark .eq-campo textarea,body.dark .eq-pordia input{background:var(--surface2,#2C2A27);border-color:rgba(255,255,255,.14)}
.eq-linha-campos{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;grid-column:1/-1;min-width:0}
.eq-linha-campos.tres{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}
.eq-linha-campos[hidden]{display:none}
@media (max-width:560px){.eq-linha-campos.tres{grid-template-columns:1fr 1fr}.eq-linha-campos.tres>:first-child{grid-column:1/-1}}
.eq-endereco{grid-column:1/-1;margin:-4px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.eq-escolhas{gap:8px}
.eq-escolhas[hidden]{display:none}
.eq-escolhas-l{display:flex;flex-wrap:wrap;gap:6px}
.eq-escolha{position:relative;display:inline-flex}
.eq-escolha input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.eq-escolha span{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--sep,rgba(58,42,30,.2));background:var(--surface,#fff);font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer;white-space:nowrap}
html.hub-toque .eq-escolha span{min-height:44px}
.eq-escolha.on span,.eq-escolha input:checked+span{background:var(--on-blue,#0062BD);border-color:var(--on-blue,#0062BD);color:#fff}
.eq-escolha input:focus-visible+span{outline:3px solid var(--foco-cor,#2F7CF6);outline-offset:2px}
body.dark .eq-escolha span{background:var(--surface2,#2C2A27);border-color:rgba(255,255,255,.14)}
body.dark .eq-escolha.on span,body.dark .eq-escolha input:checked+span{background:var(--on-blue,#0062BD);border-color:var(--on-blue,#0062BD);color:#fff}
/* no escuro os campos nativos (hora, data, lista) desenham o relógio e a seta claros */
body.dark .eq,body.dark .eqs{color-scheme:dark}
.eq-escolhas-l.dias .eq-escolha span{min-width:52px;padding:0 10px}
.eq-secao{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.eq-secao h3{margin:0;font-size:var(--f-headline,1.0625rem);font-weight:700}
.eqs-corpo>.eq-secao:first-child{border-top:0;padding-top:0}
.eq-botoes{flex-direction:row;flex-wrap:wrap}
.eq-botoes .eq-btn{flex:1 1 200px}
.eq-turno-cfg{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;background:var(--fill,rgba(90,65,45,.05))}
.eq-pordia{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:8px}
.eq-pordia-l{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:center}
.eq-pordia-l b{font-size:var(--f-subhead,0.9375rem)}
.eq-semana-pessoa{display:flex;flex-direction:column;gap:8px}
.eq-dia-linha{margin:0;padding:8px 0 0;border:0;border-top:.5px solid var(--sep,rgba(58,42,30,.12));min-width:0}
.eq-dia-linha legend{padding:0;float:left;width:100%;margin-bottom:6px;font-size:var(--f-subhead,0.9375rem);font-weight:700}
.eq-marcar{margin:0}
.eq-marcar-linha{display:flex;align-items:center;gap:12px;min-height:58px;padding:6px 0;cursor:pointer}
.eq-marcar-linha input{position:absolute;opacity:0;width:1px;height:1px;min-height:0!important;padding:0!important}
.eq-marca{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px var(--label3,#A2958A);color:transparent}
.eq-marca .eq-ic{width:18px;height:18px;stroke-width:3}
.eq-marcar-linha input:checked~.eq-marca{background:var(--sys-blue,#0088FF);box-shadow:none;color:#fff}
.eq-marcar-linha input:focus-visible~.eq-marca{outline:3px solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.eq-menu{display:flex;flex-direction:column;gap:6px}
.eq-menu.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.eq-menu-op{display:flex;align-items:center;gap:12px;min-height:54px;padding:8px 14px;border:0;border-radius:14px;background:var(--surface,#fff);color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-body,1.0625rem);font-weight:600;text-align:left;cursor:pointer}
body.dark .eq-menu-op{background:var(--surface2,#2C2A27)}
.eq-menu-op span{display:flex;flex-direction:column;gap:1px;min-width:0}
.eq-menu-op small{font-size:var(--f-footnote,0.8125rem);font-weight:400;color:var(--label2,#6B5A4C)}
.eq-menu-op .eq-ic{color:var(--ink-blue,#1861A0)}
.eq-menu-op.perigo{color:var(--ink-red,#B42318)}
.eq-menu-op.perigo .eq-ic{color:currentColor}
.eq-menu-op:disabled{opacity:.4;cursor:default}
html.hub-clique .eq-menu-op:not(:disabled):hover{background:color-mix(in srgb,var(--surface,#fff) 90%,var(--label,#3A2A1E) 8%)}
.eq-foto{display:flex;justify-content:center}
.eq-foto img{max-width:100%;border-radius:14px}

/* aviso com Desfazer (embaixo, acima da barra do app) */
#eq-desfazer{position:fixed;left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom,0px) + 8px));z-index:1400;display:flex;align-items:center;gap:6px;width:max-content;max-width:calc(100vw - 32px);min-height:52px;padding:6px 6px 6px 18px;border-radius:18px;background:var(--vidro-grosso,rgba(34,30,27,.92));color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);font-weight:600;
  -webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:var(--vidro-brilho,none),0 12px 36px rgba(0,0,0,.22);transform:translate(-50%,calc(100% + 40px));opacity:0;pointer-events:none;transition:transform .32s var(--curva-mola,cubic-bezier(.2,1.25,.35,1)),opacity .2s linear}
#eq-desfazer.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
#eq-desfazer.erro{box-shadow:var(--vidro-brilho,none),inset 4px 0 0 var(--sys-red,#E0342E),0 12px 36px rgba(0,0,0,.22)}
html.app-nativo #eq-desfazer{bottom:calc(var(--rodape-app,64px) + 12px)}
#eq-desfazer>span{min-width:0;overflow-wrap:anywhere;line-height:1.3}
#eq-desfazer button{flex:none;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--ink-blue,#1861A0);font:inherit;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
#eq-desfazer button.x{width:44px;padding:0;justify-content:center;color:var(--label2,#6B5A4C)}
@media (prefers-reduced-motion:reduce){#eq-desfazer{transition:opacity .2s linear}}
/* 1.70.0 (auditoria, 29/09/2026): fundo azul cheio com texto branco segue a regra de contraste do Hub (index.html, seção 7):
   o azul do sistema com branco dá 3,5:1; o tom --on-blue passa de 4,5:1 no claro e no escuro. Só a cor do fundo muda. */
.eq-btn.primario,.ponto-btn.primario,body.dark .ponto-btn.primario,.ponto-tecla.ok,.ponto-poses li.agora{background:var(--on-blue,#0062B8)}
/* 1.72.0 (pente fino final): o campo "Peça ao Cérebro" da Equipe é a mesma cápsula do campo do Cérebro (52 pt, cantos de 26,
   enviar de 44 pt em --on-blue); e todo botão azul com letra branca da Equipe, do Ponto e das Tarefas usa --on-blue (o azul
   do sistema com letra branca dava 3,5:1) */

/* /recomendacoes.css */
/* 1.71.0 (Philippe, 29/09/2026): recomendações do Cérebro (web/recomendacoes.js). Tokens do Hub (--label, --fill,
   --sys-*); claro e escuro; a página nunca rola para o lado.
   1.72.0 (Philippe: "a interface do cérebro tem que ser única"): no topo de cada tela de dados fica só uma ENTRADA de uma
   linha ("Cérebro: 3 recomendações para esta tela"), que abre o Cérebro único (web/cerebro.js) em "Para esta tela". Os
   cartões, o detalhe, as dispensadas e o aviso de Desfazer são desenhados aqui e moram DENTRO do Cérebro (.cu).
   Padrão Apple: texto colorido pelas tintas --ink-* (contraste AA no claro e no escuro), letra mínima de 11 pt, alvos de
   44 pt, conteúdo em material sólido (vidro só no que flutua), "reduzir movimento". */

/* ------------------------------------------------------------------ a entrada de cada tela */
.hr-faixa{margin:0 0 16px;min-width:0;max-width:100%}
.hr-faixa[hidden]{display:none}
.hr-entrada{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 12px 8px 12px;border:0;border-radius:var(--r-card,16px);background:var(--surface,#fff);box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 3px rgba(40,25,12,.06);color:var(--label,#3A2A1E);font:inherit;text-align:left;cursor:pointer;min-width:0;max-width:100%;transition:transform var(--dur-rapida,.12s) ease,background-color var(--dur-rapida,.12s) ease}
body.dark .hr-entrada{background:var(--surface2,#2C2A27);box-shadow:0 0 0 .5px var(--sep,rgba(240,225,210,.16))}
.hr-entrada:active{transform:scale(var(--apertado-escala,.98))}
@media (hover:hover){.hr-entrada:hover{background:color-mix(in srgb,var(--surface,#fff) 92%,var(--label,#3A2A1E))}body.dark .hr-entrada:hover{background:color-mix(in srgb,var(--surface2,#2C2A27) 90%,#fff)}}
.hr-entrada:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px}
.hr-entrada .hr-cerebro.philippe-brain{flex:none;width:30px;height:33px}
.hr-entrada-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.hr-entrada-txt strong{font-size:var(--f-subhead,0.9375rem);font-weight:600;letter-spacing:-.01em;line-height:1.3;overflow-wrap:anywhere}
.hr-entrada-txt span{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.3;overflow-wrap:anywhere;display:var(--hr-entrada-sub,-webkit-box);-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden} /* 1.74.0 (desempenho): --hr-entrada-sub vale none na tela de faixa inteira com a entrada vazia (web/hub-carrossel.css); até duas linhas, como a linha de uma lista do iOS (sem reticências cortando no meio da frase) */
.hr-entrada .hr-seguir{flex:none;width:18px;height:18px;fill:none;stroke:var(--label3,#7E6A59);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hr-faixa:not(.vazia):not(.carregando) .hr-entrada[data-prioridade="1"] .hr-entrada-txt strong::before{content:"";display:inline-block;width:8px;height:8px;margin:0 8px 1px 0;border-radius:50%;background:var(--sys-orange,#FF8D28);vertical-align:middle}
.hr-faixa.vazia .hr-entrada-txt strong{font-weight:500;color:var(--label2,#6B5A4C)}
.hr-faixa.carregando .hr-entrada{cursor:progress}
.hr-faixa.carregando .hr-entrada-txt span{animation:hr-pulsa 1.4s ease-in-out infinite}
@keyframes hr-pulsa{50%{opacity:.45}}
@keyframes hr-brilho{from{background-position:100% 0}to{background-position:0 0}}

/* ------------------------------------------------------------------ os cartões (dentro do Cérebro) */
:is(.hr-folha,.cu) .hr-item{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 16px 10px;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14));transition:opacity .18s ease,transform .18s ease}
:is(.hr-folha,.cu) .hr-item.clicavel{cursor:pointer}
:is(.hr-folha,.cu) .hr-item.saindo{opacity:0;transform:scale(.97)}
:is(.hr-faixa,.hr-folha,.cu) .hr-tag{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));line-height:1.35;font-weight:600;color:var(--label2,#6B5A4C);min-width:0;overflow-wrap:anywhere} /* 1.72.0 (pente fino): a etiqueta quebra a linha em vez de cortar com reticências ("Atenção: Gutierrez e Cidade No…") */
:is(.hr-faixa,.hr-folha,.cu) .hr-pont{flex:none;width:8px;height:8px;margin-top:calc(.675em - 4px);border-radius:50%;background:var(--sys-blue,#0088FF)}
:is(.hr-folha,.cu) :is(.hr-item,.hr-det)[data-prioridade="1"] .hr-pont{background:var(--sys-orange,#FF8D28)}
:is(.hr-folha,.cu) :is(.hr-item,.hr-det)[data-prioridade="3"] .hr-pont{background:var(--sys-green,#34C759)}
:is(.hr-faixa,.hr-folha,.cu) .hr-tit{margin:0;font-size:var(--f-headline,1.0625rem);font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--label,#3A2A1E);overflow-wrap:anywhere}
:is(.hr-faixa,.hr-folha,.cu) .hr-txt{margin:0;font-size:var(--f-subhead,0.9375rem);line-height:1.45;color:var(--label2,#6B5A4C);overflow-wrap:anywhere}
:is(.hr-faixa,.hr-folha,.cu) .hr-fonte{margin:2px 0 0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C);line-height:1.3;overflow-wrap:anywhere}
:is(.hr-faixa,.hr-folha,.cu) .hr-botoes{display:flex;align-items:center;gap:8px;margin-top:4px;padding-top:6px;flex-wrap:wrap}
/* botões: fundo neutro e texto na tinta (o azul do sistema como texto dava 2,7 a 3,5:1) */
:is(.hr-faixa,.hr-folha,.cu,.hr-aviso) :is(.hr-acao,.hr-mais,.hr-sala){display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--ink-blue,#1F5FA8);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;padding:0 16px;min-height:44px;cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform var(--dur-rapida,.12s) ease,background-color var(--dur-rapida,.12s) ease}
:is(.hr-folha,.cu) .hr-mais{background:var(--on-blue,#0062BD);color:#fff}
:is(.hr-faixa,.hr-folha,.cu,.hr-aviso) :is(.hr-acao,.hr-mais,.hr-sala,.hr-dispensar,.hr-todas):active{transform:scale(var(--apertado-escala,.97))}
@media (hover:hover){:is(.hr-folha,.cu,.hr-aviso) :is(.hr-acao,.hr-sala):hover{background:var(--fill2,rgba(90,65,45,.12))}:is(.hr-folha,.cu) .hr-mais:hover{filter:brightness(1.08)}}
:is(.hr-faixa,.hr-folha,.cu) .hr-dispensar{border:0;background:transparent;color:var(--label2,#6B5A4C);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:500;padding:0 12px;min-height:44px;border-radius:999px;cursor:pointer;margin-left:auto}
:is(.hr-faixa,.hr-folha,.cu) .hr-dispensar:hover{background:var(--fill,rgba(90,65,45,.08))}
:is(.hr-faixa,.hr-folha,.cu) .hr-todas{flex:none;border:0;background:transparent;color:var(--ink-blue,#1F5FA8);font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;padding:0 10px;border-radius:var(--r-ctl,12px);cursor:pointer;min-height:44px}
:is(.hr-faixa,.hr-folha,.cu) .hr-todas:hover{background:var(--fill,rgba(90,65,45,.08))}
:is(.hr-faixa,.hr-folha,.cu,.hr-aviso) :is(.hr-acao,.hr-mais,.hr-sala,.hr-dispensar,.hr-todas,.hr-fechar):focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px}
/* carregando: o espaço já reservado */
:is(.hr-folha,.cu) .hr-det-carregando{min-height:240px;border-radius:var(--r-card,16px);background:linear-gradient(100deg,var(--fill,rgba(90,65,45,.06)) 30%,var(--fill2,rgba(90,65,45,.12)) 50%,var(--fill,rgba(90,65,45,.06)) 70%) 0 0/300% 100%;animation:hr-brilho 1.4s ease-in-out infinite}
:is(.hr-folha,.cu) .hr-folha-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.hr-folha-vazia{margin:12px 0;color:var(--label2,#6B5A4C)}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev{margin-top:4px}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev-per{margin:0 0 4px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev li{display:flex;justify-content:space-between;gap:8px;font-size:var(--f-footnote,0.8125rem);border-bottom:.5px solid var(--sep,rgba(58,42,30,.14));padding:4px 0;min-width:0}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev li span{color:var(--label2,#6B5A4C);min-width:0;overflow-wrap:anywhere}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev li b{font-weight:600;white-space:nowrap}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev li.hr-mercado{grid-column:1/-1;flex-wrap:wrap}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev li.hr-mercado em{flex-basis:100%;font-style:normal;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
/* toque: área mínima de 44 px */
html.hub-toque :is(.hr-faixa,.hr-folha,.cu) .hr-acao,html.hub-toque :is(.hr-faixa,.hr-folha,.cu) .hr-dispensar,html.hub-toque :is(.hr-faixa,.hr-folha,.cu) .hr-todas{min-height:44px}
@media (max-width:759px){
  :is(.hr-faixa,.hr-folha,.cu) .hr-ev ul{grid-template-columns:minmax(0,1fr)}
  :is(.hr-folha,.cu) .hr-botoes .hr-dispensar{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .hr-entrada,:is(.hr-folha,.cu) .hr-item{transition:none}
  .hr-faixa.carregando .hr-entrada-txt span,:is(.hr-folha,.cu) .hr-det-carregando{animation:none}
}
/* 1.72.0 (Philippe, 29/09/2026): tabela por unidade e rede, a lente crítica do iFood, dispensar e desfazer.
   Texto sempre nas cores de texto (--label*); a cor só marca (bolinha, borda). Letra mínima de 11 px. */
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab-rola{max-width:100%;overflow-x:auto;margin-top:4px;overscroll-behavior-x:contain}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab{border-collapse:collapse;width:100%;font-size:var(--f-footnote,0.8125rem);font-variant-numeric:tabular-nums}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab th,:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab td{padding:8px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14));text-align:right;white-space:nowrap}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab th[scope="row"]{text-align:left;font-weight:500;color:var(--label2,#6B5A4C);white-space:normal;min-width:110px}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab thead th{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab .rede{font-weight:700;color:var(--label,#3A2A1E);background:var(--fill,rgba(90,65,45,.06))}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-tab td.pior{font-weight:700;box-shadow:inset 0 -2px 0 var(--sys-orange,#FF8D28)}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev-merc{margin:6px 0 0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
:is(.hr-faixa,.hr-folha,.cu) .hr-ev-merc em{font-style:normal;color:var(--label2,#6B5A4C)}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-crit-selos{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 0}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-veredito,:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-ganha,:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-conf{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label,#3A2A1E);background:var(--fill,rgba(90,65,45,.08))}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-veredito::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--label3,#7E6A59);flex:none}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-veredito.v-sim::before{background:var(--sys-green,#34C759)}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-veredito.v-parte::before{background:var(--sys-orange,#FF8D28)}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-veredito.v-nao::before{background:var(--sys-red,#FF3B30)}
:is(.hr-faixa,.hr-folha,.cp,.cu) .hr-ganha.g-plataforma{box-shadow:inset 0 0 0 1px rgba(234,29,44,.35)}
:is(.hr-folha,.cp,.cu) .hr-critica{padding:12px 14px;border-radius:14px;background:var(--cu-cartao,var(--surface,#fff));box-shadow:inset 3px 0 0 var(--label3,#7E6A59),0 0 0 .5px var(--sep,rgba(58,42,30,.14));margin-bottom:8px}
:is(.hr-folha,.cp,.cu) .hr-critica.v-sim{box-shadow:inset 3px 0 0 var(--sys-green,#34C759),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cp,.cu) .hr-critica.v-parte{box-shadow:inset 3px 0 0 var(--sys-orange,#FF8D28),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cp,.cu) .hr-critica.v-nao{box-shadow:inset 3px 0 0 var(--sys-red,#FF3B30),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cp,.cu) .hr-critica h3{margin:0 0 6px;font-size:var(--f-subhead,0.9375rem);font-weight:600}
:is(.hr-folha,.cp,.cu) .hr-critica dl{margin:8px 0 0;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:4px 12px;font-size:var(--f-footnote,0.8125rem);line-height:1.45}
:is(.hr-folha,.cp,.cu) .hr-critica dt{font-weight:600;color:var(--label2,#6B5A4C)}
:is(.hr-folha,.cp,.cu) .hr-critica dd{margin:0;color:var(--label,#3A2A1E);overflow-wrap:anywhere}
:is(.hr-faixa,.hr-folha,.cu) .hr-voltou{margin:0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
/* o aviso "dispensada por 7 dias. Desfazer" (fica por 12 segundos, anunciado ao leitor de tela): vidro, porque flutua */
.hr-aviso{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:1500;display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;max-width:min(640px,calc(100vw - 32px));padding:8px 8px 8px 16px;border-radius:22px;background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,none),var(--vidro-sombra-alta,0 12px 32px rgba(40,25,12,.22));color:var(--label,#3A2A1E);font-size:var(--f-footnote,0.8125rem)}
.hr-aviso span{flex:1 1 220px;min-width:0;line-height:1.35}
.hr-aviso button{min-height:44px}
.hr-aviso .hr-dispensar{border:0;background:transparent;color:var(--label2,#6B5A4C);font:inherit;font-weight:500;padding:0 10px;border-radius:999px;cursor:pointer}
.hr-aviso .hr-fechar{flex:none} /* 1.72.0 (pente fino): o X é o botão de fechar do sistema (.hub-x, index.html 10.4) */
.hr-aviso button:focus-visible{outline:2px solid var(--ink-blue,#1F5FA8);outline-offset:2px}
html.hub-toque .hr-aviso button{min-height:44px}
html.cu-folha-aberta .hr-aviso{z-index:1500}
@media (max-width:759px){ .hr-aviso{left:16px;right:16px;transform:none;max-width:none} :is(.hr-folha,.cp,.cu) .hr-critica dl{grid-template-columns:minmax(0,1fr)} }
/* 1.74.0 (Philippe, 03/10/2026): o plano no cartão (impacto com a conta, prazo e como conferir), o veredito da Sala, as
   três respostas do ciclo de vida ("Já fiz", "Lembrar depois", "Não se aplica") e a prévia da ação de um toque.
   Tudo em cor sólida da superfície (conteúdo não é vidro); o aviso que flutua continua vidro (.hr-aviso). */
:is(.hr-folha,.cu) .hr-plano{list-style:none;margin:2px 0 0;padding:10px 12px;display:grid;gap:6px;border-radius:var(--r-ctl,12px);background:var(--fill,rgba(90,65,45,.06))}
:is(.hr-folha,.cu) .hr-plano li{display:grid;grid-template-columns:minmax(0,7.25em) minmax(0,1fr);gap:2px 10px;font-size:var(--f-footnote,0.8125rem);line-height:1.45;min-width:0}
:is(.hr-folha,.cu) .hr-plano span{font-weight:600;color:var(--label2,#6B5A4C)}
:is(.hr-folha,.cu) .hr-plano b{font-weight:500;color:var(--label,#3A2A1E);overflow-wrap:anywhere}
:is(.hr-folha,.cu) .hr-sala-ver{margin:0;padding:8px 12px;border-radius:var(--r-ctl,12px);font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label,#3A2A1E);box-shadow:inset 3px 0 0 var(--sys-blue,#0088FF),0 0 0 .5px var(--sep,rgba(58,42,30,.14));overflow-wrap:anywhere}
:is(.hr-folha,.cu) .hr-sala-ver.s-ok{box-shadow:inset 3px 0 0 var(--sys-green,#34C759),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cu) .hr-sala-ver.s-teste{box-shadow:inset 3px 0 0 var(--sys-orange,#FF8D28),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cu) .hr-sala-ver.s-nao{box-shadow:inset 3px 0 0 var(--sys-red,#FF3B30),0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
:is(.hr-folha,.cu) .hr-sala-ver b{font-weight:600}
:is(.hr-folha,.cu) .hr-sala-ver .hr-conf{color:var(--label2,#6B5A4C);margin-left:6px}
:is(.hr-folha,.cu) .hr-sala-alt{display:block;margin-top:4px;color:var(--label2,#6B5A4C)}
:is(.hr-folha,.cu) .hr-rel{margin:0;font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C);overflow-wrap:anywhere}
:is(.hr-folha,.cu) .hr-rel .hr-todas{min-height:44px;text-align:left;white-space:normal}
:is(.hr-folha,.cu) .hr-ciclo{display:flex;align-items:center;flex-wrap:wrap;gap:0 2px;margin-left:auto;min-width:0}
:is(.hr-folha,.cu) .hr-ciclo .hr-dispensar{margin-left:0;padding:0 10px}
:is(.hr-folha,.cu) .hr-ciclo .hr-feito{color:var(--ink-blue,#1F5FA8);font-weight:600}
:is(.hr-folha,.cu) .hr-det-plano .hr-plano{margin-top:6px}
:is(.hr-folha,.cu) .hr-det-plano .hr-sala-ver{margin-top:8px}
.hr-aviso.hr-previa span{flex:1 1 260px}
.hr-aviso.hr-previa b{font-weight:600}
body.dark :is(.hr-folha,.cu) .hr-plano{background:var(--fill,rgba(240,225,210,.08))}
@media (max-width:759px){ :is(.hr-folha,.cu) .hr-plano li{grid-template-columns:minmax(0,1fr)} :is(.hr-folha,.cu) .hr-ciclo{margin-left:0;width:100%} }
@media (prefers-reduced-motion:reduce){ .hr-aviso.hr-previa{transition:none} }

/* /cerebro-portal.css */
/* 1.71.0 (Philippe, 29/09/2026): gráficos do Cérebro (web/cerebro-graficos.js), o detalhe de cada recomendação
   (web/recomendacoes.js) e o portal do Cérebro (web/cerebro-portal.js). Tokens do Hub; claro e escuro; celular sem
   rolagem para o lado.
   1.72.0: o portal virou as seções "Visão geral" e "iFood x Cérebro" do Cérebro único (web/cerebro.js, .cu), na tela
   Cérebro e na folha de qualquer tela. Padrão Apple: conteúdo em material sólido (sem vidro), texto colorido pelas
   tintas --ink-* (o azul do sistema como texto dava 3,3:1; --sys-green-ink não existia), letra mínima de 11 pt pela
   escala --f-*, alvos de 44 pt, números em colunas alinhadas. */

/* ------------------------------------------------------------------ gráficos */
.gr{margin:0;padding:14px 16px 12px;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14));min-width:0;color:var(--label,#3A2A1E)}
.gr figcaption{display:flex;flex-direction:column;gap:2px;margin:0 0 8px}
.gr figcaption strong{font-size:var(--f-subhead,0.9375rem);font-weight:600;letter-spacing:-.01em;line-height:1.3}
.gr figcaption span{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.gr-svg{display:block;width:100%;height:190px;overflow:visible}
.gr-grade{stroke:var(--sep,rgba(58,42,30,.14));stroke-width:1}
.gr-eixo{fill:var(--label2,#6B5A4C);font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));font-family:inherit}
.gr-linha{fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.gr-linha.tracejada{stroke-dasharray:5 4;stroke-width:1.8}
.gr-ponto{stroke:var(--surface,#fff);stroke-width:2}
.gr-faixa-merc{fill:var(--sys-green,#34C759);opacity:.13}
.gr-meta{stroke:var(--sys-orange,#FF8D28);stroke-width:1.6;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.gr-banda{fill:var(--sys-blue,#0088FF);opacity:.14}
.gr-barras{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gr-barra{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0}
.gr-rot{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);min-width:0;overflow-wrap:anywhere;line-height:1.3}
.gr-trilho{position:relative;height:12px;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));min-width:0}
.gr-cheio{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--c,var(--sys-blue,#0088FF));opacity:.85;min-width:3px}
.gr-barra.destaque .gr-cheio{background:var(--sys-orange,#FF8D28);opacity:1}
.gr-barra.destaque .gr-rot{color:var(--label,#3A2A1E);font-weight:600}
.gr-ref{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--sys-orange,#FF8D28);box-shadow:0 0 0 1.5px var(--surface,#fff)}
.gr-intervalo{position:absolute;top:3px;bottom:3px;border-radius:999px;background:var(--label3,#7E6A59);opacity:.22}
.gr-val{font-size:var(--f-footnote,0.8125rem);font-weight:600;white-space:nowrap;text-align:right;display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;font-variant-numeric:tabular-nums}
.gr-val small{font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));font-weight:500;color:var(--label2,#6B5A4C)}
.gr-val small.neg{color:var(--ink-red,#B42318)}
.gr-val small.pos{color:var(--ink-green,#1B7A34)}
.gr-comp .gr-cheio{opacity:.9}
.gr-reguas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.gr-reguas li{display:flex;flex-direction:column;gap:6px}
.gr-reg-cab{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.gr-reg-cab span{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);flex:1;min-width:0}
.gr-reg-cab b{font-size:var(--f-subhead,0.9375rem)}
.gr-reg-cab em{font-style:normal;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));padding:2px 8px;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--ink-red,#B42318);font-weight:600}
.gr-reguas li.ok .gr-reg-cab em{color:var(--ink-green,#1B7A34)}
.gr-reguas li.ok .gr-cheio{background:var(--sys-green,#34C759)}
.gr-reguas li.fora .gr-cheio{background:var(--sys-orange,#FF8D28)}
.gr-leg{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}
.gr-leg li{display:flex;align-items:center;gap:6px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.gr-leg i{display:inline-block;flex:none;width:14px;height:4px;border-radius:2px;background:var(--c)}
.gr-leg i.gr-leg-tracejada{height:0;border-top:2px dashed var(--c);background:none}
.gr-leg i.gr-leg-faixa{height:10px;opacity:.25;border-radius:3px}
.gr-leg i.gr-leg-ponto{width:9px;height:9px;border-radius:50%}
.gr-leg i.gr-leg-marca{width:3px;height:12px}
.gr-leg i.gr-leg-barra{height:8px;border-radius:4px}
.gr-nota{margin:6px 0 0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
.gr-fonte{margin:8px 0 0;font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));color:var(--label2,#6B5A4C);line-height:1.35;overflow-wrap:anywhere}
.gr-num{margin-top:6px}
.gr-num summary{cursor:pointer;font-size:var(--f-footnote,0.8125rem);color:var(--ink-blue,#1F5FA8);font-weight:600;list-style:none;min-height:44px;display:inline-flex;align-items:center}
.gr-num summary::-webkit-details-marker{display:none}
.gr-num summary:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px;border-radius:8px}
.gr-tab-rola{max-width:100%;overflow-x:auto}
.gr-num table{border-collapse:collapse;width:100%;margin-top:4px;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-variant-numeric:tabular-nums}
.gr-num th,.gr-num td{padding:4px 6px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14));text-align:left;white-space:nowrap}
.gr-num td{text-align:right}
/* 1.72.0: séries por unidade e a rede em destaque. As cores das unidades vêm da configuração; a da rede foi validada
   (daltonismo e contraste) contra as superfícies do Hub no claro e no escuro. Nome de cada barra ao lado dela. */
.gr,.cp,.hr-folha{--gr-rede:#8E3BA8}
body.dark :is(.gr,.cp,.hr-folha){--gr-rede:#D06BB8}
.gr-linha.rede{stroke-width:3.6}
.gr-ponto.rede{stroke-width:2.5}
.gr-banda.rede{fill:var(--gr-rede,#8E3BA8);opacity:.12}
.gr-leg i.gr-leg-linha-grossa{height:5px;border-radius:3px}
.gr-leg li.gr-leg-rede{font-weight:700;color:var(--label,#3A2A1E)}
.gr-agrupadas{gap:12px}
.gr-grupo{display:flex;flex-direction:column;gap:4px;min-width:0;padding-left:8px;box-shadow:inset 2px 0 0 transparent}
.gr-grupo.destaque{box-shadow:inset 2px 0 0 var(--sys-orange,#FF8D28)}
.gr-grupo-rot{font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label,#3A2A1E);overflow-wrap:anywhere;line-height:1.3}
.gr-grupo-rot small{font-weight:500;color:var(--label2,#6B5A4C);font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))))}
.gr-gb{display:grid;grid-template-columns:minmax(72px,26%) minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.gr-gb-nome{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-gb.rede .gr-gb-nome{font-weight:700;color:var(--label,#3A2A1E)}
.gr-gb .gr-trilho{height:10px}
.gr-gb.rede .gr-trilho{height:14px}
.gr-gb .gr-cheio{opacity:1}
.gr-gb .gr-val{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
.gr-gb.rede .gr-val{font-size:var(--f-footnote,0.8125rem)}

/* ------------------------------------------------------------------ detalhe da recomendação (página empilhada do Cérebro) */
.hr-det{display:flex;flex-direction:column;gap:16px}
.hr-det-topo{display:flex;flex-direction:column;gap:6px}
.hr-det-topo h2{margin:0;font-size:var(--f-title2,1.375rem);font-weight:700;letter-spacing:-.015em;line-height:1.25}
.hr-det-topo>p{margin:0;font-size:var(--f-body,1.0625rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.hr-det h3{margin:0 0 8px;font-size:var(--f-headline,1.0625rem);font-weight:600}
.hr-det section{min-width:0}
.hr-det-ctx p{margin:0 0 8px;font-size:var(--f-body,1.0625rem);line-height:1.5;color:var(--label,#3A2A1E)}
.hr-det-passos ol{margin:0;padding:0;list-style:none;counter-reset:p;display:flex;flex-direction:column;gap:10px}
.hr-det-passos li{counter-increment:p;display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start;font-size:var(--f-body,1.0625rem);line-height:1.45}
.hr-det-passos li::before{content:counter(p);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E);font-weight:700;font-size:var(--f-footnote,0.8125rem)}
.hr-det-impacto{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--sys-green,#34C759) 12%,var(--cu-cartao,var(--surface,#fff)));font-size:var(--f-subhead,0.9375rem);line-height:1.45;color:var(--label,#3A2A1E)}
.hr-det-impacto b{display:block;margin-bottom:2px}
.hr-det-impacto em{font-style:normal;color:var(--label2,#6B5A4C)}
.hr-det-graf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.hr-det-fontes{font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C);line-height:1.45}
.hr-det-fontes ul{margin:4px 0 0;padding-left:18px}
.hr-det-acoes{display:flex;gap:8px;flex-wrap:wrap}
.hr-det .hr-tag{white-space:normal}

/* ------------------------------------------------------------------ visão geral (seção do Cérebro único) */
.cp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cp-card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--r-card,16px);min-width:0;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14));transition:transform var(--dur-rapida,.12s) ease}
.cp-card:active{transform:scale(var(--apertado-escala,.98))}
.cp-card:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px}
.cp-card small{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.cp-card b{font-size:var(--f-title1,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.cp-card .cp-var{font-size:var(--f-footnote,0.8125rem);font-weight:700;padding:0;background:transparent;color:var(--ink-green,#1B7A34)} /* texto verde ou vermelho ao lado do valor, como nas Ações do iOS (a pílula cinza tirava o contraste abaixo de 4,5:1) */
.cp-card .cp-var.neg{color:var(--ink-red,#B42318)}
.cp-card p{margin:0;font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.cp-card .cp-ver{margin-top:auto;padding-top:4px;color:var(--ink-blue,#1F5FA8);font-size:var(--f-footnote,0.8125rem);font-weight:600}
.cp-visao{padding:16px;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
.cp-visao h3{margin:0 0 8px;font-size:var(--f-headline,1.0625rem);font-weight:600}
.cp-visao p{margin:0 0 8px;font-size:var(--f-body,1.0625rem);line-height:1.5}
.cp-visao p:last-child{margin-bottom:0}
.cp-graf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cp-un{list-style:none;margin:2px 0 4px;padding:0;display:flex;flex-direction:column;gap:2px;font-size:var(--f-footnote,0.8125rem)}
.cp-un li{display:flex;justify-content:space-between;gap:8px;color:var(--label2,#6B5A4C);font-variant-numeric:tabular-nums}
.cp-un li b,.cp-card .cp-un li b{display:inline;font-size:var(--f-footnote,0.8125rem);font-weight:600;letter-spacing:0;line-height:1.35;color:var(--label,#3A2A1E);white-space:nowrap}
.cp-un li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-un li.rede b,.cp-card .cp-un li.rede b{font-weight:800}
.cp-un li.rede{border-top:.5px solid var(--sep,rgba(58,42,30,.14));padding-top:2px;font-weight:700;color:var(--label,#3A2A1E)}
.cp-criticas{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.cp-criticas>h3{margin:8px 0 0;font-size:var(--f-headline,1.0625rem);font-weight:600}
.cp-conc{width:100%;border-collapse:collapse;font-size:var(--f-footnote,0.8125rem);font-variant-numeric:tabular-nums}
.cp-conc th,.cp-conc td{padding:8px 10px;border-bottom:.5px solid var(--sep,rgba(58,42,30,.14));text-align:left;vertical-align:top}
.cp-conc td.n{text-align:right;white-space:nowrap}
.cp-conc th small{font-weight:400}
.cp-conc-rola{overflow-x:auto;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14));overscroll-behavior-x:contain}
.cp-ifood{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.cp-ifood-loja{padding:14px 16px;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:inset 3px 0 0 #EA1D2C,0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
.cp-ifood-loja h3{margin:0 0 8px;font-size:var(--f-subhead,0.9375rem);font-weight:600}
.cp-ifood-loja dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:var(--f-footnote,0.8125rem);font-variant-numeric:tabular-nums}
.cp-ifood-loja dt{color:var(--label2,#6B5A4C)}
.cp-ifood-loja dd{margin:0;font-weight:600;text-align:right}
.cp-nota{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C);margin:0}
@media (max-width:1099px){ .cp-cards{grid-template-columns:repeat(2,minmax(0,1fr))} .cp-graf{grid-template-columns:minmax(0,1fr)} }
@media (max-width:759px){
  .cp-cards{gap:8px}
  .cp-card{padding:12px}
  .cp-card b{font-size:var(--f-title2,1.375rem)}
  .gr-barra{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"rot val" "tri tri";gap:4px 8px}
  .gr-barra .gr-rot{grid-area:rot}.gr-barra .gr-val{grid-area:val}.gr-barra .gr-trilho{grid-area:tri}
  .gr-svg{height:170px}
  .hr-det-graf{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){ .cp-card{transition:none} }

/* /manutencao-remota.css */
/* 1.66.0 (onda G): a MANUTENÇÃO REMOTA dentro do Hub (#view-man, montada por web/manutencao-remota.js). O desenho é o da
   página solta da 1.63.0, agora com os tokens do Hub (claro e escuro pelo body.dark), no fluxo das outras telas: o topo de
   vidro e o menu de sempre por cima, conteúdo que rola por baixo deles. Computador: controles de 36 px com hover; toque:
   44 px. Tudo escopado em #view-man, porque .pill, .card e .status já existem com outro sentido no Hub. */
#view-man .man-tela{box-sizing:border-box;max-width:1080px;margin:0 auto;padding:6px 20px 32px;color:var(--label,#3A2A1E)}
#view-man .man-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 2px 14px}
/* 1.70.0 (auditoria): no celular o botão Atualizar era espremido pelo título e o texto passava da borda (61 px de texto em 56 px) */
#view-man .man-topo>button{flex:none;white-space:nowrap}
#view-man .man-titulos{min-width:0}
#view-man h2{margin:0;font-size:calc(1.375rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.2;outline:none}
#view-man h3{margin:0 0 10px;font-size:var(--f-headline,1.0625rem);font-weight:700}
#view-man .sub{color:var(--label2,#6B5A4C);margin:4px 0 0;font-size:var(--f-footnote,0.8125rem);line-height:1.4}
#view-man .card{background:var(--surface,#fff);border:0;border-radius:var(--r-card,16px);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05);padding:16px 20px;margin:0 0 14px}
/* 04/10/2026 (a dupla checagem): na faixa de cartões a moldura é a da peça (web/hub-carrossel.css) e o título tem o tamanho das outras telas */
#view-man .sb-faixa>.card.hcar-cartao:not(.hcar-grande){border-radius:var(--r-sheet,1.25rem);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06)}
body.dark #view-man .sb-faixa>.card.hcar-cartao:not(.hcar-grande){background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
#view-man .sb-faixa>.card>h3{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25)}
/* o cartão "Inscrever um computador" na faixa: o resumo é o título do cartão (não abre nem fecha: o cartão já é a caixa dele) */
#view-man .sb-faixa>.card>details>summary{list-style:none;margin:0 0 10px;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25);font-weight:700;cursor:default;pointer-events:none}
#view-man .sb-faixa>.card>details>summary::-webkit-details-marker{display:none}
/* 1.74.0 (Philippe, 04/10/2026): o desenho de botão desta tela vale só DENTRO dos cartões (#view-man .card button). A tela
   ganhou a barra de baixo e as peças do carrossel (web/sobras-carrossel.js), que moram na mesma seção e têm desenho próprio. */
#view-man .linha{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
#view-man .entre{justify-content:space-between}
#view-man .card button,#view-man select,#view-man input,#view-man textarea{font:inherit;color:inherit}
#view-man .card button,#view-man .man-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap-desk,44px);min-width:44px;padding:0 16px;border-radius:999px;border:0;
  background:var(--label,#3A2A1E);color:var(--page,#fff);font-weight:600;font-size:var(--f-subhead,0.9375rem);cursor:pointer;text-decoration:none;box-sizing:border-box;
  transition:transform var(--dur-rapida,.12s),filter var(--dur-rapida,.12s),opacity var(--dur-rapida,.12s)}
#view-man .card button.sec{background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E)}
html.hub-clique #view-man .card button:not([aria-busy=true]):hover,html.hub-clique #view-man .man-link:hover{filter:brightness(1.12)}
html.hub-clique #view-man .card button.sec:not([aria-busy=true]):hover{filter:none;background:var(--fill2,rgba(58,42,30,.14))}
#view-man .card button:active,#view-man .card button.apertado{transform:scale(.96)}
#view-man .card button:focus-visible,#view-man a:focus-visible,#view-man select:focus-visible,#view-man input:focus-visible,#view-man summary:focus-visible{outline:3px solid var(--foco-cor,#1861A0);outline-offset:2px}
#view-man .card button[aria-busy=true]{opacity:.75;cursor:progress}
#view-man .card button[data-estado=ok]{background:var(--on-green,#1E8E3E);color:#fff}
#view-man .card button[data-estado=erro]{background:var(--ink-red,#B42318);color:#fff}
#view-man select,#view-man input,#view-man textarea{min-height:var(--tap-desk,44px);padding:6px 12px;border-radius:12px;border:0;background:var(--page,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.2));box-sizing:border-box}
#view-man textarea{width:100%;min-height:88px}
#view-man .pill{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 10px;border-radius:999px;font-size:var(--f-caption1,0.75rem);font-weight:600;background:var(--fill,rgba(90,65,45,.08));border:0;box-shadow:none;margin:6px 0}
#view-man .pill.ok{background:color-mix(in srgb,var(--sys-green,#34C759) 18%,transparent);color:var(--ink-green,#1E7B34)}
#view-man .pill.aviso{background:color-mix(in srgb,var(--sys-orange,#FF8D28) 18%,transparent);color:var(--ink-orange,#A84300)}
#view-man .pill.erro{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,transparent);color:var(--ink-red,#B42318)}
#view-man .ponto{width:10px;height:10px;border-radius:50%;background:var(--label3,#8A7666);display:inline-block}
#view-man .ponto.on{background:var(--sys-green,#34C759)}
#view-man .status{min-height:22px;margin:8px 0 0;font-size:var(--f-subhead,0.9375rem)}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): a linha de aviso da tela mora no primeiro cartão; vazia, ela
   guardava 30 px (e mais um vão do cartão) e abria um buraco entre o título e o texto. Sem aviso ela sai do fluxo (fica
   na página, para o leitor de tela ouvir quando o texto chegar); com aviso aparece como antes. */
#view-man [data-man="aviso"]:empty{position:absolute;min-height:0;margin:0}
#view-man .status[data-tipo=ok]{color:var(--ink-green,#1E7B34)} #view-man .status[data-tipo=erro]{color:var(--ink-red,#B42318)} #view-man .status[data-tipo=aviso]{color:var(--ink-orange,#A84300)}
#view-man .spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:man-gira .8s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes man-gira{to{transform:rotate(360deg)}}
#view-man .pedido{border-top:.5px solid var(--sep,rgba(58,42,30,.14));padding:12px 0}
#view-man .pedido:first-child{border-top:0}
#view-man pre{white-space:pre-wrap;word-break:break-word;background:var(--fill,rgba(90,65,45,.06));border-radius:10px;padding:10px;max-height:320px;overflow:auto;font-size:var(--f-caption1,0.75rem)}
/* 1.74.0 (Philippe, 04/10/2026, conferência B6): no cartão pequeno do carrossel o registro e os detalhes do pedido não rolam por
   dentro: aparece o que cabe e o "Ver tudo" abre o cartão grande, onde o bloco volta a rolar */
#view-man .hcar-cartao:not(.hcar-grande) pre{max-height:none;overflow:hidden}
#view-man .muted{color:var(--label2,#6B5A4C);font-size:var(--f-footnote,0.8125rem)}
#view-man details summary{min-height:var(--tap-desk,44px);display:flex;align-items:center;cursor:pointer;font-weight:600;border-radius:10px}
#view-man .token{font:600 0.9375rem ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
html.hub-toque #view-man .card :is(button,.man-link,select,input,details summary){min-height:44px}
@media (max-width:640px){#view-man .man-tela{padding:4px 12px 24px}}
@media (prefers-reduced-motion:reduce){#view-man *{animation:none!important;transition:none!important}}

/* /calendario.css */
/* 1.65.0: o calendário de período do Hub (web/calendario.js). Tokens do Hub com reserva em todo var(), claro e escuro,
   alvos de 44 px, foco visível. Computador: painel de vidro junto do botão que chamou (dois meses lado a lado quando
   cabe). Celular e app: folha de baixo com a área segura, que sobe com a mola e fecha puxando (web/folha.js). */

.cal-gatilho{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;padding:0 14px;border:.5px solid var(--sep,rgba(58,42,30,.14));border-radius:var(--r-ctl,12px);background:var(--surface,#fff);color:var(--label,#3A2A1E);font:inherit;font-weight:600;font-size:calc(0.9375rem * var(--dt,1));cursor:pointer;text-align:left}
.cal-gatilho span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;color:inherit}
.cal-gatilho .cal-icone{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--label2,#6B5A4C)}
@media (hover:hover){.cal-gatilho:hover{background:var(--surface2,#F7F4F1)}}
.cal-gatilho:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
/* os dois input type=date de um par ligado somem: o botão fica no lugar */
[data-calendario-ligado] input[type="date"],[data-calendario-ligado] label:has(> input[type="date"]){display:none!important}
.cal-par-gatilho{display:inline-flex}
/* com o calendário ligado, o botão Aplicar do par some: o período aplica no segundo toque */
[data-calendario-ligado] .cal-aplicar-auto{display:none!important}

.cal-fundo{position:fixed;inset:0;z-index:1500;background:transparent}
.cal-fundo.centro,.cal-fundo.folha{background:var(--vidro-veu,rgba(58,42,30,.22));display:flex;align-items:center;justify-content:center}
.cal-painel{position:fixed;width:auto;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;padding:6px 20px 12px;border-radius:var(--r-sheet,20px);color:var(--label,#3A2A1E);
  background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);
  border:.5px solid var(--glass-border,rgba(255,255,255,.88));box-shadow:0 18px 46px rgba(40,25,12,.24)}
body.dark .cal-painel{background:rgba(34,32,30,.97)} /* quase sólido: os números do relatório atrás não atrapalham a leitura dos dias */
.cal-fundo.centro .cal-painel{position:relative}
.cal-alca{display:none}
.cal-topo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px}
.cal-topo h2{margin:0;font-size:calc(1.125rem * var(--dt,1));font-weight:700;letter-spacing:-.01em}
.cal-x,.cal-seta{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);cursor:pointer}
.cal-x svg,.cal-seta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cal-seta:disabled{opacity:.35;cursor:default}
.cal-dica{margin:4px 0 8px;font-size:calc(0.84375rem * var(--dt,1));color:var(--label2,#6B5A4C);line-height:1.35;min-height:2.7em}
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-titulo-mes{font-weight:700;font-size:calc(0.9375rem * var(--dt,1));text-align:center}
.cal-meses{display:flex;gap:18px;margin-top:6px}
.cal-mes-nome{display:none;text-align:center;font-weight:700;font-size:calc(0.875rem * var(--dt,1));margin:2px 0 4px}
.cal-meses.dois .cal-mes-nome{display:block}
.cal-mes table{border-collapse:separate;border-spacing:0 3px}
.cal-mes th{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C);height:24px;text-align:center}
.cal-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cal-mes td{padding:0;text-align:center}
.cal-dia{position:relative;width:44px;height:44px;border:0;border-radius:0;background:transparent;color:var(--label,#3A2A1E);font:inherit;font-size:calc(0.9375rem * var(--dt,1));font-variant-numeric:tabular-nums;cursor:pointer;z-index:0}
/* a faixa do período: um trilho contínuo, com as pontas redondas no início e no fim */
.cal-dia.faixa{background:color-mix(in srgb,var(--sys-blue,#0088FF) 16%,transparent)}
.cal-dia.faixa.provisorio{background:color-mix(in srgb,var(--sys-blue,#0088FF) 9%,transparent)}
.cal-dia.inicio{border-top-left-radius:22px;border-bottom-left-radius:22px}
.cal-dia.fim{border-top-right-radius:22px;border-bottom-right-radius:22px}
/* 1.72.0: o dia escolhido é um círculo azul cheio com o número em branco: o azul do sistema dava 3,5:1; o tom de fundo
   cheio (--on-blue) passa de 6:1 no claro e no escuro */
.cal-dia.inicio::after,.cal-dia.fim::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--on-blue,#0062B8);z-index:-1}
.cal-dia.inicio,.cal-dia.fim{color:#fff;font-weight:700}
.cal-dia.hoje:not(.inicio):not(.fim)::before{content:"";position:absolute;inset:4px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--label2,#6B5A4C)}
.cal-dia:disabled{color:var(--label4,#B4A798);cursor:default}
body.dark .cal-dia:disabled{color:#5f5750}
@media (hover:hover){.cal-dia:not(:disabled):not(.inicio):not(.fim):hover{background:var(--fill2,rgba(90,65,45,.12));border-radius:22px}}
.cal-dia:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:-2px;border-radius:22px}
.cal-rodape{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:8px;border-top:.5px solid var(--sep,rgba(58,42,30,.14))}
.cal-escolha{font-weight:600;font-size:calc(0.875rem * var(--dt,1))}
.cal-limpar{min-height:44px;min-width:44px;padding:0 12px;border:0;border-radius:var(--r-pill,999px);background:transparent;color:var(--ink-blue,#0066CC);font:inherit;font-weight:600;cursor:pointer}
.cal-limpar:disabled{color:var(--label4,#B4A798);cursor:default}
.cal-painel button:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}

/* celular e app: folha de baixo */
.cal-fundo.folha{align-items:flex-end}
/* 1.72.0 (auditoria de design 1720): as alturas das folhas do sistema (web/folha.css): nunca passa da faixa da barra de
   status, e "Limpar" fica acima do indicador de início (no app, as peças nativas somem com a folha: web/folha.js) */
.cal-fundo.folha .cal-painel{position:relative;left:auto!important;top:auto!important;width:100%;max-width:100%;max-height:var(--folha-grande,92vh);border-radius:var(--r-sheet,20px) var(--r-sheet,20px) 0 0;padding:6px 16px var(--folha-base,calc(14px + env(safe-area-inset-bottom,0px)))}
@media (min-width:641px){.cal-fundo.folha .cal-painel{padding-left:20px;padding-right:20px}} /* 1.72.0: margem de 20 pt no iPad */
.cal-fundo.folha .cal-alca{display:block;width:36px;height:5px;margin:4px auto 0;border-radius:3px;background:var(--fill3,rgba(90,65,45,.16))}
.cal-fundo.folha .cal-mes{flex:1}
.cal-fundo.folha .cal-mes table{width:100%}
.cal-fundo.folha .cal-dia{width:100%;min-width:44px}
@media (prefers-reduced-transparency:reduce){.cal-painel{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (forced-colors:active){.cal-dia.inicio,.cal-dia.fim,.cal-dia.faixa{outline:2px solid Highlight}}

/* /saipos-report.css */
/* Os totais importados podem ter milhões de reais e devem caber sem cortes. */
.saipos-report .kpis,.saipos-report .kpis.k2,.saipos-report .kpis.k3{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.saipos-report .kpi{min-width:0}
.saipos-report .kv{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.saipos-report .cl .btn{margin:6px 6px 0 0}
.saipos-report .dt{flex-wrap:wrap}

.saipos-report .saipos-details-intro .dt{justify-content:space-between;gap:12px}
.saipos-report .saipos-channel-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.saipos-report .saipos-scroll{max-height:360px;overflow:auto;overscroll-behavior:contain}
.saipos-report .saipos-scroll .ctab th{position:sticky;top:0;background:var(--panel,var(--bg));z-index:1}
.saipos-report .saipos-differences summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.saipos-report .saipos-differences td{white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.saipos-report .saipos-scroll .ctab{min-width:560px}.saipos-report .saipos-details-intro .btn{width:100%}}

/* /saipos-orders.css */
.saipos-orders{--so-ink:#292621;--so-muted:#66615a;--so-glass:rgba(255,253,248,.96);--so-soft:rgba(80,64,44,.065);--so-accent:#27633a;--so-focus:#0566c8;box-sizing:border-box;width:min(1060px,calc(100vw - 24px));height:min(840px,var(--so-height,calc(100dvh - 24px)));max-height:var(--so-height,calc(100dvh - 24px));position:fixed;inset:auto;left:50%;top:var(--so-center,50%);transform:translate(-50%,-50%);margin:0;padding:20px;border:0;border-radius:26px;background:var(--so-glass);color:var(--so-ink);box-shadow:0 18px 70px #21190f30;backdrop-filter:blur(28px) saturate(1.2);-webkit-backdrop-filter:blur(28px) saturate(1.2);font:0.9375rem/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:calc(0.9375rem * var(--dt));overflow:hidden}
.saipos-orders[open]{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:14px}.saipos-orders::backdrop{background:rgba(27,24,19,.3);backdrop-filter:blur(5px)}.saipos-orders *{box-sizing:border-box}.saipos-orders h2,.saipos-orders h3{margin:0;font-size:calc(1.5625rem * var(--dt));line-height:1.2;letter-spacing:-0.03125rem}.saipos-orders h4{font-size:calc(1.0625rem * var(--dt));margin:24px 0 12px}.saipos-orders p{margin:6px 0;overflow-wrap:anywhere}.saipos-orders .so-eyebrow{font-size:calc(0.8125rem * var(--dt));color:var(--so-muted);margin:0 0 5px}.so-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.so-head>[data-so-close]{font-size:calc(1.5625rem * var(--dt));font-weight:400;padding:6px}
.saipos-orders button,.saipos-orders input,.saipos-orders select,.so-filters>summary{font:inherit;min-height:44px;border:0;border-radius:12px;color:var(--so-ink);background:var(--so-soft);padding:10px 12px;min-width:0}.saipos-orders button{font-weight:600;cursor:pointer;touch-action:manipulation;min-width:44px}.saipos-orders button:disabled{opacity:.45;cursor:default}.saipos-orders button:focus-visible,.saipos-orders input:focus-visible,.saipos-orders select:focus-visible,.saipos-orders summary:focus-visible,.so-body:focus-visible{outline:3px solid var(--so-focus);outline-offset:2px}.saipos-orders:focus{outline:none}.so-filters>summary{cursor:pointer;font-weight:600;background:transparent;padding:8px 0}.so-filters form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.so-filters label{display:grid;gap:5px;color:var(--so-muted);font-size:calc(0.8125rem * var(--dt));min-width:0}.so-filters input,.so-filters select{width:100%;color:var(--so-ink);font-size:calc(0.9375rem * var(--dt))}.so-filters .so-search{grid-column:span 2}.so-filters [type=submit]{align-self:end;background:var(--so-accent);color:#fff}.so-status{font-size:calc(0.8125rem * var(--dt));color:var(--so-muted);min-height:20px;margin:0!important}.so-error{color:#aa3025}.so-body{overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;padding:3px;border-radius:18px}.so-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.so-row{width:100%;display:flex;justify-content:space-between;gap:14px;text-align:left;border-radius:17px!important;background:var(--so-soft);padding:15px!important}@media (hover:hover){.so-row:hover{filter:brightness(.96)}}.so-row-main,.so-row-end{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}.so-row-main strong{font-size:calc(1.0625rem * var(--dt))}.so-row-main small{font-size:calc(0.8125rem * var(--dt));color:var(--so-muted);font-weight:400}.so-row-end{align-items:flex-end;text-align:right;font-size:calc(0.8125rem * var(--dt));color:var(--so-muted)}.so-row-end strong{font-size:calc(1rem * var(--dt));color:var(--so-ink);font-variant-numeric:tabular-nums}.so-badge{display:inline-block;align-self:flex-start;border-radius:8px;padding:4px 8px;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));font-weight:600;background:var(--so-soft);color:var(--so-ink);white-space:nowrap}.so-row-end .so-badge{align-self:flex-end}.so-badge.cancelled{background:#b73b2b13;color:#9d3025}.so-open{color:var(--so-accent);font-weight:600}.so-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.so-footer[hidden]{display:none}.so-footer span{font-size:calc(0.8125rem * var(--dt));text-align:center;color:var(--so-muted);font-variant-numeric:tabular-nums}.so-empty{padding:35px 16px;text-align:center;color:var(--so-muted)}.so-detail{padding:4px 5px 16px}.so-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:20px}.so-detail-head p{font-size:calc(0.875rem * var(--dt));color:var(--so-muted)}.so-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}.so-facts>div{min-width:0;background:var(--so-soft);padding:13px;border-radius:14px}.so-facts dt{font-size:calc(0.8125rem * var(--dt));color:var(--so-muted);margin-bottom:5px}.so-facts dd{margin:0;font-size:calc(1rem * var(--dt));overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.so-note{font-size:calc(0.8125rem * var(--dt));color:var(--so-muted);padding-top:10px}.so-limit{margin-top:18px!important;padding:14px!important;border-radius:14px;background:var(--so-soft)}
body.dark .saipos-orders,[data-theme=dark] .saipos-orders{--so-ink:#f5f1e9;--so-muted:#ccc6bc;--so-glass:rgba(38,37,34,.97);--so-soft:rgba(245,237,222,.085);--so-accent:#477d53;--so-focus:#80baff}body.dark .saipos-orders .so-open{color:#a6d5ae}body.dark .saipos-orders .so-badge.cancelled{color:#ffb6a9;background:#f1715b1f}body.dark .saipos-orders .so-error{color:#ffb6a9}
@media(max-width:680px){.saipos-orders{width:calc(100vw - 16px);height:var(--so-height,calc(100dvh - 16px));max-height:var(--so-height,calc(100dvh - 16px));padding:14px;border-radius:22px}.saipos-orders[open]{gap:10px}.saipos-orders h2{font-size:calc(1.375rem * var(--dt))}.so-filters form{grid-template-columns:repeat(2,minmax(0,1fr));max-height:35dvh;overflow:auto;padding:3px}.so-filters [type=submit]{grid-column:1/-1}.so-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.so-detail-head{flex-direction:column}.so-row{padding:12px!important;gap:8px}.so-row-main small{font-size:max(0.6875rem, calc(0.75rem * var(--dt)))}.so-footer{gap:6px}.so-footer button{padding-inline:10px}.so-row-end{max-width:44%}}
@media(prefers-reduced-motion:reduce){.saipos-orders *{transition:none!important;animation:none!important}}

/* /app-nativo.css */
/* 1.48.0: O QUE VALE NOS DOIS APLICATIVOS (iOS e Android), em cima do site. Carregado sempre; só age quando
   web/app-nativo.js marca <html> com `app-nativo`. Três assuntos: rolagem leve (sem vidro nas peças que
   rolam), a gaveta do menu (esquerda, ~90% da tela) e o Cérebro ancorado no rodapé, no estilo da Siri. */
/* ---------- rolagem sem engasgo (vale para iOS e Android) ----------
   Medido no iPhone: cada card era uma camada de backdrop-filter (vidro) rolando sobre um <main> que também
   era vidro, e os cronômetros atrasados pulsavam a sombra a cada quadro. No app o vidro fica só nas peças
   nativas; o conteúdo vira superfície sólida e as animações contínuas param. */
html.app-nativo .k,html.app-nativo .e,html.app-nativo .timer,html.app-nativo .ready,html.app-nativo .lane .col,html.app-nativo .kpi,html.app-nativo .op,html.app-nativo .qbox,html.app-nativo .rv,html.app-nativo .rlist,html.app-nativo .list,html.app-nativo .dcard,html.app-nativo .btn,html.app-nativo .pmt,html.app-nativo .kbar .subseg,html.app-nativo .menuv .list,html.app-nativo .pill,html.app-nativo .search{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.app-nativo .k.glass,html.app-nativo .k.glass.solid,html.app-nativo .e.glass,html.app-nativo .dcard.glass,html.app-nativo .list.glass,html.app-nativo .rv{background:rgba(255,255,255,.90)}
html.app-nativo body.dark .k.glass,html.app-nativo body.dark .k.glass.solid,html.app-nativo body.dark .e.glass,html.app-nativo body.dark .dcard.glass,html.app-nativo body.dark .list.glass,html.app-nativo body.dark .rv{background:rgba(44,34,26,.94)}
html.app-nativo .lane .col{background:rgba(255,255,255,.55)} html.app-nativo body.dark .lane .col{background:rgba(44,34,26,.6)}
html.app-nativo .k{will-change:auto}
html.app-nativo .k.late .timer{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-red,#E0342E) 55%,transparent)}
html.app-nativo .latetag,html.app-nativo .live i,html.app-nativo .k .drv .ds.hot,html.app-nativo .sysitem.bad i,html.app-nativo .lc .ring i{animation:none}
/* o encaixe de card (scroll-snap) briga com a inércia nativa do iOS: no app a rolagem é livre */
html.app-nativo.rolagem-encaixe body{scroll-snap-type:none}
html.app-nativo.rolagem-encaixe #kds>.k,html.app-nativo.rolagem-encaixe #ges .dcard,html.app-nativo.rolagem-encaixe #rev .dcard,html.app-nativo.rolagem-encaixe #rev .rv{scroll-snap-align:none}
html.app-nativo #lanes .lane .col{-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}

/* ---------- gaveta (menu da esquerda, ~90% da tela) ---------- */
.gaveta-scrim{position:fixed;inset:0;background:rgba(20,15,10,.35);opacity:0;pointer-events:none;transition:opacity .3s;z-index:1300}
.gaveta{position:fixed;top:0;bottom:0;left:0;width:min(90vw,380px);transform:translateX(-104%);transition:transform var(--dur-lenta,.34s) var(--curva-padrao,cubic-bezier(.2,.8,.2,1));z-index:1301;background:var(--vidro-grosso,rgba(250,247,242,.88));-webkit-backdrop-filter:blur(30px) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(30px) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,none),8px 0 40px rgba(0,0,0,.18);padding:calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 16px);overflow:auto;display:flex;flex-direction:column;gap:2px;box-sizing:border-box;border-right:1px solid rgba(255,255,255,.7)}
body.dark .gaveta{border-right-color:rgba(255,255,255,.08)}
html.gaveta-aberta .gaveta{transform:none} html.gaveta-aberta .gaveta-scrim{opacity:1;pointer-events:auto}
.gaveta .gv-marca{display:flex;align-items:center;gap:10px;padding:6px 12px 12px} .gaveta .gv-marca img{height:36px} .gaveta .gv-marca span{font-size:calc(0.8125rem * var(--dt));color:var(--sub);margin-left:auto}
.gaveta .gv-sec{font-size:max(0.6875rem, calc(0.75rem * var(--dt)));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sub);padding:14px 12px 4px}
.gaveta .gv-lojas{display:flex;gap:6px;padding:0 4px 4px} .gaveta .gv-lojas button{flex:1;min-height:44px;padding:12px 8px;border-radius:12px;border:0;background:var(--fill,rgba(255,255,255,.55));font-weight:600;font-size:calc(0.9375rem * var(--dt));color:var(--text)} .gaveta .gv-lojas button.on{background:var(--on-red,#E0342E);color:#fff;border-color:transparent} .gaveta .gv-lojas button[data-gvloja="all"].on{background:var(--on-green,#22B14C)}

.gaveta .gv-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;font-size:calc(1.0625rem * var(--dt));font-weight:600;color:var(--text);background:transparent;border:0;width:100%;text-align:left;font-family:inherit;min-height:50px}
.gaveta .gv-item:active{background:var(--fill2,rgba(58,42,30,.08))}
.gaveta .gv-item.on{background:var(--fill2,rgba(58,42,30,.10))}
.gaveta .gv-item svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.gaveta .gv-item .gv-dot{width:9px;height:9px;border-radius:50%;background:var(--red,#E0342E);margin-left:auto;display:none} .gaveta .gv-item .gv-dot.show{display:block}
.gaveta .gv-toggle{margin-left:auto;width:51px;height:31px;border-radius:16px;background:rgba(120,120,128,.32);position:relative;flex:none;transition:background .2s} .gaveta .gv-toggle::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15);transition:transform .2s} .gaveta .gv-toggle.on{background:var(--sys-green,#34C759)} .gaveta .gv-toggle.on::after{transform:translateX(20px)}
.gaveta .gv-item.sair{color:var(--red,#E0342E)}
.gaveta .gv-rodape{margin-top:auto;padding:14px 12px 0;font-size:max(0.6875rem, calc(0.75rem * var(--dt)));color:var(--sub)}

/* ---------- 1.51.0: só a EXPEDIÇÃO é travada; o resto rola a tela inteira, por baixo do vidro ----------
   Pedido do Philippe (21/09/2026): "a única tela que precisa ficar travada para não passar de baixo do menu e
   dos botões é a tela de expedição, porque ela tem as colunas... As outras telas, todas elas, a rolagem pode
   ser até no final da tela e passar por debaixo dos botões de menu e da barra de menu."
   Medidas: env(safe-area-inset-top) já inclui a faixa dos botões (inset nativo). Embaixo, o iOS manda a
   altura da cápsula em --app-barra (HubBarraPlugin.enviarMedidas), somada ao indicador de início. */
:root{--app-barra:56px;--rodape-app:calc(env(safe-area-inset-bottom) + var(--app-barra));--topo-app:calc(env(safe-area-inset-top) + 8px)}
/* 1.74.0 (Philippe, 06/10/2026: "a barra de menu dos aplicativos são nativas e não podem duplicar ou sobrepor a versão web
   do hub"): NO ANDROID o conteúdo começava ATRÁS dos botões nativos do topo. A frase acima ("env(safe-area-inset-top) já
   inclui a faixa dos botões") só vale no iPhone, onde o nativo soma a faixa à área segura. No Android o aplicativo é borda
   a borda e não soma nada (HubBarraPlugin.kt: "quem empurra é o CSS"): a página só conhece a barra de status, e os dois
   botões de 48 dp (6 dp abaixo dela) ficavam em cima dos cantos do primeiro cartão de toda tela e da notificação que
   desce do topo (medido com as peças nativas nas medidas do Kotlin, tests/app-barras-1740.test.js). Aqui entra a faixa:
   6 + 48 + 6 dp, mais os 2 px que o iPhone também soma (web/topo-vidro.css). Sem sessão não há botões (app-sem-topo). */
html.app-android:not(.app-sem-topo){--topo-app:calc(env(safe-area-inset-top,0px) + 62px)}
html.app-nativo body{padding:var(--topo-app) 0 var(--rodape-app)!important;margin:0}
/* 1.74.0 (06/10/2026): a sonda das medidas nativas (web/app-nativo.js, ligarSonda): invisível, do tamanho do topo e do rodapé */
#app-sonda{position:fixed;left:0;top:0;z-index:-1;width:var(--rodape-app);height:var(--topo-app);visibility:hidden;pointer-events:none}
html.app-nativo main{position:static;margin:0!important;padding:0 0 12px!important;width:auto;min-height:0;border:0;border-radius:0;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
html.app-nativo .ges,html.app-nativo .menuv{padding-bottom:16px}
html.app-nativo #view-kds .grid{padding-top:4px}
/* expedição: caixa fixa entre os botões e a barra; a fita de colunas arrasta para o lado e só a lista de cards rola */
html.app-nativo body:has(#view-exp.on){overflow:hidden;height:100dvh;box-sizing:border-box}
html.app-nativo body:has(#view-exp.on) main{position:fixed;top:var(--topo-app);bottom:var(--rodape-app);left:0;right:0;padding:0!important;overflow:hidden;display:flex;flex-direction:column}
html.app-nativo #view-exp.on{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-bottom:0}
html.app-nativo #view-exp.on>*{flex:none}
html.app-nativo #view-exp.on .lanes{flex:1 1 auto;min-height:0;padding:4px 0 0;align-items:stretch}
html.app-nativo #view-exp.on .lane{display:flex;flex-direction:column;min-height:0;height:100%;padding:0 10px 4px}
@media (max-width:760px){html.app-nativo #view-exp.on .lane{padding-left:var(--margem);padding-right:var(--margem)}} /* 1.72.0 (pente fino): no iPhone a coluna começa na margem de 16 pt, como os cartões das outras telas (era 10) */
html.app-nativo #view-exp.on .lane h3{flex:none}
html.app-nativo #view-exp.on .lane .col{flex:1 1 auto;min-height:0!important;max-height:none!important;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
html.app-nativo #view-exp .tools{padding-top:2px}
html.app-nativo #view-exp.on .alerts,html.app-nativo #view-exp.on .selbar{flex:none}

/* ---------- Cérebro no rodapé, estilo Siri ----------
   No app o Cérebro é a aba do meio da barra nativa. A "área de trabalho" (ai-workspace) vira de cabeça para
   baixo: os cards em cima; embaixo, centralizados, o ícone do Cérebro (pulsando com a voz) e, logo abaixo dele,
   o campo de escrita; e um brilho que respira na borda inferior da tela, como a Siri.
   1.51.0 (pedido do Philippe): ícone em cima do campo, os dois centralizados com um respiro; abrir o Cérebro
   não sobe o teclado; a fala preenche o campo; ao tocar no campo o teclado sobe e SÓ o ícone e o campo sobem
   com ele (translateY pela altura do teclado, --ws-viewport-inset), os cards ficam onde estão. */
html.app-nativo body.ai-on::after{display:none!important}
html.app-nativo body.ai-on main,html.app-nativo body.ai-on .top{transform:none}
html.app-nativo body.ai-on .aiframe{display:block!important;inset:auto 0 0 0;height:220px;border-radius:0;box-shadow:none;pointer-events:none;z-index:1049;background:radial-gradient(72% 100% at 50% 100%,rgba(224,52,46,.58),rgba(255,200,0,.34) 40%,rgba(34,177,76,.16) 60%,transparent 76%);animation:aisiri 2.4s ease-in-out infinite;transform-origin:50% 100%}
html.app-nativo body.ai-on:has(#ws-hero.capturing) .aiframe,html.app-nativo body.ai-on:has(#ws-hero.hearing) .aiframe{animation-duration:1.1s;background:radial-gradient(78% 100% at 50% 100%,rgba(224,52,46,.72),rgba(255,200,0,.42) 40%,rgba(90,160,255,.22) 60%,transparent 80%)}
@keyframes aisiri{50%{opacity:.55;transform:scaleX(1.06) scaleY(.9)}}
html.app-nativo body.ws-hero-mode #aiz.ws-root,html.app-nativo #aiz.ws-root{inset:var(--topo-app) 10px calc(var(--rodape-app) + 6px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;gap:0;align-content:stretch;justify-items:center}
html.app-nativo body.ws-hero-mode #aiz.ws-root.ws-empty,html.app-nativo #aiz.ws-root.ws-empty{grid-template-rows:auto auto;align-content:end}
html.app-nativo #aiz.ws-root .ws-board{grid-row:1;order:0;width:100%;justify-self:stretch}
html.app-nativo #aiz.ws-root.ws-empty .ws-board{display:none}
html.app-nativo body.ws-hero-mode #aiz.ws-root .ws-hero,html.app-nativo #aiz.ws-root .ws-hero{display:flex!important;grid-row:2;order:1;min-height:0;position:relative;pointer-events:none;justify-self:center;margin:0 0 10px;transform:translateY(calc(-1 * max(0px, var(--ws-viewport-inset,0px) - var(--rodape-app))));transition:transform .2s ease-out}
html.app-nativo #aiz.ws-root.ws-empty .ws-hero{grid-row:1}
html.app-nativo #aiz.ws-root .ws-hero .ws-hero-close{display:none!important}
html.app-nativo .ws-hero-brain{width:64px;height:64px}
html.app-nativo .ws-hero-brain .philippe-brain{width:42px;height:46px}
html.app-nativo body.ws-hero-mode #aiz.ws-root .ws-controls,html.app-nativo #aiz.ws-root .ws-controls{grid-row:3;order:2;padding:0;margin:0;min-height:0;width:100%;justify-self:stretch;transform:translateY(calc(-1 * max(0px, var(--ws-viewport-inset,0px) - var(--rodape-app))));transition:transform .2s ease-out}
html.app-nativo #aiz.ws-root.ws-empty .ws-controls{grid-row:2}
html.app-nativo body.ws-hero-mode #aiz.ws-root #ws-composer-home,html.app-nativo body.ws-hero-mode #aiz.ws-root:not(.ws-speaking) #ws-composer-home{position:static;left:auto;opacity:1;pointer-events:auto;width:100%}
html.app-nativo body.ws-hero-mode #aiz.ws-root .ws-composer{width:100%;justify-content:center}
html.app-nativo body.ws-hero-mode #aiz.ws-root .ws-composer .ws-close{display:inline-grid}
html.app-nativo #aiz.ws-root .ws-composer .ws-input{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(255,253,249,.94)!important;min-height:52px}
html.app-nativo body.dark #aiz.ws-root .ws-composer .ws-input{background:rgba(52,49,47,.96)!important}
html.app-nativo body.ai-workspace-on main{filter:none!important;will-change:auto;contain:none}
html.app-nativo #aikdsbar{display:none!important}
/* o botão de chamada por voz saiu da tela: vive na gaveta (Configurações) */
html.app-nativo #voice-wake{display:none!important}

/* ---------- 1.61.7: botão das lojas no topo (verde aberta, laranja restrição, vermelho fechada) ----------
   No app novo o botão é nativo (HubBarraPlugin, id "lojas"). No app instalado antes desta versão ele aparece em HTML,
   logo abaixo dos botões de vidro, à direita. O painel de situação abre no topo, na largura da tela. */
#app-lojas-web{position:fixed;top:var(--topo-app);right:14px;z-index:1240;width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;color:#fff;padding:0;
  --lojas-cor:#E08A1E;background:color-mix(in srgb,var(--lojas-cor) 88%,transparent);
  -webkit-backdrop-filter:blur(20px) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(20px) saturate(var(--vidro-saturacao,180%));
  box-shadow:var(--vidro-brilho,inset 0 1px 0 rgba(255,255,255,.5)),0 4px 14px rgba(0,0,0,.18);transition:transform var(--dur-rapida,.12s),filter var(--dur-rapida,.12s)}
#app-lojas-web:active{transform:scale(.94);filter:brightness(.92)}
#app-lojas-web:focus-visible{outline:3px solid var(--foco-cor,#1861A0);outline-offset:3px}
#app-lojas-web svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
/* 1.62.0: as tres cores da situacao, no tom em que o icone passa de 3:1 (regra da Apple para icone):
   verde e vermelho com icone branco; laranja com icone cafe escuro (branco no laranja dava 2,4:1). */
#app-lojas-web.app-lojas-verde{--lojas-cor:#1E8E3E} #app-lojas-web.app-lojas-laranja{--lojas-cor:#F5901B;color:#2A1C12} #app-lojas-web.app-lojas-vermelho{--lojas-cor:#D22D27} #app-lojas-web.app-lojas-cinza{--lojas-cor:#8E8E93}
html.app-lojas-web body.tem-acao-cliente #app-lojas-web{top:calc(var(--topo-app) + 64px)}
/* 1.70.0 (auditoria, 29/09/2026): com o botão HTML das lojas (app antigo e ?nativo= no navegador), o botão do canto direito do
   cabeçalho de Negociações (atualizar), Equipe (ajustes) e Manutenção remota (Atualizar) ficava embaixo dele e não recebia o
   toque (medido pela varredura, tools/auditoria/varredura.py). Mesma folga que o cabeçalho dos Relatórios já tinha. */
html.app-lojas-web #neg-raiz .neg-topo,html.app-lojas-web #view-equ .eq-cab,html.app-lojas-web #view-man .man-topo{padding-right:54px}
/* 1.62.0: o pedido do Philippe era o botao das lojas na mesma linha dos botoes de vidro do topo. No app NOVO ele ja
   e nativo e fica nessa linha (HubBarraPlugin, id "lojas", a esquerda do filtro). Este botao HTML so aparece no app
   ANTIGO do iPhone, e nele NAO pode subir para a linha nativa: a faixa do topo do app antigo e uma UIView nativa por
   cima da pagina que recebe todo toque naquela altura, entao o botao ficaria alinhado mas morto. Fica logo abaixo,
   alinhado a margem de 16 pt dos botoes nativos, ate o app novo ser instalado (ai ele some sozinho). */
html.app-ios #app-lojas-web{right:16px}
@media (prefers-reduced-transparency:reduce){#app-lojas-web{background:var(--lojas-cor)}}

/* 1.62.0: avisos no app do iPhone. Moravam a 78 px do topo, que no aparelho e EMBAIXO dos botoes de vidro nativos
   (a faixa do topo vai ate env(safe-area-inset-top)). Agora descem logo abaixo dos botoes, centralizados, como a
   notificacao do sistema; com a faixa vermelha da acao do cliente, descem abaixo dela. No Android o aviso ja e o
   snackbar do rodape (app-android.css). */
html.app-ios .toasts{top:calc(var(--topo-app) + 4px);left:12px;right:12px;align-items:center}
html.app-ios body.tem-acao-cliente .toasts{top:calc(var(--topo-app) + 64px)}
html.app-ios .toasts .toast{max-width:min(440px,100%)}
html.app-nativo #store-status-popover{position:fixed!important;top:var(--topo-app)!important;left:10px!important;right:10px!important;width:auto!important;max-height:calc(100dvh - var(--topo-app) - var(--rodape-app) - 12px)!important;overflow:auto;z-index:1260}

/* ---------- 1.62.1: a FICHA DO PEDIDO sobe como folha do iOS (web/app-nativo.js, ligarFicha) ----------
   Pedido do Philippe (27/09/2026): "quando eu clico em um card de pedido... tem que fazer a animação do card subindo. Pode
   esconder os botões de menu superiores e deixar somente o card aberto... até o usuário fechar o card, puxando para baixo".
   - Aberta, as peças nativas somem (HubBarra.ocultar) e a folha ocupa a tela, parando logo abaixo da barra de status (a ilha
     e o relógio). --app-status é essa altura: no iPhone o inset de cima inclui a faixa dos botões nativos (44 do botão + 6 + 6
     de folga, HubBarraPlugin.swift), que aqui é descontada. Se o nativo um dia mandar --app-status, vale o dele.
   - Subir e descer são TRANSIÇÕES (e não animação de entrada), para que fechar por qualquer caminho também desça: a ficha
     "fechada" é a folha fora da tela, invisível. A classe .hidden global (display:none!important) é trocada só aqui.
   - Curva: a das folhas do iOS (rápida no começo, assenta sem quicar), 0,38 s. Com "reduzir movimento" o sistema inteiro
     já zera as transições (index.html), e a ficha aparece e some sem deslizar. */
:root{--app-status:env(safe-area-inset-top,0px);--curva-folha:cubic-bezier(.32,.72,0,1);--dur-folha:.38s}
html.app-ios{--app-status:max(0px, calc(env(safe-area-inset-top) - 56px))}
/* 1.72.0: sem sessão (tela de entrada) não há a faixa dos botões nativos no inset: a barra de status é o inset inteiro */
html.app-ios.app-sem-topo{--app-status:env(safe-area-inset-top,0px)}
html.app-ios #omodal{--veu:1;--folha-topo:calc(var(--app-status) + 10px);align-items:flex-end;padding:0;
  background:rgba(20,15,10,calc(.42 * var(--veu)));-webkit-backdrop-filter:none;backdrop-filter:none;
  transition:background-color .3s var(--curva-padrao,ease),visibility 0s linear 0s}
html.app-ios body.dark #omodal{background:rgba(0,0,0,calc(.55 * var(--veu)))}
html.app-ios #omodal.hidden{display:flex!important;visibility:hidden;pointer-events:none;--veu:0;
  transition:background-color .3s var(--curva-padrao,ease),visibility 0s linear var(--dur-folha)}
/* a folha na altura toda é chapa (--vidro-solido, o mesmo token do bloco apple-vidro-1620), sem desfoque: é o que o iOS 26
   faz com a folha que cresce até o topo (o vidro fica para a folha pela metade), e desfoque em camada que ROLA é o que
   engasgava a rolagem no iPhone (1.48.0, topo deste arquivo); com o vidro, o texto dos cards de trás aparecia na ficha */
html.app-ios #omodal>.oc{height:calc(100dvh - var(--folha-topo));max-height:none;box-sizing:border-box;transform:translate3d(0,0,0);
  transition:transform var(--dur-folha) var(--curva-folha);background:var(--vidro-solido,#FBF8F4);-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 -8px 40px rgba(0,0,0,.18),var(--vidro-brilho,none);overscroll-behavior-y:contain}
html.app-ios #omodal.hidden>.oc{transform:translate3d(0,100%,0)}
html.app-ios #omodal.arrastando,html.app-ios #omodal.arrastando>.oc{transition:none}
/* com a ficha aberta, só ela: a faixa vermelha e o botão das lojas (HTML do app antigo) saem de cena até fechar */
html.app-nativo.ficha-aberta #acao-faixa,html.app-nativo.ficha-aberta #app-lojas-web{visibility:hidden}

/* ---------- 1.62.1: VOLTA DO SEGUNDO PLANO (web/live.js "retomada" e app-nativo.js ligarRetomada) ----------
   A lista da última sessão esmaece e não aceita toque enquanto o estado novo não chega; no meio, o vidro "Atualizando
   pedidos" (entra em 0,2 s com a mola, sai em 0,14 s). Se a conexão falhar, uma pílula discreta acima da barra. */
html.hub-retomando main,html.hub-retomando #acao-faixa{opacity:.22;pointer-events:none;transition:opacity var(--dur-rapida,.12s) linear}
#hub-retomada{position:fixed;left:50%;top:50%;z-index:1500;display:flex;align-items:center;gap:12px;box-sizing:border-box;min-height:56px;width:max-content;max-width:calc(100vw - 48px);white-space:nowrap;padding:14px 22px;border-radius:20px;
  background:var(--vidro-grosso,rgba(252,250,247,.86));color:var(--label,#3A2A1E);font-weight:600;font-size:var(--f-body,1.0625rem);line-height:1.2;
  -webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  box-shadow:var(--vidro-brilho,none),var(--vidro-sombra-alta,0 18px 46px rgba(0,0,0,.2));
  opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .14s linear,transform .2s var(--curva-mola,cubic-bezier(.2,1.25,.35,1));pointer-events:none}
#hub-retomada.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
#hub-retomada[hidden]{display:none}
#hub-retomada .hr-roda{flex:none;width:22px;height:22px;box-sizing:border-box;border-radius:50%;border:2.5px solid color-mix(in srgb,currentColor 18%,transparent);border-top-color:var(--sys-red,#E0342E);animation:hr-gira .7s linear infinite}
@keyframes hr-gira{to{transform:rotate(360deg)}}
#hub-sem-conexao{position:fixed;left:50%;bottom:calc(var(--rodape-app) + 10px);transform:translateX(-50%);z-index:1240;display:flex;align-items:center;gap:8px;box-sizing:border-box;min-height:44px;width:max-content;max-width:calc(100vw - 32px);padding:8px 16px;border:0;border-radius:999px;
  background:var(--vidro-regular,rgba(255,255,255,.66));color:var(--label,#3A2A1E);font:inherit;font-size:var(--f-footnote,0.8125rem);font-weight:600;text-align:left;cursor:pointer;
  -webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  box-shadow:var(--vidro-brilho,none),var(--vidro-sombra,0 8px 28px rgba(0,0,0,.14));transition:transform var(--dur-rapida,.12s),opacity var(--dur-rapida,.12s)}
#hub-sem-conexao[hidden]{display:none}
#hub-sem-conexao:active{transform:translateX(-50%) scale(.97);opacity:.7}
#hub-sem-conexao:focus-visible{outline:3px solid var(--foco-cor,#1861A0);outline-offset:3px}
#hub-sem-conexao i{flex:none;width:9px;height:9px;border-radius:50%;background:var(--sys-orange,#F5901B)}
@media (prefers-reduced-transparency:reduce){#hub-retomada,#hub-sem-conexao{-webkit-backdrop-filter:none;backdrop-filter:none}}

/* 1.66.0: toque na notificação traz o cartão certo para a vista (web/app-nativo.js, destacar) sem mexer no filtro de loja.
   Anel de 3 px (sombra, porque o cartão da cozinha já usa o contorno para a seleção) por 3 s; sem movimento para quem
   pediu menos movimento. */
html.app-nativo .app-destaque{box-shadow:0 0 0 3px rgba(224,52,46,.95),0 10px 30px rgba(224,52,46,.18)!important;animation:app-destaque-pulso 1s ease-in-out 3}
@keyframes app-destaque-pulso{0%,100%{box-shadow:0 0 0 3px rgba(224,52,46,.95),0 10px 30px rgba(224,52,46,.18)}50%{box-shadow:0 0 0 3px rgba(224,52,46,.35),0 10px 30px rgba(224,52,46,.08)}}
@media (prefers-reduced-motion:reduce){html.app-nativo .app-destaque{animation:none}}

/* 1.66.0: no iPhone (app e Safari), campo de texto com letra menor que 16 px faz o iOS aproximar a página ao digitar e
   não voltar (web/campos-celular.js marca esses campos). 16 px é o mínimo do iOS; campo maior fica como está. */
html.campos-16 .campo-16{font-size:max(1rem,calc(1rem * var(--dt,1)))!important}

/* ---------- 1.72.0 (auditoria de design 1720): MARGENS DA APPLE NO APP ----------
   No app o <main> não tem margem (a tela vai de ponta a ponta, como no iOS) e cada tela somava a própria folga: o título do
   Cardápio começava a 10 pt da borda, o das Negociações e dos Relatórios a 12, o da Manutenção a 14 e, no iPad, todas a 16.
   A HIG pede 16 pt no iPhone e 20 pt no iPad: uma medida só, --margem, para todas as telas. */
html.app-nativo{--margem:16px}
@media (min-width:700px){html.app-nativo{--margem:20px}}
html.app-nativo :is(.ges.dash,.menuv,.sim,.eq,.rel){padding-left:var(--margem);padding-right:var(--margem)}
html.app-nativo #neg-raiz.neg-tela,html.app-nativo #view-man .man-tela{padding-left:var(--margem);padding-right:var(--margem)}
/* 1.72.0 (pente fino final): no navegador do celular a margem era a soma da folga do <main> (8 px) com a de cada tela (10 a
   16): o Dashboard começava a 24 pt da borda, os Relatórios e as Negociações a 20, o Cardápio a 18. A mesma medida do app,
   16 pt, em todas as telas */
@media (max-width:640px){
  html:not(.app-nativo){--margem:16px}
  html:not(.app-nativo) main{margin-left:0;margin-right:0}
  html:not(.app-nativo) :is(.ges.dash,.menuv,.sim,.eq,.rel){padding-left:var(--margem);padding-right:var(--margem)}
  html:not(.app-nativo) #neg-raiz.neg-tela,html:not(.app-nativo) #view-man .man-tela{padding-left:var(--margem);padding-right:var(--margem)}
}

/* /app-ios.css */
/* 1.47.0, refeito em 1.48.0: o Hub dentro do aplicativo iOS (Capacitor). Só o que muda em relação ao site.
   Pedido do Philippe (21/09/2026): "a barra do menu do topo vai sair completamente"; ficam os botões de
   vidro nativos (menu à esquerda, filtro e selecionar à direita) e a cápsula de vidro no rodapé (KDS,
   Expedição, Cérebro no meio, Dashboard, Avaliações), os dois desenhados em Swift (HubBarraPlugin).
   O conteúdo respeita as áreas seguras: env(safe-area-inset-top/bottom) já inclui as faixas nativas. */
html.app-ios body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior-y:none}
/* o cabeçalho web sai inteiro; os botões dele continuam existindo (escondidos) porque o app dispara o clique */
html.app-ios .top{display:none!important}
/* 1.49.0: a caixa fixa do conteúdo (posição, rolagem, colunas) mora em app-nativo.css, igual nos dois apps */
/* KDS no app é a cozinha; as outras etapas são as colunas da expedição */
html.app-ios #view-kds .kbar,html.app-ios #view-kds .strip{display:none!important}
html.app-ios #view-kds .grid{padding-top:6px}
/* expedição: cancelados sempre na última coluna; os botões de chat e de cancelados não existem no app */
html.app-ios #view-exp .tools{padding-top:6px}
/* menu web e chevron de tela: substituídos pela gaveta e pela barra nativa */
html.app-ios #seg,html.app-ios .top.compact #seg,html.app-ios #menubtn,html.app-ios #menudd{display:none!important}
/* folhas: no iOS o modal desce como sheet, com alça; fecha arrastando para baixo (sem o X).
   1.72.0 (auditoria de design 1720): as alturas são as das folhas do sistema (web/folha.css: --folha-grande, --folha-media e
   --folha-base) e, aberta, a folha esconde os botões de vidro do topo e a barra de abas (web/folha.js); antes o rodapé de
   botões do diálogo de cancelar caía embaixo da barra de abas nativa */
html.app-ios .modal{align-items:flex-end;padding:0}
html.app-ios .modal>.oc,html.app-ios .modal>.pc,html.app-ios .modal>.lc{width:100%;max-width:100%;border-radius:22px 22px 0 0;padding-bottom:var(--folha-base);max-height:var(--folha-grande);box-sizing:border-box;overflow:auto;position:relative;touch-action:pan-y;will-change:transform}
html.app-ios .modal>.oc::before,html.app-ios .modal>.pc::before,html.app-ios .modal>.lc::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3));margin:8px auto 10px}
html.app-ios .modal>.oc .oh .x{display:none!important}
html.app-ios .modal.arrastando>.oc,html.app-ios .modal.arrastando>.pc,html.app-ios .modal.arrastando>.lc{transition:none}
html.app-ios .modal>.oc,html.app-ios .modal>.pc,html.app-ios .modal>.lc{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
/* o perfil loja não existe no app: o login mostra só gestão */
html.app-ios #unitpick{display:none!important}
html.app-ios .login-management{margin-top:8px}
/* destaque de 4 s no rótulo de lojas quando a notificação "loja fechada" abre a tela */
html.app-ios body.app-destacar-lojas #unitlabel{box-shadow:0 0 0 3px var(--crono-atraso,#E0342E);transition:box-shadow .3s}
/* seleção de texto e zoom: app, não página */
html.app-ios *{-webkit-user-select:none;user-select:none}
html.app-ios input,html.app-ios textarea,html.app-ios [contenteditable]{-webkit-user-select:text;user-select:text}


/* /app-android.css */
/* 1.47.0, refeito em 1.59.0: o Hub dentro do aplicativo Android (Capacitor). Só o que muda em relação ao
   site. Material 3 Expressive, Android 16.

   O QUE MUDOU NA 1.59.0, e por quê: a barra do topo do web SAIU, como já tinha saído no iOS na 1.48.0
   (pedido do Philippe: "a barra do menu do topo vai sair completamente"). Agora o Android também desenha
   em código nativo o menu à esquerda e os botões de filtro e de selecionar à direita (botões tonais do M3,
   HubBarraPlugin.kt), além da barra de navegação inferior com as cinco abas. Duas barras, uma web e uma
   nativa, era o que fazia o app parecer um site dentro de uma moldura.

   O que continua valendo da pesquisa de 20/09/2026: rótulo sempre visível na barra de navegação, alvo de
   toque de 48 dp, cantos mais arredondados, folha inferior (bottom sheet) no lugar da folha do iOS,
   snackbar no lugar do toast, Roboto. O Material Web foi pausado em 2024, então os componentes que o Hub
   usa em HTML (folha, snackbar, chips) ganham aqui o CSS com os tokens públicos do M3. A cor primária é a
   da MARCA e não a do papel de parede: quem usa cor para ler estado (atrasado, pronto, em rota) não pode
   ter a paleta trocada pelo fundo de tela. O Material You fica onde é bem-vindo, nos widgets.

   A CAIXA do conteúdo (posição, rolagem, colunas travadas da expedição, --app-barra) mora em
   app-nativo.css e é a mesma nos dois aplicativos. Aqui não se mexe em padding de body nem de main. */
html.app-android{--m3-primary:#B3261E;--m3-on-primary:#fff;--m3-surface:#FEF7F1;--m3-surface-container:#F6EDE6;--m3-outline:#857370;--m3-ripple:rgba(179,38,30,.12);--m3-radius:16px;--m3-radius-sm:12px}
html.app-android:not([data-theme="light"]) body.dark,html.app-android[data-theme="dark"]{--m3-surface:#1D1B1A;--m3-surface-container:#2A2624;--m3-outline:#A08C88;--m3-ripple:rgba(255,180,171,.16)}
/* !important porque applyCfg() escreve a fonte no style do body; no Android a plataforma manda */
html.app-android body{font-family:Roboto,"Roboto Flex","Noto Sans",system-ui,sans-serif!important;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
/* o cabeçalho web sai inteiro; os botões dele continuam existindo (escondidos) porque o app dispara o clique */
html.app-android .top{display:none!important}
/* menu web e chevron de tela: substituídos pela gaveta e pela barra nativa */
html.app-android #seg,html.app-android .top.compact #seg,html.app-android #menubtn,html.app-android #menudd{display:none!important}
/* KDS no app é a cozinha; as outras etapas são as colunas da expedição */
html.app-android #view-kds .kbar,html.app-android #view-kds .strip{display:none!important}
html.app-android #view-kds .grid{padding-top:6px}
html.app-android #view-exp .tools{padding-top:6px}
/* alvo de toque de 48 dp e ripple discreto nos botões */
html.app-android button:not(.tag button):not(.settings-remove):not(.icon),html.app-android .rolebtn,html.app-android .gestorlink{min-height:48px!important;border-radius:var(--m3-radius-sm);position:relative;overflow:hidden}
html.app-android button.icon{min-width:48px;min-height:48px!important}
html.app-android button:active::after{content:"";position:absolute;inset:0;background:var(--m3-ripple);border-radius:inherit}
html.app-android .k,html.app-android .e,html.app-android .dcard,html.app-android .kpi,html.app-android .pcard{border-radius:var(--m3-radius)}
/* folha inferior (bottom sheet) do M3: sobe do rodapé, canto 28 dp, alça de arrasto.
   Fecha arrastando para baixo (app-nativo.js liga o arrasto nos dois aplicativos) e pelo gesto de voltar;
   com esses dois caminhos, o X do web viraria um terceiro botão para a mesma coisa. */
html.app-android .modal{align-items:flex-end;padding:0}
/* 1.72.0 (auditoria de design 1720): as alturas das folhas do sistema (web/folha.css); aberta, a folha esconde a barra nativa */
html.app-android .modal>.oc,html.app-android .modal>.pc,html.app-android .modal>.lc{width:100%;max-width:100%;border-radius:28px 28px 0 0;padding-bottom:var(--folha-base);max-height:var(--folha-grande);box-sizing:border-box;overflow:auto;position:relative;background:var(--m3-surface-container);touch-action:pan-y;will-change:transform;transition:transform .28s cubic-bezier(.2,.8,.2,1)}
html.app-android .modal>.oc::before,html.app-android .modal>.pc::before,html.app-android .modal>.lc::before{content:"";display:block;width:32px;height:4px;border-radius:2px;background:var(--m3-outline);opacity:.5;margin:10px auto 12px}
html.app-android .modal>.oc .oh .x{display:none!important}
html.app-android .modal.arrastando>.oc,html.app-android .modal.arrastando>.pc,html.app-android .modal.arrastando>.lc{transition:none}
/* snackbar: o toast do Hub vira uma faixa no rodapé, acima da barra nativa (--app-barra vem do plugin) */
html.app-android .toasts{top:auto;bottom:calc(var(--rodape-app) + 12px);align-items:stretch}
html.app-android .toast{border-radius:8px;background:#322F2E;border-color:transparent;color:#F5EFF7;box-shadow:0 3px 8px rgba(0,0,0,.3);font-size:calc(0.875rem * var(--dt));-webkit-backdrop-filter:none;backdrop-filter:none}
/* chips de filtro no padrão M3 (borda, sem sombra) */
html.app-android .tag{border:1px solid var(--m3-outline);background:transparent;border-radius:8px}
/* o perfil loja não existe no app: o login mostra só gestão */
html.app-android #unitpick{display:none!important}
html.app-android .login-management{margin-top:8px}
/* destaque de 4 s no rótulo de lojas quando a notificação "loja fechada" abre a tela */
html.app-android body.app-destacar-lojas #unitlabel{box-shadow:0 0 0 3px var(--m3-primary);transition:box-shadow .3s}
/* seleção de texto e zoom: app, não página */
html.app-android *{user-select:none}
html.app-android input,html.app-android textarea,html.app-android [contenteditable]{user-select:text}

/* /hub-carrossel.css */
/* 1.74.0 (Philippe, 03/10/2026): O CARROSSEL DE CARTÕES DO SISTEMA INTEIRO (web/hub-carrossel.js, HubCarrossel).
   "Você pode sempre preferir o design de carrossel, que é arrastando para o lado, tanto na versão mobile como na versão
   desktop." A faixa (.hcar) rola para o lado com encaixe; no celular (.hcar-cel) um cartão por tela, no computador
   (.hcar-pc) vários, com a largura calculada pelo JS (--hcar-w) para o próximo aparecer pela metade. As peças em volta
   (.hcar-acess: fichas do índice, setas de vidro, pontos e contagem) são irmãs da faixa, nunca filhas, porque quem rola é
   ela. Vidro só nessas peças (camada funcional); o cartão é conteúdo e fica como a tela dona desenhou.
   Medidas de texto em rem com --dt (tests/relative-typography); claro e escuro; "reduzir movimento" e "reduzir
   transparência" respeitados. */
/* :is(.hcar-cel,.hcar-pc): a faixa sempre tem uma das duas classes; a regra fica mais forte que o display da tela dona
   (uma lista em grade, por exemplo), venha a folha dela antes ou depois desta */
/* !important só no que faz a faixa ser faixa (fila única que rola para o lado): a grade da tela dona não pode vencer */
.hcar:is(.hcar-cel,.hcar-pc){--hcar-se:0px;--hcar-sd:0px;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch;gap:var(--hcar-vao,.75rem);overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;outline:none;box-sizing:border-box;
  /* a sangria: a faixa vai até a borda da página e devolve o espaço em padding, para a sombra do cartão não ser cortada */
  margin:-.625rem calc(-1 * var(--hcar-sd)) -.625rem calc(-1 * var(--hcar-se));padding:.625rem var(--hcar-sd) .625rem var(--hcar-se);scroll-padding:0 var(--hcar-sd) 0 var(--hcar-se)}
.hcar::-webkit-scrollbar{display:none}
.hcar:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:-3px;border-radius:1.25rem}
/* position:relative no cartão: o que é posicionado dentro dele (campo de arquivo escondido, selo) fica preso ao cartão e é
   cortado pela faixa; solto, escaparia do recorte e alargaria a página */
.hcar>.hcar-item{position:relative;flex:0 0 var(--hcar-w,min(100%,24rem));flex-grow:0!important;flex-shrink:0!important;width:auto;max-width:none;min-width:0;margin:0;box-sizing:border-box;scroll-snap-align:start}
.hcar>.hcar-fora{display:none}
/* celular: um cartão por tela, centrado, e nunca passa dois de uma vez */
.hcar.hcar-cel>.hcar-item{flex-basis:100%;scroll-snap-align:center;scroll-snap-stop:always}
/* um cartão só, ou todos cabendo: a faixa não rola e não tem enfeite */
.hcar.hcar-um>.hcar-item{flex-basis:var(--hcar-w,100%)}
/* altura 'tela': o cartão ocupa o que sobra na tela e rola por dentro; a página não rola */
.hcar.hcar-tela>.hcar-item{height:var(--hcar-altura,60vh);max-height:var(--hcar-altura,60vh);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
/* no computador há vários cartões à vista: eles têm a altura do mais alto, até o limite da tela (cartão curto não vira
   uma coluna vazia até o pé da página) */
.hcar.hcar-pc.hcar-tela>.hcar-item{height:auto}
/* 1.74.0 (Philippe, 04/10/2026, a dupla checagem): CARTÕES PEQUENOS JUNTOS (opção agrupa do HubCarrossel). "O segredo é
   usar mini cards, cards médios, cards grandes e carrossel." A faixa vira uma coluna que quebra: o navegador empilha os
   cartões pequenos vizinhos na mesma coluna (mini cartões) e cada coluna reparte a sobra da altura entre os cartões
   dela (flex-grow). O cartão cortado (.hcar-cheio) e o que pede a coluna inteira ([data-hcar-inteiro]) ficam sozinhos.
   O cartão com detalhe guardado para o cartão grande reserva o lugar do sinal "Ver tudo" (::after), para o sinal não
   cobrir a última linha de um cartão justo. No computador, quando todas as colunas cabem, elas ficam no meio. */
.hcar.hcar-agrupa:is(.hcar-cel,.hcar-pc){flex-direction:column!important;flex-wrap:wrap!important;align-content:safe center;height:calc(var(--hcar-altura,60vh) + 1.25rem)}
.hcar.hcar-agrupa.hcar-tela>.hcar-item{flex:1 1 auto!important;width:var(--hcar-w,min(100%,24rem));height:auto;min-height:0;max-height:var(--hcar-altura,60vh)}
.hcar.hcar-agrupa.hcar-cel.hcar-tela>.hcar-item{width:100%}
.hcar.hcar-agrupa.hcar-tela>:is(.hcar-cheio,[data-hcar-inteiro]){flex-basis:100%!important}
.hcar.hcar-agrupa>.hcar-detalhado:not(.hcar-grande)::after{content:"";display:block;flex:none;height:2.75rem}
html.hub-toque .hcar.hcar-agrupa>.hcar-detalhado:not(.hcar-grande)::after,.hcar.hcar-agrupa.hcar-cel>.hcar-detalhado:not(.hcar-grande)::after{height:3.5rem}
/* 1.74.0 (Philippe, 04/10/2026, a dupla checagem): A MOLDURA DO CARTÃO É UMA SÓ em toda tela de conteúdo primeiro. Cada
   família de telas tinha a sua: raio de 16, 20, 22 e 24 px; fundo branco, branco a 74% (vidro na camada de conteúdo,
   nas Configurações) e, no escuro, quatro tons, um deles translúcido; sombra de cinco jeitos. Agora: o raio de folha
   da casa (--r-sheet, 20 px), fundo sólido (--surface; vidro é só da camada funcional), fio de meio pixel e a sombra
   leve dos cartões da Expedição. Os seletores dobrados dão peso para vencer a classe de cada tela sem !important (um
   estado desenhado pela tela com sombra, como o caso pendente das Negociações, continua vencendo com o id dela). */
.hcar-expande.hcar-expande .hcar-cartao.hcar-cartao:not(.hcar-grande):not(.hcar-avulso){border-radius:var(--r-sheet,1.25rem);border-color:transparent;background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06)}
body.dark .hcar-expande.hcar-expande .hcar-cartao.hcar-cartao:not(.hcar-grande):not(.hcar-avulso){background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
@media (prefers-contrast:more){.hcar-expande.hcar-expande .hcar-cartao.hcar-cartao:not(.hcar-grande):not(.hcar-avulso){box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)}body.dark .hcar-expande.hcar-expande .hcar-cartao.hcar-cartao:not(.hcar-grande):not(.hcar-avulso){box-shadow:inset 0 0 0 1px var(--label,#F3EDE6)}}
/* 04/10/2026 (a dupla checagem): RESPOSTA NO TOQUE. O cartão que abre grande e os pontos não diziam nada enquanto o dedo
   estava em cima (a resposta só vinha ao soltar). O cartão afunda um fio no toque (não quando o dedo está num botão de
   dentro, que tem a própria resposta) e o ponto tocado acende. A transição mora só no estado apertado: posta no cartão
   em repouso, ela pegava também a volta do cartão grande (o cartão era medido no meio do caminho e o corte escondia o
   resumo inteiro; visto nas Taxas, depois de salvar a comissão e fechar). */
.hcar-expande:not(.hcar-solto):not(.hcar-espiar) .hcar-cartao.hcar-tem-mais:not(.hcar-grande):active:not(:has(:is(a,button,input,select,textarea,label,summary,[role="button"],[role="switch"],[data-hcar-livre]):active)){transform:scale(.985);transition:transform .12s ease-out}
.hcar-cartao.hcar-tem-mais:not(.hcar-grande):active>.hcar-mais{transform:translateX(-50%) scale(.96)}
.hcar-ponto:active i{background:var(--label,var(--text,#3A2A1E));transform:scale(1.35)}
body.dark .hcar-ponto:active i{background:var(--label,#F3EDE6)}
@media (prefers-reduced-motion:reduce){.hcar-expande .hcar-cartao.hcar-tem-mais:not(.hcar-grande):active{transition:none!important;transform:none!important;opacity:.86}.hcar-ponto:active i{transform:none}}
/* o arrasto com o mouse: sem encaixe enquanto o ponteiro leva a faixa (e enquanto a mola assenta), sem selecionar texto */
.hcar.hcar-solto{scroll-snap-type:none}
.hcar.hcar-arrastando{cursor:grabbing;-webkit-user-select:none;user-select:none}
.hcar.hcar-arrastando>.hcar-item{pointer-events:none}
.hcar.hcar-solto>.hcar-item{transform:translate3d(var(--hcar-el,0px),0,0)}
/* a espiada: os cartões deslizam um pouco para a esquerda e voltam (uma vez por abertura; nunca com "reduzir movimento") */
.hcar.hcar-espiar>.hcar-item{animation:hcar-espiada 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes hcar-espiada{0%{transform:none}38%{transform:translateX(-2.25rem)}100%{transform:none}}

/* ---------- peças em volta ---------- */
.hcar-acess[hidden]{display:none!important}
/* fichas do índice: os títulos dos cartões; tocar leva ao cartão */
.hcar-indice{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;margin:0 0 calc(.625rem - var(--hcar-pv,0px));padding:.125rem 0;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.hcar-indice::-webkit-scrollbar{display:none}
.hcar-ficha{flex:none;display:inline-flex;align-items:center;min-height:2.75rem;max-width:18rem;padding:.375rem .875rem;border-radius:999px;border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.62);color:var(--label,var(--text,#3A2A1E));font:inherit;font-size:calc(.8125rem * var(--dt,1));font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;box-shadow:0 .25rem .75rem rgba(70,45,25,.06);transition:transform .1s ease-out,background-color .2s ease-out,color .2s ease-out}
.hcar-ficha>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hcar-ficha:active{transform:scale(.97)}
.hcar-ficha[aria-current="true"]{background:var(--label,var(--text,#3A2A1E));border-color:transparent;color:var(--surface,#fff)}
.hcar-ficha:focus-visible,.hcar-ponto:focus-visible,.hcar-seta:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}
body.dark .hcar-ficha{background:rgba(46,36,28,.72);border-color:rgba(255,255,255,.1);color:var(--label,#F3EDE6)}
body.dark .hcar-ficha[aria-current="true"]{background:var(--label,#F3EDE6);color:var(--surface,#22201E)}
html.hub-clique .hcar-ficha{min-height:2.25rem}
/* setas de vidro (computador): não ocupam altura, flutuam sobre as bordas da faixa; aparecem com o mouse ou o foco */
.hcar-setas{position:relative;height:0;z-index:3;pointer-events:none;display:none;margin-top:calc(-1 * var(--hcar-pv,0px))}
html.hub-clique .hcar-setas{display:block}
@media (hover:hover) and (pointer:fine){.hcar-setas{display:block}}
html.hub-toque .hcar-setas{display:none}
.hcar-setas:has(+ .hcar-cel){display:none}   /* um cartão por tela: o dedo (ou o arrasto) passa; as setas são do computador */
.hcar-seta{position:absolute;top:calc(var(--hcar-meio,8rem) - 1.375rem);width:2.75rem;height:2.75rem;border-radius:50%;border:0;padding:0;display:grid;place-items:center;cursor:pointer;pointer-events:auto;color:var(--label,var(--text,#3A2A1E));background:var(--vidro-regular,rgba(255,255,255,.66));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,inset 0 0 0 .5px rgba(255,255,255,.55)),var(--vidro-sombra,0 8px 28px rgba(40,25,12,.14));opacity:0;transform:scale(.92);transition:opacity .18s ease-out,transform .18s ease-out}
.hcar-seta svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hcar-ant{left:.25rem}
.hcar-prox{right:.25rem}
.hcar-setas.hcar-on .hcar-seta,.hcar-seta:focus-visible{opacity:1;transform:none}
.hcar-seta:active{transform:scale(.94)}
.hcar-seta:disabled,.hcar-setas.hcar-on .hcar-seta:disabled{opacity:0;pointer-events:none}
/* pontos e contagem: "3 de 17: título" */
.hcar-pe{margin:calc(.25rem - var(--hcar-pv,0px)) 0 0;min-width:0}
.hcar-pontos{display:flex;justify-content:safe center;gap:0;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.hcar-pontos::-webkit-scrollbar{display:none}
.hcar-ponto{flex:none;width:2.75rem;height:2.75rem;padding:0;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;cursor:pointer}
.hcar-ponto[hidden]{display:none}   /* cartões juntos (agrupa): um ponto por coluna */
.hcar-ponto i{display:block;width:.375rem;height:.375rem;border-radius:.5rem;background:rgba(58,42,30,.28);transition:width .2s ease-out,background-color .2s ease-out}
body.dark .hcar-ponto i{background:rgba(255,255,255,.32)}
.hcar-ponto.hcar-vista i{background:rgba(58,42,30,.6)}
body.dark .hcar-ponto.hcar-vista i{background:rgba(255,255,255,.66)}
.hcar-ponto[aria-selected="true"] i{width:1.25rem;background:var(--label,var(--text,#3A2A1E))}
body.dark .hcar-ponto[aria-selected="true"] i{background:var(--label,#F3EDE6)}
/* no computador o ponteiro é fino: os pontos podem ser menores (o alvo de 44 px é regra do toque) */
html.hub-clique .hcar-ponto{width:1.75rem;height:1.75rem}
.hcar-contagem{text-align:center;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));line-height:1.3;color:var(--label2,var(--sub,#6B5A4C));margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
html.hub-toque .hcar-pontos,.hcar-cel~.hcar-pe .hcar-pontos{margin-top:-.25rem}
html.hub-toque .hcar-contagem{margin-top:-.375rem}

@media (prefers-reduced-motion:reduce){
  .hcar{scroll-behavior:auto}
  .hcar.hcar-espiar>.hcar-item{animation:none}
  .hcar-ficha,.hcar-seta,.hcar-ponto i{transition:none}
  .hcar-seta{transform:none}
}
@media (prefers-reduced-transparency:reduce){
  .hcar-seta{background:var(--vidro-solido,#FBF8F4);-webkit-backdrop-filter:none;backdrop-filter:none}
  .hcar-ficha{background:var(--surface,#fff)}
  body.dark .hcar-ficha{background:var(--surface,#22201E)}
}
@media (prefers-contrast:more){
  .hcar-ficha{border-color:var(--label,#3A2A1E)}
  .hcar-seta{box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)}
}

/* ---------- a tela em volta de um cartão na altura da tela ----------
   Com altura 'tela' a página não rola: o que fica acima e abaixo da faixa encolhe para sobrar altura para o cartão. O
   respiro de baixo das telas (60 px, pensado para o fim de uma página longa) deixa de fazer sentido, e a entrada do
   Cérebro sem recomendação fica numa linha só. */
.ges:has(.hcar-tela){padding-bottom:.5rem}
main:has(.view.on .hcar-tela){padding-bottom:0;margin-bottom:.5rem}
html:not(.app-nativo) body:has(.view.on .hcar-tela){padding-bottom:max(.25rem,env(safe-area-inset-bottom,0px))}
.view:has(.hcar-tela) .hr-faixa{margin-bottom:.625rem}
.view:has(.hcar-tela) .hr-faixa.vazia .hr-entrada{min-height:2.75rem;padding-top:.25rem;padding-bottom:.25rem}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `... .hr-entrada-txt span{display:none}`. Um `:has()` que termina numa etiqueta
   solta (span) fazia o navegador refazer o estilo de TODO span da tela a cada mexida (docs/DESEMPENHO-2026-10-03.md). A
   linha de baixo da entrada agora some por uma variável, lida em web/recomendacoes.css (.hr-entrada-txt span). */
.view:has(.hcar-tela) .hr-faixa.vazia .hr-entrada-txt{--hr-entrada-sub:none}
.view:has(.hcar-tela) .hr-faixa.vazia .hr-cerebro.philippe-brain{width:1.5rem;height:1.625rem}

/* ---------- 1.74.0 (Philippe, 04/10/2026): O CARTÃO QUE NÃO ROLA E EXPANDE (opção expande; requisito B6) ----------
   "Não pode existir rolar para baixo dentro dos cards do carrossel [...] quando tocar ou clicar no card, expandir com
   mais conteúdo se for necessário. Essa é a mesma ideia dos cards de pedidos."
   O cartão pequeno nunca rola: o JS esconde os blocos inteiros que não cabem (.hcar-corte), apara a peça única que
   atravessa o limite (.hcar-aparado) e põe o sinal "Ver tudo" (.hcar-mais, vidro: é a camada funcional). O cartão grande
   (.hcar-grande) é o MESMO nó, em position: fixed, sobre um véu escuro sem desfoque e em chapa sólida, a linguagem da
   ficha do pedido (web/topo-vidro.css, seção 8). Camadas: a barra de baixo é 60, o véu 63, o cartão grande 64, o menu
   e as janelas 70 ou mais (o que o cartão grande abrir aparece por cima dele). Por quadro o JS só escreve transform e
   opacity. No celular o cartão grande ocupa a tela (margem de 8 px); no computador é largo, no meio da janela. */
.hcar-cartao{position:relative}
.hcar-expande .hcar-cartao:not(.hcar-grande){overflow:hidden!important}
.hcar-corte{display:none!important}
.hcar-aparado{overflow:hidden!important}
.hcar-esmaece{-webkit-mask-image:linear-gradient(#000 calc(100% - 1.5rem),transparent);mask-image:linear-gradient(#000 calc(100% - 1.5rem),transparent)}
/* a tela manda no corte: o detalhe só no cartão grande, o resumo só no pequeno */
.hcar-cartao:not(.hcar-grande) [data-hcar-detalhe]{display:none!important}
.hcar-grande [data-hcar-resumo]{display:none!important}
.hcar-cartao.hcar-tem-mais:not(.hcar-grande){cursor:pointer}
.hcar-cartao>.hcar-mais{position:absolute;left:50%;bottom:.5rem;z-index:2;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.375rem;min-height:2rem;max-width:calc(100% - 1.5rem);padding:.25rem .875rem;border:0;border-radius:999px;cursor:pointer;white-space:nowrap;
  color:var(--label,var(--text,#3A2A1E));font:inherit;font-size:calc(.8125rem * var(--dt,1));font-weight:650;line-height:1.15;
  background:var(--vidro-regular,rgba(255,255,255,.72));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));
  box-shadow:var(--vidro-brilho,inset 0 0 0 .5px rgba(255,255,255,.55)),0 1px 2px rgba(40,25,12,.1),0 .375rem 1rem rgba(40,25,12,.16);transition:transform .1s ease-out}
.hcar-cartao>.hcar-mais svg{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hcar-mais:active{transform:translateX(-50%) scale(.96)}
/* 1.74.0 (04/10/2026): a regra geral dos botões (index.html: button:active{transform:scale(.94)!important}) tirava o
   translateX do sinal enquanto ele estava apertado: o "Ver tudo" pulava meio botão para a direita debaixo do dedo */
.hcar-cartao>.hcar-mais:not(:disabled):active{transform:translateX(-50%) scale(.96)!important}
.hcar-mais:focus-visible,.hcar-fechar:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}
html.hub-toque .hcar-cartao>.hcar-mais,.hcar-cel .hcar-cartao>.hcar-mais{min-height:2.75rem;padding:.375rem 1.125rem}
body.dark .hcar-cartao>.hcar-mais{background:var(--vidro-regular,rgba(58,48,40,.78));box-shadow:inset 0 0 0 .5px rgba(255,255,255,.14),0 .375rem 1rem rgba(0,0,0,.4)}
.hcar-grande>.hcar-mais{display:none}
/* o espaço reservado: a casca vazia do cartão segura o lugar dele na faixa enquanto ele está grande */
.hcar-vago{visibility:hidden;pointer-events:none}
/* o véu */
.hcar-veu{position:fixed;inset:0;z-index:63;background:rgba(20,15,10,.42);opacity:0}
body.dark .hcar-veu{background:rgba(0,0,0,.55)}
/* o cartão grande */
/* 1.74.0 (Philippe, 05/10/2026, quinta rodada, C3): transition: none. "No desktop, quando você ativa o cérebro, ele tenta
   abrir tela cheia e fica desconfigurado." O cartão de recomendação tem "transition: transform .18s" (web/recomendacoes.css,
   para o efeito de sair). A mola escreve o transform a cada quadro e a transição da tela corria atrás de cada escrita: o
   cartão nascia do tamanho da janela, encolhia e só então crescia, e o lugar de repouso era medido no meio do caminho.
   Quem anima o cartão grande é a mola, e só ela: ele não herda transição da tela dona. */
.hcar-grande{--hg-lado:.5rem;--hg-topo:calc(env(safe-area-inset-top,0px) + .5rem);--hg-pe:calc(env(safe-area-inset-bottom,0px) + .5rem);
  position:fixed!important;z-index:64;inset:auto!important;top:var(--hg-topo)!important;left:var(--hg-lado)!important;width:calc(100vw - 2 * var(--hg-lado))!important;height:calc(100dvh - var(--hg-topo) - var(--hg-pe))!important;
  min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0!important;flex:none!important;box-sizing:border-box!important;
  overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;cursor:auto;animation:none!important;transition:none!important;transform-origin:0 0;outline:none;
  background:var(--vidro-solido,#FBF8F4)!important;color:var(--label,#3A2A1E);-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1.125rem 3.75rem rgba(20,12,6,.28)!important}
body.dark .hcar-grande{background:var(--vidro-solido,#2A2420)!important;color:var(--label,#F3EDE6);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.08),0 1.125rem 3.75rem rgba(0,0,0,.55)!important}
html.app-nativo .hcar-grande{--hg-topo:calc(var(--app-status,env(safe-area-inset-top,0px)) + .5rem)}
/* 1.74.0 (Philippe, 05/10/2026, quinta rodada, C1 e C2): no iPhone a caixa que rola com -webkit-overflow-scrolling: touch
   (herdado do body) cria uma camada e prendia o cartão grande atrás do véu: "expande e se apaga". A peça marca as caixas
   que rolam em volta do cartão enquanto ele está grande (web/hub-carrossel.js, abrir). Fora do iPhone a propriedade não
   existe e a regra não faz nada. O cartão grande continua com o toque dele (é a caixa que rola o próprio conteúdo). */
.hcar-sem-camada{-webkit-overflow-scrolling:auto!important}
/* preso por um ancestral, o cartão sobe para a camada de cima do navegador (popover): o desenho de fábrica dela (borda,
   respiro, cor) só vale onde o cartão não diz nada (:where não pesa) */
:where(.hcar-grande[popover]){border:0;padding:0;color:inherit}
/* 1.74.0 (06/10/2026, segunda fase): o aviso que sobe para cima do cartão grande na camada de cima (HubCarrossel.porCima):
   sai o desenho de fábrica da camada (preso nos quatro lados, centrado, com borda, respiro e fundo); o do aviso continua
   valendo (:where não pesa) */
:where([data-hcar-por-cima][popover]){inset:auto;margin:0;border:0;padding:0;width:auto;height:auto;overflow:visible;color:inherit;background:transparent}
.hcar-grande::backdrop{background:transparent}
.hcar-avulso{padding:1.25rem;border-radius:1.5rem}
/* o topo do cartão grande: a alça (toque) e o X; fica preso no alto enquanto o conteúdo rola por baixo */
.hcar-grande-topo{position:sticky;top:calc(-1 * var(--hg-pt,0px));z-index:5;order:-99;flex:none;display:flex;align-items:center;justify-content:flex-end;min-height:2.25rem;touch-action:none;
  margin:calc(-1 * var(--hg-pt,0px)) calc(-1 * var(--hg-pr,0px)) .25rem calc(-1 * var(--hg-pl,0px));padding:var(--hg-pt,0px) var(--hg-pr,0px) 0 var(--hg-pl,0px);background:var(--vidro-solido,#FBF8F4);cursor:grab}
body.dark .hcar-grande-topo{background:var(--vidro-solido,#2A2420)}
.hcar-arrastando .hcar-grande-topo{cursor:grabbing}
.hcar-alca{position:absolute;left:50%;top:calc(var(--hg-pt,0px) / 2 + .25rem);transform:translateX(-50%);display:none;width:2.25rem;height:.3125rem}
.hcar-alca i{display:block;width:100%;height:100%;border-radius:.25rem;background:var(--folha-alca,rgba(60,60,67,.3))}
html.hub-toque .hcar-alca,html.app-nativo .hcar-alca{display:block}
.hcar-fechar{flex:none;display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;border-radius:50%;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);cursor:pointer}
.hcar-fechar svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
html.hub-toque .hcar-fechar{width:2.75rem;height:2.75rem}
html.hub-clique .hcar-fechar:hover{background:var(--fill2,rgba(58,42,30,.16))}
body.dark .hcar-fechar{background:rgba(255,255,255,.1);color:var(--label,#F3EDE6)}
/* com o cartão grande aberto a página de trás não rola */
html.hcar-aberto,html.hcar-aberto body{overscroll-behavior:none}
@media (min-width:761px){
  html:not(.app-nativo) .hcar-grande{--hg-largura:min(70rem,calc(100vw - 4rem));--hg-topo:1.5rem;left:calc((100vw - var(--hg-largura)) / 2)!important;width:var(--hg-largura)!important;height:auto!important;min-height:min(60dvh,calc(100dvh - 3rem))!important;max-height:calc(100dvh - 3rem)!important}
}
@media (prefers-reduced-motion:reduce){.hcar-mais{transition:none}.hcar-mais:active,.hcar-cartao>.hcar-mais:not(:disabled):active{transform:translateX(-50%)!important}.hcar-veu{transition:opacity .2s ease}}
/* 04/10/2026 (a dupla checagem): com "reduzir transparência" o sinal continuava com o desfoque (a regra de cima, .hcar-cartao>.hcar-mais, pesava mais que esta) */
@media (prefers-reduced-transparency:reduce){.hcar-mais,.hcar-cartao>.hcar-mais{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}body.dark .hcar-cartao>.hcar-mais{background:var(--surface,#22201E)}}
@media (prefers-contrast:more){.hcar-mais{box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)}.hcar-grande{box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)!important}}
/* conteúdo primeiro (B4): fora do cartão sobram no máximo 40 px. No modo expande ficam só os pontos (a contagem "3 de 17" é
   do leitor de tela) e, no toque, o alvo de 44 px dos pontos avança 8 px sobre o respiro de baixo do cartão */
.hcar-expande~.hcar-pe .hcar-contagem{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* 1.74.0 (Philippe, 04/10/2026, a dupla checagem): OS PONTOS COM A MESMA MEDIDA EM TODA TELA. A regra antiga puxava o pé
   8 px para cima com margem negativa, mas a faixa já tem margem negativa embaixo (a sangria da sombra) e, numa caixa
   comum, as duas margens se fundem: a regra não mexia em nada (44 px fora do cartão, B4 pede até 40) e cada tela pôs
   o próprio remendo (pontos de 32, 40 e 44 px de altura, a 32, 34, 36 e 38 px do cartão). Agora o pé começa no fim do
   cartão em qualquer caixa (margem zero: bloco, flex ou grade), ocupa 2,25 rem (36 px) na página e os pontos, com o
   alvo de toque inteiro (44 px), avançam 8 px sobre o respiro de baixo do cartão. É a medida do Dashboard e dos
   Relatórios do celular (web/dashboard-celular.js, web/relatorios.js); a conta da altura do cartão (alturaComBarra,
   web/hub-carrossel.js) reserva esses mesmos 36 px. As medidas são em px de propósito: o ponto é alvo de toque, não é
   texto; em rem, com o texto do aparelho em 130%, os pontos tomavam 47 px do cartão (B4 pede até 40). */
html.hub-toque .hcar-expande~.hcar-pe,.hcar-cel.hcar-expande~.hcar-pe{display:flow-root;position:relative;z-index:1;height:36px;margin-top:calc(0px - var(--hcar-pv,0px))}
html.hub-toque .hcar-expande~.hcar-pe .hcar-pontos,.hcar-cel.hcar-expande~.hcar-pe .hcar-pontos{margin-top:-8px}
html.hub-toque .hcar-expande~.hcar-pe .hcar-ponto,.hcar-cel.hcar-expande~.hcar-pe .hcar-ponto{height:44px;min-width:44px}
/* no computador o cartão do conteúdo primeiro tem a altura inteira da faixa (B5), em toda tela: cada folha repetia esta regra */
.hcar.hcar-expande.hcar-pc.hcar-tela:not(.hcar-agrupa)>.hcar-item{height:var(--hcar-altura,60vh)}

/* /paineis-carrossel.css */
/* 1.74.0 (Philippe, 03/10/2026): OS PAINÉIS EM CARROSSEL (web/paineis-carrossel.js sobre web/hub-carrossel.js).
   Financeiro, Avaliações e Sistema: a grade .dgrid vira uma faixa de cartões na altura da tela. Dashboard no computador:
   uma faixa só, na altura da tela, com as fichas dos assuntos no topo (segunda rodada: eram cinco fileiras empilhadas).
   Medidas de texto em rem com --dt. */
/* a faixa manda no encaixe (o encaixe vertical do celular, web/rolagem-celular.js, é da página empilhada) */
.dgrid.hcar>.dcard{scroll-snap-align:start!important;scroll-margin-top:0}
.dgrid.hcar-cel>.dcard{scroll-snap-align:center!important}
.dgrid.hcar>.dcard{grid-column:auto;content-visibility:visible;contain-intrinsic-size:auto}
/* computador: o cartão largo (tabela com muitas colunas) ocupa a largura de dois, sem passar da largura da faixa */
.dgrid.hcar-pc>.dcard.wide{flex-basis:calc(var(--hcar-w,26rem) * 1.75 + var(--hcar-vao,.75rem));max-width:100%}
.dgrid.hcar-pc>.dcard.wide:not(:has(table,.chartbox,.kpis,.qgrid,.sysgrid,.rlist2)){flex-basis:var(--hcar-w,26rem)}
/* 1.74.0 (Philippe, 04/10/2026, B1 e B4): Financeiro, Avaliações e Sistema em conteúdo primeiro (.pcp). O cabeçalho (o título
   grande, a linha de explicação, o seletor de loja e o botão Atualizar) saiu de cima dos cartões, no celular e no
   computador: o nome da tela está na fileira do topo e os controles estão na barra de baixo (web/paineis-carrossel.js).
   Ele continua no DOM, escondido: a folha lê a linha de explicação e o botão do topo aciona o Atualizar dele. */
.pcp>.dhead,.pcp>.hr-faixa{display:none}
/* 04/10/2026 (a dupla checagem): o título do cartão do carrossel tem o mesmo tamanho em toda tela (o título 3 da casa, 20 px
   na escala de 100%); aqui e no Dashboard ele era o de manchete (17 px), menor que o das outras telas */
/* 04/10/2026 (a dupla checagem): no cartão do computador (24 a 30 rem de largura) os quatro totais em fileira ficavam com
   135 px cada e o valor quebrava no meio do número ("R$ 35669,6" e "4" na linha de baixo); em dois por linha o valor cabe */
.pcp>.dgrid.hcar-pc>.dcard:not(.hcar-grande) .kpis.k4{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcp>.dgrid>.dcard .kpi .kv{overflow-wrap:normal;word-break:normal}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): no Sistema do computador o cartão tem 361 px e três quadros
   por linha davam 100 px cada: "Observação", "carregando" e "Desligado" saíam do quadro e o vizinho cobria o fim da
   palavra. Os quadros passam a caber pela largura (o mínimo acompanha o tamanho do texto do Hub): dois por linha no
   cartão estreito, um por linha com o texto ampliado, três no cartão largo e no cartão grande. */
.pcp>.dgrid.hcar-pc .dcard:not(.hcar-grande) .kpis.k3{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(11rem * var(--dt,1))),1fr))}
:is(.pcp,#ges)>.dgrid .hcar-cartao:not(.hcar-grande)>.dt{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25)}
/* a tela larga é da faixa (como no Dashboard): sem o limite de 1280 px da grade antiga cabem mais cartões lado a lado */
.ges.pcp{max-width:120rem}
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela  (eram três remendos aqui: a altura no computador, os pontos 18 px para cima e os 32 px devolvidos ao cartão) */
/* no computador o cartão com gráfico é coluna: o gráfico ocupa o que sobra (a altura é do JS), o resto aparece inteiro */
.dgrid.hcar-pc>.dcard>.chartbox>canvas{display:block}
/* a avaliação dentro do cartão: inteira (nome, nota, texto e fotos); a lista não rola, é repartida em cartões */
.pcp .dgrid.hcar>.dcard>.rlist2{max-height:none;overflow:visible}
/* o que é só do cartão grande (o campo da resposta) já não conta na medida que reparte a lista, antes mesmo de o corte marcar os cartões */
.pcp .dgrid.hcar>.dcard:not(.hcar-grande) [data-hcar-detalhe]{display:none}
/* celular: o cartão com gráfico é coluna; o gráfico vem logo depois do título e ocupa o que sobra (a altura é do JS) */
.dgrid.hcar-cel>.dcard:has(>.chartbox){display:flex;flex-direction:column}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.dcard:has(>.chartbox)>*`; sem o `:has()` antes do `>*` o navegador deixa
   de refazer o estilo da tela inteira a cada mexida (ver web/dashboard-celular.css). `flex:none` só age no cartão com
   gráfico, que é o único que vira coluna flexível. */
.dgrid.hcar-cel>.dcard.dcard>*{flex:none}
.dgrid.hcar-cel>.dcard:has(>.chartbox)>.dt{order:-3}
.dgrid.hcar-cel>.dcard:has(>.chartbox)>.chartbox{order:-2;margin-top:.25rem}
.dgrid.hcar-cel>.dcard:has(>.chartbox)>.legend,.dgrid.hcar-cel>.dcard:has(>.chartbox)>.cl{order:-1}
.dgrid.hcar-cel>.dcard:has(>.chartbox)>.legend{gap:.25rem .75rem;margin-top:.5rem}
.dgrid.hcar-cel>.dcard:has(>.chartbox)>.cl{margin-bottom:.75rem}

/* ---------- Dashboard no computador: uma faixa só, na altura da tela (#ges.pcar-uma) ----------
   "Mostrar o gráfico por completo [...] sem precisar de rolar para baixo [...] só rolando para o lado."
   A página não rola. 1.74.0 (Philippe, 04/10/2026, B1 e B4): nada fica acima da faixa. O título, os filtros de loja e de
   período, os seletores de canal e pagamento, a entrada do Cérebro e a barra dos assuntos saíram daqui: moram na barra
   de baixo e na fileira do topo (web/hub-tela.js, declarados em web/dashboard-celular.js; #ges.dcp esconde o cabeçalho,
   web/dashboard-celular.css). */
/* a tela larga é da faixa: sem o limite de 1280 px da grade antiga, cabem mais cartões lado a lado */
#ges.pcar-uma{max-width:120rem;display:grid;grid-template-columns:minmax(0,1fr);align-content:start}
#ges.pcar-uma>*{grid-column:1/-1;min-width:0}

/* A faixa é feita de colunas (.pcar-col), cada uma com a altura que sobra da tela (a conta é de web/hub-carrossel.js).
   Uma coluna leva um cartão, ou dois ou três pequenos do mesmo assunto, um embaixo do outro (quem decide é o JS, pela
   altura de verdade de cada cartão: --pcar-n). O cartão com gráfico fica com a sobra da coluna (--pcar-cresce); o que
   não couber rola por dentro do cartão. A coluna não rola nem corta: a sombra do cartão aparece inteira. */
#ges.pcar-uma>.dgrid.pcar-faixa>.pcar-col{display:flex;flex-direction:column;gap:var(--hcar-vao,.75rem);height:var(--hcar-altura,60vh);max-height:var(--hcar-altura,60vh);overflow:visible}
#ges.pcar-uma>.dgrid.pcar-faixa>.pcar-col.pcar-col-larga{flex-basis:calc(var(--hcar-w,26rem) * 1.75 + var(--hcar-vao,.75rem));max-width:100%}
#ges.pcar-uma>.dgrid.pcar-faixa>.pcar-col>.dcard{flex:var(--pcar-cresce,1) 1 var(--pcar-n,0px);min-height:0;margin:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scroll-snap-align:none;content-visibility:visible;contain-intrinsic-size:auto}
/* os quadros de número: com valor comprido ("R$ 10812,49" tem 11 caracteres; o index marca com data-longo), quatro por
   linha só cabem no cartão largo de tela grande. No cartão mais estreito (a largura é medida pelo JS) ficam dois por
   linha, e no cartão simples um por linha, como no celular: o número não quebra no meio. */
#ges.pcar-uma .dcard.pcar-ate42 .kpis.k4:has(>.kpi>.kv[data-longo]){grid-template-columns:repeat(2,minmax(0,1fr))}
#ges.pcar-uma .dcard.pcar-ate30 .kpis:not(.k2):has(>.kpi>.kv[data-longo]){grid-template-columns:repeat(2,minmax(0,1fr))}
/* a medida: por um instante (sem pintar) cada cartão fica com a altura do conteúdo inteiro */
#ges.pcar-uma>.dgrid.pcar-medindo>.pcar-col{height:auto;max-height:none;align-self:flex-start}
#ges.pcar-uma>.dgrid.pcar-medindo>.pcar-col>.dcard{flex:none;height:auto;max-height:none;overflow:visible}
/* o desenho do gráfico é um bloco desde o primeiro instante (antes de a biblioteca de gráficos chegar ele é texto em
   linha, e a linha deixava uns pixels sobrando embaixo da caixa) */
#ges.pcar-uma .chartbox>canvas{display:block}
/* cartão com gráfico: coluna em que o gráfico ocupa o que sobra depois do resto, e por isso aparece inteiro */
#ges.pcar-uma .dcard.pcar-g{display:flex;flex-direction:column}
#ges.pcar-uma .dcard.pcar-g>*{flex:none}
#ges.pcar-uma .dcard.pcar-g>.chartbox:not(.svg){flex:1 1 0;min-height:9rem;max-height:34rem;height:auto!important}
/* dois gráficos no cartão largo: lado a lado, cada um com a legenda e a nota dele */
#ges.pcar-uma .dcard.pcar-g>.pcar-grafs{flex:1 1 0;min-height:0;max-height:38rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
#ges.pcar-uma .pcar-graf{display:flex;flex-direction:column;min-width:0;min-height:0}
#ges.pcar-uma .pcar-graf>*{flex:none}
#ges.pcar-uma .pcar-graf>.chartbox:not(.svg){flex:1 1 0;min-height:9rem;height:auto!important}
/* o resto do cartão não coube: o gráfico passa para cima, com a legenda e a nota, e ocupa a primeira tela do cartão (a
   altura vem do JS em --pcar-alt); o resto rola por dentro, como no celular */
#ges.pcar-uma .dcard.pcar-gp>.dt:first-child{order:-3}
#ges.pcar-uma .dcard.pcar-gp>.chartbox,#ges.pcar-uma .dcard.pcar-gp>.pcar-grafs{order:-2}
#ges.pcar-uma .dcard.pcar-gp>.legend,#ges.pcar-uma .dcard.pcar-gp>.cl{order:-1}
#ges.pcar-uma .dcard.pcar-gp>.cl{margin-bottom:.75rem}
#ges.pcar-uma .dcard.pcar-gp>.chartbox:not(.svg){flex:none;max-height:none;height:var(--pcar-alt,13rem)!important}
#ges.pcar-uma .dcard.pcar-gp>.pcar-grafs{flex:none;max-height:none;height:var(--pcar-alt,18rem)}

/* ---------- a tabela que não cabe na largura do cartão vira linhas empilhadas (.tabwrap.pcar-pilha) ----------
   Vale no celular e no computador: quando a tabela é mais larga que o cartão (a conta é do JS), cada linha vira um
   bloco. Em cima, o nome da linha e o número principal (a coluna .cur) com o rótulo dele; embaixo, o resto em duas
   colunas, cada número com o rótulo da coluna (data-th). O cabeçalho continua na tabela para o leitor de tela. */
.tabwrap.pcar-pilha{overflow-x:hidden}
.tabwrap.pcar-pilha>table.ctab,.tabwrap.pcar-pilha>table.ctab>tbody{display:block;width:100%}
.tabwrap.pcar-pilha>table.ctab>thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tabwrap.pcar-pilha>table.ctab>tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem .875rem;align-items:start;padding:.625rem 0;border-bottom:1px solid var(--sep,var(--hair,rgba(58,42,30,.14)))}
.tabwrap.pcar-pilha>table.ctab>tbody>tr:last-child{border-bottom:0}
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td{display:block;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td:first-child{grid-column:1/-1;font-weight:600}
.tabwrap.pcar-pilha>table.ctab>tbody>tr.pcar-valor>td:first-child{grid-column:1;grid-row:1}
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td.cur:not(:first-child){grid-column:2;grid-row:1;text-align:right}
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td[data-th]::before{content:attr(data-th);display:block;margin-bottom:.0625rem;font-size:max(.6875rem, calc(.6875rem * var(--dt,1)));font-weight:600;line-height:1.25;letter-spacing:.01em;color:var(--label2,var(--sub,#6B5A4C))}
/* sexta fase (revisão final G1): em 320 px o rótulo quebrava no meio ("A" numa linha, "receber R$ -15,80" na outra) e, com
   o texto do Hub ampliado, o valor quebrava no meio do número ("R$ -15," e "80"). O rótulo é um bloco inteiro e o valor
   não parte: quando os dois não cabem lado a lado, o valor desce inteiro para a linha de baixo. */
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td.cur[data-th]:not(:first-child){overflow-wrap:normal;word-break:normal}
.tabwrap.pcar-pilha>table.ctab>tbody>tr>td.cur[data-th]:not(:first-child)::before{display:inline-block;margin:0 .375rem 0 0;white-space:nowrap}
.tabwrap.pcar-pilha>table.ctab>tbody>tr.tot{padding:.625rem .5rem;border-radius:.625rem;background:var(--fill2,rgba(90,65,45,.06))}
.tabwrap.pcar-pilha>table.ctab>tbody>tr.tot>td{background:transparent}

/* ---------- 1.74.0 (defeito D17 da auditoria de interface): o nome do iFood como texto ----------
   Nas tabelas, o nome do iFood usava o vermelho da marca (#EA1D2C) como cor de texto: 4,46:1 no branco e 3,8:1 no
   cartão escuro (o mínimo para texto é 4,5:1). Nas tabelas do Dashboard e do Financeiro o texto usa a versão "tinta" do
   vermelho (5,5:1 no claro, 6:1 no escuro), como a 99Food já fazia com --nine-text. Os gráficos continuam com a cor da
   marca. */
:is(#ges,#fin) table.ctab{--ifood:#D01326}
body.dark :is(#ges,#fin) table.ctab{--ifood:#FF6B72}

/* /barra-folha.css */
/* 1.74.0 (02/10/2026): BARRA INFERIOR COM FOLHA ANEXADA (web/barra-folha.js, HubBarraFolha).
   O feitio da barra de abas do iOS (o app Buscar): uma CÁPSULA de vidro flutuante no pé da tela, com margem dos lados e
   do rodapé, e a LENTE, a pastilha de vidro mais clara sob o item escolhido, que corre até o outro item numa mola e,
   arrastada para o lado, cresce um pouco e segue o dedo. Quando um botão abre a folha, a mesma superfície de vidro cresce
   para cima (a janela, com a alça) e a cápsula flutua sobre ela, como o cartão de pessoas do Buscar.
   A altura da janela e a posição e a forma da lente são pintadas pelo JS; aqui não há transição delas, porque a
   mola do JS é quem anima (interrompível, com a velocidade do dedo).
   1.74.0 (Philippe, 03/10/2026): a lente virou LUPA de vidro (iOS 26): arrastada, cresce além da cápsula, amplia os
   itens que estão por baixo, entorta o conteúdo no aro e estica com a velocidade. Por quadro o JS só escreve transform
   e opacity; tudo o que dá o desenho do vidro (aro, brilho, sombra) são camadas paradas daqui.
   Vale no Hub (web/index.html) e na vitrine (web/delivery/), por isso só usa cores próprias (--bf-*), com padrão claro
   e escuro (body.dark no Hub). Medidas em rem (tests/relative-typography) e alvos de 44 px (HIG). Vidro só nesta camada
   funcional (HIG A1.4); nenhuma superfície translúcida clara empilhada noutra: a cápsula sobre a folha fica opaca. */
:root{--bf-barra:min(4rem,72px);--bf-fundo:rgba(255,255,255,.84);--bf-capsula:rgba(255,255,255,.66);--bf-lente:rgba(120,104,92,.13);--bf-lupa:linear-gradient(180deg,#EEF1F6,#DEE3EC);--bf-lupa-centro:linear-gradient(180deg,#FFFFFF,#F6F7FA);--bf-lupa-sombra:0 .625rem 1.5rem rgba(40,25,10,.24),0 .125rem .375rem rgba(40,25,10,.14);--bf-lupa-fio:rgba(255,255,255,.95);--bf-borda:rgba(255,255,255,.9);--bf-texto:#1C1C1E;--bf-sub:#3A2A1E;--bf-realce:#2F7CF6;--bf-alca:rgba(60,60,67,.3);--bf-sombra:0 -10px 40px rgba(70,45,25,.12);--bf-sombra-capsula:0 .5rem 2rem rgba(60,40,20,.16),0 .125rem .5rem rgba(60,40,20,.08);--bf-raio:1.75rem;--bf-largura:100%;--bf-margem:.75rem;--bf-rodape:env(safe-area-inset-bottom,0px);--bf-visivel:0px}
body.dark{--bf-fundo:rgba(40,32,26,.86);--bf-capsula:rgba(58,48,40,.72);--bf-lente:rgba(255,255,255,.16);--bf-lupa:linear-gradient(180deg,#5B4E44,#3F352E);--bf-lupa-centro:linear-gradient(180deg,#54483F,#463B34);--bf-lupa-sombra:0 .625rem 1.5rem rgba(0,0,0,.55),0 .125rem .375rem rgba(0,0,0,.4);--bf-lupa-fio:rgba(255,255,255,.34);--bf-borda:rgba(255,255,255,.12);--bf-texto:#F3EDE6;--bf-sub:#E6DCD2;--bf-alca:rgba(235,235,245,.3);--bf-sombra:0 -12px 44px rgba(0,0,0,.5);--bf-sombra-capsula:0 .5rem 2rem rgba(0,0,0,.45)}
html.app-nativo{--bf-rodape:var(--rodape-app,env(safe-area-inset-bottom,0px))}
/* 1.74.0 (Philippe, 03/10/2026, defeito D17 da auditoria de interface): o azul de realce (#2F7CF6) dava 3,9:1 com o
   texto branco da opção escolhida das folhas e com o rótulo do item aceso sobre o vidro claro (o mínimo para texto é
   4,5:1). No claro o realce passa a ser o azul do botão principal do Hub (#0062B8: 6,1:1 com o branco, nos dois
   sentidos). No escuro o rótulo aceso usa um azul claro (7:1 sobre o vidro escuro) e a opção escolhida tem um fundo
   próprio (--bf-realce-fundo), em que o texto branco dá 4,7:1; sem ele (o claro, e a vitrine, que troca o realce pelo
   verde dela em web/delivery/storefront.css) o fundo da opção escolhida é o próprio realce. */
:root{--bf-realce:#0062B8}
body.dark{--bf-realce:#6CB4FF;--bf-realce-fundo:#1A73D9}

/* a peça inteira: fixa no pé, sem fundo próprio (fechada, só a cápsula é tocável; aberta, o vidro da folha cobre tudo) */
.bf{position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0 auto;width:100%;max-width:var(--bf-largura);color:var(--bf-texto);display:flex;flex-direction:column;touch-action:none;font-family:inherit;pointer-events:none}
.bf>*{pointer-events:auto}
.bf.bf-aberta{pointer-events:auto}
/* o vidro da folha: nasce da barra e cresce para cima; vai até o rodapé, por trás da cápsula */
.bf::before{content:"";position:absolute;inset:0;background:var(--bf-fundo);-webkit-backdrop-filter:blur(1.25rem) saturate(180%);backdrop-filter:blur(1.25rem) saturate(180%);border:1px solid var(--bf-borda);border-bottom:0;border-radius:var(--bf-raio) var(--bf-raio) 0 0;box-shadow:var(--bf-sombra),0 -2px 0 rgba(255,255,255,.35) inset;opacity:0;transition:opacity .18s ease-out;pointer-events:none}
.bf.bf-aberta::before{opacity:1}
/* a janela: altura em px pelo JS; o conteúdo rola dentro da folha, nunca na janela */
.bf-janela{height:0;overflow:hidden;position:relative}
.bf-folha{position:absolute;inset:0;display:flex;flex-direction:column;touch-action:pan-y}
.bf-alca{flex:none;height:1.75rem;min-height:1.75rem;display:grid;place-items:center;cursor:grab;touch-action:none}
.bf-alca span{display:block;width:2.25rem;height:.3125rem;border-radius:.25rem;background:var(--bf-alca)}
.bf-arrastando .bf-alca{cursor:grabbing}
.bf-conteudo{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 1rem 1rem;outline:none;touch-action:pan-y}
.bf-conteudo.bf-troca{animation:bf-troca .22s ease-out}
@keyframes bf-troca{from{opacity:.35;transform:translateY(.375rem)}to{opacity:1;transform:none}}
/* a cápsula: vidro, cantos inteiros, margem dos lados e do rodapé; sobre a folha aberta ela fica opaca (sem vidro em vidro) */
.bf-barra{position:relative;flex:none;display:flex;align-items:stretch;justify-content:space-evenly;gap:0;min-height:var(--bf-barra);margin:.5rem var(--bf-margem) calc(var(--bf-rodape) + .5rem);padding:.25rem;border-radius:999px;
  background:var(--bf-capsula);-webkit-backdrop-filter:blur(1.5rem) saturate(180%);backdrop-filter:blur(1.5rem) saturate(180%);border:1px solid var(--bf-borda);box-shadow:var(--bf-sombra-capsula),inset 0 1px 0 rgba(255,255,255,.75);
  transition:background-color .18s ease-out;isolation:isolate;overscroll-behavior:none}
.bf.bf-aberta .bf-barra{background:var(--bf-fundo);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 .25rem 1rem rgba(60,40,20,.1),inset 0 1px 0 rgba(255,255,255,.6)}
body.dark .bf.bf-aberta .bf-barra{background:rgba(58,48,40,.96)}
/* a lente: em repouso é a PASTILHA sob o item escolhido (por baixo dos itens); a posição e a forma vêm do JS, só em
   transform. Viva (apertada, arrastada ou correndo: classe bf-lente-viva na raiz) ela sobe acima dos itens e mostra a
   LUPA: o vidro que cobre os itens de verdade, a cópia ampliada da fileira no centro, a cópia refratada no aro, o brilho
   especular e a sombra funda. A lupa inteira aparece e some numa opacidade só (pelo JS, conforme a elevação). */
.bf-lente{position:absolute;top:.25rem;bottom:.25rem;left:0;width:0;z-index:0;border-radius:999px;background:var(--bf-lente);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 0 0 .5px rgba(255,255,255,.35);opacity:0;transform-origin:50% 50%;transition:opacity .16s ease-out;pointer-events:none}
.bf-lente.bf-lente-on{opacity:1}
body.dark .bf-lente{box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.bf-lente-viva .bf-lente{z-index:2;will-change:transform}
/* as cópias e o brilho andam em camadas próprias só enquanto a lente vive (sem isto cada quadro repintava a fileira) */
.bf-lente-viva .bf-lupa-fila,.bf-lente-viva .bf-lupa-brilho{will-change:transform}
.bf-lupa{position:absolute;inset:0;border-radius:inherit;opacity:0;visibility:hidden;pointer-events:none}
.bf-lente-viva .bf-lupa{visibility:visible}
.bf-lupa-vidro{position:absolute;inset:0;border-radius:inherit;background:var(--bf-lupa);box-shadow:var(--bf-lupa-sombra)}
/* isolation e translateZ(0): no Safari um filho em camada própria escapava do recorte arredondado do pai */
.bf-lupa-borda,.bf-lupa-centro{position:absolute;overflow:hidden;border-radius:999px;isolation:isolate;transform:translateZ(0)}
.bf-lupa-borda{inset:0}
.bf-lupa-centro{inset:.3125rem;background:var(--bf-lupa-centro);box-shadow:0 0 .25rem rgba(40,60,120,.14)}
.bf-lupa-fila{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0}
/* o aro não é para ler: é o conteúdo de fora entortado pela borda do vidro (um pouco desfocado e mais claro) */
.bf-lupa-borda .bf-lupa-fila{opacity:.45;filter:blur(.07rem)}
/* o brilho: a luz batendo em cima, o reflexo embaixo e o fio claro da borda (anel em gradiente, recortado por máscara) */
.bf-lupa-brilho{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(70% 60% at 28% 0%,rgba(255,255,255,.5),rgba(255,255,255,0) 70%),linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 42%,rgba(255,255,255,0) 78%,rgba(255,255,255,.2))}
.bf-lupa-brilho::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:.09375rem;background:linear-gradient(125deg,var(--bf-lupa-fio),rgba(255,255,255,.18) 32%,rgba(255,255,255,.06) 62%,var(--bf-lupa-fio));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
body.dark .bf-lupa-brilho{background:radial-gradient(70% 60% at 28% 0%,rgba(255,255,255,.16),rgba(255,255,255,0) 70%),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 42%)}
/* a cópia dos itens dentro da lupa: o mesmo desenho do botão, na posição medida do botão de verdade (px pelo JS) */
.bf-ci{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1875rem;padding:.375rem .25rem;color:var(--bf-sub);font:inherit;white-space:nowrap}
.bf-ci.bf-sob{color:var(--bf-realce)}
.bf-ci .bf-rotulo{max-width:var(--bf-ci-rotulo,100%)}
/* os itens: ícone em cima e rótulo embaixo, 44 px no mínimo; o escolhido em azul, os outros na cor do texto */
.bf-item{position:relative;z-index:1;flex:1 1 0;min-width:0;min-height:2.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1875rem;
  padding:.375rem .25rem;border:0;border-radius:999px;background:transparent;color:var(--bf-sub);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;
  transition:color .15s ease-out,transform .12s ease-out}
/* o ícone não recebe o toque: uma imagem (o logo da loja na vitrine) arrastada pelo navegador cancelava o gesto da lente */
.bf-item>*{pointer-events:none}.bf-item img{-webkit-user-drag:none}.bf-barra{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.bf-item:active{transform:scale(.94)}
.bf-lente-arrastando .bf-item:active,.bf-lente-viva .bf-item:active{transform:none}
.bf-item.on,.bf-item[aria-expanded="true"],.bf-item.bf-sob{color:var(--bf-realce)}
.bf-lente-arrastando .bf-item.on:not(.bf-sob){color:var(--bf-sub)}
/* com a lupa viva o item de verdade sob a lente está coberto por ela: não troca de cor nem de tamanho ali embaixo (era
   uma repintura da barra a cada item cruzado, sem ninguém ver); quem acende é a cópia dentro da lente */
.bf-lente-viva .bf-item,.bf-lente-viva .bf-item .bf-icone{transition:none}
.bf-lente-viva .bf-item.bf-sob:not(.on){color:var(--bf-sub)}
.bf-item:focus-visible{outline:.1875rem solid var(--bf-realce);outline-offset:-.125rem}
.bf-icone{display:grid;place-items:center;width:min(1.625rem,30px);height:min(1.625rem,30px);font-size:1.375rem;line-height:1;transition:transform .15s ease-out}
.bf:not(.bf-lente-viva) .bf-item.bf-sob .bf-icone{transform:scale(1.06)}
.bf-icone svg{width:min(1.5rem,28px);height:min(1.5rem,28px);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bf-rotulo{font-size:max(.6875rem, calc(.6875rem * var(--dt,1)));line-height:1.15;font-weight:600;letter-spacing:.005em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bf-badge{position:absolute;top:.25rem;left:calc(50% + .5rem);min-width:1.0625rem;height:1.0625rem;padding:0 .3125rem;border-radius:1rem;background:#FF3B30;color:#fff;font-size:max(.6875rem, calc(.625rem * var(--dt,1)));line-height:1.0625rem;font-weight:700;text-align:center;box-shadow:0 0 0 2px var(--bf-capsula)}
.bf-badge[hidden]{display:none}
/* o conteúdo de uma folha: título pequeno, grupos e botões de escolha (os mesmos que viviam nos filtros) */
.bf-titulo{margin:0 0 .75rem;font-size:calc(1.0625rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.2}
.bf-grupo{margin:0 0 1rem}
.bf-grupo>label,.bf-grupo>.bf-legenda{display:block;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:600;color:var(--bf-sub);opacity:.8;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}
.bf-opcoes{display:flex;flex-wrap:wrap;gap:.5rem}
.bf-opcao{min-height:2.75rem;padding:.5rem .9375rem;border-radius:1rem;border:1px solid rgba(127,127,127,.18);background:rgba(127,127,127,.08);color:inherit;font:inherit;font-size:calc(.9375rem * var(--dt,1));font-weight:600;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out,transform .1s ease-out}
.bf-opcao:active{transform:scale(.97)}
.bf-opcao.on,.bf-opcao[aria-pressed="true"]{background:var(--bf-realce-fundo,var(--bf-realce));border-color:var(--bf-realce-fundo,var(--bf-realce));color:#fff}
.bf-opcao:focus-visible{outline:.1875rem solid var(--bf-realce);outline-offset:.125rem}
.bf-lista{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.bf-lista button{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem .75rem;border:0;border-radius:.875rem;background:transparent;color:inherit;font:inherit;font-size:calc(1rem * var(--dt,1));text-align:left;cursor:pointer}
.bf-lista button:active{background:rgba(127,127,127,.12)}
.bf-lista button.on,.bf-lista button[aria-current="true"]{background:rgba(47,124,246,.12);color:var(--bf-realce);font-weight:600}
.bf-lista button .bf-check{margin-left:auto;font-weight:700}
.bf-conteudo select,.bf-conteudo input[type="date"]{width:100%;min-height:2.75rem;border-radius:.875rem;border:1px solid rgba(127,127,127,.22);background:rgba(255,255,255,.7);color:inherit;font:inherit;font-size:calc(1rem * var(--dt,1));padding:.5rem .75rem}
body.dark .bf-conteudo select,body.dark .bf-conteudo input[type="date"]{background:rgba(255,255,255,.08)}
.bf-conteudo .bf-vazio{color:var(--bf-sub);opacity:.8;font-size:calc(.9375rem * var(--dt,1));padding:.5rem 0}
/* quem hospeda a barra reserva o pé da tela para ela (a folha fica por cima do conteúdo, que continua tocável) */
html.tem-barra-folha .bf-reserva{padding-bottom:calc(var(--bf-barra) + var(--bf-rodape) + 2rem)}
/* acessibilidade: sem transparência, superfície sólida; mais contraste, borda firme; menos movimento, sem a troca animada */
@media (prefers-reduced-transparency:reduce){.bf::before,.bf-barra{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}body.dark .bf::before,body.dark .bf-barra{background:#28201A}.bf-lente{background:rgba(47,124,246,.14)}
  /* a lupa vira uma chapa sólida com borda: sem aro refratado, sem brilho */
  .bf-lupa-vidro,.bf-lupa-centro{background:#fff;box-shadow:none}.bf-lupa-vidro{box-shadow:0 0 0 .125rem var(--bf-realce),var(--bf-lupa-sombra)}.bf-lupa-borda,.bf-lupa-brilho{display:none}body.dark .bf-lupa-vidro,body.dark .bf-lupa-centro{background:#3A302A}}
@media (prefers-contrast:more){.bf::before,.bf-barra{border-color:currentColor;background:#fff}body.dark .bf::before,body.dark .bf-barra{background:#1E1814}.bf-opcao{border-color:currentColor}.bf-lente{outline:1px solid currentColor}
  .bf-lupa-vidro,.bf-lupa-centro{background:#fff;box-shadow:none}.bf-lupa-vidro{box-shadow:0 0 0 .125rem currentColor}.bf-lupa-borda,.bf-lupa-brilho{display:none}body.dark .bf-lupa-vidro,body.dark .bf-lupa-centro{background:#1E1814}}
@keyframes bf-troca-fade{from{opacity:.4}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.bf-conteudo.bf-troca{animation:bf-troca-fade .2s ease}.bf-item,.bf-opcao,.bf-icone,.bf-lente{transition:none}.bf-lente-viva .bf-lente,.bf-lente-viva .bf-lupa-fila,.bf-lente-viva .bf-lupa-brilho{will-change:auto}.bf-item:active,.bf-opcao:active{transform:none}}
/* no computador largo a peça inteira vira uma cápsula centrada (a mesma sensação do dock da vitrine) */
@media (min-width:761px){.bf{max-width:min(var(--bf-largura),44rem);bottom:.75rem}.bf::before{border-radius:var(--bf-raio);border-bottom:1px solid var(--bf-borda)}.bf-barra{margin-bottom:.5rem}html.app-nativo .bf{bottom:calc(var(--bf-rodape) + .75rem)}}

/* /dashboard-celular.css */
/* 1.74.0 (02/10/2026): DASHBOARD NO CELULAR, CONTEÚDO PRIMEIRO (web/dashboard-celular.js).
   #ges.dcel marca o Dashboard montado no celular/app: os filtros do topo somem (vivem na barra inferior com folha,
   web/barra-folha.css), uma linha de fichas pequenas no topo diz o que está escolhido, e a grade vira um carrossel com
   um cartão por tela, que rola por dentro. Medidas em rem (tests/relative-typography). */
#ges.dcel .dhead .dfilters,#ges.dcel [data-report-filters],#ges.dcel [data-report-note]{display:none}
/* 02/10 à noite: o aviso de item pausado e a faixa do Cérebro saem do fluxo (viram sino e Cérebro na barra de cima, com a
   notificação que desce; web/avisos-topo.js). Ficam no DOM, escondidos, porque o sino lê o aviso e o Cérebro observa a faixa. */
#ges.dcel .dalert,#ges.dcel .hr-faixa{display:none}
/* 1.74.0 (Philippe, 04/10/2026, B1 e B4): "Você vai eliminar qualquer filtro ou menu superior (os que ficam acima dos
   cards do carrossel)". O cabeçalho (título grande e a linha das lojas e do dia) e as fichas do topo saíram de cima dos
   cartões, no celular e no computador (#ges.dcp, a classe do Dashboard do computador em conteúdo primeiro): o nome da
   tela está na fileira do topo, e loja, período e filtros estão na barra de baixo. O cabeçalho fica no DOM, escondido
   (os filtros de web/dashboard-filters.js se prendem a ele, e a folha Período lê a linha de quando foi atualizado). */
#ges.dcel .dhead,#ges.dcel .dalerts,#ges.dcp>.dhead,#ges.dcp>.dalerts,#ges.dcp>[data-report-filters],#ges.dcp>[data-report-note]{display:none}
.dcel-sub{margin:0}
.dcel-assunto>.bf-opcao{margin-bottom:.375rem}
/* o carrossel: um cartão por tela, centrado, com encaixe; a página não rola, o cartão rola por dentro */
.dgrid.dcarrossel{display:flex;gap:.75rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -1rem;padding:0 1rem;scroll-padding:0 1rem;outline:none;touch-action:pan-x pan-y}
.dgrid.dcarrossel::-webkit-scrollbar{display:none}
.dgrid.dcarrossel:focus-visible{outline:.1875rem solid var(--blue);outline-offset:-.1875rem;border-radius:1rem}
.dgrid.dcarrossel>.dcard,.dgrid.dcarrossel>.dcard.wide{flex:0 0 100%;min-width:0;grid-column:auto;scroll-snap-align:center;scroll-snap-stop:always;height:var(--dcel-altura,60vh);max-height:var(--dcel-altura,60vh);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;content-visibility:visible;contain-intrinsic-size:auto}
/* o cartão com gráfico: o gráfico é a informação principal e fica inteiro na tela, logo abaixo do título, com a legenda
   e a nota; o resto do cartão (números, tabelas) vem depois e rola por dentro. A altura do gráfico é calculada pelo JS
   (ajustarGraficos: o que sobra no cartão depois do título, da legenda e da nota), por isso não há altura aqui. */
.dgrid.dcarrossel>.dcard:has(.chartbox){display:flex;flex-direction:column}
/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.dcard:has(.chartbox)>*`. Um `:has()` seguido de `>*` faz o navegador
   refazer o estilo da TELA INTEIRA a cada botão ligado ou desligado e a cada elemento que entra ou sai (medido: 1.556
   elementos por mexida, contra 526 sem ele; docs/DESEMPENHO-2026-10-03.md). `flex:none` só age em filho de cartão que é
   coluna flexível, e só o cartão com gráfico é; nos outros a regra não faz nada. `.dcard.dcard` mantém o mesmo peso. */
.dgrid.dcarrossel>.dcard.dcard>*{flex:none}
.dgrid.dcarrossel>.dcard:has(.chartbox)>.dt{order:-3}
.dgrid.dcarrossel>.dcard:has(.chartbox)>.chartbox{order:-2;margin-top:.25rem}
.dgrid.dcarrossel>.dcard:has(.chartbox)>.legend,.dgrid.dcarrossel>.dcard:has(.chartbox)>.cl{order:-1}
.dgrid.dcarrossel>.dcard:has(.chartbox)>.legend{gap:.25rem .75rem;margin-top:.5rem}
.dgrid.dcarrossel>.dcard:has(.chartbox)>.cl{margin-bottom:.75rem}
/* a espiada: os cartões deslizam um pouco para a esquerda e voltam (uma vez por abertura; nunca com "reduzir movimento") */
.dgrid.dcarrossel.dcel-espiar>.dcard{animation:dcel-espiada 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes dcel-espiada{0%{transform:none}38%{transform:translateX(-2.25rem)}100%{transform:none}}
/* pontos e contagem embaixo do carrossel */
.ddots{display:flex;justify-content:safe center;gap:0;margin:.25rem 0 0;overflow-x:auto;scrollbar-width:none}
.ddots::-webkit-scrollbar{display:none}
.ddots button{flex:none;min-width:1.75rem;min-height:1.75rem;padding:.5rem .3125rem;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}
/* 04/10/2026 (a dupla checagem): a mesma cor dos pontos do HubCarrossel (web/hub-carrossel.css) */
.ddots i{display:block;width:.375rem;height:.375rem;border-radius:.5rem;background:rgba(58,42,30,.28);transition:width .2s ease-out,background-color .2s ease-out}
body.dark .ddots i{background:rgba(255,255,255,.32)}
.ddots button[aria-current="true"] i{width:1.25rem;background:var(--text)}
/* no toque o ponto tem alvo de 44 px (web/interface-1740.css): a fileira avança 8 px sobre o respiro de baixo do cartão, e
   fora do cartão sobram 36 px (B4: no máximo 40) */
/* 04/10/2026 (a dupla checagem): em px, como na peça: o ponto é alvo de toque (44 px) e não cresce com o texto do aparelho */
html.hub-toque #ges.dcel .ddots{position:relative;z-index:1;margin-top:-8px}
html.hub-toque #ges.dcel .ddots button{min-height:44px;height:44px;min-width:44px}
/* a contagem "3 de 18: título" fica só para o leitor de tela: fora do cartão sobram os pontos (B4: no máximo 40 px) */
.dcontagem{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#ges.dcel{padding-bottom:.25rem}
#ges.dcel.dcel-rola{padding-bottom:calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + .5rem)}
/* dentro da folha Filtros, os seletores de web/dashboard-filters.js empilhados */
.dcel-filtros .dfilters{display:grid;gap:.75rem;margin:0}
.dcel-filtros .rel-filtro{display:grid;gap:.375rem;margin:0}
.dcel-filtros .rel-filtro>span{font-size:max(.6875rem, calc(.75rem * var(--dt)));font-weight:600;color:var(--bf-sub);text-transform:uppercase;letter-spacing:.04em}
.dcel-num{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:.5rem;background:rgba(127,127,127,.12);font-size:max(.6875rem, calc(.75rem * var(--dt)));font-weight:700;flex:none}
@media (prefers-reduced-motion:reduce){.dgrid.dcarrossel{scroll-behavior:auto}.ddots i{transition:none}.dgrid.dcarrossel.dcel-espiar>.dcard{animation:none}}

/* /avisos-topo.css */
/* 1.74.0 (Philippe, 02/10/2026): avisos e recomendações na barra de cima, com a notificação que desce
   (web/avisos-topo.js, HubAvisosTopo). O sino e o Cérebro são botões redondos da barra (a mesma classe .icon dos
   vizinhos), com a contagem em vermelho; o painel do sino é vidro pendurado na barra; a notificação é um cartão que
   desce do topo, com o feitio da Ilha Dinâmica do iPhone e, desde 05/10/2026, em vidro claro (ver mais abaixo). Tokens do Hub, claro e escuro, alvos de 44 px, medidas em rem. */
.at-btn{position:relative}
.at-btn[hidden]{display:none!important}
.at-btn svg{width:1.375rem;height:1.375rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.at-btn.at-tem{color:var(--ink-orange,#8a4b00)}
#at-cerebro.at-tem{color:var(--ink-blue,var(--blue,#2F7CF6))}
.at-badge{position:absolute;top:-.125rem;right:-.125rem;min-width:1.125rem;height:1.125rem;padding:0 .3125rem;border-radius:1rem;background:#FF3B30;color:#fff;font-size:max(.6875rem, calc(.6875rem * var(--dt,1)));line-height:1.125rem;font-weight:700;text-align:center;box-shadow:0 0 0 2px rgba(255,255,255,.9);pointer-events:none}
body.dark .at-badge{box-shadow:0 0 0 2px rgba(40,32,26,.9)}
.at-badge[hidden]{display:none}
/* o painel do sino: pendurado na barra de cima, à direita */
.at-painel{position:fixed;z-index:70;top:calc(var(--topo-y,8px) + var(--topo-h,44px) + 8px);right:var(--topo-lado,16px);left:var(--topo-lado,16px);max-width:26rem;margin-left:auto;padding:1rem;border-radius:1.25rem;
  background:var(--menu-vidro,rgba(252,250,247,.94));color:var(--label,#1C1C1E);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);
  box-shadow:0 2px 6px rgba(40,25,12,.10),0 18px 46px rgba(40,25,12,.22);transform-origin:100% 0;animation:at-painel-abre .2s ease-out;max-height:calc(100dvh - var(--topo-y,8px) - var(--topo-h,44px) - 24px);overflow:auto}
@keyframes at-painel-abre{from{opacity:0;transform:scale(.96) translateY(-.25rem)}to{opacity:1;transform:none}}
.at-painel-titulo{margin:0 0 .75rem;font-size:calc(1.0625rem * var(--dt,1));font-weight:700;letter-spacing:-.01em}
.at-lista{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.at-item{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem;border-radius:1rem;background:rgba(127,127,127,.08)}
.at-vazio{margin:0;color:var(--label2,#5d4f44);font-size:calc(.9375rem * var(--dt,1))}
.at-icone{flex:none;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.75rem}
.at-icone svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.at-icone-aviso{background:color-mix(in srgb,var(--sys-orange,#ff9500) 20%,transparent);color:var(--ink-orange,#8a4b00)}
.at-icone-cerebro{background:color-mix(in srgb,var(--sys-blue,#2F7CF6) 12%,transparent)}
.at-icone-cerebro img{width:1.75rem;height:1.75rem;object-fit:contain}
.at-txt{display:grid;gap:.125rem;min-width:0;flex:1 1 auto;text-align:left}
.at-txt b{font-size:calc(.9375rem * var(--dt,1));font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.at-txt>span{font-size:calc(.875rem * var(--dt,1));color:var(--label2,#5d4f44);line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.at-acao{justify-self:start;margin-top:.375rem;min-height:2.25rem;padding:.375rem .875rem;border:0;border-radius:999px;background:var(--blue,#2F7CF6);color:#fff;font:inherit;font-size:calc(.875rem * var(--dt,1));font-weight:600;cursor:pointer}
.at-acao:active{filter:brightness(.94)}
/* a notificação: o cartão que nasce no topo; a posição, a largura e a altura são pintadas pelo JS (molas).
   1.74.0 (Philippe, 04/10/2026; requisitos F1 a F5 de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md): larga, com dois
   estados: compacta (ícone, título e uma linha) e expandida (a informação que resume em destaque, o detalhe e os botões).
   A FOTO DE REFERÊNCIA do dono chegou depois: é a Ilha Dinâmica do iPhone expandida (atividade ao vivo). Por isso o
   cartão fica colado no topo, com 12 px de margem no celular e centrado no computador (26 a 34 rem), cantos de 2,25 rem
   que não mudam ao crescer, sem divisória, o ícone do tipo num círculo da cor do tipo, e os botões como pílulas.
   Ela fica por cima da fileira de botões do topo (antes parava abaixo dela, defeito D02 de 03/10): a foto manda. Não
   cobre de forma permanente, porque some sozinha conforme a prioridade e a crítica sai ao ser tocada ou dispensada.
   1.74.0 (Philippe, 05/10/2026; N1, N2 e N3 de docs/ESPECIFICACAO-QUINTA-RODADA-2026-10-05.md): "As notificações estilo
   ilha dinâmica estão perfeitas. A única modificação que você vai ter que fazer na cor é: ao invés de preto, pode ser o
   design claro de vidro de notificação mesmo." Mudou SÓ a cor e o material; forma, medidas, movimento, pilha, expandir
   e botões são os mesmos. Toda cor da notificação é um token --at-* declarado aqui, uma vez por tema:
   - claro: vidro claro (branco a 86%, com desfoque do que está atrás), texto no marrom da marca, um fio de borda e sombra
     (sobre o fundo off-white e sobre cartão branco o vidro claro sumiria sem os dois). É o vidro GROSSO, como o dos menus
     do Hub: a notificação passa por cima dos botões do topo e de texto, e em máquina sem aceleração de vídeo o desfoque
     sai fraco; com 86% o que está atrás nunca disputa com o texto, mesmo sem desfoque nenhum; botão principal escuro com letra
     branca (o inverso da superfície, como era o branco sobre o preto), os outros num cinza quente translúcido;
   - escuro: o par dele, vidro escuro com desfoque (não o preto chapado), texto branco, botão principal branco;
   - os círculos do tipo: vermelho e azul mais fundos que os do iPhone, para o desenho branco de dentro passar de 4,5:1
     (com #FF453A e #0A84FF ficava em 3,4 e 3,7); o laranja segue com o desenho escuro (8,3:1);
   - o círculo do Cérebro (06/10/2026, conferência do N1): a ilustração laranja do Cérebro precisa de fundo escuro para se
     ler, como tinha no cartão preto. Com o círculo translúcido do tema (cinza claro no vidro claro, cinza médio no vidro
     escuro) a cor média dela ficava em 2,6:1; num café escuro cheio, igual nos dois temas, fica em 5,3:1 e 80% dos pixels
     passam de 3:1 (elemento gráfico pede 3:1). É cor cheia, como a dos outros três círculos.
   Todo texto e todo ícone passa de 4,5:1 contra o que tem atrás, nos dois temas, sobre o fundo e sobre um cartão
   (medido em tests/cores-quinta-1740.test.js). */
.at-banner{position:fixed;z-index:80;top:calc(env(safe-area-inset-top,0px) + .5rem);left:.75rem;right:.75rem;margin:0 auto;opacity:0;transform:translate3d(0,-8rem,0);will-change:transform;touch-action:none;transition:opacity .16s ease-out;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;color:var(--at-tinta);--at-p:0;
  --at-vidro:rgba(255,255,255,.86);--at-solido:#FFFFFF;--at-tinta:var(--label,#3A2A1E);--at-sub:var(--label2,#6B5A4C);
  --at-fio:rgba(58,42,30,.14);--at-sombra:0 .75rem 2rem rgba(40,25,12,.18),0 .125rem .5rem rgba(40,25,12,.10);
  --at-botao:rgba(58,42,30,.10);--at-principal:var(--label,#3A2A1E);--at-principal-tinta:#fff;--at-cerebro:#2A1E16;
  --at-ok:#17722F;--at-erro:#B3261E;--at-foco:#0066CC;--at-pilha1:#ECE9E4;--at-pilha2:#E0DCD6;--at-chip:#FFFFFF;--at-chip-tinta:var(--label2,#6B5A4C)}
body.dark .at-banner{--at-vidro:rgba(58,54,50,.9);--at-solido:#2E2B28;--at-tinta:#fff;--at-sub:rgba(255,255,255,.72);
  --at-fio:rgba(255,255,255,.14);--at-sombra:0 .75rem 2rem rgba(0,0,0,.5),0 .125rem .5rem rgba(0,0,0,.3);
  --at-botao:rgba(255,255,255,.16);--at-principal:#fff;--at-principal-tinta:#000;--at-cerebro:#2A1E16;
  --at-ok:#30D158;--at-erro:#FF8A80;--at-foco:#64D2FF;--at-pilha1:#3A3735;--at-pilha2:#2C2A28;--at-chip:#48484A;--at-chip-tinta:#fff}
html.app-nativo .at-banner{top:calc(var(--topo-app,env(safe-area-inset-top,0px)) + .5rem)}
/* no aplicativo instalado antes do botão nativo das lojas, esse botão é desenhado em HTML no canto de cima, à frente de
   tudo (web/app-nativo.css, #app-lojas-web): a notificação para logo abaixo dele, para a seta de expandir ficar tocável */
html.app-lojas-web .at-banner{top:calc(var(--topo-app,env(safe-area-inset-top,0px)) + 44px + .5rem)}
html.app-lojas-web body.tem-acao-cliente .at-banner{top:calc(var(--topo-app,env(safe-area-inset-top,0px)) + 108px + .5rem)}
/* no computador é a mesma peça, no topo e centrada como a Ilha, com a largura entre 26 e 34 rem */
@media (min-width:761px){.at-banner{left:0;right:0;width:clamp(26rem,40vw,34rem)}}
.at-banner.at-banner-on{opacity:1}
.at-banner.at-expandida{--at-p:1}
/* saindo: encolhe para a pílula (JS) e apaga; quem está saindo não segura o toque dos botões que ficam por baixo */
.at-banner.at-banner-saindo{opacity:0;transition:opacity .2s ease-in .06s}
.at-banner[aria-hidden="true"]{pointer-events:none}
/* o fio de borda é uma sombra para dentro (não uma borda de verdade): a medida do cartão não muda em nenhum pixel */
.at-cartao{position:relative;overflow:hidden;margin:0 auto;border-radius:2.25rem;background:var(--at-vidro);-webkit-backdrop-filter:blur(1.875rem) saturate(180%);backdrop-filter:blur(1.875rem) saturate(180%);box-shadow:inset 0 0 0 1px var(--at-fio),var(--at-sombra)}
/* o miolo tem a largura final desde o começo (--at-w, posta pelo JS): a pílula cresce e o texto não refaz as linhas */
.at-dentro{width:var(--at-w,100%);margin-left:calc((100% - var(--at-w,100%)) / 2)}
.at-linha{display:flex;align-items:flex-start}
.at-banner-corpo{display:flex;align-items:center;gap:.875rem;flex:1 1 auto;min-width:0;min-height:4rem;padding:.75rem 0 .75rem 1rem;border:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.at-banner-corpo:active{opacity:.72}
.at-banner .at-icone{width:2.75rem;height:2.75rem;border-radius:50%}
.at-banner .at-icone svg{width:1.5rem;height:1.5rem}
.at-banner .at-icone-cerebro img{width:2rem;height:2rem}
/* o círculo com a cor do tipo: crítico vermelho, importante laranja, informativo azul; o Cérebro tem o desenho dele */
.at-banner .at-icone-critico{background:#D7262C;color:#fff}
.at-banner .at-icone-aviso{background:#FF9F0A;color:#1C1C1E}
.at-banner .at-icone-info{background:#0066CC;color:#fff}
.at-banner .at-icone-cerebro{background:var(--at-cerebro)}
.at-banner .at-txt b{font-size:calc(1rem * var(--dt,1));font-weight:650;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.at-banner .at-txt>span{color:var(--at-sub);-webkit-line-clamp:1}
/* expandida: o título e o texto inteiros (o recorte do cartão revela as linhas enquanto ele cresce) */
.at-banner.at-aberta .at-txt b,.at-banner.at-aberta .at-txt>span{display:block;overflow:visible}
.at-banner.at-aberta .at-banner-corpo{align-items:flex-start}
.at-banner.at-aberta.at-troca .at-txt>span{display:none}
/* com o destaque na tela, o título vira a legenda dele (só a cor muda: nada pula de lugar) */
.at-banner.at-aberta.at-tem-destaque .at-txt b{color:var(--at-sub)}
.at-expandir{flex:none;display:grid;place-items:center;width:3.25rem;min-height:4rem;padding:0 .5rem 0 0;border:0;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
/* a seta na cor do texto secundário (era a cor do texto a 60%: no vidro claro isso dava 3,8:1) */
.at-seta{flex:none;width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--at-sub);transition:transform .2s ease-out}
.at-banner.at-expandida .at-seta{transform:rotate(180deg)}
.at-expandir:active .at-seta{color:var(--at-tinta)}
/* o conteúdo expandido MATERIALIZA com um leve atraso: a opacidade e o desfoque seguem a altura (--at-p vai de 0 a 1 com
   o dedo e com a mola, web/avisos-topo.js); nos primeiros 25% do caminho ele ainda não aparece */
.at-mais{display:none;padding:0 1.25rem 1.25rem;text-align:center;opacity:clamp(0,calc((var(--at-p) - .25) / .55),1);filter:blur(calc((1 - var(--at-p)) * .375rem))}
.at-banner.at-aberta .at-mais{display:block}
.at-destaque{margin:.25rem 0 0;font-size:calc(1.75rem * var(--dt,1));font-weight:700;line-height:1.12;letter-spacing:-.02em;overflow-wrap:anywhere}
.at-destaque-sub{margin:.25rem 0 0;font-size:calc(.9375rem * var(--dt,1));color:var(--at-sub)}
.at-linhas{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.1875rem;font-size:calc(.9375rem * var(--dt,1));line-height:1.35;color:var(--at-sub);overflow-wrap:anywhere}
.at-resultado{margin:.75rem 0 0;font-size:calc(1.0625rem * var(--dt,1));font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.at-resultado:empty{display:none}
.at-resultado.at-ok{color:var(--at-ok)}
.at-resultado.at-erro{color:var(--at-erro)}
/* os botões de ação: pílulas grandes no pé, como nas atividades ao vivo (a principal no inverso da superfície, as outras num cinza translúcido) */
.at-acoes{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1rem}
.at-botao{flex:1 1 auto;min-height:3rem;padding:.5rem 1.125rem;border:0;border-radius:999px;background:var(--at-botao);color:var(--at-tinta);font:inherit;font-size:calc(1rem * var(--dt,1));font-weight:650;cursor:pointer;-webkit-tap-highlight-color:transparent}
.at-botao-principal{background:var(--at-principal);color:var(--at-principal-tinta)}
.at-botao:active{transform:scale(.97);filter:brightness(.88)}
/* ocupado (a ação rodando): desbotado, mas com a letra ainda em 4,5:1 nos dois temas (a 55% ficava em 3,1:1 no vidro claro), e o cursor de espera */
.at-botao:disabled{opacity:.72;cursor:progress}
/* o puxador: diz ao dedo que dá para puxar (só no toque e só na compacta) */
.at-puxador{display:none;position:absolute;left:50%;bottom:.25rem;width:2.25rem;height:.25rem;margin-left:-1.125rem;border-radius:.25rem;background:var(--at-tinta);opacity:.3;pointer-events:none}
@media (hover:none){.at-banner:not(.at-aberta) .at-puxador{display:block}}
/* quinta fase (conferência F2): sem nada a mais para mostrar, a seta e o puxador saem (web/avisos-topo.js, conferirMais) */
.at-banner.at-sem-mais .at-expandir,.at-banner.at-sem-mais .at-puxador{display:none}
.at-banner.at-sem-mais .at-banner-corpo{padding-right:1rem}
/* a pilha: as bordas das que esperam atrás (foscas, um tom abaixo da frente, com a mesma curva e o mesmo fio) e a contagem */
.at-pilha i{display:none;position:absolute;z-index:-1;left:5%;right:5%;bottom:-.375rem;height:2.75rem;border-radius:0 0 2rem 2rem;background:var(--at-pilha1);box-shadow:inset 0 0 0 1px var(--at-fio),0 .25rem .75rem rgba(0,0,0,.2)}
.at-pilha i+i{left:10%;right:10%;bottom:-.75rem;background:var(--at-pilha2);z-index:-2}
.at-banner[data-pilha="1"] .at-pilha i:first-child,.at-banner[data-pilha="2"] .at-pilha i{display:block}
.at-conta{position:absolute;right:1.25rem;bottom:-.625rem;min-width:1.5rem;height:1.25rem;padding:0 .4375rem;border-radius:1rem;background:#D7262C;color:#fff;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));line-height:1.25rem;font-weight:700;text-align:center;pointer-events:none}
.at-conta:empty{display:none}
/* dispensar pelo mouse e pelo teclado (no toque é o arrasto para cima): o X do canto */
.at-fechar{position:absolute;top:-.375rem;left:-.375rem;display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:50%;background:var(--at-chip);color:var(--at-chip-tinta);box-shadow:inset 0 0 0 1px var(--at-fio),0 .125rem .375rem rgba(0,0,0,.18);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s ease-out}
.at-fechar::before{content:"";position:absolute;inset:-.5rem}
.at-fechar svg{width:.875rem;height:.875rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.at-fechar:focus-visible{opacity:1;pointer-events:auto}
@media (hover:hover){.at-banner:hover .at-fechar{opacity:1;pointer-events:auto}}
.at-banner :is(.at-banner-corpo,.at-expandir,.at-botao,.at-fechar):focus-visible{outline:.1875rem solid var(--at-foco);outline-offset:-.1875rem;border-radius:1.5rem}
.at-banner .at-botao:focus-visible{outline-offset:.125rem;border-radius:999px}
/* o aviso rápido (#toasts, o retorno de uma ação) nasce no mesmo canto e por cima de tudo: com uma notificação na tela ele
   fica logo abaixo dela (web/avisos-topo.js, reservar), para não cobrir o texto nem os botões */
.toasts.tem-notificacao{top:calc(var(--at-fim,0px) + .5rem)!important}
/* o texto que o leitor de tela ouve quando a notificação chega e quando a ação termina */
.at-vivo{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* N2: com "reduzir transparência" (e no navegador sem desfoque: sem ele o texto de trás atravessaria o vidro) a
   notificação fica sólida, na cor do tema, com o mesmo fio de borda; o painel do sino também perde o vidro */
@media (prefers-reduced-transparency:reduce){.at-painel{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}body.dark .at-painel{background:#28201A}
  .at-cartao{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--at-solido)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.at-cartao{background:var(--at-solido)}}
/* mais contraste: sólida, com a borda na cor do texto, e o texto secundário na cor do principal */
@media (prefers-contrast:more){.at-cartao{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--at-solido)}.at-banner,body.dark .at-banner{--at-fio:var(--at-tinta);--at-sub:var(--at-tinta)}.at-botao:not(.at-botao-principal){box-shadow:inset 0 0 0 1px var(--at-tinta)}}
@media (prefers-reduced-motion:reduce){.at-painel{animation:none}.at-banner,.at-banner.at-banner-saindo{transition:opacity .2s ease}.at-seta,.at-fechar{transition:none}.at-botao:active{transform:none}.at-mais{filter:none;opacity:1}}
/* 1.74.0 (03/10/2026): com os botões da barra de cima ligados (celular e app), a faixa do Cérebro sai do fluxo em toda tela.
   A regra por largura (e pelo app) vale ANTES de o botão da barra ligar: sem ela a faixa aparecia por um instante ao abrir
   a tela e sumia em seguida, e o conteúdo de baixo (os carrosséis medem a altura que sobra) pulava uns 66 px. No celular
   a recomendação nunca fica no meio do conteúdo: quem pode ver a faixa é exatamente quem recebe o botão na barra. */
html.tem-avisos-topo .view .hr-faixa{display:none}
@media (max-width:760px){.view .hr-faixa{display:none}}
html.app-nativo .view .hr-faixa{display:none}

/* /hub-tela.css */
/* 1.74.0 (Philippe, 04/10/2026): A BARRA DE BAIXO E OS BOTÕES DO TOPO DE CADA TELA (web/hub-tela.js, HubTela).
   "Todos os filtros e menus vão se concentrar na barra de menu inferior, em todas as telas [...] a barra de menu
   inferior e os botões superiores são modulares e mudam de acordo com o conteúdo ou a página."
   A barra é a HubBarraFolha (web/barra-folha.css): aqui só entra o que é da barra DE TELA (.bf-tela): no computador a
   cápsula é estreita e centrada, e a folha é um painel preso a ela. Os botões da tela na fileira do topo (#telabtns) usam
   o vidro dos vizinhos (web/topo-vidro.css); a pílula com texto é a variação. Loja, som e conta fora da fileira
   (html.ht-sem-fixos): o nome da tela aparece também no celular e leva a luz da situação das lojas.
   Medidas de texto em rem com --dt; claro e escuro; alvos de 44 px no toque. Vidro só nesta camada funcional. */
/* no computador a cápsula é mais baixa e fica mais perto do pé: os cartões ganham a altura (B5: a faixa ocupa 78% da janela ou mais) */
@media (min-width:761px){.bf.bf-tela{--bf-largura:34rem;--bf-barra:3.5rem;bottom:.375rem}.bf.bf-tela .bf-barra{margin-top:.375rem;margin-bottom:.375rem}.bf.bf-tela .bf-item{padding-top:.125rem;padding-bottom:.125rem}}
/* a tela que tem a barra não mostra a faixa do Cérebro no meio do conteúdo: ela vira o botão do Cérebro no topo (web/avisos-topo.js) */
.view.ht-tela .hr-faixa{display:none}

/* ---------- a fileira do topo ---------- */
html:not(.app-nativo) header.top .telabtns:empty{display:none}
html:not(.app-nativo) header.top .telabtns .icon.ht-pilula{width:auto;min-width:var(--topo-acao);padding:0 .875rem;border-radius:999px;display:inline-flex;align-items:center;gap:.375rem;white-space:nowrap}
.ht-topo{position:relative}
/* 1.74.0 (04/10/2026, ramo fluxos): o botão do topo LIGADO (a loja escolhida no Dashboard e nos Relatórios do computador)
   fica à vista, no realce de sempre dos botões ligados da fileira (web/topo-vidro.css); antes o ligado era igual aos outros
   (a regra de base da fileira tem peso de id, por causa do #menubtn na lista: por isso o #telabtns aqui) */
html:not(.app-nativo) header.top #telabtns .icon.ht-topo[aria-pressed="true"]{background:color-mix(in srgb,var(--sys-blue,#0088FF) 22%,var(--topo-vidro,rgba(255,255,255,.62)));color:var(--ink-blue,#0066CC)}
.ht-topo-txt{font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));font-weight:600;line-height:1.2}
@media (max-width:760px){
  html:not(.app-nativo) header.top .telabtns .icon.ht-pilula{width:var(--topo-acao);padding:0;justify-content:center}
  html:not(.app-nativo) header.top .telabtns .ht-topo-txt{display:none}
  /* loja, som e conta saíram da fileira: sobra lugar para o nome da tela (requisito B1: o nome mora na fileira) */
  /* 04/10/2026 (a dupla checagem): 10 px de respiro (eram 12). Com 12, a fileira das Negociações passava 3 px da largura em
     390 px e o nome da tela ia embora (B1: o nome mora na fileira do topo); com 10, cabe em toda tela em 390 px */
  html.ht-sem-fixos:not(.app-nativo) header.top #curview{display:inline-block;padding:0 .625rem;max-width:36vw;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)))}
  html.ht-sem-fixos:not(.app-nativo) body.view-kds header.top #curview{display:none}
}
/* a luz da situação das lojas no nome da tela (o botão da loja só fica na fileira na Expedição e na Cozinha) */
#curview[data-lojas-cor]::before{content:"";display:inline-block;vertical-align:middle;width:.5rem;height:.5rem;margin:-.125rem .4375rem 0 0;border-radius:50%;background:var(--label3,#A89C92)}
#curview[data-lojas-cor="verde"]::before{background:var(--green,#34C759)}
#curview[data-lojas-cor="laranja"]::before{background:var(--orange,#FF9500)}
#curview[data-lojas-cor="vermelho"]::before{background:var(--red,#FF3B30)}
/* o item da loja no menu: o ícone de ligar na cor da situação */
.menudd [data-ddtela="loja"][data-lojas-cor="verde"] .dd-ico svg{color:var(--ink-green,#1E7B34)}
.menudd [data-ddtela="loja"][data-lojas-cor="laranja"] .dd-ico svg{color:var(--ink-orange,#8A4B00)}
.menudd [data-ddtela="loja"][data-lojas-cor="vermelho"] .dd-ico svg{color:var(--ink-red,#B42318)}
.menudd [data-ddtela] .dd-txt{white-space:normal}

/* ---------- dentro das folhas ---------- */
/* a linha da situação das lojas (na folha Loja de uma tela) */
.ht-lojas{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;margin:0 0 .75rem;padding:.5rem .875rem;border:1px solid rgba(127,127,127,.18);border-radius:1rem;background:rgba(127,127,127,.08);color:inherit;font:inherit;font-size:calc(.9375rem * var(--dt,1));text-align:left;cursor:pointer}
.ht-lojas>span{flex:1 1 auto;min-width:0}
.ht-lojas>b{flex:none;font-weight:600;color:var(--bf-realce,#0062B8)}
.ht-lojas:active{background:rgba(127,127,127,.16)}
.ht-lojas:focus-visible,.ht-voltar:focus-visible{outline:.1875rem solid var(--bf-realce,#0062B8);outline-offset:.125rem}
.ht-luz{flex:none;width:.625rem;height:.625rem;border-radius:50%;background:var(--label3,#A89C92)}
[data-lojas-cor="verde"]>.ht-luz{background:var(--green,#34C759)}
[data-lojas-cor="laranja"]>.ht-luz{background:var(--orange,#FF9500)}
[data-lojas-cor="vermelho"]>.ht-luz{background:var(--red,#FF3B30)}
/* o item "Mais": a lista do que não coube na barra e o voltar da folha aberta por ele */
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): no menor celular (320 px) a barra de cinco itens dava 57 px a
   cada um e os rótulos compridos saíam cortados ("Cidade ...", "Categor..." no Cardápio e no Fiscal). Ali cada item fica
   com a largura do próprio rótulo e o que sobra é repartido (o alvo de 44 px fica); era o remendo das Negociações,
   agora na peça. */
@media (max-width:359px){.bf.bf-tela .bf-barra>.bf-item{flex:1 1 auto;min-width:2.75rem;padding-left:.125rem;padding-right:.125rem}}
.ht-ico{flex:none;display:grid;place-items:center;width:1.5rem;height:1.5rem}
.ht-ico svg{width:1.375rem;height:1.375rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ht-conta{margin-left:auto;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:1rem;background:#FF3B30;color:#fff;font-size:max(.6875rem, calc(.6875rem * var(--dt,1)));line-height:1.25rem;font-weight:700;text-align:center}
.ht-voltar{display:inline-flex;align-items:center;gap:.25rem;min-height:2.75rem;margin:-.5rem 0 .25rem -.5rem;padding:.25rem .625rem .25rem .25rem;border:0;border-radius:.875rem;background:transparent;color:var(--bf-realce,#0062B8);font:inherit;font-size:calc(1rem * var(--dt,1));font-weight:600;cursor:pointer}
.ht-voltar svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ht-voltar:active{background:rgba(127,127,127,.12)}
/* o ponto de "falta criar o seu acesso" no botão do menu, quando a conta está no menu (do lado oposto ao selo de atualização) */
#menubtn{position:relative}
.ht-ponto{position:absolute;top:.25rem;left:.25rem;width:.5625rem;height:.5625rem;border-radius:50%;background:var(--sys-orange,#FF8D28);box-shadow:0 0 0 2px var(--surface,#fff);pointer-events:none}
.ht-ponto[hidden]{display:none}
body.dark .ht-ponto{box-shadow:0 0 0 2px var(--surface,#22201E)}
.menudd [data-ddtela].ht-pede .dd-txt::after{content:"";flex:none;width:.5625rem;height:.5625rem;margin-left:.5rem;border-radius:50%;background:var(--sys-orange,#FF8D28)}

/* /hub-janela.css */
/* 1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas): A JANELA DE GESTÃO NO DESENHO DO CONTEÚDO PRIMEIRO
   (web/hub-janela.js, HubJanela; requisitos B4, B6 e B7 de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md).
   "Os cards no carrossel são KING [...] Pense em todas as telas como o design do KDS e Expedição."
   A janela é uma coluna de duas partes que nunca rola: o topo (só o nome e o Fechar) e a faixa de cartões, que ocupa
   tudo o que sobra; a barra de baixo (web/barra-folha.css) flutua sobre o pé, dentro da janela. A janela modal ocupa a
   tela inteira, como o pedido em tela cheia (web/hub-manual-orders.css): o conteúdo é o que importa.
   Texto em rem com --dt; alvos de 44 px; claro e escuro pelos tokens; vidro só na barra (camada funcional). */
.hj{--hj-lado:max(1rem,env(safe-area-inset-left,0px));--hj-topo:max(.5rem,env(safe-area-inset-top,0px));box-sizing:border-box;overflow:hidden}
html.app-nativo .hj{--hj-topo:max(.5rem,var(--app-status,env(safe-area-inset-top,0px)))}
dialog.hj[open]{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;padding:0;display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg,#f5f2ec);color:var(--label,var(--text,#211f1c))}
dialog.hj::backdrop{background:var(--bg,#f5f2ec)}
@media (max-width:760px){.hj{--hj-lado:max(.75rem,env(safe-area-inset-left,0px))}}

/* ---------- o topo: o nome da janela e o Fechar, numa fileira ---------- */
.hj-topo{flex:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.75rem;padding:var(--hj-topo) var(--hj-lado) .5rem;min-width:0}
.hj-nome{flex:1 1 auto;min-width:0}
.hj-nome h2{margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));font-weight:700;line-height:1.15;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hj-sub{margin:.125rem 0 0;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.25;color:var(--sub,#64594e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.hj-sub[hidden]{display:none}
.hj-topo .hj-fechar{flex:none;width:2.75rem;height:2.75rem;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:var(--fill,rgba(90,70,50,.08));color:var(--label,var(--text,#211f1c));cursor:pointer;transition:transform .1s ease-out}
.hj-topo .hj-fechar:active{transform:scale(.94)}
.hj-topo .hj-fechar svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.hj-topo .hj-fechar:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}

/* ---------- o corpo: a faixa de cartões ocupa o que sobra; o pé fica reservado para a barra ---------- */
.hj-corpo{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column;padding:.125rem var(--hj-lado) calc(var(--bf-barra) + var(--bf-rodape) + 1.75rem)}
.hj-corpo>.hj-faixa{flex:1 1 0;min-height:0}
/* a altura do cartão vem da faixa (que estica na coluna da janela), sem conta em JS: celular e computador */
.hj .hj-faixa.hcar.hcar-tela:not(.hcar-agrupa)>.hcar-item{height:auto;max-height:none;align-self:stretch}
/* juntos (agrupa): a faixa é uma coluna que quebra; a altura dela continua vindo da coluna da janela */
.hj .hj-faixa.hcar.hcar-agrupa{height:auto}
.hj-corpo>.hcar-pe{flex:none}
@media (min-width:761px){.hj-corpo{padding-bottom:calc(var(--bf-barra) + 1.5rem)}}
/* o cartão da janela: o respiro é um só; a moldura (raio, fundo, sombra) é a do HubCarrossel no modo expande */
.hj-faixa>.hj-cartao{box-sizing:border-box;padding:1rem;min-width:0;margin:0;border-radius:var(--r-sheet,1.25rem)}
.hj-faixa>.hj-cartao>:first-child{margin-top:0}
/* dentro do cartão pequeno nada rola por conta própria: o corte do "Ver tudo" cuida do que não cabe */
.hj-faixa .hcar-cartao:not(.hcar-grande) pre{max-height:none;overflow:hidden}

/* ---------- a barra de baixo, dentro da janela ---------- */
.hj>.bf.hj-barra{position:absolute}
@media (prefers-reduced-motion:reduce){.hj-topo .hj-fechar{transition:none}.hj-topo .hj-fechar:active{transform:none}}
@media (prefers-contrast:more){.hj-topo .hj-fechar{box-shadow:inset 0 0 0 1px currentColor}}

/* /folha.css */
/* 1.64.2: A FOLHA ÚNICA (web/folha.js, HubFolha). Mesma mecânica da ficha do pedido da 1.62.1 em todas as folhas do Hub:
   sobe de baixo com a curva de mola das folhas do iOS (0,38 s), fecha puxando para baixo, e o véu clareia junto.
   html.hub-folha-celular vale no app (iPhone e Android) e no navegador até 640 px; html.hub-folha diz que o folha.js
   carregou (ele é quem anima a entrada; sem ele, as animações antigas continuam). No computador, as janelas que abrem
   por cima entram com a mesma curva, curta, e nada arrasta. "Reduzir movimento" zera tudo (index.html). */
:root{--curva-folha:cubic-bezier(.32,.72,0,1);--dur-folha:.38s;--folha-alca:rgba(60,60,67,.3)}
body.dark{--folha-alca:rgba(235,235,245,.3)}
@keyframes hub-folha-sobe{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}
@keyframes hub-folha-veu{from{opacity:0}to{opacity:1}}

/* quem entra pela HubFolha.entrar não repete a animação de CSS antiga */
html.hub-folha .usu-painel,html.hub-folha .conta-folha{animation:none}

/* ---------- a alça (a mesma das folhas .modal do app) ---------- */
html.hub-folha-celular #atu-raiz .atu-painel::before,html.hub-folha-celular #suporte-raiz .sup-painel::before,
html.hub-folha-celular .usu-painel::before,html.hub-folha-celular .conta-folha::before{content:"";display:block;flex:none;width:36px;height:5px;border-radius:3px;background:var(--folha-alca);margin:8px auto 0}

/* ---------- as folhas .modal de index.html no navegador do celular (no app, app-ios.css e app-android.css já fazem) ---------- */
html.hub-folha-celular:not(.app-nativo) .modal:has(>.oc,>.pc,>.lc){align-items:flex-end;padding:0}
html.hub-folha-celular:not(.app-nativo) .modal>.oc,html.hub-folha-celular:not(.app-nativo) .modal>.pc,html.hub-folha-celular:not(.app-nativo) .modal>.lc{width:100%;max-width:100%;box-sizing:border-box;border-radius:22px 22px 0 0;max-height:var(--folha-grande);overflow:auto;padding-bottom:var(--folha-base);touch-action:pan-y;overscroll-behavior-y:contain}
html.hub-folha-celular:not(.app-nativo) .modal>.oc::before,html.hub-folha-celular:not(.app-nativo) .modal>.pc::before,html.hub-folha-celular:not(.app-nativo) .modal>.lc::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca);margin:0 auto 10px}

/* ---------- central de negociações: desde a 1.64.3 é uma tela do Hub, e a ficha de 95% está em web/negociacoes.css ---------- */

/* ---------- atualizações e suporte: folhas logo abaixo da barra de status (as peças nativas somem com elas) ---------- */
html.hub-folha-celular #atu-raiz .atu-painel{top:calc(var(--app-status,env(safe-area-inset-top,0px)) + 10px);left:0;right:0;bottom:0;width:auto;border-radius:22px 22px 0 0;padding-top:0;
  opacity:1;transform:translate3d(0,100%,0);transition:transform var(--dur-folha) var(--curva-folha);box-shadow:0 -8px 40px rgba(0,0,0,.18)}
html.hub-folha-celular #atu-raiz.aberto .atu-painel{transform:none}
html.hub-folha-celular #atu-raiz.aberto .atu-veu{opacity:var(--veu,1)}
html.hub-folha-celular #atu-raiz.hub-folha-arrastando .atu-veu{transition:none}
html.hub-folha-celular #suporte-raiz .sup-painel{opacity:1;transform:translate3d(0,100%,0);transition:transform var(--dur-folha) var(--curva-folha)}
html.hub-folha-celular #suporte-raiz.aberto .sup-painel{transform:none}
html.hub-folha-celular #suporte-raiz.aberto .sup-veu{opacity:var(--veu,1)}
html.hub-folha-celular #suporte-raiz.hub-folha-arrastando .sup-veu{transition:none}

/* ---------- usuários: folha grande abaixo da barra de status (1.72.0: no app as peças nativas somem com ela) ---------- */
html.hub-folha-celular .usu-fundo{align-items:stretch;padding:var(--folha-topo) 0 0}
html.hub-folha-celular .usu-painel{width:100%;height:100%;max-height:none;border-radius:22px 22px 0 0;padding-top:0}

/* ---------- card de resposta ao cliente: no navegador do celular, folha de baixo; no app fica entre as barras nativas ---------- */
html.hub-folha-celular:not(.app-nativo) #acao-card-fundo{align-items:flex-end;padding:calc(env(safe-area-inset-top,0px) + 10px) 0 0}
html.hub-folha-celular:not(.app-nativo) #acao-card{width:100%;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}

/* ---------- cartão de aprovação: entra com a mesma mola ---------- */
html.hub-folha-celular .aprov-card.entra{animation:hub-folha-sobe var(--dur-folha) var(--curva-folha)}

@media (prefers-reduced-motion:reduce){html.hub-folha-celular #atu-raiz .atu-painel,html.hub-folha-celular #suporte-raiz .sup-painel{transition:none;animation:none}}

/* ---------- 1.72.0 (auditoria de design 1720): AS ALTURAS DAS FOLHAS DO SISTEMA ----------
   Pedido do Philippe (29/09/2026): "muitos cards que sobem ficam cobertos pelos botões superiores e pela barra de menu
   inferior [...] alguns cards sobem pela metade da tela e, quando você puxa para baixo, ele não obedece". Toda folha do
   celular (app, ou navegador até 640 px) segue as mesmas medidas:
   - começa abaixo da barra de status e da ilha: --folha-topo (5% da tela no mínimo, a ficha de 95%; no app, a barra de
     status mais 10 px, porque as peças nativas somem enquanto qualquer folha está aberta: web/folha.js, sincronizar);
   - a folha grande (ficha, listas, formulários longos) tem --folha-grande (95%);
   - o diálogo curto tem a altura do conteúdo, com o mínimo de uma folha média (--folha-media) e o máximo da grande;
   - os botões de ação ficam acima do indicador de início (--folha-base);
   - tem a alça de 36 x 5 e sobe com a mola (HubFolha.entrar).
   Os módulos usam os tokens na folha deles (relatorios.css, fiscal.css, contas.css, calendario.css, usuarios.css,
   acoes-cliente.css); aqui ficam os tokens, as .modal de index.html e o filtro de pedidos. Para quem desenha folha nova:
   as classes .hub-folha-grande e .hub-folha-dialogo aplicam as duas alturas. */
:root{--folha-topo:max(5dvh, calc(env(safe-area-inset-top,0px) + 10px));--folha-grande:calc(100dvh - var(--folha-topo));
  --folha-media:min(var(--folha-grande), max(50dvh, 340px));--folha-base:calc(env(safe-area-inset-bottom,0px) + 16px)}
html.app-nativo{--folha-topo:max(5dvh, calc(var(--app-status,env(safe-area-inset-top,0px)) + 10px))}
html.hub-folha-celular .hub-folha-grande{height:var(--folha-grande);max-height:var(--folha-grande);box-sizing:border-box}
html.hub-folha-celular .hub-folha-dialogo{min-height:var(--folha-media);max-height:var(--folha-grande);box-sizing:border-box}

/* as .modal de index.html (no app e no navegador do celular): a ficha e o detalhe do Dashboard são folhas grandes; os
   diálogos (senha para cancelar, confirmações, lembrete do cardápio) têm o mínimo de uma folha média */
html.hub-folha-celular .modal>.oc,html.hub-folha-celular .modal>.pc,html.hub-folha-celular .modal>.lc{max-height:var(--folha-grande);padding-bottom:var(--folha-base);box-sizing:border-box}
/* a folha grande é chapa, sem desfoque (como a ficha do app, app-nativo.css): o vidro por cima do véu deixava o cabeçalho da
   tabela do detalhe do Dashboard com 4,4:1 e o texto dos cards de trás aparecia na folha */
html.hub-folha-celular .modal>.oc{height:var(--folha-grande);background:var(--vidro-solido,#FBF8F4);-webkit-backdrop-filter:none;backdrop-filter:none}
html.hub-folha-celular .modal>.pc,html.hub-folha-celular .modal>.lc{min-height:var(--folha-media)}

/* filtro de pedidos: no celular e no app deixa de ser o cartão centralizado de 801 pt (título na faixa da ilha, X sob o
   botão nativo, "Limpar" e "Concluir" sob a barra) e vira folha de baixo com véu, alça e arrasto (registrada em
   index.html, junto do toggleOrderFilterPanel) */
.of-veu{display:none}
html.hub-folha-celular .of-veu:has(+ #order-filter-panel:not(.hidden)){display:block;position:fixed;inset:0;z-index:1249;background:rgba(20,15,10,.42)}
html.hub-folha-celular body.dark .of-veu:has(+ #order-filter-panel:not(.hidden)){background:rgba(0,0,0,.55)}
html.hub-folha-celular #order-filter-panel{top:auto;left:0;right:0;bottom:0;transform:none;width:100%;max-width:100%;max-height:var(--folha-grande);min-height:var(--folha-media);
  overflow-x:hidden;overflow-y:auto;box-sizing:border-box;border-radius:22px 22px 0 0;padding:0 16px var(--folha-base);touch-action:pan-y;overscroll-behavior-y:contain;
  box-shadow:0 -8px 40px rgba(0,0,0,.18)}
@media (min-width:641px){html.hub-folha-celular #order-filter-panel{padding-left:20px;padding-right:20px}} /* 20 pt de margem no iPad */
html.hub-folha-celular #order-filter-panel::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca);margin:8px auto 4px}
/* 1.72.0 (pente fino): no toque o foco entra na folha do filtro (não no primeiro seletor); a folha não ganha anel */
#order-filter-panel:focus{outline:none}
/* 1.72.0 (pente fino final): SITUAÇÃO DAS LOJAS no celular e no app é folha de baixo (no iPhone o popover vira folha), com o
   véu irmão (#store-status-veu), a alça e o arrasto (registrada em web/store-status.js); antes descia do topo e não fechava
   puxando. As medidas são as das folhas do sistema. No computador segue o popover preso ao botão. */
.ss-veu{display:none}
html.hub-folha-celular .ss-veu:has(+ #store-status-popover:not(.hidden)){display:block;position:fixed;inset:0;z-index:1399;background:rgba(20,15,10,.42)}
html.hub-folha-celular body.dark .ss-veu:has(+ #store-status-popover:not(.hidden)){background:rgba(0,0,0,.55)}
html.hub-folha-celular #store-status-popover{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-width:100%!important;max-height:var(--folha-grande)!important;
  box-sizing:border-box;border-radius:22px 22px 0 0;padding:0 16px var(--folha-base);overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior-y:contain;
  background:var(--vidro-solido,#FBF8F4);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -8px 40px rgba(0,0,0,.18);z-index:1400}
@media (min-width:641px){html.hub-folha-celular #store-status-popover{padding-left:20px;padding-right:20px}} /* 20 pt de margem no iPad */
html.hub-folha-celular #store-status-popover::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:var(--folha-alca);margin:8px auto 4px}

/* /cerebro-sala.css */
/* 1.72.0 (Philippe, 29/09/2026): a Sala dos agentes do Cérebro (web/cerebro-sala.js). Padrão Apple: tipografia do
   sistema pelas variáveis do Hub (nenhuma letra abaixo de 11 px), cores do sistema, vidro sutil, claro e escuro,
   alvos de toque de 44 px, celular sem rolagem para o lado, sem animação para quem pede menos movimento. */

.hs{min-width:0;color:var(--label,#3A2A1E);--hs-verde:#1B7A34;--hs-laranja:#A45300} /* 1.72.0: tintas locais (o --sys-green-ink e o --sys-orange-ink não existem no Hub); o escuro troca pelas cores do sistema abaixo */
.hs-sala,.hs-feed{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:22px;background:var(--glass-bg,rgba(255,255,255,.72));-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:0 8px 28px rgba(40,25,12,.10),inset 0 0 0 1px var(--sep,rgba(58,42,30,.12));min-width:0}
body.dark .hs-sala,body.dark .hs-feed{background:rgba(34,32,30,.72);box-shadow:0 8px 28px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.10)}

/* topo */
.hs-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hs-topo-txt{min-width:0}
.hs-topo h2{margin:0;font-size:var(--f-title3,1.25rem);font-weight:700;letter-spacing:-.015em;line-height:1.2}
.hs-sub{margin:2px 0 0;font-size:var(--f-footnote,0.8125rem);color:var(--label3,#7E6A59);line-height:1.35;overflow-wrap:anywhere}
.hs-vivo{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:999px;background:rgba(255,56,60,.12);color:var(--sys-red,#E9152D);font-size:var(--f-caption1,0.75rem);font-weight:700}
.hs-vivo i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:hs-pulso 1.4s ease-in-out infinite}
.hs-vivo.fim{background:var(--fill,rgba(118,118,128,.12));color:var(--label2,#6B5A4C)}
.hs-vivo.fim i{animation:none;opacity:.5}

/* quem está na sala */
.hs-quem{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.hs-quem::-webkit-scrollbar{display:none}
.hs-quem-item{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:3px 10px 3px 3px;border-radius:999px;background:var(--fill,rgba(118,118,128,.10));font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C);transition:background .2s,color .2s}
.hs-quem-item.ativo{background:rgba(0,136,255,.14);color:var(--label,#3A2A1E)}
.hs-av{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--hs-cor,#8E8E93);color:#fff;font-size:var(--f-caption1,0.75rem);font-weight:700;letter-spacing:-.02em;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.hs-av.grande{width:40px;height:40px;font-size:var(--f-subhead,0.9375rem)}

/* a conversa */
.hs-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:min(56vh,560px);overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:12px}
.hs-lista.compacta{max-height:none;overflow:visible;gap:8px}
.hs-msg{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:start}
.hs-msg.entra{animation:hs-entra .28s ease-out}
.hs-balao{min-width:0;padding:8px 12px 10px;border-radius:18px;border-top-left-radius:6px;background:rgba(255,255,255,.78);box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.10))}
body.dark .hs-balao{background:rgba(255,255,255,.07)}
.hs-cab{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:2px}
.hs-cab b{font-size:var(--f-footnote,0.8125rem);font-weight:700}
.hs-para{font-size:var(--f-caption1,0.75rem);color:var(--label3,#7E6A59)}
.hs-tipo{margin-left:auto;font-style:normal;font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--fill,rgba(118,118,128,.12));color:var(--label2,#6B5A4C)}
.hs-balao p{margin:0;font-size:var(--f-body,1.0625rem);line-height:1.4;overflow-wrap:anywhere}
.hs-msg.tipo-hipotese .hs-tipo{background:rgba(0,136,255,.12);color:var(--sys-blue,#0088FF)}
.hs-msg.tipo-resultado .hs-tipo{background:rgba(52,199,89,.14);color:var(--hs-verde)}
.hs-msg.tipo-contestacao .hs-tipo{background:rgba(255,141,40,.16);color:var(--hs-laranja)}
.hs-msg.tipo-contestacao .hs-balao{box-shadow:inset 0 0 0 1px rgba(255,141,40,.45)}
.hs-msg.tipo-veredito .hs-tipo{background:rgba(97,85,245,.14);color:var(--sys-indigo,#564ADE)}
.hs-msg.tipo-veredito .hs-balao{background:rgba(97,85,245,.08);box-shadow:inset 0 0 0 1px rgba(97,85,245,.30)}
body.dark .hs-msg.tipo-veredito .hs-balao{background:rgba(109,124,255,.14)}
body.dark .hs-msg.tipo-resultado .hs-tipo{color:var(--sys-green,#30D158)}
body.dark .hs-msg.tipo-contestacao .hs-tipo{color:var(--sys-orange,#FF9230)}
body.dark .hs-msg.tipo-veredito .hs-tipo{color:var(--sys-indigo,#A7AAFF)}

/* digitando */
.hs-digitando{display:flex;align-items:center;gap:8px;min-height:28px;font-size:var(--f-footnote,0.8125rem);color:var(--label3,#7E6A59)}
.hs-pontos{display:inline-flex;gap:4px;padding:8px 10px;border-radius:14px;background:var(--fill,rgba(118,118,128,.12))}
.hs-pontos i{width:6px;height:6px;border-radius:50%;background:var(--label3,#7E6A59);animation:hs-ponto 1.2s ease-in-out infinite}
.hs-pontos i:nth-child(2){animation-delay:.15s}.hs-pontos i:nth-child(3){animation-delay:.3s}

/* o cartão do resultado */
.hs-cartao{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:18px;background:rgba(255,255,255,.86);box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.10))}
body.dark .hs-cartao{background:rgba(255,255,255,.06)}
.hs-cartao-topo{display:flex;align-items:center;gap:10px}
.hs-cartao-topo div{display:flex;flex-direction:column;min-width:0}
.hs-cartao-topo strong{font-size:var(--f-headline,1.0625rem);font-weight:700;line-height:1.25}
.hs-cartao-topo div span{font-size:var(--f-footnote,0.8125rem);color:var(--label3,#7E6A59)}
.hs-ver{flex:none;display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:var(--f-caption1,0.75rem);font-weight:700;background:var(--fill,rgba(118,118,128,.12));color:var(--label2,#6B5A4C);white-space:nowrap}
.hs-ver.grande{min-height:32px;padding:0 14px;font-size:var(--f-subhead,0.9375rem)}
.hs-ver.v-ok{background:rgba(52,199,89,.16);color:var(--hs-verde)}
.hs-ver.v-atencao{background:rgba(255,141,40,.18);color:var(--hs-laranja)}
.hs-ver.v-nao{background:rgba(255,56,60,.14);color:var(--sys-red,#E9152D)}
body.dark .hs-ver.v-ok{color:var(--sys-green,#30D158)}
body.dark .hs-ver.v-atencao{color:var(--sys-orange,#FF9230)}
.hs-destaques{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hs-dest{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;background:var(--fill,rgba(118,118,128,.08));min-width:0}
.hs-dest small{font-size:var(--f-caption2,max(0.6875rem, calc(0.6875rem * var(--dt,1))));font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--label3,#7E6A59)}
.hs-dest b{font-size:var(--f-title2,1.375rem);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.hs-dest span{font-size:var(--f-caption1,0.75rem);color:var(--label3,#7E6A59);overflow-wrap:anywhere}
.hs-medidor{display:block;height:6px;border-radius:999px;background:var(--fill2,rgba(90,65,45,.12));overflow:hidden;margin-top:4px}
.hs-medidor i{display:block;height:100%;border-radius:999px;background:var(--sys-green,#34C759)}
.hs-chips{display:flex;flex-wrap:wrap;gap:6px}
.hs-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:var(--fill,rgba(118,118,128,.12));font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C)}
.hs-chip.alerta{background:rgba(255,56,60,.12);color:var(--sys-red,#E9152D)}
.hs-unis{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hs-uni{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.10))}
.hs-uni.sem p{margin:0;font-size:var(--f-footnote,0.8125rem);color:var(--label3,#7E6A59);line-height:1.4}
.hs-uni-cab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hs-uni-cab b{font-size:var(--f-subhead,0.9375rem)}
.hs-uni-cab span{font-size:var(--f-caption1,0.75rem);color:var(--label3,#7E6A59)}
.hs-trilho{position:relative;height:14px;border-radius:999px;background:var(--fill,rgba(118,118,128,.10))}
.hs-faixa{position:absolute;top:2px;bottom:2px;border-radius:999px;background:var(--sys-blue,#0088FF);opacity:.28}
.hs-esp{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--sys-blue,#0088FF);box-shadow:0 0 0 2px var(--surface,#fff)}
.hs-hoje{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--label3,#7E6A59)}
.hs-uni-num{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--f-footnote,0.8125rem);color:var(--label2,#6B5A4C)}
.hs-uni-num b{color:var(--label,#3A2A1E)}
.hs-graf .gr{background:transparent;box-shadow:none;padding:0}
.hs-pior{margin:0;padding:10px 12px;border-radius:12px;background:rgba(255,141,40,.10);font-size:var(--f-footnote,0.8125rem);line-height:1.45}
.hs-bloco h3{margin:0 0 6px;font-size:var(--f-subhead,0.9375rem);font-weight:700}
.hs-bloco ul{margin:0;padding-left:18px;font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.hs-prod dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:var(--f-footnote,0.8125rem)}
.hs-prod dt{color:var(--label2,#6B5A4C);overflow-wrap:anywhere}
.hs-prod dd{margin:0;font-weight:700;text-align:right}
.hs-cen{list-style:none;padding:0 !important;display:flex;flex-direction:column;gap:6px}
.hs-cen li{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.hs-cen b{color:var(--label,#3A2A1E)}
.hs-sup summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--sys-blue,#0088FF);list-style:none}
.hs-sup summary::-webkit-details-marker{display:none}
.hs-sup ul{margin:0;padding-left:18px;font-size:var(--f-footnote,0.8125rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.hs-sup em{font-style:normal;color:var(--label3,#7E6A59)}
.hs-nota,.hs-motivo{margin:0;font-size:var(--f-caption1,0.75rem);color:var(--label3,#7E6A59);line-height:1.4}
.hs-motivo{font-size:var(--f-body,1.0625rem);color:var(--label2,#6B5A4C)}

/* botões: alvo de 44 px */
.hs-acoes{display:flex;gap:8px;flex-wrap:wrap}
.hs-bt{min-height:44px;min-width:44px;padding:0 16px;border:0;border-radius:999px;background:var(--on-blue,#0062BD);color:#fff;font:inherit;font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer}
.hs-bt.secundario{background:var(--fill,rgba(118,118,128,.14));color:var(--label,#3A2A1E)}
.hs-bt.ghost{background:transparent;color:var(--sys-blue,#0088FF);padding:0 10px}
.hs-bt:focus-visible{outline:2px solid var(--sys-blue,#0088FF);outline-offset:2px}

/* feed */
.hs-feed-corpo{display:flex;flex-direction:column;gap:12px}
.hs-grupo{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--sep,rgba(58,42,30,.10))}
.hs-grupo header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hs-grupo header strong{font-size:var(--f-subhead,0.9375rem);line-height:1.3;min-width:0;overflow-wrap:anywhere}
.hs-grupo-ver{margin:0;font-size:var(--f-footnote,0.8125rem);font-weight:600;color:var(--label2,#6B5A4C);line-height:1.4}
.hs-vazio,.hs-erro{margin:0;padding:18px;text-align:center;font-size:var(--f-footnote,0.8125rem);color:var(--label3,#7E6A59)}
.hs-erro{color:var(--sys-red,#E9152D)}
.hs-carregando{min-height:160px;border-radius:16px;background:linear-gradient(100deg,rgba(255,255,255,.35) 30%,rgba(255,255,255,.75) 50%,rgba(255,255,255,.35) 70%) 0 0/300% 100%;animation:hs-brilho 1.4s ease-in-out infinite}
body.dark .hs-carregando{background:linear-gradient(100deg,rgba(255,255,255,.04) 30%,rgba(255,255,255,.10) 50%,rgba(255,255,255,.04) 70%) 0 0/300% 100%}

@keyframes hs-pulso{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes hs-entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes hs-ponto{0%,80%,100%{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:none}}
@keyframes hs-brilho{0%{background-position:100% 0}100%{background-position:0 0}}

@media (max-width:759px){
  .hs-sala,.hs-feed{padding:12px;border-radius:18px}
  .hs-destaques{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hs-dest:last-child{grid-column:1 / -1}
  .hs-lista{max-height:none}
  .hs-tipo{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .hs-vivo i,.hs-pontos i,.hs-msg.entra,.hs-carregando{animation:none}
  .hs-quem-item{transition:none}
}

/* /cerebro-unico.css */
/* 1.72.0 (Philippe, 29/09/2026): A INTERFACE ÚNICA DO CÉREBRO (web/cerebro.js, section.cu).

   O MESMO componente na tela "Cérebro" do menu (página cheia) e em qualquer outra tela (a folha que sobe a 95%, como a
   ficha do pedido, e no computador um painel centralizado de até 1000 px e 90% da altura).
   Padrão Apple (iOS 26 e macOS, Liquid Glass):
   - camadas: o conteúdo em material sólido (a folha em --vidro-solido, os cartões em superfície); o vidro só no que
     flutua (o campo "Pergunte ao Cérebro");
   - tipografia só pelos tokens --f-* (nada abaixo de 11 pt), texto colorido pelas tintas --ink-* e --on-* (contraste
     AA no claro e no escuro);
   - alvos de 44 pt, margens de 16 pt (20 pt a partir de 768 px), grade de 8, cantos concêntricos;
   - folha: sobe com a mola das folhas do iOS (--curva-folha, --dur-folha), fecha puxando (web/folha.js), alça, véu,
     respeita env(safe-area-inset-*) e a Dynamic Island; no app as peças nativas somem enquanto ela está aberta;
   - "reduzir movimento", "reduzir transparência" e "aumentar contraste"; sem rolagem para o lado. */

/* .sr-only (rótulo só para o leitor de tela) é o global do Hub (index.html, 10.2); aqui não se repete */

/* ------------------------------------------------------------------ tokens */
.cu,.cu-folha{--cu-margem:16px;--cu-fundo:var(--vidro-solido,#FBF8F4);--cu-cartao:var(--surface,#FFFFFF);--cu-raio:22px;--cu-sep:var(--sep,rgba(58,42,30,.14));--gr-rede:#8E3BA8}
body.dark :is(.cu,.cu-folha){--cu-fundo:#171412;--cu-cartao:var(--surface2,#2C2A27);--gr-rede:#D06BB8}
@media (min-width:768px){.cu,.cu-folha{--cu-margem:20px}}
:root{--cu-topo:max(calc(env(safe-area-inset-top,0px) + 10px), 5dvh)}
html.app-nativo{--cu-topo:calc(var(--app-status,env(safe-area-inset-top,0px)) + 10px)}
/* 1.74.0 (Philippe, 06/10/2026, conferência das barras do aplicativo): a barra de dentro da folha (o campo de perguntar)
   guardava embaixo o lugar da barra de abas nativa, que a folha esconde ao abrir: sobravam de 53 a 84 px vazios no pé.
   Na folha o pé é só a área segura (na tela Cérebro, com a barra de abas à vista, continua valendo o rodapé do aplicativo) */
html.app-nativo .cu-fundo{--bf-rodape:env(safe-area-inset-bottom,0px)}

/* ------------------------------------------------------------------ a folha */
.cu-fundo{position:fixed;inset:0;z-index:1290;display:none}
.cu-fundo.montada{display:block}
/* 1.74.0 (Philippe, 06/10/2026, quinta rodada, segunda fase, C2): a folha fechada solta o toque na hora. A moldura fica na
   tela os 0,4 s da saída (a folha descendo, o véu clareando) e segurava o toque: quem tocava logo depois de fechar o
   Cérebro não era atendido. Vale também para as peças de dentro que pedem o toque para si (a conversa, o campo). */
.cu-fundo:not(.aberta),.cu-fundo:not(.aberta) *{pointer-events:none!important}
.cu-veu{position:absolute;inset:0;background:var(--vidro-veu,rgba(58,42,30,.22));opacity:0;transition:opacity var(--dur-folha,.38s) var(--curva-folha,cubic-bezier(.32,.72,0,1))}
.cu-fundo.aberta .cu-veu{opacity:var(--veu,1)}
.cu-fundo.arrastando .cu-veu,.cu-fundo.hub-folha-arrastando .cu-veu{transition:none}
.cu-folha{position:absolute;left:0;right:0;top:var(--cu-topo);bottom:var(--ws-viewport-inset,0px);display:flex;flex-direction:column;overflow:hidden;background:var(--cu-fundo);color:var(--label,#3A2A1E);border-radius:var(--cu-raio) var(--cu-raio) 0 0;box-shadow:0 -8px 40px rgba(0,0,0,.18),var(--vidro-brilho,none);transform:translate3d(0,100%,0);transition:transform var(--dur-folha,.38s) var(--curva-folha,cubic-bezier(.32,.72,0,1));overscroll-behavior:contain;touch-action:pan-y}
.cu-fundo.aberta .cu-folha{transform:none}
.cu-folha>.cu{flex:1 1 auto;min-height:0}
/* computador e tablet: painel grande centralizado, com a mesma entrada curta das folhas (web/folha.js) */
@media (min-width:761px){
  .cu-folha{top:max(5dvh, calc(env(safe-area-inset-top,0px) + 16px));bottom:auto;left:0;right:0;margin:0 auto;width:min(1000px,calc(100vw - 48px));height:min(90dvh, calc(100dvh - 2 * max(5dvh, calc(env(safe-area-inset-top,0px) + 16px))));border-radius:26px;box-shadow:var(--vidro-sombra-alta,0 18px 46px rgba(40,25,12,.2)),0 0 0 .5px var(--cu-sep);opacity:0;transform:translate3d(0,14px,0) scale(.985);transition:transform var(--dur-folha,.38s) var(--curva-folha,cubic-bezier(.32,.72,0,1)),opacity .22s ease}
  .cu-fundo.aberta .cu-folha{opacity:1;transform:none}
  html.app-nativo .cu-folha{top:max(5dvh, var(--cu-topo))}
}
html.cu-folha-aberta body{overflow:hidden}
/* com a folha aberta, o que ficou atrás não pulsa nem desfoca (a folha é o foco) */
html.cu-folha-aberta body.ai-on main,html.cu-folha-aberta body.ai-on .top{transform:none!important;filter:none!important}
html.cu-folha-aberta body.ai-on::after,html.cu-folha-aberta body.ai-on::before{display:none!important}
html.cu-folha-aberta body.ai-on .aiframe{display:none!important}
html.cu-folha-aberta #app-lojas-web,html.cu-folha-aberta #acao-faixa{visibility:hidden}

/* ------------------------------------------------------------------ o componente */
.cu{position:relative;min-width:0;color:var(--label,#3A2A1E);font-size:var(--f-body,1.0625rem)}
.cu.cu-folha-modo{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);height:100%}
.cu :is(button,select){font-family:inherit}
.cu-ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* cabeçalho */
.cu-cab{grid-row:1;grid-column:1;position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;min-width:0;padding:0 var(--cu-margem) 12px;background:var(--cu-fundo);transition:box-shadow .2s ease}
.cu.cu-rolado .cu-cab{box-shadow:0 .5px 0 var(--cu-sep)}
.cu-alca{display:none;flex:none;width:36px;height:5px;border-radius:3px;background:var(--folha-alca,rgba(60,60,67,.3));margin:6px auto 0}
@media (max-width:760px){.cu-folha-modo .cu-alca{display:block}}
.cu-titulo-linha{display:flex;align-items:center;gap:12px;min-width:0;min-height:52px;padding-top:8px}
.cu-marca{flex:none;width:32px;height:35px}
.cu-titulos{flex:1;min-width:0}
/* título da folha = Headline, como o título de toda folha do Hub (index.html, 10.3); na página do menu, Large Title */
.cu-titulo{margin:0;font-size:var(--f-headline,1.0625rem);line-height:var(--lh-headline,1.375rem);font-weight:700;letter-spacing:-.01em}
.cu-contexto{margin:2px 0 0;font-size:var(--f-footnote,0.8125rem);line-height:1.35;color:var(--label2,#6B5A4C);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* o X é o botão de fechar do sistema (.hub-x, index.html 10.4): 44 pt no toque, 32 pt com mouse, xmark em traço, --fill */
.cu-x{flex:none;transition:transform var(--dur-rapida,.12s) ease,background-color var(--dur-rapida,.12s) ease}
.cu-x:active{transform:scale(var(--apertado-escala,.94))}
.cu-titulo-linha .cu-marca.ativo{animation:philippe-brain-breathe 3.6s ease-in-out infinite}
.cu.cu-ouvindo .cu-titulo-linha .cu-marca{transform:scale(calc(1 + var(--voice-level,0) * .18));filter:drop-shadow(0 0 4px rgba(255,207,83,.9)) drop-shadow(0 0 9px rgba(224,52,46,.35))}
.cu-msg .philippe-brain,.cu-vazio .philippe-brain,.cu-vazio-linha .philippe-brain{animation:none!important}

/* unidade (controle segmentado) e período (menu) */
.cu-filtros{display:flex;align-items:center;gap:8px;min-width:0}
.cu-filtros:empty{display:none}
.cu-seg{display:flex;min-width:0;border-radius:999px;background:var(--fill2,rgba(90,65,45,.12))}
.cu-seg button{flex:1 1 0;min-width:0;min-height:44px;margin:0;padding:3px;border:0;background:transparent;color:var(--label,#3A2A1E);font-size:var(--f-footnote,0.8125rem);font-weight:500;line-height:1.2;cursor:pointer;border-radius:999px;-webkit-tap-highlight-color:transparent}
.cu-seg button>span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color var(--dur-media,.2s) ease,box-shadow var(--dur-media,.2s) ease}
.cu-seg button:is([aria-checked="true"],[aria-selected="true"])>span{background:var(--cu-cartao);box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.05);font-weight:600}
body.dark .cu-seg button:is([aria-checked="true"],[aria-selected="true"])>span{background:rgba(255,255,255,.2);box-shadow:none}
.cu-seg button:focus-visible{outline:none}
.cu-seg button:focus-visible>span{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:-3px}
.cu-seg-unidade{flex:1 1 auto}
/* celular: cada unidade do tamanho do nome (Rede é curta, Cidade Nova é longa), para caber sem reticências ao lado do período */
@media (max-width:520px){.cu-filtros{flex-wrap:wrap}.cu-seg-unidade button{flex:1 1 auto}.cu-seg-unidade button>span{padding:0 8px}.cu-periodo{margin-left:auto}} /* se ainda não couber (letra maior, mais unidades), o período desce para a linha de baixo em vez de cortar o nome */
/* o período: botão de menu (pop-up) com a mesma altura, cápsula, letra e peso do controle segmentado ao lado (antes o select
   tinha 16 px em negrito ao lado de um controle de 13 pt); o select nativo fica por cima, transparente, com 16 px para o iOS
   não aproximar a tela ao tocar, e abre o seletor do sistema */
.cu-periodo{position:relative;flex:none;display:flex;align-items:center;min-height:44px;padding:0 32px 0 14px;border-radius:999px;background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E);font-size:var(--f-footnote,0.8125rem);font-weight:600;line-height:1.2;cursor:pointer;box-sizing:border-box}
.cu-periodo-rot{white-space:nowrap;pointer-events:none}
.cu-periodo select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:inherit;opacity:0;-webkit-appearance:none;appearance:none;font-size:max(1rem, var(--f-footnote,0.8125rem));color:var(--label,#3A2A1E);background:transparent;cursor:pointer}
.cu-periodo:focus-within:has(select:focus-visible){outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px}
.cu-periodo .cu-chev{position:absolute;right:10px;top:50%;width:16px;height:16px;margin-top:-8px;pointer-events:none;color:var(--label2,#6B5A4C);stroke-width:2.4}
.cu-unidade-fixa{margin:0;min-height:32px;display:flex;align-items:center;font-size:var(--f-subhead,0.9375rem);font-weight:600;color:var(--label2,#6B5A4C)}
/* seções: controle segmentado; rola para o lado dentro dele quando não cabe (a página nunca rola) */
.cu-secoes{min-width:0;margin:0 calc(-1 * var(--cu-margem));padding:0 var(--cu-margem);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;scroll-padding:0 var(--cu-margem)}
.cu-secoes::-webkit-scrollbar{display:none}
/* o que passa para a margem ao rolar some aos poucos (como as fileiras que rolam de lado no iOS), em vez de ser cortado seco
   na borda da tela ("Sala dos a"); a fileira que cabe inteira não é tocada (o esmaecido fica só na margem) */
.cu-secoes,.cu-sug{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--cu-margem),#000 calc(100% - var(--cu-margem)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--cu-margem),#000 calc(100% - var(--cu-margem)),transparent 100%)}
.cu-seg-secoes{width:max-content;min-width:100%}
.cu-seg-secoes button{flex:1 0 auto}
.cu-seg-secoes button>span{padding:0 14px}

/* corpo */
.cu-corpo{grid-row:2;grid-column:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px var(--cu-margem) 24px}
.cu-sec{display:flex;flex-direction:column;gap:16px;min-width:0;outline:none}
.cu-sec[hidden]{display:none}
.cu-sec-conteudo{display:flex;flex-direction:column;gap:16px;min-width:0;container-type:inline-size;container-name:cu}
/* os cartões e gráficos do portal medem o espaço do Cérebro (folha, painel ou página), não a janela */
.cu .cp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.cu .cp-graf{grid-template-columns:repeat(2,minmax(0,1fr))}
@container cu (max-width:760px){.cu .cp-graf{grid-template-columns:minmax(0,1fr)}}
@container cu (max-width:520px){.cu .cp-cards{grid-template-columns:minmax(0,1fr)}}
.cu .cp-un li{flex-wrap:wrap}
.cu .cp-un li b{white-space:normal;text-align:right}
.cu-grupo{display:flex;align-items:baseline;justify-content:space-between;gap:4px 12px;flex-wrap:wrap;margin:8px 0 0;font-size:var(--f-title3,1.25rem);font-weight:700;letter-spacing:-.015em;line-height:1.25}
.cu-grupo span{font-size:var(--f-footnote,0.8125rem);font-weight:500;letter-spacing:0;color:var(--label2,#6B5A4C)}
.cu-bloco{display:flex;flex-direction:column;gap:12px;min-width:0;scroll-margin-top:12px}
.cu-intro{margin:0;font-size:var(--f-subhead,0.9375rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.cu-nota{margin:0;font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C);line-height:1.4}
.cu-erro{margin:0;padding:12px 16px;border-radius:var(--r-card,16px);background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep);font-size:var(--f-subhead,0.9375rem);color:var(--label2,#6B5A4C);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cu-link{border:0;background:transparent;color:var(--ink-blue,#1F5FA8);font-size:var(--f-subhead,0.9375rem);font-weight:600;min-height:44px;padding:0 10px;border-radius:12px;cursor:pointer}
@media (hover:hover){.cu-link:hover{background:var(--fill,rgba(90,65,45,.08))}}
.cu-link:focus-visible,.cu-bt:focus-visible,.cu-chip:focus-visible,.cu-mic:focus-visible,.cu-enviar:focus-visible,.cu-x:focus-visible,.cu-voltar:focus-visible,.cu-atalho:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#2F7CF6));outline-offset:2px}
.cu-rodape-sec{margin:0;display:flex;justify-content:center}
.cu-recs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));gap:12px;min-width:0}
.cu-vazio-linha{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-card,16px);background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep)}
.cu-vazio-linha .cu-marca{width:28px;height:31px}
.cu-vazio-linha p{margin:0;font-size:var(--f-subhead,0.9375rem);color:var(--label2,#6B5A4C);line-height:1.4}
.cu-bt{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);font-weight:600;cursor:pointer}
.cu-bt.pri{background:var(--on-blue,#0062BD);color:#fff}
.cu-bt:active,.cu-chip:active,.cu-mic:active,.cu-enviar:active{transform:scale(var(--apertado-escala,.96))}
/* carregando */
.cu-carregando{display:flex;flex-direction:column;gap:12px}
.cu-esqueleto{height:132px;border-radius:var(--r-card,16px);background:linear-gradient(100deg,var(--fill,rgba(90,65,45,.06)) 30%,var(--fill2,rgba(90,65,45,.12)) 50%,var(--fill,rgba(90,65,45,.06)) 70%) 0 0/300% 100%;animation:hr-brilho 1.4s ease-in-out infinite}

/* ------------------------------------------------------------------ a conversa (o motor de sempre: web/philippe.js e os
   cartões do web/ai-workspace.js, dentro dela, em coluna) */
.cu-conversa-host{min-width:0;display:flex;flex-direction:column;gap:12px}
.cu-vazio{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px 8px 8px}
.cu-vazio .cu-marca{width:56px;height:61px}
.cu-vazio h3{margin:4px 0 0;font-size:var(--f-title2,1.375rem);font-weight:700;letter-spacing:-.015em}
.cu-vazio p{margin:0;max-width:460px;font-size:var(--f-subhead,0.9375rem);line-height:1.45;color:var(--label2,#6B5A4C)}
.cu-atalho{display:flex;align-items:center;gap:12px;margin-top:12px;width:min(100%,460px);min-height:56px;padding:8px 16px;border:0;border-radius:var(--r-card,16px);background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep);color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);text-align:left;cursor:pointer}
.cu-atalho>span{flex:1;display:flex;flex-direction:column;gap:2px}
.cu-atalho b{font-weight:600}
.cu-atalho>span{color:var(--label2,#6B5A4C)}
.cu-atalho b{color:var(--label,#3A2A1E)}
.cu-atalho .cu-ico{color:var(--label3,#7E6A59)}
.cu-log{display:flex;flex-direction:column;gap:12px;min-width:0}
.cu-log:empty{display:none}
.cu-msg{display:flex;align-items:flex-end;gap:8px;min-width:0;scroll-margin-top:12px}
.cu-msg p{margin:0}
.cu-msg.eu{align-self:flex-end;max-width:min(82%,560px);padding:10px 14px;border-radius:20px 20px 6px 20px;background:var(--on-blue,#0062BD);color:#fff;font-size:var(--f-body,1.0625rem);line-height:1.4;overflow-wrap:anywhere}
.cu-msg.cerebro{align-self:flex-start;max-width:min(92%,720px)}
.cu-msg.cerebro .cu-marca{width:26px;height:28px;margin-bottom:4px}
.cu-balao{min-width:0;padding:10px 14px;border-radius:20px 20px 20px 6px;background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep);font-size:var(--f-body,1.0625rem);line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.cu-msg-acoes{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;white-space:normal}
.cu-pontos{display:inline-flex;gap:5px;padding:6px 2px}
.cu-pontos i{width:7px;height:7px;border-radius:50%;background:var(--label2,#6B5A4C);opacity:.35;animation:cu-ponto 1.2s ease-in-out infinite}
.cu-pontos i:nth-child(2){animation-delay:.15s}.cu-pontos i:nth-child(3){animation-delay:.3s}
@keyframes cu-ponto{0%,80%,100%{opacity:.25;transform:none}40%{opacity:.9;transform:translateY(-3px)}}
/* o #aiz do ai-workspace embutido: sem posição própria, sem modo herói, cartões em coluna (o app e o KDS têm regras
   fortes para o #aiz solto; aqui ganham pelo peso do seletor) */
html body .cu #aiz.ws-root.ws-root{position:static;inset:auto;top:auto;right:auto;bottom:auto;left:auto;width:auto;max-width:none;height:auto;max-height:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;transform:none;pointer-events:auto;z-index:auto;background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible;animation:none;color:var(--label,#3A2A1E);align-content:normal;justify-items:stretch;grid-template-rows:none}
html body .cu #aiz.ws-root.ws-root.hidden,html body .cu #aiz.ws-root.ws-root.cu-oculto{display:none}
html body .cu #aiz.ws-root.ws-root :is(.ws-hero,.ws-controls,#ws-reply,.aisug){display:none!important}
html body .cu #aiz.ws-root.ws-root .ws-board{display:flex;flex-direction:column;gap:12px;order:0;grid-row:auto;width:100%;height:auto;max-height:none;margin:0;align-self:stretch;justify-self:stretch;pointer-events:auto}
html body .cu #aiz.ws-root.ws-root.ws-empty .ws-board{display:none}
html body .cu #aiz.ws-root.ws-root .ws-toolbar{min-height:44px;pointer-events:auto}
html body .cu #aiz.ws-root.ws-root .ws-topic{box-shadow:none;background:var(--fill,rgba(90,65,45,.08));-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--label,#3A2A1E)}
html body .cu #aiz.ws-root.ws-root .ws-topic i{background:var(--sys-green,#34C759)}
html body .cu #aiz.ws-root.ws-root .ws-grid{display:flex;flex-direction:column;gap:12px;width:100%;max-width:none;height:auto;max-height:none;pointer-events:auto;justify-self:stretch}
html body .cu #aiz.ws-root.ws-root .ws-grid>*{grid-column:auto!important;grid-row:auto!important}
html body .cu #aiz.ws-root.ws-root .ws-widget{height:auto!important;max-height:none!important;padding:16px;border-radius:var(--r-card,16px);background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep)!important;color:var(--label,#3A2A1E);-webkit-backdrop-filter:none;backdrop-filter:none}
html body .cu #aiz.ws-root.ws-root .ws-widget-body{max-height:none!important;overflow:visible}
html body .cu #aiz.ws-root.ws-root .ws-widget-title{font-size:var(--f-title3,1.25rem)}
html body .cu #aiz.ws-root.ws-root .ws-eyebrow{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));color:var(--label2,#6B5A4C)}
html body .cu #aiz.ws-root.ws-root .ws-btn{min-height:44px;padding:8px 16px;box-shadow:none;background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E)}
html body .cu #aiz.ws-root.ws-root .ws-btn.ws-icon{padding:0}
html body .cu #aiz.ws-root.ws-root .ws-btn.ws-icon{min-width:44px;width:44px;height:44px}
html body .cu #aiz.ws-root.ws-root .ws-btn.ws-primary{background:var(--on-green,#1E7F3A);color:#fff}
html body .cu #aiz.ws-root.ws-root .ws-filters button{min-height:44px;font-size:var(--f-footnote,0.8125rem)}
html body .cu #aiz.ws-root.ws-root .ws-chart-legend button{min-height:44px;padding:4px 12px;font-size:var(--f-footnote,0.8125rem)}
/* "Mais indicadores" e os itens do relatório abrem com o dedo: 44 pt, como todo alvo do Cérebro (tinham 36) */
html body .cu #aiz.ws-root.ws-root :is(.ws-secondary-metrics,.ws-report-items details)>summary{display:flex;align-items:center;min-height:44px}
/* o número grande do cartão na escala da Apple (Title 1; era 23 a 34 px pela largura da janela) e o título com o peso do sistema */
html body .cu #aiz.ws-root.ws-root .ws-metric{container-type:inline-size}
html body .cu #aiz.ws-root.ws-root .ws-metric strong{font-size:min(var(--f-title1,1.75rem), calc(100cqi / 7));letter-spacing:-.02em} /* em coluna estreita encolhe até caber (não passa da coluna) */
html body .cu #aiz.ws-root.ws-root .ws-comparison-card .ws-metric strong{font-size:min(var(--f-title2,1.375rem), calc(100cqi / 7))}
html body .cu #aiz.ws-root.ws-root .ws-widget-title{font-weight:700}
html body .cu #aiz.ws-root.ws-root :is(.ws-comparison-context small,.ws-metric small,.ws-notice,.ws-source,.ws-chart-readout,.ws-table){font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))))}
html body .cu #aiz.ws-root.ws-root :is(.ws-metric span,.ws-eyebrow,.ws-notice,.ws-source,.ws-chart-readout){color:var(--label2,#6B5A4C)}
html body .cu #aiz.ws-root.ws-root .ws-see-all{display:none}
@media (min-width:601px){html body .cu #aiz.ws-root.ws-root :is(.ws-filters-more,.ws-toolbar-more){display:none}}
/* o campo: o #ws-composer do ai-workspace, sem o vidro dele (o vidro é o da cápsula) */
html body .cu .ws-composer{width:100%;display:block;pointer-events:auto}
html body .cu .ws-composer .ws-input{min-height:44px!important;padding:0 6px 0 12px!important;border-radius:22px!important;background:transparent!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html body .cu .ws-composer .ws-brain{display:none!important}
html body .cu .ws-composer #aiinput{width:100%;min-height:44px!important;font-size:max(1rem, var(--f-body,1.0625rem))!important;color:var(--label,#3A2A1E)!important;background:transparent!important}
html body .cu .ws-composer #aiinput::placeholder{color:var(--label2,#6B5A4C)!important;opacity:1}

/* ------------------------------------------------------------------ Visão da operação */
.cu-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cu-kpi{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px;border-radius:14px;background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep)}
.cu-kpi small{font-size:var(--f-caption1,max(0.6875rem, calc(0.75rem * var(--dt,1))));font-weight:600;color:var(--label2,#6B5A4C)}
.cu-kpi b{font-size:var(--f-title2,1.375rem);font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.cu-cartao{padding:4px 12px 8px;border-radius:var(--r-card,16px);background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep);min-width:0}
@media (max-width:480px){.cu-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ------------------------------------------------------------------ o pé: sugestões e o campo com o microfone */
.cu-pe{grid-row:3;grid-column:1;position:relative;z-index:3;display:flex;flex-direction:column;gap:8px;min-width:0;padding:8px var(--cu-margem) calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--cu-fundo) 72%,transparent)}
.cu-folha-modo .cu-pe{padding-bottom:calc(12px + max(env(safe-area-inset-bottom,0px), 0px))}
.cu-sug{display:flex;gap:8px;min-width:0;margin:0 calc(-1 * var(--cu-margem));padding:2px var(--cu-margem);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.cu-sug::-webkit-scrollbar{display:none}
.cu-sug:empty{display:none}
.cu-chip{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--cu-cartao);box-shadow:0 0 0 .5px var(--cu-sep);color:var(--label,#3A2A1E);font-size:var(--f-subhead,0.9375rem);font-weight:500;white-space:nowrap;cursor:pointer}
@media (hover:hover){.cu-chip:hover{background:color-mix(in srgb,var(--cu-cartao) 92%,var(--label,#3A2A1E))}}
.cu-compor{display:flex;align-items:center;gap:4px;min-width:0;padding:4px;border-radius:26px;background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,none),var(--vidro-sombra,0 8px 28px rgba(40,25,12,.14)),0 0 0 .5px var(--cu-sep)}
.cu-compor:focus-within{box-shadow:var(--vidro-brilho,none),var(--vidro-sombra,0 8px 28px rgba(40,25,12,.14)),0 0 0 2px color-mix(in srgb,var(--sys-blue,#0088FF) 45%,transparent)}
.cu-campo{flex:1 1 auto;min-width:0}
.cu-mic,.cu-enviar{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;transition:transform var(--dur-rapida,.12s) ease,background-color var(--dur-media,.2s) ease,box-shadow .12s linear}
.cu-mic{background:var(--fill2,rgba(90,65,45,.12));color:var(--label,#3A2A1E)}
.cu-mic.ligado{background:color-mix(in srgb,var(--sys-red,#FF3B30) 16%,var(--cu-cartao));color:var(--ink-red,#B42318)}
.cu-mic.ouvindo{box-shadow:0 0 0 calc(2px + var(--voice-level,0) * 8px) color-mix(in srgb,var(--sys-red,#FF3B30) 30%,transparent)}
.cu-enviar{background:var(--on-blue,#0062BD);color:#fff}
.cu-enviar .cu-ico{stroke-width:2.6}
@media (max-width:760px){.cu-pe:focus-within .cu-sug{display:none}}

/* ------------------------------------------------------------------ páginas empilhadas (detalhe, Sala, dispensadas) */
.cu-pilha{grid-row:1 / 3;grid-column:1;z-index:4;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--cu-fundo);display:flex;flex-direction:column}
.cu-pilha[hidden]{display:none}
.cu-folha-modo.cu-empilhado>:is(.cu-cab,.cu-corpo){visibility:hidden}
.cu-pilha.entra{animation:cu-empurra .34s var(--curva-folha,cubic-bezier(.32,.72,0,1))}
@keyframes cu-empurra{from{transform:translate3d(28%,0,0);opacity:.35}to{transform:none;opacity:1}}
.cu-nav{position:sticky;top:0;z-index:2;flex:none;display:flex;flex-direction:column;padding:0 var(--cu-margem) 8px;background:var(--cu-fundo);box-shadow:0 .5px 0 var(--cu-sep)}
.cu-nav-linha{display:flex;align-items:center;gap:8px;min-height:52px;padding-top:8px}
.cu-voltar{flex:none;display:inline-flex;align-items:center;gap:0;min-height:44px;max-width:40%;padding:0 10px 0 0;border:0;border-radius:12px;background:transparent;color:var(--ink-blue,#1F5FA8);font-size:var(--f-body,1.0625rem);font-weight:500;cursor:pointer}
.cu-voltar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-voltar .cu-ico{width:24px;height:24px;stroke-width:2.6}
.cu-nav-tit{flex:1;min-width:0;margin:0;text-align:center;font-size:var(--f-headline,1.0625rem);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-pilha-corpo{flex:1 0 auto;padding:16px var(--cu-margem) 32px;outline:none;min-width:0}
.cu-pilha-corpo .hr-folha-lista{margin-top:12px}
.cu-sala{min-width:0}

/* ------------------------------------------------------------------ a tela Cérebro do menu (página cheia) */
#view-cer{padding:0}
.cu.cu-pagina{display:block;max-width:1180px;margin:0 auto;padding:4px 0 0}
.cu-pagina .cu-cab{padding-top:4px;background:transparent}
/* na página não há o que fechar: o X é o .hub-x do sistema, cuja regra tem peso de id (index.html 10.4), então o id aqui */
#cerebro-unico.cu-pagina .cu-x.hub-x{display:none}
.cu-pagina .cu-titulo{font-size:var(--f-largetitle,2.125rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}
.cu-pagina .cu-marca{width:40px;height:44px}
.cu-pagina .cu-titulo-linha{min-height:56px}
.cu-pagina .cu-contexto{white-space:normal}
.cu-pagina .cu-corpo{overflow:visible;padding-bottom:16px}
.cu-pagina .cu-pe{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-width:760px;margin:8px auto 0;padding:8px;border-radius:30px;background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,none),var(--vidro-sombra-alta,0 18px 46px rgba(40,25,12,.2)),0 0 0 .5px var(--cu-sep)}
.cu-pagina .cu-sug{margin:0;padding:0 2px;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent 100%)}
.cu-pagina .cu-compor{background:var(--cu-cartao);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 0 0 .5px var(--cu-sep)}
@media (max-width:760px){.cu-pagina .cu-pe{margin:8px 8px 0}}
html.app-nativo .cu-pagina .cu-pe{bottom:calc(var(--rodape-app,0px) + 8px)}
/* o painel flutuante da página: vidro mais denso (o texto que passa por baixo não compete com as sugestões) */
.cu-pagina .cu-pe{background:rgba(251,248,244,.95)}
body.dark .cu-pagina .cu-pe{background:rgba(30,27,24,.95)}
.cu-pagina .cu-pilha{display:block;overflow:visible;background:transparent}
.cu-pagina .cu-pilha[hidden]{display:none}
.cu-pagina.cu-empilhado>:is(.cu-cab,.cu-corpo){display:none}
.cu-pagina .cu-nav{position:relative;background:transparent;box-shadow:none}
.cu-pagina .cu-nav .cu-alca{display:none}
/* no celular, o painel que flutua sobre a página fica só com o campo (as sugestões cobriam um terço da tela por cima dos
   cartões); as sugestões aparecem na Conversa, onde a pergunta acontece. Na folha elas continuam (o pé é uma linha própria,
   não fica por cima do conteúdo) */
.cu-pagina:not([data-secao="conversa"]) .cu-sug{display:none} /* 1.72.0: também no computador (as sugestões passavam por cima do texto da Visão geral) */

/* ------------------------------------------------------------------ o Suporte, um jeito do mesmo Cérebro (web/suporte.js) */
.cu-suporte-host{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1 1 auto}
.cu-suporte-host[hidden]{display:none}
.cu-folha-modo.cu-jeito-suporte[data-secao="conversa"] .cu-corpo{overflow:hidden;display:flex;flex-direction:column;padding-bottom:0}
.cu-folha-modo.cu-jeito-suporte[data-secao="conversa"] #cu-sec-conversa{flex:1 1 auto;min-height:0}
.cu-jeito-suporte[data-secao="conversa"] .cu-pe{display:none}
.cu-jeito-suporte :is(.cu-conversa-vazia,.cu-conversa-host){display:none}
html body #suporte-raiz.sup-embutido{position:relative;inset:auto;z-index:auto;pointer-events:auto;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
html body #suporte-raiz.sup-embutido[hidden]{display:none}
html body #suporte-raiz.sup-embutido .sup-veu{display:none}
html body #suporte-raiz.sup-embutido .sup-painel{position:relative;inset:auto;top:auto;right:auto;bottom:auto;left:auto;width:auto;flex:1 1 auto;min-height:0;transform:none!important;opacity:1!important;transition:none;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--label,#3A2A1E)}
html body #suporte-raiz.sup-embutido .sup-painel::before{display:none}
html body #suporte-raiz.sup-embutido .sup-topo{padding:0 0 8px;border:0;justify-content:flex-end;gap:8px}
html body #suporte-raiz.sup-embutido .sup-topo :is(.sup-marca-cerebro,.sup-titulos,[data-sup-fechar]){display:none}
html body #suporte-raiz.sup-embutido .sup-rolagem{padding:8px 0}
html body #suporte-raiz.sup-embutido .sup-compor{align-items:center;gap:4px;margin:4px 0 calc(12px + env(safe-area-inset-bottom,0px));padding:4px;border:0;border-radius:26px;background:var(--vidro-grosso,rgba(252,250,247,.86));-webkit-backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));backdrop-filter:blur(var(--vidro-desfoque,24px)) saturate(var(--vidro-saturacao,180%));box-shadow:var(--vidro-brilho,none),var(--vidro-sombra,0 8px 28px rgba(40,25,12,.14)),0 0 0 .5px var(--cu-sep)}
html body #suporte-raiz.sup-embutido .sup-compor textarea{min-height:44px;padding:11px 12px;background:transparent;box-shadow:none;font-size:max(1rem, var(--f-body,1.0625rem))}
html body #suporte-raiz.sup-embutido .sup-enviar{background:var(--on-blue,#0062BD)}
html body #suporte-raiz.sup-embutido .sup-pessoa .sup-bolha{background:var(--on-blue,#0062BD)}
html body #suporte-raiz.sup-embutido .sup-assistente .sup-bolha{background:var(--cu-cartao)}
.cu-pagina #suporte-raiz.sup-embutido{min-height:70dvh}

/* ------------------------------------------------------------------ acessibilidade do sistema */
@media (prefers-reduced-motion:reduce){
  .cu-folha,.cu-veu,.cu-seg button>span,.cu-x,.cu-mic,.cu-enviar{transition:none}
  .cu-pilha.entra,.cu-esqueleto,.cu-pontos i,.cu-titulo-linha .cu-marca.ativo{animation:none}
  .cu.cu-ouvindo .cu-titulo-linha .cu-marca{transform:none}
}
@media (prefers-reduced-transparency:reduce){
  .cu-compor{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--cu-cartao)}
}
@media (prefers-contrast:more){
  .cu-seg{box-shadow:inset 0 0 0 1px var(--label3,#7E6A59)}
  .cu-chip,.cu-atalho,.cu-balao,.cu-kpi,.cu-cartao,.cu-vazio-linha{box-shadow:0 0 0 1px var(--label3,#7E6A59)}
}

/* 1.74.0 (Philippe, 03/10/2026): o Cérebro em carrossel (web/hub-carrossel.js). Visão geral: cada peça (resumo, texto, cada
   gráfico, as pizzarias do raio) é um cartão da faixa .cu-car; "Para esta tela": uma recomendação por cartão (.cu-recs). */
.cu-car>*{margin:0;min-width:0}
.cu-car>.cu-bloco{padding:14px 16px;border-radius:var(--r-card,16px);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
.cu-car>.cu-bloco .cu-cartao{box-shadow:none;padding:0;background:transparent}
.cu-car-resumo .cp-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cu-car-conc>.cu-grupo{margin-top:0}
/* computador: o Resumo ocupa a largura de dois cartões, com os quatro números lado a lado */
.cu-car.hcar-pc>.cu-car-resumo{flex-basis:calc(var(--hcar-w,24rem) * 2 + var(--hcar-vao,.75rem))}
.cu-car.hcar-pc>.cu-car-resumo .cp-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
/* a recomendação na altura da tela: o texto rola por dentro do cartão e os botões ficam presos no pé dele, sempre à vista */
.cu-recs.hcar-tela>li>.hr-botoes{position:sticky;bottom:-10px;margin:auto -16px -10px;padding:8px 16px 10px;background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 -.5px 0 var(--sep,rgba(58,42,30,.14));border-radius:0 0 var(--r-card,16px) var(--r-card,16px)}
.cu-recs>li[data-cu-outra]>.hr-tag::after{content:"De outra tela";margin-left:auto;padding:1px 8px;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);font-weight:600;white-space:nowrap}
.cu:has(.cu-car.hcar-tela) .cu-corpo{padding-bottom:4px}
@media (max-width:420px){.cu-car-resumo .cp-cards{grid-template-columns:minmax(0,1fr)}}

/* /hub-comercial.css */
.hc{max-width:1280px;margin:0 auto;padding:24px;color:var(--text)}.hc-header,.hc-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hc-header{justify-content:space-between;margin-bottom:22px}.hc h2{font-size:var(--f-title1,1.75rem);letter-spacing:-.03em;margin:0}.hc h3{font-size:calc(1.1875rem * var(--dt));margin:0 0 18px}.hc-eyebrow{color:var(--sub);font-size:calc(0.8125rem * var(--dt));margin:0 0 5px}.hc-card{background:var(--card,rgba(255,255,255,.55));border:1px solid var(--hair);border-radius:18px;padding:22px;margin:18px 0}.hc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hc-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:calc(0.875rem * var(--dt));font-weight:600}.hc-field input,.hc-field select,.hc-field textarea{font:inherit;font-weight:400;color:var(--text);background:var(--off,rgba(120,120,128,.08));border:1px solid var(--hair);border-radius:10px;padding:11px;min-height:44px;width:100%;box-sizing:border-box}.hc-field:has(input[type=hidden]){display:none}.hc-field textarea{min-height:96px;resize:vertical}.hc-check{display:flex;align-items:center;gap:9px;min-height:44px}.hc-check input{width:20px;height:20px;accent-color:var(--blue)}.hc-wide,.hc-grid>.hc-note{grid-column:1/-1}.hc-actions{margin-top:16px}.hc-header .hc-actions{margin-top:0}.hc-note{font-size:calc(0.875rem * var(--dt));color:var(--sub);line-height:1.6}.hc-table{overflow:auto;border:1px solid var(--hair);border-radius:14px;margin:18px 0}.hc-table table{border-collapse:collapse;width:100%;font-size:calc(0.875rem * var(--dt))}.hc-table th,.hc-table td{padding:14px;text-align:left;border-bottom:1px solid var(--hair);white-space:nowrap}.hc-table th{color:var(--sub);font-weight:600}.hc-table tr:last-child td{border-bottom:0}.hc-error{color:var(--red,#b3261e)}.hc-ok{color:var(--green,#24833d)}.hc-feedback{font-size:calc(0.875rem * var(--dt));max-width:680px}.hc-inbox{display:grid;grid-template-columns:minmax(230px,1fr) 2fr;gap:20px}.hc-inbox>div:first-child button{display:block;width:100%;text-align:left;margin:8px 0}.hc-message{background:var(--off,rgba(120,120,128,.1));border-radius:13px;padding:12px;margin:12px 36px 12px 0;overflow-wrap:anywhere}.hc-message.out{margin:12px 0 12px 36px;border:1px solid var(--hair)}.hc-message p{white-space:pre-wrap;margin:0 0 8px}.hc-message small{color:var(--sub)}.hc-messages{max-height:480px;overflow:auto}.hc-steps{list-style:none;padding:0}.hc-steps li{margin:14px 0}.hc-status{display:inline-block;min-width:80px;font-size:max(0.6875rem,calc(0.75rem * var(--dt)));background:var(--off,rgba(120,120,128,.15));border-radius:8px;padding:5px 8px;margin-right:10px}.hc-status.done{color:var(--green)}.hc details summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.hc details summary span{color:var(--sub);font-size:calc(0.875rem * var(--dt))}.hc details form{border:0;background:none;margin:18px 0 0;padding:0}.hc-dialog{color:var(--text);background:var(--bg,#f5f2ec);border:1px solid var(--hair);border-radius:24px;width:min(1180px,94vw);max-height:92vh;padding:0}.hc-dialog::backdrop{background:rgba(0,0,0,.45);backdrop-filter:blur(5px)}.hc-dialog-top{position:sticky;top:0;z-index:2;background:var(--bg,#f5f2ec);padding:12px 20px;display:flex;justify-content:flex-end}.hc .btn:focus-visible,.hc-field input:focus-visible,.hc-field select:focus-visible,.hc-field textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}@media(max-width:700px){.hc{padding:16px}.hc-grid,.hc-inbox{grid-template-columns:1fr}.hc-card{padding:16px}.hc h2{font-size:calc(1.5625rem * var(--dt))}.hc-header{align-items:flex-start}.hc-header .hc-actions{width:100%}.hc-header .hc-field{flex:1}.hc details summary{align-items:flex-start;flex-direction:column}.hc-dialog{width:96vw}.hc-table th,.hc-table td{padding:10px}}

body.role-gerente:not(.conta-pessoal) .gestor-delegavel{display:none}
.hc-onboarding{max-width:1040px}.hc-onboarding .btn{min-height:44px;white-space:normal}.hc-onboarding-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:24px;align-items:center}.hc-onboarding-overview h3{font-size:calc(1.75rem * var(--dt));letter-spacing:-.025em;margin-bottom:12px}.hc-onboarding-overview .hc-note{margin-bottom:0}.hc-onboarding-progress{display:flex;flex-direction:column;gap:8px;font-size:calc(0.8125rem * var(--dt));color:var(--sub)}.hc-onboarding-progress strong{font-size:calc(2rem * var(--dt));color:var(--text);letter-spacing:-.025em}.hc-onboarding-progress strong span{font-size:calc(1rem * var(--dt));font-weight:400;color:var(--sub)}.hc-onboarding-progress progress{width:100%;height:8px;border:0;border-radius:8px;accent-color:var(--green);overflow:hidden}.hc-onboarding-progress progress::-webkit-progress-bar{background:var(--off);border-radius:8px}.hc-onboarding-progress progress::-webkit-progress-value{background:var(--green);border-radius:8px}.hc-onboarding-progress progress::-moz-progress-bar{background:var(--green);border-radius:8px}.hc-onboarding-next{border-color:var(--green);padding:28px}.hc-onboarding-next h3{margin:12px 0}.hc-onboarding-next [data-ob-primary]{background:var(--on-green,#16793b);color:#fff}.hc-onboarding-instructions{padding-left:24px;margin:18px 0;font-size:calc(0.9375rem * var(--dt));line-height:1.6}.hc-onboarding-instructions li{padding:4px 0 4px 5px}.hc-onboarding-evidence{border-left:3px solid var(--hair);padding-left:15px;margin:20px 0}.hc .hc-onboarding-evidence>summary{font-size:calc(0.8125rem * var(--dt));min-height:44px;font-weight:600}.hc-onboarding-evidence .hc-note{margin:5px 0}.hc-onboarding-list{margin:32px 0}.hc-onboarding-step{border-top:1px solid var(--hair);padding:0}.hc-onboarding-step:last-child{border-bottom:1px solid var(--hair)}.hc .hc-onboarding-step>summary{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:72px;padding:14px 4px;list-style:none}.hc-onboarding-step>summary::-webkit-details-marker{display:none}.hc .hc-onboarding-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--off);color:var(--text);font-size:calc(0.875rem * var(--dt))}.hc-onboarding-step-title{display:flex;flex-direction:column;gap:6px;min-width:0}.hc .hc-onboarding-step-title b{font-size:calc(1rem * var(--dt));color:var(--text);font-weight:600}.hc .hc-onboarding-step-title>span{font-size:calc(0.8125rem * var(--dt));line-height:1.5;overflow-wrap:anywhere}.hc .hc-onboarding-step .hc-status{margin:0;min-width:0}.hc-onboarding-step-body{padding:0 4px 20px 50px}.hc-onboarding-step summary:focus-visible,.hc-onboarding-optional>summary:focus-visible,.hc-onboarding-context>summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:10px}.hc-onboarding-optional>summary{min-height:44px}.hc-onboarding-updated{font-size:var(--f-caption1)}.hc-onboarding-context{max-width:1040px}.hc-onboarding-context>summary{min-height:44px}@media(max-width:600px){.hc-onboarding-overview{grid-template-columns:1fr;gap:20px}.hc-onboarding-overview h3{font-size:calc(1.5625rem * var(--dt))}.hc-onboarding-progress{max-width:none;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:6px 12px}.hc-onboarding-progress progress{grid-column:1/-1}.hc-onboarding-next{padding:20px}.hc-onboarding .hc-actions>.btn{flex:1 1 100%}.hc .hc-onboarding-step>summary{grid-template-columns:30px minmax(0,1fr);gap:10px}.hc .hc-onboarding-step .hc-status{grid-column:2;justify-self:start}.hc-onboarding-step-body{padding-left:8px}.hc-onboarding-step-title>span{font-size:calc(0.8125rem * var(--dt))}}@media(prefers-reduced-motion:reduce){.hc-onboarding *{scroll-behavior:auto!important;transition:none!important}}
.hc-import-row{border:1px solid var(--hair);border-radius:12px;padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hc-import-row legend{font-weight:650;padding:0 8px}.hc-import-row .hc-note{grid-column:1/-1}@media(max-width:700px){.hc-import-row{grid-template-columns:1fr}}

.hc-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.hc-photo{width:100%;max-height:300px;object-fit:contain;background:var(--off);border-radius:14px}.hc-photo-grid .hc-card{margin:0}.hc-dialog .hc-body{overflow-wrap:anywhere}

.logo-editor{max-width:1000px;padding:24px}.logo-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.logo-head h2{margin:0}.logo-head>.btn{width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;border-radius:50%}.logo-head>.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.logo-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0}.logo-comparison h3{font-size:calc(1.0625rem * var(--dt));margin:0 0 10px}.logo-checker{min-height:180px;height:clamp(180px,35vh,350px);display:flex;align-items:center;justify-content:center;border:1px solid var(--hair);border-radius:20px;overflow:hidden;background-color:#f5f2ed;background-image:linear-gradient(45deg,#e1dfda 25%,transparent 25%),linear-gradient(-45deg,#e1dfda 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e1dfda 75%),linear-gradient(-45deg,transparent 75%,#e1dfda 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.logo-checker img,.logo-checker canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.logo-checker canvas{touch-action:none;cursor:crosshair;outline-offset:-4px}.logo-tools{gap:8px}.logo-tools [aria-pressed=true]{background:var(--green,#277d49);color:white}.logo-controls{margin-top:18px}.logo-controls input[type=range]{padding:0;accent-color:var(--green,#277d49)}.logo-final{max-width:300px;height:240px;margin:0 auto 20px}.logo-editor [hidden]{display:none!important}.logo-editor .btn{min-height:44px}@media(max-width:600px){.logo-editor{padding:18px}.logo-comparison{gap:12px}.logo-checker{height:200px;min-height:0}.logo-tools .btn{flex:1 1 28%;padding:10px 8px}.logo-head h2{font-size:calc(1.5625rem * var(--dt))}.logo-controls{grid-template-columns:1fr 1fr}}

.coverage-editor{padding:24px;max-width:1000px}.coverage-editor .btn{min-height:44px}.coverage-map{height:clamp(260px,45vh,440px);border:1px solid var(--hair);border-radius:20px;background:var(--off);margin-top:20px;display:grid;place-items:center;padding:12px;box-sizing:border-box;color:var(--sub);font-size:calc(0.875rem * var(--dt));line-height:1.6}.coverage-map:has(.gm-style){display:block;padding:0;overflow:hidden}.coverage-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:16px}.coverage-zone legend{font-weight:600;padding:0 8px}.coverage-zone [aria-pressed=true]{color:var(--blue);border-color:var(--blue)}@media(max-width:600px){.coverage-editor{padding:16px}.coverage-row{grid-template-columns:1fr 1fr}.coverage-row>.btn{grid-column:1/-1}.coverage-map{height:300px}}

.hc-onboarding-chevron{display:inline-block;margin-left:10px;transition:transform .18s ease}.hc-onboarding-step[open]>summary .hc-onboarding-chevron{transform:rotate(180deg)}.hc .hc-onboarding-evidence>summary::after{content:"+";font-size:calc(1.125rem * var(--dt));color:var(--sub)}.hc .hc-onboarding-evidence[open]>summary::after{content:"−"}

/* Acerto distingue saldo devedor, remuneração e recibos ainda pendentes. */
.hc-settlement-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px;margin:20px 0}.hc-settlement-totals dt{font-size:calc(0.875rem * var(--dt));color:var(--sub)}.hc-settlement-totals dd{font-weight:650;margin:6px 0 0;font-variant-numeric:tabular-nums}.hc-settlement-balance{font-size:calc(1.125rem * var(--dt));font-weight:650}.hc-cash-obligations{list-style:none;padding:0}.hc-cash-obligations li{padding:14px 0;border-top:1px solid var(--hair)}.hc-cash-obligations li>div{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.hc-cash-obligations .hc-note{margin-bottom:0}

.hc .hc-onboarding-step .hc-status.done{color:var(--on-green,#16793b)}

.hc-route-status{white-space:normal;min-width:220px;max-width:420px}.hc-route-status li{margin:8px 0}

/* Formulários integrados usam as mesmas superfícies e áreas de toque do Hub. */
.hc-card>fieldset{border:0;padding:0;margin:0;min-width:0}
.hc-card>fieldset[disabled]{opacity:.65}
.hc details>summary{min-height:44px}
.hc details>summary::after{content:"⌄";flex:none;color:var(--sub);font-size:calc(1.25rem * var(--dt));margin-left:auto}
.hc details[open]>summary::after{transform:rotate(180deg)}
.hc-card>fieldset details{margin-top:16px}

/* Escolhas guiadas são conteúdo sólido; nenhum modelo salva ou ativa sozinho. */
.hc-presets{margin:20px 0 24px}.hc-presets h4,.hc-hours-guide h4{font-size:var(--f-headline,calc(1.0625rem * var(--dt)));margin:0 0 8px}.hc-preset-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px;margin-top:16px}.hc-preset-choice{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;font:inherit;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:16px;padding:18px;min-height:44px;cursor:pointer}.hc-preset-choice strong{font-size:calc(1.0625rem * var(--dt));line-height:1.3}.hc-preset-choice span{font-size:calc(0.875rem * var(--dt));line-height:1.5;color:var(--sub)}.hc-preset-choice b{font-size:calc(0.875rem * var(--dt));font-weight:600;color:var(--blue);margin-top:auto;padding-top:4px}.hc-preset-choice:hover{border-color:var(--blue)}.hc-preset-choice:focus-visible,.hc-config-disclosure>summary:focus-visible,.hc-hours-guide .btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.hc-preset-preview:not(:empty){border:1px solid var(--hair);background:var(--card);padding:18px;border-radius:14px;margin-top:16px}.hc-preset-preview ul{padding-left:20px;font-size:calc(0.875rem * var(--dt));line-height:1.6}.hc-preset-preview li{margin:8px 0;overflow-wrap:anywhere}.hc .hc-config-disclosure{border-top:1px solid var(--hair);padding-top:6px}.hc .hc-config-disclosure>summary{min-height:56px;padding:8px 0;align-items:center}.hc-config-disclosure>summary>span{display:flex;flex-direction:column;gap:5px;min-width:0}.hc-config-disclosure>summary b{font-size:calc(0.9375rem * var(--dt));color:var(--text)}.hc-config-disclosure>summary small{font-size:calc(0.8125rem * var(--dt));font-weight:400;color:var(--sub);line-height:1.5}.hc-config-disclosure>div.hc-grid{padding:14px 0}.hc-hours-guide{padding-top:8px}.hc-hour-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 16px;margin:14px 0}.hc-hours-guide>.btn{margin-top:16px;min-height:44px}.hc-preset-preview .btn{min-height:44px;white-space:normal}.hc-customer-list .hc-table{max-height:380px;overflow:auto}.hc-presets~.hc-grid{margin-top:16px}@media(max-width:600px){.hc-preset-choices{grid-template-columns:1fr}.hc-preset-choice{padding:16px}.hc-preset-preview{padding:14px}.hc-preset-preview .btn{width:100%}.hc .hc-config-disclosure>summary{flex-direction:row}.hc-hour-days{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.hc-preset-choice{transition:none}}
.hc-program-navigation{margin:22px 0}.hc-program-tabs{display:flex;gap:4px;padding:4px;border:1px solid var(--hair);border-radius:13px;background:var(--off);width:max-content;max-width:100%}.hc-program-tab{font:inherit;font-size:calc(0.875rem * var(--dt));min-height:44px;min-width:100px;border:0;padding:10px 16px;color:var(--sub);background:transparent;border-radius:9px;cursor:pointer}.hc-program-tab[aria-selected=true]{background:var(--card);color:var(--text);font-weight:650;box-shadow:0 1px 4px rgba(0,0,0,.08)}.hc-program-tab:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.hc [data-hc-program][hidden]{display:none!important}@media(max-width:600px){.hc-program-tabs{width:100%}.hc-program-tab{flex:1;min-width:0;padding:10px 8px}}

/* Visual choices retain the canonical proposal and its complete review. */
.hc .hc-presets .hc-preset-choice{gap:1rem;padding:1.25rem;border-radius:1.25rem;min-width:0;max-width:100%;color:var(--text);background:var(--off);transition:background-color 140ms ease,border-color 140ms ease,transform 100ms ease;white-space:normal}
.hc .hc-presets .hc-preset-head{display:flex;align-items:flex-start;gap:.875rem;width:100%;min-width:0}
.hc .hc-presets .hc-preset-heading{display:grid;gap:.375rem;min-width:0}
.hc .hc-presets .hc-preset-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.875rem;background:var(--fill);color:var(--ink-green)}
.hc-preset-icon svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.hc .hc-presets .hc-preset-choice strong{font-size:var(--f-headline);line-height:1.35;overflow-wrap:anywhere}
.hc .hc-presets .hc-preset-purpose{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}
.hc .hc-presets .hc-preset-facts{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0;max-width:100%}
.hc .hc-presets .hc-preset-facts>span{font-size:var(--f-footnote);line-height:1.4;padding:.375rem .5rem;border:1px solid var(--hair);border-radius:.625rem;background:var(--card);color:var(--text);overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}
.hc .hc-presets .hc-preset-cta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;margin-top:auto;color:var(--ink-blue);font-size:var(--f-subhead);font-weight:650;line-height:1.4}
.hc .hc-presets .hc-preset-cta>span{font-size:var(--f-title3);color:inherit}
.hc .hc-presets .hc-preset-selected{font-size:var(--f-footnote);line-height:1.4;color:var(--text);font-weight:600;overflow-wrap:anywhere}
.hc .hc-presets .hc-preset-choice.is-review{border-color:var(--ink-green);box-shadow:inset 0 0 0 1px var(--ink-green)}
.hc .hc-presets .hc-preset-choice:focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}
.hc .hc-presets .hc-preset-choice:active{transform:scale(.985)}
@media(hover:hover) and (pointer:fine){.hc .hc-presets .hc-preset-choice:hover{background:var(--fill);border-color:var(--ink-blue)}}
@media(max-width:600px){.hc .hc-presets .hc-preset-choice{padding:1rem}.hc .hc-presets .hc-preset-head{gap:.75rem}}
@media(prefers-reduced-motion:reduce){.hc .hc-presets .hc-preset-choice{transition:none}.hc .hc-presets .hc-preset-choice:active{transform:none}}

/* Caminhos de atendimento e busca no mesmo catálogo, sem telas ou dados paralelos. */
.hc-attendant-path { border-top:1px solid var(--hair); padding:4px 0; }
.hc-attendant-path > summary,.hc-config-disclosure > summary { min-height:52px; padding:10px 2px; cursor:pointer; }
.hc-attendant-path > summary span { display:inline-grid; gap:4px; max-width:calc(100% - 28px); vertical-align:middle; }
.hc-attendant-path > summary small { color:var(--sub); font-size:calc(0.875rem * var(--dt)); line-height:1.4; font-weight:400; }
.hc-attendant-path > .hc-actions { margin:12px 0; }
.hc-attendant-path > summary:focus-visible { outline:3px solid var(--blue); outline-offset:2px; border-radius:8px; }
.hc-attendant-guide .hc-card { margin:12px 0; }
.hc [data-hc-catalog-offer][hidden] { display:none!important; }
.hc-import-issues { font-size:calc(0.875rem * var(--dt)); line-height:1.6; }
.hc-import-choice { border:1px solid var(--hair); border-radius:12px; padding:12px; margin:12px 0; min-width:0; }
.hc-import-choice .hc-field { margin:12px 0; }
.hc-import-choice select { width:100%; min-height:44px; }

.hc-import-row > .hc-import-choice,.hc-import-row > .hc-import-issues { grid-column:1/-1; }

.hc .hc-attendant-path > summary { display:flex; flex-direction:row; align-items:center; }
.hc .hc-attendant-path > summary b { color:var(--text); font-size:calc(1rem * var(--dt)); }
.hc .hc-attendant-path > summary::after { content:""; width:8px; height:8px; flex:0 0 8px; border-right:2px solid var(--sub); border-bottom:2px solid var(--sub); transform:rotate(45deg); margin-right:8px; }
.hc .hc-attendant-path[open] > summary::after { transform:rotate(225deg); }
.hc-product-media{min-width:0}.hc-product-media h4{margin:0 0 8px}.hc-media-primary{width:144px;height:120px;object-fit:cover;border-radius:16px;display:block;margin:10px 0}.hc-media-primary[hidden]{display:none}.hc-media-upload{position:relative;display:inline-flex;align-items:center;min-height:44px;margin:6px 8px 6px 0;overflow:hidden;cursor:pointer}.hc-media-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.hc-media-upload:focus-within{outline:3px solid #007aff;outline-offset:3px}.hc-product-media [data-media-tiles]{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.hc-media-tile{display:flex;flex-direction:column;gap:6px;width:104px}.hc-media-tile img{width:104px;height:90px;object-fit:cover;border-radius:14px}.hc-media-tile .btn{min-height:44px}.hc-product-media details{margin-top:12px}.hc-product-media [data-media-url]{min-width:0;flex:1}
/* Fluxos: visão do caminho antes dos campos; sem canvas pesado ou arraste obrigatório. */
.hc-flow-map h4{margin:16px 0 8px;font-size:calc(1.125rem * var(--dt))}.hc-flow-map ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}.hc-flow-node{border:1px solid var(--hair);border-radius:18px;background:var(--card);overflow:hidden;align-self:start}.hc-flow-node.condition{border-color:color-mix(in srgb,var(--blue) 45%,var(--hair))}.hc-flow-open{display:flex;align-items:center;gap:12px;width:100%;padding:18px;background:none;border:0;text-align:left;color:var(--text);font:inherit;min-height:76px;cursor:pointer}.hc-flow-open>span:nth-child(2){flex:1;min-width:0}.hc-flow-open small,.hc-flow-open strong{display:block;overflow-wrap:anywhere}.hc-flow-open small{color:var(--sub);font-size:max(0.6875rem,calc(0.75rem * var(--dt)));margin-bottom:5px}.hc-flow-open strong{font-size:calc(0.9375rem * var(--dt));line-height:1.4}.hc-flow-number{display:grid;place-items:center;border-radius:50%;background:var(--off);width:30px;height:30px;flex:0 0 30px;font-weight:600}.hc-flow-branches{display:flex;border-top:1px solid var(--hair)}.hc-flow-link{min-height:44px;flex:1;background:none;border:0;color:var(--blue);font:inherit;font-size:calc(0.8125rem * var(--dt));padding:12px;cursor:pointer}.hc-flow-link+ .hc-flow-link{border-left:1px solid var(--hair)}.hc-flow-open:focus-visible,.hc-flow-link:focus-visible,.hc-flow-editor-node summary:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}.hc .hc-flow-editor-node>summary{min-height:44px}.hc-flow-editor-node fieldset{border:0;padding:20px 0 0;margin:0;min-width:0}.hc-flow-presets{border-bottom:1px solid var(--hair);padding-bottom:14px}.hc .hc-flow-presets>summary{min-height:44px}.hc-flow-presets [data-hc-flow-preset-review]:not(:empty){padding:16px;border:1px solid var(--hair);border-radius:18px;margin-top:16px}.hc-flow-list{min-width:0}.hc-flow-editor-node .btn{min-height:44px;margin-top:16px}@media(max-width:600px){.hc-flow-map ol{grid-template-columns:1fr}.hc-flow-open{padding:14px}.hc-flow-presets [data-hc-flow-preset-review]:not(:empty){padding:12px}}
.hc .hc-flow-presets>summary,.hc .hc-flow-editor-node>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding-block:8px}
.hc .hc-flow-presets>summary>*,.hc .hc-flow-editor-node>summary>*{grid-column:1;min-width:0}
.hc .hc-flow-presets>summary::after,.hc .hc-flow-editor-node>summary::after{grid-column:2;grid-row:1 / span 2;margin-left:0}
.hc-comment-media{margin-block:16px}.hc-comment-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-block:12px}.hc-comment-media-item{appearance:none;text-align:left;color:inherit;background:var(--surface,#fff);border:2px solid transparent;border-radius:20px;padding:8px;cursor:pointer;min-width:0;box-shadow:inset 0 0 0 1px #8883}.hc-comment-media-item[aria-checked="true"]{border-color:var(--green,#28773d)}.hc-comment-media-item img,.hc-comment-media-empty{width:100%;aspect-ratio:1;object-fit:cover;border-radius:13px;display:grid;place-items:center;background:#8881}.hc-comment-media-item>span:not(.hc-comment-media-empty){display:grid;gap:6px;padding:8px 4px}.hc-comment-media-item small,.hc-comment-media-item em{font-size:max(0.75rem,calc(0.75rem * var(--dt,1)));font-style:normal}.hc-comment-media-item b{font-size:max(0.8125rem,calc(0.875rem * var(--dt,1)));overflow-wrap:anywhere;line-height:1.35}.hc-comment-media-item:focus-visible{outline:3px solid var(--green,#28773d);outline-offset:3px}
.hc [hidden]{display:none!important}.hc-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.hc-heading>.btn{flex-shrink:0}

.hc-playbook-examples{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.hc-playbook-examples .btn{font-size:calc(0.8125rem * var(--dt));min-height:44px;text-align:left;white-space:normal}.hc-playbook-ordering>summary{min-height:44px}.hc-playbook-ordering>summary>b{font-size:calc(1rem * var(--dt))}.hc-playbook-ordering>summary>span{font-size:var(--f-caption1);line-height:1.4}

.hc-import-photo{width:88px;height:88px;object-fit:cover;border-radius:18px;display:block;margin:12px 0;}

/* Aquisição: caminho curto, área de arquivo tátil e confirmação antes da publicação. */
.hc-acquire-steps{list-style:none;display:flex;flex-wrap:wrap;gap:12px 20px;padding:0;margin:0 0 14px;color:var(--sub);font-size:calc(.8125rem * var(--dt,1))}.hc-acquire-steps li{display:flex;align-items:center;gap:8px}.hc-acquire-steps b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--off);color:var(--text)}
.hc-acquire-upload{display:flex;gap:18px;align-items:center;position:relative;min-height:108px;padding:24px;border:1px dashed var(--hair);border-radius:20px;background:var(--off);overflow:hidden;cursor:pointer}.hc-acquire-upload>svg{width:32px;height:32px;flex:0 0 32px;color:var(--sub)}.hc-acquire-upload>span{min-width:0;display:grid;gap:8px}.hc-acquire-upload small{font-size:var(--f-caption1);color:var(--sub);overflow-wrap:anywhere}.hc .hc-acquire-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.hc-acquire-upload:focus-within{outline:3px solid var(--blue);outline-offset:3px}.hc-acquire-upload:hover{border-color:var(--blue)}

/* 1.74.0 (Philippe, 03/10/2026): pausa do canal próprio com atalhos e hora de volta */
.hc-pause-status{font-size:var(--f-body);line-height:1.4;margin:6px 0 12px;color:var(--text)}
.hc-pause-status.is-paused{padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--orange,#c2410c) 14%,transparent)}
.hc-pause-actions .btn{min-height:44px}
.hc-apology-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.hc-apology-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--off)}
.hc-apology-list li>div:first-child{display:grid;gap:2px;min-width:0}.hc-apology-list span,.hc-apology-empty,.hc-apology-done{font-size:var(--f-callout,calc(1rem * var(--dt,1)));color:var(--sub)}
.hc-apology-list .btn{min-height:44px}.hc-apology-done{margin-top:12px}.hc-apology-done summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.hc-describe{display:grid;gap:10px;justify-items:start}.hc-describe .btn{min-height:44px}.hc-describe-result{overflow-wrap:anywhere}
.hc-describe-result{font-size:var(--f-callout,calc(1rem * var(--dt,1)));color:var(--sub);width:100%}.hc-describe-result:empty{display:none}
.hc-describe-label{font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));font-weight:650;color:var(--sub);margin:0 0 4px}
.hc-describe-text{margin:0 0 6px;padding:12px 14px;border-radius:14px;background:var(--off);color:var(--text);font-size:var(--f-body);line-height:1.4}
.hc-describe-result .btn{min-height:44px}
.hc-champions.is-peak{border-color:color-mix(in srgb,var(--orange,#c2410c) 45%,var(--hair))}
.hc-champion-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}.hc-champion-list li{display:grid;gap:2px;padding:10px 14px;border-radius:14px;background:var(--off)}
.hc-champion-list span{font-size:var(--f-callout,calc(1rem * var(--dt,1)));color:var(--sub)}.hc-champions .btn{min-height:44px}
.hcmodel{display:grid;gap:10px}.hcmodel-suggestion{display:grid;gap:8px;padding:14px;border-radius:16px;background:var(--off)}
.hcmodel-label{margin:0;font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));font-weight:650;color:var(--sub)}
.hcmodel-text{margin:0;font-size:var(--f-body);line-height:1.45;color:var(--text);overflow-wrap:anywhere;user-select:text}
.hcmodel-suggestion .btn{min-height:44px}.hcmodel-preview{margin:0 0 12px;display:grid;gap:6px}
.hcmodel-preview img{display:block;max-width:100%;max-height:260px;border-radius:14px;object-fit:contain;background:var(--off)}
.hcmodel-preview figcaption{font-size:var(--f-footnote,max(.6875rem,calc(.8125rem * var(--dt,1))));color:var(--sub)}
.hc-market .btn{min-height:44px}.hc-market-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.hc-market-list li{display:grid;gap:4px;padding:12px 14px;border-radius:14px;background:var(--off);font-size:var(--f-callout,calc(1rem * var(--dt,1)));color:var(--sub)}
.hc-market-list li>b{color:var(--text);font-size:var(--f-body)}.hc-market-charge{color:var(--text)}
/* 1.74.0 (Philippe, 04/10/2026, conferência B6): "não pode existir rolar para baixo dentro dos cards do carrossel". No cartão
   pequeno a conversa não rola por dentro: aparecem as mensagens que cabem e o "Ver tudo" abre o cartão grande, onde ela rola. */
.hcar-cartao:not(.hcar-grande) .hc-messages{max-height:none;overflow:visible}

/* /hub-import-observation.css */
/* The same importer, with an explicit visual price decision. */
.hc-import-price{min-width:0;border:1px solid var(--hair);border-radius:22px;padding:20px;margin:20px 0;color:var(--text);background:var(--surface)}
.hc-import-price legend{font-weight:700;font-size:calc(1rem * var(--dt,1));padding:0 6px}
.hc-import-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;margin:16px 0}
.hc-import-price-option{display:flex;align-items:flex-start;gap:12px;min-width:0;min-height:76px;cursor:pointer;border:2px solid transparent;box-shadow:inset 0 0 0 1px var(--hair);border-radius:18px;background:var(--off);padding:16px;transition:background .2s,border-color .2s,transform .2s}
.hc-import-price-option>input{accent-color:var(--green);width:20px;height:20px;flex:0 0 20px;margin-top:3px}
.hc-import-price-option>span{display:grid;gap:8px;min-width:0;overflow-wrap:anywhere}.hc-import-price-option strong{font-size:calc(1.375rem * var(--dt,1));letter-spacing:-.02em}.hc-import-price-option b,.hc-import-price-option small{font-size:calc(.875rem * var(--dt,1));line-height:1.4;font-weight:600}
.hc-import-price-option:has(input:checked){border-color:var(--green);background:var(--surface)}.hc-import-price-option:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:3px}.hc-import-price-option:hover{transform:translateY(-1px)}
.hc-import-price-custom{display:none;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));margin-top:16px}.hc-import-price:has([data-import-price-choice][value=custom]:checked) .hc-import-price-custom{display:grid}
@media(prefers-reduced-motion:reduce){.hc-import-price-option{transition:none;transform:none!important}}
@media(max-width:480px){.hc-import-price{padding:14px}.hc-import-price-option{padding:12px}}

/* /delivery/choice-rows.css */
/* 1.74.0 (Philippe, 04/10/2026): ESCOLHAS EM LINHAS E CONTADORES, UMA FOLHA SÓ PARA A VITRINE E PARA O HUB.
   Estas regras moravam em web/delivery/storefront.css. O pedido em tela cheia do Hub (web/hub-manual-orders.js, Parte C da
   especificação de 04/10: "o desenho segue a vitrine do cliente") usa as MESMAS linhas tocáveis e os mesmos contadores de
   web/delivery/choice-rows.js; para não escrever outra folha igual, as regras vieram para cá e as duas telas carregam este
   arquivo. As regras são as de antes, sem mudança de valor. As superfícies ganharam variáveis (--cr-fundo, --cr-marcado,
   --cr-aro, --cr-trilho) cujo padrão é a cor que a vitrine sempre usou: a vitrine não define nenhuma e continua igual; o
   Hub define as suas, no claro e no escuro (web/hub-manual-orders.css). */
/* 1.74.0: escolhas como linhas tocáveis e quantidades como contador (choice-rows.js). O select e o
   número continuam no formulário; só a apresentação muda. */
.choice-picker{position:relative;margin:12px 0;display:grid;gap:8px}
.choice-picker .choice-native{position:absolute;top:0;left:0;width:1px;height:1px;min-height:0;margin:0;padding:0;border:0;opacity:0;pointer-events:none}
.choice-label{font-size:0.875rem;font-weight:600;color:var(--sub)}
.choice-rows{display:grid;gap:6px}
.choice-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;border-radius:16px;background:var(--cr-fundo,#fff);border:1px solid var(--hair);text-align:left;color:var(--ink);transition:background-color 120ms ease,border-color 120ms ease,transform 120ms ease}
.choice-row:active:not(:disabled){transform:scale(.985)}
.choice-row[aria-checked=true]{border-color:var(--green);background:var(--cr-marcado,#eef6ea)}
.choice-row:disabled{opacity:.55}
.choice-mark{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--cr-aro,#3a2a1e40);background:var(--cr-fundo,#fff);position:relative;transition:border-color 120ms ease,background-color 120ms ease}
.choice-row[aria-checked=true] .choice-mark{border-color:var(--green);background:var(--green)}
.choice-row[aria-checked=true] .choice-mark::after{content:'';position:absolute;inset:6px;border-radius:50%;background:#fff}
.choice-text{display:grid;gap:2px;min-width:0}
.choice-text b{font-weight:600;overflow-wrap:anywhere}
.choice-text small{color:var(--sub);font-size:0.8125rem}
.choice-row[aria-checked=true] .choice-text small{color:var(--green)}
.stepper{display:inline-flex;align-items:center;gap:4px;padding:3px;border-radius:999px;background:var(--cr-trilho,#3a2a1e0a);border:1px solid var(--hair)}
.stepper input,.addon-row .stepper input{width:44px;min-height:44px;border:0;background:transparent;text-align:center;font-weight:650;font-size:1.0625rem;color:var(--ink);-moz-appearance:textfield;appearance:textfield;padding:0}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper .step{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:var(--cr-fundo,#fff);color:var(--ink);font-size:1.25rem;line-height:1;display:grid;place-items:center;box-shadow:0 1px 2px #3a2a1e1f;transition:transform 120ms ease,background-color 120ms ease}
.stepper .step:active:not(:disabled){transform:scale(.9)}
.stepper .step:disabled{opacity:.35;box-shadow:none}
.stepper.is-zero input{color:var(--sub);font-weight:500}
.field.has-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;font-size:0.875rem;font-weight:550}.field.has-stepper>label{font-weight:600}.addon-row.has-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px}
.addon-row .stepper{flex:none}
@media(prefers-reduced-motion:reduce){.choice-row,.choice-mark,.stepper .step{transition:none}.choice-row:active:not(:disabled),.stepper .step:active:not(:disabled){transform:none}}
/* 1.74.0 (Philippe, 03/10/2026, defeito D24 da auditoria de interface): a opção obrigatória esquecida fica marcada no
   próprio grupo, com a mensagem escrita dentro dele (choice-rows.js); antes só aparecia o balão do navegador. */
.choice-picker.choice-missing .choice-rows{border-radius:18px;outline:2px solid var(--error-ink);outline-offset:3px}
.choice-missing-note{margin:0;padding:8px 12px;border-radius:12px;color:var(--error-ink);background:var(--error-soft);font-size:0.875rem;font-weight:600;line-height:1.35}

/* /hub-manual-orders.css */
/* 1.74.0 (Philippe, 04/10/2026): PEDIDO EM TELA CHEIA, NO DESENHO DA VITRINE (web/hub-manual-orders.js; Parte C da
   especificação de 04/10, C1 a C5). "Ela precisa abrir em tela cheia, com um design mais parecido com o site que o cliente
   faz o pedido, com o carrossel maior e a navegação simplificada. Nada de rolar para baixo. Sempre o mesmo design do
   carrossel grande e quando clica, expande com as informações."
   A janela é uma coluna de três partes que nunca rola: o topo (voltar, nome da etapa, busca, Fechar), a faixa de cartões
   (HubCarrossel: um cartão por vez no celular, com a beirada do próximo; vários no computador) e o pé (o total e o botão do
   próximo passo, sempre à vista). O que não cabe num cartão abre na folha (.pt-folha), que sobe do pé, cobre o palco e pode
   rolar por dentro. As escolhas do produto usam a folha compartilhada web/delivery/choice-rows.css, com as cores do Hub.
   Texto em rem com --dt; alvos de toque de 44 px; claro e escuro pelos tokens; "reduzir movimento", "reduzir transparência"
   e "aumentar contraste" respeitados. O prefixo dialog. dá a força para vencer as folhas que entram depois desta. */
.hc-manual-orders{--pt-raio:1.5rem;--pt-topo:max(.625rem,env(safe-area-inset-top));--pt-lado-e:max(1rem,env(safe-area-inset-left));--pt-lado-d:max(1rem,env(safe-area-inset-right));box-sizing:border-box}
/* 1.74.0 (Philippe, 06/10/2026, conferência das barras do aplicativo): no iPhone a área segura de cima traz os 56 pt da faixa
   dos botões nativos, e o quadro esconde esses botões ao abrir: sobrava uma faixa vazia de 56 pt em cima do pedido. No
   aplicativo o topo é só a barra de status (--app-status, web/app-nativo.css), como nas outras folhas e janelas */
html.app-nativo .hc-manual-orders{--pt-topo:max(.625rem,var(--app-status,env(safe-area-inset-top)))}
/* C1: a janela inteira. Apply only to the open native dialog. */
dialog.hc-manual-orders[open]{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;padding:var(--pt-topo) var(--pt-lado-d) max(.625rem,env(safe-area-inset-bottom)) var(--pt-lado-e);background:var(--bg,#f5f2ec);animation:pt-entra .22s cubic-bezier(.2,.8,.2,1)}
@keyframes pt-entra{from{opacity:0;transform:translateY(1rem)}}
/* C4 (conferência de 04/10): teclado do celular aberto no navegador. A janela não encolhe, só a parte visível; o quadro
   acompanha a parte visível (web/hub-manual-orders.js põe a classe e as duas medidas) e o pé fica acima do teclado */
dialog.hc-manual-orders.pt-teclado[open]{top:var(--pt-vv-topo,0);bottom:auto;height:var(--pt-vv-alto,100dvh);padding-bottom:.625rem}
/* celular: margem menor dos lados, para o cartão ser o maior possível */
@media (max-width:600px){.hc-manual-orders{--pt-lado-e:max(.75rem,env(safe-area-inset-left));--pt-lado-d:max(.75rem,env(safe-area-inset-right))}}
.hc-manual-orders button{min-height:44px}
.hc-manual-orders small{display:block;color:var(--sub)}
/* o que caber() tira do cartão (C3) some de verdade, mesmo onde esta folha dá display à peça */
.hc-manual-orders [hidden]{display:none!important}
.pt-so-leitor{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- o palco: topo e cartões ---------- */
.hc-manual-orders .pt-palco{position:relative;flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;gap:.5rem}
dialog.hc-manual-orders .pt-topo{flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:.5rem;margin:0;min-width:0}
.hc-manual-orders .pt-titulo{flex:1 1 auto;min-width:0}
dialog.hc-manual-orders .pt-topo h2{margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));font-weight:700;line-height:1.15;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-manual-orders .pt-titulo .hc-note{margin:0;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-manual-orders .pt-volta{flex:none;width:2.75rem;min-width:2.75rem;height:2.75rem;padding:0;margin:0;display:grid;place-items:center;border-radius:50%}
.hc-manual-orders :is(.pt-volta,.pt-x,.pt-mais) svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hc-manual-orders [data-mo-close]{flex:none;margin:0;min-width:44px;max-width:45%;white-space:normal}
/* a busca de produto mora no topo: estreita ao lado do nome da etapa; com o foco (ou com texto) ocupa o lugar dele */
.hc-manual-orders .pt-busca{flex:0 1 9rem;min-width:5.5rem;margin:0}
.hc-manual-orders .pt-busca input{width:100%;min-height:2.75rem;box-sizing:border-box;border:1px solid var(--hair);border-radius:999px;background:var(--surface,#fff);color:var(--text);font:inherit;font-size:calc(1rem * var(--dt,1));padding:0 .875rem;min-width:0}
.hc-manual-orders .pt-busca input:focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:2px}
@media (max-width:760px){.hc-manual-orders .pt-topo:has(.pt-busca input:is(:focus,:not(:placeholder-shown))) .pt-titulo{display:none}.hc-manual-orders .pt-topo:has(.pt-busca input:is(:focus,:not(:placeholder-shown))) .pt-busca{flex:1 1 auto}}
@media (min-width:761px){.hc-manual-orders .pt-busca{flex-basis:18rem}}
/* C3: nas medidas de referência o corpo NÃO rola (tests/pedido-tela-cheia-1740 mede): a faixa ocupa o que sobra e os cartões
   cabem nela. A rolagem do corpo é só o último recurso de acessibilidade: texto muito ampliado em tela pequena, ou o
   teclado do celular aberto (no navegador o quadro acompanha a parte visível, regra .pt-teclado acima; no aplicativo a
   janela encolhe). Nesses casos a faixa não fica menor que 12rem e o corpo rola, em vez de espremer o cartão; o topo
   (Fechar) e o pé (total e botão) nunca saem da tela.
   O aviso vivo fica numa linha acima dos cartões e some quando não há o que dizer. */
.hc-manual-orders [data-mo-body]{flex:1 1 auto;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.375rem}
.hc-manual-orders [data-mo-body]>[data-mo-status]{flex:0 0 auto;margin:0;max-width:none;overflow-wrap:anywhere;line-height:1.35}
.hc-manual-orders [data-mo-status]:empty{display:none}
.hc-manual-orders [data-mo-content]{flex:1 0 auto;min-width:0;display:flex;flex-direction:column;gap:.5rem}
.hc-manual-orders .pt-passo{flex:1 0 auto;min-width:0;display:flex;flex-direction:column;gap:.5rem}
.hc-manual-orders [data-mo-body] :is(p,li,h3,legend){overflow-wrap:anywhere}

/* ---------- a faixa de cartões (C2 e C3) ----------
   Sem o HubCarrossel a faixa já rola para o lado com encaixe; com ele ganha arrasto com o mouse, setas, pontos e teclado.
   A altura da faixa é a que sobra entre o topo e o pé, e os cartões têm a altura dela. */
.hc-manual-orders .pt-faixa{flex:1 1 12rem;min-width:0;min-height:12rem;height:0;display:flex;align-items:stretch;gap:.75rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0;border:0}
.hc-manual-orders .pt-faixa::-webkit-scrollbar{display:none}
.hc-manual-orders .pt-faixa>*{min-width:0;margin:0;box-sizing:border-box}
.hc-manual-orders .pt-faixa:not(.hcar)>*{flex:0 0 min(calc(100% - 1.25rem),22rem);scroll-snap-align:center}
/* celular: um cartão grande por vez, com a beirada do próximo à vista (o convite para arrastar, como na vitrine) */
.hc-manual-orders .pt-faixa.hcar-cel>.hcar-item{flex-basis:calc(100% - 1.25rem)}
.hc-manual-orders .pt-faixa.hcar-cel.hcar-um>.hcar-item{flex-basis:100%}
/* computador: quando todos os cartões cabem, ficam no meio da faixa */
.hc-manual-orders .pt-faixa.hcar-pc.hcar-cabe{justify-content:safe center}
.hc-manual-orders .hcar-pe{flex:0 0 auto}
/* o cartão: conteúdo que cabe; se o texto do aparelho estiver muito ampliado, rola por dentro em vez de cortar */
dialog.hc-manual-orders .pt-cartao{display:flex;flex-direction:column;gap:.625rem;margin:0;padding:1rem;border:1px solid var(--hair);border-radius:var(--pt-raio);background:var(--surface,#fff);box-shadow:0 .5rem 1.25rem rgba(56,33,23,.08);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;text-align:left;color:var(--text)}
.hc-manual-orders .pt-cartao h3{margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.2;letter-spacing:-.02em;outline:none}
.hc-manual-orders .pt-cartao :is(p,ul,dl){margin:0}
dialog.hc-manual-orders .pt-cartao :is(.hc-field,.hc-actions,.hc-grid){margin:0;padding:0}
dialog.hc-manual-orders .pt-cartao .hc-grid{gap:.5rem .625rem}
.hc-manual-orders .pt-cartao .hc-actions{gap:.5rem}
.hc-manual-orders .pt-cartao .hc-actions>.btn{flex:1 1 9rem;min-width:0;margin:0;white-space:normal}
.hc-manual-orders .pt-rotulo{font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.hc-manual-orders :is(.hc-grid,.hc-grid>div,fieldset,form){min-width:0}
dialog.hc-manual-orders dl.hc-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,5.5rem),1fr))}
.hc-manual-orders dl :is(dt,dd){margin:0;overflow-wrap:anywhere}
.hc-manual-orders dl dt{font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));color:var(--sub)}
.hc-manual-orders dl dd{margin-top:.125rem;font-variant-numeric:tabular-nums}
.hc-manual-orders .pt-itens{list-style:none;padding:0;display:grid;gap:.375rem}
.hc-manual-orders .pt-itens li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.125rem .75rem;min-width:0}
.hc-manual-orders .pt-itens li>b{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc-manual-orders .pt-itens li>span{font-variant-numeric:tabular-nums;color:var(--sub)}
.hc-manual-orders .pt-itens li>small{flex:1 0 100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:360px){.hc-manual-orders .pt-itens li>small{display:none}}
/* endereço: a rua na linha inteira e os campos curtos em pares */
dialog.hc-manual-orders .pt-endereco{grid-template-columns:repeat(6,minmax(0,1fr))}
.hc-manual-orders .pt-endereco>:nth-child(1){grid-column:span 6}
.hc-manual-orders .pt-endereco>:is(:nth-child(2),:nth-child(5),:nth-child(7)){grid-column:span 2}
.hc-manual-orders .pt-endereco>:is(:nth-child(3),:nth-child(4),:nth-child(6)){grid-column:span 4}
.hc-manual-orders [data-mo-customer-results]{display:grid;gap:.5rem}
.hc-manual-orders [data-mo-customer-results]:empty{display:none}
.hc-manual-orders [data-mo-customer-results] .btn{margin:0;text-align:left;white-space:normal}
.hc-manual-orders [data-mo-benefit-fields]{display:grid;gap:.5rem}
.hc-manual-orders [data-mo-benefit-fields]:empty,.hc-manual-orders [data-mo-payment-fields]:empty{display:none}
.hc-manual-orders [data-mo-payment-fields]{display:grid;gap:.5rem}
/* as escolhas de um toque (modalidade, mesa, unidade, pagamento, benefício, horário): botões de rádio com cara de ficha */
.hc-manual-orders .pt-opcoes{display:flex;flex-wrap:wrap;gap:.5rem;border-radius:.875rem}
.hc-manual-orders .pt-opcao{position:relative;flex:1 1 6.5rem;min-width:0;margin:0}
/* o rádio cobre a ficha inteira e fica por cima dela também enquanto ela encolhe no toque (z-index): o toque começa e termina no mesmo alvo */
.hc-manual-orders .pt-opcao input{position:absolute;z-index:1;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.hc-manual-orders .pt-opcao>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;min-height:2.75rem;height:100%;box-sizing:border-box;padding:.5rem .75rem;border:1px solid var(--hair);border-radius:.875rem;background:var(--surface2,#F7F4F1);color:var(--text);text-align:center;line-height:1.2;transition:background-color .15s ease-out,color .15s ease-out,transform .1s ease-out}
.hc-manual-orders .pt-opcao>span b{font-weight:600;overflow-wrap:anywhere}
.hc-manual-orders .pt-opcao>span small{margin:0;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));color:inherit;opacity:.8}
.hc-manual-orders .pt-opcao input:checked+span{background:var(--label,#3A2A1E);border-color:transparent;color:var(--surface,#fff)}
.hc-manual-orders .pt-opcao input:active+span{transform:scale(.97)}
.hc-manual-orders .pt-opcao input:focus-visible+span{outline:3px solid var(--foco-cor,var(--blue));outline-offset:2px}
.hc-manual-orders .pt-opcao input:disabled{cursor:default}
.hc-manual-orders .pt-opcao input:disabled+span{opacity:.45}
.hc-manual-orders .pt-opcoes.mo-falta{outline:2px solid var(--ink-red,#b3261e);outline-offset:3px}
/* "Conferir solicitação" é a saída para quando a resposta se perde: fica no pé do cartão do pagamento, discreto, sem
   disputar com as formas de pagamento */
dialog.hc-manual-orders .pt-cartao .pt-rodape{margin-top:auto}
dialog.hc-manual-orders .btn.pt-discreto{background:transparent;border-color:transparent;box-shadow:none;color:var(--label2,#6B5A4C);font-weight:600;text-decoration:underline;text-underline-offset:.1875rem}
/* linha que leva a mais (agendar, pagamento, todos os clientes): nome à esquerda, seta à direita */
.hc-manual-orders .btn.pt-linha{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;margin:0;text-align:left}
.hc-manual-orders .pt-linha small{margin:0;font-weight:400}
.hc-manual-orders .pt-linha>span:first-child{min-width:0}
.hc-manual-orders :is([data-mo-beneficio-editar],[data-mo-mesas-todas]) :is(b,small){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* C3: último aperto da conferência no celular estreito: o cliente numa linha e o endereço em duas (inteiros na folha) */
.hc-manual-orders .pt-apertado [data-mo-quem]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc-manual-orders .pt-apertado [data-mo-onde]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- etapa 1: categorias e produtos em cartões grandes ---------- */
/* as fichas das categorias, numa fileira acima dos produtos: trocar de categoria é um toque */
.hc-manual-orders .pt-fichas{position:relative;z-index:1;flex:0 0 auto;display:flex;gap:.5rem;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:.125rem 0;min-width:0}
.hc-manual-orders .pt-fichas::-webkit-scrollbar{display:none}
.hc-manual-orders .pt-ficha{flex:none;display:inline-flex;align-items:center;gap:.375rem;min-height:2.75rem;max-width:16rem;margin:0;padding:.375rem .875rem;border:1px solid var(--hair);border-radius:999px;background:var(--surface,#fff);color:var(--text);font:inherit;font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:transform .1s ease-out,background-color .15s ease-out,color .15s ease-out}
.hc-manual-orders .pt-ficha:active{transform:scale(.97)}
.hc-manual-orders .pt-ficha[aria-pressed="true"]{background:var(--label,#3A2A1E);border-color:transparent;color:var(--surface,#fff)}
.hc-manual-orders .pt-ficha.mo-cerebro{background:#2a2019;border-color:transparent;color:#fff}
.hc-manual-orders .pt-ficha.mo-cerebro i{font-style:normal;color:#eec993}
.hc-manual-orders :is(.pt-ficha,.mo-cat,.hc-manual-product,.pt-mais,.pt-loja):focus-visible{outline:3px solid var(--foco-cor,#2F7CF6);outline-offset:2px}
/* 1.74.0: o cartão de categoria é o da vitrine (foto inteira, nome grande em cima, a seta embaixo) */
.mo-carrossel{touch-action:pan-x pan-y}
.mo-cat{position:relative;margin:0;padding:0;overflow:hidden;border:0;border-radius:var(--pt-raio,1.5rem);background:#382117;color:#fff;text-align:left;font:inherit;cursor:pointer;isolation:isolate;box-shadow:0 .75rem 1.625rem rgba(56,33,23,.14);transition:transform .12s ease-out;-webkit-tap-highlight-color:transparent}
/* o Hub encolhe todo botão tocado para 94% (button:active e .pressed, no index.html); num cartão deste tamanho 94% é um salto:
   o cartão grande encolhe só 1,5% (a resposta no toque continua, na medida certa) */
.mo-cat:active,.hc-manual-orders :is(.mo-cat,.pt-loja):is(:active,.pressed){transform:scale(.985)!important;filter:brightness(.97)}
.mo-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mo-cat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.66),rgba(0,0,0,.38) 48%,rgba(0,0,0,.12) 65%,rgba(0,0,0,.5));z-index:1}
.mo-cat.mo-cerebro::after{background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.4) 45%,rgba(0,0,0,.72))}
.mo-cat-vazio{position:absolute;inset:0;display:grid;place-items:center;font-size:4rem;background:radial-gradient(ellipse at center,#77533a,#2a2019);color:#eec993}
.mo-cat-copy{position:absolute;left:1.375rem;right:1.375rem;top:1.375rem;z-index:2;display:grid;gap:.375rem}
.mo-cat-copy b{font-size:calc(1.875rem * var(--dt,1));line-height:1.05;letter-spacing:-.035em;overflow-wrap:anywhere;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.mo-cat .mo-cat-copy small{margin:0;color:#fff;font-size:calc(.9375rem * var(--dt,1));opacity:.92}
.mo-cat-copy i{font-style:normal;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:700;letter-spacing:.07em;text-transform:uppercase;opacity:.95}
.mo-cat-entra{position:absolute;right:1.125rem;bottom:1.125rem;z-index:2;width:3rem;height:3rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:calc(1.5rem * var(--dt,1));line-height:1}
.mo-cat.mo-cerebro{background:#2a2019;transform-style:preserve-3d;backface-visibility:hidden}
/* o cartão de produto: foto grande, nome, descrição curta e preço; o "+" inclui direto quando não há o que escolher */
.hc-manual-orders .pt-prod{position:relative;display:flex;overflow:hidden;border:1px solid var(--hair);border-radius:var(--pt-raio);background:var(--surface,#fff);box-shadow:0 .5rem 1.25rem rgba(56,33,23,.08);transition:transform .12s ease-out}
.hc-manual-orders .pt-prod:has(.hc-manual-product:is(:active,.pressed)){transform:scale(.985)}
.hc-manual-orders .hc-manual-product:is(:active,.pressed){transform:none!important;filter:none}
.hc-manual-orders .hc-manual-product{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hc-manual-orders .hc-manual-product:disabled{cursor:default}
.hc-manual-orders .pt-fora{opacity:.6}
.hc-manual-orders .hc-manual-product>img,.hc-manual-orders .hc-manual-product>.mo-cat-vazio{position:static;flex:1 1 8rem;min-height:0;width:100%;height:auto;object-fit:cover;border-radius:0}
/* 1.74.0 (04/10/2026; conferência da especificação, C2): no computador o cartão de produto é uma coluna estreita e alta (a
   altura é a da faixa) e a foto, que ocupava tudo o que sobrava, virava uma tira vertical que mostrava só o miolo da pizza
   (1 para 2,6 em 1920 x 1080). Lá a foto tem proporção de foto (quadrada, como na grade da vitrine), no alto do cartão; o
   texto vem logo abaixo e a altura do cartão não muda. No celular (um cartão por vez, largo) continua como era. */
.hc-manual-orders .pt-faixa.hcar-pc .hc-manual-product>:is(img,.mo-cat-vazio){flex:0 1 auto;aspect-ratio:1/1}
.hc-manual-orders .pt-prod-texto{flex:0 0 auto;display:grid;gap:.25rem;padding:.875rem 4.25rem 1rem 1rem;min-width:0}
.hc-manual-orders .pt-prod-texto b{font-size:calc(1.0625rem * var(--dt,1));line-height:1.2;letter-spacing:-.01em;overflow-wrap:anywhere}
.hc-manual-orders .pt-prod-desc{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.35}
.hc-manual-orders .pt-prod-texto strong{font-size:calc(1.125rem * var(--dt,1));color:var(--ink-green,#1d6b3a);font-variant-numeric:tabular-nums}
.hc-manual-orders .pt-prod-texto s{font-weight:400;color:var(--sub);font-size:calc(.875rem * var(--dt,1))}
.hc-manual-orders .pt-mais{position:absolute;right:.75rem;bottom:.75rem;width:2.75rem;height:2.75rem;margin:0;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:var(--label,#3A2A1E);color:var(--surface,#fff);cursor:pointer;box-shadow:0 .25rem .75rem rgba(56,33,23,.22);transition:transform .1s ease-out}
.hc-manual-orders .pt-mais:active{transform:scale(.9)}
.hc-manual-orders .pt-prod-qtd{position:absolute;top:.75rem;right:.75rem;min-width:1.875rem;height:1.875rem;box-sizing:border-box;padding:0 .5rem;display:grid;place-items:center;border-radius:999px;background:var(--ink-green,#1d6b3a);color:#fff;font-size:calc(.875rem * var(--dt,1));font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 .125rem .5rem rgba(0,0,0,.25);pointer-events:none}
.hc-manual-orders .pt-vazio{flex:1 1 100%;align-self:center;text-align:center}
/* escolha da unidade e avisos: cartões grandes no meio da tela, sem faixa */
.hc-manual-orders .pt-lojas{flex:1 1 auto;min-height:0;width:100%;max-width:48rem;margin:0 auto;display:grid;align-content:center;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.hc-manual-orders .pt-lojas h3{grid-column:1/-1;margin:0;text-align:center;font-size:var(--f-title2,calc(1.375rem * var(--dt,1)));letter-spacing:-.02em;outline:none}
dialog.hc-manual-orders .pt-loja{display:grid;gap:.25rem;place-content:center;min-height:7.5rem;margin:0;padding:1rem;border:1px solid var(--hair);border-radius:var(--pt-raio);background:var(--surface,#fff);color:var(--text);font:inherit;text-align:center;cursor:pointer;box-shadow:0 .5rem 1.25rem rgba(56,33,23,.08);transition:transform .1s ease-out}
.hc-manual-orders .pt-loja b{font-size:var(--f-title2,calc(1.375rem * var(--dt,1)));letter-spacing:-.02em}
dialog.hc-manual-orders .pt-aviso{margin:auto;width:100%;max-width:36rem;box-sizing:border-box;padding:1.25rem;border-radius:var(--pt-raio);display:grid;gap:.625rem}
.hc-manual-orders .pt-aviso :is(h3,p){margin:0}

/* ---------- a folha: o cartão expandido ----------
   overflow:hidden na área da folha: o cartão nasce da borda de cima do pé e nunca passa por cima dele (o total e o botão
   do próximo passo continuam à vista e tocáveis enquanto a folha sobe e desce). */
.hc-manual-orders .pt-folha{position:absolute;z-index:5;top:calc(-1 * var(--pt-topo));left:calc(-1 * var(--pt-lado-e));right:calc(-1 * var(--pt-lado-d));bottom:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background:rgba(20,15,10,calc(.42 * var(--pt-vela,1)));padding-top:max(.75rem,env(safe-area-inset-top))}
.hc-manual-orders .pt-folha[hidden]{display:none}
.hc-manual-orders .pt-folha.pt-saindo{pointer-events:none}
.hc-manual-orders .pt-folha-cartao{width:min(100%,44rem);max-height:100%;min-height:0;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:column;border:0;border-radius:1.75rem 1.75rem 0 0;background:var(--surface,#fff);color:var(--text);box-shadow:0 -1rem 3rem rgba(20,15,10,.24);overflow:hidden;will-change:transform}
@media (min-width:761px){.hc-manual-orders .pt-folha{align-items:center;padding:1rem}.hc-manual-orders .pt-folha-cartao{border-radius:1.75rem;max-height:calc(100% - .5rem)}}
/* o topo da folha é a alça: puxar para baixo fecha */
.hc-manual-orders .pt-folha-topo{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:.75rem;padding:1.125rem .75rem .5rem 1.25rem;touch-action:none;-webkit-user-select:none;user-select:none}
.hc-manual-orders .pt-alca{position:absolute;top:.4375rem;left:50%;width:2.25rem;height:.3125rem;margin-left:-1.125rem;border-radius:999px;background:var(--fill3,rgba(90,65,45,.16))}
.hc-manual-orders .pt-folha-topo h3{flex:1 1 auto;min-width:0;margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere;outline:none}
.hc-manual-orders .pt-folha-aviso{flex:0 0 auto;margin:0 1.25rem .5rem;max-width:none;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.hc-manual-orders .pt-folha-aviso:empty{display:none}
.hc-manual-orders .pt-x{flex:none;width:2.75rem;height:2.75rem;margin:0;padding:0;display:grid;place-items:center;border-radius:50%}
.hc-manual-orders .pt-folha-rola{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:.25rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;scroll-padding-block:3rem}
.hc-manual-orders .pt-folha-rola>*{margin:0;flex:none}
.hc-manual-orders .pt-heroi{width:100%;max-height:14rem;object-fit:cover;border-radius:1.25rem}
.hc-manual-orders .pt-descricao{line-height:1.5}
.hc-manual-orders .hc-manual-line{display:grid;gap:.375rem;border-bottom:1px solid var(--hair);padding-bottom:.75rem}
.hc-manual-orders .hc-manual-line :is(p,.hc-actions){margin:0}
.hc-manual-orders .pt-lista{gap:.5rem}
dialog.hc-manual-orders .pt-conferencia-toda .hc-card{margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.hc-manual-orders .pt-conferencia-toda dl.hc-grid{margin-block:.75rem;gap:.75rem}
/* as escolhas do produto: as mesmas peças da vitrine (web/delivery/choice-rows.css) com as cores e o tamanho de texto do Hub */
.hc-manual-orders [data-mo-product-form],.hc-manual-orders [data-mo-folha]{--ink:var(--label,#3A2A1E);--green:var(--ink-green,#1d6b3a);--error-ink:var(--ink-red,#b3261e);--error-soft:color-mix(in srgb,var(--sys-red,#ff383c) 12%,var(--surface,#fff));--cr-fundo:var(--surface,#fff);--cr-marcado:color-mix(in srgb,var(--sys-green,#34c759) 14%,var(--surface,#fff));--cr-aro:var(--label4,#B4A798);--cr-trilho:var(--fill,rgba(90,65,45,.08))}
.hc-manual-orders .field{display:grid;gap:.4375rem;margin:0;font-size:calc(.875rem * var(--dt,1));font-weight:600}
.hc-manual-orders .field :is(input,select,textarea){font:inherit;font-weight:400;font-size:calc(1rem * var(--dt,1));color:var(--text);background:var(--off,rgba(120,120,128,.08));border:1px solid var(--hair);border-radius:.75rem;padding:.6875rem;min-height:44px;width:100%;box-sizing:border-box}
.hc-manual-orders .field textarea{min-height:4.5rem;resize:vertical}
.hc-manual-orders .field :is(input,select,textarea):focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:2px}
.hc-manual-orders fieldset{border:1px solid var(--hair);border-radius:1rem;padding:.875rem;margin:0}
.hc-manual-orders legend{font-weight:650;padding:0 .5rem}
.hc-manual-orders .hint{margin:.25rem 0;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.4;color:var(--sub)}
.hc-manual-orders .addon-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--hair)}
.hc-manual-orders .addon-row:last-child{border-bottom:0}
.hc-manual-orders .addon-row input{min-height:44px;width:5.5rem;font:inherit;background:var(--off);color:var(--text);border:1px solid var(--hair);border-radius:.625rem;padding:.625rem}
.hc-manual-orders :is(.choice-row,.stepper .step){font:inherit;cursor:pointer;margin:0}
.hc-manual-orders .stepper .step{border:0;font-size:calc(1.25rem * var(--dt,1))}
.hc-manual-orders .choice-label{margin:0;font-size:calc(.875rem * var(--dt,1))}
.hc-manual-orders .choice-text small{margin:0;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)))}
.hc-manual-orders .stepper input,.hc-manual-orders .addon-row .stepper input{font-size:calc(1.0625rem * var(--dt,1));width:44px;border:0;background:transparent;padding:0}
.hc-manual-orders .field.has-stepper{display:flex;font-size:calc(.875rem * var(--dt,1))}
.hc-manual-orders .choice-missing-note{font-size:calc(.875rem * var(--dt,1))}
.hc-manual-orders :is(.choice-row,.stepper .step,.addon-row input):focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:2px}

/* ---------- o pé (C4): o total e o botão do próximo passo, sempre à vista ----------
   Header and total occupy their own rows, so enlarged text cannot disappear behind the total. */
.hc-manual-orders .hc-manual-summary{position:static;flex:0 0 auto;isolation:isolate;background:var(--surface,var(--bg));margin:0;border:1px solid var(--hair);border-radius:1.25rem;box-shadow:0 .5rem 1.5rem rgba(56,33,23,.10)}
dialog.hc-manual-orders>.hc-manual-summary{padding:.5rem .5rem .5rem 1rem;min-height:3.75rem;box-sizing:border-box;display:flex;align-items:center;gap:.75rem}
.hc-manual-orders .hc-manual-summary>p{flex:1 1 auto;margin:0;min-width:0;overflow-wrap:anywhere;line-height:1.35;font-size:calc(.875rem * var(--dt,1));font-weight:600;color:var(--label,#3a2a1e)}
dialog.hc-manual-orders .mo-barra-botao{min-width:9.5rem;border-radius:.875rem}
/* C5 (conferência de 04/10), toque repetido: o botão que acaba de chegar ao pé no lugar do anterior não aceita toque por um
   instante e mostra isso, apagado como todo botão desligado do Hub; acende sozinho, sem deslocar nada */
dialog.hc-manual-orders .mo-barra-botao{transition:opacity .18s ease-out}
dialog.hc-manual-orders .mo-barra-botao[aria-disabled="true"]{opacity:var(--desligado-opacidade,.45);cursor:default}
dialog.hc-manual-orders .mo-barra-itens{padding-left:0}
dialog.hc-manual-orders .mo-barra-itens:not([disabled]) .hc-note::after{content:"\00a0›"}
/* 04/10/2026 (a dupla checagem): sem texto ao lado (o primeiro produto aberto, sacola vazia), o botão ficava na ponta
   esquerda do pé no computador e pulava para a direita nas outras etapas; fica sempre na direita */
dialog.hc-manual-orders>.hc-manual-summary>.mo-barra-botao:first-child{margin-left:auto}
@media (max-width:600px){dialog.hc-manual-orders>.hc-manual-summary{padding:.375rem .5rem .5rem;gap:.125rem .75rem}dialog.hc-manual-orders>.hc-manual-summary>:first-child{padding-left:.5rem;flex-basis:100%}dialog.hc-manual-orders>.hc-manual-summary .mo-barra-itens{min-height:2.75rem}}

@media (prefers-reduced-motion:reduce){dialog.hc-manual-orders[open]{animation:none}.hc-manual-orders .pt-faixa{scroll-behavior:auto}.mo-cat,.hc-manual-orders :is(.pt-prod,.pt-mais,.pt-ficha,.pt-loja,.pt-opcao>span){transition:none}.mo-cat:active,.hc-manual-orders :is(.pt-mais,.pt-ficha):active,.hc-manual-orders .pt-prod:has(.hc-manual-product:is(:active,.pressed)),.hc-manual-orders .pt-opcao input:active+span{transform:none}.hc-manual-orders :is(.mo-cat,.pt-loja):is(:active,.pressed){transform:none!important}}
@media (prefers-reduced-transparency:reduce){.mo-cat-entra{background:#32251f;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (prefers-contrast:more){.hc-manual-orders :is(.pt-cartao,.pt-prod,.pt-ficha,.pt-opcao>span,.hc-manual-summary){border-color:var(--label,#3A2A1E)}.mo-cat::after{background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(0,0,0,.55) 48%,rgba(0,0,0,.3) 65%,rgba(0,0,0,.7))}}
@media (forced-colors:active){.mo-cat::after{background:transparent}.mo-cat-copy{background:Canvas;color:CanvasText;padding:.5rem}.hc-manual-orders .pt-opcao input:checked+span{outline:3px solid Highlight}}

/* /hub-flow-canvas.css */
.hc-flow-canvas{min-width:0}
.hc-flow-canvas-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hc-flow-canvas-tools>div{min-width:0}
.hc-flow-viewport{max-width:100%;height:460px;max-height:65dvh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--hair);border-radius:22px;background:var(--off);position:relative;touch-action:pan-x pan-y pinch-zoom}
.hc-flow-viewport:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.hc-flow-surface{position:relative;min-width:100%;min-height:100%;background-image:radial-gradient(var(--hair) 1px,transparent 1px);background-size:20px 20px}
.hc-flow-wires{position:absolute;inset:0;pointer-events:none;overflow:visible}
.hc-flow-wires path{fill:none;stroke:var(--blue);stroke-width:2;opacity:.65}
.hc-flow-tile{position:absolute;width:264px;box-sizing:border-box;border:1px solid var(--hair);border-radius:20px;background:var(--card);box-shadow:0 5px 16px #0000000c;overflow:hidden}
.hc-flow-tile>header{display:flex;align-items:stretch;border-bottom:1px solid var(--hair)}
.hc-flow-tile button{font:inherit;color:var(--text);background:transparent;border:0;cursor:pointer;min-height:44px;white-space:normal;overflow-wrap:anywhere}
.hc-flow-tile button:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}
.hc-flow-handle{display:flex;align-items:center;gap:6px;flex:1;padding:8px 10px;text-align:left;touch-action:none;cursor:grab!important;font-size:var(--f-caption1)!important}
.hc-flow-handle:active{cursor:grabbing!important;background:var(--off)}
.hc-flow-inlet{font-size:var(--f-caption1)!important;color:var(--blue)!important;padding:8px;border-left:1px solid var(--hair)!important;max-width:96px}
.hc-flow-title{width:100%;text-align:left;padding:14px 16px;font-weight:600!important;line-height:1.35;min-height:74px!important}
.hc-flow-ports{display:grid}
.hc-flow-ports>button{display:flex;align-items:center;gap:7px;min-height:46px;padding:8px 12px;border-top:1px solid var(--hair);touch-action:none;text-align:left}
.hc-flow-ports>button>span:first-child{flex:1;min-width:0}
.hc-flow-ports small{font-size:var(--f-caption1);color:var(--sub)}
.hc-flow-ports [aria-pressed=true]{background:var(--off);box-shadow:inset 0 0 0 2px var(--blue)}
.hc-flow-canvas [data-fc-status]{font-size:var(--f-footnote);color:var(--sub);line-height:1.5;min-height:24px;margin:12px 0 6px}
@media(max-width:600px){.hc-flow-viewport{height:380px;max-height:60dvh;border-radius:18px}.hc-flow-canvas-tools{gap:8px}.hc-flow-canvas-tools .hc-actions{width:100%;gap:6px}.hc-flow-canvas-tools .btn{flex:1;padding-inline:8px}}
@media(prefers-contrast:more){.hc-flow-tile,.hc-flow-viewport{border-width:2px}.hc-flow-wires path{opacity:1;stroke-width:3}}

/* /hub-edit-review.css */
.her-card{margin:12px 0;padding:14px;border:1px solid var(--orange,#b87412);border-radius:14px;background:var(--surface,#fff);color:var(--text,#171717);font-size:calc(0.875rem * var(--dt,1))}.her-card p{margin:6px 0 12px;line-height:1.45}.her-hold{border-width:2px}.her-warning{color:var(--red,#b42318)}.her-card .btn{min-height:44px;width:100%;white-space:normal}.her-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--line,#ddd);border-radius:20px;padding:20px;background:var(--surface,#fff);color:var(--text,#171717);font-family:inherit;font-size:calc(0.9375rem * var(--dt,1));line-height:1.5}.her-dialog::backdrop{background:rgba(0,0,0,.45)}.her-dialog header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.her-dialog h2{margin:0;font-size:calc(1.25rem * var(--dt,1))}.her-dialog h3{font-size:calc(1rem * var(--dt,1));margin:0 0 10px}.her-dialog .btn{min-height:44px;white-space:normal;margin:4px 4px 4px 0;max-width:100%}.her-diff{display:grid;grid-template-columns:1fr 1fr;gap:14px}.her-diff section{min-width:0;border:1px solid var(--line,#ddd);border-radius:12px;padding:12px;overflow-wrap:anywhere}.her-items{padding:0;list-style:none;margin:0}.her-items li{display:flex;flex-wrap:wrap;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line,#ddd)}.her-items strong{flex:1}.her-items small,.her-items p{width:100%;margin:0;font-size:max(0.6875rem,calc(0.8125rem * var(--dt,1)))}.her-note{font-size:max(0.6875rem,calc(0.8125rem * var(--dt,1)))}.her-confirm{display:flex;align-items:flex-start;gap:10px;margin:16px 0;padding:12px;border:1px solid var(--line,#ddd);border-radius:12px}.her-confirm input{width:24px;height:24px;flex:none}.her-accept{font-weight:700}@media(max-width:580px){.her-dialog{padding:14px}.her-diff{grid-template-columns:1fr}.her-dialog>.btn{width:100%}}

/* /hub-visual-workspace.css */
/* Load after commercial/refinement CSS. Content is solid; only the transient chrome uses blur. */
.hvw-workspace{min-width:0;max-width:100%;margin-block:1.25rem;color:var(--text,#24211d)}
.hvw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;align-items:stretch}
.hvw-group{min-width:0;margin-block:1.5rem}
.hvw-group-title{margin:0 0 1rem;font-size:var(--f-title3);line-height:1.4;color:var(--text);overflow-wrap:anywhere}
.hvw-group[data-compact=true]>.hvw-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(8.5rem * var(--dt,1))),1fr));gap:.75rem}
.hvw-group[data-compact=true] .hvw-card{padding:.875rem;gap:.625rem;border-radius:1.125rem}
.hvw-group[data-compact=true] .hvw-card-header{gap:.5rem;flex-wrap:wrap}
.hvw-group[data-compact=true] .hvw-card-title{font-size:var(--f-subhead);line-height:1.4}
.hvw-group[data-compact=true] .hvw-card-description{font-size:var(--f-footnote);line-height:1.45}
.hvw-group[data-compact=true] .hvw-summary>div{grid-template-columns:minmax(0,1fr)}
.hvw-group[data-compact=true] .hvw-summary dd{text-align:left}
.hvw-group[data-compact=true] .hvw-icon{width:2.5rem;height:2.5rem;border-radius:.875rem}
.hvw-group[data-hvw-group=offers]>.hc-catalog-filter{margin:0 0 1rem}
[data-hvw-source]{display:none!important}
.hvw-card{min-width:0;display:flex;flex-direction:column;gap:.875rem;box-sizing:border-box;padding:1.25rem;border:1px solid var(--hair,#d5d1c9);border-radius:1.5rem;background:var(--card,#fff);transition:box-shadow 160ms ease,border-color 160ms ease}
.hvw-card[hidden]{display:none!important}
.hvw-card-heading{min-width:0}
.hvw-card-eyebrow{margin:0 0 .25rem;font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.4;color:var(--sub,#615c53);overflow-wrap:anywhere}
.hvw-card-media{aspect-ratio:4/3;overflow:hidden;border-radius:1rem;background:var(--off,#f0eee9)}
.hvw-card-media img{display:block;object-fit:cover;width:100%;height:100%}
.hvw-card:hover{border-color:var(--sub,#746d61);box-shadow:0 .375rem 1.5rem rgba(0,0,0,.06)}
.hvw-card-header{display:flex;align-items:center;gap:.875rem;min-width:0}
.hvw-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.875rem;background:var(--off,#f0eee9);color:var(--ink-green,var(--green,#16793b))}
.hvw-icon svg{width:1.625rem;height:1.625rem}
.hvw-card[data-accent=blue] .hvw-icon{color:var(--ink-blue,var(--blue,#075bd2))}
.hvw-card[data-accent=orange] .hvw-icon{color:var(--text,#24211d)}
.hvw-card[data-accent=red] .hvw-icon{color:var(--ink-red,var(--red,#b3261e))}
.hvw-card[data-accent=neutral] .hvw-icon{color:var(--sub,#615c53)}
.hvw-card .hvw-card-title{font-size:calc(1.125rem * var(--dt,1));line-height:1.25;letter-spacing:-.025em;margin:0;min-width:0;overflow-wrap:anywhere}
.hvw-card-description,.hvw-card-feedback,.hvw-disabled-reason,.hvw-edit-state,.hvw-switch-note{margin:0;font-size:calc(.875rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere;color:var(--sub,#615c53)}
.hvw-status{align-self:flex-start;max-width:100%;padding:.375rem .625rem;border-radius:.625rem;background:var(--off,#f0eee9);font-size:calc(.8125rem * var(--dt,1));font-weight:650;line-height:1.4;overflow-wrap:anywhere;color:var(--text,#24211d)}
.hvw-status[data-tone=good]{color:var(--ink-green,var(--green,#16793b))}
.hvw-status[data-tone=warning]{color:var(--text,#24211d);border-inline-start:3px solid var(--orange,#b35f00)}
.hvw-status[data-tone=danger],.hvw-card-feedback[data-error=true]{color:var(--ink-red,var(--red,#b3261e))}
.hvw-summary{display:grid;gap:.75rem;margin:0;min-width:0;font-size:calc(.875rem * var(--dt,1));line-height:1.45}
.hvw-summary>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:.625rem;min-width:0}
.hvw-summary dt{color:var(--sub,#615c53);overflow-wrap:anywhere}
.hvw-summary dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.hvw-open,.hvw-close,.hvw-back{font:inherit;font-size:calc(.9375rem * var(--dt,1));line-height:1.35;min-height:44px;min-width:44px;border:1px solid var(--hair,#d5d1c9);padding:.625rem .875rem;border-radius:.875rem;background:var(--off,#f0eee9);color:var(--text,#24211d);cursor:pointer;overflow-wrap:anywhere;white-space:normal;transition:background-color 120ms ease,transform 120ms ease}
.hvw-open{width:100%;margin-top:auto;text-align:left;font-weight:650}
.hvw-open::after{content:'›';float:right;margin-inline-start:.625rem}
.hvw-open:active,.hvw-close:active,.hvw-back:active{transform:scale(.985)}
.hvw-open:disabled{cursor:default;opacity:.65}
.hvw-open:focus-visible,.hvw-close:focus-visible,.hvw-back:focus-visible,.hvw-switch:focus-visible{outline:3px solid var(--ink-blue,var(--blue,#075bd2));outline-offset:3px}
.hvw-switch-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px}
.hvw-switch-label{font-size:calc(.9375rem * var(--dt,1));line-height:1.4;min-width:0;overflow-wrap:anywhere}
.hvw-switch{position:relative;flex:none;width:3.5rem;height:44px;border:0;background:transparent;cursor:pointer;padding:0}
.hvw-switch::before{content:'';position:absolute;inset:6px 0;background:var(--sub,#68645e);border-radius:999px;transition:background-color 140ms ease}
.hvw-switch[aria-checked=true]::before{background:var(--ink-green,var(--green,#16793b))}
.hvw-switch-knob{position:absolute;width:1.5rem;height:1.5rem;top:50%;left:4px;border-radius:50%;background:#fff;transform:translateY(-50%);box-shadow:0 1px 3px rgba(0,0,0,.18);transition:left 140ms ease}
.hvw-switch[aria-checked=true] .hvw-switch-knob{left:calc(100% - 1.5rem - 4px)}
.hvw-switch:disabled{opacity:.65;cursor:default}
.hvw-editor{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(54rem,calc(100vw - 2rem));height:min(48rem,calc(100dvh - 2rem));max-width:100%;max-height:calc(100dvh - 2rem);border:1px solid var(--hair,#d5d1c9);padding:0;border-radius:1.5rem;color:var(--text,#24211d);background:var(--bg,#f5f2ec);overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 1rem 4rem rgba(0,0,0,.2);font-family:inherit}
.hvw-editor[open],.hvw-editor[data-open=true]{display:grid}
.hvw-editor[hidden],.hvw-workspace[hidden],.hvw-card [hidden]{display:none!important}
.hvw-editor::backdrop{background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}
.hvw-editor-borrowed{position:relative;inset:auto;margin:0;width:100%;height:min(47rem,calc(100dvh - 8rem));max-height:calc(100dvh - 8rem);box-shadow:none}
dialog.hvw-modal-editing{display:flex;flex-direction:column;width:min(54rem,calc(100vw - 2rem));height:min(48rem,calc(100dvh - 2rem));max-height:calc(100dvh - 2rem);padding:0!important;overflow:hidden}
.hvw-modal-editing .hc-dialog-top,.hvw-modal-editing .hc-header{display:none}
.hvw-modal-editing>.hc,.hvw-modal-editing>.hc-dialog-body,.hvw-modal-editing .hc-dialog-body>.hc,.hvw-modal-editing .hc-body{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;max-width:100%;height:100%;margin:0;padding:0}
.hvw-modal-editing .hvw-editor-borrowed{flex:1;width:100%;height:100%;min-height:0;max-height:none;border:0;border-radius:0}
.hvw-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--hair,#d5d1c9);min-width:0;background:var(--card,#fff)}
.hvw-editor-heading{min-width:0}
.hvw-editor-eyebrow{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.4;color:var(--sub,#615c53);margin:0 0 .375rem}
.hvw-editor .hvw-editor-title{font-size:calc(1.375rem * var(--dt,1));line-height:1.2;letter-spacing:-.03em;overflow-wrap:anywhere;margin:0}
.hvw-editor-title:focus{outline:0}
.hvw-editor-description{font-size:calc(.875rem * var(--dt,1));line-height:1.4;color:var(--sub,#615c53);margin:.375rem 0 0;overflow-wrap:anywhere}
.hvw-close{flex:none;width:44px;height:44px;padding:.5rem;font-size:1.5rem;line-height:1}
.hvw-editor-body{overflow:auto;overscroll-behavior:contain;min-height:0;min-width:0;padding:1.25rem;scrollbar-gutter:stable}
.hvw-editor-body>form,.hvw-editor-body>details{margin:0}
.hvw-editor-body>[data-hc-program]>form.hc-card>h3:first-child{display:none}
.hvw-editor-body>details>summary{display:none}
.hvw-editor-body:has(>.hvw-framed-form){overflow:hidden;padding:0}
.hvw-editor-body>.hvw-framed-form{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;height:100%;border:0;border-radius:0;background:transparent;padding:0}
.hvw-form-body{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:1.25rem}
.hvw-form-body>h3:first-of-type{display:none}
.hvw-form-feedback{display:block;max-width:100%;margin-top:1rem;overflow-wrap:anywhere;line-height:1.5}
.hvw-form-feedback:empty{display:none}
.hvw-form-footer.hc-actions{margin:0;padding:.875rem 1.25rem;border-top:1px solid var(--hair,#d5d1c9);background:var(--card,#fff);gap:.75rem;min-width:0;align-items:flex-start}
.hvw-form-footer .btn{min-height:44px;white-space:normal;max-width:100%}
.hvw-form-footer .hc-feedback{flex:1 1 13rem;min-width:0;overflow-wrap:anywhere;line-height:1.4}
.hvw-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:.875rem;padding:.75rem 1.25rem;border-top:1px solid var(--hair,#d5d1c9);background:var(--card,#fff);min-width:0}
.hvw-retained{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.4;color:var(--sub,#615c53);margin:0 0 1rem;min-width:0;overflow-wrap:anywhere}
.hvw-back{flex:none}
@media(max-width:600px){.hvw-grid{grid-template-columns:minmax(0,1fr)}.hvw-card{padding:1rem;border-radius:1.25rem}.hvw-editor{inset:auto 0 0;width:100%;height:calc(100dvh - max(8px,env(safe-area-inset-top)));max-height:calc(100dvh - max(8px,env(safe-area-inset-top)));margin:0;border-radius:1.5rem 1.5rem 0 0;border-bottom:0}.hvw-editor-borrowed{position:relative;inset:auto;height:calc(100dvh - 7rem);max-height:calc(100dvh - 7rem);border-radius:1.25rem}.hvw-editor-header,.hvw-editor-body,.hvw-form-body{padding:1rem}.hvw-editor-header{gap:.75rem}.hvw-editor-eyebrow,.hvw-editor-description{display:none}.hvw-editor-footer{padding:.625rem 1rem calc(.625rem + env(safe-area-inset-bottom));gap:.5rem;align-items:flex-start}.hvw-back{width:100%;font-size:calc(.8125rem * var(--dt,1))}.hvw-form-footer.hc-actions{padding:.75rem 1rem;gap:.5rem}.hvw-form-footer .hc-feedback{flex-basis:100%}.hvw-summary>div{grid-template-columns:minmax(0,1fr)}.hvw-summary dd{text-align:left}}
@media(prefers-reduced-motion:no-preference){.hvw-editor[data-open=true]{animation:hvw-enter 160ms cubic-bezier(.2,.8,.2,1)}@keyframes hvw-enter{from{opacity:.7;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.hvw-card,.hvw-open,.hvw-close,.hvw-back,.hvw-switch::before,.hvw-switch-knob{transition:none}.hvw-open:active,.hvw-close:active,.hvw-back:active{transform:none}}
@media(prefers-reduced-transparency:reduce){.hvw-editor::backdrop{backdrop-filter:none;background:rgba(0,0,0,.65)}}
@media(prefers-contrast:more){.hvw-card,.hvw-editor,.hvw-open,.hvw-close,.hvw-back{border-color:var(--text,#24211d)}.hvw-status{border:1px solid currentColor}}
@media(max-width:600px){dialog.hvw-modal-editing{inset:auto 0 0;margin:0;width:100%;max-width:100%;height:calc(100dvh - max(8px,env(safe-area-inset-top)));max-height:calc(100dvh - max(8px,env(safe-area-inset-top)));border-radius:1.5rem 1.5rem 0 0}.hvw-editor-body>details.hc-card{padding:0;border:0;background:transparent}}

/* Parent-provided page chrome: one compact location for setup and everyday actions. */
.hvw-page-intro{margin:0 0 1rem;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.5;color:var(--sub);max-width:64ch}
.hvw-page-tools,.hvw-page-shortcuts{display:flex;align-items:center;flex-wrap:wrap;gap:.625rem;min-width:0;margin-block:.75rem}
.hvw-page-tools{padding:.625rem;border:1px solid var(--hair);border-radius:1rem;background:var(--off)}
.hvw-page-tools .btn,.hvw-page-shortcuts .btn{min-height:44px;white-space:normal;max-width:100%;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.4}
.hvw-page-tools .btn{border:0;box-shadow:none;background:transparent}
.hvw-page-tools .btn:hover{background:var(--fill,var(--page))}
.hvw-page-shortcuts{padding-bottom:.5rem;border-bottom:1px solid var(--hair)}
.hvw-page-shortcuts .btn{flex:0 1 auto}
.hc:has(.hvw-workspace)>.hc-header{gap:1rem;margin-bottom:1rem;align-items:flex-end}
.hc:has(.hvw-workspace)>.hc-header .hc-actions{gap:.625rem}
.hc:has(.hvw-workspace)>.hc-header .hc-field{min-width:0;font-size:var(--f-footnote)}
.hc:has(.hvw-workspace)>.hc-header .hc-eyebrow{margin-bottom:.25rem}
@media(max-width:600px){.hvw-page-tools{gap:.375rem}.hvw-page-tools .btn,.hvw-page-shortcuts .btn{flex:1 1 9rem;text-align:left;padding:.625rem .75rem}.hc:has(.hvw-workspace)>.hc-header{align-items:flex-start}.hc:has(.hvw-workspace)>.hc-header .hc-actions{width:100%}.hc:has(.hvw-workspace)>.hc-header .hc-field{flex:1 1 10rem}.hvw-page-intro{margin-bottom:.75rem}}

.hvw-page-tools>.hc-actions{display:contents;margin:0}

/* /hub-fleet-workspace.css */
.hfw-tabs{display:flex;gap:.5rem;max-width:100%;overflow-x:auto;padding:.25rem .25rem .75rem;scrollbar-width:thin;overscroll-behavior-inline:contain}
.hfw-tab{flex:1 0 auto;min-height:44px;border:1px solid var(--hair);border-radius:1rem;background:var(--fill);color:var(--text);font:600 calc(.9375rem * var(--dt,1))/1.25 system-ui;padding:.75rem 1rem;transition:background-color .16s ease,box-shadow .16s ease}
.hfw-tab[aria-selected=true]{background:var(--card);box-shadow:0 2px 7px rgb(0 0 0/.1);border-color:var(--ink-green);color:var(--ink-green)}
.hfw-tab:active{background:var(--off)}
.hfw-tab:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.hfw-workspace [role=tabpanel][hidden],.hfw-message[hidden]{display:none!important}
.hfw-workspace [role=tabpanel]{min-width:0}
.hfw-workspace .hvw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hfw-roster,.hfw-history{margin:0 0 1rem}
.hfw-roster>h3,.hfw-history>h3{margin:0 0 .75rem}
.hfw-workspace [data-fleet-legacy-comp]{margin:1rem 0;border:1px solid var(--hair);border-radius:1rem;padding:1rem;color:var(--text)}
.hfw-workspace [data-fleet-legacy-comp]>h3{font-weight:600;font-size:calc(.9375rem * var(--dt,1))}
.hfw-message{font-size:calc(.875rem * var(--dt,1));line-height:1.5;color:var(--sub);overflow-wrap:anywhere}
.hfw-host .hvw-editor-body{overflow-wrap:anywhere}
.hfw-host .hvw-editor-body .hc-table{max-width:100%}
@media(max-width:700px){.hfw-workspace .hvw-grid{grid-template-columns:minmax(0,1fr)}.hfw-tab{font-size:calc(.875rem * var(--dt,1));padding:.625rem .875rem}.hfw-roster .hc-table{margin:.5rem 0 1rem}}
@media(prefers-reduced-motion:reduce){.hfw-tab{transition:none}}

.hfw-dialog>.hc-dialog-top{display:none}
.hfw-root>.hc-header{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin-bottom:1rem}
.hfw-root>.hc-header .hc-eyebrow{display:none}
.hfw-root>.hc-header .hfw-titlebar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.hfw-root>.hc-header .hc-actions{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:end;gap:.75rem;width:100%}
.hfw-root>.hc-header .hfw-refresh{min-width:44px;min-height:44px;width:44px;padding:.625rem;display:grid;place-items:center}
.hfw-refresh svg{width:24px;height:24px}
.hfw-dialog.hvw-modal-editing .hfw-root>.hc-header{display:none}

dialog.hfw-dialog:not(.hvw-modal-editing){box-sizing:border-box;width:min(1180px,calc(100vw - 1rem));max-width:calc(100vw - 1rem);padding:0}
.hfw-root>.hc-header .hfw-close{flex:none;min-width:44px;min-height:44px;width:44px;height:44px;padding:.625rem;display:grid;place-items:center}
.hfw-close svg{width:24px;height:24px}

/* /hub-network-configuration.css */
.hnc{min-width:0;color:var(--text);font-size:var(--f-callout,1rem)}
.hnc-intro{display:flex;gap:18px;align-items:center;margin:8px 0 28px}
.hnc-intro h3,.hnc-intro p{margin:4px 0}.hnc-network-symbol{display:grid;place-items:center;flex:0 0 64px;height:64px;border-radius:22px;background:var(--fill);color:var(--ink-green)}
.hnc-tabs{display:flex;gap:6px;padding:5px;border-radius:18px;background:var(--fill,#f2f2f4);margin:0 0 24px}.hnc-tabs button{flex:1;border:0;border-radius:13px;background:transparent;color:var(--text);min-height:44px;font:inherit;font-weight:600;padding:10px 16px}.hnc-tabs [aria-selected=true]{background:var(--card,#fff);box-shadow:0 2px 8px #0000000d}
.hnc-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;border:0;padding:0;margin:16px 0 24px}.hnc-presets legend{font-size:var(--f-title3,1.25rem);font-weight:600;margin-bottom:16px}
.hnc-preset{position:relative;display:flex;gap:12px;align-items:flex-start;border:1px solid var(--hair);border-radius:24px;padding:20px;background:var(--card,#fff);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.hnc-preset:has(:checked){border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.hnc-preset input{margin-top:3px;accent-color:var(--green);width:20px;height:20px;flex:none}.hnc-preset strong{font-weight:650;display:block;font-size:var(--f-headline,1.0625rem);line-height:1.3;margin-bottom:10px}.hnc-preset small{display:block;font-size:var(--f-subhead,.9375rem);line-height:1.5;color:var(--sub)}
.hnc-reference{max-width:34rem;margin:22px 0}.hnc .hc-config-disclosure{margin:20px 0;padding:18px;border:1px solid var(--hair);border-radius:20px}.hnc .hc-config-disclosure>summary{font-weight:600}.hnc form>.hc-actions{margin-top:24px}.hnc-hours{margin-top:24px}.hnc-turn{display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:18px;border-radius:18px;border:1px solid var(--hair);margin:12px 0}.hnc-turn .hc-field{flex:1 1 130px}.hnc-days{display:flex;flex-wrap:wrap;gap:6px;flex:1 0 100%}.hnc-days label{cursor:pointer;position:relative}.hnc-days label span{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--hair);border-radius:14px;font-size:var(--f-subhead,.9375rem)}.hnc-days input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.hnc-days input:checked+span{background:var(--green);color:white}.hnc-days input:focus-visible+span{outline:3px solid var(--foco-cor);outline-offset:3px}
.hnc-unit-fields{display:grid;gap:10px;margin:16px 0 24px}.hnc-unit-field{border:1px solid var(--hair);border-radius:18px;padding:16px}.hnc-unit-field>summary{display:flex;align-items:center;gap:12px;justify-content:space-between;cursor:pointer}.hnc-unit-field summary strong,.hnc-unit-field summary small{display:block}.hnc-unit-field small{color:var(--sub);line-height:1.5;margin-top:5px}.hnc-origin{font-size:var(--f-caption1,.8rem);border-radius:12px;background:var(--fill,#f2f2f4);padding:6px 9px;flex:none}.hnc-unit-field .hc-field{margin:18px 0}.hnc-preview{margin:24px 0;border-radius:24px;border:1px solid var(--hair);padding:24px;background:var(--card,#fff)}.hnc-review-unit{margin:16px 0;border:1px solid var(--hair);border-radius:18px;padding:16px}.hnc-review-unit>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.hnc-review-unit>summary span{font-size:var(--f-subhead,.9375rem);color:var(--sub)}.hnc-review-row{display:grid;grid-template-columns:1.2fr 1fr auto 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--hair);margin-top:12px;align-items:center;font-size:var(--f-subhead,.9375rem)}.hnc-review-row small,.hnc-review-row .hc-field{grid-column:1/-1}.hnc-review-row span,.hnc-review-row b{overflow-wrap:anywhere}.hnc-review-row small{color:var(--sub)}.hnc-feedback{min-height:1.5em;color:var(--ink-green);line-height:1.5}.hnc :is(button,summary,input,select):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hnc [hidden]{display:none!important}
@media(max-width:760px){.hnc-presets{grid-template-columns:1fr}.hnc-preset{padding:18px}.hnc-preview{padding:16px}.hnc-review-row{grid-template-columns:1fr auto 1fr}.hnc-review-row>strong{grid-column:1/-1}.hnc-unit-field>summary{align-items:flex-start;flex-direction:column}.hnc-tabs button{padding:10px 8px}.hnc .hc-actions>.btn{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.hnc *{transition:none!important;scroll-behavior:auto!important}}

.hnc-network-symbol svg{width:32px;height:32px}.hnc .btn,.hnc summary,.hnc select,.hnc input:not([type=radio]):not([type=checkbox]){min-height:44px}.hnc-preset:focus-within{outline:3px solid var(--foco-cor);outline-offset:4px}.hnc :is(input,select){min-width:0;max-width:100%}.hnc legend{max-width:100%}.hnc-unit-field>summary span{min-width:0;overflow-wrap:anywhere}

/* Visual choices retain the original radio and server preset; selection is draft only. */
.hnc-preset-body{min-width:0;flex:1}.hnc-preset-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.hnc-preset-heading strong{margin:0;min-width:0;overflow-wrap:anywhere}
.hnc-preset-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;background:var(--fill);color:var(--ink-green);border-radius:14px}.hnc-preset-icon svg{width:26px;height:26px}
.hnc-preset-summary{margin-bottom:14px}.hnc-preset-conditions{display:flex;flex-wrap:wrap;gap:6px}.hnc-preset-conditions>span,.hnc-preset-selected{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.4;border-radius:10px;padding:5px 8px;background:var(--fill);color:var(--label);overflow-wrap:anywhere}
.hnc-preset-selected{display:none;margin-top:12px;color:var(--ink-green)}.hnc-preset input:checked+.hnc-preset-body .hnc-preset-selected{display:inline-block}
.hnc-preset:active{transform:scale(.99)}
@media(hover:hover){.hnc-preset:hover{border-color:var(--ink-green);box-shadow:0 5px 16px rgba(0,0,0,.06)}}
@media(prefers-reduced-motion:reduce){.hnc-preset:active{transform:none}}

/* /hub-rede-primeiro.css */
/* 1.74.0 (Philippe, 03/10/2026): REDE PRIMEIRO (web/hub-rede-primeiro.js). O mesmo desenho em toda tela que era só por
   loja: o cartão "Todas as lojas" com o padrão da rede e, embaixo, uma linha discreta por loja. Conteúdo em superfície
   sólida (vidro só na camada funcional); a folha de edição também é sólida, porque é formulário para ler e preencher. */
.hc-rede-primeiro{display:grid;gap:14px;margin:0 0 18px}
.hc-rede-primeiro:empty,.hc-rede-primeiro>[hidden]{display:none}
.hrp{background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:18px;padding:20px 22px;color:var(--label,#3A2A1E);box-shadow:0 1px 2px rgba(70,45,25,.05),0 6px 18px rgba(70,45,25,.06)}
.hrp.hrp-busy,.hrp-busy .hrp{cursor:progress}
.hrp-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.hrp-icon{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--sys-blue,#0088FF) 12%,transparent);color:var(--ink-blue,#0062B8)}
.hrp-icon svg{width:22px;height:22px}
.hrp-title{flex:1 1 220px;min-width:0}
.hrp-eyebrow,.hrp-dialog .hrp-eyebrow{margin:0 0 2px;font-size:calc(0.8125rem * var(--dt,1));font-weight:650;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-blue,#0062B8)}
.hrp h3,.hrp-dialog h3{margin:0;font-size:calc(1.1875rem * var(--dt,1));line-height:1.25;letter-spacing:-.015em}
.hrp-hint,.hrp-dialog .hrp-hint{margin:4px 0 0;font-size:calc(0.875rem * var(--dt,1));line-height:1.45;color:var(--label2,#6B5A4C)}
.hrp-head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hrp .btn,.hrp-dialog .btn{min-height:44px}
.hrp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 22px;margin:18px 0 0;padding:0}
.hrp-summary div{min-width:0}
.hrp-summary dt{font-size:calc(0.8125rem * var(--dt,1));color:var(--label2,#6B5A4C);margin:0 0 2px}
.hrp-summary dd{margin:0;font-size:calc(0.9375rem * var(--dt,1));font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.hrp-note{margin:14px 0 0;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.hrp-units{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--sep,rgba(58,42,30,.14))}
.hrp-unit{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;min-height:52px;padding:6px 0;border-bottom:1px solid var(--sep,rgba(58,42,30,.14))}
.hrp-unit:last-child{border-bottom:0}
.hrp-unit-name{font-weight:650;font-size:calc(0.9375rem * var(--dt,1));min-width:112px}
.hrp-state{display:inline-flex;align-items:center;gap:5px;font-size:calc(0.8125rem * var(--dt,1));font-weight:650;border-radius:999px;padding:4px 10px;white-space:nowrap}
.hrp-state svg{width:14px;height:14px}
.hrp-follows{color:var(--ink-green,#1B7A36);background:color-mix(in srgb,var(--sys-green,#34C759) 14%,transparent)}
.hrp-exception{color:var(--ink-orange,#A85400);background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent)}
.hrp-pending{color:var(--label2,#6B5A4C);background:var(--fill,rgba(90,65,45,.08))}
.hrp-diffs{display:flex;flex-direction:column;gap:2px;flex:1 1 220px;min-width:0}
.hrp-diff{font-size:calc(0.875rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}
.hrp-diff b{font-weight:600}
.hrp-diff small{color:var(--label2,#6B5A4C);font-size:calc(0.8125rem * var(--dt,1))}
.hrp-reason{display:block}
.hrp-unit-actions{display:flex;gap:4px 16px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}
.hrp-link{appearance:none;background:none;border:0;padding:0 2px;min-height:44px;font:inherit;font-size:calc(0.875rem * var(--dt,1));font-weight:600;color:var(--ink-blue,#0062B8);cursor:pointer;border-radius:8px;transition:opacity .12s ease-out}
.hrp-link:active{opacity:.55}
.hrp-link:focus-visible,.hrp-dialog :is(input,select,button):focus-visible{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
.hrp-danger{color:var(--ink-red,#C4161C)}
.hrp-feedback{margin:12px 0 0;min-height:0;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.hrp-feedback:empty{display:none}
.hrp-feedback.hrp-ok{color:var(--ink-green,#1B7A36)}
.hrp-error,.hrp-feedback.hrp-error{color:var(--ink-red,#C4161C)}

/* Folha de edição: sólida, com cabeçalho e rodapé presos. No telefone sobe de baixo e ocupa a largura toda. */
.hrp-dialog{border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:20px;padding:0;width:min(720px,94vw);max-height:min(90vh,860px);background:var(--surface,#fff);color:var(--label,#3A2A1E);box-shadow:0 24px 70px rgba(40,25,10,.28);overflow:hidden}
.hrp-dialog[open]{display:flex;animation:hrp-in .26s cubic-bezier(.2,.9,.25,1)}
.hrp-dialog::backdrop{background:rgba(20,12,6,.42);animation:hrp-fade .2s ease-out}
@keyframes hrp-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes hrp-fade{from{opacity:0}to{opacity:1}}
.hrp-form{display:flex;flex-direction:column;min-height:0;width:100%}
.hrp-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 22px 14px;border-bottom:1px solid var(--sep,rgba(58,42,30,.14))}
.hrp-form-body{overflow:auto;overscroll-behavior:contain;padding:6px 22px 18px;-webkit-overflow-scrolling:touch}
.hrp-form-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:14px 22px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--sep,rgba(58,42,30,.14));background:var(--surface,#fff)}
.hrp-form-error{flex:1 1 100%;margin:0;font-size:calc(0.875rem * var(--dt,1));color:var(--ink-red,#C4161C)}
.hrp-form-error:empty{display:none}
.hrp-group{padding:14px 0 4px;border-bottom:1px solid var(--sep,rgba(58,42,30,.14))}
.hrp-group:last-child{border-bottom:0}
.hrp-group h4{margin:0 0 10px;font-size:calc(0.8125rem * var(--dt,1));font-weight:650;letter-spacing:.02em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.hrp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.hrp-cell{min-width:0;display:flex;flex-direction:column;gap:4px;padding-bottom:8px}
.hrp-cell-hours,.hrp-cell-multi,.hrp-cell-week_bps{grid-column:1/-1}
.hrp-field{display:flex;flex-direction:column;gap:6px;font-size:calc(0.875rem * var(--dt,1));font-weight:600;min-width:0}
.hrp-field input,.hrp-field select,.hrp-week input{font:inherit;font-weight:400;font-size:calc(1rem * var(--dt,1));color:inherit;background:var(--surface2,#F7F4F1);border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:12px;min-height:44px;padding:8px 12px;width:100%;box-sizing:border-box}
.hrp-affix{display:flex;align-items:center;gap:8px}
.hrp-affix i{font-style:normal;font-weight:400;color:var(--label2,#6B5A4C);font-size:calc(0.9375rem * var(--dt,1));white-space:nowrap}
.hrp-help,.hrp-net{font-size:calc(0.8125rem * var(--dt,1));line-height:1.4;color:var(--label2,#6B5A4C)}
.hrp-net.hrp-differs{color:var(--ink-orange,#A85400);font-weight:600}
.hrp-switch{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-size:calc(0.9375rem * var(--dt,1));font-weight:600;position:relative}
.hrp-switch input{position:absolute;opacity:0;width:51px;height:31px;margin:0;cursor:pointer}
.hrp-switch-track{flex:none;width:51px;height:31px;border-radius:999px;background:var(--fill3,rgba(90,65,45,.16));position:relative;transition:background-color .2s ease-out}
.hrp-switch-track::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.22);transition:transform .22s cubic-bezier(.3,1.2,.4,1)}
.hrp-switch input:checked+.hrp-switch-track{background:var(--sys-green,#34C759)}
.hrp-switch input:checked+.hrp-switch-track::after{transform:translateX(20px)}
.hrp-switch input:active+.hrp-switch-track::after{width:31px}
.hrp-switch input:checked:active+.hrp-switch-track::after{transform:translateX(16px)}
.hrp-switch input:focus-visible+.hrp-switch-track{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
.hrp-multi,.hrp-week,.hrp-hours{border:0;margin:0;padding:0;min-width:0}
.hrp-multi legend,.hrp-week legend,.hrp-hours legend{padding:0;margin:0 0 6px;font-size:calc(0.875rem * var(--dt,1));font-weight:600}
.hrp-multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 16px}
.hrp-multi legend{grid-column:1/-1}
.hrp-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:calc(0.9375rem * var(--dt,1));cursor:pointer}
.hrp-check input{width:22px;height:22px;flex:none;accent-color:var(--sys-blue,#0088FF)}
.hrp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.hrp-week legend{grid-column:1/-1}
.hrp-week label{display:flex;flex-direction:column;gap:4px;font-size:calc(0.8125rem * var(--dt,1));color:var(--label2,#6B5A4C);min-width:0}
.hrp-week input{padding:8px 6px;text-align:center}
.hrp-turn{display:grid;grid-template-columns:minmax(0,1fr) 120px 120px auto;gap:10px 12px;align-items:end;padding:10px 0;border-bottom:1px solid var(--sep,rgba(58,42,30,.14))}
.hrp-days{display:flex;flex-wrap:wrap;gap:6px}
.hrp-days label{position:relative;display:inline-flex}
.hrp-days input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.hrp-days span{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0 6px;border-radius:12px;background:var(--fill,rgba(90,65,45,.08));font-size:calc(0.875rem * var(--dt,1));font-weight:600;transition:background-color .15s ease-out,color .15s ease-out,transform .1s ease-out}
.hrp-days input:checked+span{background:var(--on-blue,#0062B8);color:#fff}
.hrp-days input:active+span{transform:scale(.94)}
.hrp-days input:focus-visible+span{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
.hrp-hours>.btn{margin-top:12px}
@media (max-width:700px){
  .hrp{padding:16px}
  .hrp-head-actions{width:100%}
  .hrp-head-actions .btn{flex:1 1 auto}
  .hrp-unit-actions{margin-left:0;width:100%;justify-content:flex-start}
  .hrp-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hrp-grid{grid-template-columns:1fr}
  .hrp-dialog{width:100vw;max-width:100vw;max-height:92vh;margin:auto 0 0;border-radius:20px 20px 0 0;border-width:1px 0 0}
  .hrp-dialog[open]{animation:hrp-up .32s cubic-bezier(.2,.9,.25,1)}
  .hrp-form-head,.hrp-form-foot{padding-left:16px;padding-right:16px}
  .hrp-form-body{padding-left:16px;padding-right:16px}
  .hrp-form-foot .btn{flex:1 1 0}
  .hrp-turn{grid-template-columns:1fr 1fr}
  .hrp-turn .hrp-days{grid-column:1/-1}
  .hrp-week{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@keyframes hrp-up{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  .hrp-dialog[open]{animation:hrp-fade .18s ease-out}
  .hrp-switch-track,.hrp-switch-track::after,.hrp-days span,.hrp-link{transition:none}
}
@media (prefers-contrast:more){.hrp,.hrp-dialog{border-color:var(--label,#3A2A1E)}}

/* /combos-arrastar.css */
/* 1.74.0 (Philippe, 03/10/2026): COMBOS POR ARRASTAR (web/combos-arrastar.js), no cartão Combos do Cardápio (04/10: o
   resumo e o desenho do cartão dentro do carrossel moram em web/cardapio-cartoes.css; a dobra do celular saiu). Os cartões são
   conteúdo: superfície sólida. Vidro só na doca que desce durante o arrasto (camada funcional, flutua sobre a lista).
   O que o dedo move (o cartãozinho que acompanha o arrasto) é pintado por mola no JS; aqui ficam só as transições de
   estado que não dependem do gesto (destaque do alvo, sombra, cor). */
.cb{margin:6px 0 26px;color:var(--label,#3A2A1E)}
.cb [hidden]{display:none!important}
.cb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 10px}
.cb-title{margin:0;font-size:calc(1.375rem * var(--dt,1));line-height:1.2;letter-spacing:-.02em;font-weight:700}
.cb-sub{margin:4px 0 0;font-size:calc(0.875rem * var(--dt,1));line-height:1.45;color:var(--label2,#6B5A4C);max-width:62ch}
.cb-nav{display:flex;gap:8px;flex:none}
.cb-nav-btn{appearance:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--sep,rgba(58,42,30,.14));background:var(--surface,#fff);color:inherit;display:grid;place-items:center;cursor:pointer;transition:transform .1s ease-out,background-color .15s ease-out}
.cb-nav-btn svg{width:20px;height:20px}
.cb-nav-btn:active{transform:scale(.94);background:var(--fill,rgba(90,65,45,.08))}
@media (hover:none){.cb-nav{display:none}}
.cb-loading{margin:0;padding:18px 0;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-rail{display:flex;gap:14px;align-items:stretch;overflow-x:auto;overflow-y:visible;padding:6px 2px 16px;margin:0 -2px;scroll-snap-type:x proximity;scroll-padding:0 2px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.cb-rail:focus-visible{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px;border-radius:18px}
.cb-card{flex:0 0 min(328px,86vw);box-sizing:border-box;display:flex;flex-direction:column;gap:10px;scroll-snap-align:start;background:var(--surface,#fff);border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:18px;padding:16px;box-shadow:0 1px 2px rgba(70,45,25,.05),0 6px 18px rgba(70,45,25,.06);transition:transform .16s ease-out,box-shadow .16s ease-out,border-color .16s ease-out,background-color .16s ease-out}
.cb-card.cb-dirty{border-color:color-mix(in srgb,var(--sys-orange,#FF8D28) 55%,transparent)}
.cb-card.cb-over,.cb-dock-chip.cb-over{transform:scale(1.025);border-color:var(--sys-blue,#0088FF);background:color-mix(in srgb,var(--sys-blue,#0088FF) 7%,var(--surface,#fff));box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue,#0088FF) 30%,transparent),0 14px 34px rgba(40,25,10,.16)}
.cb-card-top{display:flex;align-items:center;gap:8px;min-width:0}
.cb-name{flex:1 1 auto;min-width:0;font:inherit;font-size:calc(1.0625rem * var(--dt,1));font-weight:650;letter-spacing:-.01em;color:inherit;background:transparent;border:1px solid transparent;border-radius:10px;min-height:44px;padding:6px 8px;margin:-6px 0 -6px -8px;text-overflow:ellipsis}
.cb-name:hover{border-color:var(--sep,rgba(58,42,30,.14))}
.cb-name:focus{outline:none;background:var(--surface2,#F7F4F1);border-color:var(--sys-blue,#0088FF)}
.cb-name-fixed{flex:1 1 auto;min-width:0;margin:0;font-size:calc(1.0625rem * var(--dt,1));font-weight:650;overflow-wrap:anywhere}
.cb-badge{flex:none;font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));font-weight:650;border-radius:999px;padding:3px 9px;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.cb-dirty .cb-badge{color:var(--ink-orange,#A85400);background:color-mix(in srgb,var(--sys-orange,#FF8D28) 16%,transparent)}
.cb-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.cb-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto 44px;align-items:center;gap:8px;min-height:44px;border-top:1px solid var(--sep,rgba(58,42,30,.14));cursor:grab;touch-action:pan-x;border-radius:8px;transition:background-color .5s ease-out}
.cb-line:first-child{border-top:0}
.cb-line.cb-line-in{background:color-mix(in srgb,var(--sys-green,#34C759) 16%,transparent);transition:none}
.cb-qty{font-size:calc(0.875rem * var(--dt,1));font-weight:650;font-variant-numeric:tabular-nums;color:var(--label2,#6B5A4C);min-width:28px}
.cb-line-name{font-size:calc(0.9375rem * var(--dt,1));line-height:1.3;overflow-wrap:anywhere}
.cb-line-name small{display:block;font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.cb-line-price{font-size:calc(0.875rem * var(--dt,1));font-variant-numeric:tabular-nums;color:var(--label2,#6B5A4C);white-space:nowrap}
.cb-x{appearance:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--label3,#8A7666);display:grid;place-items:center;cursor:pointer;transition:background-color .12s ease-out,color .12s ease-out,transform .1s ease-out}
.cb-x svg{width:16px;height:16px}
.cb-x:hover{background:var(--fill,rgba(90,65,45,.08));color:var(--ink-red,#C4161C)}
.cb-x:active{transform:scale(.9);background:var(--fill2,rgba(90,65,45,.12))}
.cb-empty{margin:0;padding:18px 12px;border:1.5px dashed var(--sep,rgba(58,42,30,.22));border-radius:12px;text-align:center;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-price{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--sep,rgba(58,42,30,.14))}
.cb-sum{margin:0;display:flex;justify-content:space-between;gap:10px;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-sum b{color:var(--label,#3A2A1E);font-variant-numeric:tabular-nums}
.cb-price-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px}
.cb-field{display:flex;flex-direction:column;gap:5px;font-size:calc(0.8125rem * var(--dt,1));font-weight:600;color:var(--label2,#6B5A4C);min-width:0}
.cb-affix{display:flex;align-items:center;gap:6px;background:var(--surface2,#F7F4F1);border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:12px;padding:0 10px;min-height:44px}
.cb-affix:focus-within{border-color:var(--sys-blue,#0088FF);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue,#0088FF) 22%,transparent)}
.cb-affix i{font-style:normal;font-weight:400;font-size:calc(0.9375rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-affix input{flex:1 1 auto;min-width:0;width:100%;border:0;background:transparent;font:inherit;font-size:calc(1rem * var(--dt,1));font-weight:650;font-variant-numeric:tabular-nums;color:var(--label,#3A2A1E);padding:8px 0;outline:none}
.cb-deal{margin:0;min-height:1.3em;font-size:calc(0.875rem * var(--dt,1));font-weight:650;line-height:1.35;color:var(--ink-green,#1B7A36)}
.cb-alert{margin:0;font-size:calc(0.8125rem * var(--dt,1));line-height:1.4;font-weight:600;color:var(--ink-red,#C4161C)}
.cb-warn{margin:0;padding:8px 10px;border-radius:10px;font-size:calc(0.8125rem * var(--dt,1));line-height:1.4;color:var(--ink-orange,#A85400);background:color-mix(in srgb,var(--sys-orange,#FF8D28) 12%,transparent)}
.cb-stores{display:flex;flex-direction:column;gap:8px}
.cb-stores-label{font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));line-height:1.4;color:var(--label2,#6B5A4C)}
.cb-stores-row{display:flex;flex-wrap:wrap;gap:8px}
.cb-store{appearance:none;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 12px;border-radius:999px;border:1px solid var(--sep,rgba(58,42,30,.14));background:var(--surface,#fff);color:var(--label2,#6B5A4C);font:inherit;font-size:calc(0.8125rem * var(--dt,1));font-weight:600;cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out,transform .1s ease-out}
.cb-store small{font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));font-weight:400}
.cb-store-dot{width:9px;height:9px;border-radius:50%;background:var(--sys-gray2,#AEAEB2)}
.cb-store[aria-pressed="true"]{color:var(--ink-green,#1B7A36);border-color:color-mix(in srgb,var(--sys-green,#34C759) 45%,transparent);background:color-mix(in srgb,var(--sys-green,#34C759) 12%,transparent)}
.cb-store[aria-pressed="true"] .cb-store-dot{background:var(--sys-green,#34C759)}
.cb-store:active{transform:scale(.96)}
.cb-store:disabled{opacity:.55;cursor:default}
.cb-actions{display:flex;gap:8px;flex-wrap:wrap}
.cb-actions .btn{min-height:44px;flex:1 1 auto}
.cb-status{margin:0;min-height:0;font-size:calc(0.8125rem * var(--dt,1));line-height:1.4;color:var(--label2,#6B5A4C)}
.cb-status:empty{display:none}
.cb-status.cb-status-error{color:var(--ink-red,#C4161C)}
.cb :is(.cb-store,.cb-x,.cb-nav-btn,.btn):focus-visible,.cb-picker :is(button):focus-visible,.cb-add:focus-visible{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
/* Novo combo e sugestão do Cérebro */
.cb-new{border-style:dashed;border-width:1.5px;background:transparent;box-shadow:none;justify-content:center}
.cb-new-in{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:26px 8px}
.cb-new-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C)}
.cb-new-icon svg{width:22px;height:22px}
.cb-new h3,.cb-suggestion h3{margin:0;font-size:calc(1.0625rem * var(--dt,1));font-weight:650;letter-spacing:-.01em;overflow-wrap:anywhere}
.cb-new p{margin:0;font-size:calc(0.875rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-new .btn,.cb-suggestion .btn{min-height:44px}
.cb-suggestion{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 7%,var(--surface,#fff));border-color:color-mix(in srgb,var(--sys-indigo,#6155F5) 30%,transparent)}
.cb-eyebrow{display:flex;align-items:center;gap:6px;margin:0;font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-blue,#0062B8)}
.cb-eyebrow svg{width:16px;height:16px}
.cb-sugg-fact{margin:0;font-size:calc(0.9375rem * var(--dt,1));line-height:1.4}
.cb-sugg-note{margin:0;font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.cb-suggestion .btn{margin-top:auto}
/* Itens do cardápio que podem ir para um combo */
#menuv .mi[data-cb-item]{cursor:grab}
#menuv .mi.cb-dragging-source,.cb-line.cb-dragging-source{opacity:.42}
.cb-add{white-space:nowrap}
@media (pointer:coarse){#menuv .mi[data-cb-item],.cb-line{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}
html.cb-dragging,html.cb-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}
/* O cartãozinho que acompanha o dedo: a posição e a escala são da mola (JS); aqui só sombra e opacidade */
.cb-ghost{position:fixed;left:0;top:0;z-index:2147483200;pointer-events:none;display:flex;align-items:center;gap:10px;max-width:280px;min-width:160px;box-sizing:border-box;padding:8px 14px 8px 8px;border-radius:14px;background:var(--surface,#fff);color:var(--label,#3A2A1E);border:1px solid var(--sep,rgba(58,42,30,.14));box-shadow:0 2px 6px rgba(40,25,10,.12);font-size:calc(0.9375rem * var(--dt,1));font-weight:650;transform-origin:0 0;will-change:transform;transition:box-shadow .18s ease-out,opacity .22s ease-out}
.cb-ghost img{width:44px;height:36px;border-radius:8px;object-fit:cover;flex:none}
.cb-ghost span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:6px}
.cb-ghost img+span{padding-left:0}
.cb-ghost.cb-ghost-up{box-shadow:0 18px 44px rgba(40,25,10,.3),0 2px 8px rgba(40,25,10,.14)}
.cb-ghost.cb-ghost-drop{opacity:.25}
.cb-ghost.cb-ghost-out{opacity:.7;border-color:var(--sys-red,#FF383C)}
.cb-ghost.cb-ghost-gone{opacity:0}
/* Doca: vidro, só enquanto o item está no ar e o carrossel ficou para cima */
.cb-dock{position:fixed;z-index:2147483100;left:8px;right:8px;top:calc(8px + env(safe-area-inset-top,0px));padding:10px 12px 12px;border-radius:20px;background:var(--glass-bg,rgba(255,255,255,.72));-webkit-backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);backdrop-filter:blur(var(--glass-blur,24px)) saturate(180%);border:1px solid var(--glass-border,rgba(255,255,255,.88));box-shadow:0 14px 40px rgba(40,25,10,.22);transform:translateY(-130%);opacity:0;transition:transform .28s cubic-bezier(.2,.9,.25,1),opacity .2s ease-out}
.cb-dock.cb-dock-in{transform:none;opacity:1}
.cb-dock-title{margin:0 0 8px 4px;font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--label,#3A2A1E)}
.cb-dock-rail{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:4px}
.cb-dock-rail::-webkit-scrollbar{display:none}
.cb-dock-chip{flex:0 0 auto;min-width:148px;max-width:220px;min-height:60px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 14px;border-radius:14px;background:var(--surface,#fff);border:1.5px solid var(--sep,rgba(58,42,30,.14));transition:transform .14s ease-out,box-shadow .14s ease-out,border-color .14s ease-out,background-color .14s ease-out}
.cb-dock-chip b{display:flex;align-items:center;gap:6px;font-size:calc(0.9375rem * var(--dt,1));font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb-dock-chip b svg{width:16px;height:16px;flex:none}
.cb-dock-chip small{font-size:max(.6875rem,calc(0.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.cb-dock-new{border-style:dashed}
/* "Adicionar a qual combo?": folha sólida */
.cb-picker{border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:20px;padding:0;width:min(440px,94vw);max-height:min(80vh,640px);background:var(--surface,#fff);color:var(--label,#3A2A1E);box-shadow:0 24px 70px rgba(40,25,10,.28);overflow:hidden}
.cb-picker[open]{display:flex;animation:cb-in .24s cubic-bezier(.2,.9,.25,1)}
.cb-picker::backdrop{background:rgba(20,12,6,.42)}
.cb-picker-in{display:flex;flex-direction:column;min-height:0;width:100%;margin:0}
.cb-picker header{padding:18px 20px 10px}
.cb-picker h3{margin:4px 0 0;font-size:calc(1.1875rem * var(--dt,1));letter-spacing:-.015em}
.cb-picker-list{list-style:none;margin:0;padding:0 12px;overflow:auto;overscroll-behavior:contain}
.cb-pick{appearance:none;width:100%;min-height:56px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:8px 12px;border:0;border-top:1px solid var(--sep,rgba(58,42,30,.14));background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px;transition:background-color .12s ease-out}
.cb-picker-list li:first-child .cb-pick{border-top:0}
.cb-pick:hover,.cb-pick:active{background:var(--fill,rgba(90,65,45,.08))}
.cb-pick-name{display:flex;align-items:center;gap:8px;font-size:calc(1rem * var(--dt,1));font-weight:600;overflow-wrap:anywhere}
.cb-pick-name svg{width:18px;height:18px;flex:none}
.cb-pick small{font-size:calc(0.8125rem * var(--dt,1));color:var(--label2,#6B5A4C)}
.cb-pick-new .cb-pick-name{color:var(--ink-blue,#0062B8)}
.cb-picker footer{display:flex;justify-content:flex-end;padding:12px 20px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--sep,rgba(58,42,30,.14))}
.cb-picker footer .btn{min-height:44px}
@keyframes cb-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cb-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes cb-fade{from{opacity:0}to{opacity:1}}
@media (max-width:700px){
  .cb-head{align-items:flex-start}
  .cb-picker{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:20px 20px 0 0;border-width:1px 0 0}
  .cb-picker[open]{animation:cb-up .3s cubic-bezier(.2,.9,.25,1)}
  .cb-picker footer .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){
  .cb-card,.cb-dock-chip,.cb-store,.cb-x,.cb-nav-btn,.cb-ghost{transition:none}
  .cb-card.cb-over,.cb-dock-chip.cb-over{transform:none}
  .cb-dock{transform:none;transition:opacity .15s ease-out}
  .cb-picker[open]{animation:cb-fade .15s ease-out}
}
@media (prefers-reduced-transparency:reduce){.cb-dock{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--sep,rgba(58,42,30,.14))}}
@media (prefers-contrast:more){.cb-card,.cb-dock,.cb-dock-chip,.cb-picker{border-color:var(--label,#3A2A1E)}.cb-dock{background:var(--surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* /hub-network-model.css */
/* Modelo da rede em um clique (1.74.0). Três modelos como rádios grandes, plano por domínio e uma ação primária. */
.hnm{display:grid;gap:1.125rem}
.hnm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.hnm-head>div{min-width:0;max-width:62ch}
.hnm-head h3{margin:.125rem 0 .375rem}
.hnm-head .hc-note{margin:0}
.hnm-current{margin:0;flex:none;padding:.375rem .75rem;border-radius:var(--r-pill,999px);background:var(--fill);font-size:var(--f-footnote);color:var(--label2);overflow-wrap:anywhere}
.hnm-current b{color:var(--label)}
.hnm-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem}
.hnm-model{position:relative;display:flex;align-items:flex-start;gap:.875rem;min-height:5.5rem;padding:1rem 1rem 1rem .875rem;border:1px solid color-mix(in srgb,var(--hair) 70%,transparent);border-radius:1.125rem;background:var(--surface);color:var(--label);text-align:left;font:inherit;cursor:pointer;box-shadow:var(--lift-1,none),var(--edge-light,none);transition:border-color 140ms ease,box-shadow 200ms var(--ease-out,ease),transform 200ms var(--ease-out,ease),background-color 140ms ease}
.hnm-model:active{transform:scale(.985)}
.hnm-model[aria-checked=true]{border-color:var(--sys-blue);background:color-mix(in srgb,var(--sys-blue) 7%,var(--surface));box-shadow:0 0 0 1px var(--sys-blue),var(--lift-1,none)}
.hnm-model:focus-visible{outline:3px solid var(--foco-cor,var(--sys-blue));outline-offset:3px}
.hnm-model-icon{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:.8125rem;background:var(--fill);color:var(--label2)}
.hnm-model[aria-checked=true] .hnm-model-icon{background:color-mix(in srgb,var(--sys-blue) 14%,var(--surface));color:var(--ink-blue)}
.hnm-model-icon svg{width:1.375rem;height:1.375rem}
.hnm-model-text{display:grid;gap:.25rem;min-width:0}
.hnm-model-text strong{font-size:var(--f-headline);line-height:1.3;letter-spacing:-.01em}
.hnm-model-text small{font-size:var(--f-footnote);line-height:1.45;color:var(--label2)}
.hnm-model:has(.hnm-badge) .hnm-model-text strong{padding-right:4.75rem}
.hnm-badge{position:absolute;top:.625rem;right:.625rem;padding:.1875rem .5rem;border-radius:var(--r-pill,999px);background:color-mix(in srgb,var(--sys-green) 15%,var(--surface));color:var(--ink-green);font-size:var(--f-caption1);font-weight:650}
.hnm-plan{min-width:0}
.hnm-steps{list-style:none;margin:0;padding:0;display:grid;border:1px solid color-mix(in srgb,var(--hair) 70%,transparent);border-radius:1rem;background:var(--surface);overflow:hidden}
.hnm-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.75rem .875rem;border-top:1px solid color-mix(in srgb,var(--hair) 60%,transparent);min-height:3.25rem}
.hnm-step:first-child{border-top:0}
.hnm-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--label4);box-shadow:0 0 0 3px color-mix(in srgb,var(--label4) 25%,transparent)}
.hnm-step[data-state=apply] .hnm-dot{background:var(--sys-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue) 22%,transparent)}
.hnm-step[data-state=applied] .hnm-dot{background:var(--sys-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-green) 22%,transparent)}
.hnm-step[data-state=blocked] .hnm-dot{background:var(--sys-orange);box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-orange) 25%,transparent)}
.hnm-step[data-state=inaccessible] .hnm-dot,.hnm-step[data-state=unavailable] .hnm-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--label4)}
.hnm-step-text{display:grid;gap:.125rem;min-width:0}
.hnm-step-text b{font-size:var(--f-subhead);font-weight:600}
.hnm-step-text small{font-size:var(--f-footnote);line-height:1.45;color:var(--label2);overflow-wrap:anywhere}
.hnm-step[data-state=preserve] .hnm-step-text b{color:var(--label2);font-weight:500}
.hnm-tag{flex:none;padding:.25rem .625rem;border-radius:var(--r-pill,999px);font-size:var(--f-caption1);font-weight:650;background:var(--fill);color:var(--label2);white-space:nowrap}
.hnm-step[data-state=apply] .hnm-tag{background:color-mix(in srgb,var(--sys-blue) 13%,var(--surface));color:var(--ink-blue)}
.hnm-step[data-state=applied] .hnm-tag{background:color-mix(in srgb,var(--sys-green) 15%,var(--surface));color:var(--ink-green)}
.hnm-step[data-state=blocked] .hnm-tag{background:color-mix(in srgb,var(--sys-orange) 18%,var(--surface));color:var(--ink-orange)}
.hnm-open{font:inherit;font-size:var(--f-footnote);font-weight:600;min-height:44px;min-width:44px;padding:.5rem .75rem;border:0;border-radius:var(--r-pill,999px);background:transparent;color:var(--ink-blue);cursor:pointer}
.hnm-open:hover{background:var(--fill)}
.hnm-open:focus-visible{outline:3px solid var(--foco-cor,var(--sys-blue));outline-offset:2px}
.hnm-foot{display:grid;gap:.75rem}
.hnm-foot .hc-note{margin:0}
.hnm-actions{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap}
.hnm-actions .btn{min-height:44px;border-radius:var(--r-pill,999px);padding-inline:1.25rem;font-weight:650}
.hnm-actions .hc-feedback{flex:1 1 14rem;min-width:0;margin:0}
@media(prefers-reduced-motion:no-preference){.hnm-plan .hnm-steps{animation:hnm-in 240ms var(--ease-out,ease)}@keyframes hnm-in{from{opacity:.4}to{opacity:1}}}
@media(max-width:700px){.hnm-step{grid-template-columns:auto minmax(0,1fr);row-gap:.375rem}.hnm-tag{grid-column:2;justify-self:start}.hnm-open{grid-column:2;justify-self:start;padding-inline:0}.hnm-open:hover{background:transparent}.hnm-actions .btn{flex:1 1 auto}}
@media(prefers-contrast:more){.hnm-model,.hnm-steps{border-color:var(--label2)}.hnm-tag{border:1px solid currentColor}}
@media(forced-colors:active){.hnm-model[aria-checked=true]{outline:2px solid Highlight}.hnm-dot{border:1px solid CanvasText}}

/* /hub-network-mode-hours.css */
.hnmh{color:var(--text);min-width:0;max-width:100%;font-size:var(--f-body,calc(1rem * var(--dt,1)))}
.hnmh [hidden]{display:none!important}.hnmh-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.hnmh h3{font-size:var(--f-title3);line-height:1.3;margin:.25rem 0}.hnmh-eyebrow{font-size:var(--f-footnote);color:var(--sub);margin:0}.hnmh-saved{font-size:var(--f-footnote);color:var(--sub);background:var(--off);padding:.5rem .75rem;border-radius:999px}
.hnmh-tabs{display:flex;gap:.25rem;background:var(--fill);padding:.25rem;border-radius:1rem;margin-bottom:1rem;max-width:100%}.hnmh-tabs button{flex:1;min-height:44px;min-width:44px;border:0;border-radius:.75rem;background:transparent;color:var(--sub);font:inherit;font-size:var(--f-subhead);padding:.625rem 1rem;cursor:pointer}.hnmh-tabs [aria-selected=true]{background:var(--off);color:var(--text);font-weight:650;box-shadow:0 1px 5px #00000012}
.hnmh-field{display:grid;gap:.5rem;min-width:0;font-size:var(--f-subhead);font-weight:600}.hnmh-field input,.hnmh-field select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;background:var(--off);border:1px solid var(--hair);color:var(--text);font:inherit;font-weight:400;padding:.75rem;border-radius:.75rem}.hnmh-reference,.hnmh-unit{max-width:36rem;margin-bottom:1rem}
.hnmh-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-block:1.25rem}.hnmh-card{min-width:0;max-width:100%;padding:1.25rem;border:1px solid var(--hair);border-radius:1.5rem;background:var(--off)}.hnmh-card-head{display:flex;align-items:center;gap:.875rem;margin-bottom:1.125rem}.hnmh-card-head h4{font-size:var(--f-headline);line-height:1.35;margin:0}.hnmh-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:1rem;color:var(--ink-blue);background:var(--fill)}.hnmh-icon svg{width:1.625rem;height:1.625rem}
.hnmh-summary{display:grid;gap:.75rem;margin:0}.hnmh-summary div{display:grid;grid-template-columns:minmax(5rem,auto) minmax(0,1fr);gap:.75rem;align-items:start}.hnmh-summary dt{font-size:var(--f-footnote);color:var(--sub)}.hnmh-summary dd{font-size:var(--f-subhead);line-height:1.45;margin:0;overflow-wrap:anywhere}.hnmh-include{display:flex;align-items:center;gap:.625rem;min-height:44px;font-size:var(--f-subhead);margin-top:1rem;cursor:pointer}.hnmh input[type=checkbox]{accent-color:var(--on-green);flex:none;width:1.25rem;height:1.25rem}
.hnmh-adjust{border-top:1px solid var(--hair);margin-top:1rem;padding-top:.5rem}.hnmh-adjust>summary,.hnmh-help>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:var(--f-subhead);font-weight:600;cursor:pointer;list-style:none}.hnmh-adjust>summary::-webkit-details-marker,.hnmh-help>summary::-webkit-details-marker{display:none}.hnmh-adjust>summary::after,.hnmh-help>summary::after{content:'+';color:var(--sub);font-size:var(--f-title3)}.hnmh-adjust[open]>summary::after,.hnmh-help[open]>summary::after{content:'−'}.hnmh-adjust .hnmh-field{margin-top:.75rem}
.hnmh-turn{margin:.875rem 0;min-width:0;border:1px solid var(--hair);border-radius:1rem;padding:1rem}.hnmh-turn legend{font-size:var(--f-subhead);font-weight:600;padding-inline:.375rem}.hnmh-days{display:flex;flex-wrap:wrap;gap:.375rem}.hnmh-days label{position:relative;min-width:44px;min-height:44px;cursor:pointer}.hnmh-days input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0}.hnmh-days span{display:grid;place-items:center;min-width:44px;min-height:44px;font-size:var(--f-footnote);border:1px solid var(--hair);border-radius:.75rem;background:var(--off);color:var(--text);padding:.375rem;box-sizing:border-box}.hnmh-days input:checked+span{background:var(--on-green);color:#fff;border-color:transparent}.hnmh-days input:focus-visible+span{outline:3px solid var(--foco-cor);outline-offset:3px}.hnmh-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-block:1rem}
.hnmh-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.hnmh-btn{appearance:none;font:inherit;font-size:var(--f-subhead);color:var(--text);background:var(--fill);border:1px solid transparent;border-radius:.875rem;min-height:44px;min-width:44px;padding:.75rem 1rem;white-space:normal;line-height:1.4;cursor:pointer;max-width:100%;overflow-wrap:anywhere;transition:background-color 140ms ease,transform 100ms ease}.hnmh-primary{background:var(--on-green);color:#fff}.hnmh-btn:disabled{opacity:.6;cursor:default}.hnmh-note,.hnmh-feedback,.hnmh-review-row small{font-size:var(--f-subhead);line-height:1.55;color:var(--sub);overflow-wrap:anywhere}.hnmh-note{margin:.75rem 0}.hnmh-feedback{min-height:1.5em}.hnmh-alert{font-size:var(--f-subhead);line-height:1.55;color:var(--text);border-left:3px solid var(--ink-orange);padding-left:.875rem;overflow-wrap:anywhere}.hnmh-help{margin-top:1.25rem;border-top:1px solid var(--hair)}
.hnmh-review{border:1px solid var(--hair);border-radius:1.5rem;padding:1.25rem;margin-top:1.25rem;background:var(--off)}.hnmh-review h4{font-size:var(--f-headline);margin:0 0 1rem}.hnmh-review-row{border-top:1px solid var(--hair);padding-block:1rem;min-width:0}.hnmh-review-row strong{font-size:var(--f-subhead)}.hnmh-review-row p{font-size:var(--f-subhead);line-height:1.55;margin:.625rem 0;overflow-wrap:anywhere}.hnmh-review-row .hnmh-field{margin-top:.75rem}
.hnmh :is(button,select,input,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hnmh-btn:active{transform:scale(.985)}@media(hover:hover){.hnmh-btn:hover{background:var(--fill2)}.hnmh-primary:hover{background:var(--on-green);filter:brightness(.96)}}
@media(max-width:700px){.hnmh-cards{grid-template-columns:1fr}.hnmh-card,.hnmh-review{padding:1rem}.hnmh-summary div{grid-template-columns:1fr;gap:.25rem}.hnmh-times{grid-template-columns:1fr}.hnmh-actions>.hnmh-btn{flex:1 1 100%}.hnmh-header h3{font-size:var(--f-headline)}}
@media(prefers-reduced-motion:reduce){.hnmh *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.hnmh-btn:active{transform:none}}

/* The containing workspace already names the editor; keep the actual cards close to its header. */
.hvw-editor .hnmh-header{display:none}
.hc .hnmh .hnmh-adjust>summary,.hc .hnmh .hnmh-help>summary{flex-direction:row;align-items:center}
.hc .hnmh .hnmh-adjust>summary::after,.hc .hnmh .hnmh-help>summary::after{content:'+';margin-left:auto}
.hc .hnmh .hnmh-adjust[open]>summary::after,.hc .hnmh .hnmh-help[open]>summary::after{content:'\2212'}
/* Same native network dialog, same approval controls; the resources remain untouched underneath. */
.hc-dialog.hnc-approving{width:min(42rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:1rem}
.hc-dialog.hnc-approving>[hidden]{display:none!important}
.hnc-approval-shell{min-width:0;max-width:100%;color:var(--text)}
.hc-dialog.hnc-approving #aprov-raiz{position:static;inset:auto;transform:none;width:100%;max-width:100%;pointer-events:auto;gap:.75rem}
.hnc-approval-note{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);margin:1rem 0;overflow-wrap:anywhere}
.hnc-approval-back{min-height:44px;min-width:44px;width:100%;font-size:var(--f-subhead);white-space:normal}
.hnc-approval-shell .aprov-card{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
.hnc-approval-shell .aprov-acoes{flex-wrap:wrap}
#hc-dialog.hnc-approving #aprov-raiz .btn.primary.aprovar{background:var(--on-green);color:#fff}
#hc-dialog.hnc-approving #aprov-raiz .aprov-x,#hc-dialog.hnc-approving #aprov-raiz .aprov-nav button{width:44px;height:44px;min-width:44px;min-height:44px;flex:none}
@media(max-width:600px){.hc-dialog.hnc-approving{width:calc(100vw - .5rem);max-height:calc(100dvh - .5rem);padding:.75rem}.hnc-approval-shell .aprov-acoes{flex-direction:column}.hnc-approval-shell .aprov-acoes .btn{flex:0 0 auto;width:100%}}

/* /hub-network-meta.css */
/* Solid channel cards, within the Hub's existing central editor. No credential surface. */
.hnm{min-width:0;max-width:100%;color:var(--text,#24211d)}
.hnm [hidden]{display:none!important}
.hnm-intro,.hnm-note,.hnm-feedback,.hnm-global-status{font-size:calc(.875rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere;margin:.5rem 0;color:var(--sub,#615c53)}
.hnm-feedback,.hnm-global-status{color:var(--text,#24211d)}
.hnm-feedback:empty,.hnm-global-status:empty{display:none}
.hnm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;margin:1rem 0}
.hnm-card{min-width:0;display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid var(--hair,#d5d1c9);border-radius:1.5rem;background:var(--card,#fff)}
.hnm-card-head{display:flex;gap:.875rem;align-items:center;min-width:0}
.hnm-card-head>div{min-width:0}
.hnm-icon{display:grid;place-items:center;width:3rem;height:3rem;flex:none;background:var(--off,#f0eee9);color:var(--ink-green,#16793b);border-radius:1rem}
.hnm-icon[data-channel=instagram]{color:var(--ink-blue,#075bd2)}
.hnm-icon svg{width:1.75rem;height:1.75rem}
.hnm-eyebrow{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.4;color:var(--sub,#615c53);margin:0 0 .25rem;overflow-wrap:anywhere}
.hnm-card h3,.hnm-editor h3{font-size:calc(1.25rem * var(--dt,1));line-height:1.25;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.hnm-state{font-size:calc(.8125rem * var(--dt,1));line-height:1.4;font-weight:650;background:var(--off,#f0eee9);padding:.5rem .625rem;border-radius:.625rem;align-self:flex-start;max-width:100%;overflow-wrap:anywhere}
.hnm-state[data-tone=good]{color:var(--ink-green,#16793b)}
.hnm-state[data-tone=warning]{border-inline-start:3px solid var(--orange,#b35f00)}
.hnm-state[data-tone=danger]{color:var(--ink-red,#b3261e)}
.hnm-summary{display:grid;gap:.75rem;font-size:calc(.875rem * var(--dt,1));line-height:1.45;margin:0;min-width:0}
.hnm-summary>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:.75rem;min-width:0}
.hnm-summary dt{color:var(--sub,#615c53);overflow-wrap:anywhere}
.hnm-summary dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.hnm-btn{box-sizing:border-box;min-height:44px;min-width:44px;max-width:100%;border:1px solid var(--hair,#d5d1c9);border-radius:.875rem;background:var(--off,#f0eee9);color:var(--text,#24211d);font:inherit;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;font-weight:600;padding:.625rem .875rem;cursor:pointer;white-space:normal;overflow-wrap:anywhere;transition:background-color 120ms ease,transform 120ms ease}
.hnm-card>.hnm-btn{display:flex;justify-content:space-between;align-items:center;gap:.5rem;text-align:left;margin-top:auto;width:100%}
.hnm-btn:active{transform:scale(.985)}
.hnm-btn:disabled{cursor:default;opacity:.65}
.hnm-primary{background:var(--on-blue,#075bd2);border-color:var(--on-blue,#075bd2);color:#fff}
.hnm-btn:focus-visible,.hnm input:focus-visible,.hnm select:focus-visible{outline:3px solid var(--ink-blue,#075bd2);outline-offset:3px}
.hnm-editor{min-width:0;max-width:100%;padding-block:.5rem}
.hnm-editor-head{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;min-width:0}
.hnm-editor-head h3:focus,.hnm-review h4:focus{outline:0}
.hnm-back{font-size:calc(.8125rem * var(--dt,1))}
.hnm-field{display:grid;gap:.5rem;margin-block:1.25rem;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;min-width:0}
.hnm-field select{width:100%;box-sizing:border-box;min-height:44px;max-width:100%;min-width:0;font:inherit;line-height:1.4;background:var(--card,#fff);color:var(--text,#24211d);border:1px solid var(--hair,#d5d1c9);border-radius:.75rem;padding:.75rem}
.hnm-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem;min-width:0}
.hnm-switch{display:grid;grid-template-columns:minmax(0,1fr) 3.5rem;gap:1rem;align-items:center;min-height:44px;position:relative;padding:1rem;border:1px solid var(--hair,#d5d1c9);border-radius:1rem;background:var(--card,#fff);font-size:calc(.9375rem * var(--dt,1));line-height:1.4}
.hnm-switch strong,.hnm-switch small{display:block;overflow-wrap:anywhere}
.hnm-switch small{font-size:calc(.8125rem * var(--dt,1));color:var(--sub,#615c53);margin-top:.375rem}
.hnm-switch input{position:absolute;inset-inline-end:1rem;top:50%;transform:translateY(-50%);width:3.5rem;height:44px;opacity:0;margin:0;z-index:1;cursor:pointer}
.hnm-switch-track{width:3.5rem;height:2rem;border-radius:999px;background:var(--sub,#68645e);position:relative;pointer-events:none;transition:background-color 140ms ease}
.hnm-switch-track::after{content:'';position:absolute;inset-block:4px;left:4px;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:left 140ms ease}
.hnm-switch input:checked+.hnm-switch-track{background:var(--ink-green,#16793b)}
.hnm-switch input:checked+.hnm-switch-track::after{left:calc(100% - 1.5rem - 4px)}
.hnm-switch:has(input:focus-visible){outline:3px solid var(--ink-blue,#075bd2);outline-offset:3px}
.hnm-switch:has(input:disabled){opacity:.75}
.hnm-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem;min-width:0;border:0;margin:1.25rem 0;padding:0}
.hnm-members legend{font-size:calc(1rem * var(--dt,1));line-height:1.4;font-weight:650;margin-bottom:.75rem}
.hnm-member{display:flex;gap:.75rem;align-items:center;padding:.75rem;border:1px solid var(--hair,#d5d1c9);border-radius:1rem;background:var(--card,#fff);min-width:0;min-height:44px;cursor:pointer}
.hnm-member input{flex:none;width:1.375rem;height:1.375rem;accent-color:var(--ink-green,#16793b)}
.hnm-member>span{min-width:0}
.hnm-member strong,.hnm-exception strong{display:block;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}
.hnm-member small,.hnm-exception small{display:block;font-size:calc(.8125rem * var(--dt,1));line-height:1.4;color:var(--sub,#615c53);overflow-wrap:anywhere;margin-top:.25rem}
.hnm-review,.hnm-exceptions{border-top:1px solid var(--hair,#d5d1c9);margin-top:1.5rem;padding-top:1.25rem;min-width:0}
.hnm h4{font-size:calc(1.0625rem * var(--dt,1));line-height:1.35;letter-spacing:-.015em;margin:0 0 .75rem;overflow-wrap:anywhere}
.hnm-review-row{display:grid;gap:.5rem;background:var(--card,#fff);border:1px solid var(--hair,#d5d1c9);border-radius:1rem;padding:1rem;margin:.75rem 0;font-size:calc(.9375rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere;min-width:0}
.hnm-review-row small{font-size:calc(.8125rem * var(--dt,1));color:var(--sub,#615c53)}
.hnm-exception{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:space-between;min-width:0;padding:1rem;border:1px solid var(--hair,#d5d1c9);border-radius:1rem;background:var(--card,#fff);margin:.75rem 0}
.hnm-exception>div{min-width:0;flex:1 1 12rem}
.hnm-alert{font-size:calc(.875rem * var(--dt,1));line-height:1.5;border-inline-start:3px solid var(--orange,#b35f00);padding:.75rem 1rem;background:var(--off,#f0eee9);border-radius:.5rem;overflow-wrap:anywhere}
@media(max-width:600px){.hnm-card{padding:1rem}.hnm-summary>div{grid-template-columns:minmax(0,1fr)}.hnm-summary dd{text-align:left}.hnm-editor-head{align-items:flex-start;gap:.75rem}.hnm-editor-head h3{flex-basis:100%}.hnm-actions .hnm-btn,.hnm-exception .hnm-btn{flex:1 1 12rem}.hnm-switch{padding:.875rem}.hnm-switch input{inset-inline-end:.875rem}}
@media(prefers-reduced-motion:reduce){.hnm-btn,.hnm-switch-track,.hnm-switch-track::after{transition:none}.hnm-btn:active{transform:none}}
@media(prefers-contrast:more){.hnm-card,.hnm-btn,.hnm-member,.hnm-review-row,.hnm-exception,.hnm-field select,.hnm-switch{border-color:var(--text,#24211d)}}

/* /hub-point-credit.css */
.hc-dialog.hpc-dialog { width: min(880px, calc(100vw - 32px)); margin: auto; padding: 24px; box-sizing: border-box; max-height: calc(100dvh - 40px); overflow: auto; border: 1px solid var(--line,#ded9d2); border-radius: 28px; }
.hpc-title { flex: 1 1 220px; min-width: 0; display: flex; gap: 14px; align-items: center; }
.hpc-title h2,.hpc-title p { margin: 0; }
.hpc-icon { flex: 0 0 48px; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: var(--fill,#e8f0ea); color: var(--green,#285b40); }
.hpc-icon svg { width: 26px; height: 26px; }
.hpc-steps { padding: 0; margin: 24px 0 16px; list-style: none; display: flex; gap: 8px; }
.hpc-steps li { flex: 1; padding: 10px 12px; border-radius: 14px; background: #f0efed; color: #514c46; font-size: calc(0.875rem * var(--dt,1)); }
.hpc-steps [aria-current] { background: #e6efe7; color: #245437; font-weight: 650; }
.hpc-dialog [data-status] { min-height: 24px; margin: 12px 0 20px; color: var(--sub,#635b51); }
.hpc-search { display: flex; align-items: end; gap: 12px; }
.hpc-search label { flex: 1; margin: 0; }
.hpc-search .btn { min-height: 48px; }
.hpc-selection { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.hpc-selection strong { flex: 1; font-size: calc(0.875rem * var(--dt,1)); }
.hpc-customer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.hpc-customer-choice,.hpc-customer-result { display: flex; gap: 10px; align-items: center; padding: 14px; border: 1px solid var(--line,#dcd7d0); border-radius: 18px; background: var(--card,#fff); min-width: 0; color: var(--text,#29231d); }
.hpc-customer-choice { cursor: pointer; min-height: 64px; transition: background .18s ease, border-color .18s ease; }
.hpc-customer-choice:has(input:checked) { background: #eef4ee; border-color: #63876b; }
.hpc-customer-choice input { width: 20px; height: 20px; flex: 0 0 20px; accent-color: #285b40; }
.hpc-customer-choice strong { overflow-wrap: anywhere; }
.hpc-avatar { background: #f2efea; color: #594a37; border-radius: 50%; width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; }
.hpc-rule-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.hpc-dialog [data-conversion] { margin-bottom: 24px; }
.hpc-modes { padding: 16px; margin: 20px 0; border: 1px solid var(--line,#dcd7d0); border-radius: 18px; display: flex; flex-wrap: wrap; gap: 12px 22px; }
.hpc-modes legend { font-weight: 650; padding: 0 6px; }
.hpc-modes label { display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.hpc-modes input { accent-color: #285b40; width: 20px; height: 20px; }
.hpc-summary { display: flex; gap: 18px; align-items: center; padding: 24px; border-radius: 22px; background: #edf3ec; color: #275137; font-size: clamp(calc(1.125rem * var(--dt,1)),3vw,calc(1.625rem * var(--dt,1))); }
.hpc-summary strong { margin-left: auto; }
.hpc-customer-result { align-items: start; flex-direction: column; text-align: left; }
.hpc-customer-result p,.hpc-customer-result ul { margin: 0; }
.hpc-customer-result ul { font-size: calc(0.8125rem * var(--dt,1)); padding-left: 18px; color: var(--sub,#635b51); }
.hpc-notice { color: #684608; background: #faf0d9; padding: 12px 14px; border-radius: 14px; }
.hpc-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; }
.hpc-dialog input:focus-visible,.hpc-dialog button:focus-visible,.hpc-dialog select:focus-visible,.hpc-dialog textarea:focus-visible { outline: 3px solid #557c65; outline-offset: 3px; }
.hpc-dialog [hidden] { display: none !important; }
.hpc-dialog label,.hpc-dialog input,.hpc-dialog select,.hpc-title > div { min-width: 0; }
.hpc-dialog input,.hpc-dialog select,.hpc-dialog textarea { box-sizing: border-box; max-width: 100%; }
.hpc-dialog button { min-height: 44px; }
.hpc-review { animation: hpc-reveal .2s ease-out; }
@keyframes hpc-reveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
body.dark .hpc-icon,body.dark .hpc-steps [aria-current],body.dark .hpc-summary { color: #d1ead8; background: #243b2e; }
body.dark .hpc-steps li { color: #d8d4cc; background: #34332f; }
body.dark .hpc-customer-choice:has(input:checked) { background: #293c30; border-color: #91b19b; }
body.dark .hpc-avatar { color: #e6dccd; background: #403a32; }
body.dark .hpc-notice { color: #f4da9d; background: #463a21; }
@media(max-width:600px) { .hc-dialog.hpc-dialog { width: calc(100vw - 20px); padding: 18px; border-radius: 22px; } .hpc-title { gap: 10px; } .hpc-title h2 { font-size: calc(1.3125rem * var(--dt,1)); } .hpc-icon { display: none; } .hpc-customer-grid,.hpc-rule-grid { grid-template-columns: 1fr; } .hpc-steps { gap: 5px; } .hpc-steps li { padding: 10px 7px; font-size: calc(0.8125rem * var(--dt,1)); } .hpc-selection strong { flex-basis: 100%; } .hpc-actions { flex-direction: column-reverse; } .hpc-actions .btn { width: 100%; } }
@media(prefers-reduced-motion:reduce) { .hpc-customer-choice { transition: none; } .hpc-review { animation: none; } }

.hpc-dialog .hc-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; position: sticky; top: -24px; z-index: 2; margin: -24px -24px 0; padding: 24px; background: var(--bg,#f5f2ec); border-bottom: 1px solid var(--hair); }
.hpc-steps li,.hpc-summary { overflow-wrap: anywhere; min-width: 0; }
.hpc-summary { flex-wrap: wrap; }
@media(max-width:600px) { .hpc-dialog .hc-heading { top: -18px; margin: -18px -18px 0; padding: 18px; } }

/* /hub-offline-payment-options.css */
.hopa{max-width:72rem;min-width:0;color:var(--text);font-size:var(--f-body);line-height:1.5;overflow-wrap:anywhere}.hopa :is(h3,h4,p){margin:0}.hopa h3{font-size:var(--f-title2);line-height:var(--lh-title2)}.hopa h4{font-size:var(--f-headline)}.hopa form{display:flex;flex-direction:column;gap:22px;min-width:0}.hopa-heading{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.hopa-note{font-size:var(--f-footnote);color:var(--sub)}.hopa :is(fieldset,legend){min-width:0}.hopa fieldset{border:1px solid var(--hair);border-radius:20px;padding:16px;margin:0}.hopa legend{font-size:var(--f-headline);font-weight:600;padding-inline:6px}.hopa-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hopa .btn{min-height:44px;min-width:44px;white-space:normal;font-size:var(--f-callout)}.hc .hopa .btn.primary{background:var(--on-blue,#075bd2);border-color:transparent;color:#fff}.hopa-presets .hopa-note{margin-top:12px}.hopa-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:14px}.hopa-type{display:flex;align-items:center;gap:12px;padding:18px;min-height:84px;background:var(--card);border:1px solid var(--hair);border-radius:22px;cursor:pointer;min-width:0}.hopa-type-text{display:flex;flex:1;flex-direction:column;min-width:0;gap:6px}.hopa-type-text strong{font-size:var(--f-headline)}.hopa-type-text>span{font-size:var(--f-footnote);color:var(--sub)}.hopa-icon{width:28px;height:28px;padding:10px;box-sizing:content-box;background:var(--off);color:var(--blue);border-radius:16px;flex-shrink:0}.hopa input[type=checkbox]{accent-color:var(--blue);width:22px;height:22px;flex-shrink:0;margin:0}.hopa .hopa-type input[role=switch]{width:44px;height:44px}.hopa-section-top,.hopa-option-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.hopa-section-top>div{flex:1;min-width:min(100%,14rem)}.hopa [data-op-options]{display:flex;flex-direction:column;gap:18px}.hopa-option{display:flex;flex-direction:column;gap:16px;background:var(--card)}.hopa-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:14px}.hopa-field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:var(--f-callout)}.hopa :is(input:not([type=checkbox]),select){width:100%;min-width:0;min-height:44px;box-sizing:border-box;background:var(--off);color:var(--text);border:1px solid var(--hair);border-radius:12px;padding:10px;font:inherit}.hopa :is(.hopa-check,.hopa-switch){display:flex;align-items:center;gap:10px;min-height:44px;padding:4px;cursor:pointer;font-size:var(--f-callout)}.hopa .hopa-modes{display:flex;flex-wrap:wrap;gap:10px}.hopa .hopa-modes .hopa-check{flex:1 1 8rem}.hopa-feedback{min-height:1.5em;font-size:var(--f-callout)}.hopa-review{border:1px solid var(--blue);background:var(--card);border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:16px}.hopa-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:16px}.hopa-compare>div{background:var(--off);padding:14px;border-radius:14px;min-width:0}.hopa-compare strong{font-size:var(--f-headline)}.hopa :is(button,input,select):focus-visible{outline:3px solid var(--blue);outline-offset:3px}.hopa :is(button,input,select):disabled{opacity:.65;cursor:default}.hopa [hidden]{display:none!important}@media(max-width:600px){.hopa .hopa-type{padding:14px;gap:10px}.hopa .hopa-actions>.btn{flex:1 1 100%}.hopa .hopa-option-top>.btn{width:100%}.hopa fieldset{padding:12px}.hopa-review{padding:16px}}@media(prefers-reduced-motion:reduce){.hopa *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.hopa input[role=switch]{appearance:none;position:relative;width:44px;height:44px;border:0;background:transparent;cursor:pointer}.hopa input[role=switch]::before{content:"";position:absolute;inset:8px 0;border-radius:999px;background:var(--hair);border:1px solid var(--sub);box-sizing:border-box}.hopa input[role=switch]::after{content:"";position:absolute;left:3px;top:11px;width:22px;height:22px;border-radius:50%;background:var(--text);transition:transform .16s ease}.hopa input[role=switch]:checked::before{background:var(--blue);border-color:var(--blue)}.hopa input[role=switch]:checked::after{background:#fff;transform:translateX(16px)}@media(prefers-reduced-motion:reduce){.hopa input[role=switch]::after{transition:none}}

.hopa-compare ul{padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:var(--f-footnote)}@media(max-width:600px){.hopa .hopa-type{display:grid;grid-template-columns:minmax(0,1fr)44px;gap:10px}.hopa .hopa-type .hopa-icon{grid-column:1;grid-row:1}.hopa .hopa-type input[role=switch]{grid-column:2;grid-row:1}.hopa .hopa-type-text{grid-column:1/-1;grid-row:2}}

/* /hub-onboarding-network.css */
/* Saved facts and links to the existing editors, never a second configuration form. */
.hc .hc-onboarding-network-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:20px;margin-block:24px}
.hc .hc-onboarding-network{min-width:0;display:flex;flex-direction:column;gap:12px;margin:0;overflow-wrap:anywhere}
.hc .hc-onboarding-network-heading{display:flex;align-items:center;gap:14px}
.hc .hc-onboarding-network-heading>div{min-width:0}
.hc .hc-onboarding-network-heading :is(h3,p){margin:0}
.hc .hc-onboarding-network-heading h3{font-size:var(--f-title2);line-height:var(--lh-title2)}
.hc .hc-onboarding-network-icon{width:44px;height:44px;padding:10px;box-sizing:content-box;border-radius:20px;background:var(--off);color:var(--blue);flex-shrink:0}
.hc .hc-onboarding-network :is(.hc-status,.hc-note,.hc-onboarding-evidence){margin:0}
.hc .hc-onboarding-network>.hc-status{align-self:flex-start;color:var(--text)}
.hc .hc-onboarding-network-model{margin:0;font-size:var(--f-headline);font-weight:600}
.hc .hc-onboarding-network-channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:12px}
.hc .hc-onboarding-network-channel{min-width:0;background:var(--off);border:1px solid var(--hair);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px}
.hc .hc-onboarding-network-channel h4{margin:0;font-size:var(--f-headline)}
.hc .hc-onboarding-network>.hc-actions{margin-top:auto}
.hc .hc-onboarding-network .hc-actions .btn{min-height:44px;white-space:normal}
.hc .hc-onboarding-network .hc-onboarding-evidence>summary{min-height:44px}
@media(max-width:600px){.hc .hc-onboarding-network-grid{gap:16px;margin-block:20px}.hc .hc-onboarding-network{padding:18px}.hc .hc-onboarding-network-icon{width:28px;height:28px;padding:10px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.hc .hc-onboarding-network *{transition:none;scroll-behavior:auto}}

/* /hub-onboarding.css */
/* The checklist reads canonical facts; its guide opens over the current workspace. */
.hc .hc-ob-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem}
.hc .hc-ob-card{display:flex;flex-direction:column;align-items:stretch;gap:.875rem;min-width:0;padding:1.25rem;border:1px solid var(--hair);border-radius:1.5rem;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
.hc .hc-ob-card:hover{border-color:var(--sub);box-shadow:0 .5rem 1.5rem #0000000a}
.hc .hc-ob-card:active{transform:scale(.985)}
.hc .hc-ob-card:focus-visible,.hc .hc-ob-close:focus-visible{outline:3px solid var(--ink-blue,var(--blue));outline-offset:3px}
.hc .hc-ob-card-top{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.hc .hc-ob-icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;background:var(--off);border-radius:1rem;color:var(--ink-blue,var(--blue))}
.hc .hc-ob-icon svg{width:1.625rem;height:1.625rem}
.hc .hc-ob-status{font-size:var(--f-caption1);line-height:1.4;color:var(--sub);padding:.3rem .5rem;background:var(--off);border-radius:.5rem;overflow-wrap:anywhere}
.hc .hc-ob-status[data-done=true]{color:var(--ink-green,var(--green))}
.hc .hc-ob-card>strong{font-size:var(--f-headline);line-height:1.3;overflow-wrap:anywhere}
.hc .hc-ob-detail{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}
.hc .hc-ob-card-link{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.5rem;font-size:var(--f-subhead);font-weight:600;color:var(--ink-blue,var(--blue))}
.hc .hc-ob-next{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-inline-start:4px solid var(--ink-blue,var(--blue));margin-block:1.25rem}
.hc .hc-ob-next>div{min-width:0}
.hc .hc-ob-next h3{margin:.25rem 0 .5rem;font-size:var(--f-title3)}
.hc .hc-ob-next .hc-note{margin:0}
.hc .hc-ob-next>.btn{flex:none;min-height:44px;white-space:normal}
.hc .hc-ob-optional{margin-top:2rem}
.hc .hc-ob-section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem}
.hc .hc-ob-section-heading h3{margin:0}
.hc .hc-ob-section-heading>span{font-size:var(--f-footnote);color:var(--sub)}
.hc .hc-ob-modal{position:fixed;inset:0;margin:auto;padding:0;width:min(42rem,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);border:1px solid var(--hair);border-radius:1.75rem;background:var(--card);color:var(--text);font-family:inherit;box-shadow:0 1.5rem 5rem #0003;overflow:hidden}
.hc .hc-ob-modal[open]{display:flex;flex-direction:column;animation:hc-ob-arrive 180ms ease-out}
.hc .hc-ob-modal::backdrop{background:#0006;backdrop-filter:blur(4px)}
.hc .hc-ob-modal-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--hair);font-size:var(--f-footnote);color:var(--sub)}
.hc .hc-ob-close{display:grid;place-items:center;flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--off);color:var(--text);font:inherit;font-size:1.5rem;cursor:pointer}
.hc .hc-ob-modal-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:1.5rem}
.hc .hc-ob-modal-heading{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;min-width:0}
.hc .hc-ob-modal-heading>div{min-width:0}
.hc .hc-ob-modal-heading h3{font-size:var(--f-title2);line-height:1.25;letter-spacing:-.025em;margin:.25rem 0;overflow-wrap:anywhere}
.hc .hc-ob-modal-heading h3:focus{outline:0}
.hc .hc-ob-modal .hc-onboarding-instructions{padding-left:1.5rem;display:grid;gap:1rem;margin:1.5rem 0;font-size:var(--f-body);line-height:1.5}
.hc .hc-ob-modal .hc-onboarding-instructions li{margin:0;padding-left:.375rem;overflow-wrap:anywhere}
.hc .hc-ob-modal .hc-onboarding-instructions li::marker{font-weight:650;color:var(--ink-blue,var(--blue))}
.hc .hc-ob-modal .hc-actions{display:grid;gap:.625rem;margin-top:1.5rem}
.hc .hc-ob-modal .hc-actions .btn{min-height:48px;white-space:normal;line-height:1.4}
.hc .hc-ob-modal .hc-actions [data-ob-primary]{background:var(--ink-blue,var(--blue));color:#fff;border-color:transparent}
.hc .hc-ob-modal .hc-onboarding-evidence{background:var(--off);border-radius:1rem;padding:.75rem 1rem;font-size:var(--f-footnote)}
.hc .hc-ob-modal .hc-onboarding-evidence summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.5rem}
@keyframes hc-ob-arrive{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:600px){.hc .hc-ob-next{align-items:stretch;flex-direction:column;gap:1rem}.hc .hc-ob-modal{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);border-radius:1.5rem}.hc .hc-ob-modal-body{padding:1.125rem}.hc .hc-ob-modal-heading{align-items:flex-start}.hc .hc-ob-card{padding:1rem}}
@media(prefers-reduced-motion:reduce){.hc .hc-ob-card,.hc .hc-ob-modal[open]{animation:none;transition:none;transform:none}.hc .hc-ob-modal *{transition:none;scroll-behavior:auto}}

.hc .hc-ob-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

/* /hub-structured-settings.css */
/* Draft-only controls over canonical textareas; load after commercial/refinement styles. */
[data-hss-canonical]{display:none!important}
.hss-section{min-width:0;border:1px solid var(--hair);border-radius:1rem;padding:1rem;background:var(--surface,var(--card))}
.hss-heading{display:flex;align-items:center;gap:.75rem;min-width:0}
.hss-heading-text{flex:1;min-width:0}.hss-heading h4{margin:0;font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));line-height:1.35;overflow-wrap:anywhere}
.hss-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.875rem;background:var(--fill,var(--off));color:var(--ink-green,var(--green))}.hss-icon svg{width:1.5rem;height:1.5rem}
.hss-summary,.hss-note,.hss-notice,.hss-row-warning{margin:.375rem 0 0;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.5;color:var(--sub);overflow-wrap:anywhere}
.hss-button{min-height:44px;white-space:normal;max-width:100%;font-size:var(--f-footnote);line-height:1.4}
.hss-body{padding-top:1rem;min-width:0}.hss-body[hidden]{display:none!important}
.hss-row{min-width:0;margin:1rem 0;padding:1rem;border:1px solid var(--hair);border-radius:.875rem;background:var(--page)}
.hss-row legend{padding-inline:.375rem;font-size:var(--f-headline);font-weight:650}
.hss-row-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.875rem;min-width:0}
.hss-field input{min-height:44px;max-width:100%;min-width:0;font-size:var(--f-body);line-height:1.4}
.hss-days{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem}
.hss-day{display:flex;align-items:center;gap:.375rem;min-height:44px;padding:.375rem .625rem;border:1px solid var(--hair);border-radius:.75rem;background:var(--off);font-size:var(--f-subhead);box-sizing:border-box;cursor:pointer}
.hss-day:has(:checked){color:var(--ink-blue);border-color:var(--ink-blue);background:color-mix(in srgb,var(--sys-blue,var(--blue)) 8%,var(--page))}
.hss-day input{width:1.125rem;height:1.125rem;accent-color:var(--on-blue,var(--blue));margin:0}
.hss-day:focus-within{outline:3px solid var(--foco-cor,var(--ink-blue));outline-offset:2px}
.hss-midnight{grid-column:1/-1;min-height:44px;font-size:var(--f-subhead)}
.hss-row-warning{color:var(--ink-red,var(--red));margin-block:.75rem}
.hss-row>[data-hss-remove],.hss-row>[data-hss-correct]{margin-top:.75rem}
.hss-reference summary{min-height:44px;cursor:pointer;font-size:var(--f-footnote);color:var(--sub)}
.hss-reference pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-family:inherit;font-size:var(--f-footnote);line-height:1.5;padding:.75rem;border-radius:.75rem;background:var(--fill,var(--off))}
@media(max-width:600px){.hss-section,.hss-row{padding:.875rem}.hss-heading{flex-wrap:wrap}.hss-heading-text{flex:1 1 calc(100% - 4rem)}.hss-heading>[data-hss-edit]{width:100%;text-align:left}.hss-row-fields{grid-template-columns:minmax(0,1fr)}.hss-day{flex:1 0 4.75rem;justify-content:center}.hss-row>[data-hss-remove],.hss-row>[data-hss-correct]{width:100%}.hss-field input{font-size:max(1rem,var(--f-body));}}
@media(prefers-reduced-motion:reduce){.hss-section *{transition:none!important;animation:none!important}}

/* /hub-fiscal-profiles.css */
/* Perfil visual do cadastro fiscal existente; cores e escala pertencem ao Hub. */
.hfp,.hfp-editor{color:var(--label);font-size:calc(1rem * var(--dt,1));line-height:1.45;min-width:0}
.hfp [hidden],.hfp-editor [hidden]{display:none!important}
.hfp h3,.hfp-editor h3,.hfp-editor h4{margin:0;font-size:calc(1.0625rem * var(--dt,1));line-height:1.3;overflow-wrap:anywhere}
.hfp-heading,.hfp-section-head,.hfp-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hfp-heading{margin-bottom:12px}.hfp-heading>div{min-width:0;flex:1}
.hfp-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--fill);color:var(--ink-green);flex:none}.hfp-icon svg{width:24px;height:24px}
.hfp-note,.hfp-eyebrow,.hfp-summary,.hfp-profile dt,.hfp-badge{font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));color:var(--sub);margin:6px 0;overflow-wrap:anywhere}
.hfp-summary{display:flex;flex-wrap:wrap;gap:8px 14px;margin:10px 0 16px}
.hfp-editor{box-sizing:border-box;width:min(920px,calc(100% - 32px));max-width:calc(100% - 32px);height:fit-content;max-height:min(850px,calc(100dvh - 32px));border:1px solid var(--sep);padding:0;border-radius:24px;background:var(--surface);box-shadow:0 18px 60px rgba(0,0,0,.18);overflow:hidden}
.hfp-editor[open],section.hfp-editor{display:flex;flex-direction:column}.hfp-editor::backdrop{background:rgba(0,0,0,.3)}
.hfp-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--sep);flex:none}
.hfp-editor-head>div{min-width:0;flex:1}.hfp-editor h2{margin:0;font-size:calc(1.375rem * var(--dt,1));line-height:1.2;overflow-wrap:anywhere}
.hfp-eyebrow{margin:0 0 4px}.hfp-close{display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:50%;background:var(--fill);color:var(--label);font:inherit;font-size:calc(1.375rem * var(--dt,1));cursor:pointer}
.hfp-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hfp-editor-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 22px;flex:0 1 auto}.hfp-editor-body>nav{margin-bottom:20px}
.hfp-editor-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--sep);background:var(--surface);flex:none}
.hfp-editor .btn,.hfp .btn{min-width:44px;min-height:44px;white-space:normal;text-align:center;box-sizing:border-box;font-size:calc(.9375rem * var(--dt,1));line-height:1.35;transition:transform .16s ease,background-color .16s ease}
body .hfp-editor button.btn.primary,body .hfp button.btn.primary{background:var(--on-blue);border-color:transparent;color:#fff}
.hfp-editor button:active,.hfp button:active{transform:scale(.98)}
.hfp-editor :is(button,input,select,summary):focus-visible,.hfp button:focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}
.hfp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-top:16px}
.hfp-profile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;border:1px solid var(--sep);border-radius:20px;background:var(--surface);min-width:0}.hfp-profile .btn{width:100%;margin-top:auto}
.hfp-profile dl{width:100%;margin:0}.hfp-profile dl>div{display:flex;justify-content:space-between;gap:12px}.hfp-profile dd{margin:0;font-size:calc(.875rem * var(--dt,1));overflow-wrap:anywhere}.hfp-badge{background:var(--fill);border-radius:12px;padding:6px 10px;align-self:flex-start;color:var(--label)}
.hfp-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}
.hfp-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:calc(.9375rem * var(--dt,1));font-weight:600}.hfp-field input,.hfp-field select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--sep);border-radius:12px;background:var(--surface);color:var(--label);font:inherit;font-size:max(1rem,calc(1rem * var(--dt,1)));font-weight:400}
.hfp-check{display:flex;align-items:center;gap:12px;min-height:44px;font-size:calc(.9375rem * var(--dt,1));margin:16px 0}.hfp-check input{width:22px;height:22px;flex:none;accent-color:var(--ink-green)}
.hfp-details{margin:16px 0;padding:12px 14px;border:1px solid var(--sep);border-radius:16px}.hfp-details summary,.hfp-impact summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:calc(.9375rem * var(--dt,1))}.hfp-details summary::before,.hfp-impact summary::before{content:'›';display:inline-block;transition:transform .16s ease}.hfp-details[open]>summary::before,.hfp-impact details[open]>summary::before{transform:rotate(90deg)}
.hfp-feedback{margin:16px 0;font-size:calc(.9375rem * var(--dt,1));overflow-wrap:anywhere}.hfp-feedback:empty{display:none}.hfp-feedback[role=alert]{color:var(--ink-red)}
.hfp-review{padding:16px;border-radius:18px;background:var(--fill)}.hfp-regimes{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px 0;border-bottom:1px solid var(--sep);font-size:calc(.9375rem * var(--dt,1))}.hfp-regimes>*{min-width:0;overflow-wrap:anywhere}.hfp-regimes span{color:var(--sub)}
.hfp-impact{margin-top:16px}.hfp-impact p,.hfp-impact li{font-size:calc(.9375rem * var(--dt,1))}.hfp-impact ul{padding-left:20px}.hfp-impact li{margin:10px 0}.hfp-impact li span{display:block;color:var(--sub)}
.hfp-tax-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;flex-basis:100%;margin:6px 0}.hfp-tax-values>div{min-width:0}.hfp-tax-values dt{color:var(--sub);font-size:calc(.8125rem * var(--dt,1))}.hfp-tax-values dd{margin:0;font-size:calc(.9375rem * var(--dt,1));overflow-wrap:anywhere}
@media(max-width:640px){.hfp-editor{width:100%;max-width:100%;height:fit-content;max-height:calc(100dvh - 8px);margin:auto 0 0;border-radius:24px 24px 0 0}.hfp-editor-head{padding:14px 16px}.hfp-editor-body{padding:16px}.hfp-editor-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.hfp-fields{grid-template-columns:minmax(0,1fr)}.hfp-editor-foot .btn{width:100%}.hfp-section-head .hfp-note{flex-basis:100%}.hfp-actions>.btn{flex:1 1 150px}}
@media(prefers-reduced-motion:reduce){.hfp-editor .btn,.hfp .btn,.hfp-details summary::before,.hfp-impact summary::before{transition:none}.hfp-editor button:active,.hfp button:active{transform:none}}
@media(prefers-reduced-transparency:reduce){.hfp-editor{background:var(--surface)}}

.hfp-empty{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;padding:22px;border:1px solid var(--sep);border-radius:20px;background:var(--fill)}
.hfp-empty>div:not(.hfp-empty-map){flex:1 1 240px;min-width:0}.hfp-empty .hfp-note{margin-bottom:0}.hfp-empty-map{display:flex;align-items:center;gap:12px;flex:1 0 100%;padding-top:8px}
.hfp-empty-map>span:not(.hfp-empty-arrow){display:flex;align-items:center;gap:9px;min-width:0;padding:10px 12px;border-radius:14px;background:var(--surface);color:var(--label);font-size:calc(.875rem * var(--dt,1))}.hfp-empty-map svg{flex:0 0 22px;width:22px;height:22px;color:var(--ink-green)}.hfp-empty-map b{font-weight:600;overflow-wrap:anywhere}.hfp-empty-arrow{flex:none;color:var(--label);font-size:calc(1.125rem * var(--dt,1))}
@media(max-width:640px){.hfp-empty{padding:16px}.hfp-empty-map{flex-wrap:wrap}.hfp-empty-map>span:not(.hfp-empty-arrow){flex:1 1 100%}.hfp-empty-arrow{transform:rotate(90deg);margin-left:16px}}

/* /hub-attendant-information.css */
.hai{min-width:0;max-width:100%;color:var(--text);font-size:var(--f-callout,1rem)}
.hai-header{display:flex;gap:1rem;align-items:center;margin:1.25rem 0}.hai-header h3{font-size:calc(1.125rem * var(--dt,1));line-height:1.25;margin:0 0 .375rem;overflow-wrap:anywhere}.hai-header>div{min-width:0}
.hai-icon{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:.875rem;background:var(--fill);color:var(--ink-green)}.hai-icon svg{width:26px;height:26px}
.hai-note,.hai-origin,.hai-feedback,.hai-draft,.hai-change-origin{font-size:max(.6875rem,calc(.875rem * var(--dt,1)));line-height:1.5;color:var(--sub);margin:.5rem 0;overflow-wrap:anywhere}
.hai-scope{display:flex;gap:.375rem;border-radius:1rem;background:var(--fill);padding:.375rem;margin:1.25rem 0}.hai-scope>button{flex:1;min-width:44px;min-height:44px;font:inherit;line-height:1.4;border:0;border-radius:.75rem;padding:.625rem .875rem;background:transparent;color:var(--text);cursor:pointer;overflow-wrap:anywhere}.hai-scope>button[aria-selected=true]{background:var(--card);box-shadow:0 2px 8px #0000000d;font-weight:650}
.hai-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.5rem}.hai-group{display:flex;align-items:flex-start;gap:.75rem;min-width:0;min-height:44px;box-sizing:border-box;font:inherit;line-height:1.4;text-align:left;border:1px solid var(--hair);border-radius:1.25rem;padding:1rem;background:var(--card);color:var(--text);cursor:pointer;transition:border-color 140ms ease,transform 140ms ease,box-shadow 140ms ease}.hai-group>span:last-child{min-width:0}.hai-group strong{display:block;font-size:calc(1rem * var(--dt,1));line-height:1.35;overflow-wrap:anywhere}.hai-group small{display:block;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));color:var(--sub);line-height:1.45;margin-top:.375rem;overflow-wrap:anywhere}.hai-group[aria-selected=true]{border-color:var(--ink-green);box-shadow:0 0 0 1px var(--ink-green)}.hai-group:active{transform:scale(.985)}
.hai-fields{margin:0;padding:0;border:0;min-width:0}.hai-fields section{min-width:0}.hai-fields h4,.hai-review h4{font-size:calc(1.0625rem * var(--dt,1));line-height:1.35;margin:.75rem 0;overflow-wrap:anywhere}.hai-field{padding:1rem 0;border-bottom:1px solid var(--hair);min-width:0}.hai-field-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.625rem}.hai-field-top>label:first-child{font-size:calc(.9375rem * var(--dt,1));font-weight:650;line-height:1.4;overflow-wrap:anywhere}
.hai .hai-field :is(input:not([type=checkbox]),select,textarea){font-family:inherit;font-size:calc(1rem * var(--dt,1));line-height:1.45;box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid var(--hair);border-radius:.875rem;padding:.625rem .875rem;background:var(--card);color:var(--text)}.hai-field textarea{resize:vertical}.hai-field :is(input,select,textarea):disabled{opacity:1;background:var(--fill);color:var(--sub);cursor:default}
.hai-override{position:relative;display:flex;gap:.625rem;align-items:center;min-height:44px;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:1.4;color:var(--sub);cursor:pointer}.hai-override input{position:absolute;left:0;top:0;width:52px;height:44px;margin:0;opacity:0;cursor:pointer;z-index:1}.hai-switch-track{position:relative;flex:none;width:52px;height:30px;border-radius:999px;background:var(--sub);transition:background-color 140ms ease}.hai-switch-track::after{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left 140ms ease}.hai-override input:checked+.hai-switch-track{background:var(--ink-green)}.hai-override input:checked+.hai-switch-track::after{left:25px}.hai-override input:disabled~span{cursor:default}.hai-override input:focus-visible+.hai-switch-track{outline:3px solid var(--foco-cor);outline-offset:4px}
.hai-actions{margin-top:1.25rem;gap:.75rem}.hai .hai-actions>.btn{min-height:44px;max-width:100%;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;white-space:normal;overflow-wrap:anywhere}.hai-feedback{color:var(--ink-green);min-height:1.5em}.hai-error{color:var(--ink-red);font-size:calc(.875rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere}.hai-boundary{margin-top:1.25rem}.hai-review{border:1px solid var(--hair);border-radius:1.25rem;padding:1.25rem;margin-top:1.25rem;background:var(--card)}.hai-review-unit{margin-top:1rem;border-top:1px solid var(--hair);padding-top:1rem}.hai-review-unit h5{font-size:calc(1rem * var(--dt,1));line-height:1.4;margin:.5rem 0;overflow-wrap:anywhere}.hai-change{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;border-top:1px solid var(--hair);padding:1rem 0;min-width:0}.hai-change>strong,.hai-change-origin{grid-column:1/-1}.hai-change strong{font-size:calc(.9375rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}.hai-change small{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));color:var(--sub);line-height:1.5}.hai-change p{font-size:calc(.9375rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;margin:.375rem 0}
.hai :is(button,input,textarea,select):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hai [hidden]{display:none!important}
@media(max-width:650px){.hai-groups{grid-template-columns:minmax(0,1fr);gap:.625rem}.hai-group{padding:.875rem;align-items:center}.hai-group small{margin-top:.25rem}.hai-header{align-items:flex-start}.hai-header .hai-note{display:none}.hai-review{padding:1rem}.hai .hai-actions>.btn{flex:1 1 100%}.hai-change{grid-template-columns:minmax(0,1fr)}.hai-field-top{align-items:flex-start;flex-direction:column}.hai-scope>button{padding:.625rem .5rem}}
@media(hover:hover){.hai-group:hover{border-color:var(--ink-green);box-shadow:0 4px 16px rgba(0,0,0,.05)}}
@media(prefers-reduced-motion:reduce){.hai-group,.hai-switch-track,.hai-switch-track::after{transition:none}.hai-group:active{transform:none}}
@media(prefers-contrast:more){.hai-group,.hai-review,.hai .hai-field :is(input,select,textarea){border-color:var(--text)}}
/* The workspace already names this editor. Keep the first fields close to its title. */
.hvw-editor .hvw-editor-body .hai-header,.hvw-editor .hvw-editor-body>[data-hc-guide-path=facts]>summary,.hvw-editor .hvw-editor-body:has(.hai)>.hvw-retained{display:none}
.hvw-editor .hvw-editor-body .hai-scope{margin:0 0 1rem}.hai-maintained{grid-column:1/-1}
.hai-source-links,.hai [data-hai-other]{margin-top:1rem;border-top:1px solid var(--hair);padding-top:.75rem}.hai-source-links>summary,.hai [data-hai-other]>summary{min-height:44px;cursor:pointer;font-size:calc(.875rem * var(--dt,1));line-height:1.5;color:var(--sub)}
@media(max-width:650px){.hvw-editor .hai-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:.75rem 0 1rem}.hvw-editor .hai-group{flex-direction:column;align-items:center;text-align:center;padding:.75rem .375rem;gap:.5rem}.hvw-editor .hai-group .hai-icon{width:32px;height:32px;border-radius:.625rem}.hvw-editor .hai-group .hai-icon svg{width:24px;height:24px}.hvw-editor .hai-group strong{font-size:calc(.875rem * var(--dt,1))}.hvw-editor .hai-group small{display:none}}

.hvw-editor [data-hc-guide-path=facts]>[data-hai-other]{margin-top:1rem;border-top:1px solid var(--hair);padding-top:.75rem}.hvw-editor [data-hai-other]>summary{min-height:44px;cursor:pointer;font-size:calc(.875rem * var(--dt,1));line-height:1.5;color:var(--sub)}
.hvw-editor .hvw-editor-body>[data-hc-guide-path=facts]{margin:0;padding:0;border:0;background:transparent}

.hvw-editor .hai-fields [role=tabpanel]>h4{display:none}

/* /hub-attendant-declarations.css */
.had{min-width:0;color:var(--text);font-size:var(--f-callout,1rem)}
.had-header,.had-test>header,.had-card>header{display:flex;gap:1rem;align-items:center}.had-header{margin:1rem 0}.had-header>div,.had-test>header>div,.had-card>header>div{min-width:0}.had-header h3,.had-test h4,.had-card h4{font-size:calc(1.0625rem * var(--dt,1));line-height:1.35;overflow-wrap:anywhere;margin:0 0 .375rem}.had-header p,.had-test header p{margin:0;color:var(--sub);font-size:max(.6875rem,calc(.875rem * var(--dt,1)));line-height:1.5;overflow-wrap:anywhere}
.had-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:.875rem;background:var(--fill);color:var(--ink-green)}.had-icon svg{width:26px;height:26px}
.had-scope,.had-topic-tabs{display:flex;gap:.375rem;padding:.375rem;background:var(--fill);border-radius:1rem;margin:0 0 1rem;min-width:0}.had-scope>button,.had-topic-tabs>button{flex:1;min-width:44px;min-height:44px;border:0;border-radius:.75rem;padding:.625rem .75rem;color:var(--text);background:transparent;font:inherit;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;cursor:pointer;overflow-wrap:anywhere}.had-scope>button[aria-selected=true],.had-topic-tabs>button[aria-selected=true]{background:var(--card);font-weight:650;box-shadow:0 2px 8px #0000000d}.had-topic-tabs>button{display:flex;align-items:center;justify-content:center;gap:.625rem}.had-topic-tabs .had-icon{width:32px;height:32px;border-radius:.625rem}.had-topic-tabs .had-icon svg{width:24px;height:24px}
.had-new,.had-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.had-new-card{display:flex;gap:.75rem;align-items:center;min-height:44px;min-width:0;border:1px solid var(--hair);border-radius:1.25rem;background:var(--card);color:var(--text);padding:1rem;text-align:left;font:inherit;cursor:pointer;transition:border-color 140ms ease,box-shadow 140ms ease,transform 140ms ease}.had-new-card>span:nth-child(2){flex:1;min-width:0}.had-new-card strong{display:block;font-size:calc(1rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}.had-new-card small{display:block;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:1.5;color:var(--sub);margin-top:.25rem;overflow-wrap:anywhere}
.had-card{min-width:0;border:1px solid var(--hair);border-radius:1.25rem;padding:1.25rem;background:var(--card)}.had-card header small{display:block;color:var(--sub);font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.5;margin-bottom:.25rem}.had-state,.had-note,.had-draft,.had-empty,.had-count{font-size:max(.6875rem,calc(.875rem * var(--dt,1)));line-height:1.5;color:var(--sub);overflow-wrap:anywhere}.had-state{padding:.5rem .75rem;border-radius:.75rem;background:var(--fill);margin:.75rem 0}.had-phrase{font-size:calc(.9375rem * var(--dt,1));font-weight:600;line-height:1.45;overflow-wrap:anywhere}.had-reply,.had-test-reply{font-size:calc(1rem * var(--dt,1));line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.had-product{display:flex;gap:.75rem;align-items:center;min-width:0}.had-product>div{min-width:0}.had-product img{width:64px;height:64px;border-radius:.875rem;object-fit:cover;flex:none}.had-product strong{font-size:calc(.9375rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}.had-product p{color:var(--sub);font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:1.45;margin:.25rem 0;overflow-wrap:anywhere}
.had-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.had .btn{min-height:44px;max-width:100%;white-space:normal;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;overflow-wrap:anywhere}.had-switch{display:flex;align-items:center;gap:.75rem;min-height:44px;font-size:calc(.875rem * var(--dt,1));line-height:1.45;color:var(--text);position:relative;margin:.875rem 0;cursor:pointer}.had-switch>input{position:absolute;left:0;top:0;width:52px;height:44px;margin:0;opacity:0;cursor:pointer;z-index:1}.had-switch>input+span{position:relative;flex:none;width:52px;height:30px;border-radius:999px;background:var(--sub);transition:background-color 140ms ease}.had-switch>input+span::after{content:'';position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left 140ms ease}.had-switch>input:checked+span{background:var(--ink-green)}.had-switch>input:checked+span::after{left:25px}.had-switch>input:focus-visible+span{outline:3px solid var(--foco-cor);outline-offset:4px}.had-switch>input:disabled{cursor:default}
.had :is(input:not([type=checkbox]),textarea,select){box-sizing:border-box;width:100%;min-width:0;min-height:44px;font:inherit;font-size:calc(1rem * var(--dt,1));line-height:1.45;padding:.625rem .875rem;background:var(--card);color:var(--text);border:1px solid var(--hair);border-radius:.875rem}.had textarea{resize:vertical}.had .hc-field{display:flex;flex-direction:column;gap:.5rem;min-width:0;font-size:calc(.9375rem * var(--dt,1));line-height:1.4;margin:.875rem 0}.had-phrases{margin:1rem 0;padding:0;border:0;min-width:0}.had-phrases legend{font-size:calc(.9375rem * var(--dt,1));font-weight:600;line-height:1.5}.had-phrases>div{display:flex;align-items:end;gap:.5rem}.had-phrases .hc-field{flex:1;margin:.625rem 0}.had-phrases>div>.btn{margin-bottom:.625rem}.had-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem;max-height:18rem;overflow:auto;overscroll-behavior:contain}.had-product-choice{min-width:0;min-height:44px;text-align:left;padding:.875rem;border:1px solid var(--hair);border-radius:1rem;background:var(--card);color:var(--text);cursor:pointer}.had-product-choice:active,.had-new-card:active{transform:scale(.985)}
.had [data-ad-rule-form]>h4,.had-review h4{font-size:calc(1.125rem * var(--dt,1));line-height:1.35;overflow-wrap:anywhere;margin:.5rem 0 1rem}.had-test,.had-review{margin:1.25rem 0;padding:1.25rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--card)}.had-test form{display:grid;gap:.625rem;margin-top:1rem}.had-test form>label{font-size:calc(.9375rem * var(--dt,1));line-height:1.45}.had-test form>.btn{justify-self:start}.had-review h5{font-size:calc(1rem * var(--dt,1));line-height:1.5;overflow-wrap:anywhere;margin:1rem 0 .5rem}.had-change{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:.75rem 0;border-top:1px solid var(--hair)}.had-change>div{min-width:0}.had-change small{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:1.5;color:var(--sub)}.had-change p{font-size:calc(.9375rem * var(--dt,1));line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin:.375rem 0}.had-feedback{font-size:calc(.875rem * var(--dt,1));line-height:1.5;color:var(--ink-green);overflow-wrap:anywhere;min-height:1.5em}.had-warning,.had-error{font-size:calc(.875rem * var(--dt,1));line-height:1.5;color:var(--text);background:var(--fill);padding:.875rem;border-radius:.875rem;overflow-wrap:anywhere}.had-error{color:var(--ink-red)}
.had :is(button,input,select,textarea):focus-visible,.had-topic-tabs>button:focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.had [hidden]{display:none!important}.hvw-editor .had-header{display:none}
@media(max-width:650px){.had-new,.had-card-grid,.had-products,.had-change{grid-template-columns:minmax(0,1fr)}.had-card,.had-test,.had-review{padding:1rem}.had-actions>.btn{flex:1 1 100%}.had-phrases>div{align-items:stretch;flex-wrap:wrap}.had-phrases>div>.btn{align-self:end}.had-topic-tabs{margin-bottom:.5rem}.had-topic-tabs>button{padding:.375rem;font-size:calc(.875rem * var(--dt,1))}.had-topic-full{display:none}.hvw-editor .hvw-editor-body .had-topic-tabs~.hai .hai-scope{margin-bottom:.125rem}.hvw-editor .hvw-editor-body .had-topic-tabs~.hai .hai-groups{margin-bottom:.125rem}}
@media(hover:hover){.had-new-card:hover,.had-product-choice:hover{border-color:var(--ink-green);box-shadow:0 4px 16px rgba(0,0,0,.05)}}
@media(prefers-reduced-motion:reduce){.had-new-card,.had-product-choice,.had-switch>input+span,.had-switch>input+span::after{transition:none}.had-new-card:active,.had-product-choice:active{transform:none}}
@media(prefers-contrast:more){.had-card,.had-new-card,.had-product-choice,.had :is(input,textarea,select){border-color:var(--text)}}

/* /hub-attendant-personality.css */
.hap{--hap-accent:var(--ink-green);--hap-muted:var(--sub);margin:0!important;border:0!important;background:transparent!important;padding:0!important;color:var(--text)}
.hap-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.hap-header h3{margin:0}.hap-header p{margin:5px 0 0}.hap-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;color:var(--hap-accent);background:var(--fill);flex:none}.hap svg{width:24px;height:24px}.hap-origin{font-size:max(0.6875rem,calc(0.8125rem * var(--dt,1)));color:var(--hap-muted);padding:10px 12px;background:var(--fill);border-radius:12px;margin:0 0 16px}.hap fieldset{border:0;margin:0;padding:0;min-width:0}.hap-scope,.hap-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.hap-scope{align-items:end;margin-bottom:16px}.hap .hc-field{min-width:0}.hap .hc-field input,.hap .hc-field select{width:100%;min-height:44px}.hap-enabled{margin-bottom:16px!important}.hap-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}.hap-preset{font:inherit;text-align:left;display:flex;flex-direction:column;gap:9px;border:1px solid var(--hair);border-radius:18px;padding:16px;background:var(--card);color:inherit;min-height:145px;transition:transform .18s ease,border-color .18s ease,background .18s ease;cursor:pointer}.hap-preset small{font-size:max(0.6875rem,calc(0.75rem * var(--dt,1)));line-height:1.4;color:var(--hap-muted)}.hap-preset svg{color:var(--hap-accent)}.hap-preset[aria-pressed=true]{border-color:var(--hap-accent);box-shadow:inset 0 0 0 1px var(--hap-accent);background:var(--fill)}.hap-preset:active{transform:scale(.98)}.hap button:focus-visible,.hap summary:focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hap-details{border-top:1px solid var(--hair);margin:18px 0}.hap-details summary{font-weight:600;padding:14px 0;min-height:44px;cursor:pointer}.hap-details .hap-fields{padding-bottom:14px}.hap-preview{background:var(--fill);border-radius:22px;padding:18px;margin:20px 0;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.hap-preview-title{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;width:100%}.hap-preview-title span{font-size:max(0.6875rem,calc(0.75rem * var(--dt,1)));color:var(--hap-muted)}.hap-customer{align-self:flex-end;padding:10px 14px;border-radius:18px 18px 5px 18px;background:var(--card);max-width:88%;font-size:max(0.6875rem,calc(0.875rem * var(--dt,1)))}.hap-bubble{margin:0;white-space:pre-wrap;padding:14px 16px;border-radius:18px 18px 18px 5px;background:var(--card);color:var(--text);border-inline-start:3px solid var(--hap-accent);font-size:max(0.6875rem,calc(0.875rem * var(--dt,1)));line-height:1.55;max-width:92%;overflow-wrap:anywhere;animation:hap-appear .18s ease-out}.hap-preview>.hc-note{margin:0}.hap-review{border:1px solid var(--hair);border-radius:18px;padding:16px;margin-top:12px}.hap-review h4{margin:0 0 12px}.hap-impact{display:grid;gap:6px;padding:12px 0;border-top:1px solid var(--hair)}.hap-impact span{color:var(--hap-muted);font-size:max(0.6875rem,calc(0.8125rem * var(--dt,1)))}.hap-impact p{white-space:pre-wrap;font-size:max(0.6875rem,calc(0.875rem * var(--dt,1)));margin:0;overflow-wrap:anywhere}.hap [hidden]{display:none!important}.hap :disabled{cursor:default;opacity:.65}.hap .hc-actions{gap:10px;flex-wrap:wrap}.hap .hc-actions button{min-height:44px}
@keyframes hap-appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:520px){.hap-scope,.hap-fields{grid-template-columns:1fr}.hap-presets{grid-template-columns:1fr;gap:10px}.hap-preset{display:grid;grid-template-columns:28px 1fr;column-gap:12px;row-gap:4px;padding:14px;min-height:76px;border-radius:16px}.hap-preset svg{grid-row:1 / 3;align-self:center}.hap-preset strong{font-size:calc(1rem * var(--dt,1))}.hap-preset small{grid-column:2}.hap-preview{padding:14px}.hap .hc-actions>button{flex:1 1 160px}}
@media(prefers-reduced-motion:reduce){.hap *{animation:none!important;transition:none!important}}
@media(prefers-contrast:more){.hap-preset,.hap-review{border-width:2px}.hap-origin{border:1px solid currentColor}.hap-preview{background:transparent;border:1px solid currentColor}}

/* /hub-attendant-menu-delivery.css */
.hamd{color:var(--text);font-size:var(--f-body);min-width:0;max-width:100%}.hamd [hidden]{display:none!important}.hamd-saved{display:flex;gap:.875rem;align-items:center;padding:.875rem 1rem;background:var(--fill);border-radius:1rem;margin-bottom:1rem}.hamd-saved>div{display:grid;gap:.25rem;min-width:0}.hamd-saved strong{font-size:var(--f-subhead);overflow-wrap:anywhere}.hamd-saved small,.hamd-example>small,.hamd-comparison small{font-size:var(--f-footnote);color:var(--sub)}.hamd-icon{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:.875rem;background:var(--fill);color:var(--ink-green)}.hamd-icon svg{width:1.5rem;height:1.5rem}.hamd-scope{display:flex;gap:.25rem;padding:.25rem;border-radius:1rem;background:var(--fill);margin-bottom:1rem}.hamd-scope button{flex:1;min-width:44px;min-height:44px;padding:.625rem;border:0;border-radius:.75rem;background:transparent;color:var(--text);font:inherit;font-size:var(--f-subhead);cursor:pointer}.hamd-scope [aria-selected=true]{background:var(--off);font-weight:650;box-shadow:0 1px 4px #00000012}.hamd-follow{display:flex;gap:.75rem;align-items:center;min-height:44px;margin-bottom:1rem;font-size:var(--f-subhead);font-weight:600;cursor:pointer;position:relative}.hamd-follow input{position:absolute;z-index:1;opacity:0;width:44px;height:44px;margin:0}.hamd-follow small{display:block;color:var(--sub);font-size:var(--f-footnote);font-weight:400;margin-top:.25rem}.hamd-switch-track{pointer-events:none;width:2.75rem;height:1.75rem;flex:none;background:var(--sub);border-radius:2rem;padding:.2rem;box-sizing:border-box;transition:background-color 160ms ease}.hamd-switch-track:before{content:"";display:block;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--off);box-shadow:0 1px 3px #00000030;transition:transform 160ms ease}.hamd-follow input:checked+.hamd-switch-track{background:var(--on-green)}.hamd-follow input:checked+.hamd-switch-track:before{transform:translateX(1rem)}.hamd-follow input:focus-visible+.hamd-switch-track{outline:3px solid var(--foco-cor);outline-offset:3px}.hamd-follow:has(input:disabled){cursor:default}.hamd-choices{margin:0;padding:0;border:0;min-width:0}.hamd-label{font-size:var(--f-headline);font-weight:650;margin-bottom:.75rem;padding:0}.hamd-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.hamd-card{position:relative;display:grid;align-content:start;gap:.625rem;min-width:0;min-height:44px;padding:1rem;border:1px solid var(--hair);border-radius:1.125rem;background:var(--off);color:var(--text);cursor:pointer;transition:border-color 160ms ease,box-shadow 160ms ease}.hamd-card input{position:absolute;z-index:1;opacity:0;width:44px;height:44px;margin:0;inset:.25rem .25rem auto auto}.hamd-card strong{font-size:var(--f-subhead);line-height:1.4;overflow-wrap:anywhere}.hamd-note,.hamd-feedback,.hamd-draft{font-size:var(--f-subhead);color:var(--sub);line-height:1.55;overflow-wrap:anywhere;margin:.5rem 0}.hamd-card .hamd-note{font-size:var(--f-footnote);margin:0}.hamd-choice-state{font-size:var(--f-caption1);color:var(--sub);margin-top:.25rem}.hamd-card.is-selected{border-color:var(--ink-green);box-shadow:inset 0 0 0 1px var(--ink-green)}.hamd-card.is-selected .hamd-choice-state{color:var(--ink-green);font-weight:650}.hamd-card:has(input:focus-visible){outline:3px solid var(--foco-cor);outline-offset:3px}.hamd-card:has(input:disabled){cursor:default}.hamd-example{margin:1rem 0;padding:1rem;border-radius:1rem;background:var(--fill);min-width:0}.hamd-bubble{padding:.875rem 1rem;margin-top:.75rem;border-radius:1rem 1rem 1rem .25rem;background:var(--off);color:var(--text);max-width:34rem;font-size:var(--f-subhead);line-height:1.5;overflow-wrap:anywhere}.hamd-bubble p{margin:0}.hamd-bubble small{display:block;font-size:var(--f-footnote);color:var(--sub);margin-top:.625rem}.hamd-example-button{display:block;padding:.75rem;margin-top:.75rem;border-top:1px solid var(--hair);color:var(--ink-green);text-align:center;font-weight:650}.hamd-example-link{display:block;margin-top:.625rem;color:var(--ink-green);font-size:var(--f-footnote);overflow-wrap:anywhere}.hamd-details{border-top:1px solid var(--hair);margin:1rem 0}.hamd-details summary{display:flex;align-items:center;min-height:44px;font-size:var(--f-subhead);font-weight:600;cursor:pointer;padding:.625rem 0}.hamd-details summary:after{content:"";width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:.5rem;flex:none}.hamd-details[open] summary:after{transform:rotate(225deg)}.hamd-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hamd-channel{display:flex;gap:.75rem;padding:1rem;border:1px solid var(--hair);border-radius:1rem;min-width:0}.hamd-channel>div{min-width:0}.hamd-channel h5{font-size:var(--f-subhead);margin:0 0 .25rem}.hamd-channel strong{font-size:var(--f-footnote);font-weight:600;overflow-wrap:anywhere}.hamd-channel .hamd-note{font-size:var(--f-footnote);margin:.375rem 0 0}.hamd-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.hamd-button{min-width:44px;min-height:44px;max-width:100%;padding:.75rem 1rem;font:inherit;font-size:var(--f-subhead);line-height:1.4;border:1px solid var(--hair);border-radius:.875rem;background:var(--fill);color:var(--text);white-space:normal;cursor:pointer}.hamd-button.hamd-primary{background:var(--on-green);color:#fff;border-color:transparent}.hamd-button:disabled{opacity:.6;cursor:default}.hamd-feedback{min-height:1.5em}.hamd-review{padding-top:1rem;border-top:1px solid var(--hair)}.hamd-review h4{font-size:var(--f-headline);margin:0 0 .75rem}.hamd-review-unit{padding:1rem;border:1px solid var(--hair);border-radius:1rem;margin-top:1rem;min-width:0}.hamd-review-unit h5{font-size:var(--f-headline);margin:0 0 .75rem}.hamd-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hamd-comparison>div{display:grid;gap:.375rem;min-width:0}.hamd-comparison strong{font-size:var(--f-subhead);overflow-wrap:anywhere}.hamd :is(button,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}@media(hover:hover){.hamd-card:not(:has(input:disabled)):hover{border-color:var(--ink-green);box-shadow:0 3px 10px #0000000a}.hamd-button:not(:disabled):hover{filter:brightness(.96)}}@media(max-width:650px){.hamd-card-grid,.hamd-channels{grid-template-columns:minmax(0,1fr)}.hamd-card{grid-template-columns:auto minmax(0,1fr);column-gap:.75rem;padding:.875rem}.hamd-card .hamd-icon{grid-row:1/4}.hamd-card .hamd-choice-state{margin:0}.hamd-actions .hamd-button{flex:1 1 100%}.hamd-comparison{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.hamd *{transition:none!important;animation:none!important}}

/* /hub-attendant-operations.css */
.hao{color:var(--text,#1d1d1f);font-size:calc(.9375rem * var(--dt,1));min-width:0}.hao h4,.hao h5{margin:.6rem 0}.hao p{line-height:1.5}.hao-note,.hao small{color:var(--sub,#555)}.hao-tabs,.hao-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.9rem 0}.hao button,.hao input:not([type=checkbox]):not([type=radio]),.hao select{min-height:44px;border:1px solid var(--hair,#aaa);border-radius:10px;padding:.6rem .75rem;font:inherit;color:inherit;background:var(--card,#fff);max-width:100%;box-sizing:border-box}.hao button{cursor:pointer}.hao button:disabled,.hao input:disabled,.hao select:disabled{opacity:.6;cursor:default}.hao .hao-primary,.hao-tabs [aria-selected=true]{background:var(--blue,#0068d9);color:#fff;border-color:transparent}.hao label{display:flex;flex-direction:column;gap:.4rem;margin:.7rem 0}.hao .hao-check{flex-direction:row;align-items:center;min-height:44px}.hao input[type=checkbox],.hao input[type=radio]{width:20px;height:20px;flex-shrink:0;accent-color:var(--blue,#0068d9)}.hao fieldset{margin:1rem 0;border:1px solid var(--hair,#aaa);border-radius:12px;min-width:0;padding:.8rem}.hao legend{padding:0 .3rem;font-weight:600}.hao-saved{padding:.85rem;border-radius:12px;background:var(--fill,#f2f2f7);line-height:1.6;overflow-wrap:anywhere}.hao-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.hao-models label{margin:0;padding:.7rem;border:1px solid var(--hair,#aaa);border-radius:12px;min-width:0}.hao-models label:has(input:checked){border-color:var(--blue,#0068d9);box-shadow:inset 0 0 0 1px var(--blue,#0068d9)}.hao-models span{font-size:calc(.875rem * var(--dt,1));line-height:1.45}.hao-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.hao-comparison div{display:flex;flex-direction:column;gap:.3rem;overflow-wrap:anywhere}.hao-review article{border-bottom:1px solid var(--hair,#aaa);padding:.75rem 0}.hao-feedback{overflow-wrap:anywhere;min-height:1.5em}.hao-exception{padding:.7rem;border-bottom:1px solid var(--hair,#aaa)}.hao :focus-visible{outline:3px solid var(--blue,#0068d9);outline-offset:3px}.hao details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}@media(max-width:600px){.hao-models,.hao-comparison{grid-template-columns:1fr}.hao-actions{flex-direction:column}.hao-actions button{width:100%}}@media(prefers-reduced-motion:reduce){.hao *{animation:none!important;transition:none!important}}

/* /hub-payment-correction.css */
.hpc{color:var(--text);display:grid;gap:20px;min-width:0}.hpc-heading{display:flex;align-items:center;gap:14px}.hpc-heading h3,.hpc-heading p,.hpc h4{margin:0}.hpc-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--fill);border:1px solid var(--hair);border-radius:16px;color:var(--ink-green);flex:none}.hpc-icon svg{width:26px;height:26px}.hpc-total{padding:20px;border:1px solid var(--hair);border-radius:20px;background:var(--card);display:flex;align-items:center;justify-content:space-between;gap:12px}.hpc-total strong{font-size:calc(1.45rem * var(--dt,1));font-variant-numeric:tabular-nums}.hpc-amounts{list-style:none;padding:0;margin:10px 0;display:grid;gap:8px}.hpc-amounts li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:10px 0;border-bottom:1px solid var(--hair)}.hpc-amounts small{grid-column:1/-1;color:var(--sub)}.hpc-amounts strong{font-variant-numeric:tabular-nums}.hpc form{display:grid;gap:16px}.hpc-rows,.hpc-fields{display:grid;gap:12px}.hpc-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--hair);border-radius:18px;background:var(--card);min-width:0;margin:0}.hpc-row legend{font-weight:650;padding:0 6px}.hpc-row>.hc-field:first-of-type{grid-column:1/-1}.hpc .hc-field input,.hpc .hc-field select,.hpc .hc-field textarea{width:100%;min-width:0;box-sizing:border-box;min-height:44px}.hpc .btn{min-height:44px}.hpc .hc-field,.hpc p,.hpc li{overflow-wrap:anywhere}.hpc-review,.hpc-history{border:1px solid var(--hair);border-radius:20px;padding:20px;background:var(--card)}.hpc-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hpc-comparison>div{min-width:0}.hpc-comparison>div>span{color:var(--sub);font-size:calc(.9rem * var(--dt,1))}.hpc-balance,.hpc-notice{padding:14px;border-radius:14px;background:var(--fill);margin:0}.hpc-history summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.hpc-review{animation:hpc-arrive 180ms ease-out}.hpc button:focus-visible,.hpc input:focus-visible,.hpc select:focus-visible,.hpc textarea:focus-visible,.hpc summary:focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hpc [hidden]{display:none!important}@keyframes hpc-arrive{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:540px){.hpc{gap:16px}.hpc-row,.hpc-comparison{grid-template-columns:1fr}.hpc-row>.hc-field:first-of-type{grid-column:auto}.hpc-total{padding:16px}.hpc-review,.hpc-history{padding:14px}.hpc .btn{width:100%}}@media(prefers-reduced-motion:reduce){.hpc-review{animation:none}}

/* /hub-payment-correction-policy.css */
.hpcp{color:var(--text);font-size:var(--f-body,calc(1rem * var(--dt,1)));max-width:100%;min-width:0}.hpcp [hidden]{display:none!important}.hpcp-heading{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.hpcp-icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:1rem;color:var(--ink-green);background:var(--fill)}.hpcp-icon svg{width:1.65rem;height:1.65rem}.hpcp h3{font-size:var(--f-title3);line-height:1.3;margin:.25rem 0}.hpcp-eyebrow{font-size:var(--f-footnote);color:var(--sub);margin:0}.hpcp-note,.hpcp-feedback{font-size:var(--f-subhead);color:var(--sub);line-height:1.55;overflow-wrap:anywhere}.hpcp-feedback{min-height:1.5em}.hpcp-tabs{display:flex;gap:.25rem;padding:.25rem;background:var(--fill);border-radius:1rem;margin-block:1.25rem}.hpcp-tabs button{flex:1;min-width:44px;min-height:44px;font:inherit;font-size:var(--f-subhead);border:0;border-radius:.75rem;color:var(--text);background:transparent;padding:.625rem;cursor:pointer}.hpcp-tabs [aria-selected=true]{background:var(--off);font-weight:650;box-shadow:0 1px 5px #00000012}.hpcp-field{display:grid;gap:.5rem;font-size:var(--f-subhead);font-weight:600;min-width:0}.hpcp-field select{width:100%;max-width:100%;min-width:0;min-height:44px;font:inherit;font-weight:400;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:.75rem;padding:.75rem;box-sizing:border-box}.hpcp-unit{margin-bottom:1rem}.hpcp-saved,.hpcp-review{padding:1.25rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);margin-bottom:1.25rem;min-width:0}.hpcp-saved{display:grid;gap:.5rem}.hpcp-saved span,.hpcp-saved small{font-size:var(--f-footnote);color:var(--sub)}.hpcp-saved strong{font-size:var(--f-headline);overflow-wrap:anywhere}.hpcp-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem}.hpcp-button{min-height:44px;min-width:44px;border:1px solid transparent;border-radius:.875rem;font:inherit;font-size:var(--f-subhead);padding:.75rem 1rem;background:var(--fill);color:var(--text);white-space:normal;overflow-wrap:anywhere;max-width:100%;line-height:1.4;cursor:pointer;transition:background-color 140ms ease}.hpcp-button:disabled{opacity:.6;cursor:default}.hpcp .hpcp-primary{background:var(--on-green);color:#fff}.hpcp-notice{padding:1rem;border-radius:1rem;background:var(--fill);font-size:var(--f-subhead);line-height:1.55;overflow-wrap:anywhere}.hpcp-review{margin-top:1.5rem}.hpcp-review h4{font-size:var(--f-headline);margin:0 0 .75rem}.hpcp-unit-list{list-style:none;padding:0;margin:1rem 0;display:grid;gap:1rem}.hpcp-unit-list li{display:grid;gap:.5rem;padding-block:1rem;border-top:1px solid var(--hair);overflow-wrap:anywhere}.hpcp-unit-list strong,.hpcp-unit-list span{font-size:var(--f-subhead)}.hpcp-unit-list small{font-size:var(--f-footnote);color:var(--sub);line-height:1.5}.hpcp-help{border-top:1px solid var(--hair);margin-top:1rem}.hpcp-help summary{min-height:44px;display:flex;align-items:center;font-size:var(--f-subhead);font-weight:600;cursor:pointer}.hpcp :is(button,select,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}@media(max-width:600px){.hpcp-actions .hpcp-button{flex:1 1 100%}.hpcp-saved,.hpcp-review{padding:1rem}.hpcp-heading h3{font-size:var(--f-headline)}}@media(prefers-reduced-motion:reduce){.hpcp *{transition:none!important;animation:none!important}}

/* /hub-print-destinations.css */
.hpd-form{margin:0;max-width:100%;min-width:0}.hpd-equipment{display:flex;align-items:center;gap:16px;margin:0 0 20px}.hpd-equipment>svg{width:52px;height:52px;flex:none;fill:none;stroke:var(--text);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;padding:10px;border-radius:16px;background:var(--fill)}.hpd-equipment p,.hpd-switch small{color:var(--sub);line-height:1.45;margin:5px 0 0;font-size:max(.6875rem,calc(.875rem * var(--dt,1)))}.hpd-equipment strong,.hpd-switch strong{font-size:calc(1.0625rem * var(--dt,1))}.hpd-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--hair);border-radius:18px;margin-bottom:20px}.hpd-switch small{display:block}.hpd-switch input{appearance:none;flex:none;box-sizing:content-box;width:51px;height:32px;min-height:32px;border:6px solid transparent;background-clip:padding-box;border-radius:20px;background-color:var(--sub);position:relative;transition:background .18s ease;cursor:pointer}.hpd-switch input:before{content:'';display:block;width:26px;height:26px;border-radius:50%;background:white;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003;transition:transform .18s ease}.hpd-switch input:checked{background-color:var(--ink-green,#1e7140)}.hpd-switch input:checked:before{transform:translateX(19px)}.hpd-switch input:disabled{opacity:.45;cursor:default}.hpd-switch input:focus-visible{outline:3px solid var(--blue,#0071e3);outline-offset:4px}.hpd-layout{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}.hpd-layout legend{font-weight:650;margin-bottom:12px}.hpd-impact{font-weight:600;line-height:1.5;font-size:max(.6875rem,calc(.9375rem * var(--dt,1)));margin:16px 0}.hpd-preview{padding:16px;border-radius:16px;background:var(--fill);margin-top:16px}.hpd-preview p{line-height:1.5;overflow-wrap:anywhere}.hpd-form [data-hpd-message]{margin:12px 0;overflow-wrap:anywhere}.hpd-form select{max-width:100%}.hpd-form .hc-config-disclosure p{line-height:1.5}.hpd-form [hidden]{display:none!important}@media(max-width:600px){.hpd-layout{grid-template-columns:1fr}.hpd-equipment{gap:12px}.hpd-form .hc-actions>*{flex:1 1 160px}.hpd-switch{padding:12px}}@media(prefers-reduced-motion:reduce){.hpd-switch input,.hpd-switch input:before{transition:none}}

/* /hub-print-sectors.css */
.hps{color:var(--text);min-width:0;margin-block:1.5rem;font-size:var(--f-body)}.hps [hidden]{display:none!important}.hps-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.hps-header h3{font-size:var(--f-title3);margin:.25rem 0}.hps-total{font-size:var(--f-footnote);padding:.5rem .75rem;background:var(--fill);border-radius:1rem}.hps-total[data-exceeded=true]{color:var(--ink-red)}.hps-cards{display:grid;gap:1rem;margin-block:1rem}.hps-sector{background:var(--off);border:1px solid var(--hair);border-radius:1.5rem;min-width:0}.hc .hps-sector>summary{display:flex;align-items:center;gap:.875rem;min-height:64px;padding:1rem;list-style:none;flex-direction:row}.hps-sector>summary::-webkit-details-marker{display:none}.hps-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;background:var(--fill);border-radius:1rem;color:var(--text)}.hps-icon svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.hps-heading{display:grid;gap:.25rem;min-width:0;flex:1}.hps-heading strong{font-size:var(--f-headline);overflow-wrap:anywhere}.hps-heading small,.hps-state{font-size:var(--f-footnote);color:var(--sub);line-height:1.4;overflow-wrap:anywhere}.hps-state{max-width:12rem}.hps-body{padding:0 1.25rem 1.25rem;min-width:0}.hps-note,.hps-equipment,.hps-feedback,.hps-warning{font-size:var(--f-subhead);line-height:1.55;overflow-wrap:anywhere;color:var(--sub)}.hps-warning{color:var(--ink-red)}.hps-switch{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--hair);border-radius:1rem;padding:1rem;margin-block:1rem;min-height:44px}.hps-switch span{font-size:var(--f-subhead);font-weight:600;min-width:0}.hps-switch small{display:block;font-size:var(--f-footnote);font-weight:400;color:var(--sub);margin-top:.375rem}.hps-switch input{width:44px!important;height:44px!important;min-width:44px;min-height:44px;flex:none;accent-color:var(--on-green)}.hps-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;border:0;margin:1rem 0;padding:0;min-width:0}.hps-layout legend,.hps-options legend{font-size:var(--f-subhead);font-weight:600;padding-block:.75rem}.hps-options{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem .75rem}.hps-check{display:flex;align-items:center;min-height:44px;gap:.625rem;font-size:var(--f-subhead);line-height:1.4;min-width:0;padding:.375rem;border-radius:.5rem;cursor:pointer}.hps-check span{min-width:0;overflow-wrap:anywhere}.hps-check input{flex:none;width:1.25rem!important;height:1.25rem!important;min-height:0;accent-color:var(--on-green)}.hps-products,.hps-modes{border-top:1px solid var(--hair);margin-top:1rem;padding-block:.5rem;min-width:0}.hc .hps-products>summary,.hc .hps-modes>summary{min-height:44px;font-size:var(--f-subhead);font-weight:600;display:flex;flex-direction:row;align-items:center;cursor:pointer}.hps-product-list{max-height:22rem;overflow:auto;margin-top:.75rem;overscroll-behavior:contain}.hps :is(input,select,button,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hps input:not([type=checkbox]),.hps select{max-width:100%;min-width:0;min-height:44px;font:inherit;font-size:var(--f-subhead);box-sizing:border-box}.hps .btn{min-height:44px;min-width:44px;white-space:normal;max-width:100%;font-size:var(--f-subhead)}.hps-review{border-top:1px solid var(--hair);margin-top:1rem;padding-top:1rem;min-width:0}.hps-review h4{font-size:var(--f-headline);margin:.25rem 0 1rem}.hps-review>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hps-review p{font-size:var(--f-subhead);overflow-wrap:anywhere;line-height:1.5}.hps-review strong{font-size:var(--f-subhead)}@media(max-width:600px){.hc .hps-sector>summary{flex-wrap:wrap}.hps-state{flex-basis:100%;margin-left:0;max-width:none}.hps-body{padding-inline:1rem}.hps-layout,.hps-options,.hps-review>div{grid-template-columns:1fr}.hps-header{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.hps *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* /hub-printing-network.css */
.hpn{color:var(--text);font-size:var(--f-body);min-width:0}.hpn [hidden]{display:none!important}.hpn *{box-sizing:border-box}.hpn-header{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.hvw-editor-body .hpn-header{display:none}.hpn-header h3{font-size:var(--f-title3);margin:.25rem 0}.hpn-eyebrow{font-size:var(--f-footnote);color:var(--sub);margin:0}.hpn-symbol{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex:none;border-radius:1rem;background:var(--fill);color:var(--text)}.hpn-symbol svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hpn-tabs{display:flex;gap:.25rem;padding:.25rem;background:var(--fill);border-radius:1rem;margin-block:1rem}.hpn-tabs button{flex:1;border:0;min-width:44px;min-height:44px;border-radius:.75rem;font-size:var(--f-subhead);font-weight:600;white-space:normal;padding:.625rem;color:var(--sub);background:transparent}.hpn-tabs button[aria-selected=true]{background:var(--off);color:var(--text);box-shadow:0 2px 6px #00000010}.hpn-field{display:grid;gap:.5rem;min-width:0;font-size:var(--f-subhead);font-weight:600;margin-block:.75rem}.hpn-field input,.hpn-field select{min-width:0;width:100%;min-height:44px;border:1px solid var(--hair);border-radius:.75rem;padding:.625rem;background:var(--off);color:var(--text);font:inherit;font-weight:400}.hpn [data-pn-fields],.hpn-presets{border:0;margin:0;padding:0;min-width:0}.hpn-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-block:1rem}.hpn-presets legend{font-size:var(--f-headline);font-weight:600;padding-bottom:.75rem}.hpn-preset{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);cursor:pointer;min-width:0;min-height:44px;transition:transform .18s ease,border-color .18s ease}.hpn-preset:has(input:checked){border-color:var(--ink-green);outline:2px solid var(--ink-green);outline-offset:-2px}.hpn-preset input{position:absolute;inset:.75rem .75rem auto auto;width:1.25rem;height:1.25rem;accent-color:var(--on-green)}.hpn-preset strong{font-size:var(--f-headline);line-height:1.4;display:block;padding-right:1rem}.hpn-preset small{display:block;color:var(--sub);font-size:var(--f-footnote);line-height:1.5;margin-top:.375rem}.hpn-reference,.hpn-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:end}.hpn-reference .hpn-btn{margin-block:.75rem}.hpn-note,.hpn-feedback,.hpn-alert{font-size:var(--f-subhead);line-height:1.55;overflow-wrap:anywhere;color:var(--sub)}.hpn-alert{color:var(--ink-red)}.hpn-btn{min-width:44px;min-height:44px;max-width:100%;white-space:normal;border:1px solid var(--hair);border-radius:.875rem;background:var(--off);color:var(--text);font-size:var(--f-subhead);font-weight:600;padding:.75rem 1rem;line-height:1.4;cursor:pointer}.hpn-primary{background:var(--fill);border-color:var(--ink-green);color:var(--text)}.hpn button:disabled,.hpn fieldset:disabled{cursor:default}.hpn-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem}.hpn .hpn-details>summary{display:flex;align-items:center;min-height:44px;font-size:var(--f-subhead);font-weight:600;cursor:pointer;padding-block:.75rem;flex-direction:row}.hpn-rule{min-width:0;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);margin-block:.75rem}.hpn .hpn-rule>summary,.hpn-principal>header{display:flex;flex-direction:row;align-items:center;gap:.875rem;padding:1rem;min-height:64px;list-style:none}.hpn-rule>summary::-webkit-details-marker{display:none}.hpn-rule strong{font-size:var(--f-headline);overflow-wrap:anywhere}.hpn-rule small{display:block;font-size:var(--f-footnote);color:var(--sub);line-height:1.45;margin-top:.25rem}.hpn-principal .hpn-layout{padding:0 1rem 1rem}.hpn-rule-body{padding:0 1rem 1rem;min-width:0}.hpn-options{border:0;margin:1rem 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .75rem;min-width:0}.hpn-options legend{font-size:var(--f-subhead);font-weight:600;padding-block:.5rem}.hpn-check{display:flex;align-items:center;gap:.625rem;min-height:44px;font-size:var(--f-subhead);line-height:1.4;min-width:0;padding:.375rem}.hpn-check span{overflow-wrap:anywhere;min-width:0}.hpn-check input{width:1.25rem!important;height:1.25rem!important;min-height:0;flex:none;accent-color:var(--on-green)}.hpn-products{max-height:22rem;overflow:auto;overscroll-behavior:contain}.hpn-progress{border-top:1px solid var(--hair);margin-top:1.5rem;padding-top:1rem}.hpn-progress>header,.hpn-impact>header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.hpn-progress h4,.hpn-review h4{font-size:var(--f-headline);margin:.5rem 0}.hpn-badge{font-size:var(--f-footnote);padding:.5rem .75rem;border-radius:1rem;background:var(--fill)}.hpn-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hpn-units article{display:grid;gap:.375rem;padding:1rem;background:var(--off);border:1px solid var(--hair);border-radius:1rem;min-width:0}.hpn-units strong,.hpn-job strong,.hpn-impact strong{font-size:var(--f-subhead)}.hpn-units span,.hpn-job span,.hpn-impact>header>span{font-size:var(--f-subhead);overflow-wrap:anywhere}.hpn-units small,.hpn-job small{font-size:var(--f-footnote);color:var(--sub);line-height:1.5;overflow-wrap:anywhere}.hpn-job{border-top:1px solid var(--hair);padding-block:.5rem}.hpn-job p{display:grid;gap:.375rem;margin:.75rem 0}.hpn-review{border-top:1px solid var(--hair);margin-top:1rem;padding-top:1rem}.hpn-impact{border:1px solid var(--hair);border-radius:1.25rem;margin-block:1rem;padding:1rem;min-width:0}.hpn-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hpn-comparison h5{font-size:var(--f-subhead);margin:1rem 0 .5rem}.hpn-comparison p{font-size:var(--f-subhead);line-height:1.5;overflow-wrap:anywhere;margin:.5rem 0}.hpn :is(input,select,button,summary):focus-visible,.hpn-preset:has(input:focus-visible){outline:3px solid var(--foco-cor);outline-offset:3px}@media(hover:hover){.hpn-preset:hover{transform:translateY(-2px)}}.hpn-preset:active{transform:scale(.99)}@media(max-width:600px){.hpn-presets,.hpn-reference,.hpn-layout,.hpn-options,.hpn-units,.hpn-comparison{grid-template-columns:minmax(0,1fr)}.hpn-preset{flex-direction:column;align-items:flex-start}.hpn-preset strong{padding-right:1.5rem}.hpn-reference{gap:0}.hpn-actions>*{flex:1 1 12rem}.hpn-header{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.hpn *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.hpn-preset:hover,.hpn-preset:active{transform:none}}

/* /hub-print-target-operations.css */
.hpto{min-width:0;color:var(--text);font-size:var(--f-body)}.hpto [hidden]{display:none!important}.hpto-heading{display:flex;gap:1rem;align-items:flex-start;margin-block:1rem}.hpto-heading h3{font-size:var(--f-title3);margin:0 0 .375rem}.hpto-heading p,.hpto-card p,.hpto-editor p,.hpto-result p{font-size:var(--f-subhead);line-height:1.55;margin:.5rem 0;overflow-wrap:anywhere}.hpto-heading p,.hpto-card p{color:var(--sub)}.hpto-icon{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:1rem;background:var(--fill);color:var(--text)}.hpto-icon svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.hpto-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-block:1.25rem}.hpto-card{min-width:0;padding:1.25rem;border:1px solid var(--hair);border-radius:1.5rem;background:var(--off);display:flex;flex-direction:column;gap:.75rem}.hpto-card h4,.hpto-editor h4{font-size:var(--f-headline);margin:.25rem 0;overflow-wrap:anywhere}.hpto-card .hc-actions{margin-top:auto}.hpto-tag{font-size:var(--f-footnote);color:var(--sub)}.hpto-editor{border:1px solid var(--hair);background:var(--fill);border-radius:1.5rem;padding:1.25rem;margin-block:1.25rem;min-width:0}.hpto-review{border-top:1px solid var(--hair);margin-block:1rem;padding-top:1rem}.hpto-review strong{font-size:var(--f-headline)}.hpto .btn{min-width:44px;min-height:44px;max-width:100%;white-space:normal;font-size:var(--f-subhead);transition:transform .16s ease,background-color .16s ease}.hpto .btn:active{transform:scale(.98)}.hpto select{min-height:44px;max-width:100%;min-width:0;box-sizing:border-box;font-size:var(--f-subhead)}.hpto .hc-actions{gap:.75rem;display:flex;flex-wrap:wrap}.hpto :is(button,select,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hpto-history{margin-block:1.5rem;border-top:1px solid var(--hair);padding-top:.5rem}.hc .hpto-history>summary{min-height:44px;font-size:var(--f-subhead);display:flex;align-items:center;cursor:pointer;flex-direction:row}.hpto-result{padding:.75rem 0;border-bottom:1px solid var(--hair);min-width:0}.hpto-result strong{font-size:var(--f-subhead);overflow-wrap:anywhere}@media(max-width:1000px){.hpto-cards{grid-template-columns:1fr}.hpto-card{display:grid;grid-template-columns:auto minmax(0,1fr)}.hpto-card .hc-actions{grid-column:1/-1}}@media(max-width:600px){.hpto-heading{flex-wrap:wrap}.hpto-editor,.hpto-card{padding:1rem}.hpto .hc-actions>.btn{flex:1 1 12rem}}@media(prefers-reduced-motion:reduce){.hpto *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* /hub-campaign-metrics.css */
/* Existing campaign report; content stays in the modal viewport at each text scale. */
.hcm-open{display:inline-flex;align-items:center;gap:8px;min-height:44px!important;white-space:normal!important}
.hcm-open svg{width:20px;height:20px;flex:none}
.hcm-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:0;border:1px solid var(--hair);border-radius:28px;color:var(--text);background:var(--surface,var(--bg));box-shadow:0 24px 80px rgba(0,0,0,.22);overflow:auto;overscroll-behavior:contain;animation:hcm-enter .18s ease-out}
.hcm-dialog::backdrop{background:rgba(0,0,0,.34);backdrop-filter:blur(8px)}
.hcm-header{display:flex;align-items:flex-start;gap:16px;justify-content:space-between;padding:24px 24px 16px;border-bottom:1px solid var(--hair)}
.hcm-header>div{min-width:0}.hcm-eyebrow{margin:0 0 6px;font-size:var(--f-subhead);color:var(--sub)}
.hcm-dialog h2{font-size:var(--f-title2);line-height:1.2;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.hcm-name{margin:8px 0 0;font-size:var(--f-body);line-height:1.4;color:var(--sub);overflow-wrap:anywhere}
.hcm-close{flex:none;min-width:44px;min-height:44px;font-size:var(--f-title2);border-radius:50%}
.hcm-content{padding:18px 24px}.hcm-period{margin:0 0 18px}
.hc.hcm-dialog .hcm-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}
.hc.hcm-dialog .hcm-values>div{min-width:0;border:1px solid var(--hair);border-radius:20px;padding:18px;background:var(--off)}
.hc.hcm-dialog .hcm-values dt{display:flex;flex-direction:column;gap:12px;color:var(--sub);font-size:var(--f-subhead);line-height:1.4;overflow-wrap:anywhere}
.hcm-values dt svg{width:24px;height:24px;color:var(--text);flex:none}
.hc.hcm-dialog .hcm-values dd{margin:14px 0 0;font-size:var(--f-title1);line-height:1.15;letter-spacing:-.035em;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.hcm-explanation{border-top:1px solid var(--hair)}.hcm-explanation summary{display:flex;align-items:center;min-height:44px;padding:10px 0;font-size:var(--f-subhead);font-weight:600;cursor:pointer;gap:12px}.hcm-explanation summary::after{content:'+';margin-left:auto}.hcm-explanation[open] summary::after{content:'−'}
.hcm-explanation p{line-height:1.55}.hcm-notice{padding:14px;border-radius:14px;background:var(--off);line-height:1.5}
.hcm-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 24px 24px;border-top:1px solid var(--hair);font-size:var(--f-footnote);color:var(--sub)}.hcm-footer .btn{min-height:44px;white-space:normal;max-width:100%}
.hcm-dialog :focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:3px}
@media(max-width:520px){.hcm-header{padding:18px 16px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.hcm-header>div{display:contents}.hcm-eyebrow{grid-column:1;grid-row:1;align-self:center;margin:0}.hcm-close{grid-column:2;grid-row:1}.hcm-dialog h2,.hcm-name{grid-column:1/-1}.hcm-name{margin:0}.hcm-content{padding:16px}.hc.hcm-dialog .hcm-values{grid-template-columns:minmax(0,1fr)}.hc.hcm-dialog .hcm-values>div{padding:16px}.hcm-footer{padding:16px}.hcm-footer .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.hcm-dialog{animation:none}}
@keyframes hcm-enter{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}

.hcm-tabs{display:flex;gap:8px;padding:16px 24px 0}.hcm-tabs .btn{flex:1;min-height:44px}.hcm-tabs [aria-pressed=true]{background:var(--text);color:var(--bg)}.hcm-purchase-period{display:flex;flex-wrap:wrap;gap:12px;padding:20px 24px 0;align-items:end}.hcm-purchase-period label{display:grid;gap:6px;flex:1;min-width:120px}.hcm-purchase-period input{width:100%;min-width:0;min-height:44px;padding:8px;box-sizing:border-box;border-radius:12px;border:1px solid var(--hair);font:inherit;color:var(--text);background:var(--bg)}.hcm-purchase-period .hc-note{flex-basis:100%;margin:0}.hcm-purchase-states{display:flex;gap:8px;flex-wrap:wrap;margin-block:16px}.hcm-purchase-states span{padding:8px 12px;border-radius:14px;background:var(--off);font-size:var(--f-subhead)}.hcm-other-dimensions{border:1px solid var(--hair);border-radius:18px;padding:16px;line-height:1.5}.hcm-other-dimensions h3{font-size:var(--f-body);margin:0}.hcm-other-dimensions p{font-size:var(--f-subhead)}
@media(max-width:480px){.hcm-purchase-period,.hcm-tabs{padding-inline:16px}.hcm-purchase-period>*{max-width:100%}.hcm-purchase-period .btn{width:100%}.hcm-values dd{overflow-wrap:anywhere}}

.hcm-tabs .btn{min-width:0;overflow-wrap:anywhere}.hcm-purchase-period{box-sizing:border-box;min-width:0}.hcm-purchase-period label{max-width:100%}.hcm-purchase-period [data-campaign-period-apply]{min-width:0;white-space:normal}.hcm-other-dimensions{min-width:0;overflow-wrap:anywhere}
@media(max-width:480px){.hcm-tabs{display:grid;grid-template-columns:1fr;gap:6px}.hcm-purchase-period{display:grid;grid-template-columns:minmax(0,1fr)}.hcm-purchase-period .hc-note{min-width:0}.hcm-purchase-states span{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}}
.hcm-recovery{margin:0 0 20px}.hcm-recovery h3{font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));margin:0 0 12px}.hcm-recovery .hcm-values{margin-bottom:10px}.hcm-recovery .hc-note{line-height:1.5}

/* /hub-campaign-incentives.css */
.hci{min-width:0;color:var(--text);font-size:var(--f-body)}.hci *{box-sizing:border-box}.hci [hidden]{display:none!important}.hci-header,.hci-section-title{display:flex;align-items:center;gap:1rem;margin-block:1rem}.hci-header>div,.hci-section-title>div{min-width:0}.hci h3{font-size:var(--f-title3);line-height:1.35;margin:.25rem 0;overflow-wrap:anywhere}.hci h4,.hci-presets legend,.hci-units legend{font-size:var(--f-headline);font-weight:600;line-height:1.45;margin:.5rem 0;max-width:100%;overflow-wrap:anywhere}.hci h5{font-size:var(--f-subhead);line-height:1.45;margin:.25rem 0 .75rem}.hci-eyebrow,.hci-note,.hci-feedback,.hci-selection,.hci-alert{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}.hci-alert{color:var(--ink-red)}.hci-symbol{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:1rem;background:var(--fill);color:var(--text)}.hci-symbol svg,.hci .btn svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hci-saved{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;padding:1rem;border:1px solid var(--hair);border-radius:1rem;background:var(--fill);font-size:var(--f-subhead);line-height:1.45}.hci-saved>span{color:var(--sub)}.hci-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;gap:.375rem;min-width:0;padding:.375rem;margin-block:1rem;border:1px solid var(--hair);border-radius:1rem;background:var(--fill)}.hci-tabs button,.hci-btn{min-width:44px;min-height:44px;max-width:100%;padding:.75rem 1rem;font-size:var(--f-subhead);font-weight:600;line-height:1.4;white-space:normal;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:.875rem;cursor:pointer}.hci-tabs button{flex:1 0 auto;white-space:nowrap;background:transparent;border-color:transparent;padding:.625rem}.hci-tabs button[aria-selected=true]{background:var(--off);border-color:var(--hair)}.hci-primary{background:var(--fill);border-color:var(--ink-green)}.hci-btn:disabled,.hci-preset:disabled{opacity:.65;cursor:default}.hci form>fieldset,.hci-presets,.hci-units{border:0;padding:0;margin:0;min-width:0}.hci-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-block:.75rem 1rem}.hci-presets legend{padding-block:.5rem}.hci-preset{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);color:var(--text);text-align:left;min-height:44px;min-width:44px;cursor:pointer;transition:transform .18s ease}.hci-preset strong{font-size:var(--f-headline);line-height:1.4;display:block}.hci-preset small{display:block;font-size:var(--f-footnote);line-height:1.5;color:var(--sub);margin-top:.375rem}.hci-preset[aria-pressed=true]{border-color:var(--ink-green);box-shadow:inset 0 0 0 1px var(--ink-green)}.hci-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hci-field{display:grid;gap:.5rem;min-width:0;margin-block:.5rem;font-size:var(--f-subhead);font-weight:600;line-height:1.45}.hci-field input,.hci-field select{width:100%;max-width:100%;min-width:0;min-height:44px;padding:.625rem;border:1px solid var(--hair);border-radius:.75rem;font:inherit;font-weight:400;line-height:1.45;background:var(--off);color:var(--text)}.hci-check,.hci-switch{display:flex;align-items:center;gap:.75rem;min-height:44px;font-size:var(--f-subhead);line-height:1.45}.hci-check input,.hci-switch input{width:1.25rem!important;height:1.25rem!important;min-height:0;accent-color:var(--on-green);flex:none}.hci-check span{min-width:0;overflow-wrap:anywhere}.hci-check strong,.hci-check small{display:block}.hci-check small{font-size:var(--f-footnote);line-height:1.5;color:var(--sub)}.hci-switch{justify-content:space-between;padding:1rem;margin-block:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--fill)}.hci-switch span{min-width:0}.hci-switch small{display:block;font-size:var(--f-footnote);color:var(--sub);line-height:1.5;margin-top:.375rem}.hci-details{min-width:0;padding-block:.5rem;margin-block:.75rem;border-top:1px solid var(--hair)}.hci summary{display:flex;align-items:center;min-height:44px;padding-block:.75rem;font-size:var(--f-subhead);font-weight:600;line-height:1.45;white-space:normal;cursor:pointer}.hci-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem}.hci-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hci-units article{min-width:0;padding:1rem;border:1px solid var(--hair);border-radius:1rem;background:var(--off)}.hci-customers{max-height:24rem;overflow:auto;border:1px solid var(--hair);border-radius:1rem;padding:.5rem}.hci-customers>label{padding:.5rem;border-bottom:1px solid var(--hair)}.hci-customers>label:last-child{border-bottom:0}.hci-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-block:1rem}.hci-stats article{min-width:0;padding:1rem;border:1px solid var(--hair);border-radius:1rem;background:var(--fill)}.hci-stats span{display:block;font-size:var(--f-subhead);line-height:1.45;color:var(--sub)}.hci-stats strong{display:block;font-size:var(--f-title3);line-height:1.4;margin-top:.5rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.hci-invite{display:flex;align-items:flex-start;gap:1rem;padding:1rem;margin-block:.75rem;border:1px solid var(--hair);border-radius:1rem;background:var(--off)}.hci-invite>div{min-width:0}.hci-invite strong,.hci-invite span,.hci-invite small{display:block;overflow-wrap:anywhere}.hci-invite strong,.hci-invite span{font-size:var(--f-subhead);line-height:1.45}.hci-invite small{font-size:var(--f-footnote);line-height:1.5;color:var(--sub);margin-top:.375rem}.hci-review{border-top:1px solid var(--hair);padding-block:1rem;margin-block:1rem}.hci-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hci-comparison>section{min-width:0;padding:1rem;border-radius:1rem;background:var(--fill)}.hci-comparison p{font-size:var(--f-subhead);line-height:1.5;margin:.75rem 0;overflow-wrap:anywhere}.hci-comparison p>span,.hci-comparison p>strong{display:block}.hci-comparison p>span{color:var(--sub)}.hci-impact{min-width:0;padding:1rem;border:1px solid var(--hair);border-radius:1rem;margin-block:1rem}.hci-impact>header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;font-size:var(--f-headline);line-height:1.45;margin-bottom:1rem}.hci-impact>header>span{font-size:var(--f-subhead);color:var(--sub)}.hci-names p{font-size:var(--f-subhead);line-height:1.45;padding:.75rem;border-bottom:1px solid var(--hair);overflow-wrap:anywhere}.hci :is(input,select,button,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hc-dialog:has([data-campaign-incentives]){width:min(68rem,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.hc-dialog[open]:has([data-campaign-incentives]){display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);overflow:hidden}.hc-dialog:has([data-campaign-incentives])>.hc-dialog-top{flex:none}.hc-dialog:has([data-campaign-incentives])>.hc-dialog-body{flex:1;min-height:0;min-width:0;overflow:auto}.hc-dialog:has([data-campaign-incentives]) .hci-header{display:none}/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.hc-dialog:has(...) .hc-header>div{min-width:0}`. Um `:has()` que termina numa etiqueta solta (div) fazia o navegador refazer o estilo de TODO div da tela a cada mexida, no sistema inteiro (docs/DESEMPENHO-2026-10-03.md). O diálogo agora avisa o cabeçalho por uma variável e os dois blocos do cabeçalho leem dela; fora deste diálogo vale `auto`, o valor de sempre. */.hc-dialog:has([data-campaign-incentives]) .hc-header{--hc-cabecalho-min:0}:where(.hc-dialog) .hc-header>div{min-width:var(--hc-cabecalho-min,auto)}.hc-dialog:has([data-campaign-incentives]) .hc-header h2{overflow-wrap:anywhere}@media(hover:hover){.hci-preset:not(:disabled):hover{transform:translateY(-2px)}}.hci-preset:not(:disabled):active{transform:scale(.99)}@media(max-width:600px){.hci-grid,.hci-presets,.hci-units,.hci-comparison,.hci-stats{grid-template-columns:minmax(0,1fr)}.hci-preset{flex-direction:row}.hci-preset>span:last-child{min-width:0}.hci-actions>*{flex:1 1 12rem}.hci-tabs button{flex:0 0 auto}.hci-impact,.hci-comparison>section{padding:.75rem}}@media(prefers-reduced-motion:reduce){.hci *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.hci-preset:hover,.hci-preset:active{transform:none}}
.hci-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;border:0;padding:0;margin:1rem 0;min-width:0}.hci-types legend{font-size:var(--f-headline);font-weight:600;line-height:1.45;padding:.5rem 0}.hci-type{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;min-width:44px;min-height:44px;padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);color:var(--text);cursor:pointer;transition:transform .18s ease}.hci-type>input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit;z-index:1}.hci-type>span{pointer-events:none;min-width:0}.hci-type strong{display:block;font-size:var(--f-headline);line-height:1.4;overflow-wrap:anywhere}.hci-type small{display:block;margin-top:.375rem;color:var(--sub);font-size:var(--f-footnote);line-height:1.5;overflow-wrap:anywhere}.hci-type:has(input:checked){border-color:var(--ink-green);box-shadow:inset 0 0 0 1px var(--ink-green);background:var(--fill)}.hci-type:has(input:focus-visible){outline:3px solid var(--foco-cor);outline-offset:3px}.hci-type:has(input:disabled){cursor:default}.hci-type-fields{min-width:0;margin-block:1rem}.hci-gift-product{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--fill);min-width:0}.hci-gift-product>img{width:5rem;height:5rem;object-fit:cover;border-radius:1rem;flex:none}.hci-gift-product>div{min-width:0}.hci-gift-product strong,.hci-gift-product span{display:block;font-size:var(--f-subhead);line-height:1.5;overflow-wrap:anywhere}.hci-gift-product small{display:block;font-size:var(--f-footnote);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}.hci-type-fields:has([data-ci-gift-item]) .hci-grid{align-items:start}@media(max-width:1000px){.hci-types{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.hci-types{grid-template-columns:repeat(2,minmax(0,1fr))}.hci-type{padding:.75rem;gap:.5rem}.hci-type small{display:none}.hci-gift-product{align-items:flex-start}.hci-gift-product>img{width:3.5rem;height:3.5rem}}@media(hover:hover){.hci-type:not(:has(input:disabled)):hover{transform:translateY(-2px)}}.hci-type:not(:has(input:disabled)):active{transform:scale(.99)}@media(prefers-reduced-motion:reduce){.hci-type,.hci-type:hover,.hci-type:active{transition:none;transform:none}}

/* /hub-network-catalog.css */
.hncat{font-size:var(--f-body);color:var(--text);min-width:0}.hncat *{box-sizing:border-box}.hncat [hidden]{display:none!important}.hncat-header,.hncat-editor-header{display:flex;align-items:center;gap:1rem;margin-block:1rem}.hncat-header>div,.hncat-editor-header>div{min-width:0}.hncat-header h3{font-size:var(--f-title3);margin:.25rem 0;overflow-wrap:anywhere}.hncat-editor-header{justify-content:space-between;flex-wrap:wrap}.hncat-editor-header h4,.hncat-review h4{font-size:var(--f-headline);margin:.5rem 0;overflow-wrap:anywhere}.hc-dialog .hncat-header{display:none}.hncat-symbol{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:1rem;background:var(--fill);color:var(--text)}.hncat-symbol svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hncat-eyebrow,.hncat-state{font-size:var(--f-footnote);color:var(--sub);line-height:1.45;overflow-wrap:anywhere}.hncat-note,.hncat-feedback,.hncat-alert{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}.hncat-alert{color:var(--ink-red)}.hncat-btn,.hncat-tabs button{min-height:44px;min-width:44px;max-width:100%;font-size:var(--f-subhead);font-weight:600;line-height:1.4;border:1px solid var(--hair);border-radius:.875rem;padding:.75rem 1rem;background:var(--off);color:var(--text);white-space:normal;cursor:pointer}.hncat-primary{border-color:var(--ink-green);background:var(--fill)}.hncat-btn:disabled,.hncat-preset:disabled{cursor:default;opacity:.65}.hncat-tabs{display:flex;gap:.5rem;border:1px solid var(--hair);border-radius:1rem;padding:.375rem;margin-block:1rem;background:var(--fill)}.hncat-tabs button{flex:1;border-color:transparent;background:transparent}.hncat-tabs button[aria-selected=true]{background:var(--off);border-color:var(--hair)}.hncat-field{display:grid;gap:.5rem;min-width:0;margin-block:.5rem;font-size:var(--f-subhead);font-weight:600;line-height:1.45}.hncat-field input,.hncat-field select,.hncat-field textarea,.hncat .hc-product-media input:not([type=file],[type=hidden]){width:100%;min-width:0;max-width:100%;min-height:44px;font:inherit;font-weight:400;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:.75rem;padding:.625rem}.hncat-field textarea{resize:vertical}.hncat-check{display:flex;align-items:center;gap:.75rem;min-height:44px;font-size:var(--f-subhead);line-height:1.45}.hncat-check input{width:1.25rem!important;height:1.25rem!important;min-height:0;accent-color:var(--on-green);flex:none}.hncat-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;min-width:0;border:0;margin:0 0 1rem;padding:0}.hncat-presets legend{font-size:var(--f-headline);font-weight:600;line-height:1.45;padding-block:.75rem;max-width:100%}.hncat-preset{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);color:var(--text);padding:1rem;text-align:left;min-width:44px;min-height:44px;cursor:pointer;transition:transform .18s ease}.hncat-preset[aria-pressed=true]{border-color:var(--ink-green);box-shadow:inset 0 0 0 1px var(--ink-green)}.hncat-preset strong{display:block;font-size:var(--f-headline);line-height:1.4}.hncat-preset small{display:block;font-size:var(--f-footnote);color:var(--sub);line-height:1.5;margin-top:.375rem}.hncat-reference{padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);margin-block:1rem}.hncat-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem}.hncat-card{border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);overflow:hidden;min-width:0}.hncat-photo{aspect-ratio:4/3;display:grid;place-items:center;background:var(--fill)}.hncat-photo img{width:100%;height:100%;object-fit:cover}.hncat-card-info{display:grid;gap:.5rem;padding:1rem}.hncat-card h4{font-size:var(--f-headline);margin:0;overflow-wrap:anywhere}.hncat-card-info>strong{font-size:var(--f-title3);font-variant-numeric:tabular-nums}.hncat-field-grid,.hncat-mappings,.hncat-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hncat-field-card,.hncat-mapping,.hncat-group{min-width:0;border:1px solid var(--hair);border-radius:1rem;padding:1rem;margin-block:.5rem;background:var(--off)}.hncat h5,.hncat h6,.hncat-group legend{font-size:var(--f-subhead);font-weight:600;margin:.25rem 0 .5rem;overflow-wrap:anywhere}.hncat-group legend{max-width:100%;padding-inline:.25rem}.hncat form>fieldset{border:0;padding:0;margin:0;min-width:0}.hncat-details{border-top:1px solid var(--hair);padding-block:.5rem;margin-block:.75rem;min-width:0}.hncat-details>summary,.hncat summary{min-height:44px;display:flex;align-items:center;font-size:var(--f-subhead);font-weight:600;line-height:1.45;padding-block:.75rem;cursor:pointer;white-space:normal}.hncat-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem}.hncat-option{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;border-top:1px solid var(--hair);padding-block:1rem;min-width:0}.hncat-review{border-top:1px solid var(--hair);padding-block:1rem}.hncat-review-group{padding-block:1rem}.hncat-impact{padding:1rem;border:1px solid var(--hair);border-radius:1rem;margin-block:.75rem;background:var(--off)}.hncat-impact>header{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;align-items:baseline}.hncat-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hncat-comparison>section{min-width:0;background:var(--fill);border-radius:.75rem;padding:.75rem}.hncat-comparison p{font-size:var(--f-subhead);line-height:1.5;overflow-wrap:anywhere}.hncat-comparison small{font-size:var(--f-footnote);color:var(--sub);line-height:1.45}.hncat .hc-product-media{min-width:0;padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;margin-block:1rem}.hncat .hc-product-media h4{font-size:var(--f-headline)}.hncat .hc-product-media label:not(.hc-media-upload){display:grid;gap:.5rem;font-size:var(--f-subhead);min-width:0}.hncat .hc-media-upload,.hncat button.btn{min-height:44px;white-space:normal;max-width:100%}.hncat .hc-media-upload{display:inline-flex;align-items:center}.hncat .hc-availability{min-width:0}.hncat :is(input,select,textarea,button,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}.hc-dialog:has([data-network-catalog]){width:min(72rem,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.hc-dialog[open]:has([data-network-catalog]){display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);overflow:hidden}.hc-dialog:has([data-network-catalog])>.hc-dialog-top{flex:none}.hc-dialog:has([data-network-catalog])>.hc-dialog-body{flex:1;min-height:0;overflow:auto;min-width:0}/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.hc-dialog:has(...) .hc-header>div{min-width:0}`. Um `:has()` que termina numa etiqueta solta (div) fazia o navegador refazer o estilo de TODO div da tela a cada mexida, no sistema inteiro (docs/DESEMPENHO-2026-10-03.md). O diálogo agora avisa o cabeçalho por uma variável e os dois blocos do cabeçalho leem dela; fora deste diálogo vale `auto`, o valor de sempre. */.hc-dialog:has([data-network-catalog]) .hc-header{--hc-cabecalho-min:0}:where(.hc-dialog) .hc-header>div{min-width:var(--hc-cabecalho-min,auto)}.hc-dialog:has([data-network-catalog]) .hc-header h2{overflow-wrap:anywhere}@media(hover:hover){.hncat-preset:hover{transform:translateY(-2px)}}.hncat-preset:active{transform:scale(.99)}@media(max-width:600px){.hncat-presets,.hncat-field-grid,.hncat-mappings,.hncat-fields,.hncat-option,.hncat-comparison{grid-template-columns:minmax(0,1fr)}.hncat-products{grid-template-columns:minmax(0,1fr)}.hncat-preset{flex-direction:row;align-items:flex-start}.hncat-preset>span:last-child{min-width:0}.hncat-actions>*{flex:1 1 12rem}.hncat-field-card,.hncat-mapping,.hncat-impact{padding:.75rem}.hncat-reference{padding:.75rem}.hncat-editor-header{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.hncat *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.hncat-preset:hover,.hncat-preset:active{transform:none}}
.hncat-products{grid-template-columns:minmax(0,1fr);gap:1.5rem}.hncat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem}.hncat-product{min-width:0;padding-block:1rem;border-top:1px solid var(--hair)}.hncat-product>header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.hncat-product>header>div{min-width:0}.hncat-product>header h4{font-size:var(--f-headline);line-height:1.45;margin:.25rem 0;overflow-wrap:anywhere}.hncat-product>header p{margin:.25rem 0}@media(max-width:600px){.hncat-cards{grid-template-columns:minmax(0,1fr)}.hncat-product>header{align-items:flex-start}}

/* /hub-campaign-audience.css */
.hcaudience{grid-column:1/-1;border:0;min-width:0;margin:6px 0;padding:0;display:grid;gap:12px}.hcaudience legend{font-weight:650;font-size:var(--f-headline,calc(1.0625rem * var(--dt,1)));padding:0;margin-bottom:8px}.hcaudience-help,.hcaudience-selection{font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.5;color:var(--sub);margin:0}.hcaudience-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hcaudience-choice{display:flex;align-items:flex-start;gap:10px;cursor:pointer;min-width:0;padding:16px;border:1px solid var(--hair);border-radius:18px;transition:border-color .18s,background .18s;min-height:80px;background:var(--bg)}.hcaudience-choice:has(:checked){background:var(--off);border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.hcaudience-choice>span:last-child{min-width:0}.hcaudience-choice strong{display:block;line-height:1.35;overflow-wrap:anywhere}.hcaudience-choice small{display:block;line-height:1.45;color:var(--sub);margin-top:6px;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)))}.hcaudience-choice input{width:18px;height:18px;flex:none;margin:3px 0 0;accent-color:var(--text)}.hcaudience-icon{font-size:1.5rem;line-height:1;flex:none}.hcaudience-legacy summary{cursor:pointer;min-height:44px;display:flex;align-items:center;line-height:1.45;font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)))}.hcaudience-legacy summary:before{content:'›';margin-right:10px;font-size:1.5rem;transition:transform .18s}.hcaudience-legacy[open] summary:before{transform:rotate(90deg)}.hcaudience-legacy .hcaudience-choice{margin:8px 0}.hcaudience input:focus-visible,.hcaudience summary:focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:3px}.hcaudience-options,.hcaudience-legacy,.hcaudience-selection{display:none}.hcaudience.is-enhanced .hcaudience-native{display:none}.hcaudience.is-enhanced .hcaudience-options{display:grid}.hcaudience.is-enhanced .hcaudience-legacy,.hcaudience.is-enhanced .hcaudience-selection{display:block}
@media(max-width:600px){.hcaudience-options{grid-template-columns:1fr}.hcaudience-choice{padding:14px;min-height:64px}}
@media(prefers-reduced-motion:reduce){.hcaudience *,.hcaudience *:before{transition:none!important}}

.hcaudience-icon svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.hc .hcaudience-legacy>summary{display:flex;gap:12px;align-items:center}.hc .hcaudience-legacy>summary:before{display:none}.hc .hcaudience-legacy>summary>span{min-width:0;flex:1}.hc .hcaudience-legacy>summary:after{margin-left:auto}

/* /hub-campaign-origin.css */
.hcgo{display:grid;gap:20px;min-width:0}.hcgo>header{display:flex;align-items:center;gap:14px}.hcgo h3,.hcgo h4{margin:0}.hcgo-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--off);font-size:calc(1.75rem * var(--dt,1));flex:none}.hcgo form{display:grid;gap:20px}.hcgo-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--hair);border-radius:20px;padding:18px;background:var(--off)}.hcgo small{display:block;color:var(--sub);font-size:var(--f-footnote,calc(.8125rem * var(--dt,1)));line-height:1.5}.hcgo-switch input{appearance:none;flex:none;width:52px;height:32px;border:2px solid var(--hair);border-radius:20px;background:var(--hair);position:relative;cursor:pointer;transition:background .2s,border-color .2s}.hcgo-switch input:before{content:"";position:absolute;width:24px;height:24px;top:2px;left:2px;border-radius:50%;background:var(--bg,#fff);box-shadow:0 1px 3px #0003;transition:transform .2s}.hcgo-switch input:checked{background:var(--green,#248344);border-color:var(--green,#248344)}.hcgo-switch input:checked:before{transform:translateX(20px)}.hcgo-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0;min-width:0}.hcgo-presets legend{margin-bottom:12px;font-weight:650}.hcgo-presets label{display:flex;gap:9px;padding:16px;border:1px solid var(--hair);border-radius:18px;min-height:90px;cursor:pointer;transition:background .2s,border-color .2s;min-width:0}.hcgo-presets label:has(:checked){background:var(--off);border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.hcgo-presets input{width:18px;height:18px;margin:3px 0;flex:none;accent-color:var(--text)}.hcgo .hc-field{min-width:0}.hcgo input[type=url]{width:100%;min-width:0}.hcgo-saved{font-size:var(--f-footnote);color:var(--sub);margin:0}.hcgo-link{padding:20px;border:1px solid var(--hair);border-radius:20px;display:grid;gap:12px}.hcgo-link [data-origin-link-result]:not(:empty){display:grid;gap:12px}.hcgo [data-origin-feedback]{min-height:1.5em;overflow-wrap:anywhere}.hcgo-open{display:inline-flex;align-items:center;gap:8px}.hcgo .btn{min-height:44px;white-space:normal;overflow-wrap:anywhere}.hcgo input:focus-visible,.hcgo button:focus-visible,.hcgo summary:focus-visible{outline:3px solid var(--foco-cor,var(--blue));outline-offset:3px}.hcgo details summary{min-height:44px;padding-block:12px;cursor:pointer}.hcgo .hc-actions{flex-wrap:wrap}.hcgo .hc-actions>*{max-width:100%}
@media(max-width:600px){.hcgo-presets{grid-template-columns:1fr}.hcgo-presets label{min-height:64px}.hcgo .hc-actions{display:grid;grid-template-columns:1fr}.hcgo-switch{padding:14px}.hcgo>header{align-items:flex-start}.hcgo h3{overflow-wrap:break-word}.hcgo-link{padding:14px}}
@media(prefers-reduced-motion:reduce){.hcgo *,.hcgo *:before{transition:none!important;animation:none!important}}

.hc-dialog:has([data-campaign-origin]){width:min(760px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.hc-dialog[open]:has([data-campaign-origin]){display:flex;flex-direction:column;max-height:calc(100dvh - 24px);overflow:hidden}.hc-dialog:has([data-campaign-origin])>.hc-dialog-top{flex:none}.hc-dialog:has([data-campaign-origin])>.hc-dialog-body{flex:1;min-height:0;overflow:auto;min-width:0}/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.hc-dialog:has(...) .hc-header>div{min-width:0}`. Um `:has()` que termina numa etiqueta solta (div) fazia o navegador refazer o estilo de TODO div da tela a cada mexida, no sistema inteiro (docs/DESEMPENHO-2026-10-03.md). O diálogo agora avisa o cabeçalho por uma variável e os dois blocos do cabeçalho leem dela; fora deste diálogo vale `auto`, o valor de sempre. */.hc-dialog:has([data-campaign-origin]) .hc-header{--hc-cabecalho-min:0}:where(.hc-dialog) .hc-header>div{min-width:var(--hc-cabecalho-min,auto)}.hc-dialog:has([data-campaign-origin]) .hc-header h2{overflow-wrap:anywhere}.hc-dialog:has([data-campaign-origin]) .hcgo>header h3{display:none}.hcgo>header>div{min-width:0}.hcgo .hc-eyebrow{overflow-wrap:anywhere}

/* /hub-commercial-offers.css */
.hco{font-size:var(--f-body);color:var(--text);min-width:0}.hco *{box-sizing:border-box}.hco [hidden]{display:none!important}.hco-header,.hco-product>header,.hco-editor-header{display:flex;align-items:center;gap:1rem;margin-block:1rem}.hco-editor-header{justify-content:space-between;flex-wrap:wrap}.hco-header h3,.hco-product h3{font-size:var(--f-title3);margin:.25rem 0}.hco-editor-header h4,.hco-review h4{font-size:var(--f-headline);margin:.5rem 0}.hvw-editor-body .hco-header{display:none}.hco-symbol{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex:none;border-radius:1rem;background:var(--fill);color:var(--text)}.hco-symbol svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:1.5rem;height:1.5rem}.hco-eyebrow,.hco-kind,.hco-state{font-size:var(--f-footnote);color:var(--sub);line-height:1.45}.hco-products{display:grid;gap:1.5rem}.hco-product{border-top:1px solid var(--hair);padding-block:1rem;min-width:0}.hco-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem;margin-block:1rem}.hco-card{border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);overflow:hidden;min-width:0}.hco-photo{aspect-ratio:4/3;background:var(--fill);display:grid;place-items:center}.hco-photo img{width:100%;height:100%;object-fit:cover}.hco-card-info{display:grid;gap:.5rem;padding:1rem}.hco-card h4{font-size:var(--f-headline);margin:0;overflow-wrap:anywhere}.hco-card-info>strong{font-size:var(--f-title3);font-variant-numeric:tabular-nums}.hco-note,.hco-feedback,.hco-alert{font-size:var(--f-subhead);line-height:1.5;color:var(--sub);overflow-wrap:anywhere}.hco-alert{color:var(--ink-red)}.hco-btn{min-height:44px;min-width:44px;max-width:100%;font-size:var(--f-subhead);font-weight:600;line-height:1.4;border:1px solid var(--hair);border-radius:.875rem;padding:.75rem 1rem;background:var(--off);color:var(--text);white-space:normal;cursor:pointer}.hco-primary{border-color:var(--ink-green);background:var(--fill)}.hco-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.hco-field{display:grid;gap:.5rem;font-size:var(--f-subhead);font-weight:600;min-width:0;margin-block:.5rem}.hco-field input,.hco-field select,.hco-field textarea{width:100%;min-width:0;min-height:44px;font:inherit;font-weight:400;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:.75rem;padding:.625rem}.hco-field textarea{resize:vertical}.hco [data-co-fields],.hco-presets{border:0;padding:0;margin:0;min-width:0}.hco-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-block:1rem}.hco-presets legend{font-size:var(--f-headline);font-weight:600;padding-block:.75rem}.hco-preset{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--hair);border-radius:1.25rem;background:var(--off);color:var(--text);padding:1rem;text-align:left;cursor:pointer;min-width:44px;min-height:44px;transition:transform .18s ease}.hco-preset strong{font-size:var(--f-headline);display:block;line-height:1.4}.hco-preset small{display:block;font-size:var(--f-footnote);color:var(--sub);line-height:1.5;margin-top:.375rem}.hco-switches{display:grid;gap:.5rem;margin-block:1rem}.hco-check{display:flex;align-items:center;gap:.75rem;min-height:44px;font-size:var(--f-subhead);line-height:1.4}.hco-check input{width:1.25rem!important;height:1.25rem!important;min-height:0;accent-color:var(--on-green);flex:none}.hco .hco-details>summary{display:flex;align-items:center;min-height:44px;font-size:var(--f-subhead);font-weight:600;padding-block:.75rem;flex-direction:row;cursor:pointer}.hco-details{border-top:1px solid var(--hair);padding-block:.5rem;margin-block:.75rem}.hco-group{border:1px solid var(--hair);border-radius:1rem;margin-block:.75rem;padding:1rem;min-width:0}.hco-group legend{font-size:var(--f-subhead);font-weight:600;overflow-wrap:anywhere}.hco-option{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;border-top:1px solid var(--hair);padding-block:1rem;min-width:0}.hco-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-block:1rem}.hco-review{border-top:1px solid var(--hair);padding-top:1rem}.hco-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hco-comparison>section{border:1px solid var(--hair);border-radius:1.25rem;padding:1rem;background:var(--off);min-width:0}.hco-review h5,.hco-review strong{font-size:var(--f-subhead);overflow-wrap:anywhere;margin:.25rem 0 .75rem}.hco-review p{font-size:var(--f-subhead);line-height:1.5;overflow-wrap:anywhere}.hco-review small{font-size:var(--f-footnote);color:var(--sub);line-height:1.5}.hco-compare-photo{width:100%;aspect-ratio:4/3;background:var(--fill);display:grid;place-items:center;border-radius:.875rem;overflow:hidden;margin-block:.75rem}.hco-compare-photo img{width:100%;height:100%;object-fit:cover}.hco .hc-product-media{padding:1rem;border:1px solid var(--hair);border-radius:1.25rem;margin-block:1rem}.hco .hc-media-upload{min-height:44px;display:inline-flex;align-items:center;white-space:normal}.hco .hc-product-media h4{font-size:var(--f-headline)}.hco .hc-availability{min-width:0}.hco :is(input,select,textarea,button,summary):focus-visible{outline:3px solid var(--foco-cor);outline-offset:3px}@media(hover:hover){.hco-preset:hover{transform:translateY(-2px)}}.hco-preset:active{transform:scale(.99)}@media(max-width:600px){.hco-presets,.hco-fields,.hco-option,.hco-comparison{grid-template-columns:minmax(0,1fr)}.hco-cards{grid-template-columns:minmax(0,1fr)}.hco-actions>*{flex:1 1 12rem}.hco-group{padding:.75rem}.hco-product>header{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.hco *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.hco-preset:hover,.hco-preset:active{transform:none}}

.hco-header>div,.hco-product>header>div,.hco-editor-header>div{min-width:0}.hco-eyebrow{overflow-wrap:anywhere}.hco .hc-product-media label{min-width:0;max-width:100%}.hco .hc-product-media label:not(.hc-media-upload){display:grid;gap:.5rem;font-size:var(--f-subhead)}.hco .hc-product-media input:not([type=file],[type=hidden]){width:100%;min-width:0;max-width:100%;min-height:44px;font:inherit;color:var(--text);background:var(--off);border:1px solid var(--hair);border-radius:.75rem;padding:.625rem}.hco legend{max-width:100%;white-space:normal;overflow-wrap:anywhere}

.hco-header h3{overflow-wrap:anywhere}.hc-dialog:has([data-commercial-offers]){width:min(72rem,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.hc-dialog[open]:has([data-commercial-offers]){display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);overflow:hidden}.hc-dialog:has([data-commercial-offers])>.hc-dialog-top{flex:none}.hc-dialog:has([data-commercial-offers])>.hc-dialog-body{flex:1;min-height:0;overflow:auto;min-width:0}/* 1.74.0 (Philippe, 03/10/2026, desempenho): era `.hc-dialog:has(...) .hc-header>div{min-width:0}`. Um `:has()` que termina numa etiqueta solta (div) fazia o navegador refazer o estilo de TODO div da tela a cada mexida, no sistema inteiro (docs/DESEMPENHO-2026-10-03.md). O diálogo agora avisa o cabeçalho por uma variável e os dois blocos do cabeçalho leem dela; fora deste diálogo vale `auto`, o valor de sempre. */.hc-dialog:has([data-commercial-offers]) .hc-header{--hc-cabecalho-min:0}:where(.hc-dialog) .hc-header>div{min-width:var(--hc-cabecalho-min,auto)}.hc-dialog:has([data-commercial-offers]) .hc-header h2{overflow-wrap:anywhere}.hc-dialog .hco-header{display:none}

.hco button.btn,.hco summary{min-height:44px;max-width:100%;white-space:normal}.hco summary{font-size:var(--f-subhead);line-height:1.45}

/* /hub-contact-policy-bulk.css */
/* Contatos em lote: composição com os tokens do Hub, incluindo texto ampliado. */
.hc-dialog.hcp-dialog{box-sizing:border-box;padding:0;max-width:min(62rem,calc(100vw - 2rem));width:62rem;max-height:calc(100dvh - 2rem);overflow:hidden;border:1px solid var(--hair);border-radius:1.4rem;background:var(--bg);color:var(--text)}
.hc-dialog.hcp-dialog[open]{display:flex;flex-direction:column;gap:0}
.hcp-dialog>.hcp-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--hair);flex:0 0 auto}
.hc.hcp-dialog>.hcp-header>.btn{min-width:44px;min-height:44px;white-space:normal}
.hc.hcp-dialog>.hcp-header h2{font-size:max(.6875rem,calc(1.15rem * var(--dt,1)));margin:0;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.hcp-dialog .hcp-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:1rem 1.25rem;scrollbar-gutter:stable}
.hcp-dialog .hcp-tabs,.hcpb .hcpb-tabs{display:flex;gap:.35rem;background:var(--fill);padding:.3rem;border-radius:1rem;flex-wrap:wrap;margin:.8rem 0}
.hcp-dialog .hcp-tabs [role=tab],.hcpb .hcpb-tabs button{font:inherit;font-size:max(.6875rem,calc(.85rem * var(--dt,1)));color:var(--text);background:transparent;border:1px solid transparent;border-radius:.75rem;padding:.55rem .85rem;min-height:44px;min-width:44px;flex:1;cursor:pointer}
.hcp-dialog .hcp-tabs [aria-selected=true],.hcpb .hcpb-tabs [aria-pressed=true]{background:var(--bg);border-color:var(--hair);box-shadow:0 2px 5px rgb(0 0 0 / .06);font-weight:650}
.hcp-dialog [hidden],.hcpb [hidden]{display:none!important}
.hcpb{color:var(--text);font-size:max(.6875rem,calc(.9rem * var(--dt,1)));line-height:1.45;min-width:0}
.hcpb h3,.hcpb h4{font-size:max(.6875rem,calc(1rem * var(--dt,1)));line-height:1.3;margin:.2rem 0 .55rem}
.hcpb .hcpb-note{color:color-mix(in srgb,var(--text) 82%,var(--bg));font-size:max(.6875rem,calc(.85rem * var(--dt,1)));line-height:1.5;margin:.55rem 0 .85rem;overflow-wrap:anywhere}
.hcpb .hcpb-intro{display:flex;align-items:flex-start;gap:.85rem}
.hcpb .hcpb-icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:.85rem;background:var(--fill);color:var(--ink-green)}
.hcpb .hcpb-icon svg{width:1.3rem;height:1.3rem}
.hcpb .hcpb-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.8rem;align-items:end;margin:1rem 0}
.hcpb .hc-field{display:grid;gap:.4rem;min-width:0;color:var(--text);font-size:max(.6875rem,calc(.85rem * var(--dt,1)))}
.hcpb input:not([type=checkbox]),.hcpb select,.hcpb textarea{box-sizing:border-box;min-width:0;max-width:100%;width:100%;min-height:44px;font:inherit;font-size:max(.6875rem,calc(.9rem * var(--dt,1)));line-height:1.4;padding:.6rem .7rem;border:1px solid var(--hair);background:var(--bg);color:var(--text);border-radius:.75rem}
.hcpb textarea{resize:vertical}
.hc .hcpb .btn{min-width:44px;min-height:44px;white-space:normal;font-size:max(.6875rem,calc(.85rem * var(--dt,1)));line-height:1.4;overflow-wrap:anywhere}
.hcpb .hcpb-actions,.hcpb .hcpb-scope,.hcpb .hcpb-selection-head{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin:.8rem 0}
.hcpb .hcpb-selection-head{justify-content:space-between}
.hcpb .hcpb-scope .btn[aria-pressed=true]{border-color:var(--ink-green);background:var(--fill);color:var(--text);font-weight:650}
.hcpb .hcpb-unit-choices{display:flex;flex-wrap:wrap;gap:.6rem;border:0;margin:1rem 0;padding:0}
.hcpb .hcpb-unit-choices legend,.hcpb .hcpb-settings legend{font-size:max(.6875rem,calc(.85rem * var(--dt,1)));font-weight:650;margin-bottom:.55rem}
.hcpb .hcpb-unit-choices label{display:flex;gap:.6rem;align-items:center;min-height:44px;padding:.3rem .75rem;border:1px solid var(--hair);border-radius:.8rem;background:var(--bg)}
.hcpb input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--ink-green);flex:0 0 auto;cursor:pointer}
.hcpb .hcpb-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.hcpb .hcpb-contact{display:flex;align-items:center;gap:.65rem;min-height:64px;min-width:0;padding:.8rem;border-radius:1rem;border:1px solid var(--hair);background:var(--bg);cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.hcpb .hcpb-contact:has(input:checked){border-color:var(--ink-green);background:var(--fill)}
.hcpb .hcpb-contact:has(input:focus-visible){outline:3px solid var(--ink-green);outline-offset:2px}
.hcpb .hcpb-contact>span:last-child{display:grid;gap:.25rem;min-width:0;overflow-wrap:anywhere}
.hcpb .hcpb-contact small,.hcpb .hcpb-group small{font-size:max(.6875rem,calc(.85rem * var(--dt,1)));color:color-mix(in srgb,var(--text) 82%,var(--bg));line-height:1.45}
.hcpb .hcpb-pagination{justify-content:space-between}
.hcpb .hcpb-pagination>span{font-size:max(.6875rem,calc(.85rem * var(--dt,1)));color:color-mix(in srgb,var(--text) 82%,var(--bg))}
.hcpb details>summary{min-height:44px;box-sizing:border-box;padding:.65rem .2rem;cursor:pointer;font-size:max(.6875rem,calc(.85rem * var(--dt,1)));overflow-wrap:anywhere}
.hcpb .hcpb-selected{margin:1rem 0}
.hcpb .hcpb-selected ul,.hcpb .hcpb-review-list{list-style:none;padding:0;margin:.7rem 0;display:grid;gap:.6rem}
.hcpb .hcpb-selected li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.55rem .7rem;border:1px solid var(--hair);border-radius:.8rem;overflow-wrap:anywhere}
.hcpb .hcpb-selected li span{color:color-mix(in srgb,var(--text) 82%,var(--bg));font-size:max(.6875rem,calc(.85rem * var(--dt,1)))}
.hcpb .hcpb-selected li button{margin-left:auto}
.hcpb .hcpb-settings{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--hair);border-radius:1rem;min-width:0;margin:1rem 0}
.hcpb .hcpb-review,.hcpb .hcpb-pending{border:1px solid var(--hair);border-radius:1.1rem;padding:1rem;background:var(--fill);margin:1rem 0;overflow-wrap:anywhere}
.hcpb .hcpb-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:.85rem 0}
.hcpb .hcpb-stats span{display:grid;gap:.3rem;font-size:max(.6875rem,calc(.85rem * var(--dt,1)));color:color-mix(in srgb,var(--text) 82%,var(--bg))}
.hcpb .hcpb-stats strong{font-size:max(.6875rem,calc(1.2rem * var(--dt,1)));color:var(--text)}
.hcpb .hcpb-review-list li{display:grid;gap:.3rem;padding:.7rem .2rem;border-bottom:1px solid var(--hair)}
.hcpb .hcpb-review-list li span{color:color-mix(in srgb,var(--text) 82%,var(--bg));font-size:max(.6875rem,calc(.85rem * var(--dt,1)))}
.hcpb .hcpb-feedback{font-size:max(.6875rem,calc(.85rem * var(--dt,1)));color:var(--text);line-height:1.5;overflow-wrap:anywhere;min-height:1.4em}
.hcpb .hcpb-group{margin:1rem 0;border:1px solid var(--hair);border-radius:1rem;padding:.65rem .85rem;background:var(--bg)}
.hcpb .hcpb-group summary{display:flex;align-items:center;gap:.75rem}
.hcpb .hcpb-group summary>span:last-child{display:grid;gap:.3rem;min-width:0}
.hcpb .hcpb-member{padding:1rem 0;border-top:1px solid var(--hair)}
.hcpb .hcpb-member>div{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.hcpb .hcpb-badge{border:1px solid var(--hair);border-radius:2rem;background:var(--fill);color:var(--text);font-size:max(.6875rem,calc(.85rem * var(--dt,1)));padding:.25rem .6rem}
@media(hover:hover){.hcpb .hcpb-contact:hover{background:var(--fill)}.hcpb .hcpb-contact:active{transform:scale(.995)}}
@media(max-width:600px){.hc-dialog.hcp-dialog{max-width:100vw;width:100%;max-height:100dvh;align-self:flex-end;margin:auto 0 0;border-radius:1.2rem 1.2rem 0 0}.hcp-dialog>.hcp-header{padding:.85rem 1rem;align-items:flex-start}.hcp-dialog .hcp-scroll{padding:.75rem 1rem;scrollbar-gutter:auto}.hcpb .hcpb-search,.hcpb .hcpb-contacts{grid-template-columns:minmax(0,1fr)}.hcpb .hcpb-search button{justify-self:start}.hcpb .hcpb-contact .hcpb-icon{width:2.1rem;height:2.1rem}.hcpb .hcpb-stats{grid-template-columns:minmax(0,1fr)}.hcpb .hcpb-stats span{display:flex;align-items:baseline;gap:.5rem}.hcpb .hcpb-actions .btn{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.hcpb .hcpb-contact{transition:none;transform:none!important}}

/* /hub-fleet-compensation.css */
.hfp-policy{display:grid;gap:20px}.hfp-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;margin:0;padding:0;border:0}.hfp-modes legend{font-weight:700;margin-bottom:12px}.hfp-mode{position:relative;display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--separator, #d8d8dd);border-radius:20px;background:var(--surface,#f5f5f7);cursor:pointer;min-height:80px;transition:background .2s,border-color .2s,transform .2s}.hfp-mode:has(:checked){border-color:var(--ink-green,#247246);background:color-mix(in srgb,var(--ink-green,#247246) 9%,var(--surface,#fff))}.hfp-mode:hover{transform:translateY(-1px)}.hfp-mode input{width:20px;min-width:20px;height:20px;accent-color:var(--ink-green,#247246)}.hfp-mode strong,.hfp-mode small{display:block}.hfp-mode small{color:var(--label2,#636366);margin-top:4px;font-size:var(--f-footnote);line-height:1.4}.hfp-icon{display:grid;place-items:center;width:34px;height:34px;flex:none}.hfp-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hfp-policy .hc-grid{align-items:start}.hfp-range{border:1px solid var(--separator,#ddd);border-radius:18px;padding:16px;margin:12px 0}.hfp-callout{padding:18px;border-radius:18px;background:color-mix(in srgb,var(--ink-green,#247246) 9%,var(--surface,#fff));line-height:1.55}.hfp-policy input,.hfp-policy select,.hfp-policy button{min-height:44px;max-width:100%;box-sizing:border-box}.hfp-policy :focus-visible{outline:3px solid var(--sys-blue,#007aff);outline-offset:3px}.hfp-policy .hc-field{min-width:0}.hfp-policy{color:var(--label,#1d1d1f)}body.dark .hfp-mode{background:var(--surface,#242426);border-color:var(--separator,#545458)}body.dark .hfp-mode:has(:checked){background:color-mix(in srgb,var(--ink-green,#54b777) 18%,#242426)}body.dark .hfp-mode small{color:var(--label2,#b4b4bb)}@media(max-width:540px){.hfp-policy .hc-grid{grid-template-columns:1fr}.hfp-mode{padding:14px;border-radius:18px}.hfp-icon{width:28px}}@media(prefers-reduced-motion:reduce){.hfp-mode{transition:none}.hfp-mode:hover{transform:none}}
.hfn-dialog{box-sizing:border-box;width:min(920px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--separator,#ddd);border-radius:28px;background:var(--surface,#fafafa);color:var(--label,#1d1d1f);box-shadow:0 24px 90px #0003;overflow:hidden}.hfn-dialog::backdrop{background:#14151c70;backdrop-filter:blur(8px)}.hfn-dialog[open]{display:flex;flex-direction:column;animation:hfn-in .22s ease-out}.hfn-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border-bottom:1px solid var(--separator,#ddd);flex:none}.hfn-top h2{font-size:var(--f-title2);line-height:1.2;margin:4px 0;overflow-wrap:anywhere}.hfn-top p{margin:0}.hfn-body{padding:24px 26px;overflow:auto;overscroll-behavior:contain;min-height:0}.hfn-body [data-fn-form]{display:grid;gap:22px}.hfn-body [data-fn-fields]{display:grid;gap:24px;border:0;margin:0;padding:0;min-width:0}.hfn-body .hc-field{display:grid;gap:8px;min-width:0}.hfn-body select,.hfn-body input{width:100%;box-sizing:border-box;min-height:44px;max-width:100%}.hfn-body .hfp-mode input{width:20px}.hfn-body [hidden]{display:none!important}.hfn-tabs{display:flex;gap:6px;background:var(--fill3,#e9e9ed);border-radius:16px;padding:5px;margin-bottom:24px}.hfn-tabs button{flex:1}.hfn-tabs [aria-pressed=true]{background:var(--surface,#fff);box-shadow:0 1px 5px #0002}.hfn-body button,.hfn-top button,.hfn-body summary{min-height:44px;white-space:normal;max-width:100%;box-sizing:border-box}.hfn-body .hc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hfn-block,.hfn-unit,.hfn-review article,.hfn-resolutions article{padding:18px;border:1px solid var(--separator,#ddd);border-radius:20px;background:var(--surface,#fff);min-width:0}.hfn-resolutions{border:0;padding:0;margin:0;display:grid;gap:14px}.hfn-resolutions legend{font-weight:700;padding:0;margin-bottom:14px}.hfn-resolutions article{display:grid;gap:14px}.hfn-body h4{margin:0 0 8px}.hfn-body p{overflow-wrap:anywhere}.hfn-block fieldset{border:0;margin:16px 0 0;padding:0;min-width:0}.hfn-review{margin:22px 0;display:grid;gap:14px}.hfn-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hfn-compare small,.hfn-unit span,.hfn-unit small{display:block;color:var(--label2,#636366);margin:6px 0}.hfn-compare p{margin:10px 0}.hfn-badge{display:inline-flex;padding:5px 10px;border-radius:12px;background:var(--fill3,#f0f0f4);font-size:var(--f-footnote)}.hfn-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}.hfn-saved{margin-top:22px}.hfn-saved summary{cursor:pointer;padding:12px 0}.hfn-body [data-fn-status]{min-height:24px;line-height:1.5;margin-bottom:0}.hfn-dialog :focus-visible{outline:3px solid var(--sys-blue,#007aff);outline-offset:3px}.hfn-dialog :disabled{cursor:not-allowed}.hfn-dialog .btn{padding:12px 18px;border-radius:14px}.hfn-dialog .primary{background:var(--on-blue,#0062B8);color:#fff}.hfn-dialog button{cursor:pointer}body.dark .hfn-dialog{background:var(--surface,#1c1c1e);color:var(--label,#f5f5f7)}body.dark .hfn-block,body.dark .hfn-unit,body.dark .hfn-review article,body.dark .hfn-resolutions article{background:var(--surface,#242426);border-color:var(--separator,#545458)}@media(max-width:540px){.hfn-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:24px}.hfn-top{padding:18px 16px}.hfn-body{padding:20px 16px}.hfn-body .hc-grid,.hfn-compare{grid-template-columns:1fr}.hfn-top h2{font-size:var(--f-title3)}.hfn-tabs{flex-wrap:wrap}.hfn-block,.hfn-unit,.hfn-review article,.hfn-resolutions article{padding:14px}}@keyframes hfn-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hfn-dialog[open]{animation:none}}

@media(prefers-contrast:more){.hfp-mode,.hfn-block,.hfn-unit,.hfn-review article,.hfn-resolutions article{border-color:var(--label)}}
@media(prefers-reduced-transparency:reduce){.hfn-dialog::backdrop{backdrop-filter:none;background:#14151cb8}}

/* /hub-kds-configuration.css */
.kc-dialog{width:min(44rem,calc(100vw - 1.5rem));max-height:calc(100dvh - 1.5rem);overflow:auto;box-sizing:border-box;border:1px solid #bbb;border-radius:20px;padding:20px;background:#fff;color:#202020}.kc-dialog::backdrop{background:#0008}.kc-dialog header,.kc-tabs,.kc-actions,.kc-pair{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.kc-dialog header{justify-content:space-between}.kc-dialog h2{margin:0}.kc-dialog label{display:grid;gap:6px;margin:12px 0}.kc-dialog input,.kc-dialog select{font:inherit;min-height:44px;max-width:100%;box-sizing:border-box;padding:8px;border:1px solid #888;border-radius:8px}.kc-dialog .btn{min-height:44px;font:inherit;padding:10px 14px;white-space:normal;cursor:pointer;border-radius:10px}.kc-dialog fieldset{border:1px solid #bbb;border-radius:10px}.kc-dialog input[type=checkbox]{min-width:22px}.kc-dialog [data-kc-feedback]{overflow-wrap:anywhere}.kc-dialog :focus-visible{outline:3px solid #007aff;outline-offset:3px}body.dark .kc-dialog{background:#1d1d1f;color:#f5f5f7}body.dark .kc-dialog input,body.dark .kc-dialog select{background:#29292b;color:#fff;border-color:#777}@media(max-width:420px){.kc-dialog{padding:14px}.kc-pair{display:block}.kc-dialog header h2{font-size:1.2em}.kc-dialog select{width:100%}}@media(prefers-reduced-motion:reduce){.kc-dialog *{scroll-behavior:auto!important;transition:none!important}}
.kc-dialog label{min-width:0}.kc-pair>label{flex:1 1 14rem}.kc-dialog [data-kc-body]{min-width:0}.kc-dialog .kc-tabs>label{max-width:100%}

/* /interface-1740.css */
/* 1.74.0 (Philippe, 03/10/2026): acabamento da auditoria de interface de 03/10 (o dono é leigo em computação: "checar
   posicionamento, alinhamento e distância de cada botão"). Uma folha só para os consertos pequenos e seguros que a medição
   apontou, tela por tela, para a junção dos ramos ter um lugar só para olhar. Cada bloco diz o defeito (D01 a D33 do
   relatório AUDITORIA-UI-2026-10-03) e o porquê. Tipografia sempre relativa (rem com --dt), alvo de toque de 44 px. */

/* ---------- D01: o cartão de reserva de um pedido que chegou torto (web/pedido-inteiro.js) ---------- */
.pedido-torto{border:1px dashed var(--hair,rgba(58,42,30,.24));cursor:default}
.pedido-torto-n{font-weight:700;font-size:calc(.9375rem * var(--dt,1));overflow-wrap:anywhere}
.pedido-torto-t{margin-top:.25rem;color:var(--label2,#5d4f44);font-size:calc(.8125rem * var(--dt,1));line-height:1.35}

/* ---------- D13: alvos de toque do Dashboard e dos Relatórios no celular ----------
   Medido em 03/10 (390x844): pontos do carrossel com 28x28 (18 no Dashboard, 5 nos Relatórios), atalhos de loja, período e
   filtros com 36 px de altura, linhas do "Histórico de avisos" com 19 px e o campo de busca do relatório com 34 px. No
   dedo, tudo passa a ter 44 px de área; o desenho do ponto continua pequeno (só a área cresce). No computador (html.hub-clique)
   nada muda, fora a linha do histórico, que sobe para 28 px. O ponto atual fica à vista porque web/interface-1740.js rola a
   fileira até ele. */
html.hub-toque #ges .ddots button,html.hub-toque .rel .rel-pontos button{min-width:2.75rem;min-height:2.75rem;padding:.5rem .3125rem}
html.hub-toque #ges .ddots,html.hub-toque .rel .rel-pontos{scroll-padding:0 1rem;-webkit-overflow-scrolling:touch}
html.hub-toque #ges .dchips button,html.hub-toque .rel .rel-chips button{min-height:2.75rem}
html.hub-toque .rel .rel-busca input{min-height:2.75rem}
html.hub-toque .rel .rel-busca-lupa{height:2.75rem}
.nt2 summary{min-height:1.75rem}
html.hub-toque .nt2 summary{min-height:2.75rem}

/* ---------- D29: outros alvos pequenos (Avaliações e Coleta externa) ---------- */
html.hub-toque .lnk{min-height:2.75rem;display:inline-flex;align-items:center}
html.hub-toque .hc-l2 a{display:inline-block;padding:.8125rem 0;min-height:2.75rem;box-sizing:border-box}
html.hub-clique .hc-l2 a{display:inline-block;padding:.3125rem 0;min-height:1.75rem;box-sizing:border-box}
/* os dois que sobraram no Dashboard do celular: "Abrir iFood Analytics" (36 px de altura) e os botões "Dia / Semana / Mês"
   dos itens mais vendidos (36 e 41 px de largura) */
html.hub-toque #ges .dcard .dt .btn{min-height:2.75rem}
html.hub-toque #ges .subseg.small button{min-width:2.75rem;min-height:2.75rem}

/* ---------- D12: Configurações > Programa da loja ----------
   O comando com o endereço do canal estourava o cartão no celular e era cortado na borda (450 px numa tela de 390, sem
   rolagem). Todo <code> das notas quebra a linha; cada comando ganha o botão Copiar; o que é de terminal fica fechado atrás
   de "Para o técnico" e o dono vê os passos numerados. */
.settings-note code,.settings-facts code{overflow-wrap:anywhere;word-break:break-word}
.settings-cmd{display:flex;align-items:flex-start;gap:.5rem;margin:.375rem 0;padding:.5rem .625rem;border-radius:.75rem;background:var(--fill,rgba(90,65,45,.08));max-width:100%;box-sizing:border-box}
.settings-cmd code{flex:1 1 auto;min-width:0;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.45;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;-webkit-user-select:all;user-select:all}
.settings-copiar{flex:none;min-height:2.75rem;min-width:4.5rem;padding:.25rem .75rem;border:0;border-radius:.625rem;background:var(--surface,#fff);color:var(--ink-blue,#0a4fae);font:inherit;font-size:calc(.8125rem * var(--dt,1));font-weight:650;cursor:pointer;box-shadow:0 1px 3px rgba(60,40,20,.12);transition:transform .1s ease-out,background-color .2s ease-out,color .2s ease-out}
html.hub-clique .settings-copiar{min-height:1.75rem}
.settings-copiar:active{transform:scale(.97)}
.settings-copiar.feito{background:color-mix(in srgb,var(--sys-green,#34c759) 18%,var(--surface,#fff));color:var(--ink-green,#1f6b33)}
.settings-copiar:focus-visible{outline:.1875rem solid var(--ink-blue,#0a4fae);outline-offset:.125rem}
.settings-tecnico{margin:.875rem 0 0;border-top:1px solid var(--hair,rgba(74,55,39,.12))}
.settings-tecnico>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.75rem;cursor:pointer;list-style:none;font-size:calc(.875rem * var(--dt,1));font-weight:650;color:var(--label2,#5d4f44)}
.settings-tecnico>summary::-webkit-details-marker{display:none}
.settings-tecnico>summary::after{content:"";flex:none;width:.5rem;height:.5rem;margin-right:.25rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease-out}
.settings-tecnico[open]>summary::after{transform:rotate(-135deg)}
.settings-tecnico>summary:focus-visible{outline:.1875rem solid var(--ink-blue,#0a4fae);outline-offset:.125rem;border-radius:.5rem}
.settings-tecnico-corpo>.settings-note:first-child{margin-top:.25rem}
.settings-passos{margin:.875rem 0;padding:0 0 0 1.375rem;display:grid;gap:.5rem;font-size:calc(.9375rem * var(--dt,1));line-height:1.45;color:var(--label,#3a2a1e)}
.settings-passos li::marker{font-weight:700;color:var(--label2,#5d4f44)}
body.dark .settings-copiar{background:var(--fill2,rgba(255,255,255,.12))}
@media (prefers-reduced-motion:reduce){.settings-copiar,.settings-tecnico>summary::after{transition:none}}

/* ---------- D11: Configurações > Tempos da cozinha ----------
   O resumo por loja (laranja e vermelho com a bolinha da cor), os dois botões de entrada e o quadro com a cara dos outros
   quadros do Hub: botão principal azul, abas com a escolhida marcada, campos do sistema. O protocolo (prévia, PIN, recibo)
   continua em web/hub-kds-configuration.js. */
.kc-resumo{list-style:none;margin:.75rem 0;padding:0;display:grid;gap:.5rem}
.kc-resumo li{display:grid;gap:.125rem;padding:.75rem .875rem;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08))}
.kc-resumo li b{font-size:calc(1rem * var(--dt,1))}
.kc-resumo li span{font-size:calc(.9375rem * var(--dt,1));line-height:1.4}
.kc-resumo li small{font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));color:var(--label2,#6b5a4c)}
.kc-cor{display:inline-block;width:.625rem;height:.625rem;border-radius:50%;margin:0 .25rem 0 .125rem;vertical-align:baseline}
.kc-cor.kc-laranja{background:var(--sys-orange,#ff8d28)}
.kc-cor.kc-vermelho{background:var(--sys-red,#ff383c)}
.kc-entradas{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:.875rem}
.kc-entradas .btn{min-height:2.75rem;flex:1 1 12rem}
.kc-dialog{border:1px solid var(--hair,rgba(58,42,30,.14));border-radius:1.25rem;background:var(--surface,#fff);color:var(--label,#3a2a1e);box-shadow:0 1.5rem 4rem rgba(40,25,10,.28)}
.kc-dialog::backdrop{background:rgba(30,22,16,.5)}
.kc-dialog header h2{font-size:calc(1.375rem * var(--dt,1));letter-spacing:-.01em}
.kc-dialog label{font-size:calc(.9375rem * var(--dt,1));font-weight:600}
.kc-dialog input,.kc-dialog select{font-size:calc(1.0625rem * var(--dt,1));font-weight:400;border:1px solid var(--hair,rgba(58,42,30,.24));border-radius:.75rem;background:var(--surface,#fff);color:inherit;padding:.5rem .75rem}
.kc-dialog .kc-tabs{gap:.25rem;padding:.25rem;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08));width:fit-content;max-width:100%}
.kc-dialog .kc-tabs>.btn{border:0;background:transparent;font-weight:600;border-radius:.625rem}
.kc-dialog .kc-tabs>.btn.on{background:var(--surface,#fff);box-shadow:0 1px 4px rgba(60,40,20,.16)}
.kc-dialog .kc-tabs>label{margin:0 0 0 .5rem}
.kc-dialog .btn.primary{width:100%;margin-top:.5rem}
.kc-dialog [data-kc-review] h3{font-size:calc(1.0625rem * var(--dt,1));margin:1rem 0 .25rem}
.kc-dialog [data-kc-feedback]:empty{display:none}
.kc-dialog .kc-actions{margin-top:.75rem}
body.dark .kc-dialog{background:var(--surface2,#1d1d1f);color:var(--label,#f5f5f7)}

/* ---------- D10 e D11: o menu principal acha o que a pessoa quer FAZER ----------
   "Criar pedido" entra no menu como o primeiro botão, com nome (antes só existia dentro de Canal próprio e como um "+" sem
   nome na Expedição). A busca mostra os atalhos (web/hub-navigation.js) acima dos grupos de telas. */
#menudd .ddnovo{display:flex;align-items:center;justify-content:center;gap:.5rem;width:calc(100% - 1.25rem);min-height:2.75rem;margin:.125rem .625rem .625rem;padding:.5rem .875rem;border:0;border-radius:.875rem;background:var(--on-blue,#0062b8);color:#fff;font:inherit;font-size:calc(.9375rem * var(--dt,1));font-weight:650;cursor:pointer;transition:transform .1s ease-out,filter .15s ease-out}
html #menudd>button.ddnovo>svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;flex:none;color:#fff}
#menudd .ddnovo:active{transform:scale(.97)}
#menudd .ddnovo:focus-visible{outline:.1875rem solid var(--blue,#0088ff);outline-offset:.125rem}
html.hub-clique #menudd .ddnovo:hover{filter:brightness(1.08)}
.hub-nav-atalhos{display:grid;gap:.25rem;margin:0 .625rem .625rem;padding:.5rem;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08))}
.hub-nav-atalhos[hidden]{display:none}
.hub-nav-atalhos-titulo{margin:0 .25rem .125rem;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6b5a4c)}
#menudd .hub-nav-atalhos button,.hub-nav-atalhos button{display:grid;gap:.0625rem;width:100%;min-height:2.75rem;padding:.4375rem .75rem;border:0;border-radius:.625rem;background:var(--surface,#fff);color:var(--label,#3a2a1e);font:inherit;text-align:left;cursor:pointer}
.hub-nav-atalhos button b{font-size:calc(.9375rem * var(--dt,1));font-weight:650}
.hub-nav-atalhos button small{font-size:max(.6875rem, calc(.75rem * var(--dt,1)));color:var(--label2,#6b5a4c)}
.hub-nav-atalhos button:active{transform:scale(.98)}
[data-nav-empty]{margin:.25rem .875rem .75rem;font-size:calc(.875rem * var(--dt,1));color:var(--label2,#6b5a4c);line-height:1.4}
@media (prefers-reduced-motion:reduce){#menudd .ddnovo,.hub-nav-atalhos button{transition:none}}

/* ---------- D06: Implantação > Modelo da rede, botão "Conferir" que parecia morto ----------
   O retorno é no próprio botão ("Abrindo…", e um balanço curto se não abriu) e a mensagem fica na linha da etapa, logo
   abaixo do botão (web/hub-network-model.js). */
.hnm-open.hnm-opening{opacity:.6;cursor:progress}
.hnm-open.hnm-denied{animation:hnm-negado .36s cubic-bezier(.3,.7,.3,1) 1}
@keyframes hnm-negado{0%,100%{transform:none}25%{transform:translateX(-.25rem)}60%{transform:translateX(.1875rem)}85%{transform:translateX(-.0625rem)}}
.hnm-step-note{grid-column:2 / -1;display:block;padding:.5rem .75rem;border-radius:.75rem;background:color-mix(in srgb,var(--sys-orange,#ff8d28) 14%,var(--surface,#fff));color:var(--ink-orange,#8a4b12);font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.4;font-weight:600}
@media (prefers-reduced-motion:reduce){.hnm-open.hnm-denied{animation:none}}

/* ---------- D07, D08 e D26: Cardápio ----------
   1.74.0 (Philippe, 04/10/2026): a faixa presa no topo (busca e fichas de categoria), a linha do item com o botão de pausa
   e a confirmação leve saíram daqui: o Cardápio virou um carrossel de categorias com mini cartões e o desenho dele mora em
   web/cardapio-cartoes.css (conteúdo primeiro, Parte B). Aqui fica o aviso com Desfazer, que não mudou. */
/* o aviso com Desfazer: sobe de baixo, fica 6 s com a linha do tempo, e some */
.mdesfazer{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);z-index:2100;transform:translate3d(-50%,0,0);display:flex;align-items:center;gap:.75rem;width:min(30rem,calc(100vw - 1.5rem));box-sizing:border-box;padding:.75rem .75rem .875rem 1rem;border-radius:1.125rem;background:var(--label,#3a2a1e);color:var(--surface,#fff);box-shadow:0 .75rem 2rem rgba(30,20,10,.32);overflow:hidden;will-change:transform,opacity}
html.tem-barra-folha .mdesfazer{bottom:calc(env(safe-area-inset-bottom,0px) + var(--bf-barra,4rem) + 1.75rem)}
.mdesfazer-t{flex:1 1 auto;min-width:0;display:grid;gap:.125rem}
.mdesfazer-t b{font-size:calc(.9375rem * var(--dt,1));font-weight:700;overflow-wrap:anywhere}
.mdesfazer-t span{font-size:calc(.8125rem * var(--dt,1));line-height:1.35;opacity:.86;overflow-wrap:anywhere}
.mdesfazer-b{flex:none;min-height:2.75rem;padding:.375rem .875rem;border:0;border-radius:.75rem;background:color-mix(in srgb,var(--surface,#fff) 18%,transparent);color:inherit;font:inherit;font-size:calc(.9375rem * var(--dt,1));font-weight:700;cursor:pointer;transition:transform .1s ease-out,background-color .15s ease-out}
.mdesfazer-b:active{transform:scale(.96)}
.mdesfazer-b:focus-visible{outline:.1875rem solid var(--surface,#fff);outline-offset:.125rem}
.mdesfazer-tempo{position:absolute;left:0;right:0;bottom:0;height:.1875rem;background:var(--sys-orange,#ff8d28);transform-origin:left center;transform:scaleX(1);transition:transform linear}
.mdesfazer-tempo.correndo{transform:scaleX(0)}
body.dark .mdesfazer{background:var(--surface3,#2c2c2e);color:var(--label,#f5f5f7)}
@media (prefers-reduced-motion:reduce){.mdesfazer-b{transition:none}}

/* ---------- D09: Criar pedido, a barra fixa no pé do quadro ----------
   Na etapa dos produtos o rodapé do quadro tem os itens e o total à esquerda e o botão "Conferir pedido" à direita, sempre
   à vista (web/hub-manual-orders.js). Quando entra um item a barra dá um pulso curto. */
.hc-manual-orders .hc-manual-summary.mo-barra{display:flex;align-items:center;gap:.75rem;padding-top:.625rem}
.hc-manual-orders .mo-barra-itens{flex:1 1 auto;min-width:0;min-height:2.75rem;display:flex;align-items:center;padding:.25rem .5rem .25rem 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:.625rem}
.hc-manual-orders .mo-barra-itens[disabled]{cursor:default}
.hc-manual-orders .mo-barra-itens .hc-note{margin:0;font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.35;color:var(--label,#3a2a1e);overflow-wrap:anywhere}
.hc-manual-orders .mo-barra-itens[disabled] .hc-note{font-weight:400;color:var(--label2,#6b5a4c)}
.hc-manual-orders .mo-barra-itens:not([disabled]) .hc-note::after{content:" ›";color:var(--label2,#6b5a4c)}
.hc-manual-orders .mo-barra-itens:focus-visible{outline:.1875rem solid var(--blue,#0088ff);outline-offset:.125rem}
.hc-manual-orders .mo-barra-botao{flex:none;min-height:2.75rem;margin:0;white-space:nowrap}
.hc-manual-orders .hc-manual-summary.mo-entrou .mo-barra-botao{animation:mo-pulso .46s cubic-bezier(.2,.9,.3,1.2) 1}
.hc-manual-orders .hc-manual-summary.mo-entrou .mo-barra-itens .hc-note{animation:mo-sobe .36s cubic-bezier(.2,.8,.2,1) 1}
@keyframes mo-pulso{0%{transform:scale(1)}40%{transform:scale(1.07);box-shadow:0 0 0 .375rem color-mix(in srgb,var(--sys-blue,#0088ff) 22%,transparent)}100%{transform:scale(1);box-shadow:0 0 0 0 transparent}}
@keyframes mo-sobe{from{opacity:.2;transform:translateY(.375rem)}to{opacity:1;transform:none}}
/* no celular o total fica numa linha e o botão ocupa a largura toda, logo abaixo: é o alvo maior e mais fácil */
@media (max-width:600px){.hc-manual-orders .hc-manual-summary.mo-barra{flex-wrap:wrap;gap:.25rem .75rem}.hc-manual-orders .mo-barra-botao{flex:1 1 100%}}
@media (prefers-reduced-motion:reduce){.hc-manual-orders .hc-manual-summary.mo-entrou .mo-barra-botao,.hc-manual-orders .hc-manual-summary.mo-entrou .mo-barra-itens .hc-note{animation:none}}

/* ---------- D10: "Criar pedido" com nome na Expedição ----------
   Fica no pé da coluna Cozinha, por cima do fim da coluna (web/index.html, renderExpLanes), como o "adicionar" de um
   quadro de cartões: as quatro colunas seguem alinhadas em cima e embaixo, e no celular o botão fica perto do polegar.
   A margem negativa puxa o botão para dentro da coluna e a coluna reserva o espaço dele no fim da rolagem.
   Tinta azul sobre fundo claro do mesmo azul: é ação da tela, mas não disputa com os botões cheios dos cartões.
   Responde no toque (encolhe um pouco). */
.lane{--novo-alt:2.25rem}
html.hub-toque .lane{--novo-alt:2.75rem}
.lane > .lane-novo{order:3;position:relative;z-index:1;flex:none;display:flex;align-items:center;justify-content:center;gap:.375rem;box-sizing:border-box;height:var(--novo-alt);min-height:var(--novo-alt);margin:calc(-1 * var(--novo-alt) - .5rem) .5rem .5rem;padding:.25rem .625rem;border:0;border-radius:.75rem;background:color-mix(in srgb,var(--sys-blue,#0088ff) 13%,var(--surface,#fff));color:var(--ink-blue,#0062b8);font:inherit;font-size:calc(.8125rem * var(--dt,1));font-weight:600;line-height:1.2;cursor:pointer;box-shadow:0 .0625rem .1875rem rgba(0,0,0,.08);transition:transform .16s cubic-bezier(.2,.8,.2,1),background-color .16s}
.lane.tem-novo > .col{padding-bottom:calc(var(--novo-alt) + 1rem)}
.lane > .lane-novo svg{flex:none;width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.lane > .lane-novo span{min-width:0;white-space:nowrap}
html.hub-toque .lane > .lane-novo{font-size:calc(.9375rem * var(--dt,1))}
html.hub-clique .lane > .lane-novo:hover{background:color-mix(in srgb,var(--sys-blue,#0088ff) 20%,var(--surface,#fff))}
.lane > .lane-novo:active{transform:scale(.97)}
.lane > .lane-novo:focus-visible{outline:.1875rem solid var(--blue,#0088ff);outline-offset:.125rem}
body.dark .lane > .lane-novo{background:color-mix(in srgb,var(--sys-blue,#0088ff) 30%,var(--surface,#1c1c1e));color:var(--label,#fff)}
/* escolhendo vários pedidos ou procurando um pedido, a coluna é só dos cartões */
body.searching .lane > .lane-novo,#view-exp.selmode .lane > .lane-novo{display:none}
body.searching .lane.tem-novo > .col,#view-exp.selmode .lane.tem-novo > .col{padding-bottom:.5rem}
@media (prefers-reduced-motion:reduce){.lane > .lane-novo{transition:none}.lane > .lane-novo:active{transform:none}}

/* ---------- D15: Editar cardápio do canal próprio abre por categoria ----------
   Carrossel de categorias no filtro das ofertas (web/hub-commercial-presets.js): uma fileira que rola de lado, com alvos
   de 44 px; a categoria escolhida fica cheia, no azul do botão principal. Enquanto a pessoa busca, a escolha fica só
   contornada, porque a busca olha todas as categorias. */
.hc-catalog-filter .hc-cats{display:flex;gap:.5rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:.25rem 0 .875rem;padding:.1875rem .125rem}
.hc-catalog-filter .hc-cats::-webkit-scrollbar{display:none}
.hc-catalog-filter .hc-cat{flex:none;scroll-snap-align:center;display:inline-flex;align-items:center;gap:.5rem;box-sizing:border-box;min-height:2.75rem;margin:0;padding:.375rem .875rem;border:1px solid var(--hair,#d5d1c9);border-radius:62rem;background:var(--surface,#fff);color:var(--label,#24211d);font:inherit;font-size:calc(.9375rem * var(--dt,1));font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .16s cubic-bezier(.2,.8,.2,1)}
.hc-catalog-filter .hc-cat b{min-width:1.375rem;padding:.0625rem .375rem;border-radius:62rem;background:var(--fill,#f0eee9);color:var(--label2,#615c53);font-size:calc(.8125rem * var(--dt,1));font-weight:600;text-align:center}
.hc-catalog-filter .hc-cat[aria-pressed=true]{background:var(--on-blue,#0062b8);border-color:transparent;color:#fff}
.hc-catalog-filter .hc-cat[aria-pressed=true] b{background:rgba(255,255,255,.24);color:#fff}
.hc-catalog-filter .hc-cats-busca .hc-cat[aria-pressed=true]{background:var(--surface,#fff);border-color:var(--on-blue,#0062b8);color:var(--ink-blue,#0062b8)}
.hc-catalog-filter .hc-cats-busca .hc-cat[aria-pressed=true] b{background:var(--fill,#f0eee9);color:var(--label2,#615c53)}
.hc-catalog-filter .hc-cat:active{transform:scale(.96)}
.hc-catalog-filter .hc-cat:focus-visible{outline:.1875rem solid var(--blue,#0088ff);outline-offset:.125rem}
html.hub-clique .hc-catalog-filter .hc-cat:not([aria-pressed=true]):hover{background:var(--fill,#f0eee9)}
.hc-catalog-filter .hc-ir-ferramentas{display:inline-flex;align-items:center;min-height:2.75rem;margin:.25rem 0 0;padding:.25rem 0;border:0;background:transparent;color:var(--ink-blue,#0062b8);font:inherit;font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.35;text-align:left;cursor:pointer}
.hc-catalog-filter .hc-ir-ferramentas[hidden]{display:none}
.hc-catalog-filter .hc-ir-ferramentas::after{content:"›";margin-inline-start:.375rem}
.hc-catalog-filter .hc-ir-ferramentas:focus-visible{outline:.1875rem solid var(--blue,#0088ff);outline-offset:.125rem;border-radius:.5rem}
/* as ofertas da categoria escolhida entram com o movimento que os cartões já têm (hvw-card-in, web/hub-apple-depth.css).
   Lá o atraso da cascata vem da posição do cartão na lista inteira; trocando de categoria, a resposta ao toque não pode
   esperar 320 ms: nas ofertas a entrada começa na hora. */
.hvw-group[data-hvw-group=offers] > .hvw-grid > .hvw-card{animation-delay:0s;animation-duration:.26s}
@media (prefers-reduced-motion:reduce){.hc-catalog-filter .hc-cat{transition:none}.hc-catalog-filter .hc-cat:active{transform:none}}
/* no celular cada oferta é uma linha: foto pequena à esquerda, nome, estado e preço à direita, e o botão embaixo.
   O cartão alto, com a foto em cima, fazia 554 px por oferta. */
@media (max-width:600px){
  .hvw-group[data-hvw-group=offers] .hvw-card{display:grid;grid-template-columns:minmax(0,1fr);gap:.375rem .75rem;align-items:start;padding:.75rem}
  .hvw-group[data-hvw-group=offers] .hvw-card > *{grid-column:1 / -1}
  .hvw-group[data-hvw-group=offers] .hvw-card:has(> .hvw-card-media){grid-template-columns:5.5rem minmax(0,1fr)}
  .hvw-group[data-hvw-group=offers] .hvw-card:has(> .hvw-card-media) > .hvw-card-media{grid-column:1;grid-row:1 / span 3;aspect-ratio:1;border-radius:.75rem}
  .hvw-group[data-hvw-group=offers] .hvw-card:has(> .hvw-card-media) > .hvw-card-header,.hvw-group[data-hvw-group=offers] .hvw-card:has(> .hvw-card-media) > .hvw-status,.hvw-group[data-hvw-group=offers] .hvw-card:has(> .hvw-card-media) > .hvw-summary{grid-column:2}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-icon,.hvw-group[data-hvw-group=offers] .hvw-card .hvw-card-description{display:none}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-card-title{font-size:calc(1rem * var(--dt,1));line-height:1.25}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-status{justify-self:start;padding:.125rem .5rem}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-summary{gap:.125rem}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-summary > div{grid-template-columns:auto minmax(0,1fr);gap:.375rem}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-summary dd{text-align:left}
  .hvw-group[data-hvw-group=offers] .hvw-card .hvw-open{margin-top:.25rem}
  .hvw-group[data-hvw-group=offers] > .hvw-grid{gap:.625rem}
}

/* ---------- D16: Clientes sem rolagem dentro de rolagem ----------
   A caixa da tabela perde a altura fixa: quem rola é a tela. No celular (e em janela estreita) cada linha vira um cartão:
   o primeiro campo é o título (o nome do cliente, que abre o histórico) e os outros aparecem com o nome da coluna.
   O cabeçalho some da vista, mas continua lido pelo leitor de tela. */
.hc .hc-table.hc-cartoes{max-height:none;overflow-y:visible}
/* nome comprido quebra na própria célula, em vez de empurrar a tabela para o lado */
.hc .hc-table.hc-cartoes td:first-child{white-space:normal;min-width:10rem}
.hc .hc-table.hc-cartoes td:first-child .btn{white-space:normal;text-align:left;overflow-wrap:anywhere}
@media (max-width:760px){
  .hc .hc-table.hc-cartoes{overflow:visible;border:0;border-radius:0;margin:.75rem 0}
  .hc .hc-table.hc-cartoes table,.hc .hc-table.hc-cartoes tbody{display:block;width:100%}
  .hc .hc-table.hc-cartoes thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
  .hc .hc-table.hc-cartoes tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem .75rem;margin:0 0 .625rem;padding:.75rem;border:1px solid var(--hair,#d5d1c9);border-radius:1rem;background:var(--surface,#fff)}
  .hc .hc-table.hc-cartoes td{display:block;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;font-size:calc(.9375rem * var(--dt,1));line-height:1.35}
  .hc .hc-table.hc-cartoes td::before{content:attr(data-rotulo);display:block;margin-bottom:.0625rem;color:var(--label2,#615c53);font-size:calc(.8125rem * var(--dt,1));font-weight:400}
  .hc .hc-table.hc-cartoes td:first-child{grid-column:1 / -1;font-weight:600;font-size:calc(1rem * var(--dt,1))}
  .hc .hc-table.hc-cartoes td:first-child::before{content:none}
  .hc .hc-table.hc-cartoes td:first-child:not(:has(.btn))::before{content:attr(data-rotulo) " ";display:inline;font-size:inherit}
  .hc .hc-table.hc-cartoes td:first-child .btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:2.75rem;margin:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
  .hc .hc-table.hc-cartoes td:first-child .btn::after{content:"›";flex:none;color:var(--label2,#615c53)}
  /* com cinco valores, o último ocupa o resto da segunda linha */
  .hc .hc-table.hc-cartoes td:last-child:nth-child(3n){grid-column:span 2}
}
/* estas duas tabelas cabem inteiras no computador e viram cartões no celular: o aviso de deslizar para o lado não vale mais */
.hc .hc-customer-list .hc-table-hint{display:none}
/* a lista abre curta (8 linhas no computador, 5 cartões no celular) e o botão mostra a página inteira no lugar */
.hc .hc-table.hc-cartoes.hc-cartoes-curto tbody tr:nth-child(n+9){display:none}
.hc .hc-cartoes-mais{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.75rem;margin:0 0 .75rem}
.hc .hc-cartoes-mais[data-poucos]{display:none}
@media (max-width:760px){
  .hc .hc-table.hc-cartoes.hc-cartoes-curto tbody tr:nth-child(n+6){display:none}
  .hc .hc-cartoes-mais[data-poucos]{display:flex}
}

/* ---------- D24 e D27: pedido manual ----------
   Opção obrigatória esquecida: o grupo fica contornado e a mensagem aparece dentro dele (web/hub-manual-orders.js).
   Fechar com itens: o botão avisa que vai descartar, na tinta vermelha do tema. */
.hc-manual-orders fieldset.mo-falta,.hc-manual-orders .hc-field.mo-falta{border-color:var(--ink-red,#b3261e);box-shadow:0 0 0 .125rem color-mix(in srgb,var(--sys-red,#ff383c) 22%,transparent)}
.hc-manual-orders .hc-field.mo-falta{border-radius:.75rem}
.hc-manual-orders .mo-falta-msg{margin:.25rem 0 .5rem;color:var(--ink-red,#b3261e);font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.35}
.hc-manual-orders .btn.mo-fechar-armado{background:color-mix(in srgb,var(--sys-red,#ff383c) 12%,var(--surface,#fff));color:var(--ink-red,#b3261e);border-color:transparent}
/* ---------- D20: no celular a página de trás não disputa com o diálogo ---------- */
@media (max-width:600px){.hc-dialog::backdrop{background:rgba(20,15,10,.62)}}

/* ---------- D17 e D18: contraste e letra pequena ----------
   Medidos na auditoria de interface. Estrelas das avaliações: o amarelo puro dava 1,9:1 no branco; misturado com a cor
   do texto passa de 3:1 (desenho) e, no tema escuro, clareia sozinho. "(Operação)" e as legendas dos modelos passam a usar
   a cor de texto secundário do tema, sem opacidade. O botão principal e a aba escolhida das Regras para responder usam o
   mesmo azul do botão principal do resto do sistema (era um azul claro com 3,5:1 no texto branco).
   Nas tabelas do Dashboard, do Financeiro e das Avaliações o <small> herdava "menor" sobre 11 px e caía para 9 px. */
.stars{color:color-mix(in srgb,var(--sys-yellow,#ffcc00) 55%,var(--label,#3a2a1e))}
.settings-facts p span i{opacity:1;color:var(--label2,#615c53)}
.hci .hci-preset small{color:var(--label2,#615c53)}
.hao .hao-primary,.hao .hao-tabs [aria-selected=true]{background:var(--on-blue,#0062b8)}
#ges td small,#fin td small,#rev td small{font-size:max(.6875rem,calc(.6875rem * var(--dt,1)))}

/* ---------- D21: título dos diálogos no celular ----------
   O título dos diálogos do canal próprio saía com 29 px no celular ("Cardápio do canal próprio" quebrava em duas linhas)
   e o do pedido manual com 19 px. Fica um tamanho só, o de título 2 do tema, com quebra de linha equilibrada. */
@media (max-width:600px){dialog.hc-dialog .hc-header h2{font-size:var(--f-title2,calc(1.375rem * var(--dt,1)));line-height:1.2;letter-spacing:-.015em;text-wrap:balance}}

/* /areas-carrossel.css */
/* 1.74.0 (Philippe, 03/10/2026): AS TELAS DE ÁREA EM CARROSSEL (web/areas-carrossel.js sobre web/hub-carrossel.js).
   Clientes, Canal próprio, Implantação, Atendimento e Campanhas: cada seção é um cartão (section.ac-cartao) de uma faixa
   só (.ac-faixa), ao lado dos cartões de ferramenta (.hvw-card). O cartão é a superfície; a seção de dentro perde a
   moldura própria para não virar cartão dentro de cartão. No celular (.hcar-cel) um cartão por tela; no computador
   (.hcar-pc) vários, e o cartão largo (.ac-largo) ocupa a largura de dois.
   Como o cartão é estreito também no computador, o miolo usa sempre o desenho de coluna única (o das folhas de cada
   peça só troca pela largura da janela, que aqui não diz a largura do cartão).
   Medidas de texto em rem com --dt (tests/relative-typography); claro e escuro pelos tokens do tema; "reduzir
   movimento" respeitado. Vidro só nas peças da faixa (fichas e setas, de web/hub-carrossel.css): o cartão é conteúdo. */

/* ---------- a tela em volta da faixa ---------- */
/* a área dos cartões de ferramenta agora é a tela inteira: sem a margem de bloco de quando era uma seção entre outras */
.ac-corpo .hvw-workspace:has(>.ac-faixa){margin-block:0}
/* o guia do Atendimento embrulha a área: o título e a frase dele eram a entrada da pilha; na faixa, quem orienta são as fichas */
.hc .ac-corpo [data-hc-attendant-guide]:has(.ac-faixa){margin:0;padding:0}
.ac-corpo [data-hc-attendant-guide]:has(.ac-faixa)>h3,.ac-corpo [data-hc-attendant-guide]:has(.ac-faixa)>.hc-note{display:none}
/* a fileira de botões que ficou vazia (quem tem menos acesso não vê os botões dela) não deixa a margem dela na tela */
.ac-corpo>.hc-actions:empty{display:none}
/* o respiro de baixo da tela (pensado para o fim de uma página longa) dá lugar ao cartão */
.hc:has(.ac-faixa){padding-bottom:.5rem}
.hc:has(.ac-faixa)>.hc-header{margin-bottom:.75rem}
/* a unidade e o Atualizar sempre na mesma linha (no tablet de toque o botão caía para a linha de baixo). O seletor tem
   largura declarada: a largura mínima em porcentagem que ele tinha não entra na conta da largura do bloco */
.hc:has(.ac-faixa)>.hc-header .hc-actions{flex-wrap:nowrap}
.hc:has(.ac-faixa)>.hc-header .hc-actions>.hc-field{flex:0 0 auto;width:13rem;min-width:0;max-width:100%}
.hc:has(.ac-faixa)>.hc-header .hc-actions .hc-field select[name]{width:100%;min-width:0}
.hc:has(.ac-faixa)>.hc-header .hc-actions>.btn{flex:none}
/* celular: o cabeçalho cabe em menos altura para sobrar tela para o cartão. A unidade e o Atualizar ficam na mesma linha
   até em 320 px (o seletor tinha largura mínima de 13rem e empurrava o botão para a linha de baixo), e a palavra
   "Unidade" continua no rótulo para o leitor de tela, sem ocupar uma linha: o seletor já mostra o nome da loja */
@media (max-width:760px){
  .hc:has(.ac-faixa)>.hc-header{gap:.5rem 1rem;margin-bottom:.625rem}
  .hc:has(.ac-faixa)>.hc-header .hc-actions{align-items:center;width:100%}
  .hc:has(.ac-faixa)>.hc-header .hc-actions>.hc-field{flex:1 1 auto;width:auto}
  .hc:has(.ac-faixa)>.hc-header .hc-actions .hc-field>span.ac-rotulo{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
}

/* ---------- o cartão de seção ---------- */
.ac-faixa>.ac-cartao{display:block;min-width:0;padding:1.25rem;border:1px solid color-mix(in srgb,var(--hair,rgba(58,42,30,.14)) 55%,transparent);border-radius:var(--r-sheet,1.25rem);background:var(--surface,#fff);color:var(--label,var(--text,#3A2A1E));box-shadow:var(--lift-1,0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06)),var(--edge-light,inset 0 1px 0 rgba(255,255,255,.65));overflow-wrap:anywhere;overscroll-behavior-y:contain}
.ac-faixa>.ac-cartao[hidden]{display:none!important}
.ac-faixa.hcar-cel>.ac-cartao{padding:1rem}
/* 04/10/2026 (a dupla checagem): o título do cartão do carrossel tem o mesmo tamanho em toda tela (o título 3 da casa) */
.ac-faixa>.ac-cartao>.ac-titulo{margin:0 0 .75rem;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25);letter-spacing:-.015em}
.ac-faixa>.ac-cartao>.ac-dica{margin:1rem 0 0;padding-top:.75rem;border-top:1px solid var(--hair,rgba(58,42,30,.14))}
/* a seção de dentro é o miolo do cartão, não outro cartão */
.ac-faixa>.ac-cartao>.hc-card,.ac-faixa>.ac-cartao>[data-hc-rede-primeiro]>.hrp,.ac-faixa>.ac-cartao .hc-onboarding-network,.ac-faixa>.ac-cartao .hvw-card,.ac-faixa>.ac-cartao [data-hc-program]>form.hc-card{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.ac-faixa>.ac-cartao .hvw-card:hover,.ac-faixa>.ac-cartao .hvw-card:active{transform:none;box-shadow:none}
.ac-faixa>.ac-cartao>:first-child{margin-top:0}
.ac-faixa>.ac-cartao>:last-child{margin-bottom:0}
.ac-faixa>.ac-cartao>.hc-note{margin:.75rem 0 0}
.ac-faixa>.ac-cartao>.hc-note:first-child,.ac-faixa>.ac-cartao>.ac-titulo+.hc-note{margin-top:0}
.ac-faixa>.ac-cartao h3{overflow-wrap:anywhere}
/* o resumo de uma dobra (Planos salvos, Conferir envios) numa linha só, com a seta à direita, também no celular */
.ac-faixa>.ac-cartao details>summary{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}
.ac-faixa>.ac-cartao>details.hc-card{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}

/* lista de ações: um botão por linha, da largura do cartão, com a seta de "abre outra coisa" */
.ac-faixa>.ac-cartao .ac-acoes{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;width:auto;max-width:none;margin:1rem 0 0;padding:0;border:0;border-radius:0;background:none;overflow:visible;scroll-snap-type:none}
.ac-faixa>.ac-cartao .ac-acoes:first-child,.ac-faixa>.ac-cartao .ac-titulo+.ac-acoes{margin-top:0}
.ac-faixa>.ac-cartao .ac-acoes+.ac-acoes{margin-top:.5rem}
.ac-faixa>.ac-cartao .ac-acoes .btn,.ac-faixa>.ac-cartao[data-ac-cartao="limites"]>.hc-card>.btn{display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-sizing:border-box;width:100%;min-height:2.75rem;margin:0;padding:.625rem .875rem;border:0;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08));box-shadow:none;color:var(--label,#3A2A1E);font-weight:600;line-height:1.3;text-align:left;text-decoration:none;white-space:normal;flex:none}
/* a seta da linha é desenhada com borda, não com um caractere: texto gerado entra no nome que o leitor de tela fala
   ("Editar cardápio, aspa angular") e mudaria o nome do botão para quem o procura pelo nome */
.ac-faixa>.ac-cartao .ac-acoes .btn::after,.ac-faixa>.ac-cartao[data-ac-cartao="limites"]>.hc-card>.btn::after{content:"";flex:none;box-sizing:border-box;width:.5rem;height:.5rem;margin-right:.25rem;border-top:2px solid var(--label3,#8A7666);border-right:2px solid var(--label3,#8A7666);transform:rotate(45deg)}
.ac-faixa>.ac-cartao[data-ac-cartao="limites"]>.hc-card>.btn{margin-top:.5rem}
html.hub-clique .ac-faixa>.ac-cartao .ac-acoes .btn:hover,html.hub-clique .ac-faixa>.ac-cartao[data-ac-cartao="limites"]>.hc-card>.btn:hover{background:var(--fill2,rgba(90,65,45,.12));box-shadow:none}

/* computador: cada cartão tem a altura do próprio conteúdo (até o limite da tela), alinhado em cima. Esticar todos até a
   altura do mais alto deixava o cartão curto oco, com o botão lá no pé, longe do que ele faz */
.ac-faixa.hcar-pc{align-items:flex-start}
/* e a contagem ("1 a 3 de 10") continua sendo dita ao leitor de tela, mas não ocupa lugar: com cartões de alturas
   diferentes ela ficava solta lá embaixo, e as fichas acesas já mostram quais cartões estão à vista */
.ac-faixa.hcar-pc~.hcar-pe{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* computador: o cartão largo ocupa a largura de dois (lista de clientes, conversas, modelo da rede, planos com tabela) */
.ac-faixa.hcar-pc>.ac-largo{flex-basis:min(100%,calc(var(--hcar-w,22rem) * 2 + var(--hcar-vao,.75rem)))}

/* ---------- padrão da rede (web/hub-rede-primeiro.js) dentro do cartão ---------- */
.ac-faixa .ac-rede .hrp-title{flex:1 1 9rem}
.ac-faixa .ac-rede .hrp-head-actions{width:100%}
.ac-faixa .ac-rede .hrp-head-actions .btn{flex:1 1 auto}
.ac-faixa .ac-rede .hrp-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.ac-faixa .ac-rede .hrp-unit-actions{margin-left:0;width:100%;justify-content:flex-start}

/* ---------- Clientes ---------- */
/* a busca numa grade curta: o campo em cima; o canal e o Buscar lado a lado (no cartão largo do computador, tudo numa linha) */
.ac-faixa [data-ac-cartao="clientes"] [data-crm-search].hc-grid{grid-template-columns:minmax(0,1fr) auto;gap:.625rem .75rem;align-items:end}
.ac-faixa [data-ac-cartao="clientes"] [data-crm-search]>.hc-field:first-child{grid-column:1 / -1}
.ac-faixa [data-ac-cartao="clientes"] [data-crm-search]>.hc-actions{margin:0}
.ac-faixa.hcar-pc [data-ac-cartao="clientes"] [data-crm-search].hc-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto}
.ac-faixa.hcar-pc [data-ac-cartao="clientes"] [data-crm-search]>.hc-field:first-child{grid-column:auto}
.ac-faixa [data-ac-cartao="clientes"] .hc-customer-list>h3{margin-bottom:.5rem}
.ac-faixa [data-ac-cartao="clientes"]>.ac-acoes{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--hair,rgba(58,42,30,.14))}
/* benefícios da loja: as abas e o cartão da aba escolhida */
.ac-faixa [data-ac-cartao="beneficios"] .hc-program-navigation{margin:0 0 1rem}
.ac-faixa [data-ac-cartao="beneficios"] .hvw-workspace{margin-block:0}
.ac-faixa [data-ac-cartao="beneficios"] .hvw-grid{display:block}

/* ---------- Canal próprio ---------- */
.ac-faixa [data-ac-cartao="atalhos"]>.hc-note{margin-top:1rem}
.ac-faixa [data-ac-cartao="pausa"] .hc-pause>h3{margin-bottom:.5rem}

/* ---------- Atendimento ---------- */
.ac-faixa [data-ac-cartao="conversas"]>.hc-inbox{margin-top:.75rem}
.ac-faixa.hcar-cel [data-ac-cartao="conversas"]>.hc-inbox{gap:.5rem}
.ac-faixa [data-ac-cartao="conversas"]>details{margin-top:1rem;padding-top:.25rem;border-top:1px solid var(--hair,rgba(58,42,30,.14))}

/* ---------- Campanhas ---------- */
.ac-faixa [data-ac-cartao="planos"]>details>summary b{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25);letter-spacing:-.015em}
/* computador: com a lista de planos aberta o cartão alarga para a tabela de cinco colunas caber sem rolar para o lado */
.ac-faixa.hcar-pc>[data-ac-cartao="planos"]:has(>details[open] table){flex-basis:min(100%,64rem)}
/* o botão "Incentivo individual" de cada plano vinha com o ícone sem medida (111 px, preenchido de preto): a folha da
   janela dos incentivos não alcança o botão que fica na lista */
.hc td [data-hc-campaign-incentives]{display:inline-flex;align-items:center;gap:.5rem}
.hc td [data-hc-campaign-incentives] svg{flex:none;width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Implantação ---------- */
/* resumo: o andamento e, em destaque, o próximo passo */
.ac-faixa [data-ac-cartao="resumo"] .hc-onboarding-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}
.ac-faixa [data-ac-cartao="resumo"] .hc-onboarding-overview h3{margin:0 0 .5rem;font-size:calc(1.375rem * var(--dt,1));line-height:1.2;letter-spacing:-.02em}
.ac-faixa [data-ac-cartao="resumo"] .hc-onboarding-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.375rem .75rem;max-width:none}
.ac-faixa [data-ac-cartao="resumo"] .hc-onboarding-progress progress{grid-column:1 / -1}
.ac-faixa>.ac-cartao[data-ac-cartao="resumo"]>.hc-ob-next{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem;align-items:stretch;margin:1rem 0 0;padding:1rem;border:0;border-radius:1rem;background:color-mix(in srgb,var(--sys-blue,#0088FF) 8%,var(--surface,#fff))}
.ac-faixa [data-ac-cartao="resumo"] .hc-ob-next h3{font-size:calc(1.0625rem * var(--dt,1));line-height:1.3}
.ac-faixa [data-ac-cartao="resumo"] .hc-ob-next>.btn{width:100%}
.ac-faixa>.ac-cartao[data-ac-cartao="resumo"]>.hc-card:not(.hc-onboarding-overview):not(.hc-ob-next){margin-top:1rem}
.ac-faixa [data-ac-cartao="resumo"]>.hc-onboarding-updated{margin-top:.875rem}
/* etapas: uma lista de conferência, uma linha por etapa (ícone, nome, situação), em vez de cartões grandes lado a lado */
.ac-faixa .ac-lista .hc-onboarding-list,.ac-faixa .ac-lista .hc-ob-optional{margin:0}
.ac-faixa .ac-lista h3{margin:0 0 .375rem}
.ac-faixa .ac-lista .hc-ob-section-heading{margin-bottom:.25rem}
.ac-faixa .ac-lista .hc-ob-optional>.hc-note{margin:0 0 .5rem}
.ac-faixa .ac-lista .hc-ob-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin-top:.625rem}
.ac-faixa .ac-lista .hc-ob-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.125rem .75rem;min-height:3.5rem;padding:.5rem .75rem;border:0;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08));box-shadow:none}
.ac-faixa .ac-lista .hc-ob-card:hover{box-shadow:none;background:var(--fill2,rgba(90,65,45,.12))}
.ac-faixa .ac-lista .hc-ob-card-top{display:contents}
.ac-faixa .ac-lista .hc-ob-icon{grid-column:1;grid-row:1 / span 2;width:2.25rem;height:2.25rem;border-radius:.75rem;background:var(--surface,#fff)}
.ac-faixa .ac-lista .hc-ob-icon svg{width:1.25rem;height:1.25rem}
.ac-faixa .ac-lista .hc-ob-status{grid-column:3;grid-row:1 / span 2;background:var(--surface,#fff);white-space:nowrap}
.ac-faixa .ac-lista .hc-ob-card>strong{grid-column:2;grid-row:1;font-size:calc(.9375rem * var(--dt,1));line-height:1.3}
.ac-faixa .ac-lista .hc-ob-detail{grid-column:2;grid-row:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:calc(.8125rem * var(--dt,1));line-height:1.4}
.ac-faixa .ac-lista .hc-ob-card-link{display:none}
/* os dois cartões da rede */
.ac-faixa>.ac-cartao .hc-onboarding-network{gap:.75rem}
.ac-faixa>.ac-cartao .hc-onboarding-network-heading h3{font-size:calc(1.1875rem * var(--dt,1));line-height:1.25}
.ac-faixa>.ac-cartao .hc-onboarding-network .hc-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin-top:.25rem}

/* Modelo da rede (web/hub-network-model.js) */
.ac-faixa [data-ac-cartao="modelo"]>.hnm{gap:.875rem}
.ac-faixa [data-ac-cartao="modelo"] .hnm-head{gap:.5rem .75rem}
/* os três modelos à vista de uma vez, um por linha: escolher é tocar; o texto do escolhido aparece inteiro */
.ac-faixa [data-ac-cartao="modelo"] .hnm-models{grid-template-columns:minmax(0,1fr);gap:.5rem}
.ac-faixa [data-ac-cartao="modelo"] .hnm-model{align-items:center;min-height:3.5rem;padding:.625rem .75rem;border-radius:.875rem;box-shadow:none}
.ac-faixa [data-ac-cartao="modelo"] .hnm-model[aria-checked=true]{align-items:flex-start;box-shadow:0 0 0 1px var(--sys-blue,#0088FF)}
.ac-faixa [data-ac-cartao="modelo"] .hnm-model-icon{width:2.25rem;height:2.25rem;border-radius:.75rem}
.ac-faixa [data-ac-cartao="modelo"] .hnm-model-text strong{font-size:calc(.9375rem * var(--dt,1))}
.ac-faixa [data-ac-cartao="modelo"] .hnm-model:not([aria-checked=true]) .hnm-model-text small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden}
.ac-faixa.hcar-pc [data-ac-cartao="modelo"] .hnm-models{grid-template-columns:repeat(3,minmax(0,1fr))}
.ac-faixa.hcar-pc [data-ac-cartao="modelo"] .hnm-model{flex-direction:column;align-items:flex-start;gap:.5rem}
.ac-faixa.hcar-pc [data-ac-cartao="modelo"] .hnm-model:not([aria-checked=true]) .hnm-model-text small{-webkit-line-clamp:3;line-clamp:3}
/* celular: a situação e o Conferir da etapa na mesma linha (eram duas), para o plano ficar mais curto */
@media (max-width:700px){
  .ac-faixa [data-ac-cartao="modelo"] .hnm-step{grid-template-columns:auto minmax(0,1fr) auto;row-gap:.125rem}
  .ac-faixa [data-ac-cartao="modelo"] .hnm-step-text{grid-column:2 / -1}
  .ac-faixa [data-ac-cartao="modelo"] .hnm-tag{grid-column:2;grid-row:2;align-self:center}
  .ac-faixa [data-ac-cartao="modelo"] .hnm-open{grid-column:3;grid-row:2;justify-self:end;padding-inline:.5rem}
  .ac-faixa [data-ac-cartao="modelo"] .hnm-step-note{grid-column:2 / -1;grid-row:3}
}
/* o plano: à vista o que o modelo muda; o que continua como está fica atrás do botão (a etapa com mensagem não some) */
.ac-faixa [data-ac-cartao="modelo"]:not([data-ac-etapas="todas"]) .hnm-step[data-state="preserve"]:not(:has([data-hnm-step-note])){display:none}
.ac-faixa [data-ac-cartao="modelo"]:not([data-ac-etapas="todas"]) .hnm-steps:not(:has(.hnm-step:not([data-state="preserve"]),.hnm-step [data-hnm-step-note])){display:none}
.ac-faixa [data-ac-cartao="modelo"] .hnm-step:not([hidden]){border-top:0;box-shadow:0 -1px 0 color-mix(in srgb,var(--hair,rgba(58,42,30,.14)) 60%,transparent)}
.ac-faixa .ac-etapas{display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-sizing:border-box;width:100%;min-height:2.75rem;margin:0;padding:.625rem .875rem;border:0;border-radius:.875rem;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font:inherit;font-size:calc(.875rem * var(--dt,1));font-weight:600;line-height:1.3;text-align:left;cursor:pointer}
.ac-faixa .ac-etapas[hidden]{display:none}
.ac-faixa .ac-etapas::after{content:"";flex:none;width:.5rem;height:.5rem;margin-right:.25rem;border-right:2px solid var(--label3,#8A7666);border-bottom:2px solid var(--label3,#8A7666);transform:rotate(45deg) translate(-.125rem,-.125rem);transition:transform .18s ease-out}
.ac-faixa .ac-etapas[aria-expanded="true"]::after{transform:rotate(225deg) translate(-.125rem,-.125rem)}
.ac-faixa .ac-etapas:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#0062B8));outline-offset:2px}
html.hub-clique .ac-faixa .ac-etapas:hover{background:var(--fill2,rgba(90,65,45,.12))}
/* o botão de aplicar fica sempre à vista no pé do cartão, enquanto o plano rola por cima */
.ac-faixa [data-ac-cartao="modelo"] .hnm-foot{display:contents}
.ac-faixa [data-ac-cartao="modelo"] .hnm-actions{position:sticky;bottom:-1.25rem;z-index:1;margin:0 -1.25rem -1.25rem;padding:.75rem 1.25rem 1.25rem;background:var(--surface,#fff);border-top:1px solid var(--hair,rgba(58,42,30,.14))}
.ac-faixa.hcar-cel [data-ac-cartao="modelo"] .hnm-actions{bottom:-1rem;margin:0 -1rem -1rem;padding:.75rem 1rem 1rem}
.ac-faixa [data-ac-cartao="modelo"] .hnm-actions .btn{flex:1 1 auto}

@media (prefers-reduced-motion:reduce){.ac-faixa .ac-etapas::after{transition:none}}
@media (prefers-contrast:more){.ac-faixa>.ac-cartao{border-color:var(--label,#3A2A1E)}.ac-faixa .ac-etapas,.ac-faixa>.ac-cartao .ac-acoes .btn{box-shadow:inset 0 0 0 1px var(--label,#3A2A1E)}}

/* ---------- a tela de área e o Cardápio do canal próprio abertos numa janela (#hc-dialog) ----------
   1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas; B4, B6 e B7): a janela tem o desenho da tela. A moldura é a
   da casa (web/hub-janela.css: a janela ocupa a tela inteira e não rola; em cima só o nome e o Fechar; a barra de baixo
   dentro dela). Da faixa até a janela, cada caixa é uma coluna que estica (.ac-coluna, posta pelo JS): o cartão fica com
   a altura que sobra, sem medida feita por script, e NÃO rola (o que não cabe fica atrás do "Ver tudo"). Enquanto um
   editor de ferramenta está aberto no lugar (.hvw-modal-editing), quem manda é a folha dele: a barra some e o editor
   ocupa a janela, numa coluna de leitura no computador. Sem a janela da casa (.hj), vale o desenho antigo. */
dialog.hc-dialog.ac-janela[open]:not(.hvw-modal-editing):not(.hj){display:flex;flex-direction:column;height:92vh;height:92dvh;overflow-x:hidden;overflow-y:auto}
dialog.hc-dialog.ac-janela:not(.hvw-modal-editing) .ac-coluna{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;width:auto;max-width:100%;margin-inline:0;box-sizing:border-box}
dialog.hc-dialog.ac-janela:not(.hvw-modal-editing) .ac-coluna>*{flex:none}
dialog.hc-dialog.ac-janela:not(.hvw-modal-editing) .ac-coluna>.ac-coluna,dialog.hc-dialog.ac-janela:not(.hvw-modal-editing) .ac-coluna>.ac-faixa{flex:1 1 auto;min-height:0}
/* janela baixa demais para o cartão: ele não encolhe abaixo de 15rem */
dialog.hc-dialog.ac-janela:not(.hvw-modal-editing) .ac-coluna>.ac-faixa{min-height:15rem}
dialog.hc-dialog.ac-janela:not(.hj) .ac-faixa>.hcar-item{max-height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}
dialog.hc-dialog.ac-janela .ac-faixa>.hcar-item:focus-visible,.ac-faixa>.hcar-item:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#0062B8));outline-offset:-3px}
dialog.hc-dialog.ac-janela:not(.hj) .hc-dialog-top{position:static;flex:none}
dialog.hc-dialog.ac-janela .hc:has(.ac-faixa){padding-top:0;padding-bottom:1rem}
/* a janela da casa: o topo é a fileira do nome (o Fechar entrou nela); a unidade e o Atualizar moram na barra de baixo */
dialog.hc-dialog.ac-janela.hj{border-radius:0;max-height:none}
dialog.hc-dialog.ac-janela.hj>.hc-dialog-top{display:none}
dialog.hc-dialog.ac-janela.hj .hc:has(.ac-faixa){padding:0;max-width:none;margin:0}
dialog.hc-dialog.ac-janela.hj:not(.hvw-modal-editing) .ac-coluna>.ac-faixa{flex:1 1 0}
dialog.hc-dialog.ac-janela.hj .hc-header.hj-topo{flex-wrap:nowrap;margin:0;padding-inline:0}
dialog.hc-dialog.ac-janela.hj .hc-header.hj-topo .hj-nome h2{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.15;letter-spacing:-.02em;text-wrap:nowrap}
dialog.hc-dialog.ac-janela.hj .hc-header.hj-topo :is(.hc-eyebrow,.hc-actions){display:none}
/* os cartões de ferramenta entravam duas vezes (a entrada deles recomeçava quando a espiada da faixa acabava): na janela, sem a entrada */
dialog.hc-dialog.ac-janela.hj .ac-faixa.hcar:not(.hcar-espiar)>.hvw-card{animation:none}
dialog.hc-dialog.ac-janela.hj.hvw-modal-editing{overflow:hidden}
dialog.hc-dialog.ac-janela.hj.hvw-modal-editing>.bf{display:none}
dialog.hc-dialog.ac-janela.hj.hvw-modal-editing>.hc-dialog-body.hj-corpo{padding:0}
@media (min-width:761px){dialog.hc-dialog.ac-janela.hj.hvw-modal-editing .hvw-editor-borrowed{max-width:54rem;margin-inline:auto;border-inline:1px solid var(--hair,#d5d1c9)}}

/* ---------- Cardápio do canal próprio (janela): uma categoria por cartão, cada oferta num mini cartão ----------
   O cartão da oferta é o de sempre (web/hub-visual-workspace.js), só que em linha: foto (ou o ícone), nome, situação,
   preço e o Editar. O filtro antigo (fichas de categoria, busca, situação) fica no documento, fora da vista: a folha
   Buscar da barra escreve nele. */
dialog.hc-dialog.ac-janela.hj .hc-catalog-filter{display:none}
.ac-faixa .ac-minis{display:grid;gap:.5rem;margin:0;padding:0;min-width:0}
.ac-faixa .ac-minis>.hvw-card{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;grid-template-areas:"foto nome botao" "foto meta botao" "nota nota nota";column-gap:.75rem;row-gap:.125rem;align-items:center;min-height:3.5rem;margin:0;padding:.5rem .625rem;border:1px solid var(--sep,rgba(58,42,30,.14));border-radius:.875rem;background:transparent;box-shadow:none;cursor:pointer;animation:none;transform:none}
.ac-faixa .ac-minis>.hvw-card:active{background:var(--fill,rgba(90,65,45,.06))}
.ac-faixa .ac-minis>.hvw-card>.hvw-card-header{display:contents}
.ac-faixa .ac-minis>.hvw-card .hvw-icon{grid-area:foto;width:3rem;height:3rem;margin:0}
.ac-faixa .ac-minis>.hvw-card>.hvw-card-media{grid-area:foto;width:3rem;height:3rem;margin:0;border-radius:.625rem;overflow:hidden;aspect-ratio:auto;background:var(--fill,rgba(90,65,45,.08))}
.ac-faixa .ac-minis>.hvw-card>.hvw-card-media img{width:100%;height:100%;object-fit:cover;display:block}
.ac-faixa .ac-minis>.hvw-card>.hvw-card-media~.hvw-card-header .hvw-icon{display:none}
.ac-faixa .ac-minis>.hvw-card .hvw-card-heading{grid-area:nome;min-width:0}
.ac-faixa .ac-minis>.hvw-card .hvw-card-eyebrow,.ac-faixa .ac-minis>.hvw-card>.hvw-card-description,.ac-faixa .ac-minis>.hvw-card .hvw-summary dt,.ac-faixa .ac-minis>.hvw-card .hvw-summary>div+div{display:none}
.ac-faixa .ac-minis>.hvw-card .hvw-card-title{margin:0;font-size:calc(.9375rem * var(--dt,1));line-height:1.25;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-faixa .ac-minis>.hvw-card>.hvw-status{grid-area:meta;justify-self:start;margin:0;font-size:max(.6875rem, calc(.75rem * var(--dt,1)))}
.ac-faixa .ac-minis>.hvw-card>.hvw-summary{grid-area:meta;justify-self:end;margin:0;padding:0;border:0;display:block;font-size:calc(.8125rem * var(--dt,1));font-variant-numeric:tabular-nums}
.ac-faixa .ac-minis>.hvw-card .hvw-summary>div{display:block;margin:0;padding:0;border:0}
.ac-faixa .ac-minis>.hvw-card .hvw-summary dd{margin:0;font-weight:600}
.ac-faixa .ac-minis>.hvw-card>:is(.hvw-card-feedback,.hvw-edit-state,.hvw-disabled-reason){grid-area:nota;margin:0;font-size:calc(.8125rem * var(--dt,1))}
.ac-faixa .ac-minis>.hvw-card>.hvw-open{grid-area:botao;width:auto;min-width:0;min-height:2.75rem;margin:0;padding:.375rem .875rem;font-size:calc(.875rem * var(--dt,1))}
/* 1.74.0 (Philippe, 04/10/2026, sexta fase, revisão final G1): no mini cartão estreito (o celular de 320 px e o cartão de
   20 rem do computador) a situação e o preço dividiam a mesma linha e ficavam um por cima do outro ("RascunhR$ 0,00",
   "PublicadR$ 74,90"). Quando a lista de minis tem menos de 20 rem, o preço desce para a linha dele; no cartão largo
   (o celular de 390 px) continua tudo numa linha. A medida é a da própria lista (não a da janela). */
.ac-faixa .ac-minis{container-type:inline-size;container-name:acminis}
@container acminis (max-width:20rem){
  .ac-faixa .ac-minis>.hvw-card{grid-template-areas:"foto nome botao" "foto meta botao" "foto preco botao" "nota nota nota"}
  .ac-faixa .ac-minis>.hvw-card>.hvw-summary{grid-area:preco;justify-self:start}
}
/* as ferramentas de organizar: sem preço nem situação, o texto de apoio aparece na segunda linha */
.ac-faixa [data-ac-cartao="organizar"] .ac-minis>.hvw-card>.hvw-summary{display:none}
.ac-faixa [data-ac-cartao="organizar"] .ac-minis>.hvw-card>.hvw-status{justify-self:stretch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;padding:0;color:var(--sub,#64594e)}
.ac-faixa>.ac-categoria>.ac-titulo{margin:0 0 .625rem}
/* a folha Buscar: o campo, os achados (nome, preço e situação) e o Limpar */
.bf-conteudo .ac-busca{width:100%;min-height:2.75rem;box-sizing:border-box;border-radius:.875rem;border:1px solid rgba(127,127,127,.22);background:rgba(255,255,255,.7);color:inherit;font:inherit;font-size:calc(1rem * var(--dt,1));padding:.5rem .75rem}
body.dark .bf-conteudo .ac-busca{background:rgba(255,255,255,.08)}
.bf-conteudo .ac-achado{display:grid;min-width:0;flex:1 1 auto}
.bf-conteudo .ac-achado b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bf-conteudo .ac-achado small{font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));opacity:.75}
.bf-conteudo .ac-limpar{width:100%;min-height:2.75rem;margin:.5rem 0 0}

/* ---------- 1.74.0 (Philippe, 04/10/2026): CONTEÚDO PRIMEIRO (Parte B de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md) ----------
   "Você vai eliminar qualquer filtro ou menu superior (os que ficam acima dos cards do carrossel). [...] Os cards no
   carrossel são KING!" Nas cinco telas, na página (html.ac-conteudo-primeiro, posto por web/areas-carrossel.js quando a
   barra de baixo existe): o cabeçalho (o olho do grupo, o título grande, a Unidade e o Atualizar) sai de cima dos
   cartões. O seletor e o botão continuam no documento, escondidos: a folha "Loja" da barra e o botão do topo acionam os
   mesmos controles. Entre a fileira do topo e os cartões não fica nada (B1), e os cartões ocupam a tela (B5). */
html.ac-conteudo-primeiro :is(#view-crm,#view-delivery,#view-atendimento,#view-campanhas,#view-implantacao)>.hc>.hc-header{display:none}
html.ac-conteudo-primeiro :is(#view-crm,#view-delivery,#view-atendimento,#view-campanhas,#view-implantacao)>.hc{padding-top:0;padding-bottom:0}
/* 04/10/2026 (a dupla checagem): a faixa usa a largura toda, com a mesma margem das outras telas (os cartões começam a
   32 px da borda no computador). A caixa de 1280 px no meio deixava 344 px vazios de cada lado em 1920 px e cortava o
   cartão seguinte no meio da tela, longe da borda. */
@media (min-width:761px){html.ac-conteudo-primeiro :is(#view-crm,#view-delivery,#view-atendimento,#view-campanhas,#view-implantacao)>.hc{max-width:none;padding-left:1rem;padding-right:1rem}}
/* computador: todos os cartões com a altura da tela, como no Dashboard e nos Relatórios (o conteúdo fica em cima); a
   altura mora na peça (web/hub-carrossel.css) */
.hc.ac-tela .ac-faixa.hcar-pc{align-items:stretch}
/* Clientes: no cartão pequeno, a lista primeiro (os clientes que cabem, como mini cartões); a busca, o canal, a paginação
   e o histórico aberto ficam no cartão grande (data-hcar-detalhe, posto por web/areas-carrossel.js). O botão "Ver os N
   clientes desta página" dá lugar ao "Ver tudo" do cartão */
.hc.ac-tela [data-ac-cartao="clientes"] [data-crm-mais]{display:none}
.hc.ac-tela [data-ac-cartao="clientes"] .hc-customer-list>h3{margin-bottom:.625rem}
.hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="clientes"] .hc-table.hc-cartoes{margin-top:0}
@media (max-width:760px){
  /* mini cartão: o nome e três números numa linha; canais e valor aparecem no cartão grande */
  .hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="clientes"] .hc-table.hc-cartoes td:nth-child(n+5){display:none}
  .hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="clientes"] .hc-table.hc-cartoes tr{margin-bottom:.5rem;padding:.5rem .625rem .625rem}
}
/* os cartões de ferramenta têm a altura da tela: o botão fica logo abaixo do resumo, perto do que ele abre (no pé do
   cartão alto ele ficava longe do conteúdo) */
.hc.ac-tela .ac-faixa>.hvw-card .hvw-open{margin-top:.25rem}
/* "Todas as lojas" (web/hub-rede-primeiro.js) tem que caber no cartão: o resumo mais junto e cada loja em duas colunas (o
   nome e a situação à esquerda, "Mudar só nesta loja" à direita; as diferenças da exceção por baixo, na largura toda) */
.hc.ac-tela .ac-faixa .ac-rede .hrp-head{gap:.5rem .75rem}
.hc.ac-tela .ac-faixa .ac-rede .hrp-head-actions{gap:.5rem}
.hc.ac-tela .ac-faixa .ac-rede .hrp-summary{gap:.5rem 1rem;margin-top:.75rem}
.hc.ac-tela .ac-faixa .ac-rede .hrp-units{margin-top:.75rem}
.hc.ac-tela .ac-faixa .ac-rede .hrp-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.125rem .75rem;min-height:3.25rem;padding:.25rem 0}
.hc.ac-tela .ac-faixa .ac-rede .hrp-unit-name{grid-column:1;min-width:0}
.hc.ac-tela .ac-faixa .ac-rede .hrp-state{grid-column:1;justify-self:start}
.hc.ac-tela .ac-faixa .ac-rede .hrp-unit-actions{grid-column:2;grid-row:1 / span 2;width:auto;margin:0;justify-content:flex-end}
.hc.ac-tela .ac-faixa .ac-rede .hrp-diffs{grid-column:1 / -1}
/* Modelo da rede: no cartão pequeno o Aplicar vem logo depois da frase do que o modelo muda (sem ficar preso ao pé: o
   cartão não rola mais); no cartão grande ele continua preso ao pé enquanto o plano rola */
.hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="modelo"] .hnm-actions{position:static;margin:0;padding:0;border-top:0;background:none}
.hc.ac-tela [data-ac-cartao="modelo"] .ac-resumo{margin:0}
.hc.ac-tela [data-ac-cartao="modelo"] .hnm-head h3{margin-bottom:.125rem}
/* Campanhas: "Planos salvos" é o título do cartão; no celular cada plano é um mini cartão e a tabela não rola de lado */
.hc.ac-tela [data-ac-cartao="planos"]>details>summary{cursor:default;pointer-events:none}
.hc.ac-tela [data-ac-cartao="planos"]>details>summary::after{display:none}
.hc.ac-tela [data-ac-cartao="planos"]>.hc-table{margin:.75rem 0 0}
.hc.ac-tela .ac-faixa.hcar-pc>[data-ac-cartao="planos"]:has(>.hc-table){flex-basis:min(100%,64rem)}
/* 04/10/2026 (a dupla checagem): com os cartões pequenos juntos (opção agrupa do HubCarrossel) a faixa é uma coluna que
   quebra: a largura do cartão largo passa a ser width (o flex-basis vira a altura) e ele fica com a coluna inteira */
/* Clientes sem nenhum cliente: a frase é o conteúdo; a tabela só com o cabeçalho e a dica de deslizar não aparecem */
.hc.ac-tela .ac-sem-clientes>:is(.hc-table,.hc-table-hint){display:none}
/* o cartão principal da tela (a lista de clientes, as conversas, o modelo da rede, os planos) fica com a coluna inteira, também no celular */
.hc.ac-tela .ac-faixa.hcar-agrupa>:is(.ac-largo,[data-ac-cartao="planos"]){flex-basis:100%!important}
.hc.ac-tela .ac-faixa.hcar-agrupa.hcar-pc>.ac-largo{width:min(100%,calc(var(--hcar-w,22rem) * 2 + var(--hcar-vao,.75rem)))}
.hc.ac-tela .ac-faixa.hcar-agrupa.hcar-pc>[data-ac-cartao="planos"]:has(>.hc-table){width:min(100%,64rem)}
.hc.ac-tela [data-ac-cartao="planos"] .hc-campaign-plan-name{display:block;font-weight:600}
@media (max-width:760px){
  /* mini cartão do plano: o nome e três dados; os botões do plano (resultados, origem, incentivo, consentimentos) ficam no cartão grande */
  .hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="planos"] .hc-table.hc-cartoes td:first-child .btn,.hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="planos"] .hc-table.hc-cartoes td:nth-child(n+5){display:none}
  .hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="planos"] .hc-table.hc-cartoes tr{margin-bottom:.5rem;padding:.625rem .75rem}
  .hc.ac-tela [data-ac-cartao="planos"] .hc-table.hc-cartoes td:first-child .btn{margin-top:.375rem}
  .hc.ac-tela .hcar-cartao:not(.hcar-grande)[data-ac-cartao="planos"] .hc-table.hc-cartoes td:not(:first-child){font-size:calc(.875rem * var(--dt,1))}
}
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela */
/* a folha "Cartões": o cartão de ferramenta diz que abre o editor */
.bf-lista button .ac-abre{margin-left:auto;font-size:calc(.8125rem * var(--dt,1));font-weight:600;color:var(--bf-realce,var(--ink-blue,#0062B8))}
/* a folha "Atalhos" do Canal próprio: os oito atalhos em duas colunas, todos à vista sem rolar a folha */
.bf-lista.ac-duas{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.bf-lista.ac-duas button{min-height:3.25rem;padding:.5rem .75rem;border-radius:.875rem;background:rgba(127,127,127,.1);font-size:calc(.9375rem * var(--dt,1));font-weight:600;line-height:1.25}
/* 1.74.0 (revisão G1, estado de carregando): o "Carregando dados da unidade…" era um texto solto sobre o fundo, sem
   moldura; agora é um cartão como o das Configurações e o da Equipe (e como o cartão do erro de rede, logo depois). */
.hc-body>.hc-falhou:only-child{margin:0}
.hc-body>.hc-note[role=status]:only-child{margin:0;padding:1.25rem;border-radius:var(--r-sheet,1.25rem);background:var(--surface,#fff);box-shadow:var(--lift-1),var(--edge-light)}

/* /cardapio-cartoes.css */
/* 1.74.0 (Philippe, 04/10/2026): O CARDÁPIO EM CARTÕES (web/cardapio-cartoes.js) e as telas Simulador e Manutenção
   remota em carrossel (web/sobras-carrossel.js). Parte B de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md: nada
   entre a fileira do topo e os cartões; o cartão é o conteúdo (superfície sólida, sem vidro); nenhum cartão rola por
   dentro. Texto em rem com --dt; alvos de 44 px no toque; claro e escuro; reduzir movimento e transparência. */

/* ---------- a tela: a faixa de cartões ocupa a largura toda ---------- */
#view-menu .menuv{max-width:none;margin:0;padding:0 1rem}
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela  (a conta dos mini cartões depende da altura inteira; os pontos voltaram a ter o alvo de 44 px) */
/* 04/10/2026 (a dupla checagem): o raio, o fundo, o fio e a sombra do cartão são da peça (web/hub-carrossel.css, a moldura única) */
#menuv>.mc-faixa>.mc-cartao{display:flex;flex-direction:column;gap:.5rem;padding:.875rem .875rem .75rem;border:1px solid transparent;color:var(--label,#3A2A1E)}
/* 1.74.0 (Philippe, 05/10/2026, quinta rodada; M1 e M6): "têm que ser mini cards [...] preencher mais a tela com mini
   cards". A PÁGINA do carrossel não é mais um cartão grande: é só o lugar da grade (sem fundo, sem fio, sem sombra); quem
   tem a moldura é cada mini cartão. O cartão grande (o editor dos combos, .hcar-grande) continua com o desenho da peça. */
#menuv>.mc-faixa>.mc-cartao:not(.hcar-grande){gap:.375rem;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
/* A página tem largura fixa no computador (22 rem, web/cardapio-cartoes.js) e a faixa pode sobrar só um pedaço de página
   para o lado (em 1366 px, com quatro páginas, sobram 142 px). O encaixe da peça é pelo começo de cada página: com a
   sobra menor que meia página nenhuma página encaixava no fim da faixa e o navegador devolvia a faixa ao começo (a tecla
   End e o arrasto até o fim não ficavam lá). A última página encaixa pelo fim. */
#menuv>.mc-faixa.hcar-pc>.mc-cartao:last-child{scroll-snap-align:end}
/* 06/10/2026 (conferência, M6 item 2): em tela larga as páginas de 22 rem ficavam encostadas à esquerda, com a sobra toda
   à direita (em 1920 px, 32 px de um lado e 444 do outro). Quando todas as páginas cabem na tela (a peça marca a faixa
   com hcar-cabe) a faixa fica no meio, como as colunas das Negociações; quando não cabem, começa na esquerda e rola. */
#menuv>.mc-faixa.hcar-pc.hcar-cabe{justify-content:safe center}
/* e o sinal "Ver tudo" dos Combos ficava solto no pé da página, longe dos combos (463 px em 1920 x 1080): no computador,
   onde há várias páginas lado a lado, a página dos Combos tem a altura do que mostra (até a altura da faixa, onde o corte
   da peça continua valendo) e guarda o lugar do sinal logo abaixo, com a mesma medida que a peça reserva para ele (um
   bloco vazio no fim, como ela faz nos cartões juntos; em respiro o corte da peça contava duas vezes e escondia o
   "Novo combo"). No celular, uma página por tela, nada muda. */
#menuv>.mc-faixa.hcar-pc>.mc-combos:not(.hcar-grande){align-self:flex-start;height:auto}
#menuv>.mc-faixa.hcar-pc>.mc-combos:not(.hcar-grande)::after{content:"";display:block;flex:none;height:2.75rem}
html.hub-toque #menuv>.mc-faixa.hcar-pc>.mc-combos:not(.hcar-grande)::after{height:3.5rem}
/* a altura mínima do mini cartão, pelo tamanho do texto (--dt): respiro (1,375rem) + foto ou nome em duas linhas
   (2,25rem) + a linha da situação (0,875rem) + a linha do preço (1rem). No mini cartão estreito para o texto
   (--mc-linha-estreita) a situação fica na linha do botão (2rem) e o respiro é menor (1rem). O JS lê a altura mínima
   do corpo do mini cartão para a conta de quantos cabem.
   06/10/2026 (conferência, M4 item 2): "texto nunca abaixo de 11 px". Com o texto do Hub em 65% ou 75% (opções das
   Configurações) o nome dava 9,75 px e o preço 8,45 e 9,75 px. Nome, preço, o texto da página e o dos mini cartões dos
   combos ganharam o piso de 11 px (max(.6875rem, ...)); a linha do preço, o respiro do botão e a medida do mini cartão
   estreito tratam o texto abaixo de 85% como 85%, que é onde o piso começa a valer */
#menuv{--mc-linha:calc(1.375rem + 3.125rem * max(1,var(--dt,1)) + max(.75rem,1rem * var(--dt,1)));--mc-linha-estreita:calc(3rem + 2.25rem * max(1,var(--dt,1)) + max(.75rem,1rem * var(--dt,1)));--mc-pilula:calc(2.625rem * max(.85,var(--dt,1)) + 1.75rem)}
/* o nome da categoria: sempre UMA linha (todas as páginas com a mesma altura de grade; a conta de quantos cabem vale para todas) */
.mc-cab{flex:none;display:flex;flex-wrap:nowrap;align-items:baseline;gap:.125rem .625rem;min-width:0;min-height:2rem;padding:0 .5rem}
.mc-cab .h2{flex:0 1 auto;min-width:0;margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.2;font-weight:700;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.mc-sub{flex:1 1 0;min-width:0;margin:0;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:1.35;color:var(--label2,#6B5A4C);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-sub.vazio,.mc-pz{color:var(--ink-red,#B42318);font-weight:600}
/* a página da busca: o resultado e o "Limpar a busca" podem ir para a linha de baixo (todas as páginas da busca são iguais) */
.mc-busca .mc-cab{flex-wrap:wrap;align-items:center}
.mc-busca .mc-sub{flex:1 1 auto;white-space:normal}
.mc-limpar{margin-left:auto;min-height:2.25rem;padding:.25rem .75rem;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)))}
html.hub-toque .mc-limpar{min-height:2.75rem}
.mc-novo{flex:none;align-self:center;display:grid;place-items:center;width:2rem;height:2rem;margin:0 0 0 auto;padding:0;border:0;border-radius:50%;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);cursor:pointer;transition:transform .1s ease-out,background-color .15s ease-out}
.mc-novo svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mc-novo:active{transform:scale(.94)}
html.hub-clique .mc-novo:hover{background:var(--fill2,rgba(58,42,30,.16))}
.mc-novo:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--sys-blue,#0088FF));outline-offset:2px}
body.dark .mc-novo{background:rgba(255,255,255,.1);color:var(--label,#F3EDE6)}
@media (max-width:760px){.mc-novo{display:none}}
/* a categoria sem item: um mini cartão só, com a frase e o botão (não estica até o pé da página) */
.mc-vazia{flex:none;display:grid;justify-items:start;gap:.625rem;margin:.125rem .25rem;padding:1rem;border-radius:var(--r-sheet,1.25rem);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06);color:var(--label2,#6B5A4C);font-size:calc(.9375rem * var(--dt,1))}
body.dark .mc-vazia{background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
.mc-vazia p{margin:0}

/* ---------- a grade de mini cartões (M1): várias colunas e linhas por página; linhas todas da mesma altura, para a
   conta de quantos cabem ser exata. A linha reparte a sobra da página até 25% acima da altura mínima e para aí (M6: com
   1 item ou com 12 o mini cartão tem o mesmo tamanho; nunca estica). O respiro em volta é o lugar da sombra. ---------- */
.mc-grade{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,8.25rem),1fr));grid-template-rows:repeat(var(--mc-linhas,6),minmax(0,calc(var(--mc-linha) * 1.25)));grid-auto-rows:0;align-content:start;gap:.5rem /* 8 px, não os 12 px do vão da peça: o mini cartão do item é menor que o do caso das Negociações e, com 12 px, perdia-se uma linha inteira de mini cartões em 1366 x 768 com o texto em 100% (5 linhas em vez de 6) */;padding:.125rem .25rem .5rem;overflow:hidden}
/* O MINI CARTÃO (M4): a moldura é a dos cartões pequenos do sistema (a moldura única de web/hub-carrossel.css: raio de
   folha, fundo sólido, fio de meio pixel e a sombra leve), copiada aqui porque o mini cartão não é um item da faixa. */
#menuv .mc-mini{position:relative;display:block;min-width:0;box-sizing:border-box;padding:0;container:mcmini / inline-size;font-size:calc(1rem * max(.85,var(--dt,1)));border:0;border-radius:var(--r-sheet,1.25rem);overflow:hidden;background:var(--surface,#fff);
  box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06);transition:background-color .15s ease-out}
body.dark #menuv .mc-mini{background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
#menuv .mc-mini.paused{background:color-mix(in srgb,var(--sys-red,#FF383C) 7%,var(--surface,#fff))}
body.dark #menuv .mc-mini.paused{background:color-mix(in srgb,var(--sys-red,#FF383C) 14%,var(--surface,#22201E))}
#menuv .mc-mini.hl2{box-shadow:inset 0 0 0 2px var(--sys-red,#FF383C),0 6px 18px rgba(40,25,12,.06)}
/* o corpo do mini cartão é um controle (abre o item, e o gestor o arrasta para um combo): o texto dele não é selecionável,
   senão o segundo arrasto pegava o nome selecionado e o navegador começava a arrastar o texto em vez do item. O nome e o
   código continuam selecionáveis no cartão do item. Ocupa o mini cartão inteiro; o botão de pausar fica por cima, no canto. */
.mc-abre{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:.375rem .5rem;width:100%;height:100%;min-height:var(--mc-linha);box-sizing:border-box;padding:.5rem;border-radius:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;outline:none}
.mc-abre:active{background:var(--fill,rgba(90,65,45,.08))}
.mc-abre:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--sys-blue,#0088FF));outline-offset:-3px}
#menuv .mc-mini .mi-photo,#menuv .mc-mini .mi-photo-space{grid-area:1/1;align-self:start;width:2.25rem;height:2.25rem;min-height:0;aspect-ratio:auto;border-radius:.625rem;object-fit:cover;display:block}
#menuv .mc-mini .mi-photo-space{background:var(--fill,rgba(90,65,45,.08))}
#menuv .mc-mini.paused .mi-photo{filter:grayscale(1);opacity:.7}
/* o nome: até duas linhas inteiras; o resto vira reticências (o nome inteiro está no cartão do item) */
#menuv .mc-mini .mc-nome{grid-area:1/2;align-self:start;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:0;font-size:max(.6875rem,calc(.9375rem * var(--dt,1)));line-height:1.2;font-weight:650;letter-spacing:-.005em;overflow-wrap:anywhere}
#menuv .mc-mini.paused .mc-nome{color:var(--label2,#6B5A4C)}
.mc-alerta{display:inline-block;width:.4375rem;height:.4375rem;margin-right:.3125rem;border-radius:50%;background:var(--sys-orange,#FF8D28);vertical-align:.0625rem}
/* o pé: o preço e, embaixo, a situação; à direita deles fica o botão (o respiro é a largura dele) */
.mc-pe{grid-area:2/1/3/3;display:grid;align-content:end;min-width:0;min-height:calc(max(.75rem,1rem * var(--dt,1)) + .875rem * max(1,var(--dt,1)));padding-right:var(--mc-pilula)}
.mc-preco{min-width:0;font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:max(.75rem,calc(1rem * var(--dt,1)));font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-sit{min-width:0;font-size:max(.6875rem,calc(.6875rem * var(--dt,1)));line-height:max(.875rem,calc(.875rem * var(--dt,1)));font-weight:650;color:var(--ink-green,#1B7A34);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-sit::before{content:"";display:inline-block;width:.375rem;height:.375rem;margin-right:.25rem;border-radius:50%;background:currentColor;vertical-align:.0625rem}
.mc-sit.off{color:var(--ink-red,#B42318)}
/* o botão de pausar ou ativar no cartão do item e na folha Pausados: 44 px no dedo */
.mc-det .pp,.mc-pausados .pp{flex:none;display:grid;place-items:center;align-content:center;gap:.0625rem;width:3.75rem;height:auto;min-height:2.75rem;padding:.25rem;border-radius:.75rem;cursor:pointer;transition:transform .1s ease-out,background-color .15s ease-out}
.mc-det .pp:active,.mc-pausados .pp:active{transform:scale(.95)}
.mc-det .pp svg,.mc-pausados .pp svg{width:1rem;height:1rem}
.pp .pp-rotulo{font-size:max(.6875rem,calc(.6875rem * var(--dt,1)));font-weight:700;line-height:1.1;letter-spacing:.01em}
.pp[aria-busy="true"]{opacity:.5;pointer-events:none}
.pp:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--sys-blue,#0088FF));outline-offset:2px}
/* no escuro o botão de pausa de sempre ficava claro com o desenho claro: aqui ele é uma chapa escura com texto claro */
body.dark :is(.mc-det,.mc-pausados) .pp{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);box-shadow:none;color:var(--label,#F3EDE6)}
body.dark :is(.mc-det,.mc-pausados) .pp.pause svg{fill:var(--label,#F3EDE6)}
body.dark :is(.mc-det,.mc-pausados) .pp.play{background:color-mix(in srgb,var(--sys-green,#34C759) 22%,transparent);border-color:color-mix(in srgb,var(--sys-green,#34C759) 55%,transparent)}
body.dark :is(.mc-det,.mc-pausados) .pp.play svg{fill:var(--sys-green,#30D158)}
/* NO MINI CARTÃO (M4, M5): pausar ou ativar a UM toque, com o nome da ação escrito (o rótulo no botão é pedido de 03/10).
   O botão é a caixa de toque inteira (44 px de altura, 44 ou mais de largura) e não tem desenho; o que se vê é a pílula
   do rótulo, na altura das duas linhas do pé. */
#menuv .mc-mini .pp{position:absolute;right:.375rem;bottom:.0625rem;display:grid;place-items:center;width:auto;min-width:2.75rem;height:2.75rem;padding:0 .125rem;border:0;border-radius:.5rem /* a caixa de toque é reta: com o raio da pílula o navegador tirava os cantos do alvo de 44 px */;background:none;box-shadow:none;cursor:pointer;transition:transform .1s ease-out}
#menuv .mc-mini .pp:active{transform:scale(.95)}
#menuv .mc-mini .pp svg{display:none}
#menuv .mc-mini .pp .pp-rotulo{display:block;min-width:2.5rem;height:2rem;box-sizing:border-box;padding:0 .625rem;border-radius:999px;background:var(--fill,rgba(90,65,45,.08));color:var(--label,#3A2A1E);font-size:max(.6875rem,calc(.75rem * var(--dt,1)));line-height:2rem;text-align:center;letter-spacing:0;white-space:nowrap}
/* "Ativar" sobre o mini cartão pausado (fundo avermelhado): o verde do texto é mais escuro que o das fichas, para dar 4,5:1 */
#menuv .mc-mini .pp.play .pp-rotulo{background:color-mix(in srgb,var(--sys-green,#34C759) 20%,transparent);color:color-mix(in srgb,var(--sys-green,#34C759) 40%,var(--label,#3A2A1E))}
body.dark #menuv .mc-mini .pp .pp-rotulo{background:rgba(255,255,255,.12);color:var(--label,#F3EDE6)}
body.dark #menuv .mc-mini .pp.play .pp-rotulo{background:color-mix(in srgb,var(--sys-green,#34C759) 26%,transparent);color:var(--ink-green,#30D158)}
html.hub-clique #menuv .mc-mini .pp:hover .pp-rotulo{background:var(--fill2,rgba(58,42,30,.16))}
html.hub-clique #menuv .mc-mini .pp.play:hover .pp-rotulo{background:color-mix(in srgb,var(--sys-green,#34C759) 30%,transparent)}
/* MINI CARTÃO ESTREITO PARA O TEXTO (a tela de 320 px com o texto em 100%; o texto em 130%): o preço não cabia ao lado do botão e
   era cortado ("R$ 7..."). Aí o preço ganha a linha inteira e a situação fica ao lado do botão; o mini cartão fica uma
   linha mais alto (o JS lê a altura mínima daqui e refaz a conta de quantos cabem). A medida é a do próprio mini cartão
   (em = o texto dele), não a da tela: vale no celular, no computador e com qualquer tamanho de texto. */
@container mcmini (max-width:calc(2.75rem + 6.75em)){
  .mc-abre{min-height:var(--mc-linha-estreita);padding-top:.375rem;padding-bottom:.375rem;row-gap:.25rem}
  .mc-pe{padding-right:0}
  .mc-sit{padding-right:var(--mc-pilula);line-height:2rem}
}
/* tela estreita (320 px): duas colunas continuam cabendo; o respiro e a pílula cedem um pouco */
@media (max-width:359px){
  #menuv{--mc-pilula:calc(2.625rem * max(.85,var(--dt,1)) + 1.25rem)}
  .mc-abre{padding-left:.375rem;padding-right:.375rem;column-gap:.375rem}
  #menuv .mc-mini .pp{right:.1875rem}
  #menuv .mc-mini .pp .pp-rotulo{padding:0 .4375rem}
  #menuv .mc-mini .mi-photo,#menuv .mc-mini .mi-photo-space{width:2rem;height:2rem}
}

/* ---------- o cartão do item (cartão médio: o cartão grande do HubCarrossel, mais estreito) ---------- */
.hcar-grande.hcar-avulso:has(>.mc-det){--hg-largura:min(34rem,calc(100vw - 2rem));min-height:0!important}
@media (max-width:760px){.hcar-grande.hcar-avulso:has(>.mc-det){top:auto!important;bottom:var(--hg-pe)!important;height:auto!important;max-height:calc(100dvh - var(--hg-topo) - var(--hg-pe))!important}}
.mc-det{display:grid;gap:.875rem;color:var(--label,#3A2A1E)}
.mc-det-cab{display:flex;gap:.875rem;align-items:flex-start;min-width:0}
.mc-det-foto{flex:none;width:6rem;height:6rem;border-radius:1rem;object-fit:cover}
.mc-det-tit{min-width:0;display:grid;gap:.25rem}
.mc-det-tit h2{margin:0;font-size:var(--f-title2,calc(1.375rem * var(--dt,1)));line-height:1.2;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}
.mc-det .mi-desc,.mc-det .mi-also,.mc-det .mi-warn,.mc-det .sync{margin:0;max-width:none;font-size:calc(.875rem * var(--dt,1));line-height:1.4}
.mc-det .mi-desc,.mc-det .mi-also,.mc-det .sync{color:var(--label2,#6B5A4C)}
.mc-det .mi-warn{color:var(--ink-orange,#8A4B00);font-weight:600}
.mc-lojas{display:grid;gap:.5rem}
.mc-loja{display:flex;align-items:center;gap:.75rem;min-height:3.5rem;padding:.375rem .375rem .375rem .875rem;border-radius:1rem;background:var(--surface2,#F7F4F1)}
body.dark .mc-loja{background:rgba(255,255,255,.06)}
.mc-loja.paused{background:color-mix(in srgb,var(--sys-red,#FF383C) 9%,var(--surface2,#F7F4F1))}
body.dark .mc-loja.paused{background:color-mix(in srgb,var(--sys-red,#FF383C) 16%,transparent)}
.mc-loja-t{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem}
.mc-loja-t b{font-size:calc(1rem * var(--dt,1));font-weight:650}
.mc-loja-t small{flex:1 0 100%;font-size:calc(.8125rem * var(--dt,1));line-height:1.35;color:var(--label2,#6B5A4C)}
.mc-det .mi-code{display:grid;gap:.125rem;padding:.5rem .5rem .5rem .875rem;border-radius:1rem;background:var(--surface2,#F7F4F1)}
body.dark .mc-det .mi-code{background:rgba(255,255,255,.06)}
.mc-det .mi-code-caption{font-size:max(.6875rem,calc(.75rem * var(--dt,1)));color:var(--label2,#6B5A4C)}
.mc-det .mi-code-line{display:flex;align-items:center;gap:.5rem;min-height:2.75rem}
.mc-det .mi-code-line code{flex:1 1 auto;font-size:calc(1rem * var(--dt,1));letter-spacing:.025em;user-select:all;overflow-wrap:anywhere}
.mc-det .mi-code-line button{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:.75rem;background:var(--fill,rgba(90,65,45,.08));color:inherit;cursor:pointer}
.mc-det .mi-code-line button:disabled{opacity:.4;cursor:default}
.mc-det .mi-code-line button svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.7}
.mc-det-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.mc-det-acoes .btn{min-height:2.75rem}
.mc-det-acoes .me-confirm{flex:1 1 100%;max-width:none}

/* ---------- dentro das folhas da barra de baixo ---------- */
.mc-ajuda{margin:.75rem 0;font-size:calc(.8125rem * var(--dt,1));line-height:1.45;color:var(--bf-sub,var(--label2,#6B5A4C))}
.bf .mbusca{display:flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 .75rem;border-radius:.875rem;background:var(--surface,#fff);border:1px solid var(--hair,rgba(58,42,30,.14));color:var(--label2,#6B5A4C)}
body.dark .bf .mbusca{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}
.bf .mbusca:focus-within{border-color:var(--sys-blue,#0088FF);box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--sys-blue,#0088FF) 22%,transparent)}
.bf .mbusca svg{width:1.125rem;height:1.125rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.bf .mbusca input{flex:1 1 auto;min-width:0;min-height:2.75rem;border:0;outline:0;background:transparent;color:var(--label,#3A2A1E);font:inherit;font-size:calc(1.0625rem * var(--dt,1));-webkit-appearance:none;appearance:none}
.bf .mbusca input::-webkit-search-cancel-button{display:none}
.bf .mbusca-limpar{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-right:-.625rem;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.bf .mbusca-limpar[hidden]{display:none}
.bf .mbusca-limpar:focus-visible{outline:.1875rem solid var(--sys-blue,#0088FF);outline-offset:-.25rem}
.mc-cats .mc-cat{display:flex;align-items:center;gap:.25rem;min-width:0}
.mc-cats .mc-cat-ir{flex:1 1 auto;min-width:0}
.mc-cats .mc-cat-ir span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-cats .mc-cat-ir b{flex:none;min-width:1.5rem;padding:.0625rem .4375rem;border-radius:999px;background:rgba(127,127,127,.14);font-size:max(.6875rem,calc(.75rem * var(--dt,1)));font-weight:700;text-align:center}
.bf-lista.mc-cats .mc-cat-b{flex:none;width:2.75rem;min-height:2.75rem;padding:0;justify-content:center;border-radius:50%}
.mc-cat-b svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mc-cat-b.mc-perigo{color:var(--ink-red,#B42318)}
.mc-cat-edita,.mc-nova{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.mc-cat-edita{padding:.25rem 0}
.mc-nova{margin-top:.75rem}
.bf-lista.mc-cats .mc-cat-edita .btn,.mc-nova .btn{width:auto;min-height:2.75rem;padding:.5rem 1rem;border:1px solid var(--hair,rgba(58,42,30,.14));border-radius:.75rem;font-size:calc(.9375rem * var(--dt,1));font-weight:600}
.bf-lista.mc-cats .mc-cat-edita .btn.primary{background:var(--blue,#2F7CF6);color:#fff;border-color:transparent}
.bf-lista.mc-cats .mc-cat-edita .btn.danger{color:var(--ink-red,#B42318);border-color:currentColor}
.mc-cat-edita .me-inline,.mc-nova .me-inline{flex:1 1 12rem;min-width:0}
.mc-cat-edita .me-confirm{flex:1 1 100%;max-width:none;color:inherit}
.mc-lote{margin:0 0 .75rem}
.mc-lote .btn{min-height:2.75rem;width:100%}
.mc-pausados{list-style:none;margin:0;padding:0;display:grid;gap:.375rem}
.mc-pausados li{display:flex;align-items:center;gap:.625rem;min-height:3.5rem;padding:.25rem .25rem .25rem .875rem;border-radius:.875rem;background:rgba(127,127,127,.1)}
.mc-pz-t{flex:1 1 auto;min-width:0;display:grid;gap:.125rem}
.mc-pz-t b{font-size:calc(.9375rem * var(--dt,1));font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-pz-t small{font-size:calc(.8125rem * var(--dt,1));line-height:1.35;color:var(--bf-sub,var(--label2,#6B5A4C));overflow-wrap:anywhere}

/* ---------- o cartão dos combos: o resumo no cartão pequeno, o editor no cartão grande ---------- */
/* o contêiner e a seção ficam na altura do conteúdo (nada de display:contents nem de encolher): é assim que o corte
   automático do HubCarrossel enxerga o que passa do cartão (texto maior, muitos combos) e esconde a linha inteira */
#menuv .mc-combos #hub-combos-host{flex:none;min-width:0}
#menuv .mc-combos .cb{margin:0;min-width:0;display:flex;flex-direction:column;gap:.5rem}
#menuv .mc-combos .cb-head{margin:0;min-height:2rem;padding:0 .5rem}
#menuv .mc-combos .cb-title{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)))}
.cb-minis{list-style:none;margin:0;padding:.125rem .25rem .5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,8.25rem),1fr));gap:.5rem;align-content:start}
/* 05/10/2026 (M1): o combo no resumo é um mini cartão igual ao do item (a mesma moldura, a mesma grade) */
.cb-mini{appearance:none;display:grid;align-content:center;gap:.125rem;width:100%;height:100%;min-height:var(--mc-linha,5.5rem);box-sizing:border-box;padding:.5rem .75rem;border:1px solid transparent;border-radius:var(--r-sheet,1.25rem);background:var(--surface,#fff);box-shadow:inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14)),0 1px 2px rgba(40,25,12,.05),0 6px 18px rgba(40,25,12,.06);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .12s ease-out,border-color .12s ease-out,background-color .12s ease-out}
body.dark .cb-mini{background:var(--surface,#22201E);box-shadow:inset 0 0 0 .5px rgba(240,225,210,.16),0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.32)}
.cb-mini b{display:flex;align-items:flex-start;gap:.375rem;min-width:0;font-size:max(.6875rem,calc(.9375rem * var(--dt,1)));font-weight:650;line-height:1.2;overflow:hidden}
.cb-mini b svg{flex:none;width:1rem;height:1rem;margin-top:.0625rem}
/* o nome do combo e a linha de baixo: até duas linhas cada (no mini cartão de meia largura uma linha só cortava o preço) */
.cb-mini b span,.cb-mini small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-width:0;overflow:hidden;overflow-wrap:anywhere}
.cb-mini small{font-size:max(.6875rem,calc(.8125rem * var(--dt,1)));line-height:1.3;color:var(--label2,#6B5A4C)}
.cb-mini .cb-badge{justify-self:start}
.cb-mini-new,body.dark .cb-mini-new{border:1.5px dashed var(--sep,rgba(58,42,30,.22));background:transparent;box-shadow:none}
.cb-mini-sug{background:color-mix(in srgb,var(--sys-indigo,#6155F5) 8%,var(--surface,#fff))}
.cb-mini:active{transform:scale(.985)}
.cb-mini.cb-over{border-color:var(--sys-blue,#0088FF);background:color-mix(in srgb,var(--sys-blue,#0088FF) 8%,var(--surface,#fff));box-shadow:0 0 0 3px color-mix(in srgb,var(--sys-blue,#0088FF) 30%,transparent)}
.cb-mini:focus-visible{outline:3px solid var(--sys-blue,#0088FF);outline-offset:2px}
.hcar-grande.mc-combos .cb{gap:.75rem}
.hcar-grande.mc-combos .cb-rail{padding-bottom:1rem}
/* dentro do cartão grande a faixa é mais estreita que a tela: o cartão do combo nunca passa da largura dela */
.hcar-grande.mc-combos .cb-card{flex-basis:min(328px,100%);min-width:0;max-width:100%}

/* ---------- Simulador e Manutenção remota em cartões (web/sobras-carrossel.js) ---------- */
#view-sim .sim,#view-man .man-tela.sb-tela{max-width:none;margin:0;padding:0 1rem}
#view-man .sb-faixa>.sb-cartao{margin:0}
#view-sim .sb-cartao .simkey{margin:0;padding:0;background:transparent;border:0;box-shadow:none}
#view-sim .sb-cartao .map{margin:0}
.sb-faixa>.sb-cartao{display:flex;flex-direction:column;gap:.625rem;padding:1rem;border:1px solid transparent;color:var(--label,#3A2A1E);margin:0}
.sb-faixa>.sb-cartao>h2,.sb-faixa>.sb-cartao>h3{margin:0;font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:1.2;font-weight:700;letter-spacing:-.015em}
.sb-faixa>.sb-cartao>p{margin:0;font-size:calc(.875rem * var(--dt,1));line-height:1.45;color:var(--label2,#6B5A4C)}
.sb-faixa>.sb-cartao .acts{margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
html.hub-toque .sb-faixa>.sb-cartao .btn{min-height:2.75rem}

@media (prefers-reduced-motion:reduce){#menuv .mc-mini,#menuv .mc-mini .pp,.pp,.mc-det .pp,.mc-pausados .pp,.cb-mini{transition:none}#menuv .mc-mini .pp:active,.pp:active,.cb-mini:active{transform:none}}
@media (prefers-contrast:more){#menuv>.mc-faixa>.mc-cartao,.sb-faixa>.sb-cartao,#menuv .mc-mini,.cb-mini{border:1px solid var(--label,#3A2A1E)}}
/* 1.74.0 (04/10/2026, ramo fluxos; D2): o lápis do mini cartão. Só no computador, com o mouse em cima do mini cartão ou com o
   foco do teclado nele: abre o Editar com um clique. No toque não aparece (o mini cartão continua com o pausar a um toque). */
#menuv .mc-mini .mc-lapis{display:none}
@media (hover:hover) and (pointer:fine){
  #menuv .mc-mini:hover .mc-lapis,#menuv .mc-mini:focus-within .mc-lapis{display:grid;place-items:center;position:absolute;right:calc(var(--mc-pilula) + .125rem);bottom:.4375rem;width:2rem;height:2rem;padding:0;border:0;border-radius:50%;background:var(--surface,#fff);color:var(--label2,#6B5A4C);box-shadow:0 .0625rem .25rem rgba(40,25,12,.18);cursor:pointer}
  #menuv .mc-mini .mc-lapis svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  #menuv .mc-mini .mc-lapis:hover{color:var(--ink-blue,#0062B8)}
  #menuv .mc-mini .mc-lapis:focus-visible{outline:.1875rem solid var(--ink-blue,#0062B8);outline-offset:.125rem}
  body.dark #menuv .mc-mini .mc-lapis{background:var(--surface2,#2C2A27);color:var(--label,#F2EDE8)}
}

/* /perfis-1740.css */
/* 1.74.0 (Philippe, 03/10/2026): O CARTÃO "PREVISÃO DE PEDIDOS" DO DASHBOARD DO GERENTE (web/perfis.js, HubPerfis).
   "A única coisa que o gerente precisa saber é sobre cuidar de pessoas e cuidar da operação: [...] a quantidade de
   pedidos, a previsibilidade de pedidos para um dia específico." O cartão é o primeiro do Dashboard do gerente: os dias
   (hoje e os próximos 6) numa fileira de botões, os pedidos previstos da rede e de cada loja, e as pessoas que a conta
   pede contra as da escala. O cartão é conteúdo (usa o .dcard e os .kpi de sempre); aqui só mora o que é dele.
   Medidas de texto em rem com --dt (tests/relative-typography); alvo de toque de 44 px; claro e escuro; "reduzir
   movimento" respeitado. Nada de vidro novo: o vidro é da camada de navegação, e isto é conteúdo.
   A largura que manda é a do CARTÃO, não a da tela (.pf-corpo é o contêiner): no computador o cartão pode estar numa
   coluna estreita do carrossel, e no celular ocupa a tela inteira. */
.pf-prev .pf-corpo{container-type:inline-size}
.pf-prev .pf-dias{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.375rem;margin:0 0 .75rem}
.pf-prev .pf-dia{-webkit-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;min-width:0;min-height:2.75rem;padding:.375rem .25rem;border:1px solid var(--hair,rgba(58,42,30,.14));border-radius:.75rem;background:var(--fill,rgba(90,65,45,.08));color:var(--label2,#6B5A4C);font:inherit;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:600;line-height:1.15;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .2s cubic-bezier(.2,.9,.3,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.pf-prev .pf-dia span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-prev .pf-dia b{font-size:calc(1rem * var(--dt,1));font-weight:800;letter-spacing:-.01em;color:var(--label,#3A2A1E);font-variant-numeric:tabular-nums}
/* a resposta vem no toque (pointerdown), não na soltura */
.pf-prev .pf-dia:active{transform:scale(.96)}
.pf-prev .pf-dia.on{background:var(--surface,#fff);border-color:var(--ink-blue,#1F5FA8);box-shadow:0 0 0 1px var(--ink-blue,#1F5FA8),0 1px 3px rgba(70,45,25,.14);color:var(--label,#3A2A1E)}
.pf-prev .pf-dia:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,var(--ink-blue,#1F5FA8));outline-offset:2px}
.pf-prev .pf-kpis{margin-bottom:.75rem}
.pf-prev .pf-kpis .kv{font-variant-numeric:tabular-nums}
.pf-prev .pf-sub{margin:.25rem 0 .375rem;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--label2,#6B5A4C)}
.pf-prev .pf-pessoas{list-style:none;margin:0 0 .625rem;padding:0;display:grid;gap:.375rem}
.pf-prev .pf-pessoas li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.75rem;row-gap:.125rem;align-items:center;padding:.5rem .75rem;border:1px solid var(--hair,rgba(58,42,30,.14));border-radius:.75rem}
.pf-prev .pf-onde{grid-column:1;font-size:calc(.875rem * var(--dt,1));font-weight:700;color:var(--label,#3A2A1E);overflow-wrap:anywhere}
.pf-prev .pf-conta{grid-column:1;font-size:calc(.8125rem * var(--dt,1));line-height:1.35;color:var(--label2,#6B5A4C);overflow-wrap:anywhere}
.pf-prev .pf-selo{grid-column:2;grid-row:1 / span 2;align-self:center;padding:.25rem .625rem;border-radius:999px;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:700;white-space:nowrap}
.pf-prev .pf-selo.ok{background:rgba(34,177,76,.14);color:#17692F}
.pf-prev .pf-selo.falta{background:rgba(245,144,27,.16);color:#8A4B00}
body.dark .pf-prev .pf-selo.ok{background:rgba(52,199,89,.2);color:#8BE5A4}
body.dark .pf-prev .pf-selo.falta{background:rgba(255,159,10,.22);color:#FFC680}
.pf-prev .pf-nota{margin:.25rem 0 .75rem;font-size:calc(.875rem * var(--dt,1));line-height:1.4;color:var(--label2,#6B5A4C)}
.pf-prev .pf-de-novo{min-height:2.75rem}
/* o esqueleto tem a altura aproximada do cartão cheio, para a tela não pular quando a previsão chega */
.pf-prev .pf-esq{display:grid;gap:.5rem}
.pf-prev .pf-esq i{display:block;height:2.75rem;border-radius:.75rem;background:var(--fill,rgba(90,65,45,.08));animation:pf-pulso 1.4s ease-in-out infinite}
.pf-prev .pf-esq i:nth-of-type(2){height:5rem}
.pf-prev .pf-esq i:nth-of-type(3){height:3.5rem}
@keyframes pf-pulso{0%,100%{opacity:1}50%{opacity:.55}}
/* cartão estreito (celular ou coluna estreita): os sete dias em duas fileiras (4 e 3), cada botão com 44 px de altura e
   largura de sobra para o dedo; os números em duas colunas; o selo embaixo da frase */
@container (max-width:27rem){
  .pf-prev .pf-corpo .pf-dias{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pf-prev .pf-corpo .pf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pf-prev .pf-corpo .pf-pessoas li{grid-template-columns:minmax(0,1fr)}
  .pf-prev .pf-corpo .pf-selo{grid-column:1;grid-row:auto;justify-self:start;margin-top:.25rem}
}
@media (prefers-reduced-motion:reduce){
  .pf-prev .pf-dia{transition:none}
  .pf-prev .pf-dia:active{transform:none}
  .pf-prev .pf-esq i{animation:none}
}

/* /cerebro-conteudo-1740.css */
/* 1.74.0 (Philippe, 04/10/2026): CONTEÚDO PRIMEIRO NAS TELAS CÉREBRO, NEGOCIAÇÕES E EQUIPE.
   Parte B de docs/ESPECIFICACAO-CONTEUDO-PRIMEIRO-2026-10-04.md: "Você vai eliminar qualquer filtro ou menu superior (os
   que ficam acima dos cards do carrossel). Todos os filtros e menus vão se concentrar na barra de menu inferior, em todas
   as telas. Os cards no carrossel são KING! [...] não pode existir rolar para baixo dentro dos cards do carrossel."
   As três telas usam as peças do sistema (web/hub-tela.js: a barra de baixo e os botões do topo; web/hub-carrossel.js: o
   cartão que não rola e expande). Aqui fica só o que é de cada tela: o desenho do cartão pequeno (o que cabe), o que
   sai de cima dos cartões e o campo de pergunta do Cérebro dentro da cápsula da barra.
   Medidas de texto em rem com --dt (nada em px); alvos de 44 px no toque; claro e escuro pelas variáveis do Hub; vidro
   só na camada funcional (a barra); sem rolagem lateral em 320 px. */

/* ================================================================== 1. A TELA CÉREBRO (web/cerebro.js, .cu.cu-pagina) */
/* nada entre a fileira do topo e os cartões (B1): o cabeçalho fica só para o leitor de tela (o título é .sr-only) */
#view-cer .cu.cu-pagina{max-width:none;margin:0;padding:0}
.cu-pagina .cu-cab{gap:0;min-height:0;padding:0;background:none;box-shadow:none}
.cu-pagina .cu-cab>:not(.cu-titulo-linha),.cu-pagina .cu-titulo-linha>:not(.cu-titulos),.cu-pagina .cu-contexto{display:none}
.cu-pagina .cu-titulo-linha{min-height:0;height:0;padding:0}
/* o pé de antes (sugestões e campo) some: o campo mora na barra de baixo e as sugestões, no cartão da Conversa */
.cu-pagina .cu-pe{display:none}
/* 04/10/2026 (a dupla checagem): na página a margem é a das outras telas (16 px: os cartões começam a 32 px da borda no computador, não a 36) */
.cu.cu-pagina{--cu-margem:16px}
/* 04/10/2026 (quinta fase, ramo janelas): "Na folha, o mesmo desenho da tela Cérebro." O desenho do CARTÃO (daqui até a
   barra) vale para o Cérebro inteiro, na tela e na folha por cima das outras telas: por isso as regras começam em .cu
   (a raiz, nos dois lugares) e não mais em .cu-pagina. O que é só da tela (.cu-pagina) ou só da folha (.cu-folha-modo,
   seção 1b, mais abaixo) é o lugar: o topo, o corpo e a barra. */
/* 04/10/2026 (a dupla checagem): o título do cartão do carrossel tem o mesmo tamanho em toda tela (o título 3 da casa) */
.cu .cu-car>.cp-visao>h3,.cu .cu-car>.gr>figcaption>strong{font-size:var(--f-title3,calc(1.25rem * var(--dt,1)));line-height:var(--lh-title3,1.25);font-weight:700;letter-spacing:-.015em}
.cu-pagina .cu-corpo{overflow:visible;padding:0 var(--cu-margem) 0}
.cu .cu-sec,.cu .cu-sec-conteudo{gap:0}
/* a contenção prendia o cartão grande (position: fixed) dentro da seção: na página as medidas são as da janela */
.cu .cu-sec-conteudo{container-type:normal}
/* na folha das outras telas a barra da página não aparece (a folha tem a dela, .hj-barra); no modo suporte a conversa
   do suporte ocupa a seção inteira, em coluna, como sempre */
.cu-folha-modo>.bf:not(.hj-barra){display:none}
.cu-folha-modo.cu-jeito-suporte .cu-conv{display:contents}
.cu-conv>[hidden]{display:none}

/* ---------- o cartão de cada faixa */
.cu .cu-faixa>li.cu-pg,.cu .cu-conv>.hcar-item,.cu .cu-car>.cu-car-resumo,.cu .cu-car>.cu-car-conc{display:flex;flex-direction:column;gap:.5rem;min-width:0;padding:.875rem 1rem;border-radius:var(--r-card,1rem);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--cu-sep);list-style:none}
.cu .cu-faixa>li.cu-pg .cu-marca,.cu .cu-vazio .cu-marca{flex:none;width:2.5rem;height:2.75rem}
.cu .cu-pg-aviso,.cu .cu-disp{align-items:flex-start}
.cu .cu-disp>.cu-bt{align-self:flex-start;margin-top:.25rem}
.cu .cu-pg-ifood>.cp-ifood{display:block}
.cu .cu-pg-ifood .cp-ifood-loja,.cu .cu-pg-critica>.hr-critica{padding:0;background:none;box-shadow:none;border-radius:0}
.cu .cu-car>.cu-car-conc>.cp-conc-rola{box-shadow:none;border-radius:0;background:none}
/* o Resumo: quatro cartões pequenos dentro do cartão (o número de cada assunto), dois por linha; no celular a frase de cada
   um aparece no cartão grande (web/cerebro.js marca a frase como detalhe) */
.cu .cu-car>.cu-car-resumo{flex-basis:var(--hcar-w,24rem)}
.cu .cu-car.hcar-cel>.cu-car-resumo{flex-basis:100%}
.cu .cu-car-resumo .cp-cards,.cu .cu-car.hcar-pc>.cu-car-resumo .cp-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.cu .cu-car-resumo .cp-card{padding:.75rem;background:var(--fill,rgba(90,65,45,.06));box-shadow:none}
.cu .cu-car-resumo.hcar-grande .cp-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
@media (max-width:760px){.cu .cu-car-resumo .cp-card>b{font-size:calc(1.375rem * var(--dt,1))}}
/* a tabela das pizzarias do raio rola para o lado só no cartão grande (no pequeno, nenhuma caixa rola: B6) */
.cu .cu-car-conc:not(.hcar-grande) .cp-conc-rola{overflow:hidden}

/* ---------- a recomendação: o cartão que cabe (título, texto em números, veredito da Sala e botões; depois os números por
   unidade e o plano, até onde couber: o que não cabe inteiro o corte da peça esconde). O plano inteiro, as relacionadas
   e a alternativa da Sala ficam no cartão grande (B6). */
.cu .cu-recs>li.hr-item{gap:.375rem;padding:.875rem 1rem}
.cu .cu-recs>li.hr-item:not(.hcar-grande) .hr-txt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.cu .cu-recs>li.hr-item:not(.hcar-grande)>.hr-rel,.cu .cu-recs>li.hr-item:not(.hcar-grande) .hr-sala-alt{display:none}
/* os botões vêm antes dos números e do plano: quando o cartão é baixo, o que o corte esconde é a tabela ou o plano, nunca a ação */
.cu .cu-recs>li.hr-item>.hr-botoes{order:1}
.cu .cu-recs>li.hr-item>.hr-ev{order:2}
.cu .cu-recs>li.hr-item>.hr-plano{order:3}
/* nenhum bloco do cartão encolhe para caber (o texto de 5 linhas sumia quando o resto não cabia): quem decide o que fica
   é o corte da peça, que esconde o bloco inteiro que passa do pé */
.cu .cu-recs>li.hr-item:not(.hcar-grande)>*{flex-shrink:0}
/* "Ver detalhe" é o próprio cartão: tocar nele (ou em "Ver tudo") abre o cartão grande */
.cu .cu-recs>li.hr-item>.hr-botoes>.hr-mais{display:none}
.cu .cu-recs.hcar-tela>li>.hr-botoes{position:static;margin:.125rem 0 0;padding:0;background:none;box-shadow:none;border-radius:0}
.cu .cu-recs>li.hr-item>.hr-botoes .hr-ciclo{flex-basis:100%;display:flex;flex-wrap:wrap}
/* a página do detalhe (ou da Sala, ou das dispensadas) mora dentro do cartão grande: o rosto do cartão sai de cena */
.cu .cu-pilha-on>:not(.cu-det-host):not(.hcar-grande-topo){display:none!important}
.cu .cu-det-host>.cu-pilha{display:block;overflow:visible;background:transparent}
.cu .cu-det-host>.cu-pilha[hidden]{display:none}
.cu .cu-pilha .cu-nav{position:static;padding:0 0 .5rem;background:transparent;box-shadow:none}
.cu .cu-pilha .cu-nav .cu-alca,.cu .cu-pilha.cu-pilha-rasa .cu-nav{display:none}
.cu .cu-pilha .cu-pilha-corpo{padding:0 0 1rem}
/* as ações do detalhe ficam presas no pé do cartão grande, sempre à vista (o respiro de baixo do cartão fica por trás delas) */
.cu .cu-pilha .hr-det-acoes{position:sticky;bottom:-.875rem;z-index:2;margin:0 -1rem -1.875rem;padding:.5rem 1rem calc(.875rem + env(safe-area-inset-bottom,0px));background:var(--vidro-solido,#FBF8F4);box-shadow:0 -.5px 0 var(--cu-sep)}
body.dark .cu .cu-pilha .hr-det-acoes{background:var(--vidro-solido,#2A2420)}

/* ---------- a Conversa em cartões: boas-vindas com as sugestões, a última pergunta e resposta, e os cartões do ai-workspace */
.cu .cu-conv>.hcar-item{padding:1rem}
.cu .cu-vazio{padding:.5rem 0 0}
.cu-vazio-ola{font-weight:600;color:var(--label,#3A2A1E)!important}
.cu-vazio-sug{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem}
.cu-vazio-sug .cu-chip{background:var(--fill,rgba(90,65,45,.08));box-shadow:none;white-space:normal;text-align:left;min-height:2.75rem;padding:.375rem 1rem}
.cu-fala-resumo,.cu-fala-log{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.cu-fala-antes{margin:0;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));color:var(--label2,#6B5A4C);text-align:center}
.cu .cu-fala .cu-balao{background:var(--fill,rgba(90,65,45,.06));box-shadow:none}

/* ---------- a Sala dos agentes: um teste por cartão; o título e o Atualizar saem de cima (o Atualizar é o botão do topo) */
/* sexta fase (revisão final G1): no escuro a regra da Sala (body.dark .hs-feed, web/cerebro-sala.css) ganhava desta e uma
   caixa quadrada e escura aparecia atrás do cartão redondo; a mesma regra vale nos dois temas */
.cu .hs-feed,body.dark .cu .hs-feed{padding:0;gap:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
.cu .hs-feed>.hs-topo{display:none}
.cu .hs-feed-corpo>*{margin:0;min-width:0;padding:.875rem 1rem;border-radius:var(--r-card,1rem);background:var(--cu-cartao,var(--surface,#fff));box-shadow:0 0 0 .5px var(--cu-sep)}

/* ---------- a barra de baixo com o campo de pergunta dentro (a cápsula é uma só: campo, microfone, enviar e os itens) */
.cu-pagina>.bf.bf-tela{--bf-largura:60rem}
@media (min-width:761px){.cu-pagina>.bf.bf-tela{max-width:min(60rem,calc(100% - 2rem))}}
.cu-barra.bf-barra{justify-content:flex-start;align-items:center;gap:.25rem}
.cu-barra>.cu-compor{flex:1 1 auto;min-width:0;padding:0;border-radius:999px;background:var(--cu-cartao,var(--surface,#fff));-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 0 0 .5px var(--cu-sep);-webkit-user-select:text;user-select:text;touch-action:manipulation}
.cu-barra>.cu-compor:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--sys-blue,#0088FF) 45%,transparent)}
.cu-barra>.bf-item{flex:0 0 auto;min-width:3.5rem;max-width:7.5rem;padding-left:.5rem;padding-right:.5rem}
.cu-barra .ws-composer #aiinput{text-overflow:ellipsis}
@media (max-width:760px){
  /* no celular só um dos dois aparece, como no Mensagens do iPhone: o microfone com o campo vazio, o enviar quando há texto */
  .cu-barra>.cu-compor:not(.cu-tem-texto)>.cu-enviar,.cu-barra>.cu-compor.cu-tem-texto>.cu-mic:not(.ligado){display:none}
  .cu-barra>.bf-item{min-width:3.25rem;padding-left:.25rem;padding-right:.25rem}
}
@media (prefers-reduced-transparency:reduce){.cu-barra>.cu-compor{background:var(--surface,#fff)}}
@media (prefers-contrast:more){.cu-barra>.cu-compor{box-shadow:0 0 0 1px var(--label3,#7E6A59)}}
/* 04/10/2026 (a dupla checagem): a altura do cartão no computador e a posição dos pontos no toque saíram daqui e moram na peça (web/hub-carrossel.css): a mesma medida em toda tela */
/* no computador o cartão grande tem a altura do conteúdo, medida ao abrir; o detalhe e a Sala chegam DEPOIS (a Sala, ao
   vivo, fala por fala): quem hospeda uma página abre já na altura cheia e rola por dentro */
@media (min-width:761px){html:not(.app-nativo) .cu .hcar-grande:has(>.cu-det-host){height:calc(100dvh - 3rem)!important}}

/* ================================================================== 1b. A FOLHA DO CÉREBRO (por cima das outras telas, .cu.cu-folha-modo)
   1.74.0 (Philippe, 04/10/2026, quinta fase, ramo janelas; requisitos B1, B4, B6 e B7): "Na folha, o mesmo desenho da
   tela Cérebro." A folha é uma coluna que não rola: o título com o Fechar, a faixa de cartões na altura que sobra e a
   barra de baixo (web/hub-janela.js) por cima do pé. A altura do cartão vem desta coluna, sem conta em JS. */
.cu.cu-folha-modo{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.cu-folha-modo .cu-cab{flex:none;gap:0;padding-bottom:.25rem}
.cu-folha-modo .cu-cab>:is(.cu-filtros,.cu-secoes){display:none}
.cu-folha-modo .cu-pe{display:none}
/* o id dá o peso: web/cerebro-unico.css tira o respiro de baixo do corpo quando há faixa (.cu:has(.cu-car.hcar-tela)), e aqui ele é o lugar da barra */
#cerebro-unico.cu-folha-modo .cu-corpo{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:.125rem var(--cu-margem) calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + 1.75rem)}
@media (min-width:761px){#cerebro-unico.cu-folha-modo .cu-corpo{padding-bottom:calc(var(--bf-barra,4rem) + 1.5rem)}}
.cu-folha-modo .cu-sec:not([hidden]),.cu-folha-modo .cu-sec-conteudo,.cu-folha-modo .hs-feed{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.cu-folha-modo .cu-sec .hcar.hcar-tela{flex:1 1 0;min-height:0}
.cu.cu-folha-modo .cu-sec .hcar.hcar-tela:not(.hcar-agrupa)>.hcar-item{height:auto;max-height:none;align-self:stretch}
.cu-folha-modo .cu-sec .hcar-pe{flex:none}
/* o que ainda não é faixa (carregando, erro) ocupa o lugar do cartão, sem empurrar nada */
.cu-folha-modo .cu-sec-conteudo>:is(.cu-carregando,.cu-erro,.cu-nota){flex:none}
/* a barra da folha: a mesma cápsula da tela, com o campo de pergunta dentro */
.cu-folha-modo>.bf.hj-barra{--bf-largura:60rem}
@media (min-width:761px){.cu-folha-modo>.bf.hj-barra{max-width:min(60rem,calc(100% - 2rem))}}
/* a página empilhada mora no cartão grande, que já tem o próprio Fechar: o "Fechar o Cérebro" da navegação dela sai */
.cu-folha-modo .cu-det-host .cu-nav .cu-x{display:none}
/* modo suporte: a conversa do suporte tem o campo dela; o da barra sai enquanto ela está à vista */
.cu-folha-modo.cu-jeito-suporte[data-secao="conversa"] .cu-barra>.cu-compor{display:none}
#cerebro-unico.cu-folha-modo.cu-jeito-suporte[data-secao="conversa"] .cu-corpo{padding-bottom:calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + 1rem)}

/* ================================================================== 2. NEGOCIAÇÕES E CANCELAMENTOS (web/negociacoes.js) */
/* nada entre a fileira do topo e os casos (B1): o título é só do leitor de tela, o resumo é o último cartão da faixa e
   os filtros moram na barra de baixo */
/* coluna flexível: as margens da faixa e dos pontos não se fundem (os pontos avançam 8 px sobre o respiro do cartão, B4) */
#neg-raiz.neg-tela{display:flex;flex-direction:column;padding:0 1rem}
#neg-raiz .neg-lista{list-style:none;align-items:stretch}
/* 04/10/2026 (a dupla checagem): o raio, o fundo e a sombra do cartão são da peça (a moldura única); os estados do caso (pendente, selecionado, crédito e débito) continuam aqui embaixo */
#neg-raiz .neg-lista.hcar>li{display:flex;flex-direction:column;min-width:0}
/* o caso: o botão cobre o cartão inteiro (tocar abre a ficha, o cartão grande dele); as ações de um toque ficam no pé */
#neg-raiz .neg-lista.hcar>.neg-card{overflow:hidden}
#neg-raiz .neg-card.pendente{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--sys-orange,#FF8D28) 70%,transparent)}
#neg-raiz .neg-card.selecionado{box-shadow:inset 0 0 0 2px var(--sys-blue,#0088FF)}
#neg-raiz .neg-card.tag-credito{box-shadow:inset 5px 0 0 #1E7B34,inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
#neg-raiz .neg-card.tag-debito{box-shadow:inset 5px 0 0 #B42318,inset 0 0 0 .5px var(--sep,rgba(58,42,30,.14))}
#neg-raiz .neg-card>.neg-card-botao{flex:1 1 auto;min-height:0;justify-content:flex-start;overflow:hidden}
/* os cartões que não são caso: o estado (lendo, erro, vazio), "Ver mais" e o resumo */
#neg-raiz .neg-lista.hcar>.neg-vazio{padding:1.25rem 1rem;gap:.375rem;justify-content:center;align-items:flex-start}
#neg-raiz .neg-lista.hcar>.neg-vazio p{margin:0}
#neg-raiz .neg-mais-casos>.neg-botao{margin-top:.5rem}
#neg-raiz .neg-lista.hcar>.neg-resumo-cartao{display:flex;gap:.5rem;padding:1rem;grid-template-columns:none}
.neg-resumo-titulo{margin:0 0 .25rem;font-size:calc(1.0625rem * var(--dt,1));font-weight:700;letter-spacing:-.01em;line-height:1.25}
#neg-raiz .neg-resumo-cartao .neg-tiles{margin:0;gap:.5rem}
#neg-raiz .neg-resumo-cartao .neg-tiles.contas{grid-template-columns:repeat(2,minmax(0,1fr))}
#neg-raiz .neg-resumo-cartao .neg-tile{background:var(--fill,rgba(90,65,45,.06));box-shadow:none}
#neg-raiz .neg-resumo-cartao .neg-tile.on{box-shadow:inset 0 0 0 2.5px var(--tile-cor)}
#neg-raiz .neg-resumo-cartao .neg-nota{margin:.25rem 0 0}
#neg-raiz .neg-resumo-cartao .neg-alerta{margin:0}
/* as folhas da barra: a busca e as datas no desenho da folha */
.bf .neg-busca input{background:rgba(255,255,255,.7)}
body.dark .bf .neg-busca input{background:rgba(255,255,255,.08)}
.bf .neg-datas{margin:0 0 1rem}
/* as situações são itens da barra: a escolhida fica acesa (a mesma cor do item com a folha aberta) */
#view-neg .bf .bf-item[aria-current="page"]{color:var(--bf-realce)}
#view-neg .bf .bf-item[aria-current="page"] .bf-rotulo{font-weight:700}
/* os nomes das situações têm tamanhos bem diferentes ("Todos" e "Respondidas"): cada item ocupa o que o nome pede, sem
   cortar a palavra no celular; o alvo de toque nunca fica menor que 44 px */
#view-neg .bf .bf-barra>.bf-item{flex:1 1 auto;min-width:2.75rem;padding-left:.125rem;padding-right:.125rem}

/* ================================================================== 3. EQUIPE (web/equipe.js) */
/* nada entre a fileira do topo e os cartões (B1): o título é do leitor de tela; abas, loja, semana e o campo do Cérebro
   moram na barra de baixo. A tela usa a largura toda (os cartões são a tela). */
#view-equ .eq{max-width:none;margin:0;padding:0 1rem;gap:0}
#view-equ .eq-conteudo{gap:0}
#view-equ .eq-fx>.eq-cartao{display:flex;flex-direction:column;gap:.5rem;margin:0;min-width:0}
#view-equ .eq-fx>.eq-cartao>*{flex:none;min-width:0}
#view-equ .eq-cartao-aviso{justify-content:center}
.eq-conta{font-size:calc(.8125rem * var(--dt,1));font-weight:600;color:var(--label2,#6B5A4C)}
.eq-cartao-cab>.eq-btn{flex:none}
.eq-chave-linha{min-height:2.75rem}
/* a escala: no computador a semana é um cartão só (as pessoas ao lado da grade, sem caixa que rola por dentro) */
#view-equ .eq-semana-c{gap:.625rem}
#view-equ .eq-semana-c .eq-escala-larga{align-items:stretch}
#view-equ .eq-semana-c .eq-painel{position:static;max-height:none;overflow:visible;padding:0 .25rem 0 0;border:0;border-radius:0;background:none}
#view-equ .eq-semana-c:not(.hcar-grande) .eq-celula{min-height:5.5rem}
#view-equ .eq-semana-c .eq-avisos{margin:0}
/* no celular, um dia por cartão: os turnos e quem está de folga; o botão de pôr gente fica ao lado do nome do turno */
#view-equ .eq-fx>.eq-dia{padding-top:.75rem;gap:0}
#view-equ .eq-dia.hoje{border-color:color-mix(in srgb,var(--sys-blue,#0088FF) 55%,transparent)}
#view-equ .eq-dia .eq-faixa{padding:.5rem 0 .625rem}
#view-equ .eq-dia .eq-faixa h3{align-items:center;margin-bottom:.375rem}
#view-equ .eq-dia .eq-faixa h3>.eq-faixa-add{margin-left:auto;width:auto;min-height:2.75rem;flex:none}
#view-equ .eq-dia .eq-faixa-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.375rem}
#view-equ .eq-dia .eq-faixa-vazia{margin:0}
/* as folhas da barra da Equipe */
.eq-bf-semana .bf-opcao,.bf .bf-opcao:has(>.eq-ic){display:inline-flex;align-items:center;gap:.375rem}
/* as abas são itens da barra: a aba em que a pessoa está fica acesa (a mesma cor do item com a folha aberta) */
#view-equ .bf .bf-item[aria-current="page"]{color:var(--bf-realce)}
#view-equ .bf .bf-item[aria-current="page"] .bf-rotulo{font-weight:700}
.bf .bf-opcao .eq-ic{width:1.125rem;height:1.125rem;flex:none}
.bf .eq-avisos{margin:0}
.bf .eq-busca{display:block;margin:0 0 .75rem}
.bf .eq-busca input{width:100%;min-height:2.75rem;box-sizing:border-box}
.bf .eq-cerebro{gap:.625rem}
.bf .eq-cerebro .eq-exemplos{display:flex;flex-wrap:wrap;gap:.5rem}
/* o aviso com Desfazer sobe acima da barra de baixo (não cobre os itens dela) */
#eq-desfazer.sobre-barra{bottom:calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + 1.5rem)}
html.app-nativo #eq-desfazer.sobre-barra{bottom:calc(var(--bf-barra,4rem) + var(--bf-rodape,0px) + 1.5rem)}

/* /mini-casos.css */
/* 1.74.0 (Philippe, 05/10/2026): MINI CARTÕES DOS CASOS E DOS CANCELADOS (M2 a M6 de
   docs/ESPECIFICACAO-QUINTA-RODADA-2026-10-05.md).
   "Os cards de menu, negociações e cancelamentos têm que ser mini cards. Eles podem ser carrossel, porém você tem que
    preencher mais a tela com mini cards. Agora, o card do cancelamento está tomando praticamente a tela toda, então não
    faz sentido. Você coloca mini cards para aparecerem mais cards por carrossel."
   1. Negociações e cancelamentos (web/negociacoes.js): cada caso é um mini cartão de quatro linhas e a faixa junta
      vários por página (opção agrupa do HubCarrossel). A moldura (raio, fundo, fio e sombra) e o vão são os da peça.
   2. Cancelados da Cozinha (a etapa Cancelados) e da Expedição (a faixa Cancelado): o pedido cancelado é um mini cartão.
   Esta folha entra depois de web/cerebro-conteudo-1740.css, que desenhava o caso alto. Texto em rem com --dt; alvos de
   44 px; claro e escuro pelos tokens do Hub. */

/* ================================================================== 1. NEGOCIAÇÕES: o mini cartão do caso */
/* a altura do mini cartão: três linhas de texto (crescem com o tamanho do texto do aparelho; o piso é o do texto de 11 px)
   mais a linha da ação (44 px), os vãos e o respiro. Com o texto em 130% ainda cabem quatro em 390 x 844. A coluna da
   faixa quebra sozinha (é o navegador que empilha): cabem quantos mini cartões a altura der, e eles repartem a sobra
   por igual, até 1,7 vez a altura. É o que basta para a coluna com um caso a menos ainda chegar ao pé (a tela continua
   cheia, M6); com menos casos que isso ninguém estica: quem ocupa a sobra é o resumo (regra de baixo) */
#neg-raiz{--neg-mini:calc(max(3.3125rem, 3.75rem * var(--dt,1)) + 4.75rem);--neg-etiqueta:max(1.625rem, calc(1.125rem * var(--dt,1) + .5rem))}
#neg-raiz .neg-lista.hcar-agrupa>:is(.neg-card,.neg-mais-casos){flex:1 1 var(--neg-mini)!important;min-height:var(--neg-mini);max-height:calc(var(--neg-mini) * 1.7)}
/* o resumo divide a última coluna com os casos quando sobram 15rem ou mais (e fica com a sobra); senão tem a coluna dele */
#neg-raiz .neg-lista.hcar-agrupa>.neg-resumo-cartao{flex:1000 1 15rem!important}
/* o estado (lendo, erro) e a lista vazia continuam com a coluna inteira */
#neg-raiz .neg-lista.hcar-agrupa>.neg-vazio:not(.neg-mais-casos){flex-basis:100%!important}
/* o botão do caso cobre o mini cartão; a ação principal fica por cima, no canto de baixo (um botão não mora dentro de outro) */
#neg-raiz .neg-lista.hcar>.neg-card{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr)}
#neg-raiz .neg-card>.neg-card-botao{grid-area:1/1;gap:.25rem;padding:.625rem .875rem}
#neg-raiz .neg-card>.neg-card-acoes{grid-area:1/1;align-self:end;justify-self:end;padding:0 .625rem .5rem 0}
#neg-raiz .neg-card>.neg-card-acoes>.neg-botao{min-width:6.5rem;min-height:2.75rem;padding:0 1rem}
/* linha 1, quem é: plataforma, pedido, loja e hora (a loja cede o lugar quando não cabe) */
#neg-raiz .neg-card .neg-card-topo{flex-wrap:nowrap;white-space:nowrap;min-width:0;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.3}
#neg-raiz .neg-card .neg-card-topo>:is(b,time,.neg-plat){flex:none}
#neg-raiz .neg-card .neg-card-topo>.neg-loja{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* linha 2, o que foi pedido e o valor */
#neg-raiz .neg-card .neg-card-titulo{min-width:0;font-size:max(.6875rem, calc(1rem * var(--dt,1)));line-height:1.3}
.neg-card-nome{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* linha 3, o cliente e o motivo */
.neg-card-linha{display:flex;align-items:baseline;gap:.375rem;min-width:0;white-space:nowrap;color:var(--label2,#6B5A4C);font-size:max(.6875rem, calc(.875rem * var(--dt,1)));line-height:1.35}
.neg-card-linha>.neg-card-cliente{flex:0 1 auto;min-width:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:600;color:var(--label,#3A2A1E)}
#neg-raiz .neg-card .neg-card-linha>.neg-card-msg{display:block;flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:inherit;line-height:inherit;-webkit-line-clamp:none}
/* sem botão de ação sobra altura: o cliente e o motivo usam duas linhas. 06/10/2026 (segunda fase, M6): a linha não encolhe
   (cortava a segunda linha no meio com o texto do Hub em 130%); quando as duas não cabem inteiras o web/negociacoes.js
   marca o caso com uma-linha */
#neg-raiz .neg-card .neg-card-linha{flex:none}
#neg-raiz .neg-card:not(.com-acao) .neg-card-linha{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
#neg-raiz .neg-card.uma-linha:not(.com-acao) .neg-card-linha{-webkit-line-clamp:1}
#neg-raiz .neg-card:not(.com-acao) .neg-card-linha>:is(.neg-card-cliente,.neg-card-msg){display:inline;max-width:none;white-space:normal}
#neg-raiz .neg-card:not(.com-acao) .neg-card-linha>.neg-card-cliente{margin-right:.375rem}
/* linha 4, o prazo e a situação: uma fileira só de etiquetas e, nos pendentes, o lugar do botão ao lado.
   06/10/2026 (segunda fase, M5): a fileira não quebra. O prazo e o resto não encolhem; a situação (data-neg-fixa) fica
   sempre e encolhe com reticências quando é longa; o que não cabe inteiro é escondido pelo web/negociacoes.js
   (ajustarEtiquetas) e contado na etiqueta "+N". Nada aparece cortado e nada some sem aviso. */
#neg-raiz .neg-card .neg-chips{flex:none;flex-wrap:nowrap;margin-top:auto;align-items:center;height:var(--neg-etiqueta);overflow:hidden}
#neg-raiz .neg-card .neg-chips>*{flex:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#neg-raiz .neg-card .neg-chips>[hidden]{display:none}
#neg-raiz .neg-card .neg-chips>[data-neg-fixa="situacao"]{flex:0 1 auto;min-width:2.75rem}
#neg-raiz .neg-card .neg-chips>[data-neg-fixa="situacao"]:not(.icone):not(.neg-tag){display:block}
#neg-raiz .neg-card .neg-chips>.neg-chip-mais{font-variant-numeric:tabular-nums}
/* o prazo: as palavras "Responda em" e a hora; na fileira apertada (curto) o relógio desenhado fica no lugar das palavras,
   que continuam para o leitor de tela */
#neg-raiz .neg-card .neg-prazo>svg{display:none}
#neg-raiz .neg-card .neg-chips.curto .neg-prazo>svg{display:block;flex:none}
#neg-raiz .neg-card .neg-chips.curto .neg-prazo-rot{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
#neg-raiz .neg-card.com-acao .neg-chips{margin-right:6.625rem;margin-bottom:calc((2.75rem - var(--neg-etiqueta)) / 2 - .125rem)}
/* o caso em tratativa: o botão é "Ver", mais estreito, e a fileira ganha o lugar que sobra */
#neg-raiz .neg-card.com-ver>.neg-card-acoes>.neg-botao{min-width:2.75rem}
#neg-raiz .neg-card.com-ver .neg-chips{margin-right:4.375rem}
/* "Mais casos": o texto de um lado e o botão do outro, na altura de um mini cartão */
#neg-raiz .neg-lista.hcar>.neg-mais-casos{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;align-content:center;column-gap:.75rem;padding:.75rem .875rem}
#neg-raiz .neg-mais-casos>:is(b,p){grid-column:1}
#neg-raiz .neg-mais-casos>.neg-botao{grid-column:2;grid-row:1 / span 2;margin:0}

/* ================================================================== 2. CANCELADOS DA COZINHA E DA EXPEDIÇÃO */
/* Cozinha, etapa Cancelados (cardCanc em web/index.html): a grade de sempre, com colunas mais estreitas, e o pedido
   cancelado em quatro linhas de uma linha só. Tocar abre a ficha do pedido (os itens e o resto estão lá). */
#kds:has(>.kcanc){grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.625rem;align-items:start}
.kcanc{display:flex;flex-direction:column;gap:.25rem;min-width:0;box-sizing:border-box;padding:.625rem .75rem;border-radius:var(--r-card,1rem);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.kcanc:active{transform:scale(var(--apertado-escala,.97))}
.kcanc:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:2px}
.kcanc-topo{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}
.kcanc-num{display:inline-flex;align-items:center;gap:.375rem;min-width:0;font-size:calc(1.375rem * var(--dt,1));font-weight:800;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--label,var(--text,#3A2A1E))}
.kcanc-num .plat{display:inline-flex;flex:none}
.kcanc-num .plat img{display:block;width:1.25rem;height:1.25rem;border-radius:.3125rem}
.kcanc-hora{flex:none;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));font-weight:600;line-height:1.3;color:var(--label2,var(--sub,#6B5A4C));font-variant-numeric:tabular-nums}
.kcanc-quem,.kcanc-motivo{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:max(.6875rem, calc(.8125rem * var(--dt,1)));line-height:1.3;color:var(--label2,var(--sub,#6B5A4C))}
.kcanc-quem b,.kcanc-motivo b{font-weight:600;color:var(--label,var(--text,#3A2A1E))}
.kcanc-quem b{margin-left:.375rem}
/* quantos itens (uma fileira só: a etiqueta que não cabe inteira desce e fica fora) e, numa linha dele, o aviso da comanda */
.kcanc-pe{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .375rem;height:calc(max(.6875rem, .75rem * var(--dt,1)) * 1.3 + .375rem);overflow:hidden}
.kcanc-pe>*{flex:none}
.kcanc-pe>.cnt{font-size:max(.6875rem, calc(.75rem * var(--dt,1)));padding:.125rem .5rem}   /* a etiqueta de quantos itens, na medida das dos cartões da Cozinha, com o piso de 11 px */
.kcanc-comanda{min-width:0;font-size:max(.6875rem, calc(.75rem * var(--dt,1)));font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-orange,#A84300)}
@media (prefers-reduced-motion:reduce){.kcanc:active{transform:none;opacity:.86}}
@media (prefers-contrast:more){.kcanc{box-shadow:inset 0 0 0 1.5px var(--label,#3A2A1E)}}

/* Expedição, faixa Cancelado (cardMini em web/index.html): três linhas, sem etiquetas nem botão: o número, o cliente e a
   hora com a loja. Dentro da faixa, que já se chama Cancelado, a palavra fica só para o leitor de tela */
.e.mini.mini-canc{padding:.375rem .5rem;contain-intrinsic-size:auto 4.25rem}
.e.mini.mini-canc:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:-2px}
.e.mini.mini-canc .mn{margin-top:.125rem}
.e.mini.mini-canc .ms,body.dark .e.mini.mini-canc .ms{margin-top:.125rem;padding:0;border-radius:0;background:none;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e.mini.mini-canc .mcanc-loja::before{content:"\00B7";margin:0 .25rem}
.lane .e.mini.mini-canc .mcanc-rot{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* a ficha do pedido cancelado que saía agrupado (overlayHTML em web/index.html): "Saía junto com o pedido N"; o número
   abre a ficha do parceiro e tem 44 px de alvo no toque sem mexer na altura da linha */
.orow.ojunto{gap:.25rem;font-size:max(.6875rem, calc(.9375rem * var(--dt,1)))}
.orow.ojunto [data-openord]{display:inline-block;margin:-.875rem 0;padding:.875rem .25rem;text-decoration:underline;text-underline-offset:.125rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.orow.ojunto [data-openord]:focus-visible{outline:var(--foco-largura,3px) solid var(--foco-cor,#2F7CF6);outline-offset:-2px;border-radius:.375rem}

